Virtual devices limit

I got this little friendly message printed today.

/var/lib/one/vms/209/deployment.6 failed due to "TooManyDevices: Number of virtual devices exceeds the maximum for a given controller."

Is there a way to bump the limit, if so where ? I wasn’t aware that the limit was even there. The interesting thing is that I had many more devices before and it all worked fine.

Thanks.

Hi!
the “TooManyDevices: Number of virtual devices exceeds the maximum for a given controller.” is being thrown by vCenter when OpenNebula is asking vCenter to perform a ReconfigVM task and set devices before the VM is powered on.

AFAIK OpenNebula does not set specific limits as it’s vSphere which already has limits per VM or ESX Hosts (vSphere maximums for version 6). For example vSphere limits the number of Virtual SCSI targets per virtual SCSI adapter to 15, 4 IDE devices per virtual machine, 10 vNICs per VM…

So I’d start trying to identify which kind of device is exceeding a vSphere limit for a VM, the Task Console in vCenter may give you more info as well as the VM hardware settings. Once you find the kind of device, compare the number of devices with what you have set in your VM in OpenNebula… if they don’t match and you find hardware devices that are duplicated or not supposed to be there, then maybe it’s a bug in OpenNebula (e.g BUG in vCenter with NIC [SOLVED]).

Cheers!

This is exactly what you said. I don’t know how the vm got 10 nics added.I’ve seen this happen on other boxes. Where multiple nics are added without any request.
Supper strange.

Hi!
absolutely, the NIC duplication is quite odd indeed as it doesn’t happen all the time for any VM, however the code section that should fix that duplication (different network interfaces with the same MAC are created usually after a poweroff and resume in some cases) it’s already in GitHub so you may try to change the problematic code yourself in the vcenter_driver.rb file as explained in the ticket or wait for the upcoming OpenNebula updates once they become available.

Cheers!