将VM从XenServer转换为VMware

我有XenServer非半虚拟化VM,我想在ESXi基础架构中使用它们来转换它们。 Essentials Plus包可以做到吗? 我必须使用什么工具?

无论是VMware独立转换器还是vCenter转换器 – 从未亲自完成Xen到VMWare的转换,但这些是您的两个最佳select。

对于任何types的Linux客户端,我个人的“最好的”体验就是将磁盘挂载到ESX(i)上:

  1. 或者停止所有不必要的进程并重新挂载所有挂载点(mount -o remount,ro)或者使用live rescue发行版重新启动源机器(我非常习惯sysrescuecd ,但是使用ssh客户端和dd就地可以)并确保networking连接/configuration
  2. 启动您的目标机器与一个现场救援发行,设置networking接口,启动SSH守护进程(sysrescuecd已经做到这一点,作为初始化脚本的一部分),并设置一个“根”密码(否则你可能无法login在通过SSH)
  3. 通过先ping命令并执行sshlogin,检查从源到目标机器的连通性
  4. 发出dd if=/dev/<src_device> | ssh <destination> 'dd of=/dev/<dst_device>' dd if=/dev/<src_device> | ssh <destination> 'dd of=/dev/<dst_device>'为每个连接的磁盘
  5. 如果设备名称已经改变,而你的引导加载程序或initrd映像无法应付,你当然需要修复它

VMWare转换器在Linux客户端的各种场合失败 – 我只能设法可靠地转换Windows客户端。

我从来没有做过这种操纵。 但是VmWare的KB提供了解释。

编辑:Vmware移动或删除我提到的KB。

这一个仍然活跃,并在Vmware社区文件。

在那里

本教程也可以帮助某人: https : //www.arknet.com.au/migrate-xenserver-vm-to-vmware/

传统方法无法正常工作时,将XenServer vm迁移到vmware的另一种方法。

除了wabbit的 回答 :在步骤5中,这些细节可能有助于任何无法启动虚拟机的人。

如果转换vm( wabbit提到的方式)无法启动,这是由于linux需要重buildinitrd(或initramfs), 这可能会有所帮助)。 所以这可以通过两种方式来完成:

1.如果可能,从“rescue”模式启动vm,然后重新创buildinitrd或initramfs。

[root@localhost]# mkinitrd -v -f /boot/initrd-3.10.594.img 3.10.594

(对于centos7和衍生品)

[root@localhost]# dracut -f

(对于centos7和派生类,对于特定的内核,在.img之后的思维空间)

[root@localhost]# dracut -f /boot/initramfs-2.6.32-358.el6.x86_64.img 2.6.32-358.el6.x86_64

这种转换方式对我有效。 在这样做之前,vm正在“达到基本系统”(对于centos7),然后进入dracut超时。

2.用liveCd启动虚拟机(此时你正在使用vmware,但是你不能启动你的虚拟机)然后,把你的分区挂载到/ mnt(在live / system的/ mnt中),然后按照这些步骤来chroot和重buildinitrd或者initramfs然后重新启动。 下面的scnerario使用LVM( /dev/cl/root ,和/boot作为/dev/sda1标准分区)来移动虚拟机。

[root@localhost ~]# vgscan

[root@localhost ~]# vgchange -ay cl

[root@localhost ~]# lvs

[root@localhost ~]# mount /dev/cl/root /mnt

[root@localhost ~]# mount /dev/sda1 /mnt/boot

[root@localhost ~]# mount --rbind /dev /mnt/dev

[root@localhost ~]# mount --make-rslave /mnt/dev

[root@localhost ~]# mount -t proc /proc /mnt/proc

[root@localhost ~]# mount --rbind /sys /mnt/sys

[root@localhost ~]# mount --make-rslave /mnt/sys

[root@localhost ~]# mount --rbind /tmp /mnt/tmp

[root@localhost ~]# chroot /mnt /bin/bash

[root@localhost ~]# dracut -f

为特定的内核版本。

[root@localhost ~]# dracut -f /boot/initramfs-2.6.32-358.el6.x86_64.img 2.6.32-358.el6.x86_64

注意:对于第4步,可能会使用此行对数据进行gzip压缩。 在vm上运行(被移动)

dd if=/dev/xvda | gzip -1 - | ssh root@ANY_LINUX_IP dd of=/root/image.gz