專利名稱:一種面向內(nèi)存冗余的虛擬機(jī)遷移裝置及其方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種面向內(nèi)存冗余的虛擬機(jī)遷移裝置及其方法,是利用源宿主機(jī)與目標(biāo)宿主機(jī)上的內(nèi)存冗余信息,來減少虛擬機(jī)遷移過程中的內(nèi)存拷貝,從而提高遷移速度,降 低網(wǎng)絡(luò)流量,屬于計(jì)算機(jī)技術(shù)領(lǐng)域。
背景技術(shù):
目前的數(shù)據(jù)中心中具有成千上萬的服務(wù)器,這些數(shù)據(jù)中心有的只運(yùn)行某公司的單 一的程序,有些數(shù)據(jù)中心將龐大的計(jì)算資源和存儲(chǔ)資源出租給客戶使用,這種方式被稱作 云計(jì)算。隨著云計(jì)算的流行,越來越多的Web服務(wù)和商業(yè)應(yīng)用被部署到云計(jì)算中,同時(shí)承載 云計(jì)算的數(shù)據(jù)中心也越來越龐大。對于數(shù)據(jù)中心中海量的服務(wù)器,如何提高資源的利用率, 降低管理成本,成為人們研究的焦點(diǎn)。虛擬化技術(shù)的出現(xiàn)使得在同一物理機(jī)器上可以同時(shí)運(yùn)行多個(gè)虛擬機(jī),并且這些虛 擬機(jī)具有很好的隔離性。這種將多個(gè)服務(wù)器整合到一個(gè)物理節(jié)點(diǎn)的方式極大地提高了資源 的利用率,因此虛擬化逐漸成為數(shù)據(jù)中心提高資源利用率的核心技術(shù)。虛擬化技術(shù)是指在硬件平臺(tái)上通過軟件或硬件的方法,在計(jì)算機(jī)硬件和操作系統(tǒng) 之間構(gòu)建一個(gè)虛擬平臺(tái),為上層操作系統(tǒng)虛擬出多個(gè)獨(dú)立的虛擬硬件運(yùn)行環(huán)境,并且共享 硬件資源。其中,虛擬出來的機(jī)器是虛擬機(jī)(VM),運(yùn)行于硬件與操作系統(tǒng)之間的軟件被稱作 虛擬機(jī)監(jiān)控器(VMM),由它來管理和分配硬件資源并且調(diào)度虛擬機(jī)的運(yùn)行。內(nèi)存資源是系統(tǒng)的重要資源之一。與傳統(tǒng)的操作系統(tǒng)中虛擬頁面到物理頁面的二 級映射相比,虛擬化技術(shù)采用虛擬頁面,物理頁面,機(jī)器頁面的三級映射,以達(dá)到內(nèi)存虛擬 化的目的。由于同一物理機(jī)器一般運(yùn)行多個(gè)虛擬機(jī),這些虛擬機(jī)之間可能具有大量的相同 物理頁面,這些內(nèi)存頁面的冗余造成了資源的浪費(fèi)。因此,最新的虛擬化內(nèi)存管理技術(shù)采用 將多個(gè)虛擬機(jī)的相同物理頁面映射到同一個(gè)機(jī)器頁面,以減少內(nèi)存冗余,提高內(nèi)存資源的 利用率。數(shù)據(jù)中心中提供的資源包括計(jì)算資源(CPU),內(nèi)存資源和網(wǎng)絡(luò)資源(帶寬)等。對 于內(nèi)存資源,由于數(shù)據(jù)中心大量虛擬機(jī)的存在,這些虛擬機(jī)因?yàn)椴僮飨到y(tǒng)和封裝的應(yīng)用的 相同或多或少具有內(nèi)存的冗余。以虛擬機(jī)內(nèi)存冗余的多少作為指標(biāo)來指導(dǎo)數(shù)據(jù)中心中虛擬 機(jī)的遷移和放置,將內(nèi)存冗余較多的虛擬機(jī)調(diào)整到同一物理機(jī)器,并利用虛擬機(jī)之間機(jī)器 頁面的共享機(jī)制,能夠有效地節(jié)省數(shù)據(jù)中心整體的內(nèi)存資源使用。然而,調(diào)整虛擬機(jī)的放置一般采用虛擬機(jī)遷移技術(shù),目前的虛擬機(jī)遷移技術(shù)采用 將虛擬機(jī)的虛擬磁盤映射到共享存儲(chǔ)設(shè)備(如SAN),遷移過程主要完成虛擬機(jī)內(nèi)存數(shù)據(jù)從 源節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的拷貝,然后建立新的虛擬磁盤映射,再啟動(dòng)虛擬機(jī)。虛擬機(jī)遷移需要將 源VMM(虛擬機(jī)監(jiān)控器)上的虛擬機(jī)內(nèi)存拷貝到目標(biāo)VMM并繼續(xù)虛擬機(jī)的運(yùn)行,這個(gè)過程需 要消耗網(wǎng)絡(luò)帶寬,對于數(shù)據(jù)中心海量機(jī)器的環(huán)境,大量的虛擬機(jī)遷移將對網(wǎng)絡(luò)帶寬造成較 大壓力。因此,如何在提高內(nèi)存資源里利用率的同時(shí)減少數(shù)據(jù)中心網(wǎng)絡(luò)的負(fù)載是需要解決 的問題。三)
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種面向內(nèi)存冗余的虛擬機(jī)遷移裝置及其方法,使虛擬機(jī)遷 移過程中所消耗的網(wǎng)絡(luò)帶寬能夠盡量降低,達(dá)到提高內(nèi)存資源利用率的同時(shí)降低網(wǎng)絡(luò)資源 消耗。為實(shí)現(xiàn)上述目的,本發(fā)明提供一種面向內(nèi)存冗余的虛擬機(jī)遷移裝置,包括1.第一主計(jì)算機(jī)和第二計(jì)算機(jī)(代表數(shù)據(jù)中心中任意兩臺(tái)計(jì)算機(jī));2.存儲(chǔ)系統(tǒng);3.通信網(wǎng)絡(luò);所述第一主計(jì)算機(jī)和第二主計(jì)算機(jī)包括處理器、輸入設(shè)備、第一主機(jī)總線適配器、 第二主機(jī)總線適配器、通信接口和計(jì)算機(jī)存儲(chǔ)介質(zhì)。所述處理器負(fù)責(zé)控制第一主計(jì)算機(jī)和第二主計(jì)算機(jī),并與所述的輸入設(shè)備、第一 主機(jī)總線適配器、第二主機(jī)總線適配器、通信接口和計(jì)算機(jī)存儲(chǔ)介質(zhì)連接;所述計(jì)算機(jī)存 儲(chǔ)介質(zhì)中的應(yīng)用程序和數(shù)據(jù)可由所述處理器讀取和執(zhí)行,并可通過所述第一主機(jī)總線適配 器、第二主機(jī)總線適配器和所述通信接口傳輸?shù)饺魏瓮獠吭O(shè)備。所述輸入設(shè)備用于數(shù)據(jù)以及指令的輸入;所述第一主機(jī)總線適配器和第二主機(jī)總線適配器用于連接磁盤陣列;所述通信接口用于連接外部網(wǎng)絡(luò)通信設(shè)備;所述計(jì)算機(jī)存儲(chǔ)介質(zhì)包括第一遷移控制系統(tǒng)、第二遷移控制系統(tǒng)、第一虛擬機(jī)監(jiān) 控器、第二虛擬機(jī)監(jiān)控器、虛擬機(jī)和應(yīng)用程序;所述計(jì)算機(jī)存儲(chǔ)介質(zhì)用于儲(chǔ)存程序指令以及數(shù)據(jù),包括隨機(jī)存儲(chǔ)器(RAM)和非易 失性存儲(chǔ)器(例如,ROM,閃存,磁盤,光盤等);并由所述處理器執(zhí)行實(shí)現(xiàn)虛擬機(jī)遷移過程。所述第一主計(jì)算機(jī)上的三個(gè)虛擬機(jī)由第一虛擬機(jī)監(jiān)控器管理,且每個(gè)虛擬機(jī)具有 一個(gè)或多個(gè)與之相關(guān)聯(lián)的虛擬驅(qū)動(dòng)器,各虛擬驅(qū)動(dòng)器通過第一主計(jì)算機(jī)的第一主機(jī)總線適 配器映射到第二通信網(wǎng)絡(luò)連接的磁盤陣列的磁盤邏輯單元上。虛擬機(jī)的虛擬磁盤訪問被映 射為通過第二通信網(wǎng)絡(luò)對磁盤陣列上文件的訪問。第一遷移控制系統(tǒng)為第一虛擬機(jī)監(jiān)控器 的輔助組件,控制虛擬機(jī)遷移的整個(gè)過程,第一遷移控制系統(tǒng)利用第一網(wǎng)絡(luò)適配器通過第 一通信網(wǎng)絡(luò)與第二主計(jì)算機(jī)上的第二遷移控制系統(tǒng)交互,進(jìn)而實(shí)現(xiàn)虛擬機(jī)內(nèi)存數(shù)據(jù)和狀態(tài) 信息的傳輸。第二主計(jì)算機(jī)中的虛擬機(jī)、虛擬驅(qū)動(dòng)器、第二主機(jī)總線適配器以及第二遷移控 制系統(tǒng)、第二虛擬機(jī)監(jiān)控器、第二網(wǎng)絡(luò)適配器的功能和連接關(guān)系與第一主計(jì)算機(jī)相同。所述第一虛擬機(jī)監(jiān)控器和第二虛擬機(jī)監(jiān)控器直接運(yùn)行在硬件之上,為虛擬機(jī)提供 虛擬的硬件執(zhí)行環(huán)境;所述虛擬機(jī)為所述應(yīng)用程序提供虛擬的操作系統(tǒng)執(zhí)行環(huán)境;所述應(yīng) 用程序在所述虛擬機(jī)執(zhí)行效果同真實(shí)操作系統(tǒng)環(huán)境相同;所述第一遷移控制系統(tǒng)和第二遷 移控制系統(tǒng)負(fù)責(zé)控制虛擬機(jī)的遷移過程。所述第一遷移控制系統(tǒng)和第二遷移控制系統(tǒng)由交互模塊,掃描模塊,比較模塊,壓 縮模塊組成;交互模塊,用于進(jìn)行虛擬機(jī)遷移過程中的交互過程,包括遷移請求的發(fā)起與接受, 內(nèi)存描述符與內(nèi)存數(shù)據(jù)的傳送;掃描模塊,用于掃描虛擬機(jī)每個(gè)虛擬內(nèi)存頁面所對應(yīng)的機(jī)器內(nèi)存頁面,利用哈希算法計(jì)算每個(gè)機(jī)器內(nèi)存頁面數(shù)據(jù)的哈希值,最終構(gòu)造一個(gè)虛擬機(jī)的內(nèi)存描述符;比較模塊,用于比較需遷移的虛擬機(jī)與目標(biāo)機(jī)器是否存在內(nèi)容一致的內(nèi)存頁面, 通過掃描目標(biāo)節(jié)點(diǎn),每個(gè)機(jī)器頁面生成相應(yīng)的哈希值,并在源節(jié)點(diǎn)傳送的虛擬機(jī)內(nèi)存描述 符中查找是否有匹配的項(xiàng)目,若有匹配的項(xiàng)目則需要經(jīng)過采樣數(shù)據(jù)的進(jìn)一步驗(yàn)證,判斷否 為相同頁面,最終生成遷移虛擬機(jī)需要傳送的內(nèi)存頁面列表;壓縮模塊,用于需傳送數(shù)據(jù)的壓縮與解壓縮,以減少傳輸數(shù)據(jù)量,提高傳輸速度。所述存儲(chǔ)系統(tǒng)包含磁盤陣列、存儲(chǔ)接口、一個(gè)或多個(gè)物理驅(qū)動(dòng)器和存儲(chǔ)介質(zhì);所述 存儲(chǔ)系統(tǒng)可實(shí)現(xiàn)為存儲(chǔ)區(qū)域網(wǎng)(SAN)。所述磁盤陣列包括多個(gè)磁盤邏輯單元(本例中為liml51_155),其各自由磁盤陣 列對外呈現(xiàn)。一個(gè)磁盤邏輯單元可被映射到磁盤陣列的一個(gè)或多個(gè)物理驅(qū)動(dòng)器或存儲(chǔ)介 質(zhì)。虛擬機(jī)可將磁盤陣列的磁盤邏輯單元映射為虛擬機(jī)的虛擬磁盤。所述存儲(chǔ)接口為磁盤陣列提供訪問接口??杀粚?shí)現(xiàn)為對所述磁盤陣列與所述第二 通信網(wǎng)絡(luò)提供通信支持的SAN交換機(jī)的。所述虛擬機(jī)的一個(gè)或多個(gè)虛擬驅(qū)動(dòng)器可通過第一 主機(jī)總線適配器、第一通信網(wǎng)絡(luò)和第二通信網(wǎng)絡(luò)和存儲(chǔ)接口之間的連接,映射到磁盤陣列 的一個(gè)或多個(gè)Iun上,每個(gè)Iim存儲(chǔ)相應(yīng)虛擬機(jī)的數(shù)據(jù)。所述第一通信網(wǎng)絡(luò)和第二通信網(wǎng)絡(luò)為第一主計(jì)算機(jī)和第二主計(jì)算機(jī)以及存儲(chǔ)系 統(tǒng)之間提供通信支持。第一通信網(wǎng)絡(luò)和第二通信網(wǎng)絡(luò)用于第一主計(jì)算機(jī)和第二主計(jì)算機(jī)之 間以及第一主計(jì)算機(jī)和第二主計(jì)算機(jī)與存儲(chǔ)系統(tǒng)之間的數(shù)據(jù)通信,可被實(shí)現(xiàn)為任何類型和 協(xié)議的數(shù)據(jù)通信網(wǎng)絡(luò)。例如,在本示例中,第一通信網(wǎng)絡(luò)可被實(shí)現(xiàn)為千兆以太網(wǎng)絡(luò),第二通 信網(wǎng)絡(luò)可被實(shí)現(xiàn)為通過存儲(chǔ)接口連接到第一主計(jì)算機(jī)和第二主計(jì)算機(jī)的光纖通道或iSCSI 網(wǎng)絡(luò)。為實(shí)現(xiàn)上述目的,本發(fā)明提供一種面向內(nèi)存冗余的虛擬機(jī)遷移方法,包括五個(gè)步 驟,具體如下步驟一暫停源節(jié)點(diǎn)上需遷移虛擬機(jī)的運(yùn)行,掃描虛擬機(jī)內(nèi)存頁面并生成內(nèi)存描 述符,然后將內(nèi)存描述符發(fā)送到目標(biāo)節(jié)點(diǎn);第一主計(jì)算機(jī)(源節(jié)點(diǎn))的第一遷移控制系統(tǒng)的交互模塊通過第一網(wǎng)絡(luò)適配器經(jīng) 由第一通信網(wǎng)絡(luò)向第二主計(jì)算機(jī)(目標(biāo)節(jié)點(diǎn))的第二遷移控制系統(tǒng)發(fā)起虛擬機(jī)遷移請求, 得到回應(yīng)后,第一遷移控制系統(tǒng)暫停第一虛擬機(jī)的運(yùn)行,并利用掃描模塊掃描第一虛擬機(jī) 的內(nèi)存數(shù)據(jù),生成第一虛擬機(jī)的內(nèi)存描述符并將其通過第一網(wǎng)絡(luò)適配器經(jīng)由第一通信網(wǎng)絡(luò) 發(fā)送到第二主計(jì)算機(jī);該第一虛擬機(jī)的內(nèi)存描述符主要包括虛擬機(jī)內(nèi)存的物理頁面序號, 機(jī)器頁面序號,由內(nèi)存頁面內(nèi)容生成的哈希值,以及32字節(jié)的內(nèi)存頁面內(nèi)容的數(shù)據(jù)采樣;具體掃描和生成第一虛擬機(jī)的內(nèi)存描述符的過程如下步驟101 :內(nèi)存掃描模塊首先找到第一虛擬機(jī)的內(nèi)存頁表,初始化第一虛擬機(jī)的 內(nèi)存描述符;步驟102 根據(jù)第一虛擬機(jī)內(nèi)存頁表,利用SuperFastHash哈希算法計(jì)算每個(gè)虛擬 內(nèi)存頁面所對應(yīng)的機(jī)器內(nèi)存頁面的內(nèi)容哈希值,然后將哈希值與其對應(yīng)的物理頁面序號、 機(jī)器頁面序號以及內(nèi)存頁面中32字節(jié)的驗(yàn)證信息一同保存到第一虛擬機(jī)的內(nèi)存描述符 中,SuperFastHash算法的實(shí)現(xiàn)見下;步驟103 將生成的第一虛擬機(jī)的內(nèi)存描述符通過第一網(wǎng)絡(luò)適配器經(jīng)由第一通信網(wǎng)絡(luò)發(fā)送給第二主計(jì)算機(jī)的第二遷移控制系統(tǒng);步驟二 目標(biāo)節(jié)點(diǎn)掃描本機(jī)內(nèi)存頁面并與需遷移虛擬機(jī)的內(nèi)存描述符比較,生成 需傳輸?shù)膬?nèi)存頁面列表并返回給源節(jié)點(diǎn);第二主計(jì)算機(jī)得到第一虛擬機(jī)的內(nèi)存描述符后,通過第二遷移控制系統(tǒng)的比較模 塊,掃描本節(jié)點(diǎn)機(jī)器內(nèi)存頁面并與第一虛擬機(jī)的內(nèi)存描述符進(jìn)行比較,進(jìn)而生成需要遷移 的第一虛擬機(jī)內(nèi)存的頁面列表并通過第二網(wǎng)絡(luò)適配器經(jīng)由第一通信網(wǎng)絡(luò)發(fā)送給第一主計(jì) 算機(jī),具體比較流程如下步驟201 獲得第二主計(jì)算機(jī)的機(jī)器頁面列表,初始化需遷移的頁面列表622 ;步驟202 察看是否到達(dá)第二主計(jì)算機(jī)機(jī)器頁面列表的末尾,否,則跳轉(zhuǎn)至步驟 203 ;是,則跳轉(zhuǎn)至步驟208 ;步驟203 獲得下一個(gè)要比較的第二主計(jì)算機(jī)的內(nèi)存機(jī)器頁面;步驟204 利用SuperFastHash哈希算法計(jì)算頁面內(nèi)容的哈希值;步驟205 在第一虛擬機(jī)的內(nèi)存描述符中查找是否有與步驟204計(jì)算所得哈希值 相匹配的項(xiàng)目,是,則跳轉(zhuǎn)至步驟206,否,則跳轉(zhuǎn)至步驟207 ;步驟206 進(jìn)一步利用內(nèi)存頁面驗(yàn)證數(shù)據(jù)檢測頁面內(nèi)容是否一致;是,則跳轉(zhuǎn)至步 驟202 ;否,則跳轉(zhuǎn)至步驟207 ;步驟207 將從內(nèi)存描述符中獲得的當(dāng)前物理頁面序號加入需遷移的頁面列表 中,跳轉(zhuǎn)至步驟202 ;步驟208 結(jié)束比較過程;步驟三源節(jié)點(diǎn)抽取內(nèi)存列表上的頁面并進(jìn)行壓縮后與虛擬機(jī)狀態(tài)信息一同傳送 給目標(biāo)節(jié)點(diǎn);第一主計(jì)算機(jī)得到需遷移的第一虛擬機(jī)頁面列表后,第一遷移控制系統(tǒng)從第一主 計(jì)算機(jī)的內(nèi)存中提取需遷移的內(nèi)存頁面并利用壓縮模塊對內(nèi)存數(shù)據(jù)進(jìn)行壓縮,然后將經(jīng)過 壓縮的數(shù)據(jù)通過第一網(wǎng)絡(luò)適配器經(jīng)由第一通信網(wǎng)絡(luò)傳送給第二主計(jì)算機(jī);具體步驟如下步驟301 獲得需傳輸?shù)捻撁媪斜?;步驟302 按照頁面列表中物理頁面序號順序依次提取第一虛擬機(jī)頁面內(nèi)存的內(nèi) 容,形成連續(xù)數(shù)據(jù)塊;步驟303 利用壓縮模塊進(jìn)行內(nèi)存數(shù)據(jù)塊壓縮;步驟304 將壓縮后的數(shù)據(jù)與虛擬機(jī)的狀態(tài)信息通過第一網(wǎng)絡(luò)適配器經(jīng)由第一通 信網(wǎng)絡(luò)傳輸給第二主計(jì)算機(jī)的第二遷移控制系統(tǒng)。步驟四目標(biāo)節(jié)點(diǎn)解壓數(shù)據(jù),根據(jù)內(nèi)存內(nèi)容創(chuàng)建新的內(nèi)存頁面,并根據(jù)遷移虛擬機(jī) 內(nèi)存描述符重新建立頁面映射;第二主計(jì)算機(jī)得到第一虛擬機(jī)的內(nèi)存數(shù)據(jù)后,利用第二遷移控制系統(tǒng)的壓縮模塊 進(jìn)行數(shù)據(jù)解壓,并根據(jù)第一虛擬機(jī)的內(nèi)存描述符和內(nèi)存數(shù)據(jù)在第二主計(jì)算機(jī)上創(chuàng)建新的機(jī) 器內(nèi)存頁面,并建立第一虛擬機(jī)新的虛擬機(jī)物理頁面到機(jī)器頁面的映射關(guān)系,具體步驟如 下步驟401 第二主計(jì)算機(jī)的第二遷移控制系統(tǒng)通過第二網(wǎng)絡(luò)適配器接第二主計(jì)算 機(jī)傳送的經(jīng)過壓縮的第一虛擬機(jī)內(nèi)存數(shù)據(jù)與虛擬機(jī)狀態(tài)信息;
步驟402 第二主計(jì)算機(jī)的第二遷移控制系統(tǒng)的壓縮模塊對內(nèi)存數(shù)據(jù)進(jìn)行解壓 縮;步驟403 第二主計(jì)算機(jī)的第二遷移控制系統(tǒng)為第一虛擬機(jī)分配新的機(jī)器頁面, 并根據(jù)第一虛擬機(jī)的內(nèi)存數(shù)據(jù)和頁面列表來創(chuàng)建新的機(jī)器內(nèi)存頁面;步驟404:第二遷移控制系統(tǒng)根據(jù)第一虛擬機(jī)的內(nèi)存描述符,為第一虛擬機(jī)的物 理頁面與第二主計(jì)算機(jī)的機(jī)器頁面建立新的頁面映射關(guān)系;步驟405 最后載入第一虛擬機(jī)的狀態(tài)信息,等待運(yùn)行。步驟五更改遷移虛擬機(jī) 的虛擬驅(qū)動(dòng)器到磁盤陣列的映射關(guān)系,啟動(dòng)虛擬機(jī)運(yùn)行。取消第一主計(jì)算機(jī)上第一虛擬機(jī)的第一虛擬驅(qū)動(dòng)器經(jīng)由第二通信網(wǎng)絡(luò)到磁盤陣 列的liml52的映射關(guān)系,同時(shí)在第二主計(jì)算機(jī)上建立新的第一虛擬機(jī)的第一虛擬驅(qū)動(dòng)器 經(jīng)由第二通信網(wǎng)絡(luò)到磁盤陣列的lunl52的映射關(guān)系,最后銷毀原第一主計(jì)算機(jī)上的第一 虛擬機(jī)以回收資源,并啟動(dòng)第二主計(jì)算機(jī)上第一虛擬機(jī)的運(yùn)行,遷移過程結(jié)束。本發(fā)明優(yōu)點(diǎn)及功效在于通過掃描和比較源物理節(jié)點(diǎn)上需遷移的虛擬機(jī)內(nèi)存頁面 與目標(biāo)節(jié)點(diǎn)上現(xiàn)有的內(nèi)存頁面的相似程度,最終決定需要遷移的內(nèi)存頁面集,并對內(nèi)存數(shù) 據(jù)進(jìn)行壓縮后傳輸?shù)侥繕?biāo)節(jié)點(diǎn)。以減少虛擬機(jī)遷移所占用的網(wǎng)絡(luò)帶寬并提高遷移速度。
圖1為數(shù)據(jù)中心虛擬化系統(tǒng)示意2為支持虛擬機(jī)遷移的計(jì)算機(jī)設(shè)備3為虛擬機(jī)遷移交互過程示意4為虛擬機(jī)遷移實(shí)施過程的流程5為虛擬機(jī)內(nèi)存掃描生成內(nèi)存描述符示意6為內(nèi)存頁面比較與遷移頁面列表生成示意7為內(nèi)存頁面比較與遷移頁面列表生成流程8為內(nèi)存壓縮與傳輸過程示意9為遷移后虛擬機(jī)內(nèi)存重映射示意圖
具體實(shí)施例方式下面通過附圖和實(shí)施例,對本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述本發(fā)明提供一種面向內(nèi)存冗余的虛擬機(jī)遷移裝置,包括1.主計(jì)算機(jī)101,102 (代表數(shù)據(jù)中心中任意兩臺(tái)計(jì)算機(jī));2.存儲(chǔ)系統(tǒng)105 ;3.通信網(wǎng)絡(luò)106和107 ;所述主計(jì)算機(jī)101,102包括處理器201、輸入設(shè)備202、主機(jī)總線適配器111,112、
通信接口 204和計(jì)算機(jī)存儲(chǔ)介質(zhì)205。所述處理器201負(fù)責(zé)控制主計(jì)算機(jī)101,102,并與所述的輸入設(shè)備202、主機(jī)總線 適配器111,112、通信接口 204和計(jì)算機(jī)存儲(chǔ)介質(zhì)205連接;所述計(jì)算機(jī)存儲(chǔ)介質(zhì)205中的 應(yīng)用程序213和數(shù)據(jù)可由所述處理器201讀取和執(zhí)行,并可通過所述主機(jī)總線適配器111, 112和所述通信接口 204傳輸?shù)饺魏瓮獠吭O(shè)備。
所述輸入設(shè)備202用于數(shù)據(jù)以及指令的輸入;所述主機(jī)總線適配器111,112用于連接磁盤陣列104 ;所述通信接口 204用于連接外部網(wǎng)絡(luò)通信設(shè)備;所述計(jì)算機(jī)存儲(chǔ)介質(zhì)205包括遷移控制系統(tǒng)121,122、虛擬機(jī)監(jiān)控器123,124、虛 擬機(jī)131,132,133和應(yīng)用程序213 ;所述計(jì)算機(jī)存儲(chǔ)介質(zhì)205用于儲(chǔ)存程序指令以及數(shù)據(jù),包括隨機(jī)存儲(chǔ)器(RAM)和 非易失性存儲(chǔ)器(例如,ROM,閃存,磁盤,光盤等);并由所述處理器201執(zhí)行實(shí)現(xiàn)虛擬機(jī)遷 移過程。所述主計(jì)算機(jī)101上的三個(gè)虛擬機(jī)131、132、133由虛擬機(jī)監(jiān)控器123管理,且每 個(gè)虛擬機(jī)具有一個(gè)或多個(gè)與之相關(guān)聯(lián)的虛擬驅(qū)動(dòng)器141、142、143,各虛擬驅(qū)動(dòng)器通過主計(jì) 算機(jī)101的主機(jī)總線適配器111映射到通信網(wǎng)絡(luò)107連接的磁盤陣列104的磁盤邏輯單元 (Iun) 152,153,153,154上。虛擬機(jī)131,132,133的虛擬磁盤訪問被映射為通過通信網(wǎng)絡(luò) 107對磁盤陣列104上文件的訪問。遷移控制系統(tǒng)121為虛擬機(jī)監(jiān)控器123的輔助組件,控 制虛擬機(jī)遷移的整個(gè)過程,遷移控制系統(tǒng)121利用網(wǎng)絡(luò)適配器113通過通信網(wǎng)絡(luò)106與主 計(jì)算機(jī)102上的遷移控制系統(tǒng)122交互,進(jìn)而實(shí)現(xiàn)虛擬機(jī)內(nèi)存數(shù)據(jù)和狀態(tài)信息的傳輸。主 計(jì)算機(jī)102中虛擬機(jī)134,虛擬驅(qū)動(dòng)器144,主機(jī)總線適配器112以及遷移控制系統(tǒng)122,虛 擬機(jī)監(jiān)控器124,網(wǎng)絡(luò)適配器114的功能和連接關(guān)系與主計(jì)算機(jī)101相同。所述虛擬機(jī)監(jiān)控器123,124直接運(yùn)行在硬件之上,為虛擬機(jī)131,132,133,134提 供虛擬的硬件執(zhí)行環(huán)境;所述虛擬機(jī)131,132,133,134為所述應(yīng)用程序213提供虛擬的操 作系統(tǒng)執(zhí)行環(huán)境;所述應(yīng)用程序213在所述虛擬機(jī)131,132,133,134執(zhí)行效果同真實(shí)操作 系統(tǒng)環(huán)境相同;所述遷移控制系統(tǒng)121,122負(fù)責(zé)控制虛擬機(jī)131,132,133,134的遷移過程。所述遷移控制系統(tǒng)121,122由交互模塊221,掃描模塊222,比較模塊223,壓縮模 塊224組成;交互模塊221,用于進(jìn)行虛擬機(jī)遷移過程中的交互過程,包括遷移請求的發(fā)起與接 受,內(nèi)存描述符與內(nèi)存數(shù)據(jù)的傳送;掃描模塊222,用于掃描虛擬機(jī)每個(gè)虛擬內(nèi)存頁面所對應(yīng)的機(jī)器內(nèi)存頁面,利用哈 希算法計(jì)算每個(gè)機(jī)器內(nèi)存頁面數(shù)據(jù)的哈希值,最終構(gòu)造一個(gè)虛擬機(jī)的內(nèi)存描述符;比較模塊223,用于比較需遷移的虛擬機(jī)與目標(biāo)機(jī)器是否存在內(nèi)容一致的內(nèi)存頁 面,通過掃描目標(biāo)節(jié)點(diǎn),每個(gè)機(jī)器頁面生成相應(yīng)的哈希值,并在源節(jié)點(diǎn)傳送的虛擬機(jī)內(nèi)存描 述符中查找是否有匹配的項(xiàng)目,若有匹配的項(xiàng)目則需要經(jīng)過采樣數(shù)據(jù)的進(jìn)一步驗(yàn)證,判斷 否為相同頁面,最終生成遷移虛擬機(jī)需要傳送的內(nèi)存頁面列表;壓縮模塊224,用于需傳送數(shù)據(jù)的壓縮與解壓縮,以減少傳輸數(shù)據(jù)量,提高傳輸速度。所述存儲(chǔ)系統(tǒng)105包含磁盤陣列104、存儲(chǔ)接口 103、一個(gè)或多個(gè)物理驅(qū)動(dòng)器和存 儲(chǔ)介質(zhì);所述存儲(chǔ)系統(tǒng)105可實(shí)現(xiàn)為存儲(chǔ)區(qū)域網(wǎng)(SAN)。所述磁盤陣列104包括多個(gè)磁盤邏輯單元(本例中為liml51_155),其各自由磁盤 陣列104對外呈現(xiàn)。一個(gè)磁盤邏輯單元可被映射到磁盤陣列104的一個(gè)或多個(gè)物理驅(qū)動(dòng)器 或存儲(chǔ)介質(zhì)。虛擬機(jī)可將磁盤陣列的磁盤邏輯單元映射為虛擬機(jī)的虛擬磁盤。所述存儲(chǔ)接口 103為磁盤陣列104提供訪問接口??杀粚?shí)現(xiàn)為對所述磁盤陣列
10104與所述通信網(wǎng)絡(luò)107提供通信支持的SAN交換機(jī)的。所述虛擬機(jī)的一個(gè)或多個(gè)虛擬驅(qū) 動(dòng)器可通過主機(jī)總線適配器111,通信網(wǎng)絡(luò)106,107,存儲(chǔ)接口 103之間的連接,映射到磁盤 陣列的一個(gè)或多個(gè)Iun上,每個(gè)Iim存儲(chǔ)相應(yīng)虛擬機(jī)的數(shù)據(jù)。所述通信網(wǎng)絡(luò)106,107為主計(jì)算機(jī)101,102以及存儲(chǔ)系統(tǒng)105之間提供通信支 持。通信網(wǎng)絡(luò)106和107用于主計(jì)算機(jī)101,102之間以及主計(jì)算機(jī)101,102與存儲(chǔ)系統(tǒng) 105之間的數(shù)據(jù)通信,可被實(shí)現(xiàn)為任何類型和協(xié)議的數(shù)據(jù)通信網(wǎng)絡(luò)。例如,在本示例中,通信 網(wǎng)絡(luò)106可被實(shí)現(xiàn)為千兆以太網(wǎng)絡(luò),通信網(wǎng)絡(luò)107可被實(shí)現(xiàn)為通過存儲(chǔ)接口 103連接到主 計(jì)算機(jī)101,102的光纖通道或iSCSI網(wǎng)絡(luò)。為實(shí)現(xiàn)上述目的,本發(fā)明提供一種面向內(nèi)存冗余的虛擬機(jī)遷移方法,包括五個(gè)步 驟,具體如下步驟一暫停源節(jié)點(diǎn)上需遷移虛擬機(jī)的運(yùn)行,掃描虛擬機(jī)內(nèi)存頁面并生成內(nèi)存描 述符,然后將內(nèi)存描述符發(fā)送到目標(biāo)節(jié)點(diǎn);第一主計(jì)算機(jī)101 (源節(jié)點(diǎn))的第一遷移控制系統(tǒng)121的交互模塊221通過第一 網(wǎng)絡(luò)適配器113經(jīng)由第一通信網(wǎng)絡(luò)106向第二主計(jì)算機(jī)102(目標(biāo)節(jié)點(diǎn))的第二遷移控制 系統(tǒng)122發(fā)起虛擬機(jī)遷移請求,得到回應(yīng)后,第一遷移控制系統(tǒng)121暫停第一虛擬機(jī)131的 運(yùn)行,并利用掃描模塊222掃描第一虛擬機(jī)131的內(nèi)存數(shù)據(jù),生成第一虛擬機(jī)131的內(nèi)存描 述符521并將其通過第一網(wǎng)絡(luò)適配器113經(jīng)由第一通信網(wǎng)絡(luò)106發(fā)送到第二主計(jì)算機(jī)102 ; 該第一虛擬機(jī)131的內(nèi)存描述符521主要包括虛擬機(jī)內(nèi)存的物理頁面序號,機(jī)器頁面序號, 由內(nèi)存頁面內(nèi)容生成的哈希值,以及32字節(jié)的內(nèi)存頁面內(nèi)容的數(shù)據(jù)采樣;具體掃描和生成第一虛擬機(jī)131的內(nèi)存描述符521的過程如下步驟101 內(nèi)存掃描模塊222首先找到第一虛擬機(jī)131的內(nèi)存頁表,初始化第一虛 擬機(jī)131的內(nèi)存描述符521 ;步驟102 根據(jù)第一虛擬機(jī)131內(nèi)存頁表,利用SuperFastHash哈希算法計(jì)算每個(gè) 虛擬內(nèi)存頁面所對應(yīng)的機(jī)器內(nèi)存頁面的內(nèi)容哈希值,然后將哈希值與其對應(yīng)的物理頁面序 號、機(jī)器頁面序號以及內(nèi)存頁面中32字節(jié)的驗(yàn)證信息一同保存到第一虛擬機(jī)131的內(nèi)存描 述符521中,SuperFastHash算法的實(shí)現(xiàn)見下;步驟103 將生成的第一虛擬機(jī)131的內(nèi)存 描述符521通過第一網(wǎng)絡(luò)適配器113經(jīng)由第一通信網(wǎng)絡(luò)106發(fā)送給第二主計(jì)算機(jī)102的第 二遷移控制系統(tǒng)122 ;步驟二目標(biāo)節(jié)點(diǎn)掃描本機(jī)內(nèi)存頁面并與需遷移虛擬機(jī)的內(nèi)存描述符比較,生成 需傳輸?shù)膬?nèi)存頁面列表并返回給源節(jié)點(diǎn);第二主計(jì)算機(jī)102得到第一虛擬機(jī)131的內(nèi)存描述符521后,通過第二遷移控制 系統(tǒng)122的比較模塊223,掃描本節(jié)點(diǎn)機(jī)器內(nèi)存頁面并與第一虛擬機(jī)131的內(nèi)存描述符521 進(jìn)行比較,進(jìn)而生成需要遷移的第一虛擬機(jī)131內(nèi)存的頁面列表622并通過第二網(wǎng)絡(luò)適配 器114經(jīng)由第一通信網(wǎng)絡(luò)106發(fā)送給第一主計(jì)算機(jī)101,具體比較流程如下步驟201 獲得第二主計(jì)算機(jī)102的機(jī)器頁面列表,初始化需遷移的頁面列表 622 ;步驟202 察看是否到達(dá)第二主計(jì)算機(jī)102機(jī)器頁面列表的末尾,否,則跳轉(zhuǎn)至步 驟203 ;是,則跳轉(zhuǎn)至步驟208 ;步驟203 獲得下一個(gè)要比較的第二主計(jì)算機(jī)102的內(nèi)存機(jī)器頁面;
步驟204 利用SuperFastHash哈希算法計(jì)算頁面內(nèi)容的哈希值;步驟205 在第一虛擬機(jī)131的內(nèi)存描述符521中查找是否有與步驟204計(jì)算所 得哈希值相匹配的項(xiàng)目,是,則跳轉(zhuǎn)至步驟206,否,則跳轉(zhuǎn)至步驟207 ;步驟206 進(jìn)一步利用內(nèi)存頁面驗(yàn)證數(shù)據(jù)檢測頁面內(nèi)容是否一致;是,則跳轉(zhuǎn)至步 驟202 ;否,則跳轉(zhuǎn)至步驟207 ;步驟207 將從內(nèi)存描述符521中獲得的當(dāng)前物理頁面序號加入需遷移的頁面列 表622中,跳轉(zhuǎn)至步驟202 ;步驟208 結(jié)束比較過程;步驟三源節(jié)點(diǎn)抽取內(nèi)存列表上的頁面并進(jìn)行壓縮后與虛擬機(jī)狀態(tài)信息一同傳送 給目標(biāo)節(jié)點(diǎn);第一主計(jì)算機(jī)101得到需遷移的第一虛擬機(jī)131頁面列表622后,第一遷移控制 系統(tǒng)121從第一主計(jì)算機(jī)101的內(nèi)存中提取需遷移的內(nèi)存頁面并利用壓縮模塊224對內(nèi)存 數(shù)據(jù)進(jìn)行壓縮,然后將經(jīng)過壓縮的數(shù)據(jù)通過第一網(wǎng)絡(luò)適配器113經(jīng)由第一通信網(wǎng)絡(luò)106傳 送給第二主計(jì)算機(jī)102 ;具體步驟如下步驟301 獲得需傳輸?shù)捻撁媪斜?22 ;步驟302 按照頁面列表622中物理頁面序號順序依次提取第一虛擬機(jī)131頁面 內(nèi)存的內(nèi)容,形成連續(xù)數(shù)據(jù)塊;步驟303 利用壓縮模塊224進(jìn)行內(nèi)存數(shù)據(jù)塊壓縮;步驟304 將壓縮后的數(shù)據(jù)與虛擬機(jī)131的狀態(tài)信息通過第一網(wǎng)絡(luò)適配器113經(jīng) 由第一通信網(wǎng)絡(luò)106傳輸給第二主計(jì)算機(jī)102的第二遷移控制系統(tǒng)122。步驟四目標(biāo)節(jié) 點(diǎn)解壓數(shù)據(jù),根據(jù)內(nèi)存內(nèi)容創(chuàng)建新的內(nèi)存頁面,并根據(jù)遷移虛擬機(jī)內(nèi)存描述符重新建立頁 面映射;第二主計(jì)算機(jī)102得到第一虛擬機(jī)131的內(nèi)存數(shù)據(jù)后,利用第二遷移控制系統(tǒng)122 的壓縮模塊224進(jìn)行數(shù)據(jù)解壓,并根據(jù)第一虛擬機(jī)131的內(nèi)存描述符521和內(nèi)存數(shù)據(jù)在第 二主計(jì)算機(jī)102上創(chuàng)建新的機(jī)器內(nèi)存頁面,并建立第一虛擬機(jī)131新的虛擬機(jī)物理頁面到 機(jī)器頁面的映射關(guān)系,具體步驟如下步驟401 第二主計(jì)算機(jī)102的第二遷移控制系統(tǒng)122通過第二網(wǎng)絡(luò)適配器114接 第二主計(jì)算機(jī)102傳送的經(jīng)過壓縮的第一虛擬機(jī)131內(nèi)存數(shù)據(jù)與虛擬機(jī)狀態(tài)信息;步驟402 第二主計(jì)算機(jī)102的第二遷移控制系統(tǒng)122的壓縮模塊224對內(nèi)存數(shù) 據(jù)進(jìn)行解壓縮;步驟403 第二主計(jì)算機(jī)102的第二遷移控制系統(tǒng)122為第一虛擬機(jī)131分配新的 機(jī)器頁面,并根據(jù)第一虛擬機(jī)131的內(nèi)存數(shù)據(jù)和頁面列表622來創(chuàng)建新的機(jī)器內(nèi)存頁面;步驟404 第二遷移控制系統(tǒng)122根據(jù)第一虛擬機(jī)131的內(nèi)存描述符521,為第一 虛擬機(jī)131的物理頁面與第二主計(jì)算機(jī)102的機(jī)器頁面建立新的頁面映射關(guān)系;步驟405 最后載入第一虛擬機(jī)131的狀態(tài)信息,等待運(yùn)行。步驟五更改遷移虛 擬機(jī)的虛擬驅(qū)動(dòng)器到磁盤陣列的映射關(guān)系,啟動(dòng)虛擬機(jī)運(yùn)行。取消第一主計(jì)算機(jī)101上第一虛擬機(jī)131的第一虛擬驅(qū)動(dòng)器141經(jīng)由第二通信網(wǎng) 絡(luò)107到磁盤陣列104的Iiml52的映射關(guān)系,同時(shí)在第二主計(jì)算機(jī)102上建立新的第一虛擬機(jī)131的第一虛擬驅(qū)動(dòng)器141經(jīng)由第二通信網(wǎng)絡(luò)107到磁盤陣列104的Iiml52的映射 關(guān)系,最后銷毀原第一主計(jì)算機(jī)101上的第一虛擬機(jī)131以回收資源,并啟動(dòng)第二主計(jì)算機(jī) 102上第一虛擬機(jī)131的運(yùn)行,遷移過程結(jié)束。 最后應(yīng)說明的是以上實(shí)施例僅用于說明本發(fā)明的技術(shù)方案而非對其進(jìn)行限制。 對于本發(fā)明實(shí)施例進(jìn)行的修改和等同替換不能使修改后的技術(shù)放案脫離本發(fā)明技術(shù)方案 的保護(hù)范圍。
權(quán)利要求
1. 一種面向內(nèi)存冗余的虛擬機(jī)遷移裝置,其特征在于包括 第一主計(jì)算機(jī)和第二計(jì)算機(jī)、存儲(chǔ)系統(tǒng)和通信網(wǎng)絡(luò);所述第一主計(jì)算機(jī)和第二主計(jì)算機(jī)包括處理器、輸入設(shè)備、第一主機(jī)總線適配器、第二 主機(jī)總線適配器、通信接口和計(jì)算機(jī)存儲(chǔ)介質(zhì);所述處理器負(fù)責(zé)控制第一主計(jì)算機(jī)和第二主計(jì)算機(jī),并與所述的輸入設(shè)備、第一主機(jī) 總線適配器、第二主機(jī)總線適配器、通信接口和計(jì)算機(jī)存儲(chǔ)介質(zhì)連接;所述計(jì)算機(jī)存儲(chǔ)介質(zhì) 中的應(yīng)用程序和數(shù)據(jù)由所述處理器讀取和執(zhí)行,并通過所述第一主機(jī)總線適配器、第二主 機(jī)總線適配器和所述通信接口傳輸?shù)饺魏瓮獠吭O(shè)備; 所述輸入設(shè)備用于數(shù)據(jù)以及指令的輸入;所述第一主機(jī)總線適配器和第二主機(jī)總線適配器用于連接磁盤陣列; 所述通信接口用于連接外部網(wǎng)絡(luò)通信設(shè)備;所述計(jì)算機(jī)存儲(chǔ)介質(zhì)包括第一遷移控制系統(tǒng)、第二遷移控制系統(tǒng)、第一虛擬機(jī)監(jiān)控器、 第二虛擬機(jī)監(jiān)控器、虛擬機(jī)和應(yīng)用程序;所述計(jì)算機(jī)存儲(chǔ)介質(zhì)用于儲(chǔ)存程序指令以及數(shù)據(jù),包括隨機(jī)存儲(chǔ)器和非易失性存儲(chǔ) 器;并由所述處理器執(zhí)行實(shí)現(xiàn)虛擬機(jī)遷移過程;所述第一主計(jì)算機(jī)上的三個(gè)虛擬機(jī)由第一虛擬機(jī)監(jiān)控器管理,且每個(gè)虛擬機(jī)具有一個(gè) 或多個(gè)與之相關(guān)聯(lián)的虛擬驅(qū)動(dòng)器,各虛擬驅(qū)動(dòng)器通過第一主計(jì)算機(jī)的第一主機(jī)總線適配器 映射到第二通信網(wǎng)絡(luò)連接的磁盤陣列的磁盤邏輯單元上;虛擬機(jī)的虛擬磁盤訪問被映射為 通過第二通信網(wǎng)絡(luò)對磁盤陣列上文件的訪問;第一遷移控制系統(tǒng)為第一虛擬機(jī)監(jiān)控器的輔 助組件,控制虛擬機(jī)遷移的整個(gè)過程,第一遷移控制系統(tǒng)利用第一網(wǎng)絡(luò)適配器通過第一通 信網(wǎng)絡(luò)與第二主計(jì)算機(jī)上的第二遷移控制系統(tǒng)交互,進(jìn)而實(shí)現(xiàn)虛擬機(jī)內(nèi)存數(shù)據(jù)和狀態(tài)信息 的傳輸;所述第一虛擬機(jī)監(jiān)控器和第二虛擬機(jī)監(jiān)控器直接運(yùn)行在硬件之上,為虛擬機(jī)提供虛擬 的硬件執(zhí)行環(huán)境;所述虛擬機(jī)為所述應(yīng)用程序提供虛擬的操作系統(tǒng)執(zhí)行環(huán)境;所述應(yīng)用程 序在所述虛擬機(jī)執(zhí)行效果同真實(shí)操作系統(tǒng)環(huán)境相同;所述第一遷移控制系統(tǒng)和第二遷移控 制系統(tǒng)負(fù)責(zé)控制虛擬機(jī)的遷移過程;所述第一遷移控制系統(tǒng)和第二遷移控制系統(tǒng)由交互模塊,掃描模塊,比較模塊,壓縮模 塊組成;交互模塊,用于進(jìn)行虛擬機(jī)遷移過程中的交互過程,包括遷移請求的發(fā)起與接受,內(nèi)存 描述符與內(nèi)存數(shù)據(jù)的傳送;掃描模塊,用于掃描虛擬機(jī)每個(gè)虛擬內(nèi)存頁面所對應(yīng)的機(jī)器內(nèi)存頁面,利用哈希算法 計(jì)算每個(gè)機(jī)器內(nèi)存頁面數(shù)據(jù)的哈希值,最終構(gòu)造一個(gè)虛擬機(jī)的內(nèi)存描述符;比較模塊,用于比較需遷移的虛擬機(jī)與目標(biāo)機(jī)器是否存在內(nèi)容一致的內(nèi)存頁面,通過 掃描目標(biāo)節(jié)點(diǎn),每個(gè)機(jī)器頁面生成相應(yīng)的哈希值,并在源節(jié)點(diǎn)傳送的虛擬機(jī)內(nèi)存描述符中 查找是否有匹配的項(xiàng)目,若有匹配的項(xiàng)目則需要經(jīng)過采樣數(shù)據(jù)的進(jìn)一步驗(yàn)證,判斷否為相 同頁面,最終生成遷移虛擬機(jī)需要傳送的內(nèi)存頁面列表;壓縮模塊,用于需傳送數(shù)據(jù)的壓縮與解壓縮,以減少傳輸數(shù)據(jù)量,提高傳輸速度; 所述存儲(chǔ)系統(tǒng)包含磁盤陣列、存儲(chǔ)接口、一個(gè)或多個(gè)物理驅(qū)動(dòng)器和存儲(chǔ)介質(zhì);所述存儲(chǔ) 系統(tǒng)實(shí)現(xiàn)為存儲(chǔ)區(qū)域網(wǎng);所述磁盤陣列包括多個(gè)磁盤邏輯單元,其各自由磁盤陣列對外呈現(xiàn);一個(gè)磁盤邏輯單 元被映射到磁盤陣列的一個(gè)或多個(gè)物理驅(qū)動(dòng)器或存儲(chǔ)介質(zhì);虛擬機(jī)將磁盤陣列的磁盤邏輯 單元映射為虛擬機(jī)的虛擬磁盤;所述存儲(chǔ)接口為磁盤陣列提供 訪問接口 ;被實(shí)現(xiàn)為對所述磁盤陣列與所述第二通信網(wǎng) 絡(luò)提供通信支持的SAN交換機(jī)的;所述虛擬機(jī)的一個(gè)或多個(gè)虛擬驅(qū)動(dòng)器通過第一主機(jī)總線 適配器、第一通信網(wǎng)絡(luò)和第二通信網(wǎng)絡(luò)和存儲(chǔ)接口之間的連接,映射到磁盤陣列的一個(gè)或 多個(gè)Iim上,每個(gè)Iim存儲(chǔ)相應(yīng)虛擬機(jī)的數(shù)據(jù);所述第一通信網(wǎng)絡(luò)和第二通信網(wǎng)絡(luò)為第一主計(jì)算機(jī)和第二主計(jì)算機(jī)以及存儲(chǔ)系統(tǒng)之 間提供通信支持;第一通信網(wǎng)絡(luò)和第二通信網(wǎng)絡(luò)用于第一主計(jì)算機(jī)和第二主計(jì)算機(jī)之間以 及第一主計(jì)算機(jī)和第二主計(jì)算機(jī)與存儲(chǔ)系統(tǒng)之間的數(shù)據(jù)通信,被實(shí)現(xiàn)為任何類型和協(xié)議的 數(shù)據(jù)通信網(wǎng)絡(luò);例如,在本示例中,第一通信網(wǎng)絡(luò)被實(shí)現(xiàn)為千兆以太網(wǎng)絡(luò),第二通信網(wǎng)絡(luò)被 實(shí)現(xiàn)為通過存儲(chǔ)接口連接到第一主計(jì)算機(jī)和第二主計(jì)算機(jī)的光纖通道或iSCSI網(wǎng)絡(luò)。
2. 一種面向內(nèi)存冗余的虛擬機(jī)遷移方法,其特征在于,包含下述步驟 步驟一暫停源節(jié)點(diǎn)上需遷移虛擬機(jī)的運(yùn)行,掃描虛擬機(jī)內(nèi)存頁面并生成內(nèi)存描述符, 然后將內(nèi)存描述符發(fā)送到目標(biāo)節(jié)點(diǎn);第一主計(jì)算機(jī),即為源節(jié)點(diǎn)的第一遷移控制系統(tǒng)的交互模塊通過第一網(wǎng)絡(luò)適配器經(jīng)由 第一通信網(wǎng)絡(luò)向第二主計(jì)算機(jī),即為目標(biāo)節(jié)點(diǎn)的第二遷移控制系統(tǒng)發(fā)起虛擬機(jī)遷移請求, 得到回應(yīng)后,第一遷移控制系統(tǒng)暫停第一虛擬機(jī)的運(yùn)行,并利用掃描模塊掃描第一虛擬機(jī) 的內(nèi)存數(shù)據(jù),生成第一虛擬機(jī)的內(nèi)存描述符并將其通過第一網(wǎng)絡(luò)適配器經(jīng)由第一通信網(wǎng)絡(luò) 發(fā)送到第二主計(jì)算機(jī);該第一虛擬機(jī)的內(nèi)存描述符主要包括虛擬機(jī)內(nèi)存的物理頁面序號, 機(jī)器頁面序號,由內(nèi)存頁面內(nèi)容生成的哈希值,以及32字節(jié)的內(nèi)存頁面內(nèi)容的數(shù)據(jù)采樣;步驟二 目標(biāo)節(jié)點(diǎn)掃描本機(jī)內(nèi)存頁面并與需遷移虛擬機(jī)的內(nèi)存描述符比較,生成需傳 輸?shù)膬?nèi)存頁面列表并返回給源節(jié)點(diǎn);第二主計(jì)算機(jī)得到第一虛擬機(jī)的內(nèi)存描述符后,通過第二遷移控制系統(tǒng)的比較模塊, 掃描本節(jié)點(diǎn)機(jī)器內(nèi)存頁面并與第一虛擬機(jī)的內(nèi)存描述符進(jìn)行比較,進(jìn)而生成需要遷移的 第一虛擬機(jī)內(nèi)存的頁面列表并通過第二網(wǎng)絡(luò)適配器經(jīng)由第一通信網(wǎng)絡(luò)發(fā)送給第一主計(jì)算 機(jī);步驟三源節(jié)點(diǎn)抽取內(nèi)存列表上的頁面并進(jìn)行壓縮后與虛擬機(jī)狀態(tài)信息一同傳送給目 標(biāo)節(jié)點(diǎn);第一主計(jì)算機(jī)得到需遷移的第一虛擬機(jī)頁面列表后,第一遷移控制系統(tǒng)從第一主計(jì)算 機(jī)的內(nèi)存中提取需遷移的內(nèi)存頁面并利用壓縮模塊對內(nèi)存數(shù)據(jù)進(jìn)行壓縮,然后將經(jīng)過壓縮 的數(shù)據(jù)通過第一網(wǎng)絡(luò)適配器經(jīng)由第一通信網(wǎng)絡(luò)傳送給第二主計(jì)算機(jī);步驟四目標(biāo)節(jié)點(diǎn)解壓數(shù)據(jù),根據(jù)內(nèi)存內(nèi)容創(chuàng)建新的內(nèi)存頁面,并根據(jù)遷移虛擬機(jī)內(nèi)存 描述符重新建立頁面映射;第二主計(jì)算機(jī)得到第一虛擬機(jī)的內(nèi)存數(shù)據(jù)后,利用第二遷移控制系統(tǒng)的壓縮模塊進(jìn)行 數(shù)據(jù)解壓,并根據(jù)第一虛擬機(jī)的內(nèi)存描述符和內(nèi)存數(shù)據(jù)在第二主計(jì)算機(jī)上創(chuàng)建新的機(jī)器內(nèi) 存頁面,并建立第一虛擬機(jī)新的虛擬機(jī)物理頁面到機(jī)器頁面的映射關(guān)系;步驟五更改遷移虛擬機(jī)的虛擬驅(qū)動(dòng)器到磁盤陣列的映射關(guān)系,啟動(dòng)虛擬機(jī)運(yùn)行; 取消第一主計(jì)算機(jī)上第一虛擬機(jī)的第一虛擬驅(qū)動(dòng)器經(jīng)由第二通信網(wǎng)絡(luò)到磁盤陣列的Iunl52的映射關(guān)系,同時(shí)在第 二主計(jì)算機(jī)上建立新的第一虛擬機(jī)的第一虛擬驅(qū)動(dòng)器經(jīng)由第 二通信網(wǎng)絡(luò)到磁盤陣列的Uml52的映射關(guān)系,最后銷毀原第一主計(jì)算機(jī)上的第一虛擬機(jī) 以回收資源,并啟動(dòng)第二主計(jì)算機(jī)上第一虛擬機(jī)的運(yùn)行,遷移過程結(jié)束。
全文摘要
本發(fā)明公開一種面向內(nèi)存冗余的虛擬機(jī)遷移裝置和方法,包括利用數(shù)據(jù)中心整合帶有內(nèi)存數(shù)據(jù)冗余虛擬機(jī)的特性,在虛擬機(jī)進(jìn)行正式遷移前,掃描獲得需遷移虛擬機(jī)內(nèi)存描述信息;將內(nèi)存描述信息與目標(biāo)節(jié)點(diǎn)內(nèi)存頁面進(jìn)行對比,得到需要遷移的部分內(nèi)存頁面列表;根據(jù)得到的內(nèi)存頁面列表取消冗余內(nèi)存的傳輸,同時(shí)利用數(shù)據(jù)壓縮技術(shù)減少遷移是的數(shù)據(jù)傳輸量。因而,能夠在以節(jié)省數(shù)據(jù)中心內(nèi)存資源為目的的虛擬機(jī)遷移過程中盡量降低網(wǎng)絡(luò)的負(fù)載,提高數(shù)據(jù)中心整體的資源利用率。
文檔編號H04L29/06GK102103524SQ201010603168
公開日2011年6月22日 申請日期2010年12月23日 優(yōu)先權(quán)日2010年12月23日
發(fā)明者豐瑾, 張振中, 王海燕, 祝明發(fā), 肖利民, 趙彬, 阮利 申請人:北京航空航天大學(xué)