1 概述
隨著云計(jì)算、服務(wù)計(jì)算等新興技術(shù)的應(yīng)用,在WAN 環(huán)境下進(jìn)行虛擬機(jī)在線遷移的需求逐漸增加。虛擬機(jī)的在線遷移可以將虛擬機(jī)從一個(gè)物理節(jié)點(diǎn)透明地遷移到另一節(jié)點(diǎn),實(shí)現(xiàn)資源調(diào)度,提高服務(wù)的可用性,已成為虛擬化的基礎(chǔ)支撐技術(shù)。
目前,在線遷移一般在同一個(gè)局域網(wǎng)內(nèi)進(jìn)行,源節(jié)點(diǎn)、目的節(jié)點(diǎn)間通過預(yù)拷貝技術(shù)遷移內(nèi)存,利用廣播ARP 報(bào)文進(jìn)行網(wǎng)絡(luò)重定向,為提高效率,對(duì)于含有大量數(shù)據(jù)的磁盤則是利用共享存儲(chǔ)來避免遷移。然而在WAN 環(huán)境下,共享模式使虛擬機(jī)經(jīng)過WAN 讀寫磁盤,在網(wǎng)絡(luò)延遲較大特別是存在抖動(dòng)的情況下將降低讀寫效率。
為此,本文設(shè)計(jì)一種適應(yīng)WAN 的磁盤在線遷移策略。
2 相關(guān)工作
文獻(xiàn)提出利用實(shí)時(shí)同步機(jī)制實(shí)現(xiàn)磁盤遷移的方法。源節(jié)點(diǎn)將數(shù)據(jù)從緩存寫入本地磁盤,并通過TCP 連接實(shí)時(shí)發(fā)送至目的節(jié)點(diǎn),從而保持兩節(jié)點(diǎn)磁盤的數(shù)據(jù)一致,實(shí)現(xiàn)磁盤遷移。該方法可以達(dá)到與共享存儲(chǔ)相近的遷移時(shí)間,但存在大量冗余數(shù)據(jù)被同步的情況,若虛擬機(jī)多次寫同一個(gè)磁盤塊,則目的節(jié)點(diǎn)亦會(huì)被重復(fù)同步,在虛擬機(jī)遷移前,這些數(shù)據(jù)將成為無效數(shù)據(jù)。此外,該方法中實(shí)時(shí)同步的突發(fā)流量可能對(duì)帶寬提出較高的要求。
文獻(xiàn)[4]提出預(yù)遷移與基于回放同步相結(jié)合的方式實(shí)現(xiàn)磁盤遷移。在遷移觸發(fā)后,首先采用預(yù)拷貝技術(shù)遷移整個(gè)虛擬機(jī)的磁盤數(shù)據(jù),在此過程中,捕獲所有寫磁盤請(qǐng)求,包括寫的數(shù)據(jù)、位置及長(zhǎng)度,并同時(shí)轉(zhuǎn)發(fā)到目的節(jié)點(diǎn)保存。當(dāng)虛擬機(jī)遷移結(jié)束后,目的節(jié)點(diǎn)阻塞外部對(duì)磁盤的讀寫操作,并在磁盤上回放記錄的寫操作。由于需要遷移虛擬機(jī)磁盤的所有數(shù)據(jù),因此該方案總體遷移時(shí)間長(zhǎng),遷移的數(shù)據(jù)量大,在一定程度上影響了遷移效率。
文獻(xiàn)[5]實(shí)現(xiàn)按需取塊的磁盤遷移策略,先遷移虛擬機(jī)的內(nèi)存數(shù)據(jù)和CPU 狀態(tài),在遷移過程中,磁盤讀寫在源節(jié)點(diǎn)上進(jìn)行。當(dāng)虛擬機(jī)在目的節(jié)點(diǎn)上恢復(fù)運(yùn)行后,根據(jù)讀寫磁盤的請(qǐng)求,從源節(jié)點(diǎn)按需取數(shù)據(jù)塊,并在目的節(jié)點(diǎn)緩存。當(dāng)所有需要的塊均被緩存后,在目的節(jié)點(diǎn)上即可實(shí)現(xiàn)磁盤的本地操作。該策略可以有效減少磁盤遷移的數(shù)據(jù)量,縮短遷移的總體時(shí)間,但會(huì)造成對(duì)源主機(jī)長(zhǎng)時(shí)間的依賴,且遷移后仍需訪問源節(jié)點(diǎn)的磁盤,降低了訪問速度。
綜上所述,現(xiàn)有WAN 條件下的磁盤遷移方法在遷移時(shí)間、遷移數(shù)據(jù)量以及遷移后對(duì)源節(jié)點(diǎn)的依賴程度等方面存在局限。針對(duì)上述情況,本文提出一種帶冗余檢測(cè)功能的磁盤在線遷移策略,與實(shí)時(shí)磁盤同步相比,能縮短遷移時(shí)間,減少磁盤遷移的數(shù)據(jù)量,并實(shí)現(xiàn)了虛擬機(jī)對(duì)目的節(jié)點(diǎn)磁盤的本地操作。
3 磁盤遷移策略
3.1 策略描述
磁盤遷移策略(RCS-DLM)基于周期同步方式保持源、目的節(jié)點(diǎn)上磁盤數(shù)據(jù)的一致性,以此為基礎(chǔ),進(jìn)行虛擬機(jī)在線遷移。磁盤在線遷移的工作原理如圖1 所示,該策略包括非同步期的寫標(biāo)記、同步與冗余檢測(cè)、虛擬機(jī)在線遷移3 個(gè)階段,其中,在虛擬機(jī)遷移觸發(fā)前,前2 個(gè)階段反復(fù)交替執(zhí)行,遷移觸發(fā)后,進(jìn)入第3 個(gè)階段,執(zhí)行虛擬機(jī)遷移任務(wù)。
圖1 磁盤在線遷移的工作原理
圖1 的具體說明如下:
(1)Bitmap 寫標(biāo)記與實(shí)時(shí)的磁盤同步不同,在非同步期內(nèi),RCS-DLM 負(fù)責(zé)將虛擬機(jī)的寫數(shù)據(jù)直接寫入源節(jié)點(diǎn)a 的磁盤而不傳輸至目的節(jié)點(diǎn)b。如圖1 所示,在源節(jié)點(diǎn)a,虛擬機(jī)的寫磁盤請(qǐng)求經(jīng)過虛擬機(jī)監(jiān)控器的事件通道傳遞至Dom0 域的設(shè)備模塊,設(shè)備模塊響應(yīng)該請(qǐng)求,并將數(shù)據(jù)寫入虛擬機(jī)在a 的磁盤分區(qū)。在這一過程中,RCS-DLM 捕獲并通過Bitmap 記錄被寫磁盤塊(臟塊)的位置。Bitmap 中的每一位對(duì)應(yīng)一個(gè)數(shù)據(jù)塊,若數(shù)據(jù)塊為臟塊,則相應(yīng)位為1,否則為0。本文中數(shù)據(jù)塊大小為4 KB,若取虛擬機(jī)磁盤大小為8 GB,則Bitmap 自身僅為0.25 MB。
在非同步期內(nèi),如果虛擬機(jī)多次將數(shù)據(jù)寫入同一個(gè)磁盤塊,其相應(yīng)的Bitmap 位被置為1,但由于每次寫入的數(shù)據(jù)不會(huì)同步至目的節(jié)點(diǎn),因此避免了在兩節(jié)點(diǎn)間同步無效的冗余數(shù)據(jù),節(jié)約了傳輸帶寬。
(2)同步與冗余檢測(cè)
同步期內(nèi)的主要工作包括基于冗余檢測(cè)的磁盤數(shù)據(jù)同步以及實(shí)時(shí)數(shù)據(jù)復(fù)制。
磁盤數(shù)據(jù)同步:在同步開始時(shí),a 將非同步期的Bitmap發(fā)送至b,兩節(jié)點(diǎn)根據(jù)該位圖分別計(jì)算對(duì)應(yīng)各臟塊的Hash值;隨后,b 將Hash 表發(fā)送至a,節(jié)點(diǎn)a 依次比較每個(gè)對(duì)應(yīng)臟塊的Hash 值,如果匹配,那么表示該塊內(nèi)容一致,反之,則表示不一致;最后,RCS-DLM 將Hash 值不匹配的塊同步至節(jié)點(diǎn)b,待數(shù)據(jù)一致后,將Bitmap 所有位置0。冗余檢測(cè)避免了同步內(nèi)容一致的數(shù)據(jù)塊,減少了遷移的磁盤數(shù)據(jù)量。
實(shí)時(shí)數(shù)據(jù)復(fù)制:在進(jìn)行數(shù)據(jù)同步的過程中,虛擬機(jī)仍會(huì)向磁盤寫入數(shù)據(jù),RCS-DLM 將數(shù)據(jù)寫入a 磁盤塊的同時(shí)通過節(jié)點(diǎn)間的TCP 連接復(fù)制到b。若此塊在非同步期已被標(biāo)記為臟塊,且準(zhǔn)備同步至b,則RCS-DLM 將其從同步隊(duì)列中刪除,并將Bitmap 相應(yīng)位置0,這進(jìn)一步減少了需要同步的數(shù)據(jù)量。
(3)虛擬機(jī)在線遷移
RCS-DLM 負(fù)責(zé)接受遷移命令,若遷移觸發(fā)時(shí)a 節(jié)點(diǎn)、b節(jié)點(diǎn)處于非同步期,則立即轉(zhuǎn)入同步期進(jìn)行數(shù)據(jù)同步,在數(shù)據(jù)一致后進(jìn)行虛擬機(jī)內(nèi)存和CPU 狀態(tài)的遷移,如圖1 所示;在遷移過程中,虛擬機(jī)寫入a 磁盤的數(shù)據(jù),同樣被實(shí)時(shí)復(fù)制到b 磁盤;虛擬機(jī)重啟后,直接讀寫b 磁盤,而并不需要訪問a。遷移后,a 節(jié)點(diǎn)、b 節(jié)點(diǎn)間仍可保持磁盤的周期同步,這樣方便虛擬機(jī)遷回a 節(jié)點(diǎn)。
3.2 RCS-DLM 的性能分析
比較從自遷移命令觸發(fā)到完成的過程中, 預(yù)遷移、RCS-DLM 及實(shí)時(shí)同步3 種方式所傳輸?shù)拇疟P數(shù)據(jù)量。預(yù)遷移方式從源節(jié)點(diǎn)復(fù)制到目的節(jié)點(diǎn)的磁盤數(shù)據(jù)量sumd可由下式計(jì)算得出:
(1)
其中,D 表示虛擬機(jī)所占磁盤大;wd 表示復(fù)制D 過程中每次新產(chǎn)生臟塊的大;P 表示寫次數(shù);wm 為內(nèi)存和CPU 狀態(tài)遷移過程中每次寫磁盤的數(shù)據(jù)量;Q 為寫次數(shù)。RCS-DLM 遷移的數(shù)據(jù)量sumr 可由下式計(jì)算得出:
*(2)
設(shè)遷移觸發(fā)時(shí),a、b 正處于非同步期,隨后,轉(zhuǎn)入同步期,其需要同步的臟塊數(shù)據(jù)量為R,R
因?yàn)閷?shí)時(shí)同步方式在遷移內(nèi)存前無需磁盤臟塊的遷移,所以其遷移的數(shù)據(jù)量sums表示僅發(fā)生在內(nèi)存遷移過程中的磁盤寫數(shù)據(jù),sums=sumr?R。但由于該方式要求有充足的帶寬來保證磁盤的實(shí)時(shí)同步,這一點(diǎn)在WAN 環(huán)境下很難做到,特別是在執(zhí)行磁盤密集型任務(wù)時(shí)更難保證,因此存在較大的局限性。
從分析來看,在遷移啟動(dòng)到完成的過程中,RCS-DLM需要遷移的磁盤數(shù)據(jù)量遠(yuǎn)小于預(yù)遷移方式,但比實(shí)時(shí)同步方式稍大。假設(shè)在3 種方式下a 節(jié)點(diǎn)、b 節(jié)點(diǎn)間的可用帶寬相同,則RCS-DLM 遷移所需的總體時(shí)間遠(yuǎn)小于預(yù)遷移但略大于實(shí)時(shí)同步方式。
4 實(shí)驗(yàn)結(jié)果與分析
4.1 實(shí)驗(yàn)環(huán)境
硬件環(huán)境為:2 個(gè)在不同子網(wǎng)的宿主機(jī)節(jié)點(diǎn),節(jié)點(diǎn)間帶寬設(shè)置為10 MB/s,每節(jié)點(diǎn)配置雙Xeon E5504 CPU、8 GB內(nèi)存,分別為源節(jié)點(diǎn)、目的節(jié)點(diǎn),虛擬機(jī)則由2 個(gè)VCPU、512 MB 內(nèi)存組成。軟件環(huán)境為:Linux 平臺(tái),虛擬化軟件Xen3.0.3,使用DF 工具模擬磁盤寫操作,并使用Tcpdump統(tǒng)計(jì)源、目的節(jié)點(diǎn)間數(shù)據(jù)的吞吐量。本文設(shè)計(jì)3 組實(shí)驗(yàn)分別進(jìn)行虛擬機(jī)讀寫性能及遷移時(shí)間的測(cè)試。
4.2 實(shí)驗(yàn)設(shè)計(jì)與結(jié)果分析
4.2.1 實(shí)時(shí)同步方式的性能比較
本文實(shí)驗(yàn)比較實(shí)時(shí)同步與RCS-DLM 在冗余數(shù)據(jù)、傳輸帶寬兩方面的性能。在虛擬機(jī)中模擬磁盤寫操作,每隔2 s寫入8 MB 數(shù)據(jù),總計(jì)寫100 次,另外,寫入2 個(gè)200 MB的突發(fā)數(shù)據(jù),非同步期固定為8 s,寫操作下2 種策略網(wǎng)絡(luò)吞吐量比較如圖2 所示。結(jié)果發(fā)現(xiàn):在實(shí)時(shí)同步方式下,復(fù)制到目的節(jié)點(diǎn)的數(shù)據(jù)量為1.097 GB,RCS-DLM 為0.632 GB,有0.465 GB 的冗余數(shù)據(jù)無需同步至目的節(jié)點(diǎn),占實(shí)時(shí)同步的42.4%。在傳輸過程中,實(shí)時(shí)方式要求的最高帶寬8.97 MB/s,RCS-DLM 為5.96 MB/s。可見,冗余檢測(cè)能夠有效避免同步無效數(shù)據(jù),降低數(shù)據(jù)傳輸對(duì)帶寬的要求。
圖2 寫操作下2種策略網(wǎng)絡(luò)吞吐量比較
4.2.2 磁盤讀操作性能測(cè)試
本文實(shí)驗(yàn)在虛擬機(jī)中設(shè)置FTP 服務(wù)器,以檢測(cè)讀虛擬機(jī)磁盤時(shí)RCS-DLM 的性能。實(shí)驗(yàn)在165 s 的時(shí)間內(nèi),讀取虛擬機(jī)磁盤上0.972 GB 的數(shù)據(jù),非同步期固定為35 s,讀操作下本文策略的網(wǎng)絡(luò)吞吐量如圖3 所示。實(shí)驗(yàn)發(fā)現(xiàn):盡管FTP 客戶端從虛擬機(jī)讀取了大量的數(shù)據(jù),但由于讀磁盤并不觸發(fā)寫操作,因此在同步期源、目的節(jié)點(diǎn)僅同步從客戶端上傳的文件和同步信息,數(shù)據(jù)量少?梢,RCS-DLM 能夠較好地滿足讀操作密集的應(yīng)用。
圖3 讀操作下本文策略的網(wǎng)絡(luò)吞吐量
4.2.3 遷移時(shí)間測(cè)試與比較
在RCS-DLM 方式的遷移過程中,以10 s 間隔寫入不同大小的磁盤文件,統(tǒng)計(jì)遷移的總時(shí)間及內(nèi)存遷移的數(shù)據(jù)量。不同磁盤負(fù)載情況下遷移性能比較如圖4 所示,在遷移過程中,隨著寫數(shù)據(jù)量的增加,遷移的總時(shí)間和內(nèi)存遷移量將有所增加。在無負(fù)載時(shí),內(nèi)存遷移量為0.577 GB,與內(nèi)存大小0.512 GB 相比,迭代傳輸?shù)膬?nèi)存量為0.065 GB,遷移總時(shí)間48.1s;寫入50 MB 大小的文件時(shí),內(nèi)存遷移量為0.623 GB,迭代傳輸為0.111 GB,遷移總時(shí)間54.3 s。較之無負(fù)載情況,內(nèi)存迭代增加率為7.9%,遷移總時(shí)間增加率為12.9%,增幅較低。
圖4 不同磁盤負(fù)載情況下遷移性能比較
此外,實(shí)驗(yàn)還利用Ping 測(cè)試虛擬機(jī)在無負(fù)載情況下遷移的暫停響應(yīng)時(shí)間。共享存儲(chǔ)方式的暫停時(shí)間為4.3s,RCSDLM的暫停時(shí)間為4.6 s,與共享存儲(chǔ)方式的時(shí)間相近。
5 結(jié)束語
本文設(shè)計(jì)實(shí)現(xiàn)了帶有冗余檢測(cè)的虛擬機(jī)磁盤在線遷移策略。實(shí)驗(yàn)結(jié)果表明,通過周期同步、冗余檢測(cè)等多種方式減少了自虛擬機(jī)遷移命令觸發(fā)到遷移完成過程中磁盤同步的數(shù)據(jù)量,降低了帶寬需求,縮短了遷移的總時(shí)間,該策略可應(yīng)用于WAN 環(huán)境中的虛擬機(jī)在線遷移;诒疚墓ぷ,今后將在虛擬機(jī)整體遷移方面開展研究,包括優(yōu)化虛擬機(jī)磁盤、內(nèi)存、網(wǎng)絡(luò)等的遷移時(shí)序,進(jìn)一步降低WAN 環(huán)境下延遲抖動(dòng)對(duì)遷移的影響。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(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)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:基于同步機(jī)制的虛擬機(jī)磁盤在線遷移策略
本文網(wǎng)址:http://www.ezxoed.cn/html/consultation/1083943484.html