Windows Server 2012 升級至 2012 R2 (4) - 跨版本即時遷移機制


王偉任 (不自量力 の Weithenn)

2014年8月

實作跨版本即時遷移機制

前述就地升級方式雖然簡單方便,但是 Hyper-V 虛擬化平台上的 VM 虛擬主機必須關機,也代表著線上服務是中斷的狀態,並且在版本升級期間及一開始的相關確認動作也無法提供服務,那麼有沒有更好的方法可以降低,或是能夠讓 VM 虛擬主機不停止服務而完成版本升級的動作。

您可以透過「跨版本即時遷移(Cross Version Live Migration)」機制達成,簡單來說若您的虛擬化環境中平時負載就不重,那麼您可以先把其中一台 Hyper-V 主機中所有的 VM 虛擬主機遷出,接著進行「就地升級(In-Place Upgrade)」或「全新安裝(Clean Installation)」。

此時,運作環境中有一台為新版的 Windows Server 2012 R2 主機,而其它主機為舊版的 Windows Server 2012,雖然新舊版本所採用的通訊協定有所差異,但是跨版本即時遷移機制允許您「從舊版」的 Windows Server 2012主機中,將 VM 虛擬主機「遷移到新版」的 Windows Server 2012 R2 主機當中,並且過程中不會有任何警告或錯誤,也不會影響到線上運作的 VM 虛擬主機。

圖19、舊版 Windows Server 2012 遷移 VM 至新版 Windows Server 2012 R2 主機

但屆時您將發現,一旦把 VM 虛擬主機遷移至新版的 Windows Server 2012 R2 虛擬化平台後,便無法遷移回舊版的 Windows Server 2012 平台中,並得到「通訊協定版本不受支援」的錯誤訊息。

圖20、運作在新版虛擬化平台的 VM 虛擬主機,無法遷移回舊版虛擬化平台

目前的實作環境中有二台 Windows Server 2012 虛擬化平台主機,首先將 VM 虛擬主機遷移至 Node 1 主機,而 Node 2 主機利用就地升級的方式進行版本更新。若您環境當中並無法空出一台 Hyper-V 主機,請額外採購一台硬體伺服器並且進行相關的環境設定如 設定固定 IP 位址、改變電腦名稱、加入網域、設定委派服務、啟用即時移轉機制...等事宜。

順利將 Node2 主機就地升級或進行全新安裝,成為新版的 Windows Server 2012 R2 虛擬化平台後,便可以實作跨版本即時遷移機制,其實就是執行「無共用儲存即時遷移(Shared-Nothing Live Migration)」機制,所以實作以前請再次檢查主機的委派服務是否正確。因為我們現在要將 VM 虛擬主機由 Node1 遷移至 Node2 主機,因此必須要確認 Node2 主機允許 Node1 主機相關的委派服務。

cifs 服務類型為遷移 VM 虛擬主機的「儲存資源」,而Microsoft Virtual System Migration Service 則是遷移 VM 虛擬主機的「記憶體狀態」。

圖21、Node2 主機允許 Node1 主機相關的委派服務

完成確認動作後,便可以在 Hyper-V 管理員視窗中點選 Node1 主機的 VM 虛擬主機,在右鍵選單中選擇「移動」項目,在選擇移動類型頁面中選擇「移動虛擬機器」項目,接著指定 Node2 主機的電腦名稱,並選擇「將虛擬機器的資料移動到單一位置」後,指定將 VM 虛擬主機存放於 Node2 主機的儲存路徑(此實作為 C:\VM),最後按下完成鈕進行 VM 虛擬主機的遷移作業。

圖22、執行跨版本即時遷移

如果 Node2 主機您採用與本文相同就地升級的方式,並在別台主機有開啟 Hyper-V 管理員統一連線管理 Node1、Node2 主機時,雖然可以順利管理但是 VM 遷移到 Node2 主機後,您將會發現「無法開啟」VM虛擬主機的 Console 視窗,造成的原因是 Hyper-V 管理員仍用舊版的連接方式去連接 Node 2 主機,只要將 Hyper-V 管理員關閉後「重新開啟」進行連接即可解決。

圖23、Hyper-V 管理員仍用舊版的連接方式產生錯誤

結語

本文透過說明及實作就地升級以及跨版本即時遷移機制,期望能幫助讀者將 Hyper-V 主機無痛進行版本升級,並且將 VM 虛擬主機進行無縫遷移,後續文章中將會再與大家分享在叢集移轉叢集環境中,該如何進行版本升級作業。

相關文章 | Windows Server 2012 升級至 2012 R2 - 簡介 | 實作就地升級 | 確認升級是否成功 | 跨版本即時遷移機制


技術文章 | Curah!