Related Posts Plugin for WordPress, Blogger...

網管人雜誌

本文刊載於 網管人雜誌第 91 期 - 2013 年 8 月 1 日出刊,NetAdmin 網管人雜誌 為一本介紹 Trend Learning 趨勢觀念、Solution Learning 解決方案、Technology Learning 技術應用的雜誌,下列筆記為本站投稿網管人雜誌獲得刊登的文章,網管人雜誌於每月份 1 日出刊您可於各大書店中看到它或透過下列圖示連結至博客來網路書店訂閱它。

文章目錄

1、前言
2、實作環境
3、MVMC 工具執行檔案
4、MVMC 轉換須知
5、MVMC 圖形介面轉換
          Hyper-V 虛擬化平台前置作業
          VMware VM 虛擬主機前置作業
          執行 V2V 轉換作業
          vSphere Client Plug-in
6、MVMC 文字介面轉換
7、MVDC 文字介面轉換虛擬硬碟
8、結語

1、前言

內建 Hyper-V 3.0 虛擬化技術平台的 Windows Server 2012,已經於 2012 年 9 月重裝上市,並且在今年的 TechEd 2013 會場中順便發佈了 Windows Server 2012 R2 版本,原有的 Hyper-V 3.0 功能已經非常強大,舉例來說,即時遷移(Live Migration)、儲存即時遷移(Live Storage Migration)、無共享儲存遷移(Share-Nothing Live Migration)、快速遷移(Quick Migration)、Hyper-V 複本(Hyper-V Replica)…等功能,這些進階功能在 Hyper-V 3.0 虛擬化平台當中,都不需要額外購買授權便可以盡情使用。

圖 1、Windows Server 2012 R2 新功能預覽

現在 Windows Server 2012 R2 版本當中,Hyper-V 3.0 虛擬化平台更是加強許多功能,例如,線上調整 VHDX 虛擬硬碟空間、針對儲存效能進行品質管控(IOPS QoS),就連原本被詬病的 Linux VM 不僅支援度大幅提升之外,現在也支援動態記憶體(Dynamic Memory)機制。

你是不是也很想體驗看看 Hyper-V 3.0 虛擬化平台的強大功能呢? 但是目前許多企業或組織的 VM 虛擬主機,都已經運作在 VMware vSphere ESX/ESXi 虛擬化平台上,該怎麼樣能夠無縫且快速的遷移到 Hyper-V 3.0 虛擬化平台當中呢?

本文將採用 MVMC(Microsoft Virtual Machine Converter),也就是微軟官方所發佈的 V2V(Virtual to Virtual)轉換工具,實作將目前運作於 VMware vSphere ESX/ESXi 虛擬化平台上的 VM 虛擬主機,轉換到 Hyper-V 3.0 虛擬化平台中繼續運作。

2、實作環境



3、MVMC 工具執行檔案

當您下載 Microsoft Virtual Machine Converter Solution Accelerator.msi 安裝檔案之後,您可以安裝在 Windows 7、Server 2008 R2、Server 2012(Server 含 GUI)主機上,但是必須要配合相對應的 .NET Framework 版本才行。
  • Windows 7、Server 2008 R2 作業系統請安裝 Microsoft .NET Framework 3.5/4.0
  • Windows Server 2012 作業系統請安裝 Microsoft .NET Framework 4.5


當 MVMC 工具安裝完畢之後,您將會發現系統中多了三個 .exe 執行檔案:
  • MVMC.GUI.exe: GUI 圖形介面轉換工具,互動式的精靈介面協助您將 VMware VM 虛擬主機轉換成 Hyper-V VM 虛擬主機,根據微軟官方文件建議若將此工具安裝在 Hyper-V 主機上,將可以獲得最佳的轉換效能。
  • MVMC.exe: 文字介面轉換工具,鍵入指令配合相關參數便可以將 VMware VM 虛擬主機,輕鬆轉換成 Hyper-V VM 虛擬主機。
  • MVDC.exe: 虛擬磁碟文字介面轉換工具,僅提供將 VMware VM 虛擬主機硬碟檔案(.vmdk),轉換成 Hyper-V VM 虛擬主機硬碟檔案(.vhd)。


4、MVMC 轉換須知

MVMC 轉換工具可以獨立運作(Stand-Alone),也可以整合在 System Center 2012 - Orchestrator 當中,更可以透過 Windows PowerShell 協同運作。它能夠將如下 VMware vSphere 虛擬化平台上的 VM 虛擬主機進行轉換作業:
  • VMware vSphere ESX/ESXi 4.1、vCenter Server 4.1
  • VMware vSphere ESXi 5.0、vCenter Server 5.0


