aaa视频网站,国产最新进精品视频,国产主播一区二区,999热精品视频,а√天堂资源8在线官网在线,国产免费不卡av,麻豆国产视频

一種信息處理方法及電子設(shè)備與流程

文檔序號(hào):11250687閱讀:941來源:國知局
一種信息處理方法及電子設(shè)備與流程

本發(fā)明涉及虛擬機(jī)管理技術(shù),具體涉及一種應(yīng)用于電子設(shè)備中的信息處理方法及一種電子設(shè)備。



背景技術(shù):

目前,在虛擬化環(huán)境中,當(dāng)系統(tǒng)管理員需要對宿主機(jī)的hypervisor進(jìn)行升級時(shí),為了避免中斷在虛擬機(jī)上正在運(yùn)行的業(yè)務(wù)程序,可以采取將虛擬機(jī)從原(低版本)hypervisor1通過動(dòng)態(tài)遷移來熱升級到目標(biāo)(高版本)hypervisor2的方式。而當(dāng)所要熱升級的hypervisor1所虛擬的虛擬機(jī)帶有透傳硬件設(shè)備時(shí),虛擬機(jī)的物理透傳設(shè)備在熱升級時(shí)無法由當(dāng)前hypervisor1到目標(biāo)hypervisor2的動(dòng)態(tài)遷移中完成平滑遷移。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的主要目的在于提出一種信息處理方法及電子設(shè)備,旨在解決現(xiàn)有技術(shù)中存在的上述問題。

為實(shí)現(xiàn)上述目的,本發(fā)明提供一種信息處理方法,應(yīng)用于電子設(shè)備,包括:

獲取第一虛擬機(jī)所對應(yīng)的目標(biāo)設(shè)備的相關(guān)信息;

從所述第一虛擬機(jī)所對應(yīng)的物理存儲(chǔ)單元中選取第一存儲(chǔ)區(qū)域;其中,所述第一存儲(chǔ)區(qū)域中至少用于存儲(chǔ)所述目標(biāo)設(shè)備的相關(guān)信息;

轉(zhuǎn)換所述第一存儲(chǔ)區(qū)域的存儲(chǔ)地址得到第二存儲(chǔ)地址,建立所述第二存儲(chǔ)地址與第二控制層的映射關(guān)系;

基于所述映射關(guān)系,建立所述第二虛擬機(jī)與目標(biāo)設(shè)備的相關(guān)信息,并控制所述第二虛擬機(jī)基于所述目標(biāo)設(shè)備的相關(guān)信息,與所述目標(biāo)設(shè)備進(jìn)行數(shù)據(jù)交互

本發(fā)明提供一種電子設(shè)備,所述電子設(shè)備包括:

虛擬機(jī)管理單元,用于獲取第一虛擬機(jī)所對應(yīng)的目標(biāo)設(shè)備的相關(guān)信息;基于所述映射關(guān)系,建立所述第二虛擬機(jī)與目標(biāo)設(shè)備的相關(guān)信息,并控制所述第二虛擬機(jī)基于所述目標(biāo)設(shè)備的相關(guān)信息,與所述目標(biāo)設(shè)備進(jìn)行數(shù)據(jù)交互;

地址轉(zhuǎn)換單元,用于從所述第一虛擬機(jī)所對應(yīng)的物理存儲(chǔ)單元中選取第一存儲(chǔ)區(qū)域;其中,所述第一存儲(chǔ)區(qū)域中至少用于存儲(chǔ)所述目標(biāo)設(shè)備的相關(guān)信息;轉(zhuǎn)換所述第一存儲(chǔ)區(qū)域的存儲(chǔ)地址得到第二存儲(chǔ)地址,建立所述第二存儲(chǔ)地址與第二控制層的映射關(guān)系。

本實(shí)施例提供的信息處理方法及電子設(shè)備,能夠獲取第一虛擬機(jī)所對應(yīng)的目標(biāo)設(shè)備的相關(guān)信息,將所述第一虛擬機(jī)所對應(yīng)的物理存儲(chǔ)單元中選取的第一存儲(chǔ)區(qū)域,轉(zhuǎn)換為第二虛擬機(jī)對應(yīng)的第二存儲(chǔ)地址,建立所述第二存儲(chǔ)地址與第二控制層的映射關(guān)系,基于所述映射關(guān)系建立所述第二虛擬機(jī)與目標(biāo)設(shè)備的相關(guān)信息,并控制所述第二虛擬機(jī)與所述目標(biāo)設(shè)備進(jìn)行數(shù)據(jù)交互。如此,在進(jìn)行目標(biāo)設(shè)備在虛擬機(jī)之間遷移的時(shí)候,不需要進(jìn)行復(fù)雜的替換流程,僅需要直接轉(zhuǎn)換該設(shè)備所屬虛擬機(jī)的所有權(quán)即可實(shí)現(xiàn),從而保證透傳硬件設(shè)備的遷移更加平滑無縫,并有效縮短遷移時(shí)間。

附圖說明

圖1為本發(fā)明實(shí)施例中信息處理方法的實(shí)現(xiàn)流程示意圖1;

圖2為本發(fā)明實(shí)施例中處理示意圖1;

