廖劍偉,陳善雄,李莉
(西南大學 計算機與信息科學學院,重慶 400715)
隨著云計算技術的發(fā)展,虛擬化技術推動著整合計算機硬件和軟件系統(tǒng)并向外界提供彈性、可擴展性和可靠性的虛擬化服務[1]。虛擬機(VM, virtual machine)復制技術是云計算環(huán)境下提高系統(tǒng)可靠性的重要機制,一旦主虛擬機所屬的物理機器發(fā)生崩潰或者主虛擬機本身發(fā)生崩潰而無法繼續(xù)提供服務時,位于云計算機環(huán)境中的其他物理機器上的備份虛擬機會接替已崩潰的主虛擬機重新向外界提供服務,從而提高服務的可用性和系統(tǒng)的可靠性[2,3,17]。
在主虛擬機正常工作狀態(tài)下,需要同步主虛擬機和備份虛擬機狀態(tài),通常通過檢查點技術或者其他技術將主虛擬機的虛擬磁盤和內(nèi)存狀態(tài)定期的保存并通過網(wǎng)絡發(fā)送至備份虛擬機幫助其更新虛擬機狀態(tài),使備份虛擬機與主虛擬機最近的檢查點時狀態(tài)一致[2,4,5]。然而系統(tǒng)性能是虛擬機同步操作的最大挑戰(zhàn),通常虛擬機可能占據(jù)幾GB的內(nèi)存,因此同步虛擬機狀態(tài)是一個相當重量級的操作[2,5]。為了減少虛擬機同步操作時主虛擬機的停止運行時間、內(nèi)存復制和網(wǎng)絡傳送的數(shù)據(jù)量,諸如預復制(pre-copy)[6]、I/O deduplication[7]和寫時復制(copyon-write)[8]等優(yōu)化技術相繼被提出,盡管這些技術從一定程度上減少了虛擬機同步操作帶來的性能代價,但是沒有從根本上解決需要處理并通過網(wǎng)絡傳送的龐大數(shù)據(jù)量。以寫時復制為例,它需要保存自上一同步點以來的發(fā)生變化的所有頁面,即使某頁面僅僅改變了一個字節(jié),也需要保存并發(fā)送該完整的內(nèi)存頁面[8]。
本文提出了一種基于內(nèi)存分塊相異數(shù)據(jù)的虛擬機同步技術。在進行同步操作時,主虛擬機通過基于內(nèi)容和地址的二維散列表逐一尋找與發(fā)生變化的頁面(dirty pages)分塊最優(yōu)匹配的未變化頁面(non-dirty pages)分塊,同時找出頁面分塊之間的數(shù)據(jù)相異部分,即補??;最后通過XOR壓縮方法對相異數(shù)據(jù)進行壓縮編碼并傳送給備份虛擬機。備份虛擬機在接收到數(shù)據(jù)后進行解碼并重構主虛擬機端的發(fā)生變化的內(nèi)存頁面,并更新其虛擬機狀態(tài)。同時,為了減少主虛擬機的停止運行時間,在進行XOR數(shù)據(jù)壓縮時,主虛擬機在寫時復制模式下保持運行狀態(tài)。不同于傳統(tǒng)的異步同步方式,基于內(nèi)存分塊相異數(shù)據(jù)的虛擬機同步機制僅需處理和保存發(fā)生變化的頁面分塊與對應的未發(fā)生變化的最優(yōu)匹配頁面分塊的相異數(shù)據(jù)和描述相異數(shù)據(jù)位移信息,大大減少了主虛擬機端需要處理、保存和通過網(wǎng)絡傳送的數(shù)據(jù)量,從而提高主虛擬機在同步操作時的系統(tǒng)性能。
定量分析了不同基準測試程序的內(nèi)存數(shù)據(jù)信息,說明在應用程序的內(nèi)存地址空間中不同頁面分塊的相異數(shù)據(jù)較小,即通過實驗分析在同一應用程序的內(nèi)存地址空間內(nèi),屬于不同頁面的分塊之間相異數(shù)據(jù)字節(jié)數(shù)占分塊大小的百分比。選取了Linux Kernel Compile、SPECweb 2005 Banking,SPECweb 2005 E-Commerce和Exchange Load Generator共4種不同的高可靠性基準測試程序[9,10]來分析內(nèi)存頁面分塊的數(shù)據(jù)相異性,其中前3種基準測試程序運行在Debian Linux虛擬機環(huán)境,Exchange Load Generator運行在Windows Server 2003虛擬機環(huán)境。
1) Linux Kernel Compile:使用默認配置,編譯Linux Kernel Version 2.6.31。
2) SPECweb 2005 Banking:模擬網(wǎng)上銀行,多用戶同時訪問帳號,事務處理等操作,采用基于SSL協(xié)議進行數(shù)據(jù)傳輸[11]。
3) SPECweb 2005 E-commerce:模擬網(wǎng)上商店,多用戶同時瀏覽、選擇和購買商品等,采用了基于SSL協(xié)議和普通HTTP協(xié)議進行數(shù)據(jù)傳輸[11]。
4) Exchange Load Generator:模擬多用戶同時發(fā)送和閱讀郵件,瀏覽工作議程等[12]。
在實驗中,使用大小為5 000內(nèi)存頁面的RUDP(recently used dirty pages)緩存來保存最近使用過的Dirty頁面,緩存采用LRU策略進行頁面替換。通過追蹤RUDP緩存記錄基準測試程序的Non-Zero Dirty內(nèi)存頁面。同時,將這些Dirty內(nèi)存頁面分割成固定大小的頁面分塊,利用3.1節(jié)提及的二維散列表查找相異數(shù)據(jù)最少的Non-Zero Non-Dirty內(nèi)存頁面中的分塊,稱之為最優(yōu)匹配頁面分塊。
圖1顯示在不同大小的頁面分塊的條件下,對應于Non-Zero Dirty頁面分塊的最優(yōu)匹配的Non-Zero Non-Dirty頁面分塊的數(shù)據(jù)相異性。從圖1中可以看出,隨著分塊逐漸變小,頁面分塊的數(shù)據(jù)相異性逐漸變小。以SPECweb2005 Banking為例,相比于分塊為4KB,當分塊大小為64B時(13.4%),最優(yōu)匹配頁面分塊的內(nèi)容相異度降低超過13.2%(即26.6%~13.4%)。但是,頁面分塊變小直接增加了尋找最優(yōu)匹配分塊的時間,也間接帶來額外的整合、保存、發(fā)送同步數(shù)據(jù)的性能代價。通過重復實驗比較,將分塊大小固定為512byte時,可以獲取較好的頁面分塊相異度(即相異數(shù)據(jù)的大小)與性能代價之間的平衡點。
基于存儲器分塊相異數(shù)據(jù)的虛擬機同步機制的基本算法如圖2所示,與傳統(tǒng)的直接收集Dirty頁面并將其從主虛擬機端傳送至備份虛擬機端不同,本文算法中的虛擬機同步操作主要分為以下3步。
圖1 基準測試程序的內(nèi)存分塊數(shù)據(jù)相異性
1) 主虛擬機停止運行以確保狀態(tài)的一致性,找出內(nèi)存地址空間中所有Dirty頁面分塊的最優(yōu)匹配頁面分塊。
2) 將Dirty頁面分塊與最優(yōu)匹配頁面分塊之間相異數(shù)據(jù)(即存儲器內(nèi)容補?。﹫?zhí)行XOR操作,附加相異數(shù)據(jù)的分塊位移信息進行編碼;將編碼后的數(shù)據(jù)置于I/O緩沖區(qū)并通過網(wǎng)絡傳送至備份虛擬機。為了減少主虛擬機的停止時間,一旦編碼后的數(shù)據(jù)置于I/O緩沖區(qū),主虛擬機立即重啟繼續(xù)運行。
3) 備份虛擬機接收到主虛擬機發(fā)送的數(shù)據(jù)后,通過解析壓縮數(shù)據(jù),結合頁面分塊的位移信息,從而在備份虛擬機中重構在主虛擬機端發(fā)生變化的頁面;最后將發(fā)生變化的頁應用于備份虛擬機中完成同步操作。
圖2 基于內(nèi)存分塊數(shù)據(jù)相異性的虛擬機復制技術體系結構
因為Dirty頁面分塊與最優(yōu)匹配頁面分塊之間相異數(shù)據(jù)、分塊位移信息和其他輔助信息的數(shù)據(jù)量要遠遠小于Dirty頁面本身的數(shù)據(jù)量,因此在主虛擬機端處理、保存和通過網(wǎng)絡傳送的數(shù)據(jù)量大大減少,從而有效的提高了主虛擬機的系統(tǒng)性能,減少了主虛擬機的停止運行時間。
K-clustering[13]和R-trees[14]等算法可以精確的查找最優(yōu)匹配內(nèi)存頁面分塊,但是這些算法較高的時間復雜度太高,過長的查找時間直接導致主虛擬機的停止服務時間變長,因此該類算法并不適用于虛擬機同步操作。因此本文提出了一種快速、基于內(nèi)存頁面分塊內(nèi)容的查找近似的最優(yōu)匹配頁面分塊的算法。
與Run-Length Encoding (RLE)[15]向量壓縮機制類似,本文算法首先將內(nèi)存頁面分塊劃分為32個子區(qū)域,當子區(qū)域內(nèi)的比特位為1的總位數(shù)超過設定的閥值(注:該閥值與頁面分塊大小和具體的應用程序相關,通過實驗發(fā)現(xiàn)將該閥值設為子區(qū)域位數(shù)的80%較為合適),則該子區(qū)域對應的散列值為1,否則為0。最終,對每個內(nèi)存頁面分塊,都有一個相應的32位的內(nèi)存頁面分塊的內(nèi)容散列值。在查找最優(yōu)匹配頁面分塊時,認為具有一樣或者最為接近的內(nèi)容散列值的頁面分塊具有最優(yōu)匹配性。
為了讓內(nèi)存頁面分塊內(nèi)容與地址相對應,提出了包括地址和內(nèi)容的二維散列函數(shù)查找最優(yōu)匹配內(nèi)存頁面分塊。圖3顯示了二維散列表的構成,每一個None-zero內(nèi)存頁面分塊由一個內(nèi)存描述符(memory descriptor)表示,該描述符包括內(nèi)存頁面分塊的地址散列值以及相對應的頁面分塊的內(nèi)容散列值。當不同的內(nèi)存描述符具有相同的內(nèi)容散列值時,說明這些內(nèi)存頁面分塊極有可能是最優(yōu)匹配頁面分塊。在主虛擬機收集同步數(shù)據(jù)時,一旦某頁面分塊被確定為Dirty頁面分塊,則其相對應的內(nèi)存分塊描述符會從二維散列表中刪除,以確保存其他Dirty頁面分塊不會尋找它作為最優(yōu)匹配頁面分塊。
圖3 基于地址和內(nèi)容的二維散列表
通過基于內(nèi)容和地址的散列表查找到最優(yōu)匹配內(nèi)存頁面分塊,為了減少置于I/O緩沖區(qū)和通過網(wǎng)絡傳送的數(shù)據(jù)量,提出了基于XOR的數(shù)據(jù)壓縮機制。如圖4所示,找出dirty頁面分塊與最優(yōu)匹配頁面分塊的數(shù)據(jù)相異比特位,執(zhí)行XOR操作形成相異頁面分塊(diff);最后將相異頁面分塊的有效比特位作為同步消息的一部分。其中同步消息中的bitmask記錄相異比特位的分塊位移信息,幫助備份虛擬機重構在主虛擬機端發(fā)生變化內(nèi)存頁面。
圖4 基于XOR的數(shù)據(jù)壓縮
基于Linux KVM實現(xiàn)了本文提出的基于內(nèi)存分塊相異數(shù)據(jù)的虛擬機同步機制。圖5顯示了Linux KVM的體系結構,這里不再介紹各模塊的具體功能。為了使Linux KVM各模塊支持虛擬機復制和同步功能,除利用開源的BLCR 0.80[8]作為檢查點模塊外,還修改了Linux KVM的功能模塊,約4 000行的源代碼。
圖5 Linux KVM 體系結構
3.3.1 寫時復制(copy-on-write)
寫時復制技術是一項在操作系統(tǒng)中的常用的優(yōu)化技術,為了減少主虛擬機在同步操作時的停止運行時間,在進行XOR壓縮分塊相異數(shù)據(jù)時,主虛擬機在寫時復制模式下運行。與傳統(tǒng)意義上的寫時復制技術不同,在基于內(nèi)存分塊數(shù)據(jù)相異性的虛擬機同步操作中,由于XOR壓縮線程與虛擬機本身共享相同的內(nèi)存地址空間,一旦虛擬機需要向頁面寫操作時,新的頁面會被通過復制方式創(chuàng)建,虛擬機便向新頁面進行寫操作。然而,XOR壓縮線程關心的是寫入數(shù)據(jù)之前的頁面。為了解決這個問題,本文算法在寫時復制之前將原始頁面映射到另一虛擬地址,并將映射信息記錄在臨時轉換表中供XOR壓縮線程訪問和查詢。因此,在KVM的最底層,為了支持qemu-kvm模塊中XOR線程對原始頁面的訪問,對KVM內(nèi)核模塊的寫時復制的功能模塊進行了修改和一定程度的擴展。
3.3.2 查找、壓縮和I/O緩沖
虛擬機的同步操作相關的各個功能模塊,包括尋找最優(yōu)內(nèi)存頁面分塊和XOR數(shù)據(jù)壓縮模埠的實現(xiàn)等都在qemu-kvm模塊中。另外,通過修改qemu-kvm模塊中的virtio驅動以支持虛擬機同步操作時的磁盤I/O和網(wǎng)絡緩沖機制,磁盤I/O緩沖區(qū)利用散列表加快數(shù)據(jù)的讀寫操作;網(wǎng)絡緩沖主要是在暫存發(fā)送的同步信息數(shù)據(jù)分組,當備份虛擬機準備好接收同步信息數(shù)據(jù)分組后,處于緩沖區(qū)的所有同步數(shù)據(jù)分組才會通過網(wǎng)絡進行傳送。
為了評價基于內(nèi)存分塊相異數(shù)據(jù)的虛擬機同步技術,通過各種實驗與傳統(tǒng)的虛擬機復制技術(即虛擬機同步技術)進行了比較。因為虛擬機同步操作時,備份虛擬機一直處于一種待機狀態(tài),所以實驗僅測試和記錄主虛擬機端進行同步操作時帶來的系統(tǒng)性能代價。本節(jié)首先介紹實驗平臺,然后根據(jù)基準測試程序類型分別介紹相應的實驗結果并進行分析和討論。
圖6 編譯內(nèi)核時間
使用了3臺服務器運行虛擬機,具體性能參數(shù)如表1所示;在服務器上運行操作系統(tǒng)為Debian Linux和windows server 2003的虛擬機,均采用virtio磁盤和網(wǎng)絡驅動程序。同時,使用2臺Windows XP和Debian Linux的臺試機分別運行Exchange Load Generator和SPECweb客戶端腳本。
表1 服務器性能參數(shù)
通過編譯默認設置的Linux內(nèi)核2.6.31為bzImage文件,分別記錄采用原始方式(Native VM)、標準異步同步方式(Reg Async)[3]、本文算法(Sim Comp)、寫時復制機制的本文算法(Sim comp+COW)等不同虛擬機運行方式時所需的運行時間。
其中,原始方式指直接在未修改的Linux KVM上執(zhí)行內(nèi)核編譯所需要的運行時間;標準異步虛擬機方式指主虛擬機停止運行以確保狀態(tài)的一致性,然后收集所有的Dirty頁面并將其置于I/O緩沖區(qū)后,主虛擬機立即重啟運行,即通過網(wǎng)絡傳送Dirty頁面數(shù)據(jù)操作與主虛擬機的運行是并發(fā)完成;本文算法是指在主虛擬機停止運行后,通過尋找最優(yōu)匹配頁面分塊、XOR壓縮后并置于I/O緩沖區(qū),隨即主虛擬機重啟運行,最后壓縮并編碼的同步數(shù)據(jù)通過網(wǎng)絡傳送至備份虛擬機;寫時復制的本文算法是指在XOR數(shù)據(jù)壓縮時,主虛擬機運行于寫時復制模式,因此主虛擬機的停止時間相對于本文算法的普通模式會有所減少。
圖6顯示了采用不同方式編譯Linux內(nèi)核所需的時間。原始方式不需要產(chǎn)生和處理同步數(shù)據(jù)并進行傳送,所以它需要的運行時間最少;然而由于標準異步方式需要收集所有的Dirty頁面并將其置于I/O緩沖區(qū),所以它需要的運行時間最長;本文算法以及寫時復制的本文算法所需要收集、處理和發(fā)送的數(shù)據(jù)量要遠少于標準異步方式,因此分別約減少約17.2%和30.0%的運行時間。
同時分析了當基準測試程序為內(nèi)核編譯時,分別采用標準異步方式與本文算法進行虛擬機同步操作需要處理的同步消息數(shù)據(jù)量。從圖7可知,本文算法收集和處理并通過網(wǎng)絡傳送的數(shù)據(jù)量要遠小于標準異步方式,僅為標準異步方式約30%的數(shù)據(jù)量。
圖7 編譯內(nèi)核的數(shù)據(jù)傳輸量
運行SPECweb基準測試程序需要3臺機器,一臺機器運行實際的SPECweb基準測試程序,另一臺作為后備機器,在實驗中使用了2臺虛擬機來模擬實際機器,即一臺虛擬機為主虛擬機,另一臺為備份虛擬機;第3臺臺式機被用來運行客戶端腳本。
實驗首先通過調(diào)整設置,使得在原始虛擬機中運行得到99%的“good answer”(該數(shù)據(jù)是由運行客戶端腳本的機器端報告)。在標準異步方式和本文算法進行同步操作時都采用同樣的調(diào)整設置;由于SPECweb對于網(wǎng)絡延遲敏感的基準測試程序,所以設置主虛擬機與備份虛擬機的同步操作的時間間隔為50ms。
圖8顯示了分別采用2種不同的同步機制時行虛擬機同步操作時,主虛擬機端帶來的系統(tǒng)性能代價。其中,圖8(a)顯示了在Banking子基準測試程序時客戶端的響應報告。在標準異步方式中,僅僅約45%的“good answers”,本文算法可以帶來約88%的“good answers”;另一方面,在“tolerable answers”指標中,本文提出的算法也要高于標準異步方式。圖8(b)顯示當子基準測試程序為E-Commerce的客戶端響應報告,同樣本文明顯優(yōu)于標準異步方式。
圖8 SPECweb 2005 Banking & E-Commerce數(shù)據(jù)
同時分析了當基準測試程序為SPECweb2005-Banking時,采用標準異步方式與本文算法進行虛擬機同步操作需要處理的同步消息數(shù)據(jù)量。從圖9可知,本文算法收集和處理并通過網(wǎng)絡傳送的數(shù)據(jù)量要遠小于標準異步方式,是它約20%的數(shù)據(jù)量。
本節(jié)的實驗均在Windows環(huán)境下完成,在Windows2003 Server虛擬機下部署Microsoft Exchange Server 2007。Exchange Server軟件向外界客戶端提供e-mail,日志,通訊錄等系統(tǒng)服務。同時,在運行Windows XP的臺試機中運行Windows Exchange Load Generator應用程序模擬多用戶同時請求Exchange Server服務。需要指出實驗中僅僅服務器端是使用備份虛擬機以提供系統(tǒng)容錯,虛擬機同步操作的時間間隔為50ms;本文算法支持寫時復制功能。
圖10(a)顯示了使用不同的虛擬機同步機制時,10分鐘內(nèi)Exchange Server完成的總任務數(shù)。與在原始虛擬機方式下完成超過10 000任務數(shù)相比,采用標準異步方式進行虛擬機同步操作環(huán)境下的完成任務數(shù)下降為3 954,而采用本文算法進行虛擬機同步操作環(huán)境下的完成任務數(shù)達到了7 100。性能提高近80%。圖10(b)顯示了不同子任務完成所需的時間延遲,因為RequestMeeting子任務的時間延遲大大超出其他子任務,所以完成該子任務時間延遲并沒有完成顯示出來,同樣,本文算法要明顯優(yōu)于標準異步方式。
定量分析不同應用程序的內(nèi)存地址空間的不同頁面分塊數(shù)據(jù)相異性。通過實驗觀察,發(fā)現(xiàn)內(nèi)存頁面分塊與前一階段的某些頁面分塊(即從前一階段開始,該內(nèi)存頁面數(shù)據(jù)未發(fā)生變化)的數(shù)據(jù)相異性較小。當內(nèi)存頁面分塊為512byte時,內(nèi)存分塊的相異性為20%左右。基于該發(fā)現(xiàn),本文提出了一種基于內(nèi)存分塊數(shù)據(jù)相異性的虛擬機同步技術,該方法在主虛擬機端通過基于地址和內(nèi)容的散列函數(shù)表尋找與Dirty內(nèi)存頁面分塊的最優(yōu)匹配Non-dirty內(nèi)存頁面分塊,將兩個內(nèi)存分塊的相異數(shù)據(jù)通過XOR壓縮技術進行壓縮后加上分塊的位移信息整合進行編碼,通過網(wǎng)絡傳遞給備份虛擬機。備份虛擬機對接收到數(shù)據(jù)進行解碼,重組在主虛擬機端的Dirty內(nèi)存頁面,從而完成備份虛擬機的同步操作。
圖10 Microsoft Exchange Server數(shù)據(jù)
與傳統(tǒng)的標準異步虛擬機復制技術直接收集所有Dirty內(nèi)存頁面相比,通過基于內(nèi)容與地址的散列表技術查找指定內(nèi)存分塊的最優(yōu)匹配內(nèi)存分塊可以減少近30%的性能代價。另外,基于XOR的壓縮方法可以減少80%的網(wǎng)絡通信量,對于部分基準測試程序而言,本文算法可提高性能高達90%,適用于對延遲敏感的應用程序的主虛擬機與備份虛擬機之間的同步操作。不過,需要指出本文提出的算法需要在主虛擬機端查找最優(yōu)匹配內(nèi)存分塊和進行數(shù)據(jù)壓縮,當虛擬機的內(nèi)存空間為1GB時,大約需要額外的70MB的內(nèi)存空間存儲散列表和部分中間數(shù)據(jù),同時也需要額外30%CPU計算機資源進行XOR數(shù)據(jù)壓縮。
[1] MORENO-VOZMEDIANO R, MONTERO R, LLORENTE I. Elastic management of cluster-based services in the cloud [A]. Proceedings of the 1st Workshop on Automated Control for Datacenters and Clouds[A]. Barcelona, Spain, 2009. 19-24.
[2] VOORSLUYS W, BROBERG J, VENUGOPAL S, etal. Cost of virtual machine live migration in clouds: a performance evaluation[A].Proceedings of the 1st International Conference on Cloud Computing[C]. Beijing, China, 2009. 254-265.
[3] CULLY B, LEFEBVRE G, MEYER D, etal. Remus: high availability via asynchronous virtual machine replication[A]. Proceedings of the 5th USENIX Symposium on Networked Systems Design and Implementation[C]. San Francisco, USA, 2008. 161-174.
[4] SAPUNTZAKIS C P, CHANDRA R, PFAFF B, etal. Optimizing the migration of virtual computers[J]. ACM SIGOPS Operating Systems Review, 2002, 36(SI): 377-390.
[5] ZHU J, DONG W, JIANG Z, etal. Improving the performance of hypervisor-based fault tolerance[A]. Proceedings of International Parallel and Distributed Processing Symposium[C]. Georgia, USA, 2010.1-10.
[6] CLARK C, FRASER K, HAND S, etal. Live migration of virtual machines[A]. Proceedings of the 2nd Conference on Symposium on Networked Systems Design & Implementation[C]. Berkeley, CA,USA, 2005. 273-286.
[7] KOLLER R, RANGASWAMI R. I/O deduplication: utilizing content similarity to improve I/O performance [J]. ACM Transaction on Storage, 6(13): 1-26, 2010.
[8] VRABLE M, MA J, CHEN J, etal. Scalability, fidelity, and containment in the potemkin virtual honeyfarm[J]. SIGOPS Oper Syst Rev,200539(5): 148-162.
[9] LAGAR-CAVILLA H A, TOLIA N, LARA E, etal. Interactive resource-intensive applications made easy[A]. Proceedings of 8th International Middleware Conference[C]. Grenoble, France, 2005. 143-163.
[10] LU M, CKER CHIUEH T. Fast memory state synchronization for virtualization-based fault tolerance[A]. Proceedings of IEEE/IFIP Inter-national Conference on Dependable Systems Networks[C]. Lisbon,Portugal, 2009. 534-543.
[11] HARIHARAN R, SUN N. Workload characterization of SPEC-web2005[EB/OL].http://www.spec.org/workshops/2006/papers/02_Workload_char_SPECweb2005_Final.pdf, 2012.
[12] Microsoft Corporation. Microsoft exchange load generator [EB/OL].http://www.msexchange.org/articles/Microsoft-Exchange-Load-Gener ator.html, 2012.
[13] GUTTMAN A. R-trees: a dynamic index structure for spatial searching[A]. Proceedings of the 1984 ACM SIGMOD International Conference on Management of Data (SIGMOD ’84)[C]. Massachusetts,USA, 1984. 47-57.
[14] HARTIGAN J A. Clustering Algorithms[M]. New York: John Wiley&Sons, Inc, 1975.
[15] ZHANG X, HUO Z, MA J, etal. Exploiting data deduplication to accelerate live virtual machine migration[A]. proceedings of 2010 IEEE International Conference on Cluster Computing (CLUSTER ‘10)[C].Crete, Greece, 2010. 88-96.
[16] 懷進鵬, 李沁, 胡春明. 基于虛擬機的虛擬計算環(huán)境研究與設計[J]. 軟件學報,2007,18(8):2016-2026.HUAI J P, LI Q, HU C M, Research and design on hypervisor based virtual computing environment[J]. Journal of Software, 2007,18(8):2016-2026.
[17] 孫昱. 虛擬機Xen及其實時遷移技術研究[D]. 上海:上海交通大學,2008.SUN Y. A study of Xen and Live Migration[D]. Shanghai: Shanghai-Jiaotong University, 2008.