郭文東
(河北省財(cái)政廳,石家莊 050051)
一種基于Xen的自動(dòng)遷移系統(tǒng)設(shè)計(jì)
郭文東
(河北省財(cái)政廳,石家莊 050051)
虛擬機(jī)實(shí)時(shí)遷移[1,2]可以實(shí)現(xiàn)將一臺(tái)虛擬機(jī)在運(yùn)行狀態(tài)下遷移到另一臺(tái)物理機(jī)上,可以用于服務(wù)器資源整合、負(fù)載均衡、節(jié)能省電和物理機(jī)例行維護(hù)等應(yīng)用。然而,當(dāng)前的虛擬機(jī)實(shí)時(shí)遷移只能達(dá)到人工遷移,而不能實(shí)現(xiàn)全自動(dòng)遷移。當(dāng)虛擬機(jī)較少時(shí)還可以人工操作,但當(dāng)前數(shù)據(jù)中心規(guī)模常常有幾千至上萬(wàn)臺(tái)服務(wù)器,當(dāng)有幾十臺(tái)甚至幾百臺(tái)發(fā)生高負(fù)載時(shí),人工遷移效率是很低的,并有可能會(huì)耽誤遷移時(shí)機(jī)造成一些服務(wù)器長(zhǎng)時(shí)間過(guò)載甚至出現(xiàn)宕機(jī)。
Xen;虛擬化;資源整合;自動(dòng)遷移
Xen;虛擬化;資源整合;自動(dòng)遷移
據(jù)調(diào)查,用戶數(shù)據(jù)中心的網(wǎng)絡(luò)流量往往具有周期性變化規(guī)律,往往是白天訪問(wèn)數(shù)量巨大,造成服務(wù)器負(fù)載較高,而晚上則相反,服務(wù)器的負(fù)載很低,這時(shí)如果能夠自動(dòng)地將那些資源利用率很低的虛擬機(jī)遷移整合到少數(shù)物理機(jī)上,并將虛擬機(jī)的原宿主物理機(jī)設(shè)置成休眠狀態(tài),從而使運(yùn)行的物理機(jī)數(shù)量和負(fù)載率都達(dá)到最佳水平,這將可以大大提高數(shù)據(jù)中心資源利用率并有效降低運(yùn)營(yíng)成本。
因此,本文設(shè)計(jì)了一套基于Xen[4,5]虛擬化引擎的自動(dòng)遷移系統(tǒng),該系統(tǒng)能夠?qū)崟r(shí)收集服務(wù)器負(fù)載數(shù)據(jù),除了服務(wù)器熱點(diǎn)探測(cè)外,還能進(jìn)行冷點(diǎn)探測(cè)并自動(dòng)識(shí)別出當(dāng)前服務(wù)器資源池的整體負(fù)載,并按照預(yù)先設(shè)置的遷移決策算法,分別對(duì)集群高負(fù)載和低負(fù)載場(chǎng)景實(shí)施自動(dòng)遷移,該自動(dòng)遷移系統(tǒng)將有效提高數(shù)據(jù)中心的管理效率并減少服務(wù)器運(yùn)營(yíng)成本。
針對(duì)上述應(yīng)用場(chǎng)景,本文基于Xen虛擬化引擎設(shè)計(jì)了針對(duì)上述兩種主要場(chǎng)景的自動(dòng)遷移解決方案,主要解決了兩個(gè)自動(dòng)化問(wèn)題:一是自動(dòng)模式識(shí)別,即系統(tǒng)能夠自動(dòng)感知此時(shí)該使用負(fù)載均衡模式還是節(jié)能省電模式,具有自適應(yīng)的特點(diǎn),確切的說(shuō)是作出模式識(shí)別,是根據(jù)負(fù)載將虛擬機(jī)均分到各個(gè)物理機(jī)上還是整合到少數(shù)物理機(jī)上。二是自動(dòng)決策遷移,即根據(jù)不同的模式?jīng)Q策遷移誰(shuí)和往哪遷,該決策應(yīng)該提供至少兩種模式的算法。如果是負(fù)載均衡模式,遷移誰(shuí)就是要找到負(fù)載過(guò)高的熱點(diǎn)物理機(jī)和其上需要遷移的虛擬機(jī),并遷移到負(fù)載低的冷點(diǎn)物理上;如果是節(jié)能省電模式,則是要將負(fù)載低的物理機(jī)上的虛擬機(jī)遷移整合到其他負(fù)載低的物理機(jī)上。
在具體實(shí)現(xiàn)上,該系統(tǒng)的自動(dòng)性應(yīng)該體現(xiàn)如下過(guò)程:能夠自動(dòng)的收集數(shù)據(jù),包括虛擬機(jī)和物理機(jī)的CPU使用信息、內(nèi)存使用信息和帶寬使用信息;能自動(dòng)的按照預(yù)先設(shè)置的熱點(diǎn)/冷點(diǎn)探測(cè)算法對(duì)相應(yīng)數(shù)據(jù)進(jìn)行處理,得到冷熱點(diǎn)機(jī)器列表信息;能自動(dòng)的根據(jù)預(yù)先設(shè)置好的負(fù)載均衡模式算法或者節(jié)能省電模式算法計(jì)算出熱點(diǎn)或冷點(diǎn)虛擬機(jī)需要遷移到哪臺(tái)物理機(jī)上;能自動(dòng)下發(fā)遷移命令,通知相應(yīng)物理機(jī)遷移其上的某臺(tái)虛擬機(jī)到指定物理機(jī)上。
整個(gè)系統(tǒng)由多臺(tái)待監(jiān)測(cè)主機(jī)(PM)和全局控制主機(jī)(GlobalController)組成。如圖1所示,待監(jiān)測(cè)主機(jī)上運(yùn)行著一臺(tái)或多臺(tái)虛擬機(jī),虛擬機(jī)上運(yùn)行MemCollector模塊,待監(jiān)測(cè)主機(jī)Domain-0域上運(yùn)行Communicator,Collector,NodeController模塊。全局控制主機(jī)上運(yùn)行Communicator,ScenarioDetector,MigDecider模塊。各模塊的具體功能如下:
⊙ MemCollector:虛擬機(jī)內(nèi)存利用率收集器,存在于虛擬機(jī)用戶態(tài),負(fù)責(zé)實(shí)時(shí)收集虛擬機(jī)的內(nèi)存利用率信息,并傳遞給Collector模塊。
⊙ Collector:信息收集器,存在于Domain-0用戶態(tài)的模塊,負(fù)責(zé)實(shí)時(shí)收集虛擬機(jī)的內(nèi)存利用率、CPU利用率、帶寬利用率和丟包率數(shù)據(jù),以及物理主機(jī)的可用資源大小、CPU利用率和帶寬利用率數(shù)據(jù),并這些數(shù)據(jù)傳遞給GlobalController進(jìn)行處理。
⊙ ScenarioDetector:模式識(shí)別器,該模塊存在于GlobalController中,負(fù)責(zé)對(duì)收到的虛擬機(jī)和物理主機(jī)信息進(jìn)行處理,并決定是采用負(fù)載均衡模式算法還是節(jié)能省電模式算法,并根據(jù)相應(yīng)算法探測(cè)出熱點(diǎn)、冷點(diǎn)物理機(jī),并將虛擬機(jī)和物理機(jī)列表傳遞給MigDecider。
圖1 系統(tǒng)架構(gòu)圖
⊙ MigDecider:遷移決策者,該模塊存在于GlobalController中,將熱點(diǎn)、冷點(diǎn)虛擬機(jī)和物理機(jī)列表按照相應(yīng)的遷移決策算法進(jìn)行匹配,得到要遷移的虛擬機(jī)、源端物理主機(jī)和對(duì)應(yīng)的目標(biāo)主機(jī),即<SrcPM, VM, DesPM>,并下達(dá)遷移命令,通知源端物理主機(jī)上的NodeController遷移指定的虛擬機(jī)到指定目標(biāo)主機(jī)上。
⊙ NodeController:節(jié)點(diǎn)控制器,存在于Domain-0用戶態(tài),負(fù)責(zé)接收MigDecider的遷移命令,實(shí)施最終的遷移。
⊙ Communicator:Socket通信實(shí)體,負(fù)責(zé)主機(jī)之間的通信任務(wù)。
針對(duì)上述系統(tǒng)框架,我們對(duì)每個(gè)功能模塊進(jìn)行了詳細(xì)的分析與設(shè)計(jì),文獻(xiàn)[6]雖然也設(shè)計(jì)了自動(dòng)遷移系統(tǒng),不過(guò)在負(fù)載信息參考上與本文不同,另外,本文還針對(duì)一些特殊場(chǎng)景也進(jìn)行了有針對(duì)性的設(shè)計(jì)和細(xì)致分析。
3.1 數(shù)據(jù)收集
整個(gè)虛擬機(jī)自動(dòng)遷移將依賴所有收集到的虛擬機(jī)和主機(jī)的實(shí)時(shí)數(shù)據(jù),這些實(shí)時(shí)數(shù)據(jù)反映了虛擬機(jī)和物理主機(jī)的負(fù)載情況。其中描述虛擬機(jī)負(fù)載的有3個(gè)指標(biāo):內(nèi)存利用率(MEM_U)、CPU利用率(CPU_U)、帶寬利用率(BW_U)。描述物理主機(jī)的指標(biāo)除了上述3個(gè)外,還包括物理機(jī)的可用資源大?。∕EM_AVAI,CPU_AVAI,BW_AVAI),這直接體現(xiàn)了該物理主機(jī)能接收遷移過(guò)來(lái)的虛擬機(jī)的能力,不同于本文的多指標(biāo)綜合參考,文獻(xiàn)[7]則主要關(guān)注網(wǎng)絡(luò)流量的統(tǒng)計(jì)。整個(gè)數(shù)據(jù)收集功能由位于虛擬機(jī)上的MemCollector和位于Domain-0中的Collector模塊共同完成。
3.2 模式自動(dòng)識(shí)別
該系統(tǒng)應(yīng)該具備完全自動(dòng)特性和自適應(yīng)能力,能夠自動(dòng)識(shí)別出當(dāng)前資源池環(huán)境特點(diǎn),并能在資源池高負(fù)載或低負(fù)載情況下分別作出正確的判斷,從而進(jìn)入適當(dāng)?shù)哪J竭\(yùn)作:負(fù)載均衡模式、節(jié)能省電模式和正常模式。模式自動(dòng)識(shí)別功能由ScenarioDetector模塊實(shí)現(xiàn),其輸入值為各個(gè)物理機(jī)和虛擬機(jī)的相關(guān)數(shù)據(jù)指標(biāo)。
3.3 遷移決策
遷移決策是根據(jù)模式自動(dòng)識(shí)別輸出的模式,分別為負(fù)載均衡模式和節(jié)能省電模式采用不同的遷移決策算法。對(duì)于這兩種模式,遷移決策都要完成三件事:一是優(yōu)先解決哪個(gè)物理機(jī);二是遷移該物理機(jī)上的哪臺(tái)虛擬機(jī);三是把該虛擬機(jī)遷移到哪兒。該階段輸入數(shù)據(jù)有:運(yùn)行模式,熱點(diǎn)物理機(jī)列表HOT_LIST和冷點(diǎn)物理機(jī)列表COLD_ LIST,物理機(jī)的可用資源和負(fù)載程度Degree,虛擬機(jī)的資源需求。輸出為要解決的物理機(jī)SrcPM,要遷移的虛擬機(jī)VM和接收物理機(jī)DestPM,即<SrcPM,VM,DestPM>。整個(gè)遷移決策功能是由MigDecider模塊實(shí)現(xiàn)的。
3.4 實(shí)施遷移
遷移決策模塊做出遷移決策后會(huì)生成三元組<SrcPM,VM, DestPM>,其中SrcPM為要發(fā)起遷移物理機(jī),可能是熱點(diǎn)物理機(jī)也可能是冷點(diǎn)物理機(jī),VM為SrcPM上要遷移的虛擬機(jī),DestPM為接收物理機(jī)。然后通知SrcPM將虛擬機(jī)VM遷移到DestPM上,SrcPM收到遷移命令后即可發(fā)起連接,執(zhí)行遷移。
本文設(shè)計(jì)了一種虛擬機(jī)自動(dòng)遷移系統(tǒng),該系統(tǒng)可以自動(dòng)的發(fā)現(xiàn)熱點(diǎn)物理機(jī),并根據(jù)資源池內(nèi)所有物理機(jī)負(fù)載情況自動(dòng)識(shí)別出正確的場(chǎng)景模式:負(fù)載均衡模式和節(jié)能省電模式,并根據(jù)相應(yīng)的模式按照預(yù)定義的對(duì)應(yīng)遷移決策算法作出決策,并通知相應(yīng)的物理機(jī)將虛擬機(jī)遷移到指定物理機(jī)上。整個(gè)遷移過(guò)程無(wú)需人工干預(yù),可實(shí)現(xiàn)數(shù)據(jù)中心的物理機(jī)負(fù)載均衡和節(jié)能省電功能。這種自動(dòng)遷移系統(tǒng)將會(huì)對(duì)數(shù)據(jù)中心的服務(wù)器管理帶來(lái)極大方便,提高管理效率,并最終節(jié)約數(shù)據(jù)中心的運(yùn)營(yíng)成本。
[1] C. Clark, K. Fraser, S. Hand, J. G. Hansen, E. Jul, C. Limpach,I. Pratt, and A. Warfield. Live migration of virtual machines. In Proc. NSDI 2005.
[2] M. Nelson, B. Lim, and G. Hutchins. Fast Transparent Migration for Virtual Machines. In Proc. USENIX 2005. 270
[3] T. Wood, P. Shenoy, A. Venkataramani, and M. Yousif, Black-box and graybox strategies for virtual machine migration. In Proc. NSDI 2007.
[4] P. Barham, B. Dragovic, K. Fraser, S. Hand, T. Harris, A. Ho,R. Neugebauer, I. Pratt, and A. Warfield. Xen and the art of vir-tualization. In Proc. SOSP 2003.
[5] Xen-3.4.3 Source Code. http://www.xen.org/ 275
[6] Chris Hyser, Bret McKee, Rob Gardner, Brian J. Watson, Autonomic Virtual Machine Placement in the Data Center. Technique Report, HP Laboratories 2007.
[7] Sun Kewei, Li Ying, Luo Jing, Xu Xiang, Qi Quan.Network trafficbased automatic optimized migration from physical to virtualized cloud environment with UCM tool. In Proc. IC-BNMT 2009
[8] Norman Bobroff, Andrzej Kochut, Kirk Beaty.Dynamic Placement of Virtual Machines for Managing SLA 280 Violations. In Proc. IM 2007
Automatic Migration of Xen based System Design
Guo Wendong
(department of finance of Hebei province,Shijiazhuang,050051)
Virtual machine live migration can be a virtual machine migration in the operating state to another physical machine can be used for server resource integration, load balancing, energy saving and physical routine maintenance applications. However, the current virtual machine live migration can only reach a human migration, and automated migration can not be achieved. When a virtual machine can have fewer manual operations, but the scale of today's data centers often have thousands of first million servers, when there are dozens or even hundreds of high load occurs, obviously artificial migration efficiency is very low, and there isIt may delay the timing of migration caused by some servers for a long time overload even downtime. Heavy load for the server presents a hotspot automatic migration program.
Xen; Virtualization; Resource integration; Automatic migration
10.3969/J.ISSN.1672-7274.2015.08.007
TN92文獻(xiàn)標(biāo)示碼:B
10.3969/J.ISSN.1672-7274.2015.08.0026-03