張樂
暨南大學(xué)信息科學(xué)技術(shù)學(xué)院計(jì)算機(jī)科學(xué)系,廣州 510630
基于服務(wù)活躍度的虛擬機(jī)實(shí)時(shí)遷移方案的研究
張樂
暨南大學(xué)信息科學(xué)技術(shù)學(xué)院計(jì)算機(jī)科學(xué)系,廣州 510630
虛擬機(jī)[1]是指通過虛擬機(jī)管理器在一個(gè)物理硬件資源上虛擬出來的具有完整硬件系統(tǒng)功能,運(yùn)行在一個(gè)完全隔離環(huán)境下的完整計(jì)算機(jī)系統(tǒng)。
1.1 背景
虛擬機(jī)的實(shí)時(shí)遷移[2]是在保持虛擬機(jī)服務(wù)正常運(yùn)行的同時(shí),將虛擬機(jī)從一個(gè)物理主機(jī)(源主機(jī))遷移到另外一臺(tái)物理主機(jī)(目標(biāo)主機(jī))上,并在目標(biāo)主機(jī)上恢復(fù)虛擬機(jī)的運(yùn)行。
1.2 實(shí)時(shí)遷移
虛擬機(jī)的實(shí)時(shí)遷移可以在虛擬機(jī)遷移的同時(shí)保證虛擬機(jī)的服務(wù)不受遷移的影響,方便用戶的使用,提高服務(wù)器的使用效率,因而在服務(wù)器集群方面有著廣泛的應(yīng)用。
1.2.1 原因及解決問題
虛擬機(jī)的實(shí)時(shí)遷移所帶來的變化以及其解決的問題包括了以下幾個(gè)方面:
(1)解決“剩余的依賴關(guān)系[3]”的問題,因?yàn)橛行┨摂M機(jī)必須保持其所在主機(jī)的系統(tǒng)配置以及網(wǎng)絡(luò)訪問接口等。
(2)虛擬機(jī)的內(nèi)存狀態(tài)能夠在遷移過程中保持一致并且有效,這也適用于內(nèi)核內(nèi)部狀態(tài)(如當(dāng)前活動(dòng)連接的TCP控制塊),這意味著在實(shí)際應(yīng)用中可以遷移游戲服務(wù)器、流媒體服務(wù)器,而不需要進(jìn)行客戶端的重新連接。
(3)解決了用戶和管理員之間的擔(dān)憂,用戶可以全權(quán)管理虛擬機(jī)內(nèi)運(yùn)行的軟件和服務(wù)而不需要提供任何操作系統(tǒng)級(jí)別的訪問,管理員則不需要關(guān)注虛擬機(jī)內(nèi)發(fā)生的細(xì)節(jié)。
(4)虛擬機(jī)的實(shí)時(shí)遷移對其所在的主機(jī)的維護(hù)也是很有價(jià)值的(可能虛擬機(jī)實(shí)時(shí)遷移完成后該主機(jī)就將退役)。
總之,虛擬機(jī)的實(shí)時(shí)遷移是機(jī)器集群管理員強(qiáng)有力的工具,它分離了軟硬件,并且將機(jī)器集群整合成一個(gè)單一的連貫管理域。此外,可以通過虛擬機(jī)的實(shí)時(shí)遷移來減輕其所在主機(jī)的負(fù)載,從而達(dá)到機(jī)器集群的負(fù)載均衡以及提高資源的可利用性,可以看出虛擬機(jī)的實(shí)時(shí)遷移是非常必要且有用的。
1.2.2 基本概念
虛擬機(jī)的實(shí)時(shí)遷移需要對虛擬機(jī)的所有信息進(jìn)行遷移,包括存儲(chǔ)、網(wǎng)絡(luò)以及內(nèi)存。
存儲(chǔ)遷移因?yàn)槠鋽?shù)據(jù)量極大,在遷移時(shí)會(huì)造成大量的時(shí)間和網(wǎng)絡(luò)帶寬的消耗,降低了實(shí)時(shí)遷移的效率,為了減少這種消耗,通常采用NFS[4]共享數(shù)據(jù)和文件系統(tǒng)。
網(wǎng)絡(luò)遷移[5]是指虛擬機(jī)的所有網(wǎng)絡(luò)設(shè)備,包括協(xié)議狀態(tài)以及IP地址都要進(jìn)行遷移,網(wǎng)絡(luò)遷移可以通過發(fā)送ARP重定向包,將虛擬機(jī)的IP地址與目標(biāo)主機(jī)的MAC地址綁定,綁定之后發(fā)送到虛擬機(jī)的所有包都可以直接發(fā)送到目標(biāo)主機(jī)上,從而實(shí)現(xiàn)網(wǎng)絡(luò)的無縫遷移。
內(nèi)存遷移是虛擬機(jī)中遷移最重要也是最復(fù)雜的遷移,因?yàn)閮?nèi)存頁的信息直接反應(yīng)了當(dāng)前虛擬機(jī)的運(yùn)行狀態(tài)。虛擬機(jī)實(shí)時(shí)遷移的過程中會(huì)不斷地更新內(nèi)存頁的內(nèi)容,這樣就需要重新傳輸內(nèi)存頁到目標(biāo)主機(jī)上,如果虛擬機(jī)的臟頁率高(內(nèi)存頁的內(nèi)容更新快),那么就需要多次傳輸臟頁到目標(biāo)主機(jī)上,這將會(huì)大大增大虛擬機(jī)的總遷移時(shí)間,如果臟頁率低,虛擬機(jī)過早進(jìn)入停機(jī)階段又會(huì)導(dǎo)致虛擬機(jī)服務(wù)停頓時(shí)間過長,所以如何選擇合適的臨界點(diǎn)進(jìn)入停機(jī)階段將直接影響虛擬機(jī)實(shí)時(shí)遷移的效率和時(shí)間。
1.3 內(nèi)存遷移
虛擬機(jī)的內(nèi)存遷移主要分為三個(gè)步驟:Push階段、Stop and Copy階段以及Pull階段。
Push階段:該階段源主機(jī)上的虛擬機(jī)持續(xù)的運(yùn)行,同時(shí)不斷地傳輸內(nèi)存頁到目標(biāo)主機(jī)上,為了保證源主機(jī)和目標(biāo)主機(jī)的一致性,源主機(jī)需要重新發(fā)送發(fā)生更新的內(nèi)存頁(即內(nèi)存臟頁)。
Stop and Copy階段:該階段源主機(jī)上的虛擬機(jī)停止運(yùn)行,并在停止期間發(fā)送剩下的內(nèi)存臟頁到目標(biāo)主機(jī)上,傳輸完成之后目標(biāo)主機(jī)上的虛擬機(jī)開始運(yùn)行,這個(gè)階段的時(shí)間就是停機(jī)時(shí)間downtime[6]。
Pull階段:該階段目標(biāo)主機(jī)上的虛擬機(jī)保持運(yùn)行,如果出現(xiàn)頁錯(cuò)誤,目標(biāo)主機(jī)會(huì)向源主機(jī)請求重新發(fā)送出現(xiàn)錯(cuò)誤的頁。
其中,Stop and Copy階段和Pull階段相結(jié)合的遷移方案稱為Post-copy[7];Push階段和Stop and copy階段相結(jié)合的遷移方案被稱為Pre-copy。
Post-copy和Pre-copy分別適應(yīng)于不同的環(huán)境下,Post-copy為了盡量減小總遷移時(shí)間,Pre-copy為了盡量減小停機(jī)時(shí)間。
1.3.1 Post-copy
Post-copy方案分為以下四個(gè)步驟:
(1)停止源主機(jī)上虛擬機(jī)的運(yùn)作;
(2)傳輸運(yùn)行所需的內(nèi)存頁到目標(biāo)主機(jī)上;
(3)在目標(biāo)主機(jī)上恢復(fù)虛擬機(jī)的運(yùn)作;
(4)傳輸剩下的內(nèi)存頁直到所有頁傳輸完。
在Post-copy方案中,大部分的內(nèi)存頁只需要傳輸一次,因此可以很好地降低總遷移時(shí)間,但是當(dāng)虛擬機(jī)運(yùn)行所需的內(nèi)存頁較多時(shí),則會(huì)使得停機(jī)時(shí)間過長,虛擬機(jī)的性能會(huì)大幅下降。此外,在第二步中,停止運(yùn)作的虛擬機(jī)是不能釋放源主機(jī)的資源的,當(dāng)出現(xiàn)多個(gè)虛擬機(jī)并發(fā)遷移的時(shí)候,將會(huì)導(dǎo)致大量資源需要等待遷移結(jié)束后才能得到釋放,這也會(huì)造成源主機(jī)的硬件資源的浪費(fèi)和遷移效率的下降。
1.3.2 Pre-copy
Pre-copy方案的核心思想是先將所有內(nèi)存頁傳輸?shù)侥繕?biāo)主機(jī)上,在一輪傳輸過后,再向目標(biāo)主機(jī)傳輸上一輪傳輸中發(fā)生更新的內(nèi)存頁(后文中稱臟頁),如此迭代傳輸直到需要傳輸?shù)呐K頁數(shù)目滿足進(jìn)入停機(jī)階段的停機(jī)條件后,進(jìn)入停機(jī)階段,此時(shí)停止源主機(jī)上虛擬機(jī)的運(yùn)行,再將余下的臟頁傳輸?shù)侥繕?biāo)主機(jī)上,最后在目標(biāo)主機(jī)上恢復(fù)虛擬機(jī)的運(yùn)行。Pre-copy方案的具體算法流程如圖1所示。
圖1 Pre-copy算法流程圖
在針對虛擬機(jī)動(dòng)態(tài)遷移技術(shù)優(yōu)化的研究上,大部分都是對針對Pre-copy方案的改進(jìn),目的都是更好地降低總遷移時(shí)間和停機(jī)時(shí)間。主要研究成果有如下:
(1)基于虛擬機(jī)實(shí)時(shí)遷移技術(shù)的內(nèi)存緊壓縮算法和防抖動(dòng)分層拷貝算法[8]。內(nèi)存緊壓縮算法的核心思想是通過充分利用虛擬機(jī)中的氣球驅(qū)動(dòng)程序,對遷移域進(jìn)行內(nèi)存緊壓縮,從而達(dá)到降低遷移時(shí)間和目標(biāo)域啟動(dòng)時(shí)間的目的;臟頁防抖動(dòng)分層算法則是通過對遷移中出現(xiàn)的臟頁進(jìn)行分層,并且設(shè)計(jì)了防抖動(dòng)閾值,很好地解決了遷移中的臟頁問題。
(2)基于虛擬機(jī)實(shí)時(shí)遷移技術(shù)的分層拷貝算法和臟頁減速算法[9]。分層拷貝算法是為了減少傳統(tǒng)迭代過程中重復(fù)拷貝相同臟頁,通過對內(nèi)存頁重寫次數(shù)統(tǒng)計(jì)來盡量減少不必要的拷貝;臟頁減速算法則是考慮如何適量減少被遷移域的CPU占有量來降低臟頁率。通過分層算法與減速算法的協(xié)同工作,在盡可能不影響遷移域服務(wù)的前提下,減少了遷移時(shí)間。
(3)利用Writable Working Set對Pre-copy方案進(jìn)行優(yōu)化。在虛擬機(jī)正常工作的一段時(shí)間內(nèi)記錄虛擬機(jī)的內(nèi)存頁的更新次數(shù),當(dāng)虛擬機(jī)需要進(jìn)行實(shí)時(shí)遷移時(shí)統(tǒng)計(jì)出內(nèi)存頁的更新頻率,將更新頻率不高的內(nèi)存頁在第三階段傳輸,更新頻率比較高的內(nèi)存頁則在第四階段傳輸,從而達(dá)到降低總遷移時(shí)間和停機(jī)時(shí)間的目的。
表1 虛擬機(jī)的內(nèi)存分配和使用機(jī)制
在Pre-copy方案中,源主機(jī)上的虛擬機(jī)管理器首先將待遷移的內(nèi)存頁傳輸?shù)侥繕?biāo)主機(jī)上,然后對臟頁進(jìn)行迭代傳輸。這種方案在虛擬機(jī)低負(fù)載或者無負(fù)載的情況下能夠較好地降低總遷移時(shí)間和停機(jī)時(shí)間,但是當(dāng)虛擬機(jī)高負(fù)載的情況下,Pre-copy方案在面對臟頁率很高的問題時(shí),迭代傳輸臟頁的次數(shù)將會(huì)非常多,直到遷移達(dá)到系統(tǒng)承受上限時(shí)才會(huì)進(jìn)入停機(jī)階段,這顯然會(huì)帶來較大總遷移時(shí)間和停機(jī)時(shí)間的開銷??梢钥闯?,在Pre-copy方案中內(nèi)存頁的數(shù)量以及臟頁率對虛擬機(jī)的實(shí)時(shí)遷移有著非常重要的影響,因此對虛擬機(jī)在主機(jī)上的內(nèi)存分配和使用機(jī)制[10]進(jìn)行分析是非常有必要的。
3.1 虛擬機(jī)的內(nèi)存分配與使用
在主機(jī)上創(chuàng)建虛擬機(jī)需要分配內(nèi)存資源給虛擬機(jī),一般情況下有三個(gè)需要配置的選項(xiàng)(內(nèi)存上限、內(nèi)存預(yù)留、內(nèi)存分享),這三個(gè)選項(xiàng)的分配和使用機(jī)制如下表1所示。
3.2 停止條件
停止條件[11]就是虛擬機(jī)結(jié)束迭代傳輸內(nèi)存頁的第三階段并且進(jìn)入第四階段的判斷條件。
3.2.1 源代碼中的相關(guān)代碼
根據(jù)對實(shí)時(shí)遷移源代碼的分析,停止條件如表2和表3所示。
表2 源代碼中的停止條件
表2中,條件1.1和條件1.2需要同時(shí)滿足才算滿足第1個(gè)停止條件。
條件1.1當(dāng)前迭代輪傳輸?shù)呐K頁數(shù)量大于上一輪傳輸?shù)呐K頁數(shù)量;
條件1.2由遷移引起的網(wǎng)絡(luò)負(fù)載已經(jīng)超過了由虛擬機(jī)定義的吞吐量的闕值。
表3 涉及變量的名詞解釋
條件2迭代次數(shù)超過定義的最大次數(shù)。
條件3當(dāng)前迭代輪需要傳輸?shù)呐K頁數(shù)量和不需要傳輸?shù)呐K頁數(shù)量和小于50。
條件4總遷移的內(nèi)存頁數(shù)量大于虛擬機(jī)所有內(nèi)存頁總數(shù)量的max_factor倍數(shù)。
3.2.2 條件分析
對于停止條件2,在源代碼中,max_iters定義的初始值為29,即當(dāng)?shù)鷤鬏敵^30次時(shí),實(shí)時(shí)遷移進(jìn)入停機(jī)階段,29是一個(gè)經(jīng)驗(yàn)值。對于低負(fù)載的情況,因?yàn)槊看蔚鷤鬏數(shù)呐K頁不多,所以不需要過多的迭代輪數(shù)就可以進(jìn)入停機(jī)階段,而對于高負(fù)載的情況,因?yàn)槊看蔚鷤鬏數(shù)呐K頁數(shù)量很多,過多的迭代輪數(shù)有可能導(dǎo)致總遷移時(shí)間的增大,所以說在不考慮虛擬機(jī)負(fù)載的情況就直接使用一個(gè)確定的數(shù)值顯然是不合理的。
對于停止條件3,在源代碼中,N=50也是一個(gè)經(jīng)驗(yàn)值,即當(dāng)前迭代需要傳輸?shù)呐K頁和不需要傳輸?shù)呐K頁數(shù)量和超過50時(shí),實(shí)時(shí)遷移進(jìn)入停機(jī)階段。對于低負(fù)載的情況,50這個(gè)上限是不容易被達(dá)到的,而對于高負(fù)載的情況,50又很容易滿足,這樣就會(huì)導(dǎo)致過早進(jìn)入停機(jī)階段,從而導(dǎo)致停機(jī)階段需要傳輸過多內(nèi)存頁,導(dǎo)致停機(jī)時(shí)間的增大,這同樣也是不合理的。
對于停止條件1和4,因?yàn)闂l件中都是動(dòng)態(tài)數(shù)值或者是根據(jù)虛擬機(jī)得到的數(shù)值,所以可以不做優(yōu)化的考慮。
3.2.3 結(jié)論
通過對停止條件的分析得到,Pre-copy方案中的停止條件是靜態(tài)的,對于不同負(fù)載的虛擬機(jī)實(shí)時(shí)遷移不能起到動(dòng)態(tài)的調(diào)整,這就很難控制任意負(fù)載的虛擬機(jī)實(shí)時(shí)遷移的總遷移時(shí)間和停機(jī)時(shí)間,所以就需要在虛擬機(jī)實(shí)時(shí)遷移開始前或進(jìn)行中對停止條件進(jìn)行動(dòng)態(tài)的配置,從而使得當(dāng)前的停止條件對于當(dāng)前虛擬機(jī)的實(shí)時(shí)遷移是最佳的。通過對虛擬機(jī)的當(dāng)前服務(wù)活躍度的研究來動(dòng)態(tài)配置停止條件,來達(dá)到優(yōu)化實(shí)時(shí)遷移的目的。
3.3 服務(wù)活躍度
虛擬機(jī)的負(fù)載[12]就是虛擬機(jī)上運(yùn)行的服務(wù)對虛擬機(jī)資源的利用率。內(nèi)存資源是虛擬機(jī)非常重要的資源之一,服務(wù)對內(nèi)存資源的使用主要表現(xiàn)為兩種情況。
(1)寫操作:運(yùn)行服務(wù)將新的內(nèi)容寫到內(nèi)存頁的操作,寫操作的次數(shù)越多相對應(yīng)內(nèi)存頁的更新率就會(huì)越高。
(2)讀操作:運(yùn)行服務(wù)獲取內(nèi)存頁的內(nèi)容來進(jìn)行相關(guān)處理的操作,讀操作不會(huì)對內(nèi)存頁的內(nèi)容進(jìn)行修改,但站在算法設(shè)計(jì)的角度上,讀操作會(huì)增加內(nèi)存頁的被讀取次數(shù),從而會(huì)引起程序代碼中讀次數(shù)變量的變化。因此對于算法而言,讀操作也是屬于內(nèi)存頁的更新范疇。
于是在這里認(rèn)為虛擬機(jī)的負(fù)載越高就會(huì)導(dǎo)致虛擬機(jī)內(nèi)存頁的更新越頻繁(即臟頁率高)。
定義服務(wù)對虛擬機(jī)資源的利用率(即單位時(shí)間內(nèi)虛擬機(jī)上所有用戶作出的操作數(shù))為服務(wù)活躍度,根據(jù)大量實(shí)驗(yàn)驗(yàn)證(實(shí)驗(yàn)環(huán)境為Olio[13],實(shí)驗(yàn)機(jī)制為虛擬機(jī)上不同數(shù)量的用戶同時(shí)使用虛擬機(jī)上的各種服務(wù),然后觀察虛擬機(jī)上的臟頁變化),從而得到服務(wù)活躍度與臟頁率之間的關(guān)系如下圖2所示。
圖2 服務(wù)活躍度與臟頁率之間的關(guān)系
從圖2可以看出,在系統(tǒng)承受范圍內(nèi),服務(wù)活躍度和臟頁率之間呈正比關(guān)系,這里的“系統(tǒng)承受范圍”是由實(shí)驗(yàn)主機(jī)的網(wǎng)絡(luò)帶寬和其物理內(nèi)存大小所決定的。實(shí)驗(yàn)中所使用的主機(jī)能接受的用戶數(shù)量范圍在0到150之間,當(dāng)超過150這個(gè)數(shù)量值時(shí),主機(jī)在單位時(shí)間內(nèi)能更新的內(nèi)存頁數(shù)量也就是在220到240之間,針對上述原因認(rèn)為服務(wù)活躍度越高代表了虛擬機(jī)的負(fù)載越高,從而導(dǎo)致了臟頁率的增加,所以通過研究服務(wù)活躍度來配置停止條件的方案是可行的。
3.4 優(yōu)化方案
結(jié)合上文的結(jié)論,提出根據(jù)虛擬機(jī)當(dāng)前的服務(wù)活躍度來配置實(shí)時(shí)遷移的停止條件,具體流程為:
(1)虛擬機(jī)實(shí)時(shí)遷移前,通過服務(wù)活躍度檢測器檢測到虛擬機(jī)當(dāng)前的服務(wù)活躍度SLL(Service Live Level);
(2)根據(jù)得到的SLL在SLL基準(zhǔn)庫尋找對應(yīng)的最佳停止條件的配置參數(shù)(max_iters以及N);
(3)將得到新的配置參數(shù)初始化到實(shí)時(shí)遷移程序中,啟動(dòng)實(shí)時(shí)遷移。
根據(jù)SLL來得到最佳停止條件的Pre-copy優(yōu)化系統(tǒng)模型,如圖3所示。
在這個(gè)系統(tǒng)模型中,涉及到“停止條件參數(shù)”、“SLL檢測器”以及“SLL基準(zhǔn)庫”三個(gè)概念。
(1)停止條件參數(shù):源代碼中停止條件中的靜態(tài)參數(shù)N以及max_iters,這兩個(gè)參數(shù)是根據(jù)SLL的不同而動(dòng)態(tài)變化的。
(2)SLL檢測器:檢測虛擬機(jī)實(shí)時(shí)遷移開始前的服務(wù)活躍度,在測試系統(tǒng)中,主要是利用Olio服務(wù)中所帶的用戶操作檢測器來實(shí)現(xiàn)的。
(3)SLL基準(zhǔn)庫:一個(gè)存儲(chǔ)“不同區(qū)間的SLL”和“其對應(yīng)的最佳停止條件參數(shù)”的數(shù)據(jù)庫,這個(gè)數(shù)據(jù)庫是通過大量的虛擬機(jī)實(shí)時(shí)遷移實(shí)驗(yàn)來得到的,數(shù)據(jù)庫的建立過程會(huì)在第4章節(jié)中進(jìn)行介紹。
為了驗(yàn)證上文提出方案的有效性,在物理主機(jī)上搭建測試環(huán)境,分別進(jìn)行靜態(tài)停止條件和基于服務(wù)活躍度的停止條件兩種情況下的虛擬機(jī)實(shí)時(shí)遷移實(shí)驗(yàn),并對總遷移時(shí)間和停機(jī)時(shí)間的結(jié)果進(jìn)行分析。
4.1 實(shí)驗(yàn)環(huán)境搭建
在實(shí)驗(yàn)中,使用NFS服務(wù)來管理源主機(jī)和目標(biāo)主機(jī)的硬存儲(chǔ)資源,采用一臺(tái)PC機(jī)來作為提供NFS服務(wù)的服務(wù)器,此外,虛擬機(jī)在兩臺(tái)相同配置的主機(jī)上進(jìn)行實(shí)時(shí)遷移,這樣可以在兩臺(tái)主機(jī)上相互遷移并連續(xù)進(jìn)行多次實(shí)驗(yàn)。
圖3 加入SLL的系統(tǒng)模型圖
用于搭建環(huán)境的服務(wù)器主機(jī)和虛擬機(jī)的配置,如表4所示。
系統(tǒng)整體架構(gòu)[14]如圖4所示。
圖4 實(shí)驗(yàn)整體架構(gòu)圖
主要配置過程如下:
(1)在源主機(jī)和目標(biāo)主機(jī)上安裝Xen[15];
(2)修改Xen的配置文件,開啟虛擬機(jī)實(shí)時(shí)遷移的端口,重啟xend服務(wù),使更改生效;
(3)激活portmap和NFS服務(wù),啟動(dòng)NFS掛載功能;
(4)源主機(jī)和目標(biāo)主機(jī)將虛擬機(jī)的鏡像掛載到自己對應(yīng)的盤符上,實(shí)現(xiàn)虛擬機(jī)鏡像的NFS共享;
(5)使用Xen create命令創(chuàng)建虛擬機(jī),修改配置文件來配置虛擬機(jī)的各種信息。
4.2 實(shí)驗(yàn)測試
實(shí)驗(yàn)測試主要分為三個(gè)部分:第一部分是建立SLL基準(zhǔn)庫;第二部分是在靜態(tài)停止條件下的虛擬機(jī)實(shí)時(shí)遷移;第三部分是在基于SLL的停止條件下的虛擬機(jī)實(shí)時(shí)遷移。
4.2.1 建立SLL基準(zhǔn)庫
在基于SLL的優(yōu)化方案中,SLL基準(zhǔn)庫是非常重要的,因?yàn)檫@個(gè)數(shù)據(jù)庫的作用是幫助系統(tǒng)根據(jù)當(dāng)前虛擬機(jī)的SLL選擇最佳停止條件。
SLL基準(zhǔn)庫的建立是通過大量的重復(fù)實(shí)時(shí)遷移實(shí)驗(yàn)來獲取的,具體方法是多次實(shí)時(shí)遷移不同SLL的虛擬機(jī),通過調(diào)整停止條件參數(shù)(max_iters和N),記錄每次實(shí)時(shí)遷移的總遷移時(shí)間和停機(jī)時(shí)間,選擇總遷移時(shí)間和停機(jī)時(shí)間最短的那個(gè)停止條件參數(shù)作為對應(yīng)SLL的最佳停止條件參數(shù),實(shí)驗(yàn)初始化數(shù)據(jù)如表5所示。
表5中,max_iters的取值跨度是2,即取值順序?yàn)?,9,11,13,15,同理,N的取值跨度為200。
因?yàn)閷?shí)驗(yàn)次數(shù)特別多,所以僅列出并發(fā)用戶為25的實(shí)驗(yàn)結(jié)果,如表6所示。
表5 實(shí)驗(yàn)初始化數(shù)據(jù)
表6 并發(fā)用戶為25的實(shí)時(shí)遷移結(jié)果
表6中,總遷移時(shí)間用TT表示,停機(jī)時(shí)間用DT表示,單位是ms。
從表6的測試結(jié)果可以得到,當(dāng)并發(fā)用戶為25,SLL=4.975的時(shí)候,虛擬機(jī)的實(shí)時(shí)遷移在停止條件參數(shù)max_iters=9以及N=900時(shí),總遷移時(shí)間和停機(jī)時(shí)間的最小值分別為733 470 ms和1 107 ms。
當(dāng)并發(fā)用戶和SLL分別為其他取值的時(shí)候,其對應(yīng)的最佳停止條件參數(shù)的實(shí)驗(yàn)結(jié)果如表7所示。
表7 SLL基準(zhǔn)庫
4.2.2 靜態(tài)停止條件下的實(shí)時(shí)遷移
在靜態(tài)停止條件下,對于不同SLL的虛擬機(jī),采用多次實(shí)時(shí)遷移并取每次結(jié)果的平均值,實(shí)驗(yàn)測試結(jié)果如表8所示。
4.2.3 基于SLL的停止條件下的實(shí)時(shí)遷移
在基于SLL的停止條件下,先通過SLL檢測器檢測當(dāng)前虛擬機(jī)的SLL,然后從SLL基準(zhǔn)庫中選取最佳的停止條件并配置到遷移程序中,同樣采用多次實(shí)驗(yàn)去平均值。實(shí)驗(yàn)結(jié)果如表9所示。
表8 靜態(tài)停止條件下的實(shí)時(shí)遷移
表9 基于SLL的停止條件下的實(shí)時(shí)遷移
4.3 結(jié)果分析
從表8和表9的結(jié)果,針對不同SLL的虛擬機(jī)實(shí)時(shí)遷移,當(dāng)實(shí)時(shí)遷移分別采用靜態(tài)停止條件和基于SLL的停止條件的時(shí)候,總遷移時(shí)間TT的結(jié)果如圖5所示,停機(jī)時(shí)間DT的結(jié)果如圖6所示。
圖5 兩種停止條件下的總遷移時(shí)間
圖6 兩種停止條件下的停機(jī)時(shí)間
根據(jù)圖5和圖6的結(jié)果,得出的結(jié)論是基于SLL的虛擬機(jī)實(shí)時(shí)遷移方案可以達(dá)到降低總遷移時(shí)間和停機(jī)時(shí)間的效果,從而加快了虛擬機(jī)的實(shí)時(shí)遷移。
為了解決虛擬機(jī)在不同負(fù)載的情況下實(shí)時(shí)遷移的效率問題,提出了基于虛擬機(jī)當(dāng)前服務(wù)活躍度的實(shí)時(shí)遷移優(yōu)化方案。通過虛擬機(jī)服務(wù)活躍度來選擇最佳的停機(jī)條件并配置到相關(guān)遷移程序中,從而達(dá)到降低總遷移時(shí)間和停機(jī)時(shí)間的目的,在一定程度上優(yōu)化了虛擬機(jī)的實(shí)時(shí)遷移。
實(shí)驗(yàn)是通過Olio服務(wù)自帶的用戶操作檢測器來獲取虛擬機(jī)活躍度的,而這種方法不能很好地面對任何情況下的虛擬機(jī)。如何能夠做到隨時(shí)檢測虛擬機(jī)的服務(wù)活躍度并實(shí)時(shí)地配置最佳停止條件,將是今后的一個(gè)研究方向。
[1]Goldberg R P.Survey of virtual machine research[J].Computer,1974,7(6):34-45.
[2]Clark C,F(xiàn)raser K,Hand S,et al.Live migration of virtual machines[C]//Proceedings of the 2nd Conference on Symposium on Networked Systems Design&Implementation.[S.l.]:USENIX Association,2005:273-286.
[3]Douglis F,Ousterhout J.Transparent process migration:design alternatives and the sprite implementation[J].Software:Practice and Experience,1991,21(8):757-785.
[4]Hitz D,Lau J,Malcolm M.File system design for an NFS file serverappliance[C]//ProceedingsoftheUSENIXWinter 1994 Technical Conference,1994:235-246.
[5]溫抿雄,李沁.虛擬機(jī)遷移系統(tǒng)網(wǎng)絡(luò)連接重定向技術(shù)[J].計(jì)算機(jī)應(yīng)用研究,2009,26(5).
[6]Patterson D A.A simple way to estimate the cost of downtime[C]//Proceedingsofthe16thSystemsAdministration Conference,2002.
[7]Hines M R,Deshpande U,Gopalan K.Post-copy live migration ofvirtualmachines[J].ACMSIGOPSOperatingSystems Review,2009,43(3):14-26.
[8]李永.基于虛擬機(jī)動(dòng)態(tài)遷移技術(shù)的分析和研究[D].長沙:國防科學(xué)技術(shù)大學(xué),2009.
[9]阮敏.Xen環(huán)境下實(shí)時(shí)遷移結(jié)構(gòu)和算法研究[D].大連:大連海事大學(xué),2009.
[10]張偉哲,張宏莉,張迪,等.云計(jì)算平臺(tái)中多虛擬機(jī)內(nèi)存協(xié)同優(yōu)化策略研究[J].計(jì)算機(jī)學(xué)報(bào),2011,34(12):2265-2277.
[11]Akoush S,Sohan R,Rice A,et al.Predicting the performance of virtual machine migration[C]//Proceedings of Modeling,Analysis and Simulation of Computer and Telecommunication Systems(MASCOTS).[S.l.]:IEEE,2010:37-46.
[12]李運(yùn)發(fā),徐向華,萬鍵.基于虛擬機(jī)負(fù)載遷移的資源調(diào)度機(jī)制[J].華中科技大學(xué)學(xué)報(bào):自然科學(xué)版,2009(9):45-48.
[13]Breitgand D,Kutiel G,Raz D.Cost-aware live migration of services in the cloud[C]//Proceedings of the 3rd Annual Haifa Experimental Systems Conference.[S.l.]:ACM,2010.
[14]趙華茗.基于虛擬機(jī)的高可用信息服務(wù)平臺(tái)建設(shè)[J].現(xiàn)代圖書情報(bào)技術(shù),2009,25(12):18-23.
[15]Barham P,Dragovic B,F(xiàn)raser K,et al.Xen and the art of virtualization[J].ACM SIGOPS Operating Systems Review,2003,37(5):164-177.
ZHANG Le
Department of Computer Science,School of Information Science and Technology,Jinan University,Guangzhou 510630,China
The live migration of virtual machine is the migration between the different physical hosts,at the same time,ensuring the normal operations of the virtual machine service.In order to ensure the migration efficiency and the normal operation,it needs to reduce the total migration time and downtime.Post-copy and Pre-copy are both frequently used to live migration, Post-copy can reduce the total migration time,Pre-copy can reduce the downtime.This paper presents an optimization Pre-copy scheme based on service live level.According to the relationship between service and dirty page rate,selecting the appropriate stop condition,it makes the live migration enter the stop and copy phase in an appropriate critical point.This not only reduces the number of iterations of the page,but also transmits fewer pages in the stop and copy phase,so as to achieve the purpose of reducing the total migration time and downtime at the same time.
live migration;Post-copy;Pre-copy;service live level;dirty page rate;stop condition
虛擬機(jī)實(shí)時(shí)遷移是在保證虛擬機(jī)服務(wù)正常運(yùn)行的同時(shí),在不同的物理主機(jī)之間遷移,為保證遷移效率和服務(wù)正常運(yùn)行,需降低總遷移時(shí)間和停機(jī)時(shí)間。后拷貝和預(yù)拷貝是常用的兩種實(shí)時(shí)遷移方案,后拷貝能降低總遷移時(shí)間,預(yù)拷貝能降低停機(jī)時(shí)間?;诜?wù)活躍度的預(yù)拷貝優(yōu)化方案是根據(jù)服務(wù)活躍度選擇合適的停止條件,使得虛擬機(jī)在合適的臨界點(diǎn)進(jìn)入停機(jī)階段,這不僅減少了頁的迭代次數(shù),也使停機(jī)階段傳輸更少的頁,從而達(dá)到同時(shí)降低總遷移時(shí)間和停機(jī)時(shí)間的目的。
實(shí)時(shí)遷移;后拷貝;預(yù)拷貝;服務(wù)活躍度;臟頁率;停止條件
A
TP302.2
10.3778/j.issn.1002-8331.1303-0250
ZHANG Le.Scheme research of virtual machine live migration based on service live level.Computer Engineering and Applications,2013,49(19):254-259.
張樂(1988—),男,碩士,研究方向?yàn)樵朴?jì)算。E-mail:shine_paul@163.com
2013-03-18
2013-05-27
1002-8331(2013)19-0254-06