最近由於工作關係,接觸到 Proxmox VE 這一套開源伺服器虛擬化管理平台。家中的虛擬伺服器一直都是用 Microsoft Hyper-V 建立的,最近在考慮從 Hyper-V 轉到 Proxmox VE 平台上,但是家中卻沒有多一台電腦用來測試。想起了 Hyper-V 2016 版本開始支援巢狀虛擬化 (Nested Virtualization),理論上應該可以在 Hyper-V 內建立 VM 安裝 PVE,然後在虛擬化的 PVE 內建立 VM 來測試。
可是,在剛開始安裝時,就出現錯誤訊息:No support for KVM virtualization detected. Check BIOS setting for Intel VT / AMD-V / SVM.
在 Google 查了一下,發現原來 Hyper-V 的巢狀虛擬化 (Nested Virtualization) 是需要在每一台 VM 上手動開啟的。按照官方網站教學,輸入以下 PowerShell 指令來啟用巢狀虛擬化。(注意 <VMName> 需要輸入 VM 的名稱)
Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true
再重新啟動 VM 執行 Proxmox VE 安裝,這次能夠成功進入安裝畫面。
安裝完成後,在 Proxmox VE 成功建立虛擬伺服器,但是卻發現網絡連接不上。再到 Google 查一下,原來在 Hyper-V 內必需要開啟 MAC Address Spoofing。這個可以在 Hyper-V Manager 的 GUI 介面設定,又或是可以直接輸入以下 PowerShell 指令。(注意 需要輸入 VM 的名稱)
Get-VMNetworkAdapter -VMName <VMName> | Set-VMNetworkAdapter -MacAddressSpoofing On
開啟 MAC Address Spoofing 後,PVE 內的虛擬伺服器網絡馬上就接通了。
安裝完成並測試了一星期,對 PVE 的操作大致了解。接下來的工作,就要將所有 Hyper-V 的虛擬伺服器匯出,格式化電腦重新安裝 PVE,再將 Hyper-V 的虛擬伺服器匯入 PVE 內,完成後會再跟大家分享一下情況。
喜歡電腦科技、遊戲、攝影、音樂。過往曾經從事攝影工作及撰寫專欄文章。近年回歸IT行業,努力學習中, 志願協助於開源社群及IT技術分享的工作。