Manage IOPs Limit for VMs


I’m running into trouble limiting the drive speed of the VMs.
At the moment there are several VMs installed with no IOPs limit configured.
Is there a possibility to set a global Limit to make sure that the VMs are running, on let`s say a maximum of 500 IOPs per VM?
I have tried to change the Template, deattached the current storage from the VM, created a new VM with the new Template and attached the old Storage to the VM.
After i have attached the old Storage the Limit is gone and the VM is still not limited.

Help would be appreciated.

Best Nibbel


I have the same problem. I also tried to stop the VM and to modify the configuration under Conf -> Advanced in the text field. But the values for IOPS Limits are not saved.

Is there any faster way to do this that undeploying the vm and start over again with a new template?

What is the version of OpenNebula you use ?

I did some test on 5.8 (and I am pretty sure it is the same on 5.6), You can define IOPS (and MBytes) limits only when you attach a disk to a VM or to a template. It is in the “advanced” options of the disk when you attach it.
It is not possible to define a global limit, maybe it could be a nice feature to add in roadmap.

Hope this help

I am using latest 5.8. So I really cannot modify the IOPS for an already deployed VM except redploying with a modified template. Uhm pretty ugly :frowning:

I am not talking about global limits. I just need a simple way to modify limits for existing VMs. Best would be without redployment.

I understand you point. If it is a DATABLOCK disk may be you can attach a new Image with IOPS limit and copy the content of the other to not cut the running one ?

I think what is complex is that this kind of limit are not manage in the same way if you are on VMware or on KVM.
I let OpenNebula team giving it point of view on this topic

To complete my Answer, I think following issues on github might answer your need (if you are on KVM side)