如何將虛擬機器從 Hyper-V 遷移至 Proxmox:逐步指南

Proxmox VE 是一款適用於各規模組織的可靠虛擬化環境,而將虛擬機器從其他虛擬化解決方案遷移至 Proxmox VE 可能頗具挑戰性。在最新版本中,Proxmox 新增了一個精靈,可部分自動化從 VMware ESXi 遷移至 Proxmox VE 的流程。 然而,從 Hyper-V 遷移至 Proxmox 仍需手動操作。這篇部落格文章將詳細說明從 Hyper-V 遷移虛擬機器的步驟,以及如何設定遷移流程。

NAKIVO for Proxmox 備份

NAKIVO for Proxmox 備份

適用於 Proxmox VE 的無代理、應用程式感知備份解決方案,提供多種備份目標,包括不可變雲端備份。具備多種即時細粒度還原與完整還原選項。

為 Microsoft Hyper-V 虛擬機器進行遷移準備

為了為遷移至 Proxmox VE 做好環境準備,您應先在計劃遷移的 Hyper-V 虛擬機的客體作業系統上安裝 VirtIO 驅動程式。VirtIO 驅動程式是一組專為 Proxmox 虛擬機虛擬裝置設計的驅動程式,可提升效能與使用者體驗,類似於 VMware Tools. 為避免在 Proxmox 主機上啟動虛擬機器後發生問題,必須在開始遷移程序之前安裝 VirtIO 驅動程式。

