将 Linux 机器从 XenServer 转换为 Hyper-V

Dri*_*104 5 linux hyper-v grub xenserver

我正在将 XenServer VM 上的最后几个转换为 Hyper-V。

他们中的大多数都是 Windows 机器,我已经使用 Windows Backup 进行了备份和恢复。对于某些 Windows 设备,我使用 XenServer 导出过程创建 XVA 文件,然后将其转换为 VHD,然后可以在 Hyper-V 中使用。

两种方法都运行得很好,但是当我尝试为几个 linux 机器进行导出和转换过程时,它也无法正常工作。

我创建了 XVA,我使用 Xenconvert 来转换和创建 VHD,但是当我将它们连接到 Hyper-V 虚拟机时,我只看到一个闪烁的光标。做了一些研究后,我相信这是因为 HDD 的命名方式不同。例如,原始机器/dev/将显示xvda, xvda1.....但在 Hyper-V 中我相信这些将是sda, sda1......

这就是我有点迷茫的地方......我将其中一台机器引导到转换后的机器上的引导菜单,并查看了菜单和争论选项,但我看不到xvda. 所以要么我的假设是错误的,要么我找错了地方,或者两者都有?

任何帮助将不胜感激,即使建议是以完全不同的方式做到这一点。

EDIT1:(添加启动菜单信息)
如果我选择启动菜单上的第一项并按下,e我会看到以下内容

root (hd0,0)  
kernel /vmlinuz-2.6.32-573.12.1.e16.x86_64 ro root=dev/mapper/VolGroup-lv_root rd_NOLUKS LANG=en_US.UTF-8 rd_NO_MD console=hvc0 KEYTABLE=us rd_LVM_LV=VolGroup/lv_swap SYSFONT=latacyrheb-sun16 rhgb crashkernel=auto quiet rd_LVM_LV=VolGroup/lv_root rd_NO_DM
initrd /initramfs-2.6.32-573.12.1.e16.x86_64.img
Run Code Online (Sandbox Code Playgroud)

EDIT2:(Linux 版本和 fstab)

Linux 版本是 Centos 6.7

/etc/fstab 的副本(我尝试将 UUID 更改为新磁盘的 UUID,但这似乎不起作用 /etc/fstab 的副本

Aub*_*son 4

编辑答案: 我一直在考虑你的问题,我认为 rsync 或 dd 备份/恢复可能是你最好的选择。如果您使用动态增长的 vhdd,那么 rsync 可能是您最好的选择,如果您使用静态定义的磁盘,那么 dd 可能是您最好的选择。

选项 1: 首先,您必须创建 samba 或 cfs 共享,或通过其他方式连接物理驱动器来备份数据。连接备份目标后,您将必须运行 rsync 或 dd 命令来备份驱动器。

Rsync 示例(使用 Arch): https://wiki.archlinux.org/index.php/full_system_backup_with_rsync

DD 示例: http ://www.thegeekstuff.com/2010/10/dd-command-examples/

我很确定如果你想创建一个可移植文件,你可以将 rsync 传输到 gzip 中。

然后您必须在新的 hyper-v 计算机中安装 Centos。然后,您必须完成恢复备份映像的任务(这将根据您用于创建备份映像的命令而有所不同)。

选项 2: 或者,您可以先创建新的 CentOS VM,然后将另一个导出的 VHD 文件装载到 Hyper-V 下的同一虚拟机中。由于您将两个驱动器安装到同一台计算机,因此您可以在此时完成迁移过程。安装备份驱动器并将引导加载程序迁移到该驱动器后,您可以卸载替换的虚拟机驱动器。然后,您可以重新使用同一驱动器来迁移其他计算机(对需要迁移的每个虚拟机进行冲洗和重复)。如果您有很多计算机,您可以尝试编写此过程的脚本,或者您可能能够找到已有的备份脚本。

选项 3: 使用 hyper-V 创建新的 VHD/VHDX 文件,然后将其附加并装载到您想要复制的 Xenserver 来宾,并直接以这种方式进行备份。

我知道有很多困难需要克服,有三个可靠的选择可能会在没有太多麻烦的情况下发挥作用。我对 Linux 有点陌生,但我之前已经使用 DD 相当轻松地移动高清图像,而且我不明白为什么它在这里不能很好地工作。

原答案:

如果您使用 LVM,那么 HDD 不应该引起问题,并且转换后 HD 链接应该完好无损,但我不是专家。我在 Hyper-V 下使用 Linux 有相当多的经验,但没有将 XenServer 计算机转换为 Hyper-V。话虽这么说,您看到的错误向我表明这可能是 Linux 内核的问题。了解您正在使用哪个 Linux 发行版将会很有帮助。

XenServer 有两种 VM 类型:

HVM VM - 这些与 Hyper-V VM 相同,无需更改。这些虚拟机可以通过传统方式转换为 Hyper-V 计算机(复制 VHD 或使用 Microsoft 推荐的 System Center 2012 Virtual Machine Manager (VMM))。

PV VM - 这些是“半虚拟化”VM,没有完整的启动内核。它们与虚拟机的操作系统绑定,并共享一些引导加载程序来引导机器。需要将虚拟机中的PV内核(kernel-xen)替换为pae内核(kernel-pae)。

我不知道您使用的是什么 Linux 发行版,这可能会对实际解决方案产生一些影响,但是,假设虚拟机是 PV 虚拟机,以下链接包含有关在 Linux 机器上安装 PV 内核的说明,因此您想要执行与这些说明相反的操作,以适应您的 Linux 发行版。然后导出过程应该可以工作:

http://itproctology.blogspot.ca/2009/06/pv-enabling-hvm-from-vmware-on.html

此答案假设您在 Xenserver 虚拟机上使用 PV 内核,并假设这是导致启动失败的问题。它还假设您已经尝试使用 System Center 2012 Virtual Machine Manager (VMM) 来转换虚拟机(根据 Microsoft 最佳实践,以下链接中显示的步骤):

https://technet.microsoft.com/en-ca/library/gg610672.aspx

最后注意事项:

  • 我可能会尝试禁用安全启动,看看这是否会产生影响。
  • 确保遵循适用于 Linux VM 的 Microsoft 最佳实践(取决于您使用的发行版)。这些可以在以下链接中找到,您可以在执行导出过程之前尝试对虚拟机进行这些更改(请务必先备份您的虚拟机):

Hyper-V 下的通用 Linux VM 最佳实践: https ://technet.microsoft.com/en-ca/library/dn720239.aspx

Hyper-V 最佳实践下特定于发行版的 Linux VM: https: //technet.microsoft.com/en-ca/library/dn531030.aspx

最后,这是我的虚拟机的 Linux 内核参数(Ubuntu/Debian)(在 /etc/default/grub 中,确保之后运行 sudo update-grub):

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=hyperv_fb:1366x768 elevator=noop numa=off"
Run Code Online (Sandbox Code Playgroud)

video=hyperv_fb 选项仅在虚拟机上安装了 hyper-v 集成工具后才起作用(特定于发行版)。