圖3為本發(fā)明實(shí)施例中處理示意圖2;

圖4為本發(fā)明實(shí)施例中信息處理方法的實(shí)現(xiàn)流程示意圖2;

圖5為本發(fā)明實(shí)施例中電子設(shè)備組成結(jié)構(gòu)示意圖。

具體實(shí)施方式

下面結(jié)合附圖和具體實(shí)施例對本發(fā)明作進(jìn)一步詳細(xì)說明。

實(shí)施例一、

本發(fā)明實(shí)施例提供一種信息處理方法,應(yīng)用于電子設(shè)備,所述電子設(shè)備能夠管理至少一個(gè)虛擬機(jī),如圖1所示,包括:

步驟101:獲取第一虛擬機(jī)所對應(yīng)的目標(biāo)設(shè)備的相關(guān)信息;

步驟102:從所述第一虛擬機(jī)所對應(yīng)的物理存儲(chǔ)單元中選取第一存儲(chǔ)區(qū)域;其中,所述第一存儲(chǔ)區(qū)域中至少用于存儲(chǔ)所述目標(biāo)設(shè)備的相關(guān)信息;

步驟103:轉(zhuǎn)換所述第一存儲(chǔ)區(qū)域的存儲(chǔ)地址得到第二存儲(chǔ)地址,建立所述第二存儲(chǔ)地址與第二控制層的映射關(guān)系;

步驟104:基于所述映射關(guān)系,建立所述第二虛擬機(jī)與目標(biāo)設(shè)備的相關(guān)信息,并控制所述第二虛擬機(jī)基于所述目標(biāo)設(shè)備的相關(guān)信息,與所述目標(biāo)設(shè)備進(jìn)行數(shù)據(jù)交互。

具體來說,前述步驟101,獲取第一虛擬機(jī)所對應(yīng)的目標(biāo)設(shè)備的相關(guān)信息,也就是獲取到物理設(shè)備的相關(guān)信息,其中可以包括有硬件設(shè)備上下文等信息。

所述獲取第一虛擬機(jī)所對應(yīng)的目標(biāo)設(shè)備的相關(guān)信息時(shí),所述方法還包括:

向所述目標(biāo)設(shè)備發(fā)送停止處理的指令,以使得所述目標(biāo)設(shè)備基于所述停止處理的指令暫停數(shù)據(jù)處理;至少獲取所述第一虛擬機(jī)對應(yīng)的目標(biāo)設(shè)備的上下文信息,將所述上下文信息作為所述相關(guān)信息。

其中,所述目標(biāo)設(shè)備可以為圖2所示的物理設(shè)備,比如,在物理設(shè)備中保存所有虛擬機(jī)所對應(yīng)的上下文信息以及接口信息等內(nèi)容。

向目標(biāo)設(shè)備發(fā)送暫停數(shù)據(jù)處理的指令,能夠避免虛擬機(jī)遷移過程中出現(xiàn)處理進(jìn)度不符合的問題,使得目標(biāo)設(shè)備在最終遷移至第二虛擬機(jī)之后能將處理進(jìn)度無縫切換。

進(jìn)一步地,所述從所述第一虛擬機(jī)的物理存儲(chǔ)中選取第一存儲(chǔ)區(qū)域,還包括:從所述第一虛擬機(jī)的物理存儲(chǔ)中,選取包含有所述目標(biāo)設(shè)備的相關(guān)信息、以及直接內(nèi)存訪問接口的存儲(chǔ)區(qū)域作為第一存儲(chǔ)區(qū)域。比如,參見圖3,第一虛擬機(jī)通過虛擬地址與物理地址的映射,查找到對應(yīng)的物理存儲(chǔ)區(qū)域;在物理存儲(chǔ)區(qū)域中可以存儲(chǔ)多種信息,本實(shí)施例中關(guān)鍵獲取的內(nèi)容為目標(biāo)設(shè)備的上下文信息,以及內(nèi)存訪問接口對應(yīng)的存儲(chǔ)區(qū)域;這兩個(gè)內(nèi)存對應(yīng)的存儲(chǔ)區(qū)域可以為連續(xù)的也可以為不連續(xù)的。

前述步驟103中,轉(zhuǎn)換所述第一存儲(chǔ)區(qū)域的存儲(chǔ)地址得到第二存儲(chǔ)地址,可以為將所述第一存儲(chǔ)區(qū)域?qū)?yīng)的物理地址,轉(zhuǎn)換至所述第二虛擬機(jī)的第二存儲(chǔ)區(qū)域所對應(yīng)的第二物理地址。

其中,第二虛擬機(jī)的第二存儲(chǔ)區(qū)域可以為在第二虛擬機(jī)建立時(shí)為第二虛擬機(jī)分配的存儲(chǔ)區(qū)域,包含有第二虛擬機(jī)的全部物理地址。

