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





















