中文字幕无码日韩视频无码三区

一種串行與并行相結合的虛擬機在線遷移方法

文(wen)檔(dang)序號:9843970閱讀:899來源:國知局(ju)
一種串行與并行相結合的虛擬機在線遷移方法
【技術領域】
[0001]本發明涉及虛擬機在線迀移方法,具體涉及一種串行與并行相結合的虛擬機在線 迀移方法。
【背景技術】
[0002] 在線迀移技術作為虛擬化技術的一部分,能夠在服務器或者數據中心異常時,實 現工作負載的自動轉移。在虛擬機維護期間可以將負載迀移至空閑虛擬機,保證業務不間 斷,除此之外,虛擬機在線迀移技術還可用于災難恢復來實現容災。
[0003] 目前虛擬機在線迀移技術大多采用主流的預拷貝策略,迀移時循環地將源主機上 虛擬機的內存數據發送至目的主機的虛擬機。循環第一輪發送所有內存頁數據,接下來的 每一輪循環發送上一輪預拷貝過程中被虛擬機VM寫過的臟頁。直至達到有限循環上限w,預 拷貝循環結束,進入停機拷貝階段,源主機被掛起,不再有內存更新,最后一輪循環中的臟 頁被傳輸至目的主機的虛擬機VM。迀移代價為虛擬機迀移過程中迀移時延和宕機時間的總 和,主要受待轉移的內存大小影響。
[0004] 現有的研究大多選用單一串行或并行迀移進行研究。虛擬機在線迀移技術的迀移 代價以總迀移時間來衡量。在單一串行迀移過程中,長時間的虛擬機在線迀移過程,和高臟 頁率使得每次循環轉移的內存增加,從而總迀移時間加長。而單一并行迀移過程,眾多VM之 間并行迀移,會因競爭網絡帶寬而導致總的內存轉移時間拖長,從而使得總迀移時間加長。 因此,要降低總迀移代價需要縮短內存轉移時間。由于臟頁率由VM上運行的服務決定,故而 提供充足的網絡帶寬可以有效避免并行迀移的VM之間,因競爭網絡帶寬而增加內存轉移時 間的情況。如今全雙工網絡已能夠支持跨匯聚層的兩個迀移過程同時雙向進行,因此串行 與并行相結合的虛擬機在線迀移方法更能滿足降低迀移代價的需求。

【發明內容】

