一種數據中心多虛擬機的數據遷移方法
【技術領域】
[0001] 本發明屬于云計算領域,具體涉及一種數據中心多虛擬機的數據迀移方法。
【背景技術】
[0002] 近年來,云計算的發展越來越受到人們的關注,其相關應用也逐漸出現在了人們 的生活之中。云服務提供商通過虛擬化技術向用戶提供相應服務。隨著用戶對數據中心 的資源數量和資源種類需求的增加,簡單擴充數據中心規模已經不是一種可行的解決方案 了。因為,當數據中心的規模增大,數據中心的建設成本也會大量增加,而且管理難度和維 護難度也會大量增加。因此,為了解決這個問題,研宄者提出了多數據中心的解決方案。近 年來,越來越多的研宄者將研宄方向從單個數據中心轉移到了多數據中心。
[0003] 隨著數據中心規模的增加和應用程序的復雜化,節能和提高資源的利用率已經變 成了研宄的熱點。與此同時,云服務提供商必須遵守和用戶簽訂的服務水平協議(SLA)。為 了達到這些目標,研宄者提出了虛擬機迀移技術。
[0004] 針對需要在多個數據中心之間迀移多個虛擬機情況,FrancoCallegati和Walter Cerroni提出了一種基于預復制策略的串行多虛擬機迀移策略。其主要思想是在不停機的 情況下通過多次不斷迭代的迀移每一個虛擬機的記憶(通常又稱為臟數據),從而不斷的 減少虛擬機的臟數據的數量,當虛擬機的臟數據小于某個給定的門限值或迭代次數大于給 定的最大迭代次數時,就停止迀移虛擬機的臟數據,然后將虛擬機停止,并迀移剩下的臟數 據,最后啟動目的虛擬機。在迀移過程中,每個虛擬機單獨占有給定的全部帶寬,而虛擬機 之間采用串行的迀移方式,即第一個虛擬機的迀移完了之后再迀移下一個虛擬機,以此達 到迀移的目的。雖然上述方法能夠實現多個虛擬機的迀移,但是它的停機時間太長。且該 方法對每一個虛擬機都采用預復制策略,即在迭代傳輸臟數據期間保持虛擬機運行;但是 在虛擬數據中心(VDC)請求中,虛擬機之間有很強的關聯性,當第一個虛擬機迀移之后到 最后一個虛擬機重啟之前這一段時間內服務是不可用的。又由于采用預復制策略,需要多 次迭代,在每次的迭代過程中不斷迀移虛擬機的臟數據,但是又會不斷的產生臟數據。所 以,采用預復制策略比后復制策略需要多迀移一些臟數據,這樣就會增加迀移時間和停機 時間。所以,這種基于預復制策略的串行多虛擬機迀移策略并不是最優的串行多虛擬機迀 移策略。
[0005] 針對需要在多個數據中心之間迀移多個虛擬機情況,FrancoCallegati和Walter Cerroni提出了另一種基于預復制策略的并行多虛擬機迀移策略。其主要思想是在不停機 的情況下通過多次不斷迭代的迀移所有虛擬機的臟數據,從而不斷的減少虛擬機的臟數據 的數量。同樣當虛擬機的臟數據小于某個給定的門限值或迭代次數大于給定的最大迭代次 數是停止迀移虛擬機的臟數據,然后將虛擬機停止,并迀移剩下的臟數據,最后啟動目的虛 擬機。在迀移過程中,所有虛擬機同時進行迀移,并且所有虛擬機共同的平均分享給定的帶 寬。雖然上述方法也能夠實現多個虛擬機的迀移,并且在給定帶寬充足的情況下,克服了串 行多虛擬機迀移策略的停機時間長的缺點。但是在給定的帶寬與使用串行多虛擬機迀移策 略的帶寬相同的情況下,由于多個虛擬機共同的分享帶寬,導致并行多虛擬機迀移策略的 迀移時間遠大于串行多虛擬機迀移策略的迀移時間。
【發明內容】
[0006] 本發明針對上述現有技術的不足,基于FrancoCallegati和WalterCerroni提 出的串行多虛擬機迀移策略,以改進型串行多虛擬機迀移策略和并行多虛擬機迀移策略為 基礎,提供一種滿足服務提供商與用戶協商的最大停機時間的約束條件下、總迀移時間最 小的多虛擬機數據迀移方法。
[0007] 本發明具體采用如下技術方案:
[0008] 一種數據中心多虛擬機的數據迀移方法,其流程如圖1所示,具體包括以下步驟:
[0009] 步驟1.數據初始化:令需要迀移數據的虛擬機個數為M,確定可接受的最大停機 時間所述停機時間指所述M個虛擬機從第一個虛擬機關機時起,至所有虛擬機完成 數據迀移并全部重新開機運行時止的這一段時長,確定停止迭代的臟數據量閾值vth和迭 代次數閾值nmax,選定修正因子a,其中,〇〈a〈1,所有虛擬機的初始狀態為開機正常運轉狀 態,執彳T步驟2 ;
[0010] 步驟2.從M個虛擬機中選取原始臟數據數量最大的m個虛擬機,對這m個虛擬機 采用并行迀移策略進行數據迀移:
[0011] 步驟2-1.m的取值的確定;
[0012] 整個數據中心的停機時間由以下公式確定:
【主權項】
1. 一種數據中心多虛擬機的數據迀移方法,具體包括以下步驟: 步驟1.數據初始化:令需要迀移數據的虛擬機個數為M,確定可接受的最大停機時間 ,所述停機時間指所述M個虛擬機從第一個虛擬機關機時起,至所有虛擬機完成數據 迀移并全部重新開機運行時止的這一段時長,確定停止迭代的臟數據量閾值Vth和迭代次 數閾值nmax,選定修正因子α,其中,0〈 α〈1,所有虛擬機的初始狀態為開機正常運轉狀態; 步驟2.從M個虛擬機中選取原始臟數據數量最大的m個虛擬機,對這m個虛擬機采用 基于預復制的并行迀移策略進行數據迀移; 步驟3.對剩余的M-m個虛擬機采用基于后復制的串行迀移策略進行數據迀移; 步驟4.待M個虛擬機的數據迀移完成后,重新啟動所有虛擬機完成整個數據迀移過 程。
2. 根據權利要求1所述的數據中心多虛擬機的數據迀移方法,其特征在于,步驟2所述 的并行迀移策略主要包括以下步驟: 步驟2-1. m取值的確定; 整個數據中心的停機時間?X",由以下公式確定:
其中,R是整個迀移請求提供的總帶寬,是第i個虛擬機的原始臟數據量,所有的虛 擬機按照原始臟數據量排序編號,即if C CC,修正因子α用于在后 復制策略中用來修正實際需要迀移的臟數據量,是單個虛擬機固有的啟動時間;對m從 1開始依次遞增取值,直至其對應的停機時間7Iwi小于最大停機時間時止,此時的m值 即為選定的參量值; 步驟2-2.所選擇的m個虛擬機在不關機狀態下,將各自的原始臟數據通過共享寬帶同 時迀移至目的地,執行步驟2-3 ; 步驟2-3.所述m個虛擬機的原始臟數據迀移完畢后,各個虛擬機檢查其原始臟數據傳 輸期間的新增臟數據量; 若至少有一個虛擬機的新增臟數據量不高于所設定的臟數據量閾值,則同時執行步驟 2-6與步驟3 ; 否則,執行步驟2-4進行迭代數據迀移; 步驟2-4.將m個虛擬機的新增臟數據通過共享寬帶同時迀移至目的地; 步驟2-5.所述m個虛擬機的新增臟數據迀移完畢后,各個虛擬機檢查其在本次臟數據 傳輸期間的新增的臟數據量; 若至少有一個虛擬機的新增臟數據量不高于所設定的臟數據量閾值,或者已經迭代次 數等于迭代次數閾值nmax,則同時執行步驟2-6與步驟3 ; 否則,執行步驟2-4進行迭代數據迀移; 步驟2-6.將所有的虛擬機關機,并把m個虛擬機剩余的臟數據通過共享寬帶同時迀移 至目的地。
3. 根據權利要求2所述的數據中心多虛擬機的數據迀移方法,其特征在于,所述基于 后復制的串行迀移策略主要包括以下步驟: 步驟3-1.將停機后的M-m個虛擬機,按照串行方式將該M-m個虛擬機的臟數據依次傳 輸至目的地:針對這M-m個虛擬機,上一虛擬機的臟數據完成迀移后,才進行下一虛擬機臟 數據的迀移,直至M-m個虛擬機的臟數據全部完成迀移,執行步驟4。 步驟4.待M個虛擬機的數據迀移完成后,重新啟動所有虛擬機完成整個數據迀移過 程。
【專利摘要】本發明提供了一種數據中心多虛擬機的數據遷移方法,屬于云計算領域。本發明基于Franco Callegati和Walter Cerroni提出的基于預復制的并行多虛擬機遷移策略,以及在本發明中提出的基于后復制的串行多虛擬機遷移策略為基礎,引入參量m及修正因子α,提出一種滿足服務提供商與用戶協商的最大停機時間的約束條件下,總遷移時間最小的數據遷移方法,該方法適用范圍廣,可進一步降低服務提供商的遷移時間成本。
【IPC分類】H04L29-08, G06F9-455
【公開號】CN104683444
【申請號】CN201510036992
【發明人】廖丹, 趙東成, 孫罡, 楊廣華
【申請人】電子科技大學
【公開日】2015年6月3日
【申請日】2015年1月26日