虛擬機遷移方法及裝置制造方法
【專利摘要】本發明公開了一種虛擬機遷移方法及裝置,屬于云計算【技術領域】。方法包括:確定與源物理服務器上多個待遷移虛擬機中每個待遷移虛擬機相對應的目標物理服務器;生成每個待遷移虛擬機的索引文件;根據生成的索引文件確定多個待遷移虛擬機之間相同的內存頁;選擇一個目標物理服務器,將目標物理服務器確定為第一目標物理服務器;將相同的內存頁發送至第一目標物理服務器,并由第一目標物理服務器將相同的內存頁發送至第二目標物理服務器。本發明根據每個待遷移虛擬機的索引文件確定多個待遷移虛擬機之間相同的內存頁,將相同的內存頁發送至第一目標物理服務器,由第一目標物理服務器將其發送至第二目標物理服務器,從而節省網絡帶寬,縮短了遷移時間。
【專利說明】虛擬機遷移方法及裝置
【技術領域】
[0001] 本發明涉及云計算【技術領域】,特別涉及一種虛擬機遷移方法及裝置。
【背景技術】
[0002] 虛擬機技術通過軟件模擬具有完整系統功能的計算機系統,可實現在一臺物理服 務器上運行多個虛擬機。在該物理服務器需要進行維護或過負載的情況時,為方便進行運 維管理,需將該物理服務器上的全部或部分虛擬機遷移到其他物理服務器上。
[0003] 現有技術在進行虛擬機遷移時,通常采用分別遷移的遷移方式,即將源物理服務 器上的每個待遷移虛擬機的全部內存頁均遷移到與其對應的目標物理服務器上,直至所有 的待遷移虛擬機遷移完畢。
[0004] 在實現本發明的過程中,發明人發現現有技術至少存在以下問題:
[0005] 由于在將源物理服務器上的待遷移虛擬機遷移到多臺目標物理服務器的過程中, 每次需將一個虛擬機的全部內存頁進行遷移,而各個虛擬機之間會存在很多相同的內存 頁,因此,在整體遷移過程中將多次傳輸相同的內存頁,不但浪費了網絡帶寬,而且加長了 總遷移時間。
【發明內容】
[0006] 為了解決現有技術的問題,本發明實施例提供了一種虛擬機遷移方法及裝置。所 述技術方案如下:
[0007] -方面,提供了一種虛擬機遷移方法,所述方法包括:
[0008] 確定與源物理服務器上多個待遷移虛擬機中每個待遷移虛擬機相對應的目標物 理服務器;
[0009] 生成所述每個待遷移虛擬機的索引文件;
[0010] 根據生成的索引文件確定所述多個待遷移虛擬機之間相同的內存頁;
[0011] 選擇一個目標物理服務器,將所述目標物理服務器確定為第一目標物理服務器;
[0012] 將所述相同的內存頁發送至所述第一目標物理服務器,并由所述第一目標物理服 務器將所述相同的內存頁發送至第二目標物理服務器,所述第二目標物理服務器為除所述 第一目標物理服務器之外的其他目標物理服務器。
[0013] 進一步地,所述確定與源物理服務器上多個待遷移虛擬機中每個待遷移虛擬機相 對應的目標物理服務器之前,所述方法還包括:
[0014] 預先設置源物理服務器上每個待遷移虛擬機與目標物理服務器之間的對應關系 表,并將所述對應關系表進行存儲;
[0015] 所述確定與源物理服務器上多個待遷移虛擬機中每個待遷移虛擬機相對應的目 標物理服務器,包括 :
[0016] 在預先存儲的所述對應關系表中查找與每個待遷移虛擬機相對應的目標物理服 務器。
[0017] 進一步地,所述生成所述每個待遷移虛擬機的索引文件,包括:
[0018] 對于所述多個待遷移虛擬機中的一個待遷移虛擬機,計算所述待遷移虛擬機的全 部內存頁的哈希值;
[0019] 對所述待遷移虛擬機的內存頁與計算得到的內存頁哈希值之間的對應關系進行 統計,得到所述待遷移虛擬機的索引文件。
[0020] 進一步地,所述根據生成的索引文件確定所述多個待遷移虛擬機之間相同的內存 頁,包括:
[0021] 將多個索引文件中的全部哈希值進行比較;
[0022] 如果所述多個索引文件中均具有相同哈希值,則將所述相同哈希值對應的內存頁 確定為所述多個待遷移虛擬機之間相同的內存頁。
[0023] 進一步地,所述將所述相同的內存頁發送至所述第一目標物理服務器之后,所述 方法還包括:
[0024] 對于所述多個待遷移虛擬機中的一個待遷移虛擬機,將所述待遷移虛擬機的除所 述相同的內存頁之外的其他內存頁發送至與所述待遷移主機相對應的目標物理服務器。
[0025] 進一步地,所述對于所述多個待遷移虛擬機中的一個待遷移虛擬機,將所述待遷 移虛擬機的除所述相同的內存頁之外的其他內存頁發送至與所述待遷移主機相對應的目 標物理服務器之后,所述方法還包括:
[0026] 將所述第一目標物理服務器的地址發送至所述第二目標物理服務器,以使所述第 二目標物理服務器從所述第一目標物理服務器中獲取所述相同的內存頁。
[0027] 進一步地,所述將所述相同的內存頁發送至所述第一目標物理服務器之后,所述 方法還包括:
[0028] 向所述第一目標物理服務器發送通知消息,所述通知消息中攜帶所述第二目標物 理服務器的地址,以使所述第一目標物理服務器根據所述通知消息將所述相同的內存頁發 送至所述第二目標物理服務器。
[0029] 另一方面,提供了 一種虛擬機遷移裝置,所述裝置包括:
[0030] 第一確定模塊,用于確定與源物理服務器上多個待遷移虛擬機中每個待遷移虛擬 機相對應的目標物理服務器;
[0031] 生成模塊,用于生成所述每個待遷移虛擬機的索引文件;
[0032] 第二確定模塊,用于根據所述生成模塊生成的索引文件確定所述多個待遷移虛擬 機之間相同的內存頁;
[0033] 第三確定模塊,用于選擇一個目標物理服務器,將所述目標物理服務器確定為第 一目標物理服務器;
[0034] 第一發送模塊,用于將所述第二確定模塊確定的相同的內存頁發送至所述第一目 標物理服務器,以由所述第一目標物理服務器將所述相同的內存頁發送至第二目標物理服 務器,所述第二目標物理服務器為除所述第一目標物理服務器之外的其他目標物理服務 器。
[0035] 進一步地,所述裝置還包括:
[0036] 設置模塊,用于預先設置源物理服務器上每個待遷移虛擬機與目標物理服務器之 間的對應關系表;
[0037] 存儲模塊,用于將所述設置模塊設置的源物理服務器上每個待遷移虛擬機與目標 物理服務器之間的對應關系表進行存儲;
[0038] 所述第一確定模塊,用于在所述存儲模塊預先存儲的所述對應關系表中查找與每 個待遷移虛擬機相對應的目標物理服務器。
[0039] 進一步地,所述生成模塊,包括:
[0040] 計算單元,用于對于所述多個待遷移虛擬機中的一個待遷移虛擬機,計算所述待 遷移虛擬機的全部內存頁的哈希值;
[0041] 統計單元,用于對所述待遷移虛擬機的內存頁與計算得到的內存頁哈希值之間的 對應關系進行統計,得到所述待遷移虛擬機的索引文件。
[0042] 進一步地,所述第二確定模塊,包括:
[0043] 比較單元,用于將多個索引文件中的全部哈希值進行比較;
[0044] 確定單元,用于當所述比較單元比較出多個索引文件中均具有相同哈希值時,將 所述相同哈希值對應的內存頁確定為所述多個待遷移虛擬機之間相同的內存頁。
[0045] 進一步地,所述裝置還包括:
[0046] 第二發送模塊,用于對于所述多個待遷移虛擬機中的一個待遷移虛擬機,將所述 待遷移虛擬機的除所述相同的內存頁之外的其他內存頁發送至與所述待遷移主機相對應 的目標物理服務器。
[0047] 進一步地,所述裝置還包括:
[0048] 第三發送模塊,用于將所述第一目標物理服務器的地址發送至所述第二目標物理 服務器,以使所述第二目標物理服務器從所述第一目標物理服務器中獲取所述相同的內存 頁。
[0049] 進一步地,所述裝置還包括:
[0050] 第四發送模塊,用于向所述第一目標物理服務器發送通知消息,所述通知消息中 攜帶所述第二目標物理服務器的地址,以使所述第一目標物理服務器根據所述通知消息將 所述相同的內存頁發送至所述第二目標物理服務器。
[0051] 本發明實施例提供的技術方案帶來的有益效果是:
[0052] 在確定與源物理服務器上多個待遷移虛擬機中每個待遷移虛擬機相對應的目標 物理服務器后,生成每個待遷移虛擬機的索引文件,并根據生成的索引文件確定多個待遷 移虛擬機之間相同的內存頁,之后選擇一個第一目標物理服務器,并將相同的內存頁發送 至第一目標物理服務器,并由第一目標物理服務器將相同的內存頁發送至第二目標物理服 務器,從而實現相同的內存頁僅由源物理服務器傳輸一次,不但節省了網絡帶寬,減輕了源 物理服務器的負擔,且縮短了總遷移時間。
【專利附圖】
【附圖說明】
[0053] 為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使 用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于 本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他 的附圖。
[0054] 圖1是本發明實施例一提供的一種虛擬機遷移的方法流程圖;
[0055] 圖2是本發明實施例二提供的一種虛擬機遷移的方法流程圖;
[0056] 圖3是本發明實施例三提供的第一種虛擬機遷移的裝置結構示意圖;
[0057] 圖4是本發明實施例三提供的第二種虛擬機遷移的裝置結構示意圖;
[0058] 圖5是本發明實施例三提供的一種生成模塊的內部結構示意圖;
[0059] 圖6是本發明實施例三提供的一種第二確定模塊的內部結構示意圖;
[0060] 圖7是本發明實施例三提供的第三種虛擬機遷移的裝置結構示意圖;
[0061] 圖8是本發明實施例三提供的第四種虛擬機遷移的裝置結構示意圖;
[0062] 圖9是本發明實施例三提供的第五種虛擬機遷移的裝置結構示意圖。
【具體實施方式】
[0063] 為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明實施方 式作進一步地詳細描述。
[0064] 實施例一
[0065] 本發明提供了一種虛擬機遷移的方法,參見圖1,本實施例提供的方法流程包括:
[0066] 101 :確定與源物理服務器上多個待遷移虛擬機中每個待遷移虛擬機相對應的目 標物理服務器。
[0067] 進一步地,確定與源物理服務器上多個待遷移虛擬機中每個待遷移虛擬機相對應 的目標物理服務器之前,該方法還包括:
[0068] 預先設置源物理服務器上每個待遷移虛擬機與目標物理服務器之間的對應關系 表,并將對應關系表進行存儲;
[0069] 確定與源物理服務器上多個待遷移虛擬機中每個待遷移虛擬機相對應的目標物 理服務器,包括但不限于:
[0070] 在預先存儲的對應關系表中查找與每個待遷移虛擬機相對應的目標物理服務器。
[0071] 102 :生成每個待遷移虛擬機的索引文件。
[0072] 進一步地,生成每個待遷移虛擬機的索引文件,包括但不限于:
[0073] 對于多個待遷移虛擬機中的一個待遷移虛擬機,計算待遷移虛擬機的全部內存頁 的哈希值;
[0074] 對待遷移虛擬機的內存頁與計算得到的內存頁哈希值之間的對應關系進行統計, 得到待遷移虛擬機的索引文件。
[0075] 103 :根據生成的索引文件確定多個待遷移虛擬機之間相同的內存頁。
[0076] 進一步地,根據生成的索引文件確定多個待遷移虛擬機之間相同的內存頁,包括 但不限于:
[0077] 將多個索引文件中的全部哈希值進行比較;
[0078] 如果多個索引文件中均具有相同哈希值,則將相同哈希值對應的內存頁確定為多 個待遷移虛擬機之間相同的內存頁。
[0079] 104 :選擇一個目標物理服務器,將目標物理服務器確定為第一目標物理服務器。
[0080] 105:將相同的內存頁發送至第一目標物理服務器,并由第一目標物理服務器將相 同的內存頁發送至第二目標物理服務器,第二目標物理服務器為除第一目標物理服務器之 外的其他目標物理服務器。
[0081] 進一步地,將相同的內存頁發送至第一目標物理服務器之后,該方法還包括:
[0082] 對于多個待遷移虛擬機中的一個待遷移虛擬機,將待遷移虛擬機的除相同的內存 頁之外的其他內存頁發送至與待遷移主機相對應的目標物理服務器。
[0083] 進一步地,對于多個待遷移虛擬機中的一個待遷移虛擬機,將待遷移虛擬機的除 相同的內存頁之外的其他內存頁發送至與待遷移主機相對應的目標物理服務器之后,該方 法還包括:
[0084] 將第一目標物理服務器的地址發送至第二目標物理服務器,以使第二目標物理服 務器從第一目標物理服務器中獲取相同的內存頁。
[0085] 進一步地,將相同的內存頁發送至第一目標物理服務器之后,該方法還包括:
[0086] 向第一目標物理服務器發送通知消息,通知消息中攜帶第二目標物理服務器的地 址,以使第一目標物理服務器根據通知消息將相同的內存頁發送至第二目標物理服務器。 [0087] 本實施例提供的方法,在確定與源物理服務器上多個待遷移虛擬機中每個待遷移 虛擬機相對應的目標物理服務器后,生成每個待遷移虛擬機的索引文件,并根據生成的索 引文件確定多個待遷移虛擬機之間相同的內存頁,之后選擇一個第一目標物理服務器,并 將相同的內存頁發送至第一目標物理服務器,并由第一目標物理服務器將相同的內存頁發 送至第二目標物理服務器,從而實現相同的內存頁僅由源物理服務器傳輸一次,不但節省 了網絡帶寬,減輕了源物理服務器的負擔,且縮短了總遷移時間。
[0088] 實施例二
[0089] 本發明實施例提供了一種虛擬機遷移的方法,現結合上述實施例所提供的虛擬機 遷移的方式,對本實施例提供的虛擬機遷移方法進行詳細地解釋說明。參見圖2,本實施例 提供的方法流程包括:
[0090] 201 :預先設置源物理服務器上多個待遷移虛擬機中每個待遷移虛擬機與目標物 理服務器之間的對應關系表,并將對應關系表進行存儲。
[0091] 針對該步驟,在設置源物理服務器上多個待遷移虛擬機中每個待遷移虛擬機與目 標物理服務器之間的對應關系表時,可依據源物理服務器管理員的指示而設置。也即,針對 每個待遷移虛擬機來說,由源物理服務器管理員為其指定目標物理服務器,進而根據源物 理服務器管理員的指示生成多個待遷移虛擬機中每個待遷移虛擬機與目標物理服務器之 間的對應關系表。
[0092] 進一步地,在設置源物理服務器上多個待遷移虛擬機中每個待遷移虛擬機與目標 物理服務器之間的對應關系表時,還可依據各個目標物理服務器的負載情況而設置。如果 某一目標物理服務器的負載情況良好,也即該目標物理服務器的運行速度較高,則可將該 目標物理服務器作為數十個待遷移虛擬機的目標物理服務器;如果某一目標物理服務器的 負載情況較差,也即該目標物理服務器的運行速度緩慢,則可將該目標物理服務器作為一 個或幾個待遷移虛擬機的目標物理服務器。
[0093] 以源物理服務器上存在10個待遷移虛擬機,分別以符號1至10進行標識,有兩臺 目標物理服務器,分別以符號A和符號B進行標識,且目標物理服務器A的負載情況良好, 目標物理服務器B的負載情況較差為例,則在設置源物理服務器上多個待遷移虛擬機中每 個待遷移虛擬機與目標物理服務器之間的對應關系表時,可將目標物理服務器A作為10個 待遷移虛擬機中的大部分(比如,8個,待遷移虛擬機1-8)待遷移虛擬機的目標物理服務 器,而將目標物理服務器B作為10個待遷移虛擬機中其余部分(比如,2個,待遷移虛擬機 9-10)的目標物理服務器。因此,可設置如下形式的對應關系表:
[0094] 表 1
[0095]
【權利要求】
1. 一種虛擬機遷移方法,其特征在于,所述方法包括: 確定與源物理服務器上多個待遷移虛擬機中每個待遷移虛擬機相對應的目標物理服 務器; 生成所述每個待遷移虛擬機的索引文件; 根據生成的索引文件確定所述多個待遷移虛擬機之間相同的內存頁; 選擇一個目標物理服務器,將所述目標物理服務器確定為第一目標物理服務器; 將所述相同的內存頁發送至所述第一目標物理服務器,并由所述第一目標物理服務器 將所述相同的內存頁發送至第二目標物理服務器,所述第二目標物理服務器為除所述第一 目標物理服務器之外的其他目標物理服務器。
2. 根據權利要求1所述的方法,其特征在于,所述確定與源物理服務器上多個待遷移 虛擬機中每個待遷移虛擬機相對應的目標物理服務器之前,所述方法還包括: 預先設置源物理服務器上每個待遷移虛擬機與目標物理服務器之間的對應關系表,并 將所述對應關系表進行存儲; 所述確定與源物理服務器上多個待遷移虛擬機中每個待遷移虛擬機相對應的目標物 理服務器,包括: 在預先存儲的所述對應關系表中查找與每個待遷移虛擬機相對應的目標物理服務器。
3. 根據權利要求1所述的方法,其特征在于,所述生成所述每個待遷移虛擬機的索引 文件,包括: 對于所述多個待遷移虛擬機中的一個待遷移虛擬機,計算所述待遷移虛擬機的全部內 存頁的哈希值; 對所述待遷移虛擬機的內存頁與計算得到的內存頁哈希值之間的對應關系進行統計, 得到所述待遷移虛擬機的索引文件。
4. 根據權利要求3所述的方法,其特征在于,所述根據生成的索引文件確定所述多個 待遷移虛擬機之間相同的內存頁,包括: 將多個索引文件中的全部哈希值進行比較; 如果所述多個索引文件中均具有相同哈希值,則將所述相同哈希值對應的內存頁確定 為所述多個待遷移虛擬機之間相同的內存頁。
5. 根據權利要求1所述的方法,其特征在于,所述將所述相同的內存頁發送至所述第 一目標物理服務器之后,所述方法還包括: 對于所述多個待遷移虛擬機中的一個待遷移虛擬機,將所述待遷移虛擬機的除所述相 同的內存頁之外的其他內存頁發送至與所述待遷移主機相對應的目標物理服務器。
6. 根據權利要求5所述的方法,其特征在于,所述對于所述多個待遷移虛擬機中的一 個待遷移虛擬機,將所述待遷移虛擬機的除所述相同的內存頁之外的其他內存頁發送至與 所述待遷移主機相對應的目標物理服務器之后,所述方法還包括: 將所述第一目標物理服務器的地址發送至所述第二目標物理服務器,以使所述第二目 標物理服務器從所述第一目標物理服務器中獲取所述相同的內存頁。
7. 根據權利要求1所述的方法,其特征在于,所述將所述相同的內存頁發送至所述第 一目標物理服務器之后,所述方法還包括: 向所述第一目標物理服務器發送通知消息,所述通知消息中攜帶所述第二目標物理服 務器的地址,以使所述第一目標物理服務器根據所述通知消息將所述相同的內存頁發送至 所述第二目標物理服務器。
8. -種虛擬機遷移裝置,其特征在于,所述裝置包括: 第一確定模塊,用于確定與源物理服務器上多個待遷移虛擬機中每個待遷移虛擬機相 對應的目標物理服務器; 生成模塊,用于生成所述每個待遷移虛擬機的索引文件; 第二確定模塊,用于根據所述生成模塊生成的索引文件確定所述多個待遷移虛擬機之 間相同的內存頁; 第三確定模塊,用于選擇一個目標物理服務器,將所述目標物理服務器確定為第一目 標物理服務器; 第一發送模塊,用于將所述第二確定模塊確定的相同的內存頁發送至所述第一目標 物理服務器,以由所述第一目標物理服務器將所述相同的內存頁發送至第二目標物理服務 器,所述第二目標物理服務器為除所述第一目標物理服務器之外的其他目標物理服務器。
9. 根據權利要求8所述的裝置,其特征在于,所述裝置還包括: 設置模塊,用于預先設置源物理服務器上每個待遷移虛擬機與目標物理服務器之間的 對應關系表; 存儲模塊,用于將所述設置模塊設置的源物理服務器上每個待遷移虛擬機與目標物理 服務器之間的對應關系表進行存儲; 所述第一確定模塊,用于在所述存儲模塊預先存儲的所述對應關系表中查找與每個待 遷移虛擬機相對應的目標物理服務器。
10. 根據權利要求8所述的裝置,其特征在于,所述生成模塊,包括: 計算單元,用于對于所述多個待遷移虛擬機中的一個待遷移虛擬機,計算所述待遷移 虛擬機的全部內存頁的哈希值; 統計單元,用于對所述待遷移虛擬機的內存頁與計算得到的內存頁哈希值之間的對應 關系進行統計,得到所述待遷移虛擬機的索引文件。
11. 根據權利要求10所述的裝置,其特征在于,所述第二確定模塊,包括: 比較單元,用于將多個索引文件中的全部哈希值進行比較; 確定單元,用于當所述比較單元比較出多個索引文件中均具有相同哈希值時,將所述 相同哈希值對應的內存頁確定為所述多個待遷移虛擬機之間相同的內存頁。
12. 根據權利要求8所述的裝置,其特征在于,所述裝置還包括: 第二發送模塊,用于對于所述多個待遷移虛擬機中的一個待遷移虛擬機,將所述待遷 移虛擬機的除所述相同的內存頁之外的其他內存頁發送至與所述待遷移主機相對應的目 標物理服務器。
13. 根據權利要求12所述的裝置,其特征在于,所述裝置還包括: 第三發送模塊,用于將所述第一目標物理服務器的地址發送至所述第二目標物理服務 器,以使所述第二目標物理服務器從所述第一目標物理服務器中獲取所述相同的內存頁。
14. 根據權利要求8所述的裝置,其特征在于,所述裝置還包括: 第四發送模塊,用于向所述第一目標物理服務器發送通知消息,所述通知消息中攜帶 所述第二目標物理服務器的地址,以使所述第一目標物理服務器根據所述通知消息將所述 相同的內存頁發送至所述第二目標物理服務器。
【文檔編號】G06F9/455GK104156254SQ201410366188
【公開日】2014年11月19日 申請日期:2014年7月29日 優先權日:2014年7月29日
【發明者】張鵬, 張昕 申請人:北京高森明晨信息科技有限公司