Hyper-V深度評測六:虛擬機遷移方面的改進
譯文我們在這個系列文章中已相當全面地介紹了Hyper-V的新特性,這回聊聊這個特性:虛擬機遷移。我們不妨深入地介紹實時遷移(Live Migration)、無共享實時遷移(Shared Nothing Live Migration)和實時存儲遷移(Live Storage Migration)。
如果說虛擬化管理員非要挑選一項他們不可或缺的特性,我確信大多數(shù)人會選擇虛擬機遷移。能夠遷移虛擬機、又不給最終用戶帶來明顯的停機時間,這為IT部門在維護、打補丁和高可用性方面提供了極大的靈活性。
最初版本的Hyper-V僅僅提供快速遷移(Quick Migration):在從一個主機切換到另一個主機的過程中,這項特性暫時停止虛擬機。在正常運行時間不是很關鍵的時候,這項特性仍然可用;而在大多數(shù)情況下,快速遷移的速度快于實時遷移。Windows Server 2008 R2中的Hyper-V增添了實時遷移特性,但是只允許在一個集群中的兩個主機之間進行單一的實時遷移。由于2008 R2集群中的***主機數(shù)量是16個,這允許總共有八路實時遷移同時進行。雖然它會按順序處理來自一個主機的多路實時遷移,即一路實時遷移后進行下一路實時遷移,但是這在大型環(huán)境下是個局限因素。
圖1:Hyper-V里面的所有虛擬機遷移操作都由同一個向?qū)С绦騺硖幚?你只要選擇所需的類型即可。
你想同時進行多少路實時遷移,Windows Server 2012就允許進行多少路實時遷移,每個主機有個設置,你可以決定想允許多少路實時遷移。并行實時遷移方面的局限性其實取決于你的硬件:你的實時遷移網(wǎng)絡連接速度是1 Gbps還是10 Gbps(或是不是幾塊網(wǎng)卡組成的群集)、每個虛擬機(在分配內(nèi)存方面)有多大、在實時遷移過程中每個虛擬機中存儲內(nèi)容的變化速度有多快?基于這些參數(shù),你在你的網(wǎng)絡中決定允許每個主機上進行多少路實時遷移。在集群中,一個主機失效后,在該節(jié)點上運行的虛擬機就在其他主機上重啟。當原始主機恢復運行后,虛擬機會自動實現(xiàn)故障恢復——在2008 R2中,這是快速遷移;而在2012中,這是實時遷移。
Hyper-V主機上的實時遷移在默認情況下被禁用,于是你不得不明確允許實時遷移進出主機。此外一個默認設置是,將所有可用的網(wǎng)絡用于實時遷移流量——當然,這應該只在測試環(huán)境下使用。在生產(chǎn)環(huán)境下,某個特定的網(wǎng)絡應該用于實時遷移。
圖2:在能夠遷移虛擬機之前,你需要在非集群主機上啟用進出的實時遷移。
Windows Server 2012還新增了這兩項功能:將虛擬機的虛擬硬盤存儲在SMB 3.0文件共享區(qū)上 (第五篇已有介紹),以及在非集群主機之間實時遷移運行中虛擬機的功能。這在數(shù)據(jù)中心設計方面大大提高了靈活性,因為沒有高可用性要求的低優(yōu)先級虛擬機可以存儲在簡單的文件共享區(qū)上,但是仍可以在主機之間遷移,以便進行維護。
就你需要提供給用戶的所有虛擬機而言,要留意:當你進入到可信賴的帳戶選擇器(account picker)以便添加計算機帳戶時,這些并不會出現(xiàn)。默認情況下,只有用戶、用戶組和安全主體才會出現(xiàn)。只要將計算機帳戶添加到帳戶選擇器尋找的對象,你應該沒有任何問題。要是你有好多個計算機帳戶要添加,那么為實時遷移創(chuàng)建一個群組,然后將所有Hyper-V主機計算機帳戶添加到該群組來得比較容易。
圖3:確保你記得將計算機帳戶添加到你所尋找的對象類型列表中。
實時存儲遷移
Windows Server 2012還允許你通過實時存儲遷移(LSM),遷移運行中虛擬機的虛擬硬盤,不會給最終用戶帶來停機時間。對CIO來說這項特性很重要的原因是,“因為你遲早要更換存儲區(qū)域網(wǎng)絡(SAN);借助這項特性,你就能將所有虛擬機遷移到新的SAN上,沒有停機時間。”對我們這些一線工作人員來說,使用這項特性的主要原因是,能夠?qū)⑻摂M機從一只空間耗盡(通常是由于使用動態(tài)磁盤)的磁盤遷移到擁有足夠存儲空間的另一只磁盤,希望沒有人注意到這個過程。
由于實時存儲遷移,集群不再是虛擬機遷移的邊界。因此,可以從集群取走虛擬機(就遷移虛擬機所用的那段時間而言不具有高可用性),實時存儲遷移到另一個集群上,然后作為高可用性角色添加到新的集群中——這一切都不會帶來虛擬機停運時間。SCVMM 2012 SP1會用一個向?qū)С绦騺硖幚磉@項任務,但如果換成Hyper-V管理器或PowerShell,這是個分為多個步驟的過程。
圖4:你可以遷移整個虛擬機,也可以只遷移存儲系統(tǒng),包括選擇遷移到不同位置的單個VHD(X)文件。
LSM從技術上來說相當令人關注。在初始會話建立起來之后,來自每個VHD(X)文件的數(shù)據(jù)被復制到目的地存儲系統(tǒng),同時還可以跟蹤磁盤的寫入變化。這最終實現(xiàn)了存儲鏡像:寫操作在兩個主機上都進行,隨后進行正常的實時遷移,將虛擬機實際遷移到目的地主機。
無共享實時遷移
Windows Server 2012還提供了在兩個除了網(wǎng)絡連接外,什么都不共享的主機之間遷移運行中虛擬機的特性,這在業(yè)內(nèi)屬于首創(chuàng)。這似乎是一項在生產(chǎn)環(huán)境中應用有限的特性,但是要考慮它所能實現(xiàn)的許多場景,包括前面所述的多個集群之間遷移虛擬機。
非集群實時遷移存在的一個問題是,如果你使用遠程桌面(Remote Desktop)遠程連接至主機1,就開始實時遷移,將虛擬機實時遷移到主機2,這一步成功完成后,你想把虛擬機遷移回到主機1。除非你通過遠程桌面連接至主機2,并在主機2那里開始實時遷移,否則可能會收到錯誤信息。這是由于Windows安全和憑證的工作方式使然;具體來說,Windows不允許一個服務器把你的憑證傳遞給另一個服務器。解決辦法就是,要么以傳統(tǒng)方式啟用約束委派,這需要創(chuàng)建域管理員憑證。另一個辦法是,使用基于資源的Kerberos約束委派,這并不需要擁有域管理員權限,而且還可以跨域和林信任工作。你還可以使用采用CredSSP協(xié)議的PowerShell Remoting或者擁有正確配置的Run As帳戶的SCVMM 2012 SP1,為非集群主機管理安全。
其他改進
現(xiàn)在你可以在虛擬機運行的過程中合并快照,這也實際上刪除了快照文件。另一個巨大的改進在于虛擬機導出和導入方面;在之前的版本中,只要你導入到的目標服務器擁有非常相似的配置,這項特性效果就很好,而虛擬機在導入過程中往往“丟失”部分配置項。新的導入向?qū)С绦驎z查配置,并詢問哪些配置項并不相符,以便讓你可以將虛擬機連起來,以便在新的主機上工作。更棒的是,你實際上沒必要再使用導出功能,只要你有VHD(X)文件和配置文件,就可以在主機上導入虛擬機。
這是我們之前介紹Windows Server 2012中Hyper-V技術改進的一系列文章的結(jié)束篇。但是我們還沒有大功告成:下一次,我將全面比較Hyper-V和VMware vSphere,既著眼于技術層面,還著眼于每家公司對待虛擬機和私有云采取的做法。