將所述第一存儲(chǔ)區(qū)域?qū)?yīng)的物理地址,轉(zhuǎn)換至所述第二虛擬機(jī)的第二存儲(chǔ)區(qū)域所對應(yīng)的第二物理地址的具體處理,可以為將第一存儲(chǔ)區(qū)域?qū)?yīng)的包含有目標(biāo)設(shè)備的上下文信息,以及內(nèi)存訪問接口對應(yīng)的這些存儲(chǔ)區(qū)域;進(jìn)行轉(zhuǎn)換的方式,可以為從第二虛擬機(jī)的第二存儲(chǔ)區(qū)域中,選取一定大小的子存儲(chǔ)區(qū)域,這個(gè)子存儲(chǔ)區(qū)域大小為能夠保存目標(biāo)設(shè)備的上下文信息,以及內(nèi)存訪問接口這些內(nèi)容的大小。

進(jìn)一步地,轉(zhuǎn)換存儲(chǔ)區(qū)域的方式可以為之間將這第一存儲(chǔ)區(qū)域遷移到第二存儲(chǔ)區(qū)域內(nèi)的子區(qū)域中。

本發(fā)明實(shí)施例,為了支持虛擬機(jī)帶有透傳硬件設(shè)備的本地hypervisor熱升級,在虛擬化中實(shí)現(xiàn)一個(gè)可以轉(zhuǎn)換透傳硬件設(shè)備所有權(quán)的半虛擬化翻轉(zhuǎn)模塊,可以在熱升級過程中直接將透傳硬件設(shè)備的所有權(quán)交給遷移后的虛擬機(jī)。具體來說,主要包括以下三個(gè)方面:在動(dòng)態(tài)遷移過程中保存透傳硬件設(shè)備上下文;獲取vm中相關(guān)內(nèi)存地址映射,并翻轉(zhuǎn)相關(guān)內(nèi)存區(qū)域;恢復(fù)透傳設(shè)備上下文。

可見,通過采用上述方案,就能夠獲取第一虛擬機(jī)所對應(yīng)的目標(biāo)設(shè)備的相關(guān)信息,將所述第一虛擬機(jī)所對應(yīng)的物理存儲(chǔ)單元中選取的第一存儲(chǔ)區(qū)域,轉(zhuǎn)換為第二虛擬機(jī)對應(yīng)的第二存儲(chǔ)地址,建立所述第二存儲(chǔ)地址與第二控制層的映射關(guān)系,基于所述映射關(guān)系建立所述第二虛擬機(jī)與目標(biāo)設(shè)備的相關(guān)信息,并控制所述第二虛擬機(jī)與所述目標(biāo)設(shè)備進(jìn)行數(shù)據(jù)交互。如此,在進(jìn)行目標(biāo)設(shè)備在虛擬機(jī)之間遷移的時(shí)候,不需要進(jìn)行復(fù)雜的替換流程,僅需要直接轉(zhuǎn)換該設(shè)備所屬虛擬機(jī)的所有權(quán)即可實(shí)現(xiàn),從而保證透傳硬件設(shè)備的遷移更加平滑無縫,并有效縮短遷移時(shí)間。另外,還能夠在遷移開始之前將目標(biāo)設(shè)備的處理狀態(tài)控制為暫停狀態(tài),從而避免在遷移過程中該透傳硬件設(shè)備被其它虛擬機(jī)占用。

實(shí)施例二、

本發(fā)明實(shí)施例提供一種信息處理方法,應(yīng)用于電子設(shè)備,所述電子設(shè)備能夠管理至少一個(gè)虛擬機(jī),如圖1所示,包括:

步驟101:獲取第一虛擬機(jī)所對應(yīng)的目標(biāo)設(shè)備的相關(guān)信息;

步驟102:從所述第一虛擬機(jī)所對應(yīng)的物理存儲(chǔ)單元中選取第一存儲(chǔ)區(qū)域;其中,所述第一存儲(chǔ)區(qū)域中至少用于存儲(chǔ)所述目標(biāo)設(shè)備的相關(guān)信息;

步驟103:轉(zhuǎn)換所述第一存儲(chǔ)區(qū)域的存儲(chǔ)地址得到第二存儲(chǔ)地址,建立所述第二存儲(chǔ)地址與第二控制層的映射關(guān)系;

步驟104:基于所述映射關(guān)系,建立所述第二虛擬機(jī)與目標(biāo)設(shè)備的相關(guān)信息,并控制所述第二虛擬機(jī)基于所述目標(biāo)設(shè)備的相關(guān)信息,與所述目標(biāo)設(shè)備進(jìn)行數(shù)據(jù)交互。

具體來說,前述步驟101,獲取第一虛擬機(jī)所對應(yīng)的目標(biāo)設(shè)備的相關(guān)信息,也就是獲取到物理設(shè)備的相關(guān)信息,其中可以包括有硬件設(shè)備上下文等信息。

所述獲取第一虛擬機(jī)所對應(yīng)的目標(biāo)設(shè)備的相關(guān)信息時(shí),所述方法還包括:

向所述目標(biāo)設(shè)備發(fā)送停止處理的指令,以使得所述目標(biāo)設(shè)備基于所述停止處理的指令暫停數(shù)據(jù)處理;至少獲取所述第一虛擬機(jī)對應(yīng)的目標(biāo)設(shè)備的上下文信息,將所述上下文信息作為所述相關(guān)信息。

其中,所述目標(biāo)設(shè)備可以為圖2所示的物理設(shè)備,比如,在物理設(shè)備中保存所有虛擬機(jī)所對應(yīng)的上下文信息以及接口信息等內(nèi)容。