請注意!! 如果您要進行轉換的虛擬化平台是舊版 VMware vSphere ESX/ESXi 4.0 的話,那麼您必須要確定該虛擬化平台,已經被 vCenter Server 4.1 或 5.0 所納管才行。

MVMC 轉換工具會將 VMware VM 虛擬主機進行虛擬裝置轉換,包括 虛擬磁碟(Virtual Disks)、設定檔(Configuration)、虛擬記憶體(Virtual Memory)、虛擬處理器(Virtual Processor)、虛擬網路卡(Virtual Network Interface)...等到 Hyper-V 虛擬化平台中,它可以支援轉換到 Hyper-V 2.0/3.0 虛擬化平台上繼續運作:
  • Hyper-V 2.0: Windows Server 2008 R2 SP1、Hyper-V Server 2008 R2 SP1
  • Hyper-V 3.0: Windows Server 2012、Hyper-V Server 2012


目前,MVMC 轉換工具僅支援 VM 虛擬主機作業系統為 Windows(尚未支援 Unix-Like 作業系統進行轉換),並且若轉換的 VMware VM 虛擬主機其所安裝的作業系統為 Windows Server 2003 SP2 時,甚至能夠在 V2V 轉換作業完成之後「自動安裝整合服務(Integration Services)」。目前 MVMC 支援以下 32 或 64 位元的 Windows 作業系統,從 VMware vSphere 虛擬化平台轉換到 Hyper-V 虛擬化平台中運作:
  • Windows Vista Enterprise
  • Windows 7 Enterprise、Professional、Ultimate
  • Windows Server 2003 Standard、Enterprise SP2
  • Windows Server 2003 R2 Standard、Enterprise SP2
  • Windows Server 2008 Enterprise、Datacenter
  • Windows Server 2008 R2 Standard、Enterprise、Datacenter


最後,在實作將 VMware vSphere 虛擬化平台上的 VM 虛擬主機進行轉換以前,還有下列需求必須滿足,以免屆時在進行 V2V 轉換時遭遇到問題:
  • VMware VM 虛擬主機必須為執行中(Running State)狀態。
  • VMware VM 虛擬主機必須已經安裝 VMware Tools才行。
  • VMware VM 虛擬主機必須加入 Windows AD 網域中
  • VMware VM 虛擬主機以及 Hyper-V 虛擬化平台,防火牆設定必須開啟「遠端存取 WMI(Windows Management Instrumentation)」規則,以及「檔案及印表機共用(File and Printer Sharing)」規則,否則將會導致連接失敗(如圖 2 所示)。
  • 執行 VMware VM 虛擬主機轉換作業的使用者帳戶,必須具備 Windows AD 網域及本機 Administrator 權限才行。
  • V2V 轉換作業中所指定的 UNC 分享路徑,所輸入的使用者帳戶必須具備完整的寫入權限。
  • 提供轉換運作的 Hyper-V 虛擬化平台,必須具備足夠的硬碟空間、CPU、Memory 等硬體資源。
  • 如果被轉換的 VMware VM 虛擬主機具備多台 DVD 光碟機,那麼將只會轉換第一台光碟機並且忽略其它台光碟機。
  • VMware VM 虛擬主機若有多顆硬碟時,則 Boot Disk 將會轉換成 IDE-Based VHD,其它硬碟則轉換成 SCSI VHDs。
  • VMware VM 虛擬主機,其虛擬硬碟格式若採用 Independent Disks 格式將無法進行轉換。
  • VMware VM 虛擬主機,若狀態為 Offline 將無法進行轉換。
  • MVDC 虛擬硬碟轉換指令工具
  • 支援轉換 Offline Disk,僅支援整台 VM 虛擬主機的虛擬磁碟。
  • 支援轉換具有多個 IDE Controllers 的 VM 虛擬主機。
  • 支援轉換具有二個 SCSI Controllers 及一個 IDE Controllers 的 VM 虛擬主機。


圖 2、VMware VM 虛擬主機未開啟 WMI 防火牆規則,導致連接失敗

5、MVMC 圖形介面轉換

Hyper-V 虛擬化平台前置作業