[0005] 針對現有技術中存在的問題,本發明提供一種串行與并行相結合的虛擬機在線迀 移方法,能夠縮短云環境下連續性服務或災難恢復時等待大量虛擬機迀移的時間,也為后 續依賴此虛擬機混合迀移方法的虛擬機整合奠定基礎。
[0006] 本發明是通過以下技術方案來實現:
[0007] -種串行與并行相結合的虛擬機在線迀移方法,包括如下步驟,
[0008] 步驟1,將迀移前后的虛擬機與其宿主機的映射變化分別抽象為迀移前后矩陣,其 中矩陣中的每個元素代表虛擬機與其宿主機的映射關系;
[0009] 步驟2,對迀移前后矩陣逐行比較,找出兩宿主機上在迀移前后僅對調位置的虛擬 機,將這兩個對調迀移過程判定為無用迀移,并將其剔除后剩余有用迀移;
[0010] 步驟3,根據混合迀移算法將有用迀移生成串行與并行迀移隊列;
[0011] 步驟4,根據生成的串行與并行迀移隊列輸出串行與并行迀移批次及最早迀移時 間,用于后續虛擬機的整合。
[0012] 優選的,步驟1中,還包括生成虛擬機迀移前后源主機和目的主機位置集合的步 驟。
[0013] 進一步,步驟2中,通過查找源主機和目的主機位置集合,找出迀移前后僅交換了 源主機和目的主機位置的元素,該元素對應的虛擬機即兩宿主機上在迀移前后僅對調位置 的虛擬機。
[0014] 優選的,步驟3包括如下步驟,
[0015] 3.1初始化迀移參數并記錄虛擬機分配的內存;
[0016] 3.2若迀移前后源主機和目的主機連接同一接入層交換機,則該迀移過程可與其 他迀移過程并行;利用混合迀移算法標記能夠并行迀移的虛擬機批次序號,得到并行迀移 隊列;
[0017] 3.3若迀移前后源主機和目的主機連接不同接入層交換機,那么該迀移過程將需 要獨占連接至匯聚層交換機的鏈路,因此獨占該鏈路的迀移均需要排隊等待,利用混合迀 移算法標記需要順序迀移的虛擬機批次序號,得到串行迀移隊列;不需占用該鏈路的迀移 能夠與此次迀移并行,納入同一并行迀移批次。
[0018] 優選的,步驟4中,每個并行迀移隊列中最后結束迀移的時間為該批次總迀移時 間,也是下一并行迀移批次的最早開始時間;經過混合迀移算法的標記生成串行迀移隊列, 以及能夠與串行迀移隊列中的每個迀移過程并行進行的并行迀移隊列;分別統計串行迀移 批次和各個并行迀移隊列,輸出各并行迀移中最大迀移內存和最早迀移時間,并生成MIGR 統計表;用于后續虛擬機的整合。
[0019]優選的,步驟1具體的包括如下步驟,
[0020] 1.1構造迀移前后虛擬機相對于其宿主機的映射矩陣;
[0021] 在虛擬機混合迀移的場景中,將迀移前虛擬機與其宿主機映射關系抽象為矩陣 Pm,n,迀移后虛擬機與其宿主機的映射關系抽象為矩陣;Pm, n矩陣中每一個元素代表 迀移前第i臺虛擬機VMi是否放置在第j臺宿主機HM」上,是為1,否為0; /^"矩陣中每一個元 素代表迀移后第i臺虛擬機VM\是否放置在第j臺宿主機HM、上,是為1,否為0;得到的 矩陣如下所示,
[0022]
[0023] 1.2生成虛擬機迀移前后源主機和目的主機集合;
[0024] 對迀移前矩陣Pm,n和迀移后矩陣/^"逐行統計每個虛擬機迀移前后的宿主機編號
生成迀移前后源、目的主機位置集合如下,
[0025]
[0026] 其中,/a/r""為第k臺虛擬機的源主機,//Mf __為第k臺虛擬機迀移后的目的 主機,k=l,2,. . .,m,m為矩陣中虛擬機的個數。
[0027]進一步,步驟2具體的包括如下步驟,
[0028] 2.1查找迀移前后僅交換源、目的主機的迀移;查找源主機和目的主機位置集合, 找出迀移前后僅交換了源主機與目的主機的兩個虛擬機,即兩宿主機上在迀移前后僅對調 位置的虛擬機;
[0029] 2.2剔除無用迀移,若迀移前后僅對調源、目的主機的兩個虛擬機所獲得的內存資 源相同,則將這兩個對調迀移過程判定為無用迀移,將其迀移狀態標記為已迀移,不再列入 混合迀移算法待安置隊列,其余的迀移過程為有用迀移。
[0030] 再進一步,步驟3具體的包括如下步驟,
[0031] 3.1初始化迀移參數并記錄虛擬機分配的內存;
[0032] 3.11將所有有用迀移的虛擬機狀態設置為未安排;初始化虛擬機迀移批次序號mb =〇,設置迀移安置數組ΜΑκ,其中MAi,i = 1,2,. . .,K為第i臺虛擬機VMi的迀移批次序號,K為 全部有用迀移的虛擬機數,設置參數為第i臺虛擬機的內存,用來逐一記錄每個虛擬 機所分配的內存;
[0033] 3.12設置代表宿主機冊,接入層交換機31^與匯聚層交換機31^兩兩之間鏈路狀 態的四個參數一一Lmk,sw,Linkf-i,Linkr'swAm,Linkr4i"- sw"'并設置 條鏈路的初始狀態為空閑,其中為第k臺虛擬機的源主機連接源接入層交換機的 鏈路狀態,為第k臺虛擬機的目的主機連接目的接入層交換機的鏈路狀態, ^為源接入層交換機連接匯聚層交換機的鏈路狀態,為匯聚層 交換機連接目的接入層交換機的鏈路狀態;
[0034] 3.2利用混合迀移算法標記能夠并行迀移虛擬機的批次序號;
[0035] 3.21設置k循環,k為全局循環次數且k=l,2, ...,K,來進行全局匹配過程;在算法 中,對全部的Κ臺虛擬機從1開始到Κ進行遍歷,VMk為遍歷時的第k臺虛擬機;
[0036] 3.22當遍歷VMk時,若其沒有進行迀移安排,則mb自增1,設置VM k在迀移安置數組所 對應的第k元素值為迀移批次序號mb值即MAk=mb,并標記VMk為已安排迀移;設置VM k迀移時 涉及的源主機^?/廣~到源主機連接的源接入層交換機SifT…與目的主機連接的目的接 入層交換機5^廠'' 到目的主機的兩條鏈路如汝為獨占狀 態,;
[0037] 3.23當VMk的源主機與目的主機分別連接不同的接入層交換 機,則設%與ii/汝f'為獨占狀態,即本次迀移需要獨占跨匯聚層交換 機的鏈路,
當前第1頁1 2 3 4 
網友(you)詢(xun)問(wen)留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1