向目標(biāo)設(shè)備發(fā)送暫停數(shù)據(jù)處理的指令,能夠避免虛擬機(jī)遷移過程中出現(xiàn)處理進(jìn)度不符合的問題,使得目標(biāo)設(shè)備在最終遷移至第二虛擬機(jī)之后能將處理進(jìn)度無縫切換。

進(jìn)一步地,所述從所述第一虛擬機(jī)的物理存儲(chǔ)中選取第一存儲(chǔ)區(qū)域,還包括:從所述第一虛擬機(jī)的物理存儲(chǔ)中,選取包含有所述目標(biāo)設(shè)備的相關(guān)信息、以及直接內(nèi)存訪問接口的存儲(chǔ)區(qū)域作為第一存儲(chǔ)區(qū)域。比如,參見圖3,第一虛擬機(jī)通過虛擬地址與物理地址的映射,查找到對應(yīng)的物理存儲(chǔ)區(qū)域;在物理存儲(chǔ)區(qū)域中可以存儲(chǔ)多種信息,本實(shí)施例中關(guān)鍵獲取的內(nèi)容為目標(biāo)設(shè)備的上下文信息,以及內(nèi)存訪問接口對應(yīng)的存儲(chǔ)區(qū)域;這兩個(gè)內(nèi)存對應(yīng)的存儲(chǔ)區(qū)域可以為連續(xù)的也可以為不連續(xù)的。

前述步驟103中,轉(zhuǎn)換所述第一存儲(chǔ)區(qū)域的存儲(chǔ)地址得到第二存儲(chǔ)地址,可以為將所述第一存儲(chǔ)區(qū)域?qū)?yīng)的物理地址,轉(zhuǎn)換至所述第二虛擬機(jī)的第二存儲(chǔ)區(qū)域所對應(yīng)的第二物理地址。

其中,第二虛擬機(jī)的第二存儲(chǔ)區(qū)域可以為在第二虛擬機(jī)建立時(shí)為第二虛擬機(jī)分配的存儲(chǔ)區(qū)域,包含有第二虛擬機(jī)的全部物理地址。

將所述第一存儲(chǔ)區(qū)域?qū)?yīng)的物理地址,轉(zhuǎn)換至所述第二虛擬機(jī)的第二存儲(chǔ)區(qū)域所對應(yīng)的第二物理地址的具體處理,可以為將第一存儲(chǔ)區(qū)域?qū)?yīng)的包含有目標(biāo)設(shè)備的上下文信息,以及內(nèi)存訪問接口對應(yīng)的這些存儲(chǔ)區(qū)域;進(jìn)行轉(zhuǎn)換的方式,可以為從第二虛擬機(jī)的第二存儲(chǔ)區(qū)域中,選取一定大小的子存儲(chǔ)區(qū)域,這個(gè)子存儲(chǔ)區(qū)域大小為能夠保存目標(biāo)設(shè)備的上下文信息,以及內(nèi)存訪問接口這些內(nèi)容的大小。

進(jìn)一步地,轉(zhuǎn)換存儲(chǔ)區(qū)域的方式可以為之間將這第一存儲(chǔ)區(qū)域遷移到第二存儲(chǔ)區(qū)域內(nèi)的子區(qū)域中。

前述步驟104所述映射關(guān)系,建立所述第二虛擬機(jī)與目標(biāo)設(shè)備的相關(guān)信息之后,所述方法還包括:基于所述映射關(guān)系,對直接內(nèi)存存取進(jìn)行重映射得到更新后的地址翻譯表,以使得所述目標(biāo)設(shè)備基于所述地址翻譯表建立所述第二虛擬機(jī)與目標(biāo)設(shè)備的相關(guān)信息。

其中,地址翻譯表可以為第二虛擬機(jī)的虛擬地址與第二虛擬機(jī)的第二存儲(chǔ)區(qū)域之間的映射關(guān)系;所述更新,也就是將目標(biāo)設(shè)備中原保存的第一虛擬機(jī)的虛擬地址與物理地址的映射關(guān)系,更新為新的地址翻譯表。

控制所述第二虛擬機(jī)基于所述目標(biāo)設(shè)備的相關(guān)信息,也就是基于更新后的地址翻譯表,控制所述第二虛擬機(jī)從所述第二物理地址中獲取所述目標(biāo)設(shè)備的相關(guān)信息;

所述控制所述第二虛擬機(jī)基于所述目標(biāo)設(shè)備的相關(guān)信息,與所述目標(biāo)設(shè)備進(jìn)行數(shù)據(jù)交互,包括:通過所述第二虛擬機(jī)向所述目標(biāo)設(shè)備發(fā)送運(yùn)行指令,使得所述目標(biāo)設(shè)備基于第二虛擬機(jī)的控制重新開始進(jìn)行數(shù)據(jù)處理。

本發(fā)明實(shí)施例提供的整體處理流程,可以結(jié)合圖2、3,以及流程圖4進(jìn)行如下說明:

在動(dòng)態(tài)遷移的設(shè)備狀態(tài)傳輸階段開始時(shí),由hypervisor向vm1發(fā)送通知,使其通過相應(yīng)設(shè)備驅(qū)動(dòng)暫停透傳設(shè)備并保存設(shè)備狀態(tài);