首先,將實作原本運作於 VMware vSphere ESXi 5.0 虛擬化平台上,安裝 Windows Server 2008 R2 作業系統的VM虛擬主機,轉換到 Windows Server 2012 所運作的 Hyper-V 3.0 虛擬化平台上,並且將 MVMC 轉換工具直接安裝在 Windows Server 2012 中。當您將 MVMC 轉換工具安裝完畢後,預設情況下 MVMC 執行圖示並不會出現在桌面上,請按下 Windows Key 鍵切換到開始功能表,便會看到 Virtual Machine Converter 圖示(如圖 3 所示)。

圖 3、開始功能表中 Virtual Machine Converter 圖示

接著請將 Windows Server 2012 當中,Windows Management Instrumentation(WMI)以及檔案及印表機共用的防火牆規則開啟(如圖 4 所示),以避免稍後執行轉換工具進行連接時發生失敗導致無法轉換的情況。

圖 4、開啟 WMI、檔案及印表機共用防火牆規則

在 Windows Server 2012 主機中設定分享資料夾,以便稍後將轉換後的 VMware VM 虛擬主機存放到此分享資料夾當中,此次實作中我們設定的 UNC 分享路徑為「\\ws2012.weithenn.org\VMs」,實體主機上的資料夾路徑為「C:\Shares\VMs」(如圖5所示)。

圖 5、分享資料夾路徑

VMware VM 虛擬主機前置作業

此次實作的 VMware VM 虛擬主機,其作業系統為 Windows Server 2008 R2 並且在上面啟動 IIS 網頁服務(如圖 6 所示),以便稍後轉換到 Hyper-V 虛擬化平台之後,我們可以驗證 IIS 網頁服務是否能繼續運作。

圖 6、VMware VM 虛擬主機啟動 IIS 網頁服務

當然 V2V 轉換的來源端 VMware VM 虛擬主機,也必須要開啟 Windows Management Instrumentation(WMI)以及檔案及印表機共用的防火牆規則(如圖 7 所示),以避免稍後轉換工具進行連接時發生失敗導致無法轉換的情況。

圖 7、VMware VM 虛擬主機,也請開啟相關防火牆規則以避免轉換失敗

執行 V2V 轉換作業

將來源端 VMware VM 虛擬主機,以及目的端 Hyper-V 虛擬化平台前置作業設定完畢後,接著便可以放心執行 V2V 的轉換作業了,在開始以前您必須先確定 VMware VM 虛擬主機為運作中的狀態(Powered On),並且安裝了 VMware Tools(Running)

圖 8、VM 虛擬主機開機中並且安裝 VMware Tools

確認無誤後,便可以在 Windows Server 2012 主機上執行 MVMC 圖形介面轉換工具,當您執行 MVMC 工具時會在歡迎視窗中,再次提醒您支援轉換的 VMware VM 虛擬主機作業系統資訊,請直接按下 Next 鍵即可,接著在 Source 頁面中請輸入 VMware vSphere 虛擬化平台資訊,如果你是單機環境便直接輸入 ESX/ESXi 主機資訊,若是由 vCenter Server 控管的話便請輸入連接到 vCenter 的資訊。

此次實作為單機運作的 VMware vSphere ESXi 5.0 環境,因此直接輸入 ESXi 主機位址「esxi5.weithenn.org」,以及管理者帳號 root 及密碼(如圖 9 所示)。

圖 9、輸入連接 ESXi 主機資訊

在 Virtual Machines 頁面中,你會看到剛才所輸入連接的 ESXi 主機上所運作的 VM 虛擬主機,並且你會發現只有「開機中(Powered On)」狀態的 VM 虛擬主機才能被選取,請選擇此次實作 V2V 轉換的 VM 虛擬主機「WS2008」(如圖 10 所示)。

圖 10、只有開機中的 VM 虛擬主機才能被選取

在 Virtual Machine Connection 頁面中,請輸入具備 Windows AD 網域及本機 Administrator 權限的使用者帳戶,同時你可以設定當 V2V 轉換作業完畢之後是否要將來源端VM虛擬主機,直接關機(以方便新的VM虛擬主機接手),或者進行開機(以便驗證新的 VM 虛擬主機服務沒問題後再接手)等設定(如圖11所示)。
  • Final state of source virtual machine: V2V 轉換作業完畢後,來源端 VMware vSphere 的 VM 虛擬主機是否開機(On 為開機、Off 為關機)。
  • Final state of destination virtual machine: V2V 轉換作業完畢後,目的端 Hyper-V 的 VM 虛擬主機是否開機(On 為開機、Off 為關機)。

圖 11、設定 V2V 轉換作業完畢後,來源或目的端 VM 虛擬主機是否開機

