Skip to content

IOPs settings not applied when disk offering changes #13192

@jl0815

Description

@jl0815

problem

Hi all.

In our PoC installation, I configured two disk offerings with different IOPs limits (1,000 and 10,000).
When I launch a test VM, the limit is applied correctly.

<target dev='sda' bus='sata'/>
      <iotune>
        <read_iops_sec>10000</read_iops_sec>
        <write_iops_sec>10000</write_iops_sec>
      </iotune>

While the VM is running, I can change the offering, and a success message is displayed. Everything also looks successful in the management-server.log.

2026-05-19 16:31:47,618 DEBUG [o.a.c.f.j.i.AsyncJobManagerImpl] (API-Job-Executor-58:[ctx-e71e416f, job-1276, ctx-ee83f22a]) (logid:2c9eb69a) Complete async job-1276, jobStatus: SUCCEEDED, resultCode: 0, result: org.apache.cloudstack.api.response.VolumeResponse/volume/{"id":"d8a513c5-6241-46a9-b0d8-f969a5a245ce","name":"ROOT-61","zoneid":"57a96360-8053-487c-9fb9-85af87ca697d","zonename":"lc01","type":"ROOT","deviceid":"0","virtualmachineid":"e90057c4-5be9-492e-a78f-dfbca7507e07","templateid":"4c6bfba7-2457-466e-8767-7b3e620bb4e5","templatename":"Win2025-test2","templatedisplaytext":"Win2025-test2","vmname":"test-win02","vmdisplayname":"test-win02","vmstate":"Running","vmtype":"User","provisioningtype":"thin","size":"(50.00 GB) 53687091200","created":"2026-05-18T13:21:38+0200","state":"Ready","account":"admin","domainid":"b6a1560b-2912-11f1-af58-0050560103cb","domain":"ROOT","domainpath":"ROOT","diskIopsReadRate":"1000","diskIopsWriteRate":"1000","diskkbsread":"(1.33 MB) 1394345","diskkbswrite":"(43.25 KB) 44290","diskioread":"(52.04 KB) 53286","diskiowrite":"(3.00 KB) 3076","diskofferingid":"1b621070-6092-4d6e-91e1-987e662f2dd1","diskofferingname":"disk-1000","diskofferingdisplaytext":"disk-1000","destroyed":"false","isextractable":"false","displayvolume":"true","quiescevm":"false","supportsstoragesnapshot":"false","deleteprotection":"false","tags":[],"hasannotations":"false"}

However, the configuration of the VM on the KVM host remains the same.

<target dev='sda' bus='sata'/>
      <iotune>
        <read_iops_sec>10000</read_iops_sec>
        <write_iops_sec>10000</write_iops_sec>
      </iotune>

The limit is only applied if I completely power down the VM and then power it back on.
Is there a trick to this, or something I've missed?

versions

ACS 4.22.0
KVM/Qemu on Ubuntu 24.04

The steps to reproduce the bug

...

What to do about it?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status

    Todo

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions