Linux

將 Linux 機器從 XenServer 轉換為 Hyper-V

  • October 18, 2017

我正在將 XenServer VM 上的最後幾個轉換為 Hyper-V。

其中大多數是 Windows 機器,我使用 Windows Backup 完成了備份和恢復。對於某些 Windows 框,我使用 XenServer 導出過程來創建 XVA 文件,然後將其轉換為 VHD,然後可以在 Hyper-V 中使用。

兩種方法都執行良好,但是當我嘗試為幾個 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

/etc/fstab 的副本(我試了一下並嘗試將 UUID 更改為新磁碟的 UUID,但這似乎不起作用 /etc/fstab 的副本

編輯答案: 我一直在考慮你的問題,我認為 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

最後說明:

  • 我可能會嘗試禁用安全啟動,看看是否有所作為。
  • 確保遵循 Microsoft 針對 Linux VM 的最佳實踐(取決於您使用的發行版)。這些可以在以下連結中找到,您可以在執行導出過程之前嘗試對 VM 進行這些更改(請務必先備份您的虛擬機):

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 核心參數(U​​buntu/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 集成工具後才有效(特定於發行版)。

引用自:https://serverfault.com/questions/754680