我正在将 XenServer VM 上的最后几个转换为 Hyper-V。
其中大多数是 Windows 机器,我使用 Windows Backup 完成了备份和恢复。对于某些 Windows 框,我使用 XenServer 导出过程来创建 XVA 文件,然后我将其转换为可以在 Hyper-V 中使用的 VHD。
两种方法都运行良好,但是当我尝试为几个 linux 机器导出和转换过程时,它并没有很好地工作。
我创建了 XVA,我使用 Xenconvert 来转换和创建 VHD,但是当我将它们附加到 Hyper-V VM 时,我只是得到一个闪烁的光标。做了一些研究后,我相信这是因为硬盘驱动器的命名方式不同。例如,原始机器/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
EDIT2:(Linux版本和fstab)
Linux 版本是 Centos 6.7
编辑答案: 我一直在考虑你的问题,我认为 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 下的同一虚拟机上。由于您将两个驱动器都安装到同一台机器上,因此您可以在此时完成迁移过程。安装备份驱动器并将引导加载程序迁移到该驱动器后,您可以卸载替换的 VM 驱动器。然后,您可以重新使用同一个驱动器来迁移您的其他机器(冲洗并重复您需要迁移的每个 VM)。如果您有很多机器,您可以尝试编写此过程的脚本,或者您可以找到已经存在的备份脚本。
选项 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,无需更改。这些 VM 可以通过常规方式转换为 Hyper-V 机器(复制 VHD 或使用 Microsoft 推荐的 System Center 2012 Virtual Machine Manager (VMM))。
PV VM - 这些是“准虚拟化”VM,没有完整的启动内核。它们绑定到 VM 的操作系统并共享一些引导加载程序来引导机器。您需要将VM中的PV内核(kernel-xen)替换为pae内核(kernel-pae)。
我不知道您使用的是什么 linux 发行版,这可能对实际解决方案有一些影响,但是,假设 VM 是 PV VM,以下链接有在 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) 来转换 vm(根据 Microsoft 最佳实践,以下链接中显示的步骤):
https://technet.microsoft.com/en-ca/library/gg610672.aspx
最后说明:
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):
video=hyperv_fb 选项只有在虚拟机上安装了 hyper-v 集成工具后才有效(特定于发行版)。
我知道这个答案来晚了,但我想我会分享我是如何解决这个问题的。我还在寻找将 CentOS7 VM 从 XenServer 6.5 迁移到 Hyper-V 2016 的答案。我尝试了从 Starwind 到导出为 XVA 设备并使用 XenConvert 2.3.1 进行转换的所有方法,但无济于事。
该解决方案实际上非常简单,并且第一次就成功了:下载这个 ISO - https://sourceforge.net/projects/boot-repair-cd/
我采取的高级步骤:
对 xvda 的引用在您的 xen 配置中。
例如: