如何更改在 XenServer 6.2 上运行的 VM 的磁盘控制器?

如何更改在 XenServer 6.2 上运行的 VM 的磁盘控制器?

我正在运行 XenServer 6.2 的安装,其中我导入了一个 .ova。.ova 是来自以前的 vmware esxi 环境的 linux 系统的映像。

问题是由于 linux-image 不支持所有磁盘控制器,所以我想更改 XenServer 内部的 vmdk 磁盘驱动程序。

我在 qemu-kvm 系统上运行完全相同的映像时遇到了同样的问题。我通过在 virt-manager(或 vm.xml)中更改虚拟机的磁盘控制器解决了这个问题。但我似乎在 XenServer 中找不到此选项。

有小费吗?

答案1

我不确定我是否理解了您的问题。如果我理解了,您就成功导入了基于 Linux 的 VM。但是,您的 VM 无法启动,因为其内核无法识别 XenServer 公开的磁盘控制器。并且您希望能够访问 VM 的磁盘,以便调整加载的驱动程序。

由于 Linux 客户机 (默认情况下) 是半虚拟化的,因此客户机的内核应该意识到它正在由 Xen 虚拟化,并加载了一个名为 blkfront 的内核驱动程序。此驱动程序将拾取后端 (对于该 VM) 公开的任何磁盘,并在客户机中显示为 /dev/xvd_。

尽管如此,您可以从 dom0 看到该 VDI。使用命令行界面,您可以找出虚拟机的磁盘在哪里,并(可能)访问它们。

以下命令应该为您提供 VM 的 UUID(名为 VMNAME):

vm_uuid=$(xe vm-list name-label=VMNAME --minimal)
echo $vm_uuid

接下来,您可以像这样找出与您的 VM 关联的任何虚拟磁盘映像 (VDI):

xe vbd-list type=Disk params=vdi-uuid vm-uuid=$vm_uuid

您可以使用帮助脚本从 dom0 访问这些 VDI with_vdi。假设您想要访问 UUID 为 06612a19-d9ba-49f8-9f75-6c9d5a9aaef6 的 VDI,您可以运行:

# /opt/xensource/debug/with-vdi 06612a19-d9ba-49f8-9f75-6c9d5a9aaef6
DEVICE=sm/backend/c86e75df-eff8-d139-0c0f-7924465f9bfa/06612a19-d9ba-49f8-9f75-6c9d5a9aaef6

现在您将进入 shell,并且/dev/$DEVICE将成为该 VDI 的块设备表示。例如,您可以使用以下命令查看该 VDI 的分区表:

fdisk -l /dev/$DEVICE

然后,从那里在本地安装文件系统并“试用”它。exit完成后记得键入退出此 shell 并释放 VDI。

干杯

费利佩

答案2

如果我没记错的话,这个实例当时不支持 Xen 磁盘设备。升级内核以包含此类模块解决了这个问题。

相关内容