蘭雨晴 ,申 騫 ,劉 銘
(1.北京航空航天大學計算機學院 北京 100191;2.上海中標軟件有限公司 北京 100190)
云計算環(huán)境中在線遷移技術研究
蘭雨晴1,2,申 騫2,劉 銘2
(1.北京航空航天大學計算機學院 北京 100191;2.上海中標軟件有限公司 北京 100190)
在線遷移技術在虛擬化中有著非常廣泛的應用。目前,主流的在線遷移工具都依賴于物理主機之間采用集中式共享外存設備,而在云計算環(huán)境中,許多計算機系統(tǒng)各自獨立擁有本地外存,這就給遷移技術在云計算環(huán)境中的應用帶來了一定的限制。本文在研究云計算及在線遷移技術的基礎上,分析了云計算環(huán)境中在線遷移技術的原理與局限性,提出了基于Xen虛擬機的全系統(tǒng)在線增量遷移的設計與實現方法,并通過實驗進行了性能分析,總結了優(yōu)化遷移性能的一些方法。全系統(tǒng)在線增量遷移擺脫了原有遷移技術對外存設備的依賴,進一步拓寬了其在云計算環(huán)境中的應用范圍。
虛擬化;云計算;在線遷移
* 國家“863”計劃基金資助項目(No.2009AA012406)
云計算技術的發(fā)展與應用已經成為現今研究的熱點。云計算是一種基于互聯(lián)網的大眾參與的計算模式,其計算資源包括計算能力、存儲能力、交互能力等。這些資源都是動態(tài)的、被虛擬化了的,并以服務的方式提供給用戶。虛擬化已經成為云計算等各種新型計算模式的基礎,其所具有的綜合化、模塊化、通用性、容錯以及高可靠性等良好特性使其在云計算中發(fā)揮著重要作用。其中的遷移技術是最引人注目和最有價值的應用之一,所以如何在云計算環(huán)境中利用遷移技術,成為了極具意義的研究問題。
虛擬機遷移技術能夠透明地將運行于VMM(virtual machine monitor)上的操作系統(tǒng)在物理主機間轉移,管理員不需要了解操作系統(tǒng)本身的細節(jié),也不需要關心操作系統(tǒng)上運行的服務狀態(tài),極大地方便了人們的管理操作。目前,主流的在線遷移工具都依賴于物理主機之間采用集中式共享外存設備??紤]到云計算環(huán)境中許多計算機系統(tǒng)各自獨立擁有本地外存,現有遷移技術在這種場合下受到限制,所以有必要實現一個包括外存遷移在內的全系統(tǒng)在線遷移方案,從而拓寬現有遷移技術在云環(huán)境中的應用范圍。
虛擬機在線遷移技術[1]可以在保持虛擬機運行的同時,把其從一個物理計算機遷移到另一個物理計算機,并在目的主機上恢復運行,無縫地實現服務整合。通過在線遷移,可以更方便地實現云計算環(huán)境中服務器的在線維護、在線升級、負載均衡等,并提供了一種災難恢復的解決方案。VMWare的遷移工具VMotion在物理主機共享外存的情況下[2],實現了操作系統(tǒng)運行狀態(tài)的遷移,主要包括內存狀態(tài)、外設狀態(tài)、CPU寄存器狀態(tài)等。賓漢姆頓大學則在Xen基礎上通過在POST階段加入對內存頁的預拷貝[3],加快了在線遷移的速度。這些遷移技術對磁盤的處理都比較簡單,主機間通過SAN(storage area network)、NAS(networkattached storage)等方式共享磁盤存儲,而非實現真正的磁盤遷移,如圖1所示。
在云計算環(huán)境中許多計算機系統(tǒng)并沒有采用共享式外存,而是采用分散式外部存儲方式,現有遷移技術在這種場合下受到限制,虛擬機遷移到目的主機后不能訪問其原有外存設備,或者需要依賴于源主機為其外存訪問提供支持。為了使現有遷移技術更好地應用于云環(huán)境中,有必要實現一個包括外存遷移在內的全系統(tǒng)在線遷移方案,使得在采用分散式本地存儲的計算機環(huán)境下,仍然能夠利用遷移技術轉移計算環(huán)境,并且保證遷移過程中操作系統(tǒng)服務的可用性。
云環(huán)境中的全系統(tǒng)在線增量遷移主要分為三個階段:Push階段、停機拷貝階段和Pull階段。在Push階段,源VM(virtual machine)仍在運行,其外存訪問被VMM監(jiān)控。在內存pre-copy之前采用與內存遷移同樣的原理[4]先進行外存的pre-copy。外存pre-copy結束后,進入Xen的內存pre-copy階段,在此期間VM對外存的訪問仍然被監(jiān)控記錄,作為后續(xù)階段同步剩余不一致外存狀態(tài)的依據。在停機拷貝階段,源VM被掛機,傳輸剩余的內存狀態(tài)、CPU狀態(tài)等,并將VMM所記錄的外存狀態(tài)信息發(fā)送給目的VM。在Pull階段,目的VM被激活,對于本地I/O請求根據需要向源主機請求數據,同時源主機主動根據已記錄的外存狀態(tài)發(fā)送未同步完的外存數據。
Push階段的遷移流程如圖2所示。
首先,用戶通過xm migrate命令向VMM發(fā)出遷移請求[5],收到請求后VMM通知塊設備即將開始遷移;然后,檢查內存是否夠用,如果不夠用則先釋放部分內存,以保證有足夠的內存進行遷移;接著,源主機與目的主機建立socket連接,源主機請求遷移,當收到目的主機的響應之后,調用遷移主體函數正式開始遷移。
外存pre-copy主要借鑒了Xen內存pre-copy的方法[6],通過一個循環(huán)體將源VM的外存數據發(fā)送至目的主機,同時設置了一些相應的循環(huán)終止條件,以避免外存遷移時間過長,從而影響總體遷移時間。
主機端需要監(jiān)控VM對外存的訪問[7]。本文采用的方法是,在設備后端初始化了一個bitmap,用于記錄外存塊的狀態(tài)變化。如果某個外存塊在循環(huán)期間被寫臟,就將相應的標志位置1。每輪循環(huán)首先從設備后端獲取此bitmap記錄,根據該記錄發(fā)送前一輪發(fā)送過程中被VM寫臟的外存塊。第一次遷移時,由于目的主機不存在虛擬機外存的歷史狀態(tài),增量遷移的外存內容為虛擬機全部外存數據,并在此時初始化設備后端中的bitmap,開始對虛擬機外存訪問進行監(jiān)控。此后的每一輪pre-copy,遷移進程從設備后端獲取此bitmap,根據bitmap確定本輪需要發(fā)送的外存臟塊,同時,VMM將bitmap清零,重新開始記錄下一輪pre-copy中虛擬機的外存更新情況。外存pre-copy結束,進入Xen的內存pre-copy階段,這期間VM對外存的訪問仍然被監(jiān)控并且記錄,作為后續(xù)階段同步剩余不一致外存狀態(tài)的依據。
停機拷貝階段的設計與實現比較簡單。進入停機階段,源VM被掛起,目的VM尚未啟動。從最后一輪外存pre-copy至源VM被掛起的過程中,源VM外存訪問產生的臟塊被設備后端記錄在bitmap中,設計流程如圖3所示。
源主機遷移進程從設備后端獲取監(jiān)控外存狀態(tài)的bitmap,并將其發(fā)送至目的主機,目的主機啟動后將根據該bitmap確定本地外存數據是否已經與源VM的外存數據一致。
在這里,我們所加入的外存遷移對停機拷貝階段時間的影響,主要體現在將源主機設備后端所監(jiān)控記錄的bitmap發(fā)送給目的主機。但通過實驗表明,在外存不太大的情況下,這部分所花費的時間只有幾十毫秒,對整體遷移時間的影響很有限。
Pull階段由源主機和目的主機的遷移進程合作完成,包括目的VM外存訪問按需向源主機請求以及源主機VM外存主動向目的主機post-copy,其設計流程如圖4所示。
進入Pull階段之后,從最后一輪外存pre-copy至源主機被掛起的過程中,由于源VM外存訪問而被寫臟的外存數據,要依次發(fā)送至目的主機。源主機向設備后端請求監(jiān)控外存狀態(tài)的bitmap,并根據此bitmap確定從最后一輪外存pre-copy至源VM被掛起的過程中哪些外存部分被源VM寫臟,并將臟塊發(fā)送至目的主機。當bitmap中標記的所有臟塊都被傳輸至目的主機后,目的主機已經獲得了所有最新的外存數據,外存遷移結束。
此處要修改目的主機的設備后端,對其中的IO操作根據不同的類型進行不同的處理。對于目的VM訪問的外存部分,如果bitmap指示外存塊已在本地,則直接提交該IO請求;如果bitmap指示本地外存未在本地,對外存的寫IO操作可以立即提交,讀IO操作則被暫存起來,通過遷移進程向目的主機請求數據,當數據從目的主機更新至本地后,再將暫存的IO請求提交給物理設備驅動,此后的處理過程由系統(tǒng)自身機制進行管理[8],無需我們再進行干涉了。
測試在云環(huán)境中的兩臺物理主機A和B之間進行,兩物理主機均通過網卡連接到局域網,VM從一臺物理主機遷移至另一臺物理主機。
通過分析設備后端代碼可知,設備后端所處理的每個磁盤塊所包含的扇區(qū)是連續(xù)的。通常文件系統(tǒng)的塊大小為4 KB,也就是8個扇區(qū)。在對2 GB外存大小的VM進行遷移時,首先以8個連續(xù)的扇區(qū)組成的磁盤塊作為bitmap中一個監(jiān)控單位,共進行了5次遷移實驗,所得到的各階段平均時間見表1。
表1 VM遷移各階段所用時間(8個連續(xù)扇區(qū))
下面分別記錄了以4個、16個、32個和64個連續(xù)扇區(qū)組成的磁盤塊作為bitmap中一個監(jiān)控單位,分別進行5次遷移實驗所得到的各階段平均時間見表2。
表2 VM遷移各階段所用時間(4、16、32、64 個連續(xù)扇區(qū))
通過以上實驗數據可知,適當加大bitmap的監(jiān)控單位并按此單位進行傳輸可以減少pre-copy和Pull階段的時間,從而縮短總體遷移時間,但對停機階段時間的影響不是很大。從16個連續(xù)扇區(qū)開始,增大連續(xù)扇區(qū)的數目并沒有使pre-copy和Pull階段的時間明顯縮短,而是呈現出一種趨于穩(wěn)定的狀態(tài),所以可以根據實際環(huán)境的需要選擇合適的監(jiān)控及傳輸單位。pre-copy和Pull階段采用不同磁盤塊大小所用時間的趨勢如圖5和圖6所示。
本文闡述了云計算環(huán)境中Xen虛擬機在線遷移技術的基本概念和局限性。在此基礎上,設計并實現了包括虛擬機外存在內的全系統(tǒng)增量遷移方案。從而消除了遷移對于物理主機之間共享存儲的要求,進一步拓寬了遷移技術在云計算中的應用范圍。通過在內存遷移之前對外存數據進行預拷貝以及在遷移后期按需向源主機請求外存數據的策略,將停機時間不斷縮小,從而保證了總體遷移時間不會因為外存遷移而變得過長。通過增量式的外存遷移,縮小了遷移的外存數量,進一步縮短了總體遷移時間,改善了遷移性能。
在以后的工作中,可以通過提高外存臟塊的傳輸速度[9]來進一步縮短遷移時間,并且可以開發(fā)適用于不同外存類型間的遷移版本。對于可靠性[10]要求比較高的環(huán)境,還可以考慮先對源主機的外存制作一個備份,在遷移期間一旦源主機外存發(fā)生故障,立即使用備份繼續(xù)進行遷移工作。
1 Clark C, Fraser K,Hand S, et al.Live migration of virtual machines.In:Proc of USENIX Symposium on Networked Systems Design&Implementation(NSDI).2005
2 Nelson M,Lim B,Hutchins G,et al.Fast transparent migration for virtual machines.In:Proc of USENIX ATC,2005
3 Hines M R,Gopalan K.Post-copy based live virtual machine migration using adaptive pre-paging and dynamic self-ballooning.In:ACM/Usenix International Conference on Virtual Execution Environments,Washington DC,2009
4 Osman S,Subhraveti D,Su G,et al.The design and implementation of zap:a system for migrating computing environments.In:Proceedingsofthe5th USENIX Symposium on Operating SystemsDesign andImplementation (OSDI-02),New York,2002
5 Matthews J N,Dow E,Deshane T,et al.Running xen:a hands-on guide to the art of virtualization.Prentice Hall,2008
6 Barham P,Dragovic B,Fraser K,et al.ACM symposium on operating systems principles.ACM Press,2003
7 Payne B D,Carbone M D P,Lee W.Secure and flexible monitoring of virtual machines.In:Proc of ACSAC'07,2007
8 Menasc, D A, Bennani M N. Autonomic virtualized environments.In Proceedings of the International Conference on Autonomic and Autonomous Systems(ICAS’06),2006
9 Whitaker A,Shaw M,Gribble S D.Denali:lightweight virtual machines for distributed and networked applications. In:Proceedings of the USENIX Annual Technical Conference,June 2002
10 Madnick S E,Donovan J J.Application and analysis of the virtual machine approach to information system security and isolation.ACM Press,1973
Live Migration and Its Application in Cloud Computing
Lan Yuqing1,2,Shen Qian2,Liu Ming2
(1.Institute of Computer,BeiHang University,Beijing 100191,China;2.China Standerd Software Co.,Ltd.,Beijing 100190,China)
Live migration has a very wide range of applications in virtualization.At present most of the mainstream live migration tools relies on the physical hosts with centralized and shared external memory device.But in the cloud computing environment,many computer systems own local external memory independently,which brings some limitions to the live migration applications in the cloud computing environment.Based on the research of cloud computing and live migration,this paper analyzed the principles and limitations of live migration in cloud computing,advanced whole-system live incremental migration’s design and implementation based on Xen.At last,it discussed the performance of whole-system live migration through experiments and summarized some of the ways to optimize the performance of migration.The whole-system live incremental migration gets rid of the original migration technology to the external memory equipment's dependence,has further expanded the application scope in the cloud computing environment.
virtualizationlive,cloud computing,live migration
2010-07-15)
蘭雨晴,工學博士,北京航空航天大學計算機學院副教授,上海中標軟件有限公司研發(fā)總監(jiān),主要研究方向為操作系統(tǒng)及軟件工程;申騫,工學碩士,上海中標軟件有限公司高級技術經理,主要研究方向為操作系統(tǒng)及云計算;劉銘,工學碩士,上海中標軟件有限公司軟件工程師,主要研究方向為虛擬化及云計算。