解决no more available pci slots问题
一、问题
之前写过 KVM虚拟机动态增加网卡和硬盘的内容,这还是命令行玩KVM时候写的东西(openstack和cloudstack平分秋色的时代),这一晃眼七八年过去了。又到了手撕KVM的时候了,最近遇到的一个虚拟化嵌套环境下要新增虚拟机下面虚拟机的网卡。结果发现之前的方法不成功。报错:
1[root@foundation20 qemu]# virsh attach-interface serverb --type bridge --source privbr0
2error: Failed to attach interface
3error: internal error: No more available PCI slots
最初真的以为是PCI配置不够用了,因为这些虚拟机,每个上面都挂载了N块硬盘。先是按之前的方法移掉了几块不用的硬盘,再增加发现还是这个报错。然后通过修改virsh edit servera这样的方式修改xml配置文件的方式,可以增加,不过也有增加不成功的时候。这就有点蛋疼了,不能保证100%的成功率,而且还需要进行批量操作。只能通过–help查看帮助信息了。通过查看帮助信息,发现其增加了–config、–current、–persistent几个参数。
二、解决方法
先使用–config方法增加并重启虚拟机后,发现网卡增加成功了。不过查看网卡类型是rtl8139 。
1[root@foundation20 qemu]# virsh attach-interface servera --type bridge --source privbr0 --config
2Interface attached successfully
把参数改用其他的参数再测试,直接指定网卡的类型是virtio模式,发现直接成功了。
1[root@foundation20 qemu]# virsh attach-interface serverb --type bridge --source privbr0 --current --model virtio
2Interface attached successfully
而发现之前的删除方法还是有效的:
1[root@foundation20 qemu]# virsh attach-interface servera --type bridge --source privbr0 --model virtio --target eth5 --current
2[root@foundation20 qemu]# virsh detach-interface servera --type bridge --mac 52:54:00:28:71:fe --persistent
3[root@foundation20 qemu]# virsh domiflist servera
4Interface Type Source Model MAC
5-------------------------------------------------------
6vnet4 bridge privbr0 virtio 52:54:00:00:fa:0a
7vnet6 bridge privbr0 virtio 52:54:00:cc:0a:85
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/kvm-no-pci-slots/6542.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.