安裝 VirtIO 驅動程式的步驟:

  1. 下載 最新的穩定版 VirtIO 驅動程式最新的 ISO 標準官方資源. 安裝 QEMU Guest Agent 時也需要此 ISO 映像檔。
  2. 將已下載且包含 VirtIO 驅動程式的 ISO 映像檔插入來源 Hyper-V 虛擬機器的虛擬 CD/DVD 光碟機中。本範例中,我們的來源虛擬機器名稱是 Win10test (Windows 10 是客體作業系統)。這是一台 Generation 2 虛擬機器,擁有一個 20 GB 的 VHDX 虛擬磁碟(動態磁碟,非預先分配——相當於 精簡配置 磁碟) 並載有作業系統 (OS) 及資料。
  3. 開啟 Hyper-V Manager. 右鍵點擊您要從 Hyper-V 遷移至 Proxmox VE 的虛擬機器,然後在快顯功能表中,點擊 Settings.

    Opening the settings of the source VM in Hyper-V Manager

  4. 在的左側窗格中 虛擬機器設定 視窗中,按一下 DVD Drive 選項。在右側窗格中,按一下 Image file, 點擊 Browse 並選取 VirtIO 驅動程式映像檔。在此範例中,檔案名稱為 virtio-win-0.1.240.iso

    點擊 OK 以儲存設定。

    Selecting the ISO image file containing the VirtIO drivers

  5. 啟動來源虛擬機器,並使用原生 Hyper-V 連線至該虛擬機器 VMConnect 工具。右鍵點擊虛擬機器,然後點擊 Connect.
  6. 開啟 Windows 檔案總管 (這台電腦) 在客體作業系統中,前往已插入 ISO 映像檔的 DVD 光碟機。在 DVD 映像檔的根目錄中,找到適用於 Windows 的 VirtIO 驅動程式安裝檔。選取 .微星 格式取決於您的 Windows 版本 (virtio-win-gt-x64.msivirtio-win-gt-x86.msi).

    Installing VirtIO drivers in the guest OS of the source VM

  7. 執行您 Windows 版本(64 位元或 32 位元)對應的可執行檔,並依照安裝精靈的指示安裝 VirtIO 驅動程式。
  8. 安裝 QEMU 來賓代理程式. 安裝程式的位置在於包含 VirtIO 驅動程式的 ISO 映像檔中,位於 guest-agent 目錄。執行適用於您 Windows 版本的安裝程式檔案(我們執行 qemu-ga-x84_64.msi (因為我們使用 Windows 10 64 位元版作為虛擬機器作業系統)。

    Installing QEMU Guest Agent in a guest OS of the source VM

  9. 請使用以下 PowerShell 指令,確認客體代理程式是否正在來源 Hyper-V 虛擬機的客體作業系統中執行:

    Get-Service QEMU-GA

    Checking the QEMU Guest Agent Service

    您也可以在 Windows 圖形使用者介面中的 services.msc 快照。右鍵點擊 My ComputerThis PC 圖示,點擊 Manage 而且,在 電腦管理 視窗,前往 Services and Applications > Services. 請檢查 QEMU Guest Agent 服務 – 此服務必須以 automatic 啟動類型。

    Checking the QEMU Guest Agent service in Windows

  10. 在 Hyper-V 主機上關閉來源虛擬機器。
  11. 如果虛擬機器有 檢查點 (快照),請將其移除。本範例中的虛擬機器沒有檢查點。

匯出 Hyper-V 虛擬機器

若要將您欲從 Hyper-V 遷移至 Proxmox VE 的來源 Hyper-V 虛擬機器匯出, right-click 虛擬機器並點擊 Export 在右鍵選單中。

Starting to export the Hyper-V VM

請指定要儲存已匯出虛擬機器檔案的位置,然後按一下 Export.

Specifying the export location of the Hyper-V VM

檔案已匯出至 H:已匯出 在此範例中,位於 Hyper-V 主機上。

將虛擬機器檔案傳輸至 Proxmox 伺服器

複製已匯出的 Hyper-V 虛擬機器的虛擬磁碟 (VHD 或 VHDX) 至 Proxmox 主機。虛擬磁碟的位置在 Virtual Hard Disks 在已匯出的虛擬機器(VM)的子目錄中,位於為該虛擬機器匯出所指定的目錄內。使用 WinSCP透過 SSH 運作的 SCP 和 SFTP 客戶端,能方便地將檔案從 Windows 電腦複製到 Linux 電腦,包括 Proxmox 主機。

  1. 在 WinSCP 中建立一個新的連線,並登入您的 Proxmox 主機。
  2. 將已匯出的 Hyper-V 虛擬機的 VHD 或 VHDX 虛擬磁碟複製到 Proxmox 主機上。您只需將檔案拖曳 & 將檔案拖放至 WinSCP 中。

    Copying the virtual disk to the Proxmox host

  3. 請檢查 Proxmox 主機上 Hyper-V 虛擬機器的複製虛擬磁碟,以確保檔案完整且未損毀。請在 Proxmox 主機上開啟控制台(終端機),並執行以下指令:

    qemu-img check -r all /home/user1/Downloads/Win10test.vhdx

    Checking the VHDX virtual disk image

在 Proxmox 中建立新的虛擬機器

在 Proxmox 中建立一台新的虛擬機器。您可以透過 Proxmox VE 的網頁介面進行操作。

  1. 資料中心, right-click 它並擊中 Create VM 在右鍵選單中。我們將設定這台新虛擬機器,使其在遷移過程中使用已匯入的虛擬磁碟。

    Creating a new VM on the Proxmox host

  2. Proxmox 虛擬機器建立精靈隨即開啟。
    • General. 輸入虛擬機器名稱(例如 Win10-migrated)。您可以保留預設的虛擬機器 ID 值。在本例中,虛擬機器 ID 為 101。
    • OS. 選擇 請勿使用任何媒體. 客體作業系統類型: Microsoft Windows; 版本: 10/2016/2019.
    • System. 在 韌體 區段,請選擇 OVMF (UEFI) BIOS。在這種情況下,您需要根據該裝置新增一個 EFI 磁碟 q35 且沒有虛擬 TPM(如同原始虛擬機器那樣)。請保留 VirtIO SCSI single 如精靈所建議,我們選擇了 SCSI 控制器。我們選擇 UEFI,是因為我們正在遷移一台 Gen-2 Hyper-V 虛擬機器。
    • Disks. 保留預設參數,但將虛擬磁碟大小設定為 1 GB(這是用於建立新虛擬機器(VM)的臨時虛擬磁碟;我們稍後會刪除它)。
    • CPU, Memory, Network: 請選擇所需的設定值。您可以將 CPU 和記憶體設定為與來源虛擬機器相同的值。

    VM configuration in the Proxmox VM creation wizard

  3. 建立新的 Proxmox 虛擬機器後,請前往該虛擬機器 Hardware 在"設定"中,選取最近建立的 1 GB 暫時性虛擬硬碟, Hard Disk (ide0) 在此情況下,請點擊 Detach. 卸載虛擬磁碟後,磁碟名稱將變更為 Unused Disk 0 就我們的情況而言。

    Detaching the 1-GB virtual disk from the new VM

  4. 刪除 1 GB 的臨時虛擬磁碟。選取 Unused Disk 0 然後點擊 Remove.

    Deleting the 1-GB virtual disk

將 VHDX 檔案轉換為 QCOW2

將 Proxmox 主機上的 Hyper-V 虛擬磁碟 (VHD 或 VHDX) 轉換為原生 Proxmox (KVM) 格式,以便使用更多特點(例如精簡配置)。在 Proxmox 主機上開啟控制台(終端機),並以 root 權限執行以下指令:

qemu-img convert -f vhdx -O qcow2 -o preallocation=off /var/lib/vz/dump/disk.vhdx /var/lib/vz/images/VMID/disk.qcow2

地點:

-f vhdx 用於指定輸入格式(VHDX)。

-O qcow2 用於指定輸出格式(QCOW2)。

-o preallocation=off – 為目標虛擬磁碟檔案啟用精簡配置(該磁碟僅根據實際資料佔用空間)。

/var/lib/vz/dump/disk.vhdx 這是原始的 VHDX 檔案。

/var/lib/vz/images/VMID/disk.qcow2 是目標位置(請將 VMID 替換為您在 Proxmox 中的實際虛擬機器 ID)。

在本範例中,用於轉換的具體指令為 Hyper-V to Proxmox 虛擬磁碟格式(VHDX 轉 QCOW2)的操作步驟如下:

qemu-img convert -f vhdx -O qcow2 -o preallocation=off ./Win10test.vhdx /var/lib/vz/images/101/Win10-converted.qcow2

請等待虛擬磁碟轉換完成。轉換完成後,系統會建立一個新檔案。我們已將 Win10test.vhdxWin10-converted.qcow2

Converting the VHDX virtual disk to the QCOW2 format

重新掃描 Proxmox 儲存裝置以識別新的虛擬磁碟:

qm rescan

Rescanning virtual disks on the Proxmox host

重新掃描虛擬磁碟後,轉換後的虛擬磁碟會顯示在 Proxmox 網頁介面中。

將虛擬磁碟掛載至 Proxmox 虛擬機器

將已轉換的磁碟加入 Unused Disk 將狀態套用至先前建立的虛擬機器(我們新增 Win10-converted.qcow2Win10-migrated (在本例中為 VM)。您可以在 Proxmox 網頁介面中執行此操作。

  1. 雙擊未使用的磁碟 (Unused Disk 0) 將其掛載至虛擬機器。

    Attaching the converted virtual disk to the Proxmox VM

  2. 選擇 IDE (或 SATA)。若將匯入並轉換後的虛擬磁碟掛載至 SCSI 控制器,此虛擬機器在客體作業系統開機時將會出現 BSOD(Windows 中的藍屏死機)。從 IDE 或 SATA 磁碟開機後,Windows 會為 Proxmox 虛擬機器的虛擬硬體安裝驅動程式。接著,我們便可重新設定虛擬磁碟,使其使用 SCSI 磁碟控制器。

    Attaching the converted virtual disk to the virtual IDE disk controller

  3. 新增最近建立的 1 GB 臨時 SCSI 磁碟。必須建立一個連接至 SCSI 控制器的臨時磁碟,才能安裝與 SCSI 控制器配合運作所需的驅動程式。選取在 Hyper-V to Proxmox 遷移 (已遷移至 Windows 10),請前往 Hardware 區段,點擊 Add 並點擊 Hard Disk.

    Creating a new temporary 1-GB virtual disk

  4. 請依照先前說明的方式選取虛擬磁碟參數,但這次請選擇 SCSI 匯流排/裝置。

    Attaching the 1-GB virtual disk

  5. 編輯開機順序。選取您的虛擬機器,前往 Options > Boot order. 雙擊 開機順序 或選擇 Boot Order 然後點擊 Edit.

    Editing the boot order

  6. 請勾選相應的核取方塊,以啟用已轉換、匯入並掛載至此虛擬機器上的虛擬磁碟。預設情況下,新磁碟在開機順序清單中處於未選取狀態。
  7. 將已匯入並啟用的磁碟移至開機清單的最上方。

    Moving the converted virtual disk to the top of the boot order list

  8. 啟動虛擬機器並連線至虛擬機器主控台。選取為 Hyper-V 至 Proxmox 遷移所建立的虛擬機器,點擊 Start 然後點擊 Console. 虛擬機器應已成功啟動。

    Starting the VM and connecting to the VM console in Proxmox VE

  9. 檢查 裝置管理員 的來賓 Windows 作業系統。右鍵點擊 My ComputerThis PC 圖示,點擊 Manage 並選擇 Device Manager. 或者,您可以執行 devmgmt.msc 從命令列執行 snap-in。

    您應該會看到兩個磁碟機:已轉換/匯入的虛擬磁碟(在本例中,是一個連接至 IDE 控制器、容量為 20 GB 的精簡配置磁碟),以及一個 1 GB 的臨時 SCSI 虛擬磁碟。

    您應該會看到一個標準的 SATA/AHCI 控制器和一個 VirtIO SCSI 控制器。當從 IDE 或 SATA 磁碟啟動 Windows 後,一旦在虛擬機器上安裝了 SCSI 控制器,系統便會安裝驅動程式以使用該 SCSI 控制器。這些驅動程式使我們能夠從連接至 SCSI 控制器的磁碟啟動作業系統。您可以重新啟動虛擬機器,以確保一切運作正常。

    Checking virtual devices in the Windows guest OS

  10. 關閉已遷移至 Proxmox 的虛擬機器。
  11. 將連接至 IDE 控制器的虛擬磁碟移除。在 Hardware 您已遷移的虛擬機器中的該區段,然後點擊 Detach. 這是 硬碟 (ide0) 在我們目前的範例中(20 GB)。

    Detaching the converted virtual disk from the VMr

  12. 雙擊此磁碟(目前,我們的 20 GB 磁碟是一顆未使用的磁碟—— Unused Disk 0) 來附加它。

    Selecting the converted virtual disk to attach it to the VM

  13. 將此虛擬磁碟掛載至 SCSI 控制器(匯流排/裝置),然後按一下 Add.

    Attaching the converted virtual disk to the SCSI controller and bus

  14. 我們的 20 GB 虛擬磁碟現在 Hard Disk (scsi1). 我們仍讓這台虛擬機器中的 1 GB 臨時 SCSI 硬碟保持運作。

    The converted virtual disk is attached to the Proxmox VM as a SCSI disk

  15. 編輯虛擬機器開機順序。前往虛擬機器 Options 並雙擊 Boot Order,正如先前所述。
    • 請選取最近已連接至 SCSI 控制器的 Windows 10 虛擬磁碟 (Win10-converted.qcow2 (在此情況下)。
    • 編輯開機順序 – 將此匯入的磁碟(來自安裝 Windows 10 的 Hyper-V)移至清單最上方。
  16. 啟動虛擬機器。Windows 10 客體作業系統現在應會從 SCSI 虛擬磁碟開機。
  17. 待客體作業系統啟動後,請開啟 Device Manager 並檢查磁碟和儲存控制器。現在,我們看到兩個 SCSI 磁碟和兩個 SCSI 控制器(請參閱下方的螢幕截圖)。在此情況下,每個 SCSI 磁碟都連接至其專屬的 SCSI 控制器。在現階段,裝置管理員中顯示的設定對我們而言是正確的。

    Booting the guest OS on the migrated VM

  18. 如果一切運作正常,請關閉虛擬機器。
  19. 重新啟動虛擬機器。如果客體作業系統能正常開機且一切運作正常,您即可從 Proxmox 虛擬機器中移除並刪除該 1 GB 的臨時 SCSI 虛擬磁碟(rm /var/lib/vz/images/101/vm-101-disk1.qcow2) 並刪除從來源 Hyper-V 主機複製的 VHDX 虛擬磁碟 (rm/home/user1/Downloads/Win10-test.vhdx).

    Deleting temporary virtual disk files

透過 NAKIVO 確保虛擬機器在遷移後的保護

完成從 Hyper-V 遷移至 Proxmox 的作業後,請務必使用專用的備份解決方案,在 Proxmox 環境中保護您的虛擬機器。若您的來源 Hyper-V 虛擬機器在遷移前已受備份,轉換後的虛擬機器在 Proxmox VE 中並不會自動受到備份。

NAKIVO Backup & Replication 支援 Hyper-V、Proxmox、VMware vSphere 及 Nutanix 虛擬環境中的虛擬機器保護。NAKIVO 解決方案支援 Proxmox 的無代理備份 虛擬機器。設定方式相當簡單——只需將 Proxmox 主機或叢集新增至清單,並建立備份工作即可。

您可以還原完整的虛擬機器,或執行細粒度還原,以快速恢復個別檔案或物件。資料還原可選擇還原至原始位置或自訂位置。您也可以將虛擬機器備份匯出,並在其他虛擬化平台上進行還原。

NAKIVO Backup & Replication 支援:

  • Incremental backups. 透過僅複製自上次備份以來變更的資料,可減少儲存空間的佔用。設定增量備份並搭配定期完整備份,能提高備份鏈的可靠性。
  • Application-aware backups. 確保備份資料具備崩潰一致性與應用程式一致性。即使虛擬機器上仍有應用程式正在執行,仍應進行備份,並在需要時正確還原資料。
  • Backup encryption. 對傳輸中及儲存中的備份進行加密,以確保 . 根據您的需求,設定來源端、網路及備份儲存庫的加密功能。
  • Backup immutability. 透過不可變性來保護備份免受勒索軟體的侵害。勒索軟體無法修改、變更或刪除這些資料。
  • Multiple backup locations. 實施靈活的備份政策,並遵循 3-2-1 備份法則. NAKIVO 解決方案支援將備份儲存於本地磁碟、NAS設備、SMB 和 NFS 共用資料夾、磁帶以及雲端,包括 Azure Blob、AWS S3 及其他相容於 S3 的物件儲存服務。

結論

若要將 Hyper-V 虛擬機器遷移至 Proxmox,您需要先在來源虛擬機器上安裝 VirtIO 驅動程式以進行準備,接著建立新的 Proxmox 虛擬機器,將匯出的虛擬磁碟轉換格式,並將轉換後的磁碟匯入至 Proxmox 虛擬機器中。SCSI 虛擬磁碟雖能提供更高的效能,但需進行額外設定才能使其正常運作。 您還需從連接至 IDE 或 SATA 虛擬磁碟控制器的虛擬磁碟開機,新增一個臨時 SCSI 磁碟以安裝驅動程式,之後即可將開機磁碟掛載至 SCSI 控制器。請勿忘記使用進階備份解決方案來保護您的資料,例如 NAKIVO Backup & Replication.

試試看 NAKIVO Backup & Replication

試試看 NAKIVO Backup & Replication

立即申請免費試用,全面體驗本解決方案的所有資料保護特點。15 天免費試用。無功能或容量限制。無需提供信用卡資訊。

People also read