虛擬集群內存快照方法和裝置制造方法
【專利摘要】本發(fā)明提供一種虛擬集群內存快照方法和裝置,其中方法包括:獲取虛擬機集群內的第一虛擬機內存中各個第一虛擬頁面的地址和第一虛擬頁面的內容;判斷第一虛擬頁面的內容與第二快照文件中的第二虛擬頁面的內容是否相同,第二快照文件為虛擬機集群內的虛擬機對應的各宿主機維護的快照文件;在第一虛擬頁面的內容與第二虛擬頁面的內容相同時,將第一虛擬頁面的地址和第一虛擬頁面的索引信息存儲到第一虛擬機對應的宿主機維護的第一快照文件中,索引信息包括:第二快照文件所在的宿主機號,第二快照文件的文件名和第二虛擬頁面在第二快照文件中的偏移量。從而不需要對虛擬機集群內的每個虛擬機內存中的數(shù)據(jù)分別進行完整拷貝,提高了快照效率。
【專利說明】虛擬集群內存快照方法和裝置
【技術領域】
[0001]本發(fā)明涉及計算機【技術領域】,尤其涉及一種虛擬集群內存快照方法和裝置。
【背景技術】
[0002]對虛擬機內存進行快照指的是在某個時間點,對虛擬機內存中的所有數(shù)據(jù)進行完整拷貝。
[0003]然而現(xiàn)有技術中,當對虛擬機集群內的虛擬機內存進行快照時,需要對虛擬機集群內的每個虛擬機內存中的數(shù)據(jù)分別進行完整拷貝,占用大量的存儲資源,并降低了快照效率。
【發(fā)明內容】
[0004]本發(fā)明提供一種虛擬集群內存快照方法和裝置,用于解決現(xiàn)有技術中快照效率較低的問題。
[0005]本發(fā)明的第一個方面是提供一種虛擬集群內存快照方法,包括:
[0006]獲取虛擬機集群內的第一虛擬機內存中各個第一虛擬頁面的地址和所述第一虛擬頁面的內容;
[0007]判斷所述第一虛擬頁面的內容與第二快照文件中的第二虛擬頁面的內容是否相同,所述第二快照文件為所述虛擬機集群內的虛擬機對應的各宿主機維護的快照文件;
[0008]在所述第一虛擬頁面的內容與所述第二虛擬頁面的內容相同時,將所述第一虛擬頁面的地址和所述第一虛擬頁面的索引信息存儲到所述第一虛擬機對應的宿主機維護的第一快照文件中,所述索引信息包括:所述第二快照文件所在的宿主機號,所述第二快照文件的文件名和所述第二虛擬頁面在所述第二快照文件中的偏移量。
[0009]本發(fā)明的另一個方面提供一種虛擬集群內存快照裝置,包括:
[0010]獲取模塊,用于獲取虛擬機集群內的第一虛擬機內存中各個第一虛擬頁面的地址和所述第一虛擬頁面的內容;
[0011]判斷模塊,用于判斷所述第一虛擬頁面的內容與第二快照文件中的第二虛擬頁面的內容是否相同,所述第二快照文件為所述虛擬機集群內的虛擬機對應的各宿主機維護的快照文件;
[0012]存儲模塊,用于在所述第一虛擬頁面的內容與所述第二虛擬頁面的內容相同時,將所述第一虛擬頁面的地址和所述第一虛擬頁面的索引信息存儲到所述第一虛擬機對應的宿主機維護的第一快照文件中,所述索引信息包括:所述第二快照文件所在的宿主機號,所述第二快照文件的文件名和所述第二虛擬頁面在所述第二快照文件中的偏移量。
[0013]本發(fā)明通過獲取虛擬機集群內的第一虛擬機內存中第一虛擬頁面的地址和內容,在第一虛擬頁面的內容與虛擬機集群內的虛擬機對應的各宿主機維護的快照文件中的第二虛擬頁面的內容相同時,只存儲該第一虛擬頁面的地址和索引信息,從而減少了存儲量,提高了快照效率?!緦@綀D】
【附圖說明】
[0014]圖1為本發(fā)明提供的虛擬集群內存快照方法一個實施例的流程圖;
[0015]圖2為第一虛擬頁面為單字節(jié)重復頁面時的存儲格式示意圖;
[0016]圖3為第一虛擬頁面的內容與第二虛擬頁面的內容相同時的存儲格式示意圖;
[0017]圖4為第一虛擬頁面的內容與第二虛擬頁面的內容不同時的存儲格式示意圖;
[0018]圖5為本發(fā)明提供的虛擬集群內存快照裝置一個實施例的結構示意圖。
【具體實施方式】
[0019]為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0020]圖1為本發(fā)明提供的虛擬集群內存快照方法一個實施例的流程圖,如圖1所示,包括:
[0021 ] 101、獲取虛擬機集群內的第一虛擬機內存中各個第一虛擬頁面的地址和第一虛擬頁面的內容。
[0022]其中,本發(fā)明的執(zhí)行主體為虛擬集群內存快照裝置。虛擬集群內存快照裝置具體可以位于虛擬機集群內的虛擬機對應的宿主機上。虛擬機集群可以由多個宿主機上的多個虛擬機組成。第一虛擬頁面的地址指的是,第一虛擬頁面在第一虛擬機內存中的虛擬地址。
[0023]102、判斷第一虛擬頁面的內容與第二快照文件中的第二虛擬頁面的內容是否相同,第二快照文件為虛擬機集群內的虛擬機對應的各宿主機維護的快照文件。
[0024]其中,每個宿主機上可以維護一個快照文件。每個宿主機對應的快照文件用于保存各個時間點該宿主機上的多個虛擬機內存中的所有數(shù)據(jù)。第二快照文件具體可以為第一虛擬機對應的宿主機維護的第一快照文件,也可以為其他宿主機維護的其他快照文件。
[0025]為了進一步減少存儲量,提高快照效率,在步驟102之前,還可以包括:根據(jù)第一虛擬頁面的內容判斷第一虛擬頁面是否為單字節(jié)重復頁面;
[0026]在第一虛擬頁面為單字節(jié)重復頁面時,將第一虛擬頁面的地址和單字節(jié)內容存儲到第一虛擬機對應的宿主機維護的第一快照文件中。
[0027]其中,單字節(jié)重復頁面指的是虛擬頁面的所有字節(jié)的內容都相同。
[0028]進一步地,為了達到減少需要與第一虛擬頁面進行比較的第二虛擬頁面的數(shù)目,在判斷第一虛擬頁面的內容與第二快照文件中的第二虛擬頁面的內容是否相同之前,還可以包括:
[0029]根據(jù)第一虛擬頁面的內容,計算第一虛擬頁面的哈希值;根據(jù)第一虛擬頁面的哈希值,查詢哈希表,獲取哈希表中對應的哈希值與第一虛擬頁面的哈希值相同的虛擬頁面;將哈希表中對應的哈希值與第一虛擬頁面的哈希值相同的虛擬頁面確定為第二快照文件中的第二虛擬頁面。
[0030]其中,虛擬集群內存快照裝置可以采用超快哈希(Super Fast Hash)算法計算該頁面的32位哈希值。哈希表可以采用數(shù)據(jù)結構體的方式在哈希表的每個節(jié)點中存儲每個虛擬頁面的哈希值和索引信息,例如,每個節(jié)點的〈key, value)可以對應每個已存儲虛擬頁面的〈hash, Pagelndex〉。其中,key表示已存儲虛擬頁面的哈希值hash, value表示虛擬頁面的索引信息Pagelndex。
[0031]具體地,虛擬集群內存快照裝置根據(jù)第一虛擬頁面的哈希值,查詢哈希表的方式具體可以為:虛擬集群內存快照裝置將第一虛擬頁面的哈希值發(fā)送給哈希表所在的宿主機,哈希表所在的宿主機根據(jù)第一虛擬頁面的哈希值,查詢哈希表。當哈希表所在的宿主機獲取到哈希表中對應的哈希值與第一虛擬頁面的哈希值相同的虛擬頁面,即第二虛擬頁面時,宿主機可以將哈希表中第二虛擬頁面的索引信息發(fā)送給第一虛擬頁面對應的虛擬機所在的宿主機上的虛擬集群內存快照裝置。
[0032]另外,當哈希表所在的宿主機在哈希表中未獲取到對應的哈希值與第一虛擬頁面的哈希值相同的虛擬頁面時,哈希表所在的宿主機將“O”值發(fā)送給第一虛擬頁面對應的虛擬機所在的宿主機上的虛擬集群內存快照裝置,以使虛擬集群內存快照裝置將第一虛擬頁面的地址和第一虛擬頁面的內容存儲到第一快照文件中,將第一虛擬機對應的宿主機號,第一快照文件名,第一虛擬頁面在第一快照文件中的偏移量和第一虛擬頁面的哈希值,發(fā)送給哈希表所在的宿主機,以使哈希表所在的宿主機可以將第一虛擬機對應的宿主機號,第一快照文件名,第一虛擬頁面在第一快照文件中的偏移量和第一虛擬頁面的哈希值對應地保存到哈希表中。
[0033]103、在第一虛擬頁面的內容與第二虛擬頁面的內容相同時,將第一虛擬頁面的地址和第一虛擬頁面的索引信息存儲到第一虛擬機對應的宿主機維護的第一快照文件中,索引信息包括:第二快照文件所在的宿主機號,第二快照文件的文件名和第二虛擬頁面在第二快照文件中的偏移量。
[0034]其中,虛擬集群內所有虛擬機對應的宿主機上的快照文件可以存放在共享目錄下,以便宿主機能夠根據(jù)索引信息獲取其他宿主機上的快照文件中保存的虛擬頁面的內容。
[0035]進一步地,在第一虛擬頁面的內容與第二虛擬頁面的內容不同時,虛擬集群內存快照裝置可以將第一虛擬頁面的地址和第一虛擬頁面的內容存儲到第一虛擬機對應的宿主機維護的第一快照文件中。
[0036]更進一步地,為了保證虛擬集群內存快照裝置能夠獲取虛擬機集群內的虛擬機對應的各宿主機維護的快照文件中保存的虛擬頁面的內容,虛擬機集群內的虛擬機對應的各宿主機維護的快照文件中還可以包括:各虛擬頁面對應的存儲類型;
[0037]當?shù)谝豢煺瘴募械牡谝惶摂M頁面為單字節(jié)重復頁面時,對應的存儲類型為單字節(jié)存儲;
[0038]當?shù)谝豢煺瘴募械牡谝惶摂M頁面的內容與第二快照文件中的第二虛擬頁面的內容相同時,對應的存儲類型為索引存儲;
[0039]當?shù)谝豢煺瘴募械牡谝惶摂M頁面的內容與第二快照文件中的第二虛擬頁面的內容不同時,對應的存儲類型為完全存儲。
[0040]可選的,當?shù)谝豢煺瘴募械牡谝惶摂M頁面為單字節(jié)重復頁面時,存儲格式可以如圖2所示,包括:Addr I RAM_SAVE_FLAG_COMPRESS字段和單字節(jié)字段。其中,Addr IRAM_SAVE_FLAG_COMPRESS字段的長度為8字節(jié)。例如,當?shù)谝惶摂M頁面的地址Addr的數(shù)值為 0x324d000,而單字節(jié)存儲類型 RAM_SAVE_FLAG_COMPRESS 的數(shù)值為 0x02 時,Addr | RAM_SAVE_FLAG_COMPRESS的數(shù)值具體可以為Addr與RAM_SAVE_FLAG_COMPRESS的按位或值,即Addr IRAM_SAVE_FLAG_C0MPRESS=0x324d002。
[0041]可選的,當?shù)谝豢煺瘴募械牡谝惶摂M頁面的內容與第二快照文件中的第二虛擬頁面的內容相同時,存儲格式可以如圖3所示,包括:Addr I RAM_SAVE_FLAG_PAGE字段和索引信息字段。其中,索引信息字段的長度為16字節(jié)。例如,當?shù)谝惶摂M頁面的地址Addr的數(shù)值為0x324d000,而索引存儲類型RAM_SAVE_FLAG_PAGE的數(shù)值為0x08時,Addr I RAM_SAVE_FLAG_PAGE 的數(shù)值具體可以為 Addr 與 RAM_SAVE_FLAG_PAGE 的按位或值,即Addr IRAM_SAVE_FLAG_PAGE=0x324d008?
[0042]可選的,當?shù)谝豢煺瘴募械牡谝惶摂M頁面的內容與第二快照文件中的第二虛擬頁面的內容不同時,存儲格式可以如圖4所示,包括:Addr I RAM_SAVE_FLAG_ADDR字段和第一虛擬頁面的內容字段。其中,第一虛擬頁面的內容字段的長度為4k字節(jié)。例如,當?shù)谝惶摂M頁面的地址Addr的數(shù)值為0x324d000,而完全存儲類型RAM_SAVE_FLAG_ADDR的數(shù)值為 0x20 時,Addr | RAM_SAVE_FLAG_ADDR 的數(shù)值具體可以為 Addr 與 RAM_SAVE_FLAG_ADDR 的按位或值,即 Addr I RAM_SAVE_FLAG_ADDR=0x324d020。
[0043]再進一步地,在快照文件中包括各虛擬頁面對應的存儲類型的基礎上,當虛擬集群內存快照裝置需要對第一虛擬機內存進行恢復時,虛擬集群內存快照裝置可以根據(jù)虛擬集群內虛擬機對應的宿主機上的快照文件對虛擬集群內虛擬機內存的運行狀態(tài)進行回滾,即根據(jù)虛擬集群內虛擬機對應的宿主機上的快照文件將所述將虛擬集群內虛擬機內存的運行狀態(tài)恢復到某一時間點。因此,將第一虛擬頁面的地址和第一虛擬頁面的索引信息存儲到第一虛擬機對應的宿主機維護的第一快照文件中之后,還可以包括:
[0044]當需要對第一虛擬機內存進行恢復時,獲取第一快照文件中各個第一虛擬頁面的地址和存儲類型;在第一虛擬頁面的存儲類型為單字節(jié)存儲時,獲取第一虛擬頁面對應的單字節(jié);在第一虛擬頁面的存儲·類型為索引存儲時,根據(jù)第一虛擬頁面對應的索引信息,獲取與第一虛擬頁面的內容完全相同的第二虛擬頁面的內容;在第一虛擬頁面的存儲類型為完全存儲時,獲取第一虛擬頁面的內容。
[0045]其中,虛擬集群內存快照裝置需要對第一虛擬機內存進行恢復的情況指的是,第一虛擬機內存的運行出現(xiàn)故障;或者虛擬機用戶向虛擬集群內存快照裝置發(fā)送請求,請求虛擬集群內存快照裝置對第一虛擬機內存進行恢復等。
[0046]可選的,虛擬集群內存快照裝置獲取第一快照文件中各個第一虛擬頁面的地址和存儲類型的方式可以為:從第一快照文件中讀取8個字節(jié),即一個64位整型數(shù),將該整型數(shù)與TARGET_PAGE_MASK按位與可以得到第一虛擬頁面的地址addr ;將該整型數(shù)與~TARGET_PAGE_MASK按位與可以得到flags標志。
[0047]例如,在第一種實施場景下,從第一;決照文件中的8個字節(jié)的整型數(shù)的數(shù)值為 0x324d002,將 0x324d002 和 TARGET_PAGE_MASK=Oxfff..ffOOO (16 位)進行按位與,可以得到第一虛擬頁面的地址addr=0x324d000 ;將0x324d002和~TARGET_PAGE_MASK=0x000..0Off (16 位)進行按位與,可以得到 0x02,就是 RAM_SAVE_FLAG_COMPRESS 的數(shù)值;則虛擬集群內存快照裝置可以讀取第一快照文件中的下一個字節(jié),即單字節(jié)內容,將第一虛擬頁面的地址對應的內存中的所有字節(jié)全部替換為該單字節(jié)內容。[0048]在第二種實施場景下,從第一快照文件中的8個字節(jié)的整型數(shù)的數(shù)值為0x324d008,將 0x324d008 和 TARGET_PAGE_MASK=Oxfff..ffOOO (16 位)進行按位與,可以得到第一虛擬頁面的地址addr=0x324d000 ;將0x324d008和~TARGET_PAGE_MASK=0x000..0Off (16位)進行按位與,可以得到0x08,就是RAM_SAVE_FLAG_PAGE的數(shù)值;則虛擬集群內存快照裝置可以讀取第一快照文件中的下面16個字節(jié),獲取第一虛擬頁面的索引信息,根據(jù)第一虛擬頁面的索引信息,獲取與第一虛擬頁面的內容完全相同的第二虛擬頁面的內容。
[0049]在第三種實施場景下,從第一快照文件中的8個字節(jié)的整型數(shù)的數(shù)值為0x324d020,將 0x324d020 和 TARGET_PAGE_MASK=Oxfff..ffOOO (16 位)進行按位與,可以得到第一虛擬頁面的地址addr=0x324d000 ;將0x324d020和~TARGET_PAGE_MASK=0x000..0Off (16位)進行按位與,可以得到0x20,就是RAM_SAVE_FLAG_ADDR的數(shù)值;則虛擬集群內存快照裝置可以讀取第一快照文件中的下面4k個字節(jié),獲取第一虛擬頁面的內容。
[0050]另外,虛擬集群內存快照裝置可以同時對多個虛擬機內的虛擬頁面按照上述的虛擬集群內存快照方法進行處理,進一步提高快照效率。
[0051 ] 本實施例中,通過獲取虛擬機集群內的第一虛擬機內存中第一虛擬頁面的地址和內容,在第一虛擬頁面的內容與虛擬機集群內的虛擬機對應的各宿主機維護的快照文件中的第二虛擬頁面的內容相同時,只存儲該第一虛擬頁面的地址和索引信息,從而減少了存儲量,提高了快照效率。
[0052]另外,哈希表可以包括至少一個哈希子表,至少一個哈希子表分別存儲在虛擬機集群內的虛擬機對應的各宿主機上,至少一個哈希子表維護的哈希值范圍不同。
[0053]對應的,根據(jù)第一虛擬頁面的哈希值,查詢哈希表,獲取哈希表中對應的哈希值與第一虛擬頁面的哈希值相同的虛擬頁面,具體可以包括: [0054]根據(jù)第一虛擬頁面的哈希值,查詢第一虛擬機對應的宿主機維護的公告欄信息,確定第一哈希子表所在的宿主機號,第一虛擬頁面的哈希值在第一哈希子表維護的哈希值范圍內,公告欄信息包括:虛擬機集群內的虛擬機對應的各宿主機的宿主機號,以及虛擬機集群內的各宿主機維護的哈希子表的哈希值范圍;根據(jù)第一虛擬頁面的哈希值,查詢第一哈希子表,獲取第一哈希子表中對應的哈希值與所述第一虛擬頁面的哈希值相同的虛擬頁面。其中,公告欄信息的格式具體可以如表1所示。
[0055]表1公告欄信息的格式
【權利要求】
1.一種虛擬集群內存快照方法,其特征在于,包括: 獲取虛擬機集群內的第一虛擬機內存中各個第一虛擬頁面的地址和所述第一虛擬頁面的內容; 判斷所述第一虛擬頁面的內容與第二快照文件中的第二虛擬頁面的內容是否相同,所述第二快照文件為所述虛擬機集群內的虛擬機對應的各宿主機維護的快照文件; 在所述第一虛擬頁面的內容與所述第二虛擬頁面的內容相同時,將所述第一虛擬頁面的地址和所述第一虛擬頁面的索引信息存儲到所述第一虛擬機對應的宿主機維護的第一快照文件中,所述索引信息包括:所述第二快照文件所在的宿主機號,所述第二快照文件的文件名和所述第二虛擬頁面在所述第二快照文件中的偏移量。
2.根據(jù)權利要求1所述的方法,其特征在于,所述判斷所述第一虛擬頁面的內容與第二快照文件中的第二虛擬頁面的內容是否相同之前,還包括: 根據(jù)所述第一虛擬頁面的內容判斷所述第一虛擬頁面是否為單字節(jié)重復頁面; 在所述第一虛擬頁面為單字節(jié)重復頁面時,將所述第一虛擬頁面的地址和單字節(jié)內容存儲到所述第一虛擬機 對應的宿主機維護的第一快照文件中。
3.根據(jù)權利要求1所述的方法,其特征在于,所述判斷所述第一虛擬頁面的內容與第二快照文件中的第二虛擬頁面的內容是否相同之前,還包括: 根據(jù)所述第一虛擬頁面的內容,計算所述第一虛擬頁面的哈希值; 根據(jù)所述第一虛擬頁面的哈希值,查詢哈希表,獲取所述哈希表中對應的哈希值與所述第一虛擬頁面的哈希值相同的虛擬頁面; 將所述哈希表中對應的哈希值與所述第一虛擬頁面的哈希值相同的虛擬頁面確定為第二快照文件中的第二虛擬頁面。
4.根據(jù)權利要求3所述的方法,其特征在于,所述根據(jù)所述第一虛擬頁面的哈希值,查詢哈希表之后,還包括: 在所述哈希表中未獲取到對應的哈希值與所述第一虛擬頁面的哈希值相同的虛擬頁面時,將所述第一虛擬頁面的地址和所述第一虛擬頁面的內容存儲到所述第一虛擬機對應的宿主機維護的第一快照文件中; 將所述第一虛擬機對應的宿主機號,所述第一快照文件名,所述第一虛擬頁面在所述第一快照文件中的偏移量和所述第一虛擬頁面的哈希值,發(fā)送給所述哈希表所在的宿主機,以使所述哈希表所在的宿主機將所述第一虛擬機對應的宿主機號,所述第一快照文件名,所述第一虛擬頁面在所述第一快照文件中的偏移量和所述第一虛擬頁面的哈希值對應地保存到所述哈希表中。
5.根據(jù)權利要求3所述的方法,其特征在于,所述哈希表包括至少一個哈希子表,所述至少一個哈希子表分別存儲在所述虛擬機集群內的虛擬機對應的各宿主機上,所述至少一個哈希子表維護的哈希值范圍不同; 所述根據(jù)所述第一虛擬頁面的哈希值,查詢哈希表,獲取所述哈希表中對應的哈希值與所述第一虛擬頁面的哈希值相同的虛擬頁面,包括: 根據(jù)所述第一虛擬頁面的哈希值,查詢所述第一虛擬機對應的宿主機維護的公告欄信息,確定第一哈希子表所在的宿主機號,所述第一虛擬頁面的哈希值在所述第一哈希子表維護的哈希值范圍內,所述公告欄信息包括:所述虛擬機集群內的虛擬機對應的各宿主機的宿主機號,以及所述虛擬機集群內的各宿主機維護的哈希子表的哈希值范圍; 根據(jù)所述第一虛擬頁面的哈希值,查詢所述第一哈希子表,獲取所述第一哈希子表中對應的哈希值與所述第一虛擬頁面的哈希值相同的虛擬頁面。
6.根據(jù)權利要求2或4所述的方法,其特征在于,所述虛擬機集群內的虛擬機對應的各宿主機維護的快照文件中還包括:各虛擬頁面對應的存儲類型; 當所述第一快照文件中的第一虛擬頁面為單字節(jié)重復頁面時,對應的存儲類型為單字節(jié)存儲; 當所述第一快照文件中的第一虛擬頁面的內容與所述第二快照文件中的所述第二虛擬頁面的內容相同時,對應的存儲類型為索引存儲; 當所述第一快照文件中的第一虛擬頁面的內容與所述第二快照文件中的所述第二虛擬頁面的內容不同時,對應的存儲類型為完全存儲。
7.根據(jù)權利要求6所述的方法,其特征在于,所述將所述第一虛擬頁面的地址和所述第一虛擬頁面的索引信息存儲到所述第一虛擬機對應的宿主機維護的第一快照文件中之后,還包括: 當需要對所述第一虛擬機內存進行恢復時,獲取所述第一快照文件中各個第一虛擬頁面的地址和存儲類型; 在所述第一虛擬頁面的存儲類型為單字節(jié)存儲時,獲取所述第一虛擬頁面對應的單字節(jié); 在所述第一虛擬頁面的存儲類型為索引存儲時,根據(jù)所述第一虛擬頁面對應的索引信息,獲取與所述第一虛擬頁面的內容完全相同的所述第二虛擬頁面的內容; 在所述第一虛擬頁面的存儲類型為完全存儲時,獲取所述第一虛擬頁面的內容。
8.—種虛擬集群內存快照裝置,其特征在于,包括: 獲取模塊,用于獲取虛擬機集群內的第一虛擬機內存中各個第一虛擬頁面的地址和所述第一虛擬頁面的內容; 判斷模塊,用于判斷所述第一虛擬頁面的內容與第二快照文件中的第二虛擬頁面的內容是否相同,所述第二快照文件為所述虛擬機集群內的虛擬機對應的各宿主機維護的快照文件; 存儲模塊,用于在所述第一虛擬頁面的內容與所述第二虛擬頁面的內容相同時,將所述第一虛擬頁面的地址和所述第一虛擬頁面的索引信息存儲到所述第一虛擬機對應的宿主機維護的第一快照文件中,所述索引信息包括:所述第二快照文件所在的宿主機號,所述第二快照文件的文件名和所述第二虛擬頁面在所述第二快照文件中的偏移量。
9.根據(jù)權利要求8所述的裝置,其特征在于,所述判斷模塊還用于,在所述判斷模塊判斷所述第一虛擬頁面的內容與第二快照文件中的第二虛擬頁面的內容是否相同之前,根據(jù)所述第一虛擬頁面的內容判斷所述第一虛擬頁面是否為單字節(jié)重復頁面; 所述存儲模塊,還用于在所述第一虛擬頁面為單字節(jié)重復頁面時,將所述第一虛擬頁面的地址和單字節(jié)內容存儲到所述第一虛擬機對應的宿主機維護的第一快照文件中。
10.根據(jù)權利要求8所述的裝置,其特征在于,還包括:計算模塊和確定模塊; 所述計算模塊用于,在所述判斷模塊判斷第一虛擬頁面的內容與第二快照文件中的第二虛擬頁面的內容是否相同之前,根據(jù)所述第一虛擬頁面的地址,計算所述第一虛擬頁面的哈希值; 所述獲取模塊還用于,根據(jù)所述第一虛擬頁面的哈希值,查詢哈希表,獲取所述哈希表中對應的哈希值與所述第一虛擬頁面的哈希值相同的虛擬頁面; 所述確定模塊用于,將所述哈希表中對應的哈希值與所述第一虛擬頁面的哈希值相同的虛擬頁面確定為第二快照文件中的第二虛擬頁面。
【文檔編號】G06F9/455GK103593259SQ201310484740
【公開日】2014年2月19日 申請日期:2013年10月16日 優(yōu)先權日:2013年10月16日
【發(fā)明者】李博, 黃玉梅, 崔磊, 沃天宇, 劉昆 申請人:北京航空航天大學