若將Windows Server 2012升級為Windows Server 2012 R2,舊有的Hyper-V 3.0就會隨之推升到Hyper-V 3.0 R2虛擬化平台,但是當原有的Hyper-V 3.0虛擬化平台已經有VM虛擬主機運作時,這一項升級作業就要特別小心,本文將點出整個執行過程中需要注意的各個重要事項。
接著,開啟Hyper-V管理員,確認目前的Hyper-V運作版本,依序點選「說明 > 關於Hyper-V管理員」項目,此實作環境中Hyper-V管理員版本已由原本的「6.2.9200.16384」升級為「6.3.9600.16384」,如圖11所示。
|
▲圖11 Hyper-V管理員版本升級為6.3.9600.16384。 |
也可以檢查Hyper-V主機的其他設定,例如IP位址、電腦名稱、網域等等,這些系統及網路設定都保持在原來的狀態。此外,Hyper-V的相關設定也保持在原來的狀態,例如虛擬網路交換器等等。
接著,讓VM虛擬主機進行「啟動(Power On)」動作,此時在Hyper-V管理員就會看到VM虛擬主機中的「整合服務」欄位所顯示的資訊為「需要更新」,這表示Hyper-V Hypervisor偵測到其上運作的VM虛擬主機整合服務為舊版本,如圖12所示。
|
▲圖12 Hyper-V Hypervisor偵測到VM虛擬主機整合服務為舊版本。 |
然後,連線至VM虛擬主機Console視窗,依序點選工作列上的「動作 > 插入整合服務安裝光碟」項目,接著點選「安裝Hyper-V整合服務」項目。此時,將彈出升級Hyper-V整合服務視窗,按下〔確定〕按鈕進行整合服務版本升級作業。
安裝好新版本的整合服務後,系統將會提醒必須重新啟動主機才能套用生效,依照指示按下〔是〕按鈕,將主機重新啟動,如圖13所示。
|
▲圖13 確認進行整合服務版本升級作業並重新啟動。 |
當VM虛擬主機重新啟動完成後,在Hyper-V管理員中的整合服務欄位,將由原本舊版的「需要更新」轉變成「同步完成」,如圖14所示,這代表目前該VM虛擬主機整合服務是最新版本,並與底層Hyper-V Hypervisor有最緊密的結合。
|
▲圖14 VM虛擬主機整合服務升級完成。 |
也可以在Hyper-V虛擬化平台上開啟PowerShell,然後鍵入「Get-VM | Format-Table Name, IntegrationServicesVersion」指令,再次查詢所有運作其上的VM虛擬主機整合服務版本,如圖15所示。
|
▲圖15 再次查詢VM虛擬主機整合服務版本以確認更新狀態。 |
VM建立日期為1601/1/1?
進行到這個部分,可能會發現一個怪異的情況,那就是在Hyper-V管理員中VM虛擬主機的建立日期,竟然會變成「1601/1/1上午8:00:00」的奇怪時間點?
根據Hyper-V Team的Senior Program Manager – John Howard,在一則TechNet Forums討論串中表示,這是「已知臭蟲(Known Bug)」所造成的情況,如圖16所示。詳細討論內容可參考「http://0rz.tw/75g07」。
|
▲圖16 VM虛擬主機的建立日期為1601/1/1上午8:00:00。 |
在相關的修復檔案尚未發布以前,可以利用手動的方式來解決這個怪異的情況。開啟Hyper-V管理員,在右方的「動作」窗格中點選「停止服務」(或者在命令提示字元中輸入「net stop vmms」指令)。
隨後彈出停止虛擬機器管理服務視窗,按一下〔關閉〕按鈕,接著再按一下動作格式中的〔啟動服務〕按鈕(或採用「net start vmms」指令),如此一來,VM虛擬主機的建立日期欄位就會恢復正確了,如圖17所示。
|
▲圖17 VM虛擬主機的建立日期恢復正常為2014/4/26下午8:00:31。 |
實作跨版本即時遷移機制
前述就地升級方式雖然簡單方便,但是Hyper-V虛擬化平台上的VM虛擬主機必須關機(也代表著線上服務將會中斷),而且在版本升級期間及一開始的相關確認動作也無法提供服務。
那麼有沒有更好的方法可以降低,或是能夠讓VM虛擬主機不停止服務而完成版本升級的動作呢?
其實,可以透過「跨版本即時遷移(Cross Version Live Migration)」機制來達成,簡單來說,如果自身的虛擬化環境平時負載就不重,那麼可以先把其中一台Hyper-V主機中所有的VM虛擬主機遷出,再進行「就地升級(In-Place Upgrade)」或「全新安裝(Clean Installation)」。