OpenStack创建实例时如何指定XML文件 解决PCI总线不足问题
创建阶段自定义XML配置方案
OpenStack不支持直接传入完整libvirt XML创建虚拟机,但可以通过flavor元数据注入的方式提前定义配置,创建虚拟机时自动生效,无需后续手动修改:
- 调整PCI总线插槽总数:默认插槽数一般为16,调高后可支持挂载更多端口类PCI设备,命令如下:
openstack flavor set --property "hw:pci_slot_count=32" <你的flavor ID/名称>
- 若需要更复杂的自定义XML片段,可通过
hw_libvirt:custom_xml参数注入,比如添加额外PCI根端口:
openstack flavor set --property "hw_libvirt:custom_xml=<devices><controller type='pci' index='1' model='pcie-root-port'/></devices>" <你的flavor ID/名称>
使用该flavor创建的所有虚拟机都会自动应用上述配置,从根源避免PCI资源不足的问题。
现有虚拟机批量修改方案
重要提醒:禁止直接在计算节点通过
virsh命令修改OpenStack纳管的虚拟机配置,所有修改请通过OpenStack原生接口执行,避免配置被nova同步覆盖。
- 单台虚拟机调整PCI插槽数命令如下,修改后冷重启虚拟机即可生效:
openstack server set --property "hw:pci_slot_count=32" <虚拟机ID/名称>
- 批量操作可通过shell循环实现:先把需要调整的虚拟机ID存入列表,循环执行上述命令即可,效率远高于逐台手动修改XML,同时不会出现配置不同步的问题。
内容的提问来源于stack exchange,提问作者qihang
相关产品推荐
相关产品推荐