由hypervior1獲取vm1的物理地址(gpa)中用于dmaio及存放devicestate的內(nèi)存區(qū)域:0001f~000ff;

將該內(nèi)存區(qū)域通過頁面翻轉(zhuǎn)轉(zhuǎn)換給hypervisor2;具體的可以將hypervior1獲取vm1的物理地址(gpa)中用于dmaio及存放devicestate的內(nèi)存區(qū)域:0001f~000ff轉(zhuǎn)換至hypervisor2宿主機(jī)物理地址:0ee1f~0eeff;

將以上用于設(shè)備重定向內(nèi)存區(qū)域新的gpa->hpa的映射關(guān)系更新到dmare-mapping硬件里的地址翻譯表;

當(dāng)動(dòng)態(tài)遷移完成后,hypervisor2通知vm2設(shè)備驅(qū)動(dòng)到翻轉(zhuǎn)后的內(nèi)存地址讀取之前保存的設(shè)備狀態(tài),并恢復(fù)該透傳設(shè)備。

本發(fā)明實(shí)施例,為了支持虛擬機(jī)帶有透傳硬件設(shè)備的本地hypervisor熱升級,在虛擬化中實(shí)現(xiàn)一個(gè)可以轉(zhuǎn)換透傳硬件設(shè)備所有權(quán)的半虛擬化翻轉(zhuǎn)模塊,可以在熱升級過程中直接將透傳硬件設(shè)備的所有權(quán)交給遷移后的虛擬機(jī)。具體來說,主要包括以下三個(gè)方面:在動(dòng)態(tài)遷移過程中保存透傳硬件設(shè)備上下文;獲取vm中相關(guān)內(nèi)存地址映射,并翻轉(zhuǎn)相關(guān)內(nèi)存區(qū)域;恢復(fù)透傳設(shè)備上下文。

可見,通過采用上述方案,就能夠獲取第一虛擬機(jī)所對應(yīng)的目標(biāo)設(shè)備的相關(guān)信息,將所述第一虛擬機(jī)所對應(yīng)的物理存儲(chǔ)單元中選取的第一存儲(chǔ)區(qū)域,轉(zhuǎn)換為第二虛擬機(jī)對應(yīng)的第二存儲(chǔ)地址,建立所述第二存儲(chǔ)地址與第二控制層的映射關(guān)系,基于所述映射關(guān)系建立所述第二虛擬機(jī)與目標(biāo)設(shè)備的相關(guān)信息,并控制所述第二虛擬機(jī)與所述目標(biāo)設(shè)備進(jìn)行數(shù)據(jù)交互。如此,在進(jìn)行目標(biāo)設(shè)備在虛擬機(jī)之間遷移的時(shí)候,不需要進(jìn)行復(fù)雜的替換流程,僅需要直接轉(zhuǎn)換該設(shè)備所屬虛擬機(jī)的所有權(quán)即可實(shí)現(xiàn),從而保證透傳硬件設(shè)備的遷移更加平滑無縫,并有效縮短遷移時(shí)間。另外,還能夠在遷移開始之前將目標(biāo)設(shè)備的處理狀態(tài)控制為暫停狀態(tài),從而避免在遷移過程中該透傳硬件設(shè)備被其它虛擬機(jī)占用。

實(shí)施例三、

本發(fā)明實(shí)施例提供一種電子設(shè)備,所述電子設(shè)備能夠管理至少一個(gè)虛擬機(jī),如圖5所示,包括:

虛擬機(jī)管理單元51,用于獲取第一虛擬機(jī)所對應(yīng)的目標(biāo)設(shè)備的相關(guān)信息;基于所述映射關(guān)系,建立所述第二虛擬機(jī)與目標(biāo)設(shè)備的相關(guān)信息,并控制所述第二虛擬機(jī)基于所述目標(biāo)設(shè)備的相關(guān)信息,與所述目標(biāo)設(shè)備進(jìn)行數(shù)據(jù)交互;

地址轉(zhuǎn)換單元52,用于從所述第一虛擬機(jī)所對應(yīng)的物理存儲(chǔ)單元中選取第一存儲(chǔ)區(qū)域;其中,所述第一存儲(chǔ)區(qū)域中至少用于存儲(chǔ)所述目標(biāo)設(shè)備的相關(guān)信息;轉(zhuǎn)換所述第一存儲(chǔ)區(qū)域的存儲(chǔ)地址得到第二存儲(chǔ)地址,建立所述第二存儲(chǔ)地址與第二控制層的映射關(guān)系。

具體來說,虛擬機(jī)管理單元51,用于獲取第一虛擬機(jī)所對應(yīng)的目標(biāo)設(shè)備的相關(guān)信息,也就是獲取到物理設(shè)備的相關(guān)信息,其中可以包括有硬件設(shè)備上下文等信息。

所述虛擬機(jī)管理單元51,用于向所述目標(biāo)設(shè)備發(fā)送停止處理的指令,以使得所述目標(biāo)設(shè)備基于所述停止處理的指令暫停數(shù)據(jù)處理;至少獲取所述第一虛擬機(jī)對應(yīng)的目標(biāo)設(shè)備的上下文信息,將所述上下文信息作為所述相關(guān)信息。

