資源描述:
《xen虛擬機(jī)動(dòng)態(tài)增量遷移的研究實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、Xen虛擬機(jī)動(dòng)態(tài)增量遷移的研究實(shí)現(xiàn):Xen虛擬機(jī)現(xiàn)有遷移機(jī)制中,源主機(jī)和目的主機(jī)需要連接共享存儲(chǔ)服務(wù),共享存儲(chǔ)是動(dòng)態(tài)遷移的必要條件。針對(duì)這一局限性提出了一種包括外存遷移在內(nèi)的動(dòng)態(tài)增量遷移方法,可以在動(dòng)態(tài)遷移過(guò)程中,把虛擬機(jī)磁盤文件從源主機(jī)遷移至目的主機(jī),從而降低了動(dòng)態(tài)遷移的成本,擴(kuò)大了動(dòng)態(tài)遷移的應(yīng)用范圍。并通過(guò)實(shí)驗(yàn)進(jìn)行了性能分析。 關(guān)鍵詞:虛擬機(jī);Xen;增量遷移 1引言 目前,虛擬機(jī)產(chǎn)品主要應(yīng)用于大規(guī)模數(shù)據(jù)中心,其在線遷移都依賴于物理主機(jī)之間采用集中式共享外存設(shè)備。對(duì)于擁有獨(dú)立本地外存的服
2、務(wù)器和個(gè)人計(jì)算機(jī),遷移技術(shù)在這種場(chǎng)合下受到限制,所以實(shí)現(xiàn)一個(gè)包括外存遷移在內(nèi)的虛擬機(jī)增量遷移方案將使遷移技術(shù)得到更廣泛的應(yīng)用。 2虛擬機(jī)遷移技術(shù)分析 為了拓寬現(xiàn)有遷移技術(shù)的應(yīng)用范圍,有必要實(shí)現(xiàn)一個(gè)包括外存遷移在內(nèi)的遷移方案,使得在采用分散式本地存儲(chǔ)的計(jì)算機(jī)環(huán)境下,仍然能夠利用遷移技術(shù)轉(zhuǎn)移計(jì)算環(huán)境,并且保證遷移過(guò)程中操作系統(tǒng)服務(wù)的可用性,這就需要?jiǎng)討B(tài)增量遷移技術(shù)?! ?Xen虛擬機(jī)動(dòng)態(tài)增量遷移的設(shè)計(jì) 對(duì)于VM(VirtualMachine)的內(nèi)存狀態(tài)的遷移,Xen采用了主流的預(yù)拷貝(pre-c
3、opy)的策略。結(jié)合內(nèi)存遷移的策略,動(dòng)態(tài)增量遷移主要分為三個(gè)階段:PUSH階段、停機(jī)拷貝階段和PULL階段?! ≡赑USH階段源VM仍在運(yùn)行,其外存訪問(wè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對(duì)外存的訪問(wèn)仍然被監(jiān)控記錄,作為后續(xù)階段同步剩余不一致外存狀態(tài)的依據(jù)。在停機(jī)拷貝階段,源VM被掛機(jī),傳輸剩余的內(nèi)存狀態(tài)、CPU狀態(tài)等,并將VMM所記錄的外存狀態(tài)信息發(fā)送給目的VM
4、?! ?Xen虛擬機(jī)動(dòng)態(tài)增量遷移的實(shí)現(xiàn) 4.1PUSH階段 在遷移開(kāi)始之前,用戶通過(guò)遷移命令(xmmigrate)向源主機(jī)VMM發(fā)出遷移請(qǐng)求,收到請(qǐng)求后VMM通知塊設(shè)備即將開(kāi)始遷移。然后檢查內(nèi)存是否夠用,如果不夠用則先釋放部分內(nèi)存,以保證有足夠的內(nèi)存進(jìn)行遷移。接著源主機(jī)與目的主機(jī)建立socket連接,源主機(jī)請(qǐng)求遷移,當(dāng)收到目的主機(jī)的響應(yīng)之后,進(jìn)入PUSH階段[5]。 在遷移過(guò)程中,源主機(jī)需要監(jiān)控VM對(duì)外存的訪問(wèn)。在設(shè)備后端初始化一個(gè)bitmap用于記錄外存塊的狀態(tài)變化。如果某個(gè)外存塊在循環(huán)期
5、間被寫臟,就將塊標(biāo)志位置1。每輪循環(huán)首先獲取此bitmap記錄,根據(jù)該記錄發(fā)送前一輪發(fā)送過(guò)程中被VM寫臟的外存塊?! ?.2停機(jī)拷貝階段 進(jìn)入至停機(jī)階段,源VM被掛起,目的VM尚未啟動(dòng),剩余內(nèi)存臟頁(yè)和外存臟塊以及運(yùn)行狀態(tài)等信息被拷貝到目的主機(jī)。在外存pre-copy結(jié)束至源VM被掛起的過(guò)程中,源VM外存訪問(wèn)產(chǎn)生的臟塊仍然被設(shè)備后端記錄在bitmap中?! 〖尤胪獯孢w移的停機(jī)拷貝階段,與之前的區(qū)別主要體現(xiàn)在將源主機(jī)設(shè)備后端所監(jiān)控記錄的bitmap發(fā)送給目的主機(jī),目的主機(jī)啟動(dòng)后將根據(jù)該bitmap確
6、定本地外存數(shù)據(jù)是否已經(jīng)與源VM的外存數(shù)據(jù)一致[6]。通常情況下,外存的臟塊生成率相對(duì)內(nèi)存產(chǎn)生臟頁(yè)的機(jī)率是比較低的,因此理論上對(duì)停機(jī)拷貝階段時(shí)間的影響不大?! ?.3PULL階段 PULL階段由源主機(jī)和目的主機(jī)的遷移進(jìn)程合作完成,包括目的VM外存訪問(wèn)按需向源主機(jī)請(qǐng)求以及源主機(jī)VM外存主動(dòng)向目的主機(jī)post-copy?! ∵M(jìn)入至PULL階段,源主機(jī)向設(shè)備后端請(qǐng)求監(jiān)控外存狀態(tài)的bitmap,并根據(jù)此bitmap確定從最后一輪外存pre-copy至源VM被掛起的過(guò)程中哪些外存部分被源VM寫臟,并將臟塊發(fā)
7、送至目的主機(jī)。當(dāng)bitmap中標(biāo)記的所有臟塊都被傳輸至目的主機(jī)后,目的主機(jī)已經(jīng)獲得了所有最新的外存數(shù)據(jù),外存遷移結(jié)束[7]?! ?性能測(cè)試 第一輪測(cè)試在兩臺(tái)物理主機(jī)A和B之間進(jìn)行,兩物理主機(jī)均通過(guò)X卡連接到局域X,VM從一臺(tái)物理主機(jī)遷移至另一臺(tái)物理主機(jī)。通常文件系統(tǒng)的塊大小為4KB,也就是8個(gè)扇區(qū)[8]。在對(duì)VM進(jìn)行外存遷移時(shí),首先以8個(gè)連續(xù)的扇區(qū)組成的磁盤塊作為bitmap中一個(gè)監(jiān)控單位,逐漸遞增,在無(wú)工作負(fù)載情況下進(jìn)行多次遷移實(shí)驗(yàn),得到各階段遷移時(shí)間: 第二輪測(cè)試在兩臺(tái)物理主機(jī)A和B之間設(shè)
8、置共享存儲(chǔ)C,利用未修改過(guò)的Xen虛擬機(jī)進(jìn)行試驗(yàn),同樣是在無(wú)負(fù)載條件下進(jìn)行遷移,得到各階段遷移時(shí)間: 從兩組實(shí)驗(yàn)結(jié)果,可以看出,動(dòng)態(tài)增量遷移在總體遷移時(shí)間上明顯大于共享存儲(chǔ)的遷移,其中停:Xen虛擬機(jī)現(xiàn)有遷移機(jī)制中,源主機(jī)和目的主機(jī)需要連接共享存儲(chǔ)服務(wù),共享存儲(chǔ)是動(dòng)態(tài)遷移的必要條件。針對(duì)這一局限性提出了一種包括外存遷移在內(nèi)的動(dòng)態(tài)增量遷移方法,可以在動(dòng)態(tài)遷移過(guò)程中,把虛擬機(jī)磁盤文件從源主機(jī)遷移至目的主機(jī),從而降低了動(dòng)態(tài)遷移的成本,擴(kuò)大了動(dòng)態(tài)遷移的應(yīng)用范圍。并通過(guò)實(shí)驗(yàn)進(jìn)行了性能分析。