我正在将我的XenServer VM上的最后几个转换为Hyper-V。
他们中的大多数是Windows机器,我已经使用Windows备份完成备份和恢复。 对于一些使用XenServer导出过程创buildXVA文件的窗口框,然后将其转换为VHD,然后在Hyper-V中使用。
两种方式都完美的工作,但当我试图导出和转换一些Linux的过程中,它不工作。
我创build了XVA,我使用Xenconvert来转换和创buildVHD,但是当我将它们连接到Hyper-V VM时,我只是得到了一个闪烁的光标。 经过一番研究,我相信这是因为硬盘的命名方式不同。 例如,在/dev/的原始机器将显示xvda, xvda1.....但在Hyper-V中,我相信这些将是sda, sda1......
这是我有点失落….我启动了一台机器到转换机器上的启动菜单,看着菜单和争论的选项,但我看不到一个XVDA的引用。 所以,无论我的假设是错误的上面,或者我在错误的地方或两者?
任何帮助将不胜感激,即使build议是以完全不同的方式做到这一点。
编辑1 🙁添加启动菜单信息)
如果我select启动菜单上的第一个项目,然后按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
编辑2: (Linux版本和fstab)
Linux版本是Centos 6.7
/ etc / fstab的副本(我采取了刺,并尝试将UUID更改为新磁盘的UUID,但似乎没有工作
编辑答案:我一直在考虑你的问题,我认为rsync或dd备份/恢复可能是你最好的select。 如果你使用dynamic增长的vhdds,那么rsync可能是你最好的select,如果你使用静态定义的磁盘,那么dd可能是你最好的select。
选项1:首先,您必须创build一个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/
我敢肯定你可以pipersync到gzip如果你想创build一个可移植的文件。
然后,您必须在新的hyper-v机器上安装Centos。 然后,您必须完成恢复备份映像的任务(根据您用来创build备份映像的命令,这将有所不同)。
选项2:或者,您可以先创build新的CentOS VM,然后将其他导出的VHD文件安装到Hyper-V下的同一个虚拟机中。 由于您将两个驱动器都安装到同一台计算机上,因此您可以在此处完成迁移过程。 安装完备份驱动器并将引导加载程序迁移到该驱动器后,即可卸载replace的VM驱动器。 然后,您可以重新使用同一个驱动器来迁移其他机器(对于每个需要迁移的虚拟机进行冲洗和重复)。 如果你有很多机器,你可以尝试编写这个过程的脚本,或者你可能已经find了一个备份脚本。
选项3:使用hyper-V创build新的VHD / VHDX文件,然后将其附加并挂载到您希望复制的Xenserver guest虚拟机上,然后直接进行备份。
我知道有很多的障碍要跳过,有三个固定的选项,可能会没有太多的大惊小怪。 我对Linux有一种新鲜感,但是我之前用DD很容易地把高清图像移到了前面,我不明白为什么它在这里不能很好地工作。
原文答案:
如果你正在使用LVM,那么硬盘不应该造成问题,转换后HD链接应该是完整的,但我不是专家。 在Hyper-V下,我有相当多的Linux经验,但是不能将XenServer机器转换成Hyper-V。 这就是说,你所看到的错误暗示了这可能是Linux内核的一个问题。 知道你正在使用哪个Linux发行版会有帮助。
XenServer有两种VMtypes:
HVM虚拟机 – 这些与Hyper-V虚拟机相同,不需要更改。 这些虚拟机可以通过常规方式转换为Hyper-V机器(复制VHD或使用Microsoft推荐的System Center 2012虚拟机pipe理器(VMM))。
PV虚拟机 – 这些是“虚拟化的”虚拟机,没有完整的启动内核。 它们绑定到VM的操作系统,并共享一些引导程序来引导机器。 您需要用虚拟机内核(kernel-pae)replace虚拟机内的虚拟机内核(kernel-xen)。
我不知道你使用的是什么linux发行版,这可能会对实际的解决scheme有一定的影响,但是假设这些虚拟机是PV虚拟机,下面的链接提供了关于在Linux机器上安装PV内核的指导,所以你想做相反的这些说明,适应你的Linux发行版。 那么出口过程应该工作:
http://itproctology.blogspot.ca/2009/06/pv-enabling-hvm-from-vmware-on.html
这个答案假定您在XenServer vms上使用PV内核,并假定这是导致启动失败的问题。 它还假定您已经尝试使用System Center 2012虚拟机pipe理器(VMM)转换虚拟机(按照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):
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=hyperv_fb:1366x768 elevator=noop numa=off"
video = hyperv_fb选项只有在虚拟机上安装了hyper-v集成工具(分发特定)后才能使用。
我知道这个答案来得晚,但我想我会分享我如何解决这个问题。 我还在寻找从XenServer 6.5迁移到Hyper-V 2016的CentOS7虚拟机的答案。我尝试了一切,从Starwind到XVA设备的导出以及使用XenConvert 2.3.1转换,都没有用处。
这个解决scheme其实很简单,并且第一次工作:下载这个ISO – https://sourceforge.net/projects/boot-repair-cd/
我采取的高级步骤:
参考xvda是在你的xenconfiguration。
例如:
# Created Mon Oct 12 08:38:43 CEST 2015 name='clone0' kernel='/etc/xen/vm-kernels/vmlinuz-3.2.0-4-amd64' ramdisk='/etc/xen/vm-kernels/initrd.img-3.2.0-4-amd64' memory=256 # Networking nics = 1 vif = [ 'bridge=xenbr0' ] disk = [ 'phy:/dev/vg0/clone0.root,xvda1,w', # there you can rename device name 'phy:/dev/vg0/clone0.swap,xvda2,w' # in you VM ] root = '/dev/xvda1 ro' #this tell boot device on_reboot = 'restart' on_crash = 'restart' vcpus = 1
假设这是一个GRUB问题,你有没有尝试启动修复磁盘? https://sourceforge.net/projects/boot-repair-cd/
这个项目是一个可启动的.iso,可以自动修复大量的启动问题。 要使用该工具,请下载.iso,将其安装到Hyper-V虚拟机中,并将其选作引导设备。 如果内存服务,你基本上有三个步骤。
如果你还没有的话,我强烈build议你试试这个工具!
另一个select是通过从CentOS 6.7 .iso启动并从启动菜单中select“Rescue Installed System”来手动修复GRUB。 一旦进入救援控制台,您将采取以下步骤:
chroot /mnt/sysimage grub-install /dev/sda