如果基于 lvm 的客户机具有多路径,建议从 kvm 迁移到 vmware 的方法是什么?我发现几年前就已经有人问过类似的问题:
如何将在 LVM 设置中运行的基于 KVM 的虚拟机迁移到 Vmdk 映像
但是 vCenter 转换器的问题在于,根据文档,设备映射器多路径挂载的 Linux 卷不受支持。在多路径环境下,目前正确的处理方法是什么?
答案1
VMware 转换器可以从任何源计算机迁移,无论源类型如何。(虚拟/物理/KVM/Hyper-V)唯一的问题是 VMware 转换器无法迁移软件 RAID 或 LVM。因此,解决方案是创建一个包含源计算机最低限度的骨架服务器,然后使用 tar 命令从源服务器推送所有内容。
当我将相当多的机架裸机服务器迁移到 VMware 并且其中一些安装了软 raid 或 LVM 时,我不得不使用此解决方案。
为此需要遵循的步骤:
1:创建目标虚拟机盒
2:安装与你的源相同的系统的最低版本(网络、ssh 服务器和 tar 必须可用)
3:创建我们不想包含的目录列表
启动过程 dev sys etc/fstab etc/lvm etc/blkid mnt/yourexternalhdd
将其保存在 /tmp/nocopy 下
4:拍摄目标快照,以防万一
5:通过 SSH 连接到您的源并以 root 身份运行:cd /; tar -zcvpf - -X /tmp/nocopy * |ssh target "cd /; tar -zxvpf - --numeric-owner" 6:重置目标。
例如:
tar -zcvpf--X /tmp/nocopy * | ssh[电子邮件保护]“cd /; tar -zxvpf--numeric-owner”
答案2
为了将现有的磁盘映像转换为 VMware 的 vmdk 格式,您应该使用包 qemu-utils(在 Ubuntu 中)中的程序 qemu-img。
这个过程很简单
sudo qemu-img convert -p -i DiskImage.img -O vmdk DiskImage.vmdk
vmkfstools -i /vmfs/volumes/nfs1/DiskImage.vmdk -d thin /vmfs/volumes/datastore1/MyServer/DiskImage.vmdk
将磁盘映像传输到 ESXi(使用 scp(在 ESXi 中启用 ssh))或 NFS
使用自定义选项创建新的虚拟机并添加转换后的磁盘
引导
答案3
如果您有 LVM 卷,则修复 UUID 会比较棘手。因此,这里为大家提供了一些额外的调整。
像之前一样创建骨架机器,与源箱完全相同。然后使用任何类型的 RescueCD、Ubuntu、Debian、CentOS、Rocky Linux 启动这台机器,随便你叫什么,都行,使用你的系统作为源。
然后使用 rescueCD 启动骨架机器,然后使用以下命令连接源箱:
ssh 用户@主机“sudo -S dd if=/dev/sdS bs=4M”| dd of=/dev/sdT status=progress
sdS 是源磁盘,您可以使用 fdisk -l 获取此信息。在 XEN 中,这很可能是 /dev/xdva
然后目标磁盘是:如果目标系统是 ESXi,则为 /dev/sda。您可以使用 fdisk -l 获取此信息。
您还需要 sudo 中的用户。因此,使用以下命令将用户添加到 sudoers 文件:/etc/sudoers:
迁移用户名 ALL=(ALL:ALL) NOPASSWD: ALL
就是这样。有了它,您可以迁移任何 Linux。唯一的问题是镜像大小,您无法迁移精简版,它会提取整个镜像。所以 100GB 就是 100GB。
但是,该过程完成后您唯一需要修复的是以太网适配器名称,无需其他。
以太网适配器名称将是 ens32 或 ens192,而不是 eth0。您可以使用“ifconfig -a”获取真实名称。在 Ubuntu 中,它将位于 /detc/netplan/00-balblabla 配置文件中,或者如果它早于 16,则位于 /etc/networking/interfaces 中。
CentOS:/etc/sysconfig/network-scripts/ifcfg-eth0 将 ifcfg-eth0 更改为 ifcfg-ens32 或 ifconfig -a 所指示的任何内容。
此外,在 CentOS 上,您可能需要使用正确的 MAC 地址修复 /etc/udev/rules.d/70-persistent-net.rules 文件。CentOS 和 Rocky Linux 更改此文件以匹配正确的 MAC 地址。
因此,删除旧 MAC 并使用新的 ens32 或 192 或您拥有的任何地址添加新 MAC。此后,您需要重新启动盒子,否则它将无法获取新 MAC。