连接网络接口后,kvm 虚拟机管理程序上的 Windows 客户操作系统不会保留磁盘状态

连接网络接口后,kvm 虚拟机管理程序上的 Windows 客户操作系统不会保留磁盘状态

我有openstack基于云的环境。我有kvm/qemu基于虚拟机管理程序。我Windows在其中一个虚拟机管理程序上创建了客户操作系统虚拟机。并且我将卷 (vhd) 附加到虚拟机。我将磁盘状态更改为online在客户操作系统中。然后我将网络接口附加(热插拔)到虚拟机。我可以在虚拟机管理程序上的虚拟机 xml 文件中看到添加的网络接口。我重新启动虚拟机,仍然可以在 xml 文件看到所有磁盘和网络接口。但是它们的插槽被重新排列了。然后我检查客户操作系统上的磁盘状态,它显示Offline。我不明白问题出在哪里。如果我只是重新启动虚拟机而不连接额外的网络接口,那么磁盘状态就会保留。有人知道为什么会这样吗?这不会发生在 Linux 客户操作系统上,所以我假设这是客户操作系统级别的问题,可能是virtIO驱动程序相关的问题。该问题与热插拔无关,因为即使我在关闭虚拟机后连接网络接口,它仍然会发生。

答案1

Nova 有意不保证分配给设备的 PCI 插槽。每次启动客户机时,它们都会动态分配,因此如果您添加/删除设备(尤其是使用热插拔),它们几乎肯定会在每次启动时发生变化。

您看到的确切行为完全是由于设备地址的分配方式。如果我没记错的话,PCI 地址首先分配给所有列出的 NIC,然后分配给磁盘/磁盘控制器。因此,如果您添加额外的 NIC,则所有磁盘的 PCI 插槽都会增加,以便在下次重新启动时为这个额外的 NIC 腾出空间。

鉴于此,您不应依赖 PCI 插槽来识别 OpenStack 中的设备。对于磁盘,您最好通过查看文件系统标签或 UUID 来识别设备,对于 NIC,则使用其 MAC 地址来识别。

相关内容