将一个Linux VM映像从一个VM env迁移到另一个是多么容易?

如果我坚持一个标准,支持良好的VM磁盘映像(如原始映像,或VDI,VMDK,…),Linux VM通常易于在VM环境之间移动? 例如,(说)VirtualBox和KVM,或VMWare和Xen之间? 我在这里谈论的是完全虚拟化的环境,而不是在客户操作系统中需要支持的半虚拟化。

在我看来,目前大多数Linux发行版中的内核都被configuration为…在开机时保持开放的思维和检测,因此,您不必担心有时会从一个虚拟系统中移动Windows VM到另一个(我特别想到Windows的HAL问题,比如ACPI和非ACPI;当我们从VMWare移到VirtualBox的时候,我也只是有一些奇怪的Windows虚拟机)。

我正在寻找一个普遍的答案,但如果它有帮助,具体来说,我将主要用Ubuntu 8.04 LTS和10.04 LTS来做这个。 但是这可能会改变。

Linux能够根据需要为其硬件平台加载模块(驱动程序)。 只要你的内核能够为你find硬件的模块,那么在你启动虚拟机的平台上就不会有问题,除了一些注意事项:

  • 对于所有pipe理程序types,请使用通用硬件:使用IDE磁盘(不使用SCSI,KVM使用SCSI磁盘),并使用e1000networking适配器。 为了便于携带,请远离KVM的vda磁盘或VMware vmxnet。 这是不可能的(VMware默认情况下使用SCSI),但它会有所帮助。
  • 确保在新平台上为迁移的VM使用相同的MAC地址
  • 对你的磁盘使用LVM:引导加载程序将会find你的内核并将它提供给你的initrd; 如果您使用LVM,则不必担心磁盘会发生故障(无论如何,不​​用担心)。
  • 如果可能,请将您的networkingconfiguration留在DHCP上
  • 不要安装VMwareTools和类似的东西
  • 生成一个initrd,并尝试将其他平台上所需的许多驱动程序。 当您尝试从KVM(IDE磁盘)转到VMware(SCSI磁盘)并且您的initrd已经支持VMware的LSI Logic SCSCI控制器时,这将节省您的时间。

我正在将Linux VM从VMWare迁移到xen到openvz到kvm,并且没有任何问题无法通过按摩/ etc / modules来解决,没有什么是你真正无法用googlesearch出来的。

Windows是一个不同的故事。 我已经设法将Win2003服务器虚拟机从VMWare迁移到xen,但不是没有开放心脏手术(在linux中挂载映像并手动编辑引导加载程序configuration)。 我也没有任何麻烦地从xen转到kvm,但这是可以预料的,因为他们都是在qemu下运行的。

我不是亲,但我经常使用从VMware虚拟机相同的VMDK到一个VirtualBox之一,所以我想在虚拟磁盘之间有一些标准。 我从来没有尝试Xen或其他解决scheme。