其中,所述目標(biāo)設(shè)備可以為圖2所示的物理設(shè)備,比如,在物理設(shè)備中保存所有虛擬機(jī)所對應(yīng)的上下文信息以及接口信息等內(nèi)容。

向目標(biāo)設(shè)備發(fā)送暫停數(shù)據(jù)處理的指令,能夠避免虛擬機(jī)遷移過程中出現(xiàn)處理進(jìn)度不符合的問題,使得目標(biāo)設(shè)備在最終遷移至第二虛擬機(jī)之后能將處理進(jìn)度無縫切換。

進(jìn)一步地,所述從所述第一虛擬機(jī)的物理存儲(chǔ)中選取第一存儲(chǔ)區(qū)域,還包括:從所述第一虛擬機(jī)的物理存儲(chǔ)中,選取包含有所述目標(biāo)設(shè)備的相關(guān)信息、以及直接內(nèi)存訪問接口的存儲(chǔ)區(qū)域作為第一存儲(chǔ)區(qū)域。比如,參見圖3,第一虛擬機(jī)通過虛擬地址與物理地址的映射,查找到對應(yīng)的物理存儲(chǔ)區(qū)域;在物理存儲(chǔ)區(qū)域中可以存儲(chǔ)多種信息,本實(shí)施例中關(guān)鍵獲取的內(nèi)容為目標(biāo)設(shè)備的上下文信息,以及內(nèi)存訪問接口對應(yīng)的存儲(chǔ)區(qū)域;這兩個(gè)內(nèi)存對應(yīng)的存儲(chǔ)區(qū)域可以為連續(xù)的也可以為不連續(xù)的。

前述地址轉(zhuǎn)換單元52,用于轉(zhuǎn)換所述第一存儲(chǔ)區(qū)域的存儲(chǔ)地址得到第二存儲(chǔ)地址,可以為將所述第一存儲(chǔ)區(qū)域?qū)?yīng)的物理地址,轉(zhuǎn)換至所述第二虛擬機(jī)的第二存儲(chǔ)區(qū)域所對應(yīng)的第二物理地址。

其中,第二虛擬機(jī)的第二存儲(chǔ)區(qū)域可以為在第二虛擬機(jī)建立時(shí)為第二虛擬機(jī)分配的存儲(chǔ)區(qū)域,包含有第二虛擬機(jī)的全部物理地址。

將所述第一存儲(chǔ)區(qū)域?qū)?yīng)的物理地址,轉(zhuǎn)換至所述第二虛擬機(jī)的第二存儲(chǔ)區(qū)域所對應(yīng)的第二物理地址的具體處理,可以為將第一存儲(chǔ)區(qū)域?qū)?yīng)的包含有目標(biāo)設(shè)備的上下文信息,以及內(nèi)存訪問接口對應(yīng)的這些存儲(chǔ)區(qū)域;進(jìn)行轉(zhuǎn)換的方式,可以為從第二虛擬機(jī)的第二存儲(chǔ)區(qū)域中,選取一定大小的子存儲(chǔ)區(qū)域,這個(gè)子存儲(chǔ)區(qū)域大小為能夠保存目標(biāo)設(shè)備的上下文信息,以及內(nèi)存訪問接口這些內(nèi)容的大小。

進(jìn)一步地,地址轉(zhuǎn)換單元52,用于將這第一存儲(chǔ)區(qū)域遷移到第二存儲(chǔ)區(qū)域內(nèi)的子區(qū)域中。

本發(fā)明實(shí)施例,為了支持虛擬機(jī)帶有透傳硬件設(shè)備的本地hypervisor熱升級,在虛擬化中實(shí)現(xiàn)一個(gè)可以轉(zhuǎn)換透傳硬件設(shè)備所有權(quán)的半虛擬化翻轉(zhuǎn)模塊,可以在熱升級過程中直接將透傳硬件設(shè)備的所有權(quán)交給遷移后的虛擬機(jī)。具體來說,主要包括以下三個(gè)方面:在動(dòng)態(tài)遷移過程中保存透傳硬件設(shè)備上下文;獲取vm中相關(guān)內(nèi)存地址映射,并翻轉(zhuǎn)相關(guān)內(nèi)存區(qū)域;恢復(fù)透傳設(shè)備上下文。

可見,通過采用上述方案,就能夠獲取第一虛擬機(jī)所對應(yīng)的目標(biāo)設(shè)備的相關(guān)信息,將所述第一虛擬機(jī)所對應(yīng)的物理存儲(chǔ)單元中選取的第一存儲(chǔ)區(qū)域,轉(zhuǎn)換為第二虛擬機(jī)對應(yīng)的第二存儲(chǔ)地址,建立所述第二存儲(chǔ)地址與第二控制層的映射關(guān)系,基于所述映射關(guān)系建立所述第二虛擬機(jī)與目標(biāo)設(shè)備的相關(guān)信息,并控制所述第二虛擬機(jī)與所述目標(biāo)設(shè)備進(jìn)行數(shù)據(jù)交互。如此,在進(jìn)行目標(biāo)設(shè)備在虛擬機(jī)之間遷移的時(shí)候,不需要進(jìn)行復(fù)雜的替換流程,僅需要直接轉(zhuǎn)換該設(shè)備所屬虛擬機(jī)的所有權(quán)即可實(shí)現(xiàn),從而保證透傳硬件設(shè)備的遷移更加平滑無縫,并有效縮短遷移時(shí)間。另外,還能夠在遷移開始之前將目標(biāo)設(shè)備的處理狀態(tài)控制為暫停狀態(tài),從而避免在遷移過程中該透傳硬件設(shè)備被其它虛擬機(jī)占用。

