亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于運(yùn)行階段特征的虛擬機(jī)實(shí)時(shí)遷移技術(shù)

        2016-07-18 11:49:26鄒慶欣郝志宇云曉春1
        通信學(xué)報(bào) 2016年1期
        關(guān)鍵詞:方法

        鄒慶欣,郝志宇,云曉春1,

        ?

        基于運(yùn)行階段特征的虛擬機(jī)實(shí)時(shí)遷移技術(shù)

        鄒慶欣1,2,3,郝志宇3,云曉春1,3

        (1. 中國科學(xué)院計(jì)算技術(shù)研究所,北京 100190;2. 中國科學(xué)院大學(xué),北京100049;3. 中國科學(xué)院信息工程研究所,北京100193)

        針對預(yù)拷貝算法在起始、迭代、結(jié)尾3個(gè)階段所表現(xiàn)出的不同特點(diǎn),提出了基于運(yùn)行階段特征的虛擬機(jī)實(shí)時(shí)遷移技術(shù)(LMCOS, live migration based on the characteristics of the operation stages)。起始階段引入比對初始內(nèi)存頁的變量傳輸技術(shù)以避免未改變內(nèi)存部分的傳輸;迭代階段引入計(jì)數(shù)排序傳輸方法以減少內(nèi)存頁的重傳;結(jié)尾階段引入調(diào)減虛擬機(jī)CPU時(shí)間片的策略以縮短停機(jī)時(shí)間。與預(yù)拷貝算法相比,LMCOS使停機(jī)時(shí)間平均減少53%,總遷移時(shí)間平均減少65%。

        實(shí)時(shí)遷移;預(yù)拷貝;運(yùn)行階段特征;虛擬機(jī)

        1 引言

        步入云計(jì)算、大數(shù)據(jù)時(shí)代,虛擬化技術(shù)得到了前所未有的應(yīng)用。虛擬化技術(shù)使擁有全部硬件特征的虛擬機(jī)在彼此隔離的情況下能夠同時(shí)在一臺物理機(jī)器上運(yùn)行,極大地增加了物理資源的利用率。虛擬機(jī)是虛擬化技術(shù)一個(gè)最直接而且集中的體現(xiàn)。

        在虛擬機(jī)諸多技術(shù)中,實(shí)時(shí)遷移技術(shù)無疑是一項(xiàng)卓越而實(shí)用的服務(wù)。虛擬機(jī)實(shí)時(shí)遷移技術(shù)在保證虛擬機(jī)工作負(fù)載正常運(yùn)行的情況下,使其在不同的物理主機(jī)之間可以自由地穿梭。虛擬機(jī)實(shí)時(shí)遷移有廣域網(wǎng)遷移和局域遷移之分。在廣域網(wǎng)遷移中不僅要遷移虛擬機(jī)內(nèi)存,還要遷移虛擬機(jī)的磁盤鏡像文件及網(wǎng)絡(luò)狀態(tài)等。而局域網(wǎng)遷移,則可以不必遷移虛擬機(jī)磁盤鏡像文件等,完全可以利用NFS等服務(wù)采用共享的方式。本文主要研究局域網(wǎng)遷移中的內(nèi)存遷移。

        在虛擬機(jī)局域網(wǎng)內(nèi)存遷移技術(shù)中,預(yù)拷貝算法是最常用,也是最實(shí)用的算法之一。對于使用預(yù)拷貝算法的虛擬機(jī)實(shí)時(shí)遷移來說,主要有2個(gè)衡量指標(biāo):總遷移時(shí)間和停機(jī)時(shí)間。顧名思義,總遷移時(shí)間是指從源主機(jī)上首次發(fā)送內(nèi)存頁開始到虛擬機(jī)在目標(biāo)機(jī)器上重新啟動(dòng)運(yùn)行所需的時(shí)間;而停機(jī)時(shí)間的產(chǎn)生則是因?yàn)槟壳暗乃袑?shí)時(shí)遷移技術(shù)并不能保證完全的實(shí)時(shí)性,在遷移的過程中都需要有一段虛擬機(jī)停頓時(shí)間。只有停機(jī)時(shí)間等于零,才是真正意義上的實(shí)時(shí)遷移。但是停機(jī)時(shí)間為零是極其困難的,通常是盡量短而使從虛擬機(jī)使用者的角度來看幾乎察覺不到。

        總遷移時(shí)間和停機(jī)時(shí)間的產(chǎn)生是從源主機(jī)到目的主機(jī)傳輸內(nèi)存頁的多少及相關(guān)內(nèi)部算法等共同作用的結(jié)果。本文通過深入分析預(yù)拷貝算法的工作原理,根據(jù)其在不同運(yùn)行階段所體現(xiàn)的特征,有針對性地采取相應(yīng)策略以改進(jìn)預(yù)拷貝算法:在起始階段引入比對初始內(nèi)存頁的變量傳輸技術(shù)以減少數(shù)據(jù)的傳輸量;在迭代階段引入計(jì)數(shù)排序技術(shù)以減少高頻變化內(nèi)存頁的多次傳輸;在結(jié)尾階段引入調(diào)減虛擬機(jī)CPU時(shí)間片方法以獲得更短的停機(jī)時(shí)間。通過以上基于運(yùn)行階段特征技術(shù)的運(yùn)用,使虛擬機(jī)在運(yùn)行不同工作負(fù)載的情況下同時(shí)減少總遷移時(shí)間和停機(jī)時(shí)間,顯著提高了虛擬機(jī)實(shí)時(shí)遷移的性能。

        2 相關(guān)工作

        自文獻(xiàn)[1]首次提到虛擬機(jī)實(shí)時(shí)遷移以來,研究人員對這個(gè)問題給予了極大關(guān)注。尤其是在內(nèi)存遷移方面,相關(guān)研究工作不斷進(jìn)展,并且內(nèi)存遷移的相關(guān)工作也常常對虛擬化相關(guān)的其他研究方向產(chǎn)生重大影響??梢哉f,虛擬機(jī)內(nèi)存實(shí)時(shí)遷移是虛擬化技術(shù)中一個(gè)非常重要的基礎(chǔ)技術(shù)。

        在針對內(nèi)存的虛擬機(jī)實(shí)時(shí)遷移過程中,除了預(yù)拷貝算法以外,文獻(xiàn)[2]提出了后拷貝算法,與預(yù)拷貝方式相反,后拷貝技術(shù)首先從源主機(jī)端發(fā)送CPU狀態(tài)和虛擬機(jī)能夠恢復(fù)運(yùn)行的最小工作集到目標(biāo)主機(jī),然后虛擬機(jī)在目標(biāo)主機(jī)端被重啟。隨后,虛擬機(jī)在目標(biāo)主機(jī)端啟動(dòng)運(yùn)行過程中,其所需的但并不存在于目標(biāo)主機(jī)的內(nèi)存頁從源主機(jī)端被請求或被推送過來。與預(yù)拷貝方式相比,后拷貝算法減少了總遷移時(shí)間,但卻增加了停機(jī)時(shí)間。借鑒于各自的優(yōu)缺點(diǎn)文獻(xiàn)[3]實(shí)現(xiàn)了內(nèi)存混合復(fù)制方式的虛擬機(jī)實(shí)時(shí)遷移機(jī)制。其依次執(zhí)行全內(nèi)存同步,內(nèi)存位圖同步,和臟內(nèi)存同步3個(gè)過程,與預(yù)拷貝算法相比,該機(jī)制同時(shí)降低了停機(jī)時(shí)間和總遷移時(shí)間。

        文獻(xiàn)[4]基于日志采用檢查點(diǎn)/恢復(fù)和跟蹤/重放的技術(shù)提供了快速、透明的虛擬機(jī)實(shí)時(shí)遷移方法。執(zhí)行軌跡在源主機(jī)端被記錄,并采用同步算法實(shí)現(xiàn)執(zhí)行軌跡記錄數(shù)據(jù)從源虛擬機(jī)到目標(biāo)虛擬機(jī)的傳輸,直到他們到達(dá)一致的狀態(tài)。該機(jī)制能夠大幅度地減少遷移的停機(jī)時(shí)間和網(wǎng)絡(luò)帶寬消費(fèi),而且類似于預(yù)拷貝算法,傳輸?shù)牟皇莾?nèi)存而是日志,因此數(shù)據(jù)傳輸量較小,但實(shí)現(xiàn)相對比較復(fù)雜。

        一種基于多線程技術(shù)的限制時(shí)間的虛擬機(jī)實(shí)時(shí)遷移機(jī)制在文獻(xiàn)[5]中實(shí)現(xiàn),類似于只采取2輪策略的預(yù)拷貝算法,先傳輸整個(gè)內(nèi)存頁,再停機(jī)拷貝所有變臟的內(nèi)存頁。所不同的是其采用了2個(gè)線程并行傳輸,第一個(gè)線程從頭至尾傳輸所有內(nèi)存頁,同時(shí)另一個(gè)線程傳輸變臟的內(nèi)存頁,當(dāng)?shù)谝粋€(gè)線程結(jié)束時(shí),遵循時(shí)間限制,立刻進(jìn)入停機(jī)階段。

        以上討論的虛擬機(jī)實(shí)時(shí)遷移方面的工作可以說是對預(yù)拷貝機(jī)制的有力擴(kuò)充。而專門針對預(yù)拷貝算法的改進(jìn)工作也有相關(guān)的研究。

        在文獻(xiàn)[6]中,根據(jù)每個(gè)內(nèi)存頁自身的特點(diǎn)而采用的適應(yīng)性內(nèi)存壓縮技術(shù)被應(yīng)用在預(yù)拷貝機(jī)制的虛擬機(jī)實(shí)時(shí)遷移過程中。每一輪中發(fā)送的內(nèi)存頁首先在源主機(jī)端被壓縮,然后再發(fā)送到目標(biāo)主機(jī)。目標(biāo)主機(jī)收到后進(jìn)行解壓縮,從而大幅減少了數(shù)據(jù)傳輸量。該研究工作中采用16個(gè)單詞的字典,并根據(jù)字典中單詞在內(nèi)存頁中出現(xiàn)的次數(shù)來區(qū)分每個(gè)內(nèi)存頁是高單詞相似的,還是低單詞相似的。對于高單詞相似性的內(nèi)存頁采用類似WKdm機(jī)制的壓縮算法,而對于低單詞相似性的則采用類似LZO機(jī)制的壓縮算法,同時(shí)高相似性和低相似性內(nèi)存頁的界限是動(dòng)態(tài)變化的。文獻(xiàn)[7]也提出了壓縮的方式,所不同的是,采用的比較對象不同,它并不是每個(gè)內(nèi)存頁和字典里的單詞做比較,而是不同內(nèi)存頁之間做比較,有些內(nèi)存頁是相同的或高相似的,這樣的話,選擇一個(gè)參考頁做基礎(chǔ),同時(shí)利用游程編碼,傳輸與參考頁不同的部分,從而減少數(shù)據(jù)量的傳輸,而參考頁的選取則采用散列指紋的方法。這2篇文章的工作雖然都采用了多線程的技術(shù)以提高算法的效率。但實(shí)驗(yàn)結(jié)果中總遷移時(shí)間的改進(jìn)程度,大幅地低于總傳輸?shù)臄?shù)據(jù)量減少的程度,這說明壓縮算法很耗時(shí)。文獻(xiàn)[8]中也采用了壓縮的技術(shù),主要側(cè)重于前后兩輪同一個(gè)內(nèi)存頁的比較,也就是傳輸后一輪和前一輪不同的部分。不過這種方法,要維護(hù)一個(gè)緩存來存儲上一輪的內(nèi)存頁。但是緩存不能覆蓋全部的內(nèi)存頁,而且該算法對第一輪發(fā)送的內(nèi)存頁不起作用。文獻(xiàn)[9]把虛擬機(jī)內(nèi)存頁分成已分配的和未分配的2種,對于未分配的不予傳輸,但需要依賴虛擬機(jī)內(nèi)存分配機(jī)制設(shè)計(jì)一個(gè)代理模塊執(zhí)行內(nèi)存探索功能。同時(shí)對于已經(jīng)分配的,根據(jù)這些內(nèi)存頁之間的相似性,采用游程編碼壓縮的方式進(jìn)行傳輸,起不到壓縮作用的則傳輸原來的頁面??傊?,上述4篇文章工作過程復(fù)雜,本身計(jì)算量大。

        針對預(yù)拷貝算法,文獻(xiàn)[10]提出了有序的傳輸變臟的內(nèi)存頁的思路。但是記錄每個(gè)內(nèi)存頁的重寫率幾乎是不可能的,因此把內(nèi)存頁分成組,使用統(tǒng)計(jì)的取樣方法和內(nèi)存組對重寫率進(jìn)行近似。當(dāng)?shù)惠喗Y(jié)束的時(shí)候,它統(tǒng)計(jì)每個(gè)內(nèi)存組變臟的內(nèi)存頁的個(gè)數(shù)。然后用個(gè)數(shù)值除以這一輪持續(xù)的時(shí)間。所得的結(jié)果就是內(nèi)存組的重寫率。這種方法有效地減少了停機(jī)時(shí)間,但算法時(shí)間較長,在有些情況下會造成總遷移時(shí)間的增加。文獻(xiàn)[11]是在文獻(xiàn)[8]上做的改進(jìn),在原有的壓縮上融合了按順序傳輸?shù)南敕?。文獻(xiàn)[12]是本課題組提出的計(jì)數(shù)排序的方法,該方法根據(jù)內(nèi)存頁變臟的次數(shù)不大于最大迭代輪數(shù)的特點(diǎn),采用時(shí)間復(fù)雜度為()的計(jì)數(shù)排序的算法,使內(nèi)存頁根據(jù)變臟的次數(shù)由低至高傳輸,同時(shí)減少了停機(jī)時(shí)間和總遷移時(shí)間。

        文獻(xiàn)[13]從調(diào)整虛擬機(jī)CPU數(shù)量的角度來進(jìn)行預(yù)拷貝算法的改進(jìn),但得保證虛擬機(jī)CPU的數(shù)量大于1。文獻(xiàn)[14]通過調(diào)整虛擬機(jī)CPU運(yùn)行的時(shí)間片來改進(jìn)預(yù)拷貝算法,通過降低虛擬機(jī)在被遷移過程中的運(yùn)行性能來達(dá)到減少變臟內(nèi)存頁數(shù)量的目的。該方法通過比較相鄰兩輪的內(nèi)存頁變臟率來動(dòng)態(tài)調(diào)整CPU時(shí)間片縮減的幅度。文獻(xiàn)[15]和文獻(xiàn)[14]類似,但縮減幅度的動(dòng)態(tài)調(diào)整依據(jù)為相鄰2輪需傳輸內(nèi)存頁的絕對數(shù)量差值,以每5 000個(gè)內(nèi)存頁對應(yīng)5%的增減幅度,但該方法對于每次變化不足5 000頁面的低負(fù)載場景就不適用了。采用調(diào)整虛擬機(jī)CPU方式改進(jìn)預(yù)拷貝算法最直接的影響就是會對虛擬機(jī)的應(yīng)用程序產(chǎn)生干擾,從而嚴(yán)重影響虛擬機(jī)使用者的用戶體驗(yàn)。

        3 預(yù)拷貝算法及其運(yùn)行階段劃分

        從虛擬機(jī)的角度來看,虛擬機(jī)的內(nèi)存是連續(xù)的,實(shí)際上每個(gè)虛擬機(jī)內(nèi)存頁被監(jiān)視器分散地映射到虛擬機(jī)所在的物理主機(jī)上。預(yù)拷貝算法就是保證虛擬機(jī)在運(yùn)行的同時(shí),把映射到物理主機(jī)上真實(shí)的內(nèi)存頁傳送到目的主機(jī)。

        圖1描述了預(yù)拷貝算法的執(zhí)行過程[12]。從圖1中可以看到預(yù)拷貝算法試圖最小化在最后一輪中傳輸?shù)膬?nèi)存頁,以保證停機(jī)時(shí)間盡可能短。在這個(gè)過程中位于源主機(jī)上的虛擬機(jī)物理內(nèi)存鏡像,通過網(wǎng)絡(luò)被傳輸?shù)侥康闹鳈C(jī),同時(shí)源主機(jī)持續(xù)運(yùn)行。所以為了保持虛擬機(jī)內(nèi)存狀態(tài)在源和目標(biāo)主機(jī)之間一致,一些發(fā)送到目標(biāo)主機(jī)的內(nèi)存頁,在重新訪問修改變臟之后應(yīng)該被再次發(fā)送到目標(biāo)主機(jī)。因此預(yù)拷貝算法用一個(gè)迭代的機(jī)制來不時(shí)地檢查變臟的內(nèi)存頁并重傳它們。在前一輪傳送內(nèi)存頁期間,如果有內(nèi)存頁又被修改了,則該內(nèi)存頁會再次被標(biāo)記為臟,而沒有被修改的則會被標(biāo)記為干凈的。實(shí)際上,發(fā)送前一輪變臟的內(nèi)存頁時(shí),是無法獲得內(nèi)存頁在后一輪的狀態(tài)的,只能盡可能取臨近后一輪的狀態(tài)。如果用1表示變臟的狀態(tài),用0表示干凈的狀態(tài),則內(nèi)存頁的狀態(tài)如表1所示。

        表1 內(nèi)存頁狀態(tài)

        僅僅對10這種組合,預(yù)拷貝算法才發(fā)送內(nèi)存頁。因?yàn)檫@個(gè)內(nèi)存頁被修改過,在可見的將來它不會被再次修改。對于其他3種組合,預(yù)拷貝算法不發(fā)送內(nèi)存頁。對于11組合來說,內(nèi)存頁過去被修改了,現(xiàn)在再次被修改,沒有必要立刻傳送這個(gè)內(nèi)存頁。對于00組合來說,內(nèi)存頁沒有被修改過,并不需要傳送它。對于01組合來說,這個(gè)內(nèi)存頁過去沒有被修改過,但現(xiàn)在已被修改,預(yù)拷貝算法會在下一輪做進(jìn)一步的判斷。預(yù)拷貝算法將重復(fù)這個(gè)過程,直到一輪中變臟的內(nèi)存頁數(shù)小于一個(gè)預(yù)設(shè)的閾值,或迭代過程達(dá)到最大輪數(shù)或最大數(shù)據(jù)傳輸量,這一輪迭代通常成為臨界輪。在傳輸完臨界輪變臟的內(nèi)存頁以后,虛擬機(jī)將要被暫停并進(jìn)入最后一輪。

        根據(jù)預(yù)拷貝算法運(yùn)行過程中不同輪次所表現(xiàn)出來的運(yùn)行特征,可以把預(yù)拷貝算法運(yùn)行過程分為3個(gè)階段。第1輪和第2輪稱為起始階段,在這一階段會有較多的內(nèi)存頁被發(fā)送到目的主機(jī)包括未使用的和變臟率較低的內(nèi)存頁,主要是因?yàn)榈?輪所有內(nèi)存頁都標(biāo)記為臟的狀態(tài),引起第1輪傳輸?shù)膬?nèi)存頁相對較多,傳輸時(shí)間相對較長,間接地引起第2輪也發(fā)送較多的內(nèi)存頁。第2輪和臨界輪之間的中間輪稱為迭代階段,這一階段內(nèi)存頁重復(fù)變臟相對頻繁,而且不是像第一輪那樣主觀上標(biāo)記為臟的狀態(tài),而是客觀上由于內(nèi)存更改而標(biāo)記為臟的。把臨界輪和最后一輪稱為結(jié)尾階段,主要是兩輪都和停機(jī)時(shí)間有關(guān),臨界輪的狀況關(guān)系到最后一輪傳送內(nèi)存頁的多少,而最后一輪發(fā)送內(nèi)存頁的多少直接影響到停機(jī)時(shí)間的長短。

        4 LMCOS算法設(shè)計(jì)

        預(yù)拷貝算法分成不同的階段后,由于每一階段運(yùn)行過程中,分別具有各自階段的鮮明運(yùn)行特征,如果不去考慮不同階段不同運(yùn)行特征對算法性能產(chǎn)生的影響,而是始終采用同一種方法去處理,必然會影響整體算法的性能,從而導(dǎo)致針對某一階段,效果非常好的技術(shù)方法,到了另一階段性能就會嚴(yán)重下降,甚至產(chǎn)生負(fù)面的影響。而這正是目前絕大多數(shù)相關(guān)研究工作的處理方式。鑒于此,本文提出了基于運(yùn)行階段特征的虛擬機(jī)實(shí)時(shí)遷移技術(shù)LMCOS。在不同運(yùn)行階段,根據(jù)其運(yùn)行特征,引入不同的處理技術(shù),以達(dá)到不同階段遷移性能的局部最大化效應(yīng),最終獲得更優(yōu)異的整體遷移性能。下面將詳細(xì)介紹LMCOS所引入的技術(shù)方法。

        4.1 初始階段:引入比對初始內(nèi)存頁的變量傳輸技術(shù)

        預(yù)拷貝算法的第一輪,所有內(nèi)存頁都被標(biāo)記為臟的狀態(tài),在虛擬機(jī)創(chuàng)建之初,并為其分配內(nèi)存之前的任何時(shí)刻,虛擬機(jī)管理器通常會把要分配給虛擬機(jī)的內(nèi)存進(jìn)行初始化,使每一個(gè)內(nèi)存頁相同。而且每一個(gè)內(nèi)存頁的每個(gè)字節(jié)也相同。例如通過分析虛擬化平臺Xen-4.2.2的源代碼,發(fā)現(xiàn)其利用alloc_domheap_pages函數(shù)為虛擬機(jī)分配內(nèi)存頁之前,就已經(jīng)利用init_domheap_pages函數(shù)對內(nèi)存進(jìn)行了初始化工作,該函數(shù)里面使用零字節(jié),初始化每個(gè)內(nèi)存頁,進(jìn)而初始化要分配給虛擬機(jī)的所有內(nèi)存頁。本文稱像Xen-4.2.2虛擬化平臺這樣經(jīng)過初始化的內(nèi)存頁為初始內(nèi)存頁,這樣的字節(jié)為初始字節(jié)。換句話說,在Xen-4.2.2虛擬化平臺上,初始內(nèi)存頁對應(yīng)全零頁面。

        隨后在虛擬機(jī)引導(dǎo)操作系統(tǒng)并啟動(dòng)后,初始內(nèi)存頁將被改動(dòng)。盡管初始內(nèi)存頁被改動(dòng),但其內(nèi)部死角仍然有可能存在連續(xù)的初始字節(jié)。有大量初始內(nèi)存頁和改動(dòng)很小的內(nèi)存頁是初始階段最顯著的特征,虛擬機(jī)內(nèi)存其他方面的數(shù)據(jù)相似性因操作系統(tǒng)和應(yīng)用程序的不同,而有一定的變化。在傳送一個(gè)虛擬機(jī)內(nèi)存頁之前,可以先跟初始內(nèi)存頁進(jìn)行比較,只傳送與初始內(nèi)存頁不同的部分,而相同的部分則沒有必要傳輸。

        圖2給出比對初始內(nèi)存頁進(jìn)行變量傳輸?shù)倪^程,一對括號表示一個(gè)字節(jié),括號內(nèi)是該字節(jié)的數(shù)值。同時(shí)一個(gè)字節(jié)最高位用1即數(shù)值128表示相同的部分,用0表示不同的部分。低7位則表示具體多長。同時(shí)做一次最基本的比較為4個(gè)字節(jié)。在Xen-4.2.2虛擬化平臺具體實(shí)現(xiàn)過程中,針對“比對”這一環(huán)節(jié),采用游程編碼進(jìn)行比較,具體如圖3所示?!昂铣伞杯h(huán)節(jié)則要與“比對”環(huán)節(jié)執(zhí)行相反的過程。

        off: 臨時(shí)變量;pageoff: 偏離字節(jié)數(shù);copy, iscopy : 標(biāo)識符;uint32_t: 無符號32位整型;(uint32_t)ipage: 初始內(nèi)存頁;( uint32_t)cpage: 待傳內(nèi)存頁;bytes_skipped : 省略的字節(jié)數(shù);complen: 傳送數(shù)據(jù)總長度;runptr : 待傳內(nèi)存頁當(dāng)前位置;LENMASK: 值為((char)127);nuint: 單內(nèi)存頁所含uint32_t個(gè)數(shù);RFLAG: 值為0;SFLAG: 值為(char)128;(char)runlen: 游程長);runbytes: 游程字節(jié)數(shù)。 for (off = 0; off ≤ nuint; off++){ if(off < nuint){ if(cpage[off]!=ipage[off]){copy=1;} if(cpage[off]==ipage[off]){copy=0;} }if(off==nuint){copy =!iscopy;}if (runlen!=0){if ( (iscopy!=copy) or (runlen==LENMASK) ){ runbytes =runlen*sizeof(uint32_t); if(iscopy==1){runlen|=RFLAG;} if(iscopy==0){runlen|=SFLAG;} dest[complen++]=runlen; if (iscopy==1) { pageoff =runptr *sizeof( uint32_t); 從cpage的pageoff處拷貝runbyte個(gè)字節(jié)到dest的complen處,之后調(diào)整complen使其值增加runbytes字節(jié);} else {bytes_skipped+=runbytes;} runlen=0;runptr=off;}} runlen+=1;iscopy=copy;}if (bytes_skipped== runbytes){complen=1 ;dest[0]=0;}傳輸complen和dest到目標(biāo)端

        4.2 迭代階段:引入計(jì)數(shù)排序傳輸技術(shù)

        進(jìn)入迭代階段以后,隨著輪數(shù)增加,比對初始內(nèi)存頁進(jìn)行變量傳輸從而減少數(shù)據(jù)的程度沒有初始階段高,甚至對有的內(nèi)存頁絲毫不起作用,反而帶來額外的計(jì)算開銷。根據(jù)迭代階段有大量重復(fù)傳輸內(nèi)存頁這一特征。結(jié)合了先前在文獻(xiàn)[12]中所做的貢獻(xiàn),采用時(shí)間復(fù)雜度為()的計(jì)數(shù)排序的方法以減少重復(fù)傳輸?shù)膬?nèi)存頁,同時(shí)還可以抵消“比對初始內(nèi)存頁進(jìn)行變量傳輸”失效時(shí)所產(chǎn)生的額外計(jì)算時(shí)間。

        由于總體上本文設(shè)計(jì)的算法是一種綜合的算法,所以在這里有必要討論了這2種算法結(jié)合時(shí)相互之間的影響。首先進(jìn)行公式化分析并定義一些變量。

        r:平均臟頁增長率。

        r:平均網(wǎng)絡(luò)傳輸速率。

        r:平均計(jì)數(shù)排序速率。

        r:平均比對速率。

        :非起始階段非變量內(nèi)存比例取值0到1。

        p:起始階段非變量內(nèi)存比例取值0到1。

        :計(jì)數(shù)排序減少的內(nèi)存比例取值0到1。

        :總內(nèi)存。

        t′: 預(yù)拷貝算法第輪時(shí)間。

        t:結(jié)合2種算法后第輪所用時(shí)間。

        基于上述定義,有如下推導(dǎo):

        1=;2=;

        3=;t′=;

        1=+;

        2=r(1?p)+r

        3=++;

        t=++

        在預(yù)拷貝算法不失效的情況下,滿足r<r的條件,同時(shí)在預(yù)拷貝算法的第一輪,全部內(nèi)存頁都被標(biāo)記為臟的狀態(tài),所以有大量內(nèi)存頁被傳輸,也包括很多未使用的和初始內(nèi)存頁完全相同的內(nèi)存頁,而且第一輪傳輸?shù)膬?nèi)存頁相對后續(xù)輪傳輸?shù)膬?nèi)存頁,更改不頻繁,所以p相對較大,有p>成立。要使總遷移時(shí)間(1+2+…+t)≤(1+2+…+t′),同時(shí)使停機(jī)時(shí)間tt′。應(yīng)滿足2個(gè)條件,條件1:1<1和2<2;同時(shí)根據(jù)等比數(shù)列的性質(zhì)還應(yīng)該滿足條件2:<。當(dāng)p>時(shí),條件1成立,同時(shí)條件2可簡化為<,進(jìn)一步形式轉(zhuǎn)化為<(+–),因?yàn)?<<1,所以<,且< (+–) =(+(1?)),則當(dāng)≥時(shí),不論為何值,條件2始終成立。綜上所述當(dāng)p>,同時(shí)≥時(shí),無論為何值,結(jié)合2種算法始終可以改進(jìn)預(yù)拷貝算法的性能。

        圖4直觀地顯現(xiàn)了與兩者相互關(guān)系。同時(shí)rr除了與CPU相關(guān)外還和算法的時(shí)間復(fù)雜度相關(guān),可見采用快的算法可以使減小,有利于改進(jìn)預(yù)拷貝算法。而計(jì)數(shù)排序的方法和比對初始內(nèi)存頁技術(shù)都是時(shí)間復(fù)雜度為()的方法,在網(wǎng)絡(luò)速度和CPU速度一定的情況下,好的算法是至關(guān)重要的。極端情況下,也就是等于0時(shí),比對初始內(nèi)存頁技術(shù)會失效,而計(jì)數(shù)排序的方法由于其自身的性質(zhì)不會失效。通過公式分析,當(dāng)達(dá)到一定比率時(shí),即使不起作用,也不會對全局造成影響。

        4.3 結(jié)尾階段:引入調(diào)減虛擬機(jī)CPU時(shí)間片技術(shù)

        當(dāng)臨界輪產(chǎn)生的條件被觸發(fā)以后,預(yù)拷貝算法進(jìn)入了結(jié)尾階段。這一階段的特點(diǎn)就是與停機(jī)時(shí)間直接相關(guān)。最后一輪發(fā)送內(nèi)存頁的數(shù)量直接決定停機(jī)時(shí)間,同時(shí)臨界輪的狀況又關(guān)系到最后一輪發(fā)送內(nèi)存頁的多少。減少虛擬機(jī)CPU的運(yùn)行可以使變臟的內(nèi)存頁減少,但同時(shí)也會降低虛擬機(jī)自身應(yīng)用程序的性能?;谏鲜隹紤],只在結(jié)尾階段引入調(diào)減虛擬機(jī)CPU時(shí)間片的技術(shù),在減少停機(jī)時(shí)間的同時(shí),又不至于長時(shí)間影響虛擬機(jī)自身的應(yīng)用程序,從而影響用戶體驗(yàn)。

        在Xen-4.2.2虛擬化平臺上,Credit調(diào)度算法為默認(rèn)的虛擬機(jī)CPU周期調(diào)度算法。文獻(xiàn)[14]中調(diào)整CPU時(shí)間片時(shí)使其不低于20%,同樣把Credit調(diào)度算法的cap參數(shù)取為20,而不是更小值,用以保持一定的虛擬機(jī)性能。

        還應(yīng)該注意的是,對于Xen-4.2.2虛擬化平臺的全虛擬化客戶機(jī)而言,存在PV-on-HVM形式,即對于Linux內(nèi)核的全虛擬化客戶機(jī)而言存在半虛擬化驅(qū)動(dòng)。在測驗(yàn)中發(fā)現(xiàn),臨界輪調(diào)減CPU時(shí)間片的方式不適用這種情況,僅僅適用沒有半虛擬化的全虛擬化情形。在Xen-4.2.2虛擬化平臺上,臨界輪調(diào)減虛擬機(jī)時(shí)間片對于PV-on-HVM形式的虛擬機(jī)來說是不能夠減小停機(jī)時(shí)間的。這也是使用本方法的局限性。

        4.4 綜合3種技術(shù)實(shí)現(xiàn)LMCOS算法

        綜合以上3種技術(shù),實(shí)現(xiàn)了本文提出的基于運(yùn)行階段特征的虛擬機(jī)實(shí)時(shí)遷移技術(shù)。從迭代的第一輪開始,在傳送每一個(gè)內(nèi)存頁的時(shí)候,就與初始內(nèi)存頁比較進(jìn)行變量傳輸,同時(shí)從第3輪開始對要傳輸?shù)膬?nèi)存頁,根據(jù)變臟的次數(shù)進(jìn)行計(jì)數(shù)排序傳輸,當(dāng)遇到臨界輪時(shí),把虛擬機(jī)的CPU時(shí)間片降低,用以減少最后一輪變臟的內(nèi)存頁,使停機(jī)時(shí)間縮短。具體算法如圖5所示。

        p2m_size: 內(nèi)存頁數(shù)量;i: 臨時(shí)變量;A[p2m_size]: 內(nèi)存頁變臟次數(shù);D[p2m_size]: 內(nèi)存頁原來位置。if(是第一輪){發(fā)送采用比對初始內(nèi)存頁變量傳輸標(biāo)識;}if(大于第一輪){ 記錄變臟的次數(shù)到數(shù)組A中; if(大于第二輪){ 依據(jù)內(nèi)存頁變臟的次數(shù)進(jìn)行計(jì)數(shù)排序,并把原位置信息存儲在數(shù)組D中;}}if(臨界輪){調(diào)整cpu時(shí)間片為20%;} for(int i=0; i

        值得說明的是,進(jìn)行臨界輪判斷時(shí)要分開判斷,先進(jìn)行最大迭代輪數(shù)或最大數(shù)據(jù)傳輸量的判斷,再進(jìn)行內(nèi)存變臟次數(shù)小于閾值的判斷,并且一旦超過閾值立即結(jié)束判斷,節(jié)省計(jì)算量,減少負(fù)面效應(yīng)。

        通過這種設(shè)計(jì),多種技術(shù)結(jié)合而且各種方法之間互不影響,互相協(xié)作,同時(shí)又具有針對性。相信能夠很好地改進(jìn)預(yù)拷貝算法。

        5 實(shí)驗(yàn)及分析

        為了驗(yàn)證LMCOS算法的有效性,在內(nèi)核版本為3.2.0的64位操作系統(tǒng)Centos-6.4和Xen-4.2.2虛擬化平臺上實(shí)現(xiàn)了LMCOS算法,并與預(yù)拷貝等算法進(jìn)行了比較。每一個(gè)實(shí)驗(yàn)數(shù)據(jù)是取5次實(shí)驗(yàn)的均值并四舍五入后作為最終的結(jié)果。

        5.1 實(shí)驗(yàn)環(huán)境

        目標(biāo)主機(jī)和源主機(jī)同為聯(lián)想啟天M4300機(jī)型,CPU同為 Intel(R) Core i3-2120 @ 3.30GZ類型,內(nèi)存同為4 GB。2臺主機(jī)由一臺百兆五口的TH-1005T交換機(jī)連接。同時(shí)利用NFS服務(wù)把存在于目標(biāo)主機(jī)上的虛擬機(jī)磁盤映像共享給源主機(jī)??蛻籼摂M機(jī)的磁盤文件大小為12 GB運(yùn)行Ubuntu-9.04操作系統(tǒng),并選2.6.28-11-generic內(nèi)核,使客戶虛擬機(jī)沒有半虛擬化驅(qū)動(dòng)的存在。同時(shí)保持每個(gè)物理主機(jī)最多只有一個(gè)虛擬機(jī)運(yùn)行。

        5.2 采用不同工作負(fù)載

        實(shí)驗(yàn)中為了驗(yàn)證LMCOS算法的有效性,選擇了5種不同類型的工作負(fù)載。

        1) Idle:沒有特別的應(yīng)用程序在其上面運(yùn)行,這個(gè)場景被用作比較和參考,代表空閑類型應(yīng)用。

        2) Nbench:這是一款用來對CPU、FPU和內(nèi)存系統(tǒng)進(jìn)行性能測試的工具。其本身是單進(jìn)程的,實(shí)驗(yàn)中編寫shell腳本同時(shí)循環(huán)運(yùn)行了50個(gè)Nbench 基準(zhǔn)測試程序,同時(shí)為了避免長時(shí)間集中于某一項(xiàng)測試,把調(diào)節(jié)某一項(xiàng)測試最少運(yùn)行時(shí)間的MINIMUM_ SECONDS參數(shù)由5 s減為1 s。

        3) Sysbench:該性能測試工具可以執(zhí)行CPU、內(nèi)存、數(shù)據(jù)庫等方面的性能測試。實(shí)驗(yàn)中配置參數(shù)test=memory來執(zhí)行內(nèi)存測試,線程數(shù)為10個(gè),每個(gè)塊大小為768 MB,總傳輸數(shù)據(jù)量為5 GB。

        4) Webbench:這是一款網(wǎng)站壓力測試軟件,它能夠模擬多個(gè)客戶并使用http請求。源主機(jī)配置Tomcat服務(wù)器和一個(gè)50 KB的靜態(tài)網(wǎng)頁,同時(shí)虛擬機(jī)并發(fā)運(yùn)行10個(gè)Webbench客戶請求該網(wǎng)頁。

        5) Dbench:該軟件能夠產(chǎn)生輸入和輸出負(fù)載給一個(gè)文件系統(tǒng)施加壓力,實(shí)驗(yàn)中配置了25個(gè)客戶進(jìn)程來產(chǎn)生負(fù)載。

        測試中為每個(gè)虛擬機(jī)分配1 GB內(nèi)存,并配置一個(gè)VCPU,同時(shí)測試了虛擬機(jī)在源端運(yùn)行時(shí)相關(guān)工作負(fù)載的參數(shù)。對于Idle場景來說,沒有必要測量,而其他場景都是在Idle場景的基礎(chǔ)上運(yùn)行了特別的應(yīng)用。對于CPU和內(nèi)存的測試?yán)昧颂摂M機(jī)操作系統(tǒng)自帶的top工具,而對于網(wǎng)絡(luò)速率和磁盤的性能分別安裝了iftop和iotop工具進(jìn)行觀測。具體參數(shù)如表2所示。

        表2 各負(fù)載參數(shù)

        從CPU角度來看,大部分情況下,Nbench負(fù)載單進(jìn)程時(shí)就可以占用90%至100%,而其他工作負(fù)載單進(jìn)程時(shí)都沒能達(dá)到90%,所以Nbench可以代表CPU密集型應(yīng)用;從網(wǎng)絡(luò)流量的角度來看,只有Webbench這一工作負(fù)載有網(wǎng)絡(luò)流量,而且網(wǎng)速主要集中在60~80 Mbit/s之間,其余場景基本為0,所以Webbench可以代表通信密集型應(yīng)用;從磁盤角度來看,只有Dbench場景對磁盤有讀寫操作,而且較高的時(shí)候達(dá)到了20~30 Mbit/s的速率,其余工作負(fù)載幾乎為0,所以Dbench可以代表磁盤密集型應(yīng)用;從內(nèi)存的角度來看,Sysbech負(fù)載的內(nèi)存利用率最高,大部分情況下達(dá)到了70%到80%,而其他工作負(fù)載的利用率遠(yuǎn)低于Sysbench,所以Sysbench負(fù)載可以代表內(nèi)存密集型應(yīng)用。

        5.3 工作負(fù)載測試

        在這一部分,將進(jìn)行各種工作負(fù)載的測試,并選用了Xen-4.2.2默認(rèn)的30輪預(yù)拷貝算法設(shè)置。在比較預(yù)拷貝算法和本文提出的基于運(yùn)行階段特征的虛擬機(jī)實(shí)時(shí)遷移技術(shù)的同時(shí),也進(jìn)行了拆分,觀察組合成LMCOS算法的計(jì)數(shù)排序的方法和臨界輪調(diào)減虛擬機(jī)CPU時(shí)間片的方法(RTCR, reduce timeslice in critical round),測試結(jié)果如圖6和圖7所示。

        圖6和圖7分別給出了不同算法在不同工作負(fù)載情況下最后一輪和臨界輪內(nèi)存頁數(shù)量情況的比較結(jié)果。從上面的數(shù)字分析中可以看到,與預(yù)拷貝算法相比,計(jì)數(shù)排序方法、臨界輪和最后一輪發(fā)送的內(nèi)存頁數(shù)量都不大于預(yù)拷貝算法,計(jì)數(shù)排序的方法主要靠臨界輪發(fā)送的內(nèi)存頁數(shù)量上的減少而使最后一輪發(fā)送的內(nèi)存頁的數(shù)量也減少。對于RTCR方法,臨界輪發(fā)送的內(nèi)存頁的數(shù)量有時(shí)候比預(yù)拷貝算法還要多,但最后一輪發(fā)送的內(nèi)存頁數(shù)量卻都不大于預(yù)拷貝算法,進(jìn)一步驗(yàn)證了臨界輪調(diào)減CPU時(shí)間片方法的有效性。

        圖8給出了不同工作負(fù)載的停機(jī)時(shí)間。從圖8中可以看出,相比預(yù)拷貝算法,采用LMCOS算法以后停機(jī)時(shí)間均有所下降。同時(shí)LMCOS算法的停機(jī)時(shí)間也優(yōu)于計(jì)數(shù)排序的方法和RTCR方法。說明LMCOS算法取得的成效是各種算法綜合的結(jié)果。但是對于Idle負(fù)載改進(jìn)不大,主要是因?yàn)镮dle負(fù)載、臨界輪和最后一輪發(fā)送的內(nèi)存頁過少所致??傊c預(yù)拷貝算法相比,LMCOS算法使停機(jī)時(shí)間平均減少53%,最少的Idle負(fù)載減少1%,最多的Dbench負(fù)載減少98%。

        圖9和圖10分別給出了總傳輸?shù)膬?nèi)存頁數(shù)和總遷移時(shí)間的比較結(jié)果。從圖9中可以看出計(jì)數(shù)排序的方法可以減少總傳輸?shù)膬?nèi)存頁個(gè)數(shù),而RTCR方法,則對總傳輸?shù)膬?nèi)存頁數(shù)量沒有必然的影響。同時(shí)可以看到,LMCOS算法對于總遷移時(shí)間平均減少了65%,最小的減少了48%,最大的減少了89%。LMCOS方法與計(jì)數(shù)排序的方法相比,總傳輸?shù)膬?nèi)存頁數(shù)有的減少,有的增加,有的相當(dāng)。但總傳輸時(shí)間,卻明顯下降。

        以上不同類型的工作負(fù)載的測試結(jié)果表明,與其他方法相比,LMCOS方法能夠起到一加一大于二的綜合作用效果,同時(shí)減少總遷移時(shí)間和停機(jī)時(shí)間,大幅提高虛擬機(jī)實(shí)時(shí)遷移的性能。

        然而在總遷移的內(nèi)存頁方面,采用LMCOS方法時(shí),Sysbench場景和其他場景相比,出現(xiàn)了很明顯的內(nèi)存頁增加的情形。不同的工作負(fù)載,由于其訪問內(nèi)存方式的不同,雖然都能產(chǎn)生總遷移時(shí)間減少這樣同一結(jié)果,但中間的過程略有不同。對于通信密集型和磁盤密集型的應(yīng)用來說,訪問的內(nèi)存相對集中,LMCOS保證同時(shí)減少總遷移時(shí)間和停機(jī)時(shí)間的同時(shí),能夠減少總遷移的內(nèi)存頁數(shù)。而對于CPU密集型應(yīng)用來說,從本次實(shí)驗(yàn)結(jié)果來看,總遷移的內(nèi)存頁數(shù)變化很小。但是對于內(nèi)存密集型的應(yīng)用來說,總遷移的內(nèi)存頁卻大幅度提升,盡管Sysbench工作負(fù)載更改的內(nèi)存頁數(shù)量較多,但每一個(gè)內(nèi)存頁更改的比例不是很大,LMCOS方法在總傳輸?shù)膬?nèi)存頁增多的情況下可以減少總遷移時(shí)間,說明LMCOS算法實(shí)質(zhì)上減少了數(shù)據(jù)量的傳輸。從初始階段就使用的比對初始內(nèi)存頁技術(shù)發(fā)揮了很大的作用,只傳輸變量部分,從而減少了數(shù)據(jù)傳輸量及總遷移時(shí)間。當(dāng)然這和虛擬機(jī)從啟動(dòng)到執(zhí)行實(shí)時(shí)遷移時(shí),期間運(yùn)行的時(shí)長也有一定關(guān)系。

        同時(shí)把5次實(shí)驗(yàn)迭代的輪數(shù)繪制成圖11,以便于觀察。對于Idle負(fù)載,無論哪種方法,都沒有達(dá)到最大迭代輪數(shù),每次幾乎都是在6輪上下。對于其他4種負(fù)載,預(yù)拷貝算法都是達(dá)到了最大迭代輪數(shù),而采用本文所提出的LMCOS算法,雖然不能使每一次實(shí)時(shí)遷移的迭代輪數(shù)都在最大輪數(shù)以下,但在最大迭代輪數(shù)以下的現(xiàn)象出現(xiàn)次數(shù)較多。

        5.4 不同內(nèi)存測試

        實(shí)際使用中的虛擬機(jī),內(nèi)存大小是不盡相同的。本文采用不同大小的內(nèi)存進(jìn)行測試,以觀察LMCOS方法在不同內(nèi)存中的表現(xiàn)。在上面的測試中,Sysbench負(fù)載是內(nèi)存密集型的,而且在總發(fā)送的內(nèi)存頁數(shù)目和總遷移時(shí)間2個(gè)方面表現(xiàn)出了截然不同的趨勢。所以選用此負(fù)載進(jìn)行不同內(nèi)存的測試。本文另外增加了1.5 GB和2 GB的內(nèi)存進(jìn)行測試。

        圖12和圖13分別是Sysbench負(fù)載在不同內(nèi)存下最后一輪發(fā)送的內(nèi)存頁和停機(jī)時(shí)間。對于不同內(nèi)存進(jìn)行測試時(shí)發(fā)現(xiàn),停機(jī)時(shí)間和最后一輪發(fā)送的內(nèi)存頁數(shù)在預(yù)拷貝算法和基于運(yùn)行階段特征算法中的變化趨勢基本一致。停機(jī)時(shí)間和最后一輪發(fā)送的內(nèi)存頁數(shù)目在隨內(nèi)存增加都有不同程度的減少。

        圖14和圖15分別給出了 Sysbench負(fù)載在不同內(nèi)存下的總傳輸?shù)膬?nèi)存頁和總遷移時(shí)間。可以看出,隨著內(nèi)存的增加,總傳輸?shù)膬?nèi)存頁數(shù)也隨著增加,LMCOS增加的幅度高于預(yù)拷貝算法。也迎合了不同工作負(fù)載測試環(huán)節(jié)中Sysbench場景所表現(xiàn)出來的總傳輸?shù)膬?nèi)存頁數(shù)目大幅增加的情形。但是總傳輸時(shí)間卻不同,預(yù)拷貝算法增加的幅度高于LMCOS,說明盡管內(nèi)存增加,但是使用的內(nèi)存有限,大部分內(nèi)存頁和初始內(nèi)存頁面還有很多的相似性,也進(jìn)一步說明,采用本文所提出的基于運(yùn)行階段特征的虛擬機(jī)實(shí)時(shí)遷移技術(shù),隨著內(nèi)存的增加,總遷移時(shí)間改進(jìn)的程度越見效。

        總之,采用本文所提出的基于運(yùn)行階段特征的方法,隨著內(nèi)存的不同,對停機(jī)時(shí)間的影響沒有對總遷移時(shí)間的影響大。LMCOS方法中的比對初始內(nèi)存頁變量傳輸技術(shù)對虛擬機(jī)內(nèi)存大小變化最為敏感,內(nèi)存越大,總遷移時(shí)間改進(jìn)越大,這是因?yàn)槌跏茧A段內(nèi)存頁比重較大且相似于初始內(nèi)存頁。

        6 結(jié)束語

        虛擬機(jī)實(shí)時(shí)遷移技術(shù)是虛擬化領(lǐng)域的研究熱點(diǎn)之一。本文對虛擬機(jī)實(shí)時(shí)遷移中最常用的預(yù)拷貝算法進(jìn)行了改進(jìn),在預(yù)拷貝算法運(yùn)行的不同階段,分別引入了不同的技術(shù)手段,提出了基于運(yùn)行階段特征的虛擬機(jī)實(shí)時(shí)遷移技術(shù)。在預(yù)拷貝算法執(zhí)行的過程中,通過總結(jié)各個(gè)階段的顯著特點(diǎn),并分別采取有針對性的改進(jìn)措施,取得了很好的收益。實(shí)驗(yàn)結(jié)果表明,在不同工作負(fù)載的情況下,基于運(yùn)行階段特征的虛擬機(jī)實(shí)時(shí)遷移技術(shù)可以同時(shí)減少停機(jī)時(shí)間、總遷移時(shí)間。最好的情況下可以使總遷移時(shí)間減少89%左右,同時(shí)使停機(jī)時(shí)間減少98%左右。基于運(yùn)行階段特征的虛擬機(jī)實(shí)時(shí)遷移技術(shù)適用于不同的內(nèi)存,對于不同內(nèi)存下的同一負(fù)載,隨著內(nèi)存的增加,總遷移時(shí)間的改進(jìn)越有成效,但是對停機(jī)時(shí)間而言,改進(jìn)的成效沒有總遷移時(shí)間明顯。后續(xù)工作中,將繼續(xù)研究和虛擬機(jī)實(shí)時(shí)遷移相關(guān)的其他方面,包括遷移時(shí)多虛擬機(jī)之間的相互影響,以及遷移中的安全性等問題。

        [1] CLARK C, FRASER K, HAND S. Live migration of virtual machines. Networked[C]//Systems Design &Implementation(NSDI). c2005: 273-286.

        [2] HINES M R, DESHPANDE U, GOPALAN K. Post-copy live migration of virtual machines[C]//ACM SIGOPS Operating Systems Review. c2009: 14-26.

        [3] 陳陽, 懷進(jìn)鵬, 胡春明. 基于內(nèi)存混合復(fù)制方式的虛擬機(jī)在線遷移機(jī)制[J]. 計(jì)算機(jī)學(xué)報(bào), 2011, 34(12): 2278-2291.

        CHEN Y, HUAI J P, HU C M. Live migration of virtual machines based on hybrid memory copy approach[J]. Chinese Journal of Computers, 2011, 34(12): 2278-2291.

        [4] LIU H K, JIN H, LIAO X F. Live migration of virtual machine based on full system trace and replay[C]//Symposium on High Performance Distributed Computing (HPDC). c2009: 101-110.

        [5] CHANCHIO K,THAENKAEW P. Time-bound, thread-based live migration of virtual machines[C]//Cluster, Cloud and Grid Computing (CCGrid). c2014: 364-373.

        [6] JIN H, DENG L, WU S. Live Virtual machine migration with adaptive memory compression[C]//Cluster Computing and Workshops (CLUSTER). c2009: 1-10.

        [7] ZHANG X, HUO Z G, MA J. Exploiting data deduplication to accelerate live virtual machine migration[C]//Cluster Computing (CLUSTER). c2009: 88-96.

        [8] SVARD P, HUDZIA B, TORDSSON J. Evaluation of delta compression techniques for efficient live migration of large virtual machines[C]//Virtual execution environments(VEE). c2011: 111-120.

        [9] MA Y Q, WANG H B, DONG J K. ME2:efficient live migration of virtual machine with memory exploration and encoding[C]//Cluster Computing (CLUSTER). c2012: 610-613.

        [10] DU Y Y, YU H L, SHI G Y. Microwiper: efficient memory propagation in live migration of virtual machines[C]//Parallel Processing (ICPP). c2010: 141-149.

        [11] SV?RD P, TORDSSON J, HUDZIA B. High performance live migration through dynamic page transfer reordering and compression[C]//Cloud Computing Technology and Science (CloudCom). c2011: 542-548.

        [12] ZOU Q X, HAO Z Y, CUI X. Counting sort for the live migration of virtual machine[C]//Cluster Computing (CLUSTER). c2013: 1-5.

        [13] LIU Z B, QU W Y, LIU W J. Xen live migration with slowdown scheduling algorithm[C]//Parallel and Distributed Computing, Applications and Technologies (PDCAT). c2010: 215-221.

        [14] JIN H, GAO W, WU S. Optimizing the live migration of virtual machine by CPU scheduling[J]. Journal of Network and Computer Applications. 2011, 34: 1088-1096.

        [15] ADEL A, KAMRAN Z. Improving the time of live migration virtual machine by optimized algorithm scheduler credit[C]//Computer and Knowledge Engineering (ICCKE). c2014: 346-351.

        Live migration based on the characteristics of operation stages for virtual machine

        ZOU Qing-xin1,2,3, HAO Zhi-yu3, YUN Xiao-chun1,3

        (1. Institute of Computing Technology, Chinese Academy of Sciences, Beijing 100190, China; 2. University of Chinese Academy of Sciences, Beijing 100049, China; 3. Institute of Information Engineering, Chinese Academy of Sciences, Beijing 100193, China)

        Being directed against the different characteristics of start, iterative and end stages of pre-copy algorithm, live migration based on the characteristics of operation stages referred to as LMCOS was proposed. In the start stage, the technique of comparing initial memory page and sending variables was brought to avoid the transferring of unmodified memory. During the iterative stage, the transmitting method of counting sort was brought to reduce retransmitting memory pages. In the end stage, the police of reducing time slices of virtual machine’s CPU was brought to shorten the down-time. Compared with pre-copy algorithm, LMCOS reduces downtime by 53% and total migration time by 65% on average.

        live migration, pre-copy, characteristics of the operation stages, virtual machine

        TP302

        A

        10.11959/j.issn.1000-436x.2016021

        2015-06-03;

        2015-10-30

        國家科技支撐計(jì)劃基金資助項(xiàng)目(No.2012BAH46B02)

        The National Key Technology Support Program (No.2012BAH46B02)

        鄒慶欣(1982-),男,遼寧義縣人,中國科學(xué)院計(jì)算技術(shù)研究所博士生,主要研究方向?yàn)樾畔踩吞摂M化技術(shù)。

        郝志宇(1980-),男,山東蓬萊人,博士,中國科學(xué)院信息工程研究所副研究員,主要研究方向?yàn)樾畔踩吞摂M化技術(shù)。

        云曉春(1971-),男,黑龍江哈爾濱人,博士,中國科學(xué)院計(jì)算技術(shù)研究所研究員、博士生導(dǎo)師,主要研究方向?yàn)樾畔踩?、?jì)算機(jī)網(wǎng)絡(luò)等。

        猜你喜歡
        方法
        中醫(yī)特有的急救方法
        中老年保健(2021年9期)2021-08-24 03:52:04
        高中數(shù)學(xué)教學(xué)改革的方法
        化學(xué)反應(yīng)多變幻 “虛擬”方法幫大忙
        變快的方法
        兒童繪本(2020年5期)2020-04-07 17:46:30
        學(xué)習(xí)方法
        可能是方法不對
        用對方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        最有效的簡單方法
        山東青年(2016年1期)2016-02-28 14:25:23
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        賺錢方法
        伊伊人成亚洲综合人网7777| 亚洲处破女av日韩精品中出| 超碰色偷偷男人的天堂| 婷婷五月综合丁香在线| 国产精品天堂avav在线| 国产精品三级1区2区3区| 91精品国产综合久久久密臀九色 | 亚洲国产线茬精品成av| 国产一区二区三区四色av| 性高湖久久久久久久久| 欧美极品第一页| 国产白浆流出一区二区| 人妻少妇中文字幕在线观看| 四虎影视永久在线观看| 久久久亚洲经典视频| 日本精品啪啪一区二区| 美女视频黄是免费| 亚洲熟少妇在线播放999| 精品在免费线中文字幕久久| 性色国产成人久久久精品二区三区| 国产午夜片无码区在线播放| 五十路熟妇高熟无码视频| 久久久精品免费国产四虎| 亚洲国产精品久久久婷婷| 国产成人av综合色| 白嫩少妇激情无码| 最近亚洲精品中文字幕| 精品国产日韩一区2区3区| 超清精品丝袜国产自在线拍| 欧美亚洲高清日韩成人| 一区二区三区四区免费国产视频| 国产成人a级毛片| 18禁高潮出水呻吟娇喘蜜芽| 国产盗摄XXXX视频XXXX| 久久精品亚洲熟女av麻豆| 天堂а√在线最新版中文在线 | 色一情一乱一伦一视频免费看| 国产精品后入内射日本在线观看| 亚洲伊人免费综合网站| 极品一区二区在线视频观看| 久久夜色精品国产欧美乱|