在虚拟机管理程序类型之间转换

在虚拟机管理程序类型之间转换

我的公司需要使用我们的专有解决方案自动创建新的虚拟机,为此,我们希望以标准化格式(OVA 似乎是唯一的“标准”)发布产品,或者能够从同一台机器转换为各种不同的虚拟化类型。

到目前为止,这都是手动完成的,这意味着如果客户想要 HyperV VM,我们需要在我们内部的 HyperV Server 上构建它,在 VMWare 上构建 VMWare 等等...我们的目标是实现自动化。

更好的解释:计划是拥有一个 KVM 服务器,配置 VM,并在配置后将其导出为 OVA 格式,并且可能作为对我们选择的虚拟机管理程序的额外礼遇。

我可以使用“qemu-img convert”很好地转换磁盘,但是我似乎无法将机器定义(XML)转换为其他虚拟机管理程序所需的其他格式。

我找不到任何合适的工具,有什么建议吗?

注意:我们无权访问将安装这些内容的虚拟机管理程序,因此我们需要将其导出为 OVA/TAR 等...

答案1

不幸的是,OVA 承诺的远远超出了它能够实现的范围。它充其量只是一种分发磁盘映像的标准格式,但它几乎无法确保磁盘映像能够在多个虚拟机管理程序上无缝启动。每个虚拟机管理程序都会模拟一组不同的虚拟硬件,因此客户操作系统需要为每个虚拟机管理程序安装不同的驱动程序。一些操作系统(如 Linux)相当不错,能够使用任意硬件进行启动,自动检测驱动程序以匹配它们找到的驱动程序,但即便如此,也很容易弄乱并使其崩溃。例如,如果您/etc/fstab将“/”列为/dev/vda1磁盘上的(对于 QEMU 的 virtio-blk 磁盘驱动程序),那么在使用显示为 的 SCSI 磁盘的 VMWare 上启动时,它将无法工作/dev/sda1。Windows 很难适应不同的硬件,因为它喜欢将特定的驱动程序紧密绑定到每个磁盘/NIC/等。

还有一个问题是每个虚拟机管理程序都有自己首选的磁盘映像格式 - VMWare 首选 vmdk,QEMU 理想情况下喜欢 raw 或 qcow2,VirtualBox 有另一种格式,等等。OVA 无法解决任何这些难题。

这些问题就是为什么像 virt-v2v 这样的工具http://libguestfs.org/virt-v2v.1.html) 存在,它为一个虚拟机管理程序获取磁盘映像并重新配置客户操作系统以在不同的虚拟机管理程序上工作,同时更改磁盘格式。

即使您以某种方式构建了一个您认为可以在所有系统上运行的磁盘映像,您仍然需要对其进行完整的 QA 测试周期,以确保它确实可以正常工作。

我认为为每个虚拟机管理程序构建一个专用的磁盘映像要容易得多。

相关内容