專利名稱:一種虛擬機(jī)到虛擬機(jī)熱遷移的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信領(lǐng)域中的虛擬機(jī)管理技木,尤其涉及一種虛擬機(jī)到虛擬機(jī)熱遷移的方法及裝置。
背景技術(shù):
虛擬機(jī)指通過在物理設(shè)備中安裝虛擬機(jī)管理軟件(Hypervisor),由Hypervisor模擬出ー個或多個具有完整硬件系統(tǒng)功能的、運(yùn)行在ー個完全隔離環(huán)境中的完整系統(tǒng)。虛擬機(jī)的熱遷移是虛擬機(jī)應(yīng)用中的ー個重要技術(shù),虛擬機(jī)的熱遷移有物理設(shè)備到虛擬機(jī)的熱遷移、虛擬機(jī)到虛擬機(jī)的熱遷移和虛擬機(jī)到物理設(shè)備的熱遷移;其中虛擬機(jī)到虛擬機(jī)的熱 遷移為將源虛擬機(jī)的物理內(nèi)存及運(yùn)行狀態(tài)完全拷貝到目的虛擬機(jī)。上述虛擬機(jī)到虛擬機(jī)的熱遷移,將源虛擬機(jī)對應(yīng)的物理內(nèi)存包括無效內(nèi)存,全部從源虛擬機(jī)拷貝到目的虛擬機(jī)。上述源虛擬機(jī)對應(yīng)的物理內(nèi)存,是由Hypervisor為虛擬機(jī)的虛擬內(nèi)存分配一定的物理內(nèi)存,比如,如圖I所示,Hypervisor為虛擬機(jī)I、虛擬機(jī)2和虛擬機(jī)3的虛擬內(nèi)存分別分配物理設(shè)備中一定的物理內(nèi)存;所述無效內(nèi)存,為分配給虛擬機(jī)但是沒有使用的物理內(nèi)存為無效內(nèi)存,比如,如圖2所示,虛擬機(jī)3中虛擬內(nèi)存中運(yùn)行了進(jìn)程I、進(jìn)程2和進(jìn)程3,每個在虛擬內(nèi)存中運(yùn)行的進(jìn)程占用部分實(shí)際的物理內(nèi)存,其余分配給虛擬機(jī)3、卻沒有使用的物理內(nèi)存為無效內(nèi)存。但是,使用上述虛擬機(jī)到虛擬機(jī)的熱遷移,由于在拷貝時會拷貝部分無效內(nèi)存,如此,就浪費(fèi)了熱遷移過程所需的時間??梢?,目前已有的虛擬機(jī)到虛擬機(jī)的熱遷移方法,由于在進(jìn)行熱遷移時沒有對物理內(nèi)存是否無效進(jìn)行區(qū)分,而是將物理內(nèi)存進(jìn)行全部拷貝,如此浪費(fèi)了熱遷移過程所需的時間,進(jìn)而無法提高虛擬機(jī)熱遷移的效率。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的在于提供一種虛擬機(jī)到虛擬機(jī)熱遷移的方法及裝置,減少熱遷移過程所需的時間,進(jìn)而提高虛擬機(jī)到虛擬機(jī)熱遷移的效率。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的本發(fā)明提供了一種虛擬機(jī)到虛擬機(jī)熱遷移的裝置,該裝置包括內(nèi)存統(tǒng)計模塊和內(nèi)存遷移模塊;其中,內(nèi)存統(tǒng)計模塊,用于收到確定開始熱遷移的通知后,根據(jù)進(jìn)程控制表及內(nèi)存映射表確定源虛擬機(jī)的初始拷貝內(nèi)存,將初始拷貝內(nèi)存的地址發(fā)送給內(nèi)存遷移模塊;內(nèi)存遷移模塊,用于根據(jù)內(nèi)存統(tǒng)計模塊發(fā)來的初始拷貝內(nèi)存的地址,將對應(yīng)的初始拷貝內(nèi)存拷貝到目的虛擬機(jī)。上述方案中,所述內(nèi)存統(tǒng)計模塊,具體用于將進(jìn)程控制表中記錄的所有進(jìn)程對應(yīng)的虛擬地址作為源虛擬機(jī)的初始拷貝內(nèi)存的虛擬地址,再根據(jù)內(nèi)存映射表確定所述源虛擬機(jī)的初始拷貝內(nèi)存的虛擬地址對應(yīng)的物理內(nèi)存地址,該物理內(nèi)存地址作為源虛擬機(jī)的初始拷貝的內(nèi)存的地址。
上述方案中,所述裝置還包括內(nèi)存變化監(jiān)視模塊,用于判斷是否開始拷貝剩余的變化內(nèi)存,如果不是,則將上一次拷貝過程中發(fā)生變化的內(nèi)存地址發(fā)送給內(nèi)存遷移模塊,繼續(xù)判斷是否開始拷貝剩余的變化內(nèi)存;否則,將源虛擬機(jī)剩余的變化內(nèi)存的地址及運(yùn)行狀態(tài)發(fā)送給內(nèi)存遷移模塊;相應(yīng)的,所述內(nèi)存遷移模塊,還用于接收內(nèi)存變化監(jiān)視模塊發(fā)來的上一次拷貝過程中發(fā)生變化的內(nèi)存地址,將對應(yīng)的在上一次拷貝過程中發(fā)生變化的內(nèi)存從源虛擬機(jī)拷貝到目的虛擬機(jī),或者,接收內(nèi)存變化監(jiān)視模塊發(fā)來的源虛擬機(jī)剩余的變化內(nèi)存的地址及運(yùn)行狀態(tài),將對應(yīng)的源虛擬機(jī)剩余的變化內(nèi)存及運(yùn)行狀態(tài)拷貝到目的虛擬機(jī)。上述方案中,所述內(nèi)存變化監(jiān)視模塊,具體用于根據(jù)循環(huán)次數(shù)或拷貝時長判斷是 否開始拷貝剩余的變化內(nèi)存。上述方案中,所述裝置還包括虛擬機(jī)管理模塊,用于運(yùn)行Hypervisor,并實(shí)時產(chǎn)生源虛擬機(jī)的進(jìn)程控制表和內(nèi)存映射表,以及為內(nèi)存統(tǒng)計模塊提供進(jìn)程控制表和內(nèi)存映射表,及通知內(nèi)存統(tǒng)計模塊確定開始熱遷移;相應(yīng)的,所述內(nèi)存統(tǒng)計模塊,具體用于收到虛擬機(jī)管理模塊發(fā)來的確定開始熱遷移的通知后,從虛擬機(jī)管理模塊獲取源虛擬機(jī)的進(jìn)程控制表和內(nèi)存映射表。本發(fā)明還提供了一種虛擬機(jī)到虛擬機(jī)熱遷移的方法,該方法包括確定開始熱遷移后,根據(jù)進(jìn)程控制表及內(nèi)存映射表確定源虛擬機(jī)的初始拷貝內(nèi)存;將所述源虛擬機(jī)的初始拷貝內(nèi)存拷貝到目的虛擬機(jī)。上述方案中,所述根據(jù)進(jìn)程控制表及內(nèi)存映射表確定源虛擬機(jī)的初始拷貝內(nèi)存,包括將進(jìn)程控制表中記錄的所有進(jìn)程對應(yīng)的虛擬地址作為源虛擬機(jī)的初始拷貝內(nèi)存的虛擬地址,再根據(jù)內(nèi)存映射表確定所述源虛擬機(jī)的初始拷貝內(nèi)存的虛擬地址對應(yīng)的物理內(nèi)存地址,該物理內(nèi)存地址中的內(nèi)存即源虛擬機(jī)的初始拷貝的內(nèi)存。上述方案中,所述將所述源虛擬機(jī)的初始拷貝內(nèi)存拷貝到目的虛擬機(jī)之后,該方法還包括判斷是否開始拷貝剩余的變化內(nèi)存,如果不是,則將上一次拷貝過程中發(fā)生變化的內(nèi)存從源虛擬機(jī)拷貝到目的虛擬機(jī),繼續(xù)判斷是否開始拷貝剩余的變化內(nèi)存;否則,將源虛擬機(jī)剩余的變化內(nèi)存及運(yùn)行狀態(tài)的拷貝到目的虛擬機(jī)。上述方案中,所述判斷是否開始拷貝剩余的變化內(nèi)存,為根據(jù)循環(huán)次數(shù)或拷貝時長進(jìn)行判斷。上述方案中,所述確定開始熱遷移之前,該方法還包括運(yùn)行Hypervisor,實(shí)時產(chǎn)生源虛擬機(jī)的進(jìn)程控制表和內(nèi)存映射表,并確定開始熱遷移。本發(fā)明所提供的虛擬機(jī)到虛擬機(jī)熱遷移的方法及裝置,具有以下的優(yōu)點(diǎn)和特點(diǎn)由于源虛擬機(jī)的初始拷貝內(nèi)存是通過根據(jù)進(jìn)程控制表及內(nèi)存映射表確定得到的,因此,不需要拷貝無效內(nèi)存,以此來減少虛擬機(jī)到虛擬機(jī)熱遷移時初次拷貝的內(nèi)存,如此,就可以減少熱遷移過程所需的時間,進(jìn)而提高虛擬機(jī)到虛擬機(jī)熱遷移的效率。
圖I為Hypervisor為虛擬機(jī)的虛擬內(nèi)存分配對應(yīng)的物理內(nèi)存的示意圖;圖2為虛擬機(jī)中運(yùn)行的進(jìn)程占用的物理內(nèi)存的示意圖3為本發(fā)明虛擬機(jī)到虛擬機(jī)熱遷移的裝置的組成結(jié)構(gòu)示意圖;圖4為進(jìn)程控制表示意圖;圖5為內(nèi)存映射表不意圖;圖6為本發(fā)明虛擬機(jī)到虛擬機(jī)熱遷移的方法流程示意圖。
具體實(shí)施例方式本發(fā)明的基本思想是確定開始熱遷移后,根據(jù)進(jìn)程控制表及內(nèi)存映射表確定源 虛擬機(jī)的初始拷貝內(nèi)存;將該初始拷貝內(nèi)存從源虛擬機(jī)拷貝到目的虛擬機(jī)。下面結(jié)合附圖及具體實(shí)施例對本發(fā)明再作進(jìn)ー步詳細(xì)的說明。本發(fā)明提供了一種虛擬機(jī)到虛擬機(jī)熱遷移的裝置,如圖3所示,該裝置包括內(nèi)存統(tǒng)計模塊11和內(nèi)存遷移模塊12 ;其中,內(nèi)存統(tǒng)計模塊11,用于收到確定開始熱遷移的通知后,根據(jù)進(jìn)程控制表及內(nèi)存映射表確定源虛擬機(jī)的初始拷貝內(nèi)存,將初始拷貝內(nèi)存的地址發(fā)送給內(nèi)存遷移模塊12 ;內(nèi)存遷移模塊12,用于根據(jù)內(nèi)存統(tǒng)計模塊11發(fā)來的初始拷貝內(nèi)存的地址,將對應(yīng)的初始拷貝內(nèi)存拷貝到目的虛擬機(jī)。所述裝置,還包括虛擬機(jī)管理模塊13,用于安裝及運(yùn)行Hypervisor, Hypervisor判斷其管理的虛擬機(jī)是否有任意一個虛擬機(jī)需要熱遷移,若有,則將該虛擬機(jī)作為源虛擬機(jī),并確定目的虛擬機(jī),通知內(nèi)存統(tǒng)計模塊11確定開始熱遷移;相應(yīng)的,所述內(nèi)存統(tǒng)計模塊11,還用于接收虛擬機(jī)管理模塊13發(fā)來的確定開始熱遷移的通知;其中,所述Hypervisor判斷其管理的虛擬機(jī)是否有任意一個虛擬機(jī)需要熱遷移,為已有技木,這里不做贅述;所述確定目的虛擬機(jī),為已有技木,這里不做贅述。所述虛擬機(jī)管理模塊13,還用于在Hypervisor運(yùn)行過程中,實(shí)時產(chǎn)生源虛擬機(jī)的進(jìn)程控制表和內(nèi)存映射表,以及為內(nèi)存統(tǒng)計模塊11提供進(jìn)程控制表和內(nèi)存映射表;相應(yīng)的,所述內(nèi)存統(tǒng)計模塊11,具體用于收到確定開始熱遷移的通知后,從虛擬機(jī)管理模塊13獲取源虛擬機(jī)的進(jìn)程控制表和內(nèi)存映射表,將進(jìn)程控制表中記錄的所有進(jìn)程對應(yīng)的虛擬地址作為源虛擬機(jī)的初始拷貝內(nèi)存的虛擬地址,再根據(jù)內(nèi)存映射表確定上述源虛擬機(jī)的初始拷貝內(nèi)存的虛擬地址所對應(yīng)的物理內(nèi)存地址,該查找到的物理內(nèi)存地址確定為源虛擬機(jī)的初始拷貝內(nèi)存的地址;其中,所述進(jìn)程控制表,如圖4所示,由虛擬機(jī)當(dāng)前運(yùn)行的進(jìn)程的編號及運(yùn)行的進(jìn)程對應(yīng)的虛擬地址組成,進(jìn)程控制表為Hypervisor運(yùn)行時產(chǎn)生的列表,產(chǎn)生方法為已有技木,這里不做贅述;所述內(nèi)存映射表,如圖5所示,由虛擬地址及各個虛擬地址對應(yīng)的物理內(nèi)存地址組成,內(nèi)存映射表為Hypervisor運(yùn)行時產(chǎn)生的列表,產(chǎn)生方法為已有技術(shù),這里不做贅述。所述裝置,還包括內(nèi)存變化監(jiān)視模塊14,用于收到內(nèi)存統(tǒng)計模塊11發(fā)來的開始監(jiān)視源虛擬機(jī)發(fā)生變化的內(nèi)存的通知后,從虛擬機(jī)管理模塊13中獲取當(dāng)前內(nèi)存映射表作為熱遷移前的內(nèi)存映射表進(jìn)行保存;相應(yīng)的,所述內(nèi)存統(tǒng)計模塊11,具體用于將源虛擬機(jī)的初始拷貝內(nèi)存的地址發(fā)送給內(nèi)存遷移模塊12時,通知內(nèi)存變化監(jiān)視模塊14開始監(jiān)視源虛擬機(jī)發(fā)生變化的內(nèi)存;所述虛擬機(jī)管理模塊13,還用于為內(nèi)存變化監(jiān)視模塊14提供當(dāng)前的內(nèi)存映射表。
所述內(nèi)存遷移模塊12,還用于完成將初始拷貝內(nèi)存拷貝到目的虛擬機(jī)時,通知內(nèi)存變化監(jiān)視模塊14開始判斷是否開始拷貝剩余的變化內(nèi)存;相應(yīng)的,所述內(nèi)存變化監(jiān)視模塊14,還用于在收到內(nèi)存遷移模塊12發(fā)來的開始判斷是否開始拷貝剩余的變化內(nèi)存的通知后,判斷是否開始拷貝剩余的變化內(nèi)存,如果不開始拷貝剩余的變化內(nèi)存,則統(tǒng)計源虛擬機(jī)在上一次拷貝過程中發(fā)生變化的內(nèi)存地址并發(fā)送給內(nèi)存遷移模塊12,否則,統(tǒng)計源虛擬機(jī)剩余的變化內(nèi)存的地址及源虛擬機(jī)運(yùn)行狀態(tài)并發(fā)送給內(nèi)存遷移模塊12。所述內(nèi)存變化監(jiān)視模塊14,具體用于根據(jù)預(yù)置的判斷方式進(jìn)行判斷是否開始拷貝剩余的變化內(nèi)存;其中,所述判斷方式,可以為根據(jù)循環(huán)次數(shù)來判斷,也可以根據(jù)拷貝時長來判斷;具體的當(dāng)判斷方式為根據(jù)循環(huán)次數(shù)判斷時,所述內(nèi)存變化監(jiān)視模塊14,收到開始監(jiān)視源 虛擬機(jī)發(fā)生變化的內(nèi)存通知時,設(shè)置循環(huán)次數(shù)為O ;每次收到開始判斷是否拷貝變化的內(nèi)存通知時,判斷循環(huán)次數(shù)是否小于預(yù)置的循環(huán)門限,若小于,則判定為不開始拷貝剩余的變化內(nèi)存、且將循環(huán)次數(shù)加一,否則判定為開始拷貝剩余的變化內(nèi)存;所述循環(huán)門限,為根據(jù)實(shí)際情況預(yù)置,比如預(yù)置為30次;當(dāng)判斷方式為根據(jù)拷貝時長判斷時,所述內(nèi)存變化監(jiān)視模塊14,根據(jù)內(nèi)存遷移模塊12發(fā)來的開始拷貝的通知以及開始判斷是否開始拷貝剩余的變化內(nèi)存的通知,兩個通知之間的時長確定為每次拷貝時長,判斷每次拷貝時長是否小于時長門限,若不小于,則判定為不開始拷貝剩余的變化內(nèi)存,否則,判定為開始拷貝剩余的變化內(nèi)存;相應(yīng)的,所述內(nèi)存遷移模塊12,還可以在每次將發(fā)生變化的內(nèi)存從源虛擬機(jī)拷貝到目的虛擬機(jī)開始時,向內(nèi)存變化監(jiān)視模塊14發(fā)送開始拷貝的通知;其中,所述時長門限,為根據(jù)實(shí)際情況預(yù)置的時長,比如,可以預(yù)置為5ms。所述內(nèi)存變化監(jiān)視模塊14,具體用于統(tǒng)計源虛擬機(jī)在上一次拷貝過程中發(fā)生變化的內(nèi)存時,提取虛擬機(jī)管理模塊13中當(dāng)前的內(nèi)存映射表、與自身保存的熱遷移前的內(nèi)存映射表進(jìn)行比較,統(tǒng)計發(fā)生變化的內(nèi)存的地址,將發(fā)生變化的內(nèi)存的地址發(fā)送給內(nèi)存遷移模塊12,并將提取的當(dāng)前內(nèi)存映射表替換原熱遷移前的內(nèi)存映射表進(jìn)行保存;相應(yīng)的,所述內(nèi)存遷移模塊12,具體用于接收內(nèi)存變化監(jiān)視模塊14發(fā)來的發(fā)生變化的內(nèi)存的地址,將對應(yīng)的發(fā)生變化的內(nèi)存從源虛擬機(jī)拷貝到目的虛擬機(jī),再次通知內(nèi)存變化監(jiān)視模塊14開始判斷是否拷貝變化的內(nèi)存。所述內(nèi)存變化監(jiān)視模塊14,具體用于統(tǒng)計源虛擬機(jī)剩余的變化內(nèi)存的地址及源虛擬機(jī)運(yùn)行狀態(tài)時,將源虛擬機(jī)當(dāng)前的內(nèi)存映射表與保存的熱遷移前的內(nèi)存映射表進(jìn)行比較,統(tǒng)計出發(fā)生變化的物理內(nèi)存地址作為剩余的變化內(nèi)存的地址,以及從虛擬機(jī)管理模塊13獲取源虛擬機(jī)運(yùn)行狀態(tài)信息,將剩余的變化內(nèi)存的地址及源虛擬機(jī)運(yùn)行狀態(tài)發(fā)送給內(nèi)存遷移模塊12 ;相應(yīng)的,所述虛擬機(jī)管理模塊13,還用于利用Hypervisor記錄各個管理的虛擬機(jī)的運(yùn)行狀態(tài),以及為內(nèi)存變化監(jiān)視模塊14提供源虛擬機(jī)運(yùn)行狀態(tài)信息;所述內(nèi)存遷移模塊12,具體用于接收內(nèi)存變化監(jiān)視模塊14發(fā)來的剩余的變化內(nèi)存的地址及源虛擬機(jī)運(yùn)行狀態(tài),將對應(yīng)的剩余的變化內(nèi)存及源虛擬機(jī)運(yùn)行狀態(tài)發(fā)送給目的虛擬機(jī);所述源虛擬機(jī)運(yùn)行狀態(tài),為已有的熱遷移技術(shù)中規(guī)定的熱遷移內(nèi)容,其獲取方法為已有技術(shù),這里不做贅述。上述虛擬機(jī)到虛擬機(jī)熱遷移的裝置,可以作為基于對Hypervisor作出修改后得到的軟件,安裝在任何能夠運(yùn)行Hypervisor的物理設(shè)備中,比如,數(shù)據(jù)中心的服務(wù)器。如圖6所示,本發(fā)明提供了一種虛擬機(jī)到虛擬機(jī)熱遷移的方法,包括步驟201 :根據(jù)進(jìn)程控制表及內(nèi)存映射表確定源虛擬機(jī)的初始拷貝內(nèi)存。這里,所述初始拷貝內(nèi)存為將進(jìn)程控制表中記錄的所有進(jìn)程對應(yīng)的虛擬地址作為源虛擬機(jī)的初始拷貝內(nèi)存的虛擬地址,再根據(jù)內(nèi)存映射表確定上述源虛擬機(jī)的初始拷貝內(nèi)存的虛擬地址所對應(yīng)的物理內(nèi)存地址,該物理內(nèi)存地址中的內(nèi)存即源虛擬機(jī)的初始拷貝內(nèi)存;步驟201之前,由Hypervisor判斷管理的虛擬機(jī)是否有任意一個虛擬機(jī)需要熱遷移,若有,則將該虛擬機(jī)作為源虛擬機(jī),并確定目的虛擬機(jī),然后確定開始熱遷移,執(zhí)行步驟 201。步驟202 :將初始拷貝內(nèi)存從源虛擬機(jī)拷貝到目的虛擬機(jī)。本步驟具體為將當(dāng)前內(nèi)存映射表作為熱遷移前的內(nèi)存映射表進(jìn)行保存;將步驟201中確定的初始拷貝內(nèi)存從源虛擬機(jī)拷貝到目的虛擬機(jī);所述拷貝,為已有技木,這里不做贅述。步驟203 :判斷是否開始拷貝剩余的變化內(nèi)存,如果不是,則執(zhí)行步驟204 ;如果是,則執(zhí)行步驟206。這里,所述判斷是否開始拷貝剰余的變化內(nèi)存,根據(jù)預(yù)置的判斷方式進(jìn)行判斷,所述判斷方式可以為根據(jù)循環(huán)次數(shù)來判斷,也可以根據(jù)拷貝時長來判斷;具體的當(dāng)判斷方式為根據(jù)循環(huán)次數(shù)判斷吋,步驟202完成吋,設(shè)置循環(huán)次數(shù)為0,然后本步驟判斷循環(huán)次數(shù)是否小于預(yù)置的循環(huán)門限,若小于,則判定為不開始拷貝剰余的變化內(nèi)存、將循環(huán)次數(shù)加一,否則判定為開始拷貝剩余的變化內(nèi)存;當(dāng)判斷方式為根據(jù)拷貝時長判斷吋,記錄每次拷貝所耗時長,本步驟判斷每次記錄的拷貝時長是否小于時長門限,若不小于,則判定為不開始拷貝剰余的變化內(nèi)存,否則,判定為開始拷貝剰余的變化內(nèi)存。步驟204 :統(tǒng)計源虛擬機(jī)在上一次拷貝過程中發(fā)生變化的內(nèi)存。這里,所述統(tǒng)計源虛擬機(jī)在上一次拷貝過程中發(fā)生變化的內(nèi)存,為將當(dāng)前的內(nèi)存映射表與保存的熱遷移前的內(nèi)存映射表進(jìn)行比較,統(tǒng)計發(fā)生變化的物理內(nèi)存地址,該發(fā)生變化的物理內(nèi)存地址所對應(yīng)的內(nèi)存為在上一次拷貝過程中發(fā)生變化的內(nèi)存。步驟205 :將上一次拷貝過程中發(fā)生變化的內(nèi)存從源虛擬機(jī)拷貝到目的虛擬機(jī),執(zhí)行步驟203。具體的將當(dāng)前內(nèi)存映射表作為熱遷移前的內(nèi)存映射表進(jìn)行保存;將步驟204中確定的源虛擬機(jī)在上一次拷貝過程中發(fā)生變化的內(nèi)存從源虛擬機(jī)拷貝到目的虛擬機(jī),然后返回步驟203。步驟206 :將源虛擬機(jī)剩余的變化內(nèi)存及運(yùn)行狀態(tài)的拷貝到目的虛擬機(jī)。這里,所述剩余的變化內(nèi)存為將當(dāng)前的內(nèi)存映射表與保存的熱遷移前的內(nèi)存映射表進(jìn)行比較,統(tǒng)計出發(fā)生變化的物理內(nèi)存地址,該發(fā)生變化的物理內(nèi)存地址所對應(yīng)的內(nèi)存,即為剰余的發(fā)生變化的內(nèi)存;所述源虛擬機(jī)運(yùn)行狀態(tài),為已有的熱遷移技術(shù)中規(guī)定的需要熱遷移內(nèi)容,其獲取方法為已有技木,這里不做贅述。
上述步驟206完成之后,源虛擬機(jī)及目的虛擬機(jī)按照已有虛擬機(jī)到虛擬機(jī)的熱遷移技術(shù)進(jìn)行后續(xù)操作,這里不做贅述。以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非 用于限定本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種虛擬機(jī)到虛擬機(jī)熱遷移的裝置,其特征在于,該裝置包括內(nèi)存統(tǒng)計模塊和內(nèi)存遷移模塊;其中, 內(nèi)存統(tǒng)計模塊,用于收到確定開始熱遷移的通知后,根據(jù)進(jìn)程控制表及內(nèi)存映射表確定源虛擬機(jī)的初始拷貝內(nèi)存,將初始拷貝內(nèi)存的地址發(fā)送給內(nèi)存遷移模塊; 內(nèi)存遷移模塊,用于根據(jù)內(nèi)存統(tǒng)計模塊發(fā)來的初始拷貝內(nèi)存的地址,將對應(yīng)的初始拷貝內(nèi)存拷貝到目的虛擬機(jī)。
2.根據(jù)權(quán)利要求I所述的裝置,其特征在干, 所述內(nèi)存統(tǒng)計模塊,具體用于將進(jìn)程控制表中記錄的所有進(jìn)程對應(yīng)的虛擬地址作為源虛擬機(jī)的初始拷貝內(nèi)存的虛擬地址,再根據(jù)內(nèi)存映射表確定所述源虛擬機(jī)的初始拷貝內(nèi)存的虛擬地址對應(yīng)的物理內(nèi)存地址,該物理內(nèi)存地址作為源虛擬機(jī)的初始拷貝的內(nèi)存的地址。
3.根據(jù)權(quán)利要求I所述的裝置,其特征在于,所述裝置還包括內(nèi)存變化監(jiān)視模塊,用于判斷是否開始拷貝剰余的變化內(nèi)存,如果不是,則將上一次拷貝過程中發(fā)生變化的內(nèi)存地址發(fā)送給內(nèi)存遷移模塊,繼續(xù)判斷是否開始拷貝剰余的變化內(nèi)存;否則,將源虛擬機(jī)剰余的變化內(nèi)存的地址及運(yùn)行狀態(tài)發(fā)送給內(nèi)存遷移模塊; 相應(yīng)的,所述內(nèi)存遷移模塊,還用于接收內(nèi)存變化監(jiān)視模塊發(fā)來的上一次拷貝過程中發(fā)生變化的內(nèi)存地址,將對應(yīng)的在上一次拷貝過程中發(fā)生變化的內(nèi)存從源虛擬機(jī)拷貝到目的虛擬機(jī),或者,接收內(nèi)存變化監(jiān)視模塊發(fā)來的源虛擬機(jī)剩余的變化內(nèi)存的地址及運(yùn)行狀態(tài),將對應(yīng)的源虛擬機(jī)剰余的變化內(nèi)存及運(yùn)行狀態(tài)拷貝到目的虛擬機(jī)。
4.根據(jù)權(quán)利要求3所述的裝置,其特征在于,所述內(nèi)存變化監(jiān)視模塊,具體用于根據(jù)循環(huán)次數(shù)或拷貝時長判斷是否開始拷貝剰余的變化內(nèi)存。
5.根據(jù)權(quán)利要求I至4任一所述的裝置,其特征在于,所述裝置還包括虛擬機(jī)管理模塊,用于運(yùn)行虛擬機(jī)管理軟件Hypervisor,并實(shí)時產(chǎn)生源虛擬機(jī)的進(jìn)程控制表和內(nèi)存映射表,以及為內(nèi)存統(tǒng)計模塊提供進(jìn)程控制表和內(nèi)存映射表,及通知內(nèi)存統(tǒng)計模塊確定開始熱遷移; 相應(yīng)的,所述內(nèi)存統(tǒng)計模塊,具體用于收到虛擬機(jī)管理模塊發(fā)來的確定開始熱遷移的通知后,從虛擬機(jī)管理模塊獲取源虛擬機(jī)的進(jìn)程控制表和內(nèi)存映射表。
6.—種虛擬機(jī)到虛擬機(jī)熱遷移的方法,其特征在于,該方法包括 確定開始熱遷移后,根據(jù)進(jìn)程控制表及內(nèi)存映射表確定源虛擬機(jī)的初始拷貝內(nèi)存; 將所述源虛擬機(jī)的初始拷貝內(nèi)存拷貝到目的虛擬機(jī)。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述根據(jù)進(jìn)程控制表及內(nèi)存映射表確定源虛擬機(jī)的初始拷貝內(nèi)存,包括將進(jìn)程控制表中記錄的所有進(jìn)程對應(yīng)的虛擬地址作為源虛擬機(jī)的初始拷貝內(nèi)存的虛擬地址,再根據(jù)內(nèi)存映射表確定所述源虛擬機(jī)的初始拷貝內(nèi)存的虛擬地址對應(yīng)的物理內(nèi)存地址,該物理內(nèi)存地址中的內(nèi)存即源虛擬機(jī)的初始拷貝的內(nèi)存。
8.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述將所述源虛擬機(jī)的初始拷貝內(nèi)存拷貝到目的虛擬機(jī)之后,該方法還包括判斷是否開始拷貝剰余的變化內(nèi)存,如果不是,則將上一次拷貝過程中發(fā)生變化的內(nèi)存從源虛擬機(jī)拷貝到目的虛擬機(jī),繼續(xù)判斷是否開始拷貝剰余的變化內(nèi)存;否則,將源虛擬機(jī)剰余的變化內(nèi)存及運(yùn)行狀態(tài)的拷貝到目的虛擬機(jī)。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述判斷是否開始拷貝剰余的變化內(nèi)存,為根據(jù)循環(huán)次數(shù)或拷貝時長進(jìn)行判斷。
10.根據(jù)權(quán)利要求6所述的方法,其特征在干,所述確定開始熱遷移之前,該方法還包括運(yùn)行Hypervisor,實(shí)時產(chǎn)生源虛擬機(jī)的進(jìn)程控制表和內(nèi)存映射表,并確定開始熱遷移。
全文摘要
本發(fā)明公開了一種虛擬機(jī)到虛擬機(jī)熱遷移的裝置,包括內(nèi)存統(tǒng)計模塊,用于收到確定開始熱遷移的通知后,根據(jù)進(jìn)程控制表及內(nèi)存映射表確定源虛擬機(jī)的初始拷貝內(nèi)存,將初始拷貝內(nèi)存的地址發(fā)送給內(nèi)存遷移模塊;內(nèi)存遷移模塊,用于根據(jù)內(nèi)存統(tǒng)計模塊發(fā)來的初始拷貝內(nèi)存的地址,將對應(yīng)的初始拷貝內(nèi)存拷貝到目的虛擬機(jī)。本發(fā)明還同時公開了一種虛擬機(jī)到虛擬機(jī)熱遷移的方法,采用本發(fā)明能減少熱遷移過程所需的時間,進(jìn)而提高虛擬機(jī)到虛擬機(jī)熱遷移的效率。
文檔編號G06F9/46GK102681913SQ20111043218
公開日2012年9月19日 申請日期2011年12月21日 優(yōu)先權(quán)日2011年12月21日
發(fā)明者韓輝 申請人:中興通訊股份有限公司