在 Workspace 頁面中,請選擇在 MVMC 轉換工具主機當中暫存資料夾,此暫存資料夾為屆時將 VMware VM 虛擬主機的虛擬硬碟檔 .vmdk,轉換成 Hyper-V VM 虛擬主機虛擬硬碟檔 .vhd 時的暫存路徑,建議此暫存資料夾的空間應該要等於或大於 .vmdk 檔「二倍」,例如,.vmdk 檔若是 20 GB 那麼暫存資料夾至少應具備 40 GB 空間比較保險。

圖 12、指定虛擬硬碟檔轉換暫存資料夾

最後在 Hyper-V Host 頁面中,請輸入 Hyper-V 虛擬化平台的主機名稱或 IP 位址,以及具備存取權限的使用者帳戶,同時選擇要將轉換後的 VM 虛擬主機相關檔案,存放在先前設定 Hyper-V 主機的 UNC 分享路徑中,以及您希望將虛擬硬碟檔案轉換成「固定大小(Fixed size)」或「動態大小(Dynamically expanding)」。

圖 13、輸入 Hyper-V 虛擬化平台資訊

相關資訊確認無誤之後,只要按下 Finish 鍵便會立即進行 VMware VM 虛擬主機的轉換作業。當開始執行 V2V 轉換作業後,請同時開啟 vSphere Client 以及 MVMC 轉換工具,以便觀察整個 V2V 轉換過程:

1. 將該 VMware VM 虛擬主機執行「快照(Snapshot)」的動作。
2. 移除 VMware VM 虛擬主機中的 VMware Tools(這便是 MVMC 設定轉換過程中須要輸入 VM 管理者帳戶的原因)。
3. 將 VMware VM 虛擬主機執行「關機(Shutdown)」的動作後,進行 V2V 轉換作業。
4. VMware VM 虛擬主機執行「匯出(Export OVF template)」動作,並且將匯出的檔案如 虛擬硬碟檔 .vmdk,寫入到剛才指定的暫存資料夾當中(此時 MVMC 主機網路流量將會爆增)。
5. 在暫存資料夾當中產生 VHD 資料夾,且執行 VMware 虛擬硬碟檔 .vmdk 轉換成 Hyper-V 虛擬硬碟檔 .vhd 的任務。
6. 虛擬硬碟轉換作業完畢之後,將 .vhd 虛擬硬碟檔案複製到先前指定的 UNC 分享路徑中。
7. 建立 Hyper-V VM 虛擬主機相關設定檔,並且依照此次實作的設定將 VMware VM 虛擬主機關機,而 Hyper-V VM 虛擬主機開機。

圖 14、V2V 轉換作業完畢

V2V 轉換完成作業完成後,如同我們在轉換設定過程中的結果,也就是來源端 VMware VM 虛擬主機關機,而目的端 Hyper-V VM 虛擬主機自動開機。因為此次實作所轉換的 VM 虛擬主機作業系統為 Windows Server 2008 R2 SP1,而 Hyper-V 虛擬化平台為最新 3.0 版本,所以 VM 虛擬主機只需要「升級」整合服務版本即可,若是運作在舊版 Hyper-V 2.0 虛擬化平台則不需要安裝或升級整合服務版本。

當 VM 虛擬主機開機完成後,您會看到在摘要頁籤中活動訊號欄位其狀態為「良好(無應用程式資料)」,表示 Hyper-V 虛擬化平台已經可以偵測 VM 虛擬主機運作狀態,但是在網路功能頁籤中您會看到網路介面卡狀態為「已降級(需要整合服務升級)」的提示訊息,表示必須要「升級」整合服務以達到最佳化運作狀態。此外,若您登入作業系統開啟裝置管理員後,您可以看到有「無法辨識的裝置」,且網路介面卡名稱為「Microsoft 虛擬機器匯流排網路介面卡」。

請在 VM 虛擬主機所開啟的 Console 視窗中,依序點選「動作 > 插入整合服務安裝光碟」準備升級整合服務版本,當 Hyper-V 整合服務升級完畢後會提示您重新啟動主機以套用生效,請按下「是」鍵確認即可,重新啟動主機登入作業系統後,開啟裝置管理員您可以看到已經沒有任何無法辨識的裝置,且網路介面卡名稱則變更為「Microsoft Hyper-V 網路介面卡」,回到 Hyper-V 管理員視窗中您會看到,在摘要頁籤中活動訊號欄位其狀態變更為「良好(應用程式健康情況良好)」。

