虛擬機(jī)喚醒方法和裝置制造方法
【專利摘要】本發(fā)明實(shí)施例提供一種虛擬機(jī)喚醒方法和裝置,通過獲取虛擬機(jī)的上下文信息以及關(guān)鍵內(nèi)存頁(yè),將上下文信息以及關(guān)鍵內(nèi)存頁(yè)從磁盤恢復(fù)到內(nèi)存中,喚醒虛擬機(jī),從而,完成虛擬機(jī)的喚醒過程,在此過程中,由于僅將虛擬機(jī)的上下文信息和關(guān)鍵內(nèi)存頁(yè)從磁盤恢復(fù)到內(nèi)存中,在一定程度上減少了從磁盤恢復(fù)到內(nèi)存的數(shù)據(jù)數(shù)量,加快了虛擬機(jī)喚醒速度,在此過程中,無需額外的部署的高成本的部件,節(jié)約了部署成本。
【專利說明】虛擬機(jī)喚醒方法和裝置
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明實(shí)施例涉及計(jì)算機(jī)技術(shù),尤其涉及一種虛擬機(jī)喚醒方法和裝置。
【背景技術(shù)】
[0002]虛擬機(jī)休眠是指將處于運(yùn)動(dòng)狀態(tài)的虛擬機(jī)數(shù)據(jù)保存到磁盤,完全釋放虛擬機(jī)所占有的內(nèi)存與CPU資源,虛擬機(jī)喚醒是指將保存在磁盤中的數(shù)據(jù)恢復(fù)到內(nèi)存并恢復(fù)到運(yùn)行狀態(tài),因?yàn)榇疟P的讀寫速度較慢,因此,虛擬機(jī)休眠或喚醒的速度都相對(duì)較慢,而在實(shí)際應(yīng)用中,對(duì)虛擬機(jī)喚醒的速度有較高的要求。
[0003]現(xiàn)有技術(shù)中,為了加快虛擬機(jī)喚醒的速度,通過在主機(jī)上部署高速物理緩存,當(dāng)虛擬機(jī)休眠時(shí),將數(shù)據(jù)保存在高速物理緩存,當(dāng)喚醒時(shí)從高速物理緩存中恢復(fù)數(shù)據(jù),從而,力口快虛擬機(jī)的喚醒速度。
[0004]然而,部署高速物理緩存成本較高,因此,采用現(xiàn)有技術(shù)的方法,增加部署成本。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供一種虛擬機(jī)喚醒方法和裝置,以節(jié)約部署成本。
[0006]本發(fā)明實(shí)施例第一方面提供一種虛擬機(jī)喚醒方法,包括:
[0007]獲取虛擬機(jī)的上下文信息以及關(guān)鍵內(nèi)存頁(yè),所述關(guān)鍵內(nèi)存頁(yè)包括喚醒所述虛擬機(jī)必備的內(nèi)存頁(yè);
[0008]將所述上下文信息以及所述關(guān)鍵內(nèi)存頁(yè)從磁盤恢復(fù)到內(nèi)存中;
[0009]喚醒所述虛擬機(jī)。
[0010]結(jié)合第一方面,在第一種可能的實(shí)現(xiàn)方式中,所述獲取虛擬機(jī)的上下文信息以及關(guān)鍵內(nèi)存頁(yè)之前,還包括:
[0011]識(shí)別所述關(guān)鍵內(nèi)存頁(yè)。
[0012]結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述識(shí)別所述關(guān)鍵內(nèi)存頁(yè),包括:
[0013]根據(jù)虛擬機(jī)休眠過程中對(duì)所述關(guān)鍵內(nèi)存頁(yè)的標(biāo)識(shí)識(shí)別所述關(guān)鍵內(nèi)存頁(yè)。
[0014]結(jié)合第一方面的第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述根據(jù)虛擬機(jī)休眠過程中對(duì)所述關(guān)鍵內(nèi)存頁(yè)的標(biāo)識(shí)識(shí)別所述關(guān)鍵內(nèi)存頁(yè)之前,還包括:
[0015]在虛擬機(jī)休眠過程中確定預(yù)設(shè)類型的內(nèi)存頁(yè)為關(guān)鍵內(nèi)存頁(yè)。
[0016]結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述識(shí)別所述關(guān)鍵內(nèi)存頁(yè),包括:
[0017]在虛擬機(jī)喚醒過程中確定預(yù)設(shè)類型的內(nèi)存頁(yè)為關(guān)鍵內(nèi)存頁(yè)。
[0018]結(jié)合第一方面的第三種或第四種可能的實(shí)現(xiàn)方式,在第五種可能的實(shí)現(xiàn)方式中,所述預(yù)設(shè)類型的內(nèi)存頁(yè)包括下述任一種類型:
[0019]視頻圖形陣列VGA顯存地址空間范圍內(nèi)的內(nèi)存頁(yè);
[0020]根據(jù)所述虛擬機(jī)內(nèi)存分布,處于OM至IM的地址空間范圍內(nèi)的內(nèi)存頁(yè);
[0021]根據(jù)所述虛擬機(jī)內(nèi)存分布,處于3.75G至4G的地址空間范圍內(nèi)的內(nèi)存頁(yè);
[0022]根據(jù)所述虛擬機(jī)的上下文信息中的寄存器信息關(guān)聯(lián)的內(nèi)存頁(yè);
[0023]根據(jù)傳輸后備緩沖器TLB中緩存的頁(yè)表信息對(duì)應(yīng)的內(nèi)存頁(yè)。
[0024]結(jié)合第一方面或第一方面的第一種至第五種可能的實(shí)現(xiàn)方式中任一種可能的實(shí)現(xiàn)方式,在第六種可能的實(shí)現(xiàn)方式中,所述喚醒所述虛擬機(jī)之后還包括:
[0025]將普通內(nèi)存頁(yè)恢復(fù)到所述內(nèi)存中,所述普通內(nèi)存頁(yè)是指處于運(yùn)動(dòng)狀態(tài)的虛擬機(jī)數(shù)據(jù)中除所述上下文信息和關(guān)鍵內(nèi)存頁(yè)之外的內(nèi)存頁(yè)。
[0026]本發(fā)明實(shí)施例第二方面提供一種虛擬機(jī)喚醒裝置,包括:
[0027]獲取模塊,用于獲取虛擬機(jī)的上下文信息以及關(guān)鍵內(nèi)存頁(yè),所述關(guān)鍵內(nèi)存頁(yè)包括喚醒所述虛擬機(jī)必備的內(nèi)存頁(yè);
[0028]關(guān)鍵內(nèi)存頁(yè)恢復(fù)模塊,用于將所述上下文信息以及所述關(guān)鍵內(nèi)存頁(yè)從磁盤恢復(fù)到內(nèi)存中;
[0029]喚醒模塊,用于喚醒所述虛擬機(jī)。
[0030]結(jié)合第二方面,在第一種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
[0031]關(guān)鍵內(nèi)存頁(yè)識(shí)別模塊,用于識(shí)別所述關(guān)鍵內(nèi)存頁(yè)。
[0032]結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述關(guān)鍵內(nèi)存頁(yè)識(shí)別模塊具體用于根據(jù)虛擬機(jī)休眠過程中對(duì)所述關(guān)鍵內(nèi)存頁(yè)的標(biāo)識(shí)識(shí)別所述關(guān)鍵內(nèi)存頁(yè)。
[0033]結(jié)合第二方面的第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述關(guān)鍵內(nèi)存頁(yè)識(shí)別模塊具體用于還用于在虛擬機(jī)休眠過程中確定預(yù)設(shè)類型的內(nèi)存頁(yè)為關(guān)鍵內(nèi)存頁(yè)。
[0034]結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述關(guān)鍵內(nèi)存頁(yè)識(shí)別模塊具體用于在虛擬機(jī)喚醒過程中確定預(yù)設(shè)類型的內(nèi)存頁(yè)為關(guān)鍵內(nèi)存頁(yè)。
[0035]結(jié)合第二方面的第三種或第四種可能的實(shí)現(xiàn)方式,在第五種可能的實(shí)現(xiàn)方式中,所述預(yù)設(shè)類型的內(nèi)存頁(yè)包括下述任一種類型:
[0036]視頻圖形陣列VGA顯存地址空間范圍內(nèi)的內(nèi)存頁(yè);
[0037]根據(jù)所述虛擬機(jī)內(nèi)存分布,處于OM至IM的地址空間范圍內(nèi)的內(nèi)存頁(yè);
[0038]根據(jù)所述虛擬機(jī)內(nèi)存分布,處于3.75G至4G的地址空間范圍內(nèi)的內(nèi)存頁(yè);
[0039]根據(jù)所述虛擬機(jī)的上下文信息中的寄存器信息關(guān)聯(lián)的內(nèi)存頁(yè);
[0040]根據(jù)傳輸后備緩沖器TLB中緩存的頁(yè)表信息對(duì)應(yīng)的內(nèi)存頁(yè)。
[0041]結(jié)合第二方面或第二方面的第一種至第五種可能的實(shí)現(xiàn)方式中任一種可能的實(shí)現(xiàn)方式,在第六種可能的實(shí)現(xiàn)方式中,還包括:
[0042]普通內(nèi)存頁(yè)恢復(fù)模塊,用于將普通內(nèi)存頁(yè)恢復(fù)到所述內(nèi)存中,所述普通內(nèi)存頁(yè)是指處于運(yùn)動(dòng)狀態(tài)的虛擬機(jī)數(shù)據(jù)中除所述上下文信息和關(guān)鍵內(nèi)存頁(yè)之外的內(nèi)存頁(yè)。
[0043]本發(fā)明實(shí)施例提供的虛擬機(jī)喚醒方法和裝置,通過獲取虛擬機(jī)的上下文信息以及關(guān)鍵內(nèi)存頁(yè),將上下文信息以及關(guān)鍵內(nèi)存頁(yè)從磁盤恢復(fù)到內(nèi)存中,喚醒虛擬機(jī),從而,完成虛擬機(jī)的喚醒過程,在此過程中,由于僅將虛擬機(jī)的上下文信息和關(guān)鍵內(nèi)存頁(yè)從磁盤恢復(fù)到內(nèi)存中,在一定程度上減少了從磁盤恢復(fù)到內(nèi)存的數(shù)據(jù)數(shù)量,加快了虛擬機(jī)喚醒速度,在此過程中,無需額外的部署的高成本的部件,節(jié)約了部署成本。
【專利附圖】
【附圖說明】
[0044]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0045]圖1為本發(fā)明虛擬機(jī)喚醒方法實(shí)施例一的流程示意圖;
[0046]圖2為本發(fā)明虛擬機(jī)喚醒方法實(shí)施例二的流程示意圖;
[0047]圖3為本發(fā)明與現(xiàn)有技術(shù)的效果對(duì)比示意圖;
[0048]圖4為本發(fā)明虛擬機(jī)喚醒裝置實(shí)施例一的結(jié)構(gòu)示意圖;
[0049]圖5為本發(fā)明虛擬機(jī)喚醒裝置實(shí)施例二的結(jié)構(gòu)示意圖;
[0050]圖6為本發(fā)明虛擬機(jī)喚醒裝置實(shí)施例三的結(jié)構(gòu)示意圖;
[0051]圖7為本發(fā)明虛擬機(jī)喚醒裝置實(shí)施例四的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0052]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0053]本發(fā)明實(shí)施例將處于運(yùn)動(dòng)狀態(tài)的虛擬機(jī)數(shù)據(jù)分為關(guān)鍵內(nèi)存頁(yè)和普通內(nèi)存頁(yè),關(guān)鍵內(nèi)存頁(yè)是指喚醒虛擬機(jī)必備的內(nèi)存頁(yè),通過識(shí)別關(guān)鍵內(nèi)存頁(yè),在虛擬機(jī)喚醒過程中,將虛擬機(jī)的上下文信息和關(guān)鍵內(nèi)存頁(yè)從磁盤恢復(fù)到內(nèi)存中,然后喚醒虛擬機(jī),完成虛擬機(jī)的喚醒過程;在此過程中,由于僅將虛擬機(jī)的上下文信息和關(guān)鍵內(nèi)存頁(yè)從磁盤恢復(fù)到內(nèi)存中,無需將普通內(nèi)存頁(yè)從磁盤恢復(fù)到內(nèi)存中,在一定程度上減少了從磁盤恢復(fù)到內(nèi)存的數(shù)據(jù)數(shù)量,加快了虛擬機(jī)喚醒速度,在此過程中,無需額外的部署的高成本的部件,節(jié)約了部署成本。
[0054]下面以具體地實(shí)施例對(duì)本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說明。下面這幾個(gè)具體的實(shí)施例可以相互結(jié)合,對(duì)于相同或相似的概念或過程可能在某些實(shí)施例不再贅述。
[0055]圖1為本發(fā)明虛擬機(jī)喚醒方法實(shí)施例一的流程示意圖,如圖1所示,本實(shí)施例的方法如下:
[0056]SlOl:獲取虛擬機(jī)的上下文信息以及關(guān)鍵內(nèi)存頁(yè)。
[0057]其中,關(guān)鍵內(nèi)存頁(yè)包括喚醒虛擬機(jī)必備的內(nèi)存頁(yè)。
[0058]具體地,獲取虛擬機(jī)的上下文信息以及關(guān)鍵內(nèi)存頁(yè)之前,還包括:識(shí)別關(guān)鍵內(nèi)存頁(yè)。
[0059]識(shí)別關(guān)鍵內(nèi)存頁(yè)在不同的場(chǎng)景下,識(shí)別關(guān)鍵內(nèi)存頁(yè)的方法不同,本發(fā)明包括但不限于下述兩種實(shí)現(xiàn)方式:
[0060]其中,第一種實(shí)現(xiàn)方式,在虛擬機(jī)休眠過程中確定并標(biāo)識(shí)關(guān)鍵內(nèi)存頁(yè),在休眠過程中確定關(guān)鍵內(nèi)存頁(yè)即確定預(yù)設(shè)類型的內(nèi)存頁(yè)為關(guān)鍵內(nèi)存頁(yè),確定出關(guān)鍵內(nèi)存頁(yè)之后,對(duì)關(guān)鍵內(nèi)存頁(yè)進(jìn)行標(biāo)識(shí),具體地標(biāo)識(shí)方法,一種方式,可以是將關(guān)鍵內(nèi)存頁(yè)存儲(chǔ)在磁盤中預(yù)設(shè)的地址空間中,可以通過地址空間標(biāo)識(shí)出其內(nèi)存儲(chǔ)的內(nèi)容為關(guān)鍵內(nèi)存頁(yè);另一種方式,可以是通過增加特殊字符串標(biāo)記關(guān)鍵內(nèi)存頁(yè);又一種方式,通過偏移量標(biāo)識(shí)存儲(chǔ)關(guān)鍵內(nèi)存儲(chǔ)頁(yè)的地址空間,對(duì)于具體地標(biāo)識(shí)方式,本發(fā)明不作限制。這種實(shí)現(xiàn)方式即在虛擬機(jī)喚醒過程中,根據(jù)虛擬機(jī)休眠過程中對(duì)關(guān)鍵內(nèi)存頁(yè)的標(biāo)識(shí)識(shí)別關(guān)鍵內(nèi)存頁(yè)。
[0061]第二種實(shí)現(xiàn)方式,在虛擬機(jī)喚醒過程中確定預(yù)設(shè)類型的內(nèi)存頁(yè)為關(guān)鍵內(nèi)存頁(yè)。
[0062]第二種實(shí)現(xiàn)方式與第一種實(shí)現(xiàn)方式不同的是,第一種實(shí)現(xiàn)方式是在虛擬機(jī)休眠過程中,確定并標(biāo)識(shí)預(yù)設(shè)類型的內(nèi)存頁(yè)為關(guān)鍵內(nèi)存頁(yè)。第二種實(shí)現(xiàn)方式是在虛擬機(jī)喚醒過程中確定預(yù)設(shè)類型的內(nèi)存頁(yè)為關(guān)鍵內(nèi)存頁(yè)。第一種實(shí)現(xiàn)方式比第二種實(shí)現(xiàn)方式更為準(zhǔn)確一些。
[0063]其中,預(yù)設(shè)類型的內(nèi)存頁(yè)包括下述任一種類型:
[0064]視頻圖形陣列VGA顯存地址空間范圍內(nèi)的內(nèi)存頁(yè);該類型可根據(jù)虛擬機(jī)上下文信息動(dòng)態(tài)識(shí)別,該類型內(nèi)存頁(yè)影響到虛擬機(jī)喚醒后的界面顯示。
[0065]根據(jù)所述虛擬機(jī)內(nèi)存分布,處于OM至IM的地址空間范圍內(nèi)的內(nèi)存頁(yè);0M-1M內(nèi)存范圍內(nèi)通常為特殊內(nèi)存頁(yè),為了保證虛擬機(jī)正常運(yùn)行,該部分內(nèi)存頁(yè)必須優(yōu)先恢復(fù)。
[0066]根據(jù)所述虛擬機(jī)內(nèi)存分布,處于3.75G至4G的地址空間范圍內(nèi)的內(nèi)存頁(yè);3.75G至4G的地址空間范圍內(nèi)的內(nèi)存頁(yè)主要用于硬件映射,為了保證虛擬機(jī)設(shè)備的正常運(yùn)行,該部分內(nèi)存頁(yè)必須優(yōu)先恢復(fù)。
[0067]根據(jù)所述虛擬機(jī)的上下文信息中的寄存器信息關(guān)聯(lián)的內(nèi)存頁(yè);具體地,根據(jù)虛擬機(jī)CPU上下文信息獲取虛擬機(jī)當(dāng)前正在處理的寄存器信息,根據(jù)寄存器信息動(dòng)態(tài)識(shí)別關(guān)聯(lián)的內(nèi)存頁(yè)。
[0068]根據(jù)傳輸后備緩沖器TLB中緩存的頁(yè)表信息對(duì)應(yīng)的內(nèi)存頁(yè),TLB中緩存的頁(yè)表信息通常為熱點(diǎn)內(nèi)存頁(yè),熱點(diǎn)內(nèi)存頁(yè)是指被高頻訪問的內(nèi)存頁(yè)。
[0069]S102:將上下文信息以及關(guān)鍵內(nèi)存頁(yè)從磁盤恢復(fù)到內(nèi)存中。
[0070]S103:喚醒虛擬機(jī)。
[0071]從而,完成虛擬機(jī)的喚醒過程。
[0072]本實(shí)施例中,通過獲取虛擬機(jī)的上下文信息以及關(guān)鍵內(nèi)存頁(yè),將上下文信息以及關(guān)鍵內(nèi)存頁(yè)從磁盤恢復(fù)到內(nèi)存中,喚醒虛擬機(jī),從而,完成虛擬機(jī)的喚醒過程,在此過程中,由于僅將虛擬機(jī)的上下文信息和關(guān)鍵內(nèi)存頁(yè)從磁盤恢復(fù)到內(nèi)存中,在一定程度上減少了從磁盤恢復(fù)到內(nèi)存的數(shù)據(jù)數(shù)量,加快了虛擬機(jī)喚醒速度,在此過程中,無需額外的部署的高成本的部件,節(jié)約了部署成本。
[0073]在上述實(shí)施例中,喚醒虛擬機(jī)之后,還包括,將普通內(nèi)存頁(yè)恢復(fù)到內(nèi)存中,普通內(nèi)存頁(yè)是指處于運(yùn)動(dòng)狀態(tài)的虛擬機(jī)數(shù)據(jù)中除上下文信息和上述關(guān)鍵內(nèi)存頁(yè)之外的內(nèi)存頁(yè)。也就是,普通內(nèi)存頁(yè)在后臺(tái)異步恢復(fù),假如虛擬機(jī)喚醒之后運(yùn)行過程中發(fā)現(xiàn)找不到對(duì)應(yīng)的內(nèi)存頁(yè),則從磁盤中存儲(chǔ)的普通內(nèi)存頁(yè)中找到對(duì)應(yīng)的內(nèi)存頁(yè)恢復(fù)到內(nèi)存,從而,不影響虛擬機(jī)業(yè)務(wù)的正常運(yùn)行。在本發(fā)明實(shí)施例的技術(shù)方案中,虛擬機(jī)喚醒過程中僅將虛擬機(jī)上下文信息和關(guān)鍵內(nèi)存頁(yè)從磁盤恢復(fù)到內(nèi)存,在一定程度上減少了虛擬機(jī)喚醒過程中數(shù)據(jù)讀取量,也就是,虛擬機(jī)喚醒過程中消耗時(shí)間為將虛擬機(jī)上下文信息和關(guān)鍵內(nèi)存頁(yè)從磁盤恢復(fù)到內(nèi)存的時(shí)間,因此,加快了虛擬機(jī)的喚醒速度。
[0074]針對(duì)SlOl中的第一種場(chǎng)景,即在虛擬機(jī)休眠過程中,確定并標(biāo)識(shí)預(yù)設(shè)類型的內(nèi)存頁(yè)為關(guān)鍵內(nèi)存頁(yè),在虛擬機(jī)喚醒過程中,根據(jù)虛擬機(jī)休眠過程中對(duì)關(guān)鍵內(nèi)存頁(yè)的標(biāo)識(shí)識(shí)別關(guān)鍵內(nèi)存頁(yè)。具體地,虛擬機(jī)休眠過程中的流程如圖2所示,圖2為本發(fā)明虛擬機(jī)喚醒方法實(shí)施例二的流程示意圖,如圖2所示,本實(shí)施例的方法如下:
[0075]其中,S201?S202為虛擬機(jī)休眠過程中的流程,S203?S206為虛擬機(jī)喚醒過程中的流程。
[0076]S201:通過關(guān)鍵內(nèi)存頁(yè)識(shí)別模塊識(shí)別關(guān)鍵內(nèi)存頁(yè)。
[0077]S202:完成關(guān)鍵內(nèi)存頁(yè)的識(shí)別之后,將虛擬機(jī)上下文信息,關(guān)鍵內(nèi)存頁(yè)以及普通內(nèi)存頁(yè)標(biāo)保存到磁盤。
[0078]S203:關(guān)鍵內(nèi)存頁(yè)恢復(fù)裝置恢復(fù)虛擬機(jī)上下文信息以及關(guān)鍵內(nèi)存頁(yè),確保虛擬機(jī)能夠正常喚醒。
[0079]S204:完成上下文信息和關(guān)鍵內(nèi)存頁(yè)恢復(fù)之后喚醒虛擬機(jī),同時(shí)激活普通內(nèi)存恢復(fù)裝置。
[0080]該步驟之后,虛擬機(jī)喚醒過程完成。
[0081]S205:普通內(nèi)存頁(yè)恢復(fù)裝置讀取普通內(nèi)存。
[0082]S206:普通內(nèi)存頁(yè)恢復(fù)裝置將普通內(nèi)存恢復(fù)到內(nèi)存。
[0083]本實(shí)施例中,通過識(shí)別關(guān)鍵內(nèi)存頁(yè),在虛擬機(jī)喚醒過程中,將虛擬機(jī)上下文信息和關(guān)鍵內(nèi)存頁(yè)從磁盤恢復(fù)到內(nèi)存,喚醒虛擬機(jī),從而,完成虛擬機(jī)喚醒過程,在虛擬機(jī)喚醒之后,將普通內(nèi)存頁(yè)恢復(fù)到內(nèi)存,也就是普通內(nèi)存頁(yè)通過異步方式恢復(fù)到內(nèi)存中,在虛擬機(jī)喚醒過程中僅將虛擬機(jī)上下文信息和關(guān)鍵內(nèi)存頁(yè)從磁盤恢復(fù)到內(nèi)存,在一定程度上減少了虛擬機(jī)喚醒過程中數(shù)據(jù)讀取量,也就是,虛擬機(jī)喚醒過程中消耗時(shí)間為將虛擬機(jī)上下文信息和關(guān)鍵內(nèi)存頁(yè)從磁盤恢復(fù)到內(nèi)存的時(shí)間,因此,加快了虛擬機(jī)的喚醒速度。
[0084]為了進(jìn)一步地描述本發(fā)明的技術(shù)效果,本發(fā)明實(shí)施例還提供了采用現(xiàn)有技術(shù)的方法與采用本發(fā)明實(shí)施例的技術(shù)方案虛擬機(jī)喚醒時(shí)間對(duì)比仿真圖,如圖3所示,圖3為本發(fā)明與現(xiàn)有技術(shù)的效果對(duì)比示意圖。從圖3可以看出,采用現(xiàn)有技術(shù)的方案(對(duì)應(yīng)圖示中的普通喚醒),隨著虛擬機(jī)規(guī)格增大,消耗時(shí)間線性增加,而采用本發(fā)明的技術(shù)方案,虛擬機(jī)喚醒消耗時(shí)間只有小幅增加。
[0085]圖4為本發(fā)明虛擬機(jī)喚醒裝置實(shí)施例一的結(jié)構(gòu)示意圖,本實(shí)施例的裝置設(shè)置在虛擬機(jī)運(yùn)行的主機(jī)中,本實(shí)施例的裝置包括獲取模塊401、關(guān)鍵內(nèi)存頁(yè)恢復(fù)模塊402和喚醒模塊403,其中,獲取模塊401用于獲取虛擬機(jī)的上下文信息以及關(guān)鍵內(nèi)存頁(yè),所述關(guān)鍵內(nèi)存頁(yè)包括喚醒所述虛擬機(jī)必備的內(nèi)存頁(yè);關(guān)鍵內(nèi)存頁(yè)恢復(fù)模塊402用于將所述上下文信息以及所述關(guān)鍵內(nèi)存頁(yè)從磁盤恢復(fù)到內(nèi)存中;喚醒模塊403用于喚醒所述虛擬機(jī)。
[0086]圖5為本發(fā)明虛擬機(jī)喚醒裝置實(shí)施例二的結(jié)構(gòu)示意圖,圖5是在圖4所示實(shí)施例的基礎(chǔ)上進(jìn)一步地還包括:關(guān)鍵內(nèi)存頁(yè)識(shí)別模塊404,用于識(shí)別所述關(guān)鍵內(nèi)存頁(yè)。
[0087]在上述實(shí)施例中,所述關(guān)鍵內(nèi)存頁(yè)識(shí)別模塊404具體用于根據(jù)虛擬機(jī)休眠過程中對(duì)所述關(guān)鍵內(nèi)存頁(yè)的標(biāo)識(shí)識(shí)別所述關(guān)鍵內(nèi)存頁(yè)。
[0088]在上述實(shí)施例中,所述關(guān)鍵內(nèi)存頁(yè)識(shí)別模塊404具體用于還用于在虛擬機(jī)休眠過程中確定預(yù)設(shè)類型的內(nèi)存頁(yè)為關(guān)鍵內(nèi)存頁(yè)。
[0089]在上述實(shí)施例中,所述關(guān)鍵內(nèi)存頁(yè)識(shí)別模塊404具體用于在虛擬機(jī)喚醒過程中確定預(yù)設(shè)類型的內(nèi)存頁(yè)為關(guān)鍵內(nèi)存頁(yè)。
[0090]在上述實(shí)施例中,所述預(yù)設(shè)類型的內(nèi)存頁(yè)包括下述任一種類型:
[0091]視頻圖形陣列VGA顯存地址空間范圍內(nèi)的內(nèi)存頁(yè);
[0092]根據(jù)所述虛擬機(jī)內(nèi)存分布,處于OM至IM的地址空間范圍內(nèi)的內(nèi)存頁(yè);
[0093]根據(jù)所述虛擬機(jī)內(nèi)存分布,處于3.75G至4G的地址空間范圍內(nèi)的內(nèi)存頁(yè);
[0094]根據(jù)所述虛擬機(jī)的上下文信息中的寄存器信息關(guān)聯(lián)的內(nèi)存頁(yè);
[0095]根據(jù)傳輸后備緩沖器TLB中緩存的頁(yè)表信息對(duì)應(yīng)的內(nèi)存頁(yè)。
[0096]圖6為本發(fā)明虛擬機(jī)喚醒裝置實(shí)施例三的結(jié)構(gòu)示意圖,圖6是在圖5所示實(shí)施例的基礎(chǔ)上進(jìn)一步地還包括:普通內(nèi)存頁(yè)恢復(fù)模塊405用于將普通內(nèi)存頁(yè)恢復(fù)到所述內(nèi)存中,所述普通內(nèi)存頁(yè)是指處于運(yùn)動(dòng)狀態(tài)的虛擬機(jī)數(shù)據(jù)中除所述上下文信息和關(guān)鍵內(nèi)存頁(yè)之外的內(nèi)存頁(yè)。
[0097]圖4、圖5、圖6所示裝置實(shí)施例中的裝置對(duì)應(yīng)地,可用于執(zhí)行上述圖1或圖2所示方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0098]圖7為本發(fā)明虛擬機(jī)喚醒裝置實(shí)施例四的結(jié)構(gòu)示意圖,如圖7所示,本實(shí)施例的裝置包括存儲(chǔ)器710和處理器720,存儲(chǔ)器710可以包括隨機(jī)存儲(chǔ)器、閃存、只讀存儲(chǔ)器、可編程只讀存儲(chǔ)器、非易失性存儲(chǔ)器或寄存器等。處理器720可以是中央處理器(CentralProcessing Unit, CPU)。存儲(chǔ)器710用于存儲(chǔ)可執(zhí)行指令。處理器720可以執(zhí)行存儲(chǔ)器710中存儲(chǔ)的可執(zhí)行指令,例如,處理器720用于獲取虛擬機(jī)的上下文信息以及關(guān)鍵內(nèi)存頁(yè),所述關(guān)鍵內(nèi)存頁(yè)包括喚醒所述虛擬機(jī)必備的內(nèi)存頁(yè);將所述上下文信息以及所述關(guān)鍵內(nèi)存頁(yè)從磁盤恢復(fù)到內(nèi)存中,喚醒所述虛擬機(jī)。
[0099]本實(shí)施例,通過獲取虛擬機(jī)的上下文信息以及關(guān)鍵內(nèi)存頁(yè),將上下文信息以及關(guān)鍵內(nèi)存頁(yè)從磁盤恢復(fù)到內(nèi)存中,喚醒虛擬機(jī),從而,完成虛擬機(jī)的喚醒過程,在此過程中,由于僅將虛擬機(jī)的上下文信息和關(guān)鍵內(nèi)存頁(yè)從磁盤恢復(fù)到內(nèi)存中,在一定程度上減少了從磁盤恢復(fù)到內(nèi)存的數(shù)據(jù)數(shù)量,加快了虛擬機(jī)喚醒速度,在此過程中,無需額外的部署的高成本的部件,節(jié)約了部署成本。
[0100]本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。該程序在執(zhí)行時(shí),執(zhí)行包括上述各方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:R0M、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0101]最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。
【權(quán)利要求】
1.一種虛擬機(jī)喚醒方法,其特征在于,包括: 獲取虛擬機(jī)的上下文信息以及關(guān)鍵內(nèi)存頁(yè),所述關(guān)鍵內(nèi)存頁(yè)包括喚醒所述虛擬機(jī)必備的內(nèi)存頁(yè); 將所述上下文信息以及所述關(guān)鍵內(nèi)存頁(yè)從磁盤恢復(fù)到內(nèi)存中; 喚醒所述虛擬機(jī)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取虛擬機(jī)的上下文信息以及關(guān)鍵內(nèi)存頁(yè)之前,還包括: 識(shí)別所述關(guān)鍵內(nèi)存頁(yè)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述識(shí)別所述關(guān)鍵內(nèi)存頁(yè),包括: 根據(jù)虛擬機(jī)休眠過程中對(duì)所述關(guān)鍵內(nèi)存頁(yè)的標(biāo)識(shí)識(shí)別所述關(guān)鍵內(nèi)存頁(yè)。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述根據(jù)虛擬機(jī)休眠過程中對(duì)所述關(guān)鍵內(nèi)存頁(yè)的標(biāo)識(shí)識(shí)別所述關(guān)鍵內(nèi)存頁(yè)之前,還包括: 在虛擬機(jī)休眠過程中確定預(yù)設(shè)類型的內(nèi)存頁(yè)為關(guān)鍵內(nèi)存頁(yè)。
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述識(shí)別所述關(guān)鍵內(nèi)存頁(yè),包括: 在虛擬機(jī)喚醒過程中確定預(yù)設(shè)類型的內(nèi)存頁(yè)為關(guān)鍵內(nèi)存頁(yè)。
6.根據(jù)權(quán)利要求4或5所述的方法,其特征在于,所述預(yù)設(shè)類型的內(nèi)存頁(yè)包括下述任一種類型: 視頻圖形陣列VGA顯存地址空間范圍內(nèi)的內(nèi)存頁(yè); 根據(jù)所述虛擬機(jī)內(nèi)存分布,處于OM至IM的地址空間范圍內(nèi)的內(nèi)存頁(yè); 根據(jù)所述虛擬機(jī)內(nèi)存分布,處于3.75G至4G的地址空間范圍內(nèi)的內(nèi)存頁(yè); 根據(jù)所述虛擬機(jī)的上下文信息中的寄存器信息關(guān)聯(lián)的內(nèi)存頁(yè); 根據(jù)傳輸后備緩沖器TLB中緩存的頁(yè)表信息對(duì)應(yīng)的內(nèi)存頁(yè)。
7.根據(jù)權(quán)利要求1?6任一項(xiàng)所述的方法,其特征在于,所述喚醒所述虛擬機(jī)之后還包括: 將普通內(nèi)存頁(yè)恢復(fù)到所述內(nèi)存中,所述普通內(nèi)存頁(yè)是指處于運(yùn)動(dòng)狀態(tài)的虛擬機(jī)數(shù)據(jù)中除所述上下文信息和關(guān)鍵內(nèi)存頁(yè)之外的內(nèi)存頁(yè)。
8.—種虛擬機(jī)喚醒裝置,其特征在于,包括: 獲取模塊,用于獲取虛擬機(jī)的上下文信息以及關(guān)鍵內(nèi)存頁(yè),所述關(guān)鍵內(nèi)存頁(yè)包括喚醒所述虛擬機(jī)必備的內(nèi)存頁(yè); 關(guān)鍵內(nèi)存頁(yè)恢復(fù)模塊,用于將所述上下文信息以及所述關(guān)鍵內(nèi)存頁(yè)從磁盤恢復(fù)到內(nèi)存中; 喚醒模塊,用于喚醒所述虛擬機(jī)。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,還包括: 關(guān)鍵內(nèi)存頁(yè)識(shí)別模塊,用于識(shí)別所述關(guān)鍵內(nèi)存頁(yè)。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述關(guān)鍵內(nèi)存頁(yè)識(shí)別模塊具體用于根據(jù)虛擬機(jī)休眠過程中對(duì)所述關(guān)鍵內(nèi)存頁(yè)的標(biāo)識(shí)識(shí)別所述關(guān)鍵內(nèi)存頁(yè)。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述關(guān)鍵內(nèi)存頁(yè)識(shí)別模塊具體用于還用于在虛擬機(jī)休眠過程中確定預(yù)設(shè)類型的內(nèi)存頁(yè)為關(guān)鍵內(nèi)存頁(yè)。
12.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述關(guān)鍵內(nèi)存頁(yè)識(shí)別模塊具體用于在虛擬機(jī)喚醒過程中確定預(yù)設(shè)類型的內(nèi)存頁(yè)為關(guān)鍵內(nèi)存頁(yè)。
13.根據(jù)權(quán)利要求11或12所述的裝置,其特征在于,所述預(yù)設(shè)類型的內(nèi)存頁(yè)包括下述任一種類型: 視頻圖形陣列VGA顯存地址空間范圍內(nèi)的內(nèi)存頁(yè); 根據(jù)所述虛擬機(jī)內(nèi)存分布,處于OM至IM的地址空間范圍內(nèi)的內(nèi)存頁(yè); 根據(jù)所述虛擬機(jī)內(nèi)存分布,處于3.75G至4G的地址空間范圍內(nèi)的內(nèi)存頁(yè); 根據(jù)所述虛擬機(jī)的上下文信息中的寄存器信息關(guān)聯(lián)的內(nèi)存頁(yè); 根據(jù)傳輸后備緩沖器TLB中緩存的頁(yè)表信息對(duì)應(yīng)的內(nèi)存頁(yè)。
14.根據(jù)權(quán)利要求8?13任一項(xiàng)所述的裝置,其特征在于,還包括: 普通內(nèi)存頁(yè)恢復(fù)模塊,用于將普通內(nèi)存頁(yè)恢復(fù)到所述內(nèi)存中,所述普通內(nèi)存頁(yè)是指處于運(yùn)動(dòng)狀態(tài)的虛擬機(jī)數(shù)據(jù)中除所述上下文信息和關(guān)鍵內(nèi)存頁(yè)之外的內(nèi)存頁(yè)。
【文檔編號(hào)】G06F9/455GK104268005SQ201410566931
【公開日】2015年1月7日 申請(qǐng)日期:2014年10月22日 優(yōu)先權(quán)日:2014年10月22日
【發(fā)明者】汪晶 申請(qǐng)人:華為技術(shù)有限公司