在较低版本的openstack nova中使用libvirt driver,启动虚拟机时出现
llibvirtError: internal error: No free USB ports
原因可能是 XML中使用了USB设备,如usb-tablet,keyboard等,但是缺少了相应的USB controller。
可以在XML添加如下:
<controller type='usb' index='0' model='piix3-uhci'>
<alias name='usb'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
</controller>
对应到nova代码为:
nova/virt/libvirt/config.py
class LibvirtConfigGuestUSBHostController(LibvirtConfigGuestController):
def __init__(self, **kwargs):
super(LibvirtConfigGuestUSBHostController, self).__init__(**kwargs)
self.type = 'usb'
可以在nova中加上USB controller这部分。这样生成XML中就会增加USB controller。
高版本中添加ke