姜濤
摘要:Xen虛擬機(jī)現(xiàn)有遷移機(jī)制中,源主機(jī)和目的主機(jī)需要連接共享存儲服務(wù),共享存儲是動態(tài)遷移的必要條件。針對這一局限性提出了一種包括外存遷移在內(nèi)的動態(tài)增量遷移方法,可以在動態(tài)遷移過程中,把虛擬機(jī)磁盤文件從源主機(jī)遷移至目的主機(jī),從而降低了動態(tài)遷移的成本,擴(kuò)大了動態(tài)遷移的應(yīng)用范圍。并通過實驗進(jìn)行了性能分析。
關(guān)鍵詞:虛擬機(jī);Xen;增量遷移
1 引言
目前,虛擬機(jī)產(chǎn)品主要應(yīng)用于大規(guī)模數(shù)據(jù)中心,其在線遷移都依賴于物理主機(jī)之間采用集中式共享外存設(shè)備。對于擁有獨立本地外存的服務(wù)器和個人計算機(jī),遷移技術(shù)在這種場合下受到限制,所以實現(xiàn)一個包括外存遷移在內(nèi)的虛擬機(jī)增量遷移方案將使遷移技術(shù)得到更廣泛的應(yīng)用。
2 虛擬機(jī)遷移技術(shù)分析
為了拓寬現(xiàn)有遷移技術(shù)的應(yīng)用范圍,有必要實現(xiàn)一個包括外存遷移在內(nèi)的遷移方案,使得在采用分散式本地存儲的計算機(jī)環(huán)境下,仍然能夠利用遷移技術(shù)轉(zhuǎn)移計算環(huán)境,并且保證遷移過程中操作系統(tǒng)服務(wù)的可用性,這就需要動態(tài)增量遷移技術(shù)。
3 Xen虛擬機(jī)動態(tài)增量遷移的設(shè)計
對于VM(Virtual Machine)的內(nèi)存狀態(tài)的遷移,Xen采用了主流的預(yù)拷貝(pre-copy)的策略。結(jié)合內(nèi)存遷移的策略,動態(tài)增量遷移主要分為三個階段:PUSH階段、停機(jī)拷貝階段和PULL階段。
在PUSH階段源VM仍在運行,其外存訪問被VMM監(jiān)控。在內(nèi)存pre-copy之前采用與內(nèi)存遷移同樣的原理先進(jìn)行外存的pre-copy。外存pre-copy結(jié)束后,進(jìn)入Xen的內(nèi)存pre-copy階段,在此期間VM對外存的訪問仍然被監(jiān)控記錄,作為后續(xù)階段同步剩余不一致外存狀態(tài)的依據(jù)。在停機(jī)拷貝階段,源VM被掛機(jī),傳輸剩余的內(nèi)存狀態(tài)、CPU狀態(tài)等,并將VMM所記錄的外存狀態(tài)信息發(fā)送給目的VM。
4 Xen虛擬機(jī)動態(tài)增量遷移的實現(xiàn)
4.1 PUSH階段
在遷移開始之前,用戶通過遷移命令(xm migrate)向源主機(jī)VMM發(fā)出遷移請求,收到請求后VMM通知塊設(shè)備即將開始遷移。然后檢查內(nèi)存是否夠用,如果不夠用則先釋放部分內(nèi)存,以保證有足夠的內(nèi)存進(jìn)行遷移。接著源主機(jī)與目的主機(jī)建立socket連接,源主機(jī)請求遷移,當(dāng)收到目的主機(jī)的響應(yīng)之后,進(jìn)入PUSH階段[5] 。
在遷移過程中,源主機(jī)需要監(jiān)控VM對外存的訪問。在設(shè)備后端初始化一個bitmap用于記錄外存塊的狀態(tài)變化。如果某個外存塊在循環(huán)期間被寫臟,就將塊標(biāo)志位置1。每輪循環(huán)首先獲取此bitmap記錄,根據(jù)該記錄發(fā)送前一輪發(fā)送過程中被VM寫臟的外存塊。
4.2停機(jī)拷貝階段
進(jìn)入至停機(jī)階段,源VM被掛起,目的VM尚未啟動,剩余內(nèi)存臟頁和外存臟塊以及運行狀態(tài)等信息被拷貝到目的主機(jī)。在外存pre-copy結(jié)束至源VM被掛起的過程中,源VM外存訪問產(chǎn)生的臟塊仍然被設(shè)備后端記錄在bitmap中。
加入外存遷移的停機(jī)拷貝階段,與之前的區(qū)別主要體現(xiàn)在將源主機(jī)設(shè)備后端所監(jiān)控記錄的bitmap發(fā)送給目的主機(jī),目的主機(jī)啟動后將根據(jù)該bitmap確定本地外存數(shù)據(jù)是否已經(jīng)與源VM的外存數(shù)據(jù)一致[6]。通常情況下,外存的臟塊生成率相對內(nèi)存產(chǎn)生臟頁的機(jī)率是比較低的,因此理論上對停機(jī)拷貝階段時間的影響不大。
4.3 PULL階段
PULL階段由源主機(jī)和目的主機(jī)的遷移進(jìn)程合作完成,包括目的VM外存訪問按需向源主機(jī)請求以及源主機(jī)VM外存主動向目的主機(jī)post-copy。
進(jìn)入至PULL階段,源主機(jī)向設(shè)備后端請求監(jiān)控外存狀態(tài)的bitmap,并根據(jù)此bitmap確定從最后一輪外存pre-copy至源VM被掛起的過程中哪些外存部分被源VM寫臟,并將臟塊發(fā)送至目的主機(jī)。當(dāng)bitmap中標(biāo)記的所有臟塊都被傳輸至目的主機(jī)后,目的主機(jī)已經(jīng)獲得了所有最新的外存數(shù)據(jù),外存遷移結(jié)束[7]。
5 性能測試
第一輪測試在兩臺物理主機(jī)A和B之間進(jìn)行,兩物理主機(jī)均通過網(wǎng)卡連接到局域網(wǎng),VM從一臺物理主機(jī)遷移至另一臺物理主機(jī)。通常文件系統(tǒng)的塊大小為4KB,也就是8個扇區(qū)[8]。在對VM進(jìn)行外存遷移時,首先以8個連續(xù)的扇區(qū)組成的磁盤塊作為bitmap中一個監(jiān)控單位,逐漸遞增,在無工作負(fù)載情況下進(jìn)行多次遷移實驗,得到各階段遷移時間:
第二輪測試在兩臺物理主機(jī)A和B之間設(shè)置共享存儲C,利用未修改過的Xen虛擬機(jī)進(jìn)行試驗,同樣是在無負(fù)載條件下進(jìn)行遷移,得到各階段遷移時間:
從兩組實驗結(jié)果,可以看出,動態(tài)增量遷移在總體遷移時間上明顯大于共享存儲的遷移,其中停機(jī)階段時間相差很少,主要體現(xiàn)在Pre-copy階段和Pull階段,其主要原因是這兩個階段中加入了外存遷移。在對實時性要求不是特別嚴(yán)格,而需要全系統(tǒng)遷移的情況下,動態(tài)增量遷移的實現(xiàn)擺脫了對共享存儲的依賴,使虛擬機(jī)遷移更加自由。
參考文獻(xiàn)
[1] C Clark,K Fraser,S Hand,J G Hansen,E Jul,C Limpach,I Pratt,A Warfield.Live migration of virtual machines[A].In Proceedings of the 2nd USENIX/ACM Symposium on Net-worked Systems Design and Implementation(NSDI2005)[C]. Berkeley,CA,USA:USENIX Association,2005:273-286.
[2] R Chandra,N Zeldovich,C Sapuntzakis,MS Lam.The collec-tive:a Cache-based system management architecture[A].In Proceedings of the Second USENIX/ACM Symposium on Net-worked Systems Design and Implementation(NSDI2005)[C].Boston,MA,2005:259-272.
[3] 劉鵬程.面向云計算的虛擬機(jī)動態(tài)遷移框架[J].計算機(jī)工程,2010,36(5):37-39
[4] 石磊,鄒德清,金海.Xen虛擬化技術(shù)[M],華中科技大學(xué)出版社,2009:38.
[5] 江雪.虛擬機(jī)動態(tài)遷移的研究[J].計算機(jī)應(yīng)用,2008,28(9):2375-2377.
[6] 張彬彬,羅英偉,汪小林.虛擬機(jī)全系統(tǒng)在線遷移[J].電子學(xué)報,2009,37(4):896-899.
[7] C P Sapuntzakis,R Chandra,B Pfaff,J Chow,M S Lam,M Rosenblum.Optimizing the migration of virtual computers[A]. In Proceedings of the5th Symposium on Operating Systems Design and Implementation(OSDI2002)[C].New York,NY,USA:ACM,2002,Volume36:377-390.
[8] R Bradford,E Kotsovinos,A Feldmann,H Schioberg.Live wide-area migration of virtual machines including local persistent state[A].In Proceedings of the3rd International Conference on Virtual Execution Environments(VEE07)[C].NewYork,NY,USA:ACM,2007:169-179.