實(shí)施例四、

本發(fā)明實(shí)施例提供一種電子設(shè)備,與實(shí)施例三提供的電子設(shè)備結(jié)構(gòu)相同,具體來說,虛擬機(jī)管理單元,用于獲取第一虛擬機(jī)所對應(yīng)的目標(biāo)設(shè)備的相關(guān)信息,也就是獲取到物理設(shè)備的相關(guān)信息,其中可以包括有硬件設(shè)備上下文等信息。

虛擬機(jī)管理單元,用于向所述目標(biāo)設(shè)備發(fā)送停止處理的指令,以使得所述目標(biāo)設(shè)備基于所述停止處理的指令暫停數(shù)據(jù)處理;至少獲取所述第一虛擬機(jī)對應(yīng)的目標(biāo)設(shè)備的上下文信息,將所述上下文信息作為所述相關(guān)信息。

其中,所述目標(biāo)設(shè)備可以為圖2所示的物理設(shè)備,比如,在物理設(shè)備中保存所有虛擬機(jī)所對應(yīng)的上下文信息以及接口信息等內(nèi)容。

向目標(biāo)設(shè)備發(fā)送暫停數(shù)據(jù)處理的指令,能夠避免虛擬機(jī)遷移過程中出現(xiàn)處理進(jìn)度不符合的問題,使得目標(biāo)設(shè)備在最終遷移至第二虛擬機(jī)之后能將處理進(jìn)度無縫切換。

進(jìn)一步地,所述從所述第一虛擬機(jī)的物理存儲(chǔ)中選取第一存儲(chǔ)區(qū)域,還包括:從所述第一虛擬機(jī)的物理存儲(chǔ)中,選取包含有所述目標(biāo)設(shè)備的相關(guān)信息、以及直接內(nèi)存訪問接口的存儲(chǔ)區(qū)域作為第一存儲(chǔ)區(qū)域。比如,參見圖3,第一虛擬機(jī)通過虛擬地址與物理地址的映射,查找到對應(yīng)的物理存儲(chǔ)區(qū)域;在物理存儲(chǔ)區(qū)域中可以存儲(chǔ)多種信息,本實(shí)施例中關(guān)鍵獲取的內(nèi)容為目標(biāo)設(shè)備的上下文信息,以及內(nèi)存訪問接口對應(yīng)的存儲(chǔ)區(qū)域;這兩個(gè)內(nèi)存對應(yīng)的存儲(chǔ)區(qū)域可以為連續(xù)的也可以為不連續(xù)的。

前述地址轉(zhuǎn)換單元,用于轉(zhuǎn)換所述第一存儲(chǔ)區(qū)域的存儲(chǔ)地址得到第二存儲(chǔ)地址,可以為將所述第一存儲(chǔ)區(qū)域?qū)?yīng)的物理地址,轉(zhuǎn)換至所述第二虛擬機(jī)的第二存儲(chǔ)區(qū)域所對應(yīng)的第二物理地址。

其中,第二虛擬機(jī)的第二存儲(chǔ)區(qū)域可以為在第二虛擬機(jī)建立時(shí)為第二虛擬機(jī)分配的存儲(chǔ)區(qū)域,包含有第二虛擬機(jī)的全部物理地址。

將所述第一存儲(chǔ)區(qū)域?qū)?yīng)的物理地址,轉(zhuǎn)換至所述第二虛擬機(jī)的第二存儲(chǔ)區(qū)域所對應(yīng)的第二物理地址的具體處理,可以為將第一存儲(chǔ)區(qū)域?qū)?yīng)的包含有目標(biāo)設(shè)備的上下文信息,以及內(nèi)存訪問接口對應(yīng)的這些存儲(chǔ)區(qū)域;進(jìn)行轉(zhuǎn)換的方式,可以為從第二虛擬機(jī)的第二存儲(chǔ)區(qū)域中,選取一定大小的子存儲(chǔ)區(qū)域,這個(gè)子存儲(chǔ)區(qū)域大小為能夠保存目標(biāo)設(shè)備的上下文信息,以及內(nèi)存訪問接口這些內(nèi)容的大小。

進(jìn)一步地,轉(zhuǎn)換存儲(chǔ)區(qū)域的方式可以為之間將這第一存儲(chǔ)區(qū)域遷移到第二存儲(chǔ)區(qū)域內(nèi)的子區(qū)域中。

前述虛擬機(jī)管理單元,用于基于所述映射關(guān)系,對直接內(nèi)存存取進(jìn)行重映射得到更新后的地址翻譯表,以使得所述目標(biāo)設(shè)備基于所述地址翻譯表建立所述第二虛擬機(jī)與目標(biāo)設(shè)備的相關(guān)信息。

