1 引言
云計算技術的發展與應用已經成為現今研究的熱點。云計算是一種基于互聯網的大眾參與的計算模式,其計算資源包括計算能力、存儲能力、交互能力等。這些資源都是動態的、被虛擬化了的,并以服務的方式提供給用戶。虛擬化已經成為云計算等各種新型計算模式的基礎,其所具有的綜合化、模塊化、通用性、容錯以及高可靠性等良好特性使其在云計算中發揮著重要作用。其中的遷移技術是最引人注目和最有價值的應用之一,所以如何在云計算環境中利用遷移技術,成為了極具意義的研究問題。
虛擬機遷移技術能夠透明地將運行于VMM (virtualmachine monitor)上的操作系統在物理主機間轉移,管理員不需要了解操作系統本身的細節,也不需要關心操作系統上運行的服務狀態,極大地方便了人們的管理操作。目前,主流的在線遷移工具都依賴于物理主機之間采用集中式共享外存設備。考慮到云計算環境中許多計算機系統各自獨立擁有本地外存,現有遷移技術在這種場合下受到限制,所以有必要實現一個包括外存遷移在內的全系統在線遷移方案,從而拓寬現有遷移技術在云環境中的應用范圍。
2在線遷移技術背景
2.1原理及局限性
虛擬機在線遷移技術m可以在保持虛擬機運行的同時,把其從一個物理計算機遷移到另一個物理計算機,并在目的主機上恢復運行,無縫地實現服務整合。通過在線遷移,可以更方便地實現云計算環境中服務器的在線維護、在線升級、負載均衡等,并提供了一種災難恢復的解決方案。VMW,的遷移工具VMotion在物理主機共享外存的情況下,實現了操作系統運行狀態的遷移,主要包括內存狀態、外設狀態、CPU寄存器狀態等。賓漢姆頓大學則在Xen基礎上通過在POST階段加人對內存頁的預拷貝,加快了在線遷移的速度。這些遷移技術對磁盤的處理都比較簡單,主機間通過SAN (storage area network),NAS(network-attached storage)等方式共享磁盤存儲,而非實現真正的磁盤遷移,如圖1所示。
圖1 基于共享存儲的虛擬機遷移
在云計算環境中許多計算機系統并沒有采用共享式外存,而是采用分散式外部存儲方式,現有遷移技術在這種場合下受到限制,虛擬機遷移到目的主機后不能訪問其原有外存設備,或者需要依賴于源主機為其外存訪問提供支持。為了使現有遷移技術更好地應用于云環境中,有必要實現一個包括外存遷移在內的全系統在線遷移方案,使得在采用分散式本地存儲的計算機環境下,仍然能夠利用遷移技術轉移計算環境,并且保證遷移過程中操作系統服務的可用性。
2.2設計思路
云環境中的全系統在線增量遷移主要分為三個階段:Push階段、停機拷貝階段和Pull階段。在Push階段,源VM(virtual machine)仍在運行,其外存訪問被VMM監控。在內存pre-copy之前采用與內存遷移同樣的原理先進行外存的pre-copy。外存pre-copy結束后,進人Xen的內存pre-copy階段,在此期間VM對外存的訪問仍然被監控記錄,作為后續階段同步剩余不一致外存狀態的依據。在停機拷貝階段,源VM被掛機,傳輸剩余的內存狀態、CPU狀態等,并將VMM所記錄的外存狀態信息發送給目的VM。在Pull階段。目的VM被激活,對于本地UO請求根據需要向源主機請求數據,同時源主機主動根據已記錄的外存狀態發送未同步完的外存數據。
3 云環境中全系統在線增量遷移的設計與實現
3.1 Push階段的設計與實現
Push階段的遷移流程如圖2所示。
圖2 Push階段遷移流程
首先,用戶通過。migrate命令向VMM發出遷移請求,收到請求后VMM通知塊設備即將開始遷移;然后,檢查內存是否夠用,如果不夠用則先釋放部分內存,以保證有足夠的內存進行遷移;接著,源主機與目的主機建立socket連接.源主機請求遷移.當收到目的主機的響應之后,調用遷移主體函數正式開始遷移。
外存pre-copy主要借鑒} Xen內存pre-copy的方法通過一個循環體將源VM的外存數據發送至目的主機,同時設置了一些相應的循環終止條件,以避免外存遷移時間過長,從而影響總體遷移時間。
主機端需要監控VM對外存的訪問。本文采用的方法是,在設備后端初始化了一個bitmap,用于記錄外存塊的狀態變化。如果某個外存塊在循環期間被寫臟,就將相應的標志位置1。每輪循環首先從設備后端獲取此bitmap記錄,根據該記錄發送前一輪發送過程中被VM寫臟的外存塊。第一次遷移時,由于目的主機不存在虛擬機外存的歷史狀態,增量遷移的外存內容為虛擬機全部外存數據,并在此時初始化設備后端中的bitmap,開始對虛擬機外存訪問進行監控。此后的每一輪pre-copy,遷移進程從設備后端獲取此bitmap,根據bitmap確定本輪需要發送的外存臟塊,同時,VMM將bitmap清零,重新開始記錄下一輪pre-copy中虛擬機的外存更新情況。外存pre-copy結束,進人Xen的內存pre-copy階段,這期間VM對外存的訪問仍然被監控并且記錄,作為后續階段同步剩余不一致外存狀態的依據。
3.2停機拷貝階段的設計與實現
停機拷貝階段的設計與實現比較簡單。進入停機階段,源VM被掛起,目的VM尚未啟動。從最后一輪外存pre-copy至源VM被掛起的過程中,源VM外存訪問產生的臟塊被設備后端記錄在bitmap中,設計流程如圖3所示。
圖3 停機拷貝階段遷移流程
源主機遷移進程從設備后端獲取監控外存狀態的bitmap,并將其發送至目的主機,目的主機啟動后將根據該bitmap確定本地外存數據是否已經與源VM的外存數據一致。
在這里,我們所加人的外存遷移對停機拷貝階段時間的影響,主要體現在將源主機設備后端所監控記錄的bitmap發送給目的主機。但通過實驗表明,在外存不太大的情況下,這部分所花費的時間只有幾十毫秒,對整體遷移時間的影響很有限。
3.3 Pull階段的設計與實現
Pull階段由源主機和目的主機的遷移進程合作完成,包括目的VM外存訪問按需向源主機請求以及源主機VM外存主動向目的主機post-copy,其設計流程如圖4所示。
圖4 Pull階段遷移流程
進人Pull階段之后,從最后一輪外存pre-copy至源主機被掛起的過程中,由于源VM外存訪問而被寫臟的外存數據,要依次發送至目的主機。源主機向設備后端請求監控外存狀態的bitmap,并根據此6itmap確定從最后一輪外存pre-copy至源VM被掛起的過程中哪些外存部分被源VM寫臟,并將臟塊發送至目的主機。當bitmap中標記的所有臟塊都被傳輸至目的主機后,目的主機已經獲得了所有最新的外存數據,外存遷移結束。
此處要修改目的主機的設備后端,對其中的IO操作根據不同的類型進行不同的處理。對于目的VM訪問的外存部分,如果bitmap指示外存塊已在本地,則直接提交該IO請求;如果bitmap指示本地外存未在本地,對外存的寫IO操作可以立即提交,讀IO操作則被暫存起來,通過遷移進程向目的主機請求數據,當數據從目的主機更新至本地后,再將暫存的IO請求提交給物理設備驅動,此后的處理過程由系統自身機制進行管理,無需我們再進行干涉了
。
4 性能測試及優化
測試在云環境中的兩臺物理主機A和B之間進行,兩物理主機均通過網卡連接到局域網,VM從一臺物理主機遷移至另一臺物理主機。
通過分析設備后端代碼可知,設備后端所處理的每個磁盤塊所包含的扇區是連續的。通常文件系統的塊大小為4 KB,也就是8個扇區。在對2 GB外存大小的VM進行遷移時,首先以8個連續的扇區組成的磁盤塊作為bitmap中一個監控單位,共進行了5次遷移實驗,所得到的各階段平均時間見表1。
表1 VM遷移各階段所用時間(8個連續扇區)
下面分別記錄了以4個、16個、32個和64個連續扇區組成的磁盤塊作為bitmap中一個監控單位,分別進行5次遷移實驗所得到的各階段平均時間見表2。
表2 VM遷移各階段所用時間(4,16.32,64個連續扇區)
通過以上實驗數據可知,適當加大bitmap的監控單位并按此單位進行傳輸可以減少pre-copy和Pull階段的時間,從而縮短總體遷移時間,但對停機階段時間的影響不是很大。從16個連續扇區開始,增大連續扇區的數目并沒有使pre-copy和Pull階段的時間明顯縮短,而是呈現出一種趨于穩定的狀態,所以可以根據實際環境的需要選擇合適的監控及傳輸單位。pre-copy和Pull階段采用不同磁盤塊大小所用時間的趨勢如圖5和圖6所示。
圖5 pre-copy階段采用不同連續磁盤塊大小所用時間趨勢
圖6 Pull階段采用不同連續磁盤塊大小所用時間趨勢
5結束語
本文闡述了云計算環境中Xen虛擬機在線遷移技術的基本概念和局限性。在此基礎上,設計并實現了包括虛擬機外存在內的全系統增量遷移方案。從而消除了遷移對于物理主機之間共享存儲的要求,進一步拓寬了遷移技術在云計算中的應用范圍。通過在內存遷移之前對外存數據進行預拷貝以及在遷移后期按需向源主機請求外存數據的策略,將停機時間不斷縮小,從而保證了總體遷移時間不會因為外存遷移而變得過長。通過增量式的外存遷移,縮小了遷移的外存數量,進一步縮短r總體遷移時間,改善了遷移性能。
在以后的工作中,可以通過提高外存臟塊的傳輸速度來進一步縮短遷移時間,并且可以開發適用于不同外存類型間的遷移版本。對于可靠性Dol要求比較高的環境,還可以考慮先對源主機的外存制作一個備份,在遷移期間一旦源主機外存發生故障,立即使用備份繼續進行遷移工作。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:云計算環境中在線遷移技術研究
本文網址:http://www.guhuozai8.cn/html/support/11121810309.html