将虚拟机从 XenServer 转换为 VMware

将虚拟机从 XenServer 转换为 VMware

我有 XenServer 非半虚拟化 VM,我想将其转换为在我的 ESXi 基础架构中使用。是否可以使用 Essentials Plus 包来完成此操作?我必须使用什么工具?

答案1

无论是VMWare 独立转换器或 vCenter Converter - 从未亲自进行过 Xen 到 VMWare 的转换,但这是您的两个最佳选择。

答案2

对于任何类型的 Linux 客户端,我个人的“最佳”体验就是将磁盘添加到 ESX(i):

  1. 要么停止源上所有不必要的进程,然后以只读方式重新挂载所有挂载点(mount -o remount,ro),要么使用实时救援发行版重新启动源计算机(我很习惯系统救援,但任何其他具有 ssh 客户端并dd已安装到位的客户端都可以)并确保网络连接/配置
  2. 使用实时救援发行版启动目标机器,设置网络接口,启动 SSH 守护进程(sysrescuecd 已经作为 init 脚本的一部分执行此操作)并设置“root”密码(否则您可能无法通过 ssh 登录)
  3. 首先 ping 源计算机并执行 ssh 登录,检查源计算机与目标计算机之间的连通性
  4. dd if=/dev/<src_device> | ssh <destination> 'dd of=/dev/<dst_device>'每个连接的磁盘都存在问题
  5. 如果设备名称已更改,并且你的引导加载程序或 initrd 映像无法应对,你当然需要修复它

VMWare 转换器在 Linux 客户端上多次失败 - 我只能用它可靠地转换 Windows 客户端。

答案3

我从来没有做过这种操作。但是 VmWare 的 KB 解释了如何操作。

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

这个仍然活跃,并且在 Vmware 的社区文档中。

就这样

答案4

除了兔子的 回答:在步骤 5 中,这些详细信息可能会帮助任何在启动虚拟机时遇到问题的人。

如果转换 vm(方式兔子的提到)无法启动,这是由于 Linux 需要重建 initrd(或 initramfs)可能会有帮助)。因此,可以通过两种方式完成此操作:

1.如果可能的话,从“救援”模式启动虚拟机,然后重新创建 initrd 或 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 启动 vm(此时您正在使用 vmware,但无法启动 vm。)然后将您的分区挂载到 /mnt(在 live / system 的 /mnt 中),然后按照以下步骤 chroot 并重建 initrd 或 initramfs,然后重新启动。以下场景使用 LVM( ,以及as/dev/cl/root的标准分区)来移动 vm。/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 压缩。在虚拟机上运行此操作(要移动)

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

相关内容