其中,地址翻譯表可以為第二虛擬機(jī)的虛擬地址與第二虛擬機(jī)的第二存儲(chǔ)區(qū)域之間的映射關(guān)系;所述更新,也就是將目標(biāo)設(shè)備中原保存的第一虛擬機(jī)的虛擬地址與物理地址的映射關(guān)系,更新為新的地址翻譯表。

控制所述第二虛擬機(jī)基于所述目標(biāo)設(shè)備的相關(guān)信息,也就是基于更新后的地址翻譯表,控制所述第二虛擬機(jī)從所述第二物理地址中獲取所述目標(biāo)設(shè)備的相關(guān)信息;

所述控制所述第二虛擬機(jī)基于所述目標(biāo)設(shè)備的相關(guān)信息,與所述目標(biāo)設(shè)備進(jìn)行數(shù)據(jù)交互,包括:通過所述第二虛擬機(jī)向所述目標(biāo)設(shè)備發(fā)送運(yùn)行指令,使得所述目標(biāo)設(shè)備基于第二虛擬機(jī)的控制重新開始進(jìn)行數(shù)據(jù)處理。

本發(fā)明實(shí)施例提供的整體處理流程,可以結(jié)合圖2、3,以及流程圖4進(jìn)行如下說明:

在動(dòng)態(tài)遷移的設(shè)備狀態(tài)傳輸階段開始時(shí),由hypervisor向vm1發(fā)送通知,使其通過相應(yīng)設(shè)備驅(qū)動(dòng)暫停透傳設(shè)備并保存設(shè)備狀態(tài);

由hypervior1獲取vm1的物理地址(gpa)中用于dmaio及存放devicestate的內(nèi)存區(qū)域:0001f~000ff;

將該內(nèi)存區(qū)域通過頁面翻轉(zhuǎn)轉(zhuǎn)換給hypervisor2;具體的可以將hypervior1獲取vm1的物理地址(gpa)中用于dmaio及存放devicestate的內(nèi)存區(qū)域:0001f~000ff轉(zhuǎn)換至hypervisor2宿主機(jī)物理地址:0ee1f~0eeff;

將以上用于設(shè)備重定向內(nèi)存區(qū)域新的gpa->hpa的映射關(guān)系更新到dmare-mapping硬件里的地址翻譯表;

當(dāng)動(dòng)態(tài)遷移完成后,hypervisor2通知vm2設(shè)備驅(qū)動(dòng)到翻轉(zhuǎn)后的內(nèi)存地址讀取之前保存的設(shè)備狀態(tài),并恢復(fù)該透傳設(shè)備。

本發(fā)明實(shí)施例,為了支持虛擬機(jī)帶有透傳硬件設(shè)備的本地hypervisor熱升級,在虛擬化中實(shí)現(xiàn)一個(gè)可以轉(zhuǎn)換透傳硬件設(shè)備所有權(quán)的半虛擬化翻轉(zhuǎn)模塊,可以在熱升級過程中直接將透傳硬件設(shè)備的所有權(quán)交給遷移后的虛擬機(jī)。具體來說,主要包括以下三個(gè)方面:在動(dòng)態(tài)遷移過程中保存透傳硬件設(shè)備上下文;獲取vm中相關(guān)內(nèi)存地址映射,并翻轉(zhuǎn)相關(guān)內(nèi)存區(qū)域;恢復(fù)透傳設(shè)備上下文。

可見,通過采用上述方案,就能夠獲取第一虛擬機(jī)所對應(yīng)的目標(biāo)設(shè)備的相關(guān)信息,將所述第一虛擬機(jī)所對應(yīng)的物理存儲(chǔ)單元中選取的第一存儲(chǔ)區(qū)域,轉(zhuǎn)換為第二虛擬機(jī)對應(yīng)的第二存儲(chǔ)地址,建立所述第二存儲(chǔ)地址與第二控制層的映射關(guān)系,基于所述映射關(guān)系建立所述第二虛擬機(jī)與目標(biāo)設(shè)備的相關(guān)信息,并控制所述第二虛擬機(jī)與所述目標(biāo)設(shè)備進(jìn)行數(shù)據(jù)交互。如此,在進(jìn)行目標(biāo)設(shè)備在虛擬機(jī)之間遷移的時(shí)候,不需要進(jìn)行復(fù)雜的替換流程,僅需要直接轉(zhuǎn)換該設(shè)備所屬虛擬機(jī)的所有權(quán)即可實(shí)現(xiàn),從而保證透傳硬件設(shè)備的遷移更加平滑無縫,并有效縮短遷移時(shí)間。另外,還能夠在遷移開始之前將目標(biāo)設(shè)備的處理狀態(tài)控制為暫停狀態(tài),從而避免在遷移過程中該透傳硬件設(shè)備被其它虛擬機(jī)占用。

本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:移動(dòng)存儲(chǔ)設(shè)備、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。

或者,本發(fā)明上述集成的單元如果以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),也可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明實(shí)施例的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī)、服務(wù)器、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分。而前述的存儲(chǔ)介質(zhì)包括:移動(dòng)存儲(chǔ)設(shè)備、rom、ram、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。

以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1