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