圖 15、VM 虛擬主機升級整合服務

vSphere Client Plug-in

你也可以在 MVMC 主機上安裝 vSphere Client,以及 Microsoft Virtual Machine Converter Plug-in for VMware vSphere Client.msi 執行檔。請注意!!  vSphere Client Plug-in 只能安裝在 vSphere Client 4.15.0 版本中,目前尚未支援最新版本 vSphere Client 5.1

圖 16、MVMC vSphere Client Plug-in 尚未支援最新 5.1 版本

當你將 MVMC vSphere Client Plug-in 安裝完畢後,只要在欲進行 V2V 轉換的 VMware VM 虛擬主機按下滑鼠右鍵,在彈出的右鍵選單中便會多了「Convert to Hyper-V virtual machine」選項。

圖 17、vSphere Client 右鍵選單中多了一個選項

同樣的注意事項,如果您要進行轉換的 VM 虛擬主機並沒有開機,或是沒有安裝 VMware Tools 的話便會得到錯誤訊息(如圖 18 所示)。當然,若 V2V 轉換條件符合的話則會自動開啟 MVMC 轉換視窗。

圖 18、VM 虛擬主機沒有開機或未安裝 VMware Tools,將無法進行 V2V 轉換而產生錯誤訊息

6、MVMC 文字介面轉換

在本文一開始已經說明 MVMC 有圖形化介面轉換工具,也有文字介面的指令轉換工具,接下來便是實作利用指令的方式來進行 VM 虛擬主機的轉換作業,請在 MVMC 主機使用「系統管理員」權限開啟命令提示字元,切換到 MVMC 安裝路徑後輸入「mvmc.exe  /?」指令,便可以得到詳細的參數資訊。

接著輸入 MVMC 轉換指令並且配合相關參數(以下將參數拆開條列以便讀者閱讀),便可以執行 VM 虛擬主機的轉換作業:

  • 來源端 VM 虛擬主機: /GuestVM=ws2008.weithenn.org
  • 來源端 vSphere Host: /SourceHost=10.10.75.5
  • 來源端 vSphere Host 管理帳號: /SourceHostUser=root
  • 來源端 vSphere Host 管理密碼: /SourceHostPwd=1qaz@WSX
  • 目的端 Hyper-V Host: /TargetHost=10.10.75.12
  • 目的端 UNC 分享路徑: /TargetVHDPath=\\ws2012.weithenn.org\vms


相關資訊輸入無誤後,按下 Enter 鍵便會執行 VM 虛擬主機轉換任務,V2V 轉換任務完成後會顯示「The virtual machine was successfully converted.」資訊(如圖 19 所示)。

圖 19、使用指令進行 VM 虛擬主機轉換任務

7、MVDC 文字介面轉換虛擬硬碟

MVMC 轉換工具中,另外有個 MVDC 執行檔專門用來轉換虛擬硬碟檔 .vmdk -> .vhd,同樣的只要切換到 MVMC 安裝路徑後,輸入「mvdc.exe  /?」便可以得到詳細的參數資訊。

熟知 VMware VM 虛擬主機硬碟檔案架構的人便知,事實上 .vmdk 檔案只是個「對應檔案(Mapping File)」,真正佔用磁碟空間的其實是「-flat.vmdk」,那麼該轉換哪個檔案才對呢? 轉換方式很簡單,只要輸入來源端虛擬硬碟檔 .vmdk 路徑(MVDC 工具會自行處理),以及目的端虛擬硬碟檔 .vhd 路徑即可(如圖 20 所示)。

圖 20、虛擬硬碟檔轉換 .vmdk -> .vhd

請注意!! 經過筆者實測後發現,雖然 MVDC 工具有提供「/Dyn」參數,可以將固定大小硬碟轉換成動態大小的功能,但是經過實際轉換後卻發現格式仍為固定大小,甚至轉換後的 .VHD 檔案還比原本的固定大小還大(如圖 21 所示)。

圖 21、此版本中的 /Dyn 參數似乎有問題

8、結語

經過本文實作演練後,相信讀者可以利用微軟所發佈的 V2V 轉換工具,不管是透過 MVMC 圖形化介面轉換工具,或者是 MVMC 文字介面指令工具,甚至是結合 vSphere Client Plug-in 的轉換工具,都可以輕鬆的將 VMware vSphere 虛擬化平台上,原本所運作的 VM 虛擬主機,快速且無縫的轉換到 Hyper-V 2.0/3.0 虛擬化平台上繼續運作。