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