新四季網

一種虛擬機內存數據的遷移方法及相關裝置和集群系統的製作方法

2023-10-11 22:44:44 2

一種虛擬機內存數據的遷移方法及相關裝置和集群系統的製作方法
【專利摘要】本發明實施例公開了一種虛擬機內存的遷移方法及相關裝置和集群系統。涉及通信領域,降低了虛擬機內存遷移時的處理器利用率及時間開銷。本發明實施例提供的方法包括:獲取發送第一虛擬機內存數據的數據發送請求,其中,數據發送請求包含第一虛擬機的標識,以及請求發送的內存數據的PFN;根據第一虛擬機的標識查詢對應關係信息庫,得到第一虛擬機的對應關係,根據請求發送的內存數據的PFN查詢第一虛擬機的對應關係,得到請求發送的內存數據的物理內存頁地址;通過RDMA網卡將所述請求發送的內存數據的物理內存頁地址存儲的內存數據發送至目的物理主機。
【專利說明】一種虛擬機內存數據的遷移方法及相關裝置和集群系統
【技術領域】
[0001]本發明涉及通信領域,尤其涉及一種虛擬機數據內存的遷移方法及相關裝置和集群系統。
【背景技術】
[0002]虛擬機遷移是將虛擬機的內存從源物理主機發送至目的物理主機。虛擬機遷移是虛擬機實時遷移的主要部分,虛擬機實時遷移可以在保持虛擬機運行的同時,將虛擬機從源物理主機遷移至目的物理主機,並在目的物理主機上恢復運行,實現服務整合。通過虛擬機實時遷移可以實現伺服器的在線維護、在線升級、負載均衡,並為災難恢復提供了一種解決方案。
[0003]在現有技術中,xen虛擬化平臺下,虛擬機遷移採用迭代發送虛擬機內存的方法,每次迭代時分批次地選取當次迭代的髒頁並將這些頁面映射至特權虛擬機的用戶態進程的線性地址空間,映射完成後,再調用超級調用進行頁表的更新從而建立線性地址空間與物理地址的聯繫,取得映射的線性地址後,通過用戶態的遠程直接內存讀取(RemoteDirect Memory Access,簡稱RDMA)接口註冊已映射的虛擬機內存對應的物理地址至RDMA網卡,並通過其他RDMA系統調用按照RDMA通信協議進行後續的數據傳輸。在數據成功發送後,將虛擬機的內存從用戶態進程空間中解映射,同時註銷已註冊的物理內存。
[0004]發明人發現現有技術至少存在以下問題:在虛擬化平臺下,虛擬機遷移需要映射虛擬機的內存並通過超級調用更新頁表,導致虛擬機所在的物理機中的中央處理器(Central Processing Unit,簡稱CPU)利用率及時間開銷較大。

【發明內容】

[0005]本發明實施例提供一種虛擬機內存數據的遷移方法及相關裝置和集群系統,以降低虛擬機所在的物理主機中的處理器利用率及時間開銷。
[0006]本發明實施例採用的技術方案是,
[0007]第一方面,提供了一種虛擬機內存數據的遷移方法,包括:
[0008]獲取發送第一虛擬機內存數據的數據發送請求,其中,所述數據發送請求包含所述第一虛擬機的標識,以及請求發送的內存數據的物理頁框號(Physical Frame Number,簡稱PFN);
[0009]根據所述第一虛擬機的標識查詢對應關係信息庫,得到所述第一虛擬機的對應關係,其中,所述對應關係信息庫包含待遷移的虛擬機的對應關係,所述虛擬機的對應關係為基於所述虛擬機的標識獲取所述虛擬機內存的地址空間,以及所述地址空間對應的所述虛擬機內存的PFN,以及所述虛擬機內存的PFN對應的所述虛擬機內存的物理內存頁地址後,建立的所述虛擬機內存的PFN與所述虛擬機內存的物理內存頁地址的對應關係;
[0010]根據所述請求發送的內存數據的PFN查詢所述第一虛擬機的對應關係,得到所述請求發送的內存數據的物理內存頁地址;[0011]通過RDMA網卡將所述請求發送的內存數據的物理內存頁地址上所存儲的內存數據發送至目的物理主機。
[0012]在第一種可能的實現方式中,根據第一方面,在所述獲取發送第一虛擬機內存數據的數據發送請求之前,所述方法還包括:
[0013]獲取特權虛擬機用戶態進程觸發的遷移所述第一虛擬機的內存數據的遷移請求,其中,所述遷移請求中包含所述第一虛擬機的標識;
[0014]根據所述遷移請求中的所述第一虛擬機的標識獲取所述第一虛擬機內存的地址空間;
[0015]根據所述地址空間獲取所述虛擬機內存的PFN ;
[0016]根據所述第一虛擬機內存的PFN計算所述第一虛擬機內存的物理內存頁地址;
[0017]建立所述第一虛擬機內存的PFN與所述第一虛擬機內存的物理內存頁地址之間的對應關係。
[0018]在第二種可能的實現方式中,結合第一種可能的實現方式,
[0019]在所述根據所述第一虛擬機內存的PFN計算所述第一虛擬機內存的物理內存頁地址之後,所述獲取發送第一虛擬機內存數據的數據發送請求之前,所述方法還包括:
[0020]將所述第一虛擬機內存的物理內存頁地址註冊至所述RDMA網卡。
[0021]在第三種可能的實現方式中,結合第一方面或者第一種可能的實現方式,根據所述請求發送的內存數據的PFN查詢所述第一虛擬機的對應關係,得到所述請求發送的內存數據的物理內存頁地址之後,通過RDMA網卡將所述請求發送的內存數據的物理內存頁地址上所存儲的內存數據發送至目的物理主機之前,所述方法還包括:
[0022]將所述請求發送的內存數據的物理內存頁地址註冊至所述RDMA網卡。
[0023]在第四種可能的實現方式中,結合第一方面,第一種可能的實現方式至第三種可能的實現方式中的任一種,所述獲取發送第一虛擬機內存數據的數據發送請求包括:
[0024]依序提取數據發送請求隊列中的數據發送請求,其中,所述數據發送請求包含不同的待遷移的虛擬機的數據發送請求,所述數據發送請求隊列中的數據發送請求按照時間先後或者優先級高低進行排序。
[0025]第二方面,提供了一種宿主機,包括:
[0026]獲取單元,用於獲取發送第一虛擬機內存數據的數據發送請求,其中,所述數據發送請求包含所述第一虛擬機的標識,以及請求發送的內存數據的PFN ;
[0027]第一查詢單元,用於根據所述第一虛擬機的標識查詢對應關係信息庫,得到所述第一虛擬機的對應關係,其中,所述對應關係信息庫包含待遷移的虛擬機的對應關係,所述虛擬機的對應關係為基於所述虛擬機的標識獲取所述虛擬機內存的地址空間,以及所述地址空間對應的所述虛擬機內存的PFN,以及所述虛擬機內存的PFN對應的所述虛擬機內存的物理內存頁地址後,建立的所述虛擬機內存的PFN與所述虛擬機內存的物理內存頁地址的對應關係;
[0028]第二查詢單元,用於根據所述請求發送的內存數據的PFN查詢所述第一查詢單元得到的所述第一虛擬機的對應關係,獲取所述請求發送的內存數據的物理內存頁地址;
[0029]驅動發送單元,用於通過RDMA網卡將所述第二查詢單元得到的請求發送的內存數據的物理內存頁地址上所存儲的內存數據發送至目的物理主機。[0030]在第一種可能的實現方式中,結合第二方面,
[0031 ] 所述Host還包括
[0032]建立單元,用於在所述獲取單元獲取發送第一虛擬機內存數據的數據發送請求之
N /.刖,
[0033]獲取特權虛擬機用戶態進程觸發的遷移所述第一虛擬機的內存數據的遷移請求,其中,所述遷移請求中包含所述第一虛擬機的標識;
[0034]根據所述遷移請求中的所述第一虛擬機的標識獲取所述第一虛擬機內存的地址空間;
[0035]根據所述地址空間獲取所述虛擬機內存的PFN ;
[0036]根據所述第一虛擬機內存的PFN計算所述第一虛擬機內存的物理內存頁地址;
[0037]建立所述第一虛擬機內存的PFN與所述第一虛擬機內存的物理內存頁地址之間的對應關係。
[0038]在第二種可能的實現方式中,結合第一種可能的實現方式,
[0039]所述Host還包括:第一註冊單元,用於在所述建立單元根據所述第一虛擬機內存的PFN計算所述第一虛擬機內存的物理內存頁地址之後,所述獲取單元獲取發送第一虛擬機內存數據的數據發送請求之前,
[0040]將所述建立單元獲取的第一虛擬機內存的物理內存頁地址註冊至所述RDMA網卡。
[0041]在第三種可能的實現方式中,結合第二方面或者第一種可能的實現方式,
[0042]所述Host還包括:第二註冊單元,用於在所述第二查詢單元根據所述請求發送的內存數據的PFN查詢所述第一虛擬機的對應關係,得到所述請求發送的內存數據的物理內存頁地址之後,所述驅動發送單元通過RDMA網卡將所述請求發送的內存數據的物理內存頁地址上所存儲的內存數據發送至目的物理主機之前,
[0043]將所述第二查詢單元得到的請求發送的內存數據的物理內存頁地址註冊至所述RDMA網卡。
[0044]在第四種可能的實現方式中,結合第二方面,第一種可能的實現方式至第三種可能的實現方式中的任一種,所述獲取單元具體用於,依序提取數據發送請求隊列中的數據發送請求,其中,所述數據發送請求包含不同的待遷移的虛擬機的數據發送請求,所述數據發送請求隊列中的數據發送請求按照時間先後或者優先級高低進行排序。
[0045]第三方面,提供一種物理主機,包括:硬體層、運行在所述硬體層之上的Host、以及運行在所述Host之上至少一個虛擬機VM,以及所述硬體層包括遠程直接內存讀取RDMA網卡;所述至少一個虛擬機包括第一虛擬機,其中,
[0046]所述Host用於:
[0047]獲取發送第一虛擬機內存數據的數據發送請求,其中,所述數據發送請求包含所述第一虛擬機的標識,以及請求發送的內存數據的物理頁框號PFN ;
[0048]根據所述第一虛擬機的標識查詢對應關係信息庫,得到所述第一虛擬機的對應關係,其中,所述對應關係信息庫包含待遷移的虛擬機的對應關係,所述虛擬機的對應關係為基於所述虛擬機的標識獲取所述虛擬機內存的地址空間,以及所述地址空間對應的所述虛擬機內存的PFN,以及所述虛擬機內存的PFN對應的所述虛擬機內存的物理內存頁地址後,建立的所述虛擬機內存的PFN與所述虛擬機的物理內存頁地址的對應關係;
[0049]根據所述請求發送的內存數據的PFN查詢所述第一虛擬機的對應關係,得到所述請求發送的內存數據的物理內存頁地址;
[0050]通過遠程直接內存讀取RDMA網卡將所述請求發送的內存數據的物理內存頁地址上所存儲的內存數據發送至目的物理主機。
[0051]在第一種可能的實現方式中,結合第三方面,
[0052]所述Host還用於:
[0053]在獲取發送第一虛擬機內存數據的數據發送請求之前,
[0054]獲取特權虛擬機用戶態進程觸發的遷移所述第一虛擬機的內存數據的遷移請求,其中,所述遷移請求中包含所述第一虛擬機的標識;
[0055]根據所述遷移請求中的所述第一虛擬機的標識獲取所述第一虛擬機內存的地址空間;
[0056]根據所述地址空間獲取所述虛擬機內存的PFN ;
[0057]根據所述第一虛擬機內存的PFN計算所述第一虛擬機內存的物理內存頁地址;
[0058]建立所述第一虛擬機內存的PFN與所述第一虛擬機內存的物理內存頁地址之間的對應關係。
[0059]在第二可能的實現方式中,結合第一種可能的實現方式,
[0060]所述Host還用於:
[0061]在根據所述第一虛擬機內存的PFN計算所述第一虛擬機內存的物理內存頁地址之後,以及獲取發送第一虛擬機內存數據的數據發送請求之前,
[0062]將所述第一虛擬機內存的物理內存頁地址註冊至所述RDMA網卡。
[0063]在第三可能的實現方式中,結合第三方面或者第一種可能的實現方式,
[0064]所述Host還用於:在根據所述請求發送的內存數據的PFN查詢所述第一虛擬機的對應關係,得到所述請求發送的內存數據的物理內存頁地址之後,通過RDMA網卡將所述請求發送的內存數據的物理內存頁地址上所存儲的內存數據發送至目的物理主機之前,
[0065]將所述請求發送的內存數據的物理內存頁地址註冊至所述RDMA網卡。
[0066]第四方面,提供一種集群系統,包括:多臺上述任一項所述的物理主機,所述多臺物理主機包括源物理主機和目的物理主機,其中每臺物理主機包括硬體層、運行在所述硬體層之上的Host、以及運行在所述Host之上的至少一個虛擬機VM,以及所述硬體層包括RDMA網卡。
[0067]由上可見,本發明實施例的物理主機可包括:硬體層、運行在該硬體層之上的Host、以及運行在該Host之上的至少一個虛擬機VM,該硬體層包括RDMA網卡,所述至少一個虛擬機包括第一虛擬機;其中,該Host用於獲取發送第一虛擬機內存數據的數據發送請求,其中,該數據發送請求包含第一虛擬機的標識,以及請求發送的內存數據的PFN;該Host根據第一虛擬機的標識查詢對應關係信息庫,獲取第一虛擬機的對應關係,其中,該對應關係信息庫包含待遷移的虛擬機的對應關係,虛擬機的對應關係為基於該虛擬機的標識獲取該虛擬機內存的地址空間,以及該地址空間對應的該虛擬機內存的PFN,以及該虛擬機內存的PFN對應的該虛擬機內存的物理內存頁地址後,建立的該虛擬機內存的PFN與物理內存頁地址的對應關係;所以,該Host可根據請求發送的內存數據的PFN查詢第一虛擬機的對應關係,獲取請求發送的內存數據的物理內存頁地址;並通過RDMA網卡將請求發送的內存數據的物理內存頁地址上所存儲的內存數據發送至目的物理主機。如此,在虛擬機遷移的過程中,不需要將虛擬機的內存映射到用戶態空間並通過超級調用更新頁表,通過該待遷移虛擬的對應關係以及數據發送求中的PFN,可直接查詢獲取請求發送的內存數據對應的物理內存頁地址,進而大大降低了虛擬機所在的物理機中的處理器利用率及時間開銷,一定程度上解決了現有技術中由於在虛擬化平臺下,虛擬機遷移的過程中,需要將虛擬機的內存映射到用戶態空間並通過超級調用更新頁表,導致虛擬機所在的物理機中的處理器利用率及時間開銷較大的問題。
【專利附圖】

【附圖說明】
[0068]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0069]圖1為本發明實施例提供的一種虛擬機內存數據遷移方法的流程示意圖;
[0070]圖2為本發明實施例提供的一種應用場景的示意圖;
[0071]圖3為本發明實施例提供的另一種虛擬機內存數據遷移方法的流程示意圖;
[0072]圖4為本發明實施例提供的一種數據發送請求隊列的示意圖;
[0073]圖5為本發明實施例提供的再一種虛擬機內存數據遷移的方法的流程示意圖;
[0074]圖6為本發明實施例提供的一種宿主機的結構示意圖;
[0075]圖7為本發明實施例提供的另一種宿主機的結構示意圖;
[0076]圖8為本發明實施例提供的另一種宿主機的結構示意圖;
[0077]圖9為本發明實施例提供的一種物理主機的裝置結構示意圖;
[0078]圖10為本發明實施例提供的另一種物理主機的裝置結構示意圖;
[0079]圖11為本發明實施例提供的一種集群系統示意圖。
【具體實施方式】
[0080]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
[0081 ] 為了方便理解本發明實施例,首先在此介紹本發明實施例描述中會引入的幾個術語;
[0082]虛擬機VM:通過虛擬機軟體可以在一臺物理主機上模擬出一臺或者多臺虛擬的計算機,而這些虛擬機就像真正的計算機那樣進行工作,虛擬機上可以安裝作業系統和應用程式,虛擬機還可訪問網絡資源。對於在虛擬機中運行的應用程式而言,虛擬機就像是在真正的計算機中進行工作。
[0083]硬體層:虛擬化環境運行的硬體平臺。其中,硬體層可包括多種硬體,例如某物理主機的硬體層可包括處理器(例如CPU)和內存,還可以包括網卡(例如RDMA網卡)、存儲器等等高速/低速輸入/輸出(I/o, Input/Output)設備,及具有特定處理功能的其它設備。
[0084]宿主機(Host):作為管理層,用以完成硬體資源的管理、分配;為虛擬機呈現虛擬硬體平臺;實現虛擬機的調度和隔離。其中,Host可能是虛擬機監控器(VMM);此外,有時VMM和I個特權虛擬機配合,兩者結合組成Host。其中,虛擬硬體平臺對其上運行的各個虛擬機提供各種硬體資源,如提供虛擬處理器(如VCPU)、虛擬內存、虛擬磁碟、虛擬網卡等等。其中,該虛擬磁碟可對應Host的一個文件或者一個邏輯塊設備。虛擬機運行在Host為其準備的虛擬硬體平臺上,Host上運行一個或多個虛擬機。
[0085]特權虛擬機:一種特殊的虛擬機,亦可稱為驅動域,例如這種特殊的虛擬機在XenHypervisor平臺上被稱作DomO,在該虛擬機中安裝了例如網卡、SCSI磁碟等真實物理設備的驅動程序,能檢測和直接訪問這些真實物理設備。其他虛擬機利用Hypervisor提供的相應機制通過特權虛擬機訪問真實物理設備。
[0086]應理解,本發明實施例可以應用於xen虛擬機平臺中,也可以應用於可以應用於任意一個遷移虛擬機時需要將虛擬機內存進行映射的虛擬化平臺中;本發明實施例對此不進行限制。
[0087]實施例一
[0088]參見圖1,為本發明實施例提供的一種虛擬機內存數據的遷移方法,如圖1所示,可以包括以下步驟:
[0089]101:獲取發送第一虛擬機內存數據的數據發送請求,其中,所述數據發送請求包含所述第一虛擬機的標識,以及請求發送的內存數據的PFN ;
[0090]本發明實施例中提供的方法,可以由第一虛擬機所在的物理主機執行,例如,可以由該物理主機上的Host執行,Host為VMM和運行在該VMM上的特權虛擬機的結合。數據發送請求由特權虛擬機上的用戶態進程發送給特權虛擬機。虛擬機的標識可以為任何能夠唯一表示虛擬機的參數,例如,可以為虛擬機的域名。
[0091]102:根據所述第一虛擬機的標識查詢對應關係信息庫,得到所述第一虛擬機的對應關係,其中,所述對應關係信息庫包含待遷移的虛擬機的對應關係,所述虛擬機的對應關係為基於所述虛擬機的標識獲取所述虛擬機內存的地址空間,以及所述地址空間對應的所述虛擬機內存的PFN,以及所述虛擬機內存的PFN對應的所述虛擬機內存的物理內存頁地址後,建立的所述虛擬機內存的PFN與所述虛擬機的物理內存頁地址的對應關係;
[0092]103:根據所述請求發送的內存數據的PFN查詢所述第一虛擬機的對應關係,得到所述請求發送的內存數據的物理內存頁地址;
[0093]104:通過遠程直接內存讀取RDMA網卡將所述請求發送的內存數據的物理內存頁地址上所存儲的內存數據發送至目的物理主機。
[0094]可選的,在所述獲取發送第一虛擬機內存數據的數據發送請求之前,所述方法還包括:
[0095]獲取特權虛擬機用戶態進程觸發的遷移所述第一虛擬機的內存數據的遷移請求,其中,所述遷移請求中包含所述第一虛擬機的標識;
[0096]根據所述遷移請求中的所述第一虛擬機的標識獲取所述第一虛擬機內存的地址空間;
[0097]根據所述地址空間獲取所述虛擬機內存的PFN ;[0098]根據所述第一虛擬機內存的PFN計算所述第一虛擬機內存的物理內存頁地址;
[0099]建立所述第一虛擬機內存的PFN與所述第一虛擬機內存的物理內存頁地址之間的對應關係。
[0100]進一步的,該方法還包括將第一虛擬機內存數據的物理頁內存地址註冊給RDMA網卡的過程,具體可以通過以下兩種方式中任意一種方式來實現:
[0101]1、在所述根據所述第一虛擬機內存的PFN計算所述第一虛擬機內存的物理內存頁地址之後,所述獲取發送第一虛擬機內存數據的數據發送請求之前,將所述第一虛擬機內存的物理內存頁地址註冊至所述RDMA網卡。
[0102]在這種方式下,將第一虛擬機全部內存的物理內存頁地址一次註冊給RDMA網卡,例如,第一虛擬機全部內存對應的物理內存頁地址為0x00010000~OxOOOlffffJl^f0x00010000~OxOOOlfTfT —次性全部註冊至RDMA網卡。
[0103]2、在根據所述請求發送的內存數據的PFN查詢所述第一虛擬機的對應關係,得到所述請求發送的內存數據的物理內存頁地址之後,通過RDMA網卡將所述請求發送的內存數據的物理內存頁地址上所存儲的內存數據發送至目的物理主機之前,將所述請求發送的內存數據的物理內存頁地址註冊至所述RDMA網卡。
[0104]在這種方式下,根據每次的數據發送請求,分別就將每個數據發送請求請求發送的內存數據的物理內存頁地址分批次的註冊至RDMA網卡,例如,第一虛擬機全部內存對應的物理內存頁地址為0x00010000~OxOOOlffff,第一個數據發送請求請求發送的內存數據的物理內存頁地址為0x00010000~OxOOOlOOff,則在獲取第一個數據發送請求之後,通過RDMA網卡將物理內存頁地址0x00010000~OxOOOlOOff上存儲的內存數據發送給目的物理主機之前,將物理內存頁地址0x00010000~OxOOOlffff註冊至RDMA網卡;再例如,第二個數據發送請求請求發送的內存數據的物理內存頁地址為0x00010100~OxOOOlOlff,則在獲取第二個數據發送請求之後,通過RDMA網卡將物理內存頁地址0x00010100~OxOOOlOlff上存儲的內存數據發送給目的物理主機之前,將物理內存頁地址 0x00010100 ~OxOOOlOlff 註冊至 RDMA 網卡。
[0105]本發明實施例的虛擬機內存數據的遷移方法,通過獲取發送第一虛擬機內存數據的數據發送請求,其中,該數據發送請求包含第一虛擬機的標識,以及請求發送的內存數據的PFN ;根據第一虛擬機的標識查詢對應關係信息庫,獲取第一虛擬機的對應關係,其中,該對應關係信息庫包含待遷移的虛擬機的對應關係,虛擬機的對應關係為基於該虛擬機的標識獲取該虛擬機內存的地址空間,以及該地址空間對應的該虛擬機內存的PFN,以及該虛擬機內存的PFN對應的該虛擬機內存的物理內存頁地址後,建立的該虛擬機內存的PFN與物理內存頁地址的對應關係;所以,可根據請求發送的內存數據的PFN查詢第一虛擬機的對應關係,獲取請求發送的內存數據的物理內存頁地址;再通過RDMA網卡將請求發送的內存數據的物理內存頁地址存儲的內存數據發送至目的物理主機。如此,在虛擬機遷移的過程中,不需要將虛擬機的內存映射到用戶態空間並通過超級調用更新頁表,通過該待遷移虛擬的對應關係以及數據發送求中的PFN,可直接查詢獲取請求發送的內存數據對應的物理內存頁地址,進而大大降低了虛擬機所在的物理機中的處理器利用率及時間開銷,一定程度上解決了現有技術中由於在虛擬化平臺下,虛擬機遷移的過程中,需要將虛擬機的內存映射到用戶態空間並通過超級調用更新頁表,導致虛擬機所在的物理機中的處理器利用率及時間開銷較大的問題。
[0106]下面通過具體的實施例對上述方法實施例進行說明。
[0107]本發明實施例的虛擬機內存數據的遷移方法可以應用於集群系統,該集群系統包含多臺物理主機,多臺物理主機包括源物理主機和目的物理主機,其中,每臺物理主機包括硬體層、運行在該硬體層之上的Host、以及運行在該Host之上的至少一個虛擬機VM,以及該硬體層包括RDMA網卡,處理器和內存,參見圖2,為本發明實施例設定的一種集群系統的應用場景,下述具體實施例在該場景下進行具體說明,包括兩臺物理主機100和200,以及專用光纜300。兩臺物理主機100和200的硬體層分別包含RDMA網卡13、23,處理器12、22,內存11、21,其中,內存11、內存21可以為共享內存,RDMA網卡13、23可以為無線寬帶(InfiniBand)卡或乙太網(RDMA over Converged Ethernet,簡稱 RoCE)卡等,物理主機100和101的硬體層上分別運行有Hostl7、27,其中,Hostl7由VMM14和VMM14上運行的特權虛擬機15結合組成,Host27由VMM24和VMM24上運行的特權虛擬機25結合組成,,VMM14、24上分別運行有至少一個虛擬機16、26,虛擬機為特權虛擬機之外的其他虛擬機。特權虛擬機15、25上分別加載了 RDMA網卡13、23對應的網卡驅動。
[0108]專用光纜300用於連接兩臺物理主機上的RDMA網卡,專用光纜300可以為四通道SFP接口(Quad Small Form-factor Pluggable,簡稱QSPF),也可以為其它型號的光纜,本發明實施例對此不進行限制。上述共享存儲可以為存儲網絡(Storage Area Network,簡稱 SAN),也可以為小型計算機系統接口( Internet Small Computer SystemInterface,簡稱iSCSI)或網絡連接式存儲(Network Attached Storage,簡稱NAS),本發明實施例對此不進行限制。具體場景為將物理主機100 (源物理主機)上的虛擬機16遷移到物理主機200(目的物理主機)上。本發明實施例僅對將虛擬機實時遷移中的虛擬機遷移部分進行詳細說明。
[0109]實施例二
[0110]參見圖3,為本發明實施例提供的另一種虛擬機內存數據的遷移方法,該方法可以由物理主機100來執行,例如,可以由物理主機100運行的Hostl7執行,如圖3所示,可以包括以下步驟:
[0111]S301:獲取特權虛擬機15用戶態進程發送的虛擬機的遷移命令,其中,虛擬機的遷移命令包含虛擬機的標識;
[0112]示例性的,虛擬機可以為一個,也可以為多個,本發明實施例對此不進行限制,但虛擬機所在的源物理主機相同。
[0113]示例性的,Hostl7中的特權虛擬機15上加載了 RDMA網卡13對應的網卡驅動,並封裝了所有的RDMA通信接口,每個RDMA通信接口分別用於特權虛擬機內用戶態與內核態之間交互,一個RDMA通信接口對應於一個虛擬機,例如,有三個虛擬機,分別為虛擬機1、虛擬機2和虛擬機3,虛擬機I對應RDMA通信接口 I,虛擬機2對應RDMA通信接口 2,虛擬機3對應RDMA通信接口 3,RDMA通信接口 1、RDMA通信接口 2和RDMA通信接口 3都封裝在特權虛擬機的網卡驅動中。其中,RDMA通信接口用於創建保護域、隊列對等。
[0114]示例性的,一個用戶態進程對應一個虛擬機,例如,有三個虛擬機,分別為虛擬機1、虛擬機2和虛擬機3,虛擬機I對應RDMA通信接口 I和用戶態進程I,虛擬機2對應RDMA通信接口 2和用戶態進程2,虛擬機3對應RDMA通信接口 3和用戶態進程3,RDMA通信接口 1、RDMA通信接口 2和RDMA通信接口 3都封裝在特權虛擬機15中,特權虛擬機15中的RDMA通信接口 1、RDMA通信接口 2和RDMA通信接口 3分別接收用戶態進程1、用戶態進程2和用戶態進程3分別發送的虛擬機1、虛擬機2和虛擬機3的遷移命令。[0115]示例性的,虛擬機的標識可以為虛擬機的域名(IDentity,簡稱ID),也可以為可以唯一代表虛擬機的其它標識,本發明實施例對此不進行限制。
[0116]S302:根據虛擬機的標識建立虛擬機的對應關係,對應關係為虛擬機內存的PFN與物理內存頁地址的對應關係;
[0117]示例性的,Hostl7中的VMM14可以根據所述遷移請求中的所述虛擬機的標識獲取所述虛擬機內存的地址空間;
[0118]然後根據所述地址空間獲取所述虛擬機內存的PFN ;
[0119]再根據所述虛擬機內存的PFN計算所述虛擬機內存的物理內存頁地址;
[0120]建立所述虛擬機內存的PFN與所述虛擬機內存的物理內存頁地址之間的對應關係O
[0121]示例性的,例如,若虛擬機1、虛擬機2和虛擬機3分別對應一個虛擬機的域ID,Hostl7中的VMM14根據虛擬機I的域ID可以查詢虛擬機I對應的地址空間,進而獲取該虛擬機I對應的PFN,假設虛擬機I的PFN範圍為O~65535,VMM14根據虛擬機I的PFN計算虛擬機I對應的物理內存頁地址,假設為0x00010000~0x0001ffff,Hostl7可以基於此建立兩者的對應關係,虛擬機2和虛擬機3與虛擬機I類似。
[0122]其中,虛擬機的對應關係可以為虛擬機內存的PFN與物理內存頁地址的--對應
的關係表的形式,也可以為其它可以包含虛擬機內存的PFN與物理內存頁地址的對應關係的任意形式,本發明實施例對此不進行限制。
[0123]S303:將虛擬機內存的PFN對應的物理內存頁地址註冊至RDMA網卡;
[0124]其中,可以根據S302建立虛擬機的對應關係過程中獲取的虛擬機內存的物理內存頁地址,將虛擬機全部內存的物理頁地址註冊至RDMA網卡,也可以根據虛擬機的標識查詢對應關係庫,獲取該虛擬機的對應關係,再根據該對應關係查找該虛擬機內存的PFN對應的物理內存頁地址,然後將虛擬機全部內存的物理頁地址註冊至RDMA網卡。其中,對應關係庫中可以包含每一個待遷移的虛擬機的對應關係。
[0125]例如,根據虛擬機I的標識查詢對應關係庫,得到虛擬機I的對應關係,再根據虛擬機I內存的PFN查詢虛擬機I的對應關係,獲取虛擬機I內存的物理內存頁地址,將虛擬機I內存的物理內存頁地址註冊至RDMA網卡。
[0126]示例性的,若待遷移的虛擬機包含更多個,則可以將所有虛擬機內存的物理內存頁地址分別註冊至RDMA網卡13。
[0127]S304:獲取虛擬機對應的用戶態進程觸發的數據發送請求,其中,該數據發送請求包含用戶態進程對應的虛擬機的標識,以及請求發送的內存數據的PFN ;
[0128]例如,如果有三個用戶態進程,分別請求發送虛擬機1、虛擬機2和虛擬機3的部分內存數據,接收虛擬機I對應的用戶態進程I發送的數據發送請求1,以及虛擬機2對應的用戶態進程2發送的數據發送請求2,以及虛擬機3對應的用戶態進程3發送的數據發送請求3。
[0129]其中,數據發送請求I包含虛擬機I的標識和用戶態進程I請求發送的虛擬機I的內存數據的PFN、數據發送請求2包含虛擬機2的標識和用戶態進程2請求發送的虛擬機2的內存數據的PFN、數據發送請求3中包含虛擬機3的標識和用戶態進程3請求發送的虛擬機3的內存數據的PFN。
[0130]示例性的,若待遷移的虛擬機個數包含更多個時,獲取每一個虛擬機分別對應的用戶態進程發送的數據發送請求,每個用戶態進程管理對應的虛擬機內存數據的遷移。
[0131]S305:將數據發送請求分別放入數據發送請求隊列中;
[0132]可選的,可以按照獲取到數據發送請求的時間的先後順序將數據發送請求分別放入數據發送請求隊列中,例如,如圖4,為本發明實施例提供的一種數據發送請求隊列的示意圖,如圖所示,若依次獲取到數據發送請求1,數據發送請求2,數據發送請求3,則,首先,將用戶態進程I發送的數據發送請求I放入數據發送請求隊列中,然後,將用戶態進程2發送的數據發送請求2放入數據發送請求I後面的數據發送請求隊列中,再然後,將用戶態進程3發送的數據發送請求3放入數據發送請求2後面的數據發送請求隊列中。
[0133]可選的,可以按照獲取的數據發送請求的優先級將數據發送請求分別放入數據發送請求隊列中,例如,若獲取到3個數據發送請求,優先級由高到低依次為數據發送請求1,數據發送請求2,數據發送請求3,則,首先,將用戶態進程I發送的數據發送請求I放入數據發送請求隊列中,然後,將用戶態進程2發送的數據發送請求2放入數據發送請求I後面的數據發送請求隊列中,再然後,將用戶態進程3發送的數據發送請求3放入數據發送請求2後面的數據發送請求隊列中。
[0134]當然,若虛擬機的個數包含更多個,則可以按上述方式將每個虛擬機對應的用戶態進程分別發送的數據發送請求按序放入數據發送請求隊列中。
[0135]S306:按順序提取數據發送請求隊列中的數據發送請求;
[0136]例如,如圖4所示,首先從數據發送請求隊列中提取數據發送請求1,再提取數據發送請求2,最後提取發送請求3。
[0137]S307:根據提取數據發送請求中虛擬機標識查詢對應關係庫,得到該虛擬機的對應關係;
[0138]S308:根據數據發送請求中的PFN查詢該虛擬機的對應關係,查找數據發送請求請求發送的內存數據的物理內存頁地址;
[0139]S309:通過RDMA網卡依次數據發送請求隊列中的數據發送請求請求發送的內存數據的物理內存頁地址存儲的數據至目的物理主機200 ;
[0140]S310:異步通知每一個用戶態進程;
[0141]例如,通過RDMA網卡發送完數據發送請求I的內存數據後,異步通知數據發送請求I對應的用戶態進程I ;通過RDMA網卡發送完數據發送請求2的內存數據後,通知數據發送請求2對應的用戶態進程2 ;通過RDMA網卡發送完數據發送請求3的內存數據後,異步通知數據發送請求3對應的用戶態進程3。
[0142]S311:虛擬機16的內存數據是否全部發送至目的物理機200,若否,則執行步驟312,若是,則執行步驟313 ;
[0143]S312:再按序執行S305-S311步驟;
[0144]其中,在上述發送數據的過程中,可以採用迭代的方式來發送,以保證虛擬機16在遷移過程中的正常運行。[0145]S313:將虛擬機16的對應關係刪除,並注消虛擬機16內存,將虛擬機16在源物理機100上銷毀;進而,虛擬機26在目的物理主機200上被啟動。
[0146]至此,完成虛擬機16從源物理主機100遷移至目的物理主機200的過程。
[0147]由上可見,本發明實施例中,通過獲取特權虛擬機用戶態進程發送的虛擬機的遷移命令,並根據每個虛擬機的遷移命令中包含的虛擬機的標識建立每個虛擬機內存的PFN與物理內存頁地址的對應關係;根據每個虛擬機的對應關係,可以獲取每個虛擬機內存的PFN對應的物理內存頁地址,並將每個虛擬機的物理內存頁地址註冊至該RDMA網卡;再通過RDMA網卡將請求發送的內存數據的物理內存頁地址存儲的內存數據發送至目的物理主機。如此,在虛擬機遷移的過程中,不需要將虛擬機的內存映射到用戶態空間並通過超級調用更新頁表,通過該待遷移虛擬的對應關係以及數據發送求中的PFN,可直接查詢獲取請求發送的內存數據對應的物理內存頁地址,進而大大降低了虛擬機所在的物理機中的處理器利用率及時間開銷,一定程度上解決了現有技術中由於在虛擬化平臺下,虛擬機遷移的過程中,需要將虛擬機的內存映射到用戶態空間並通過超級調用更新頁表,導致虛擬機所在的物理機中的處理器利用率及時間開銷較大的問題。
[0148]而且,因為在RDMA網卡發送數據前,把每個虛擬機的物理內存頁地址一次性註冊至該RDMA網卡,可以保證RDMA網卡根據用戶態進程發送的數據發送請求成功傳輸相關的數據;更進一步的,
[0149]可以將分別獲取的每一個虛擬機對應的用戶態進程的數據發送請求通過數據發送請求隊列進行統一管理,可以實現針對不同的用戶態進程的數據遷移設置不同優先級,進而對不同的業務進行QoS優化,提高虛擬機遷移的性能。
[0150]實施例三
[0151]參見圖5,為本發明實施例提供的另一種虛擬機遷移的方法,該方法可以由物理主機100來執行,例如,可以由物理主機100運行的Hostl7執行,如圖5所示,可以包括以下步驟:
[0152]S501:獲取特權虛擬機用戶態進程發送的虛擬機的遷移命令,其中,虛擬機的遷移命令包含虛擬機的標識;
[0153]示例性的,虛擬機可以為一個,也可以為多個,本發明實施例對此不進行限制,但虛擬機所在的源物理主機相同。
[0154]示例性的,Hostl7中的特權虛擬機15上加載了 RDMA網卡13對應的網卡驅動,並封裝了所有的RDMA通信接口,每個RDMA通信接口分別用於特權虛擬機內用戶態與內核態之間交互,一個RDMA通信接口對應於一個虛擬機,例如,有三個虛擬機,分別為虛擬機1、虛擬機2和虛擬機3,虛擬機I對應RDMA通信接口 I,虛擬機2對應RDMA通信接口 2,虛擬機3對應RDMA通信接口 3,RDMA通信接口 1、RDMA通信接口 2和RDMA通信接口 3都封裝在特權虛擬機的網卡驅動中。其中,RDMA通信接口用於創建保護域、隊列對等。
[0155]示例性的,一個用戶態進程對應一個虛擬機,例如,有三個虛擬機,分別為虛擬機
1、虛擬機2和虛擬機3,虛擬機I對應RDMA通信接口 I和用戶態進程I,虛擬機2對應RDMA通信接口 2和用戶態進程2,虛擬機3對應RDMA通信接口 3和用戶態進程3,RDMA通信接口 1、RDMA通信接口 2和RDMA通信接口 3都封裝在特權虛擬機15中,特權虛擬機15中的RDMA通信接口 1、RDMA通信接口 2和RDMA通信接口 3分別接收用戶態進程1、用戶態進程2和用戶態進程3分別發送的虛擬機1、虛擬機2和虛擬機3的遷移命令。
[0156]示例性的,虛擬機的標識可以為虛擬機的域名(IDentity,簡稱ID),也可以為可以唯一代表虛擬機的其它標識,本發明實施例對此不進行限制。
[0157]S502:根據虛擬機的標識建立虛擬機的對應關係,虛擬機的對應關係包含虛擬機內存的PFN與物理內存頁地址的對應關係;
[0158]示例性的,Hostl7中的VMM14可以根據所述遷移請求中的所述虛擬機的標識獲取所述虛擬機內存的地址空間;
[0159]然後根據所述地址空間獲取所述虛擬機內存的PFN ;
[0160]再根據所述虛擬機內存的PFN計算所述虛擬機內存的物理內存頁地址;
[0161]建立所述虛擬機內存的PFN與所述虛擬機內存的物理內存頁地址之間的對應關係O
[0162]示例性的,例如,若虛擬機1、虛擬機2和虛擬機3分別對應一個虛擬機的域ID,Hostl7中的VMM14根據虛擬機I的域ID可以查詢虛擬機I對應的地址空間,進而獲取該虛擬機I對應的PFN,假設虛擬機I的PFN範圍為O~65535,VMM14根據虛擬機I的PFN計算虛擬機I對應的物理內存頁地址,假設為0x00010000~0x0001ffff,Hostl7可以基於此建立兩者的對應關係,虛擬機2和虛擬機3與虛擬機I類似。
[0163]其中,虛擬機的對應關係可以為虛擬機內存的PFN與物理內存頁地址的--對應
的關係表的形式,也可以為其它可以包含虛擬機內存的PFN與物理內存頁地址的對應關係的任意形式,本發明實施例對此不進行限制。
[0164]S503:獲取虛擬機對應的用戶態進程觸發的數據發送請求,其中,該數據發送請求包含用戶態進程對應的虛擬機的標識,以及請求發送的內存數據的PFN ;
[0165]例如,如果有三個用戶態進程,分別請求發送虛擬機1、虛擬機2和虛擬機3的部分內存數據,獲取虛擬機I對應的用戶態進程I觸發的數據發送請求1,以及虛擬機2對應的用戶態進程2觸發的數據發送請求2,以及虛擬機3對應的用戶態進程3觸發的數據發送請求3。
[0166]其中,數據發送請求I包含虛擬機I的標識和用戶態進程I請求發送的虛擬機I的內存數據的PFN、數據發送請求2包含虛擬機2的標識和用戶態進程2請求發送的虛擬機2的內存數據的PFN、數據發送請求3中包含虛擬機3的標識和用戶態進程3請求發送的虛擬機3的內存數據的PFN。
[0167]示例性的,若待遷移的虛擬機個數包含更多個時,獲取每一個虛擬機分別對應的用戶態進程觸發的數據發送請求,每個用戶態進程管理對應的虛擬機內存數據的遷移。
[0168]S504:將數據發送請求分別放入數據發送請求隊列中;
[0169]可選的,可以按照獲取到數據發送請求的時間的先後順序將數據發送請求分別放入數據發送請求隊列中,例如,如圖4,為本發明實施例提供的一種數據發送請求隊列的示意圖,如圖所示,若依次獲取到數據發送請求1,數據發送請求2,數據發送請求3,則,首先,將用戶態進程I發送的數據發送請求I放入數據發送請求隊列中,然後,將用戶態進程2發送的數據發送請求2放入數據發送請求I後面的數據發送請求隊列中,再然後,將用戶態進程3發送的數據發送請求3放入數據發送請求2後面的數據發送請求隊列中。
[0170]可選的,可以按照獲取的數據發送請求的優先級將數據發送請求分別放入數據發送請求隊列中,例如,若獲取到3個數據發送請求,優先級由高到低依次為數據發送請求1,數據發送請求2,數據發送請求3,則,首先,將用戶態進程I發送的數據發送請求I放入數據發送請求隊列中,然後,將用戶態進程2發送的數據發送請求2放入數據發送請求I後面的數據發送請求隊列中,再然後,將用戶態進程3發送的數據發送請求3放入數據發送請求2後面的數據發送請求隊列中。
[0171]當然,若虛擬機的個數包含更多個,則可以按上述方式將每個虛擬機對應的用戶態進程分別發送的數據發送請求按序放入數據發送請求隊列中。
[0172]S505:按順序提取數據發送請求隊列中的數據發送請求;
[0173]例如,如圖4所示,首先從數據發送請求隊列中提取數據發送請求1,再提取數據發送請求2,最後提取發送請求3。
[0174]S506:根據提取數據發送請求中虛擬機標識查詢對應關係庫,得到該虛擬機的對應關係;
[0175]S507:根據數據發送請求中的PFN查詢該虛擬機的對應關係,查找數據發送請求請求發送的內存數據的物理內存頁地址;
[0176]S508:將提取的數據發送請求對應的物理內存頁地址註冊至RDMA網卡;
[0177]其中,按照提取的數據發送請求的順序將各個數據發送請求分別對應的物理內存頁地址分別註冊至RDMA網卡。例如,特權虛擬機15提取數據發送請求隊列中的數據發送請求I並將數據發送請求I對應的物理內存頁地址註冊至RDMA網卡;再提取數據發送請求隊列中的數據發送請求2並將數據發送請求2對應的物理內存頁地址註冊至RDMA網卡;再按順序提取數據發送請求隊列中的數據發送請求3並將數據發送請求3對應的物理內存頁地址註冊至RDMA網卡。
[0178]S509:通過RDMA網卡依次數據發送請求隊列中的數據發送請求請求發送的內存數據的物理內存頁地址存儲的數據至目的物理主機200 ;
[0179]S510:異步通知每一個用戶態進程;
[0180]例如,通過RDMA網卡發送完數據發送請求I的內存數據後,異步通知數據發送請求I對應的用戶態進程I ;通過RDMA網卡發送完數據發送請求2的內存數據後,通知數據發送請求2對應的用戶態進程2 ;通過RDMA網卡發送完數據發送請求3的內存數據後,異步通知數據發送請求3對應的用戶態進程3。
[0181]S511:註銷已經發送的數據發送請求對應的虛擬機的內存;
[0182]S512:虛擬機16的內存數據是否全部發送至目的物理機200,若否,則執行步驟513,若是,則執行步驟514 ;
[0183]S513:執行步驟 S503-S512。
[0184]S514:將虛擬機16的對應關係刪除,並注消虛擬機16內存,將虛擬機16在源物理機100上銷毀,進而虛擬機26在目的物理主機200上被啟動。
[0185]若是遷移完成,Hostl7將虛擬機的對應關係刪除,並注消虛擬機內存。
[0186]至此,完成虛擬機16從源物理主機100遷移至目的物理主機200的過程。
[0187]由上可見,本發明實施例中,通過獲取特權虛擬機用戶態進程觸發的虛擬機的遷移命令,並根據虛擬機的遷移命令中包含的虛擬機的標識建立虛擬機內存的PFN與物理內存頁地址的對應關係;根據虛擬機的對應關係,可以獲取虛擬機內存的PFN對應的物理內存頁地址,再通過RDMA網卡發送數據之前將虛擬機的物理內存頁地址註冊至該RDMA網卡;再通過RDMA網卡將請求發送的內存數據的物理內存頁地址存儲的內存數據發送至目的物理主機。如此,在虛擬機遷移的過程中,不需要將虛擬機的內存映射到用戶態空間並通過超級調用更新頁表,通過該待遷移虛擬的對應關係以及數據發送求中的PFN,可直接查詢獲取請求發送的內存數據對應的物理內存頁地址,進而大大降低了虛擬機所在的物理機中的處理器利用率及時間開銷,一定程度上解決了現有技術中由於在虛擬化平臺下,虛擬機遷移的過程中,需要將虛擬機的內存映射到用戶態空間並通過超級調用更新頁表,導致虛擬機所在的物理機中的處理器利用率及時間開銷較大的問題。
[0188]而且,可以將每一個虛擬機對應的用戶態進程分別發送的數據發送請求通過數據發送請求隊列進行統一管理,可以實現針對不同的用戶態進程的數據遷移設置不同優先級,進而對不同的業務進行QoS優化,提高虛擬機遷移的性能。
[0189]實施例四
[0190]本發明實施例提供一種宿主機Host60,該Hosteo與第一虛擬機同部署於一個物理主機,在一種實現方式下,該Hosteo可以包括特權虛擬機和VMM,其中特權虛擬機和VMM與第一虛擬機同部署於一個物理主機,參見圖6,該Hosteo可以包括:
[0191]獲取單元601,用於獲取發送第一虛擬機內存數據的數據發送請求,其中,所述數據發送請求包含所述第一虛擬機的標識,以及請求發送的內存數據的PFN ;
[0192]第一查詢單元602,用於根據所述第一虛擬機的標識查詢對應關係信息庫,得到所述第一虛擬機的對應關係,其中,所述對應關係信息庫包含待遷移的虛擬機的對應關係,所述虛擬機的對應關係為基於所述虛擬機的標識獲取所述虛擬機內存的地址空間,以及所述地址空間對應的所述虛擬機內存的PFN,以及所述虛擬機內存的PFN對應的所述虛擬機內存的物理內存頁地址後,建立的所述虛擬機內存的PFN與所述虛擬機內存的物理內存頁地址的對應關係;
[0193]第二查詢單元603,用於根據所述請求發送的內存數據的PFN查詢所述第一查詢單元602得到的所述第一虛擬機的對應關係,得到所述請求發送的內存數據的物理內存頁地址;
[0194]驅動發送單元604,用於通過RDMA網卡將所述第二查詢單元603得到的請求發送的內存數據的物理內存頁地址存儲的內存數據發送至目的物理主機。
[0195]本發明實施例提供的Host60,該Hosteo可獲取發送第一虛擬機內存數據的數據發送請求,其中,該數據發送請求包含第一虛擬機的標識,以及請求發送的內存數據的PFN ;該Host根據第一虛擬機的標識查詢對應關係信息庫,獲取第一虛擬機的對應關係,其中,該對應關係信息庫包含待遷移的虛擬機的對應關係,虛擬機的對應關係為基於該虛擬機的標識獲取該虛擬機內存的地址空間,以及該地址空間對應的該虛擬機內存的PFN,以及該虛擬機內存的PFN對應的該虛擬機內存的物理內存頁地址後,建立的該虛擬機內存的PFN與物理內存頁地址的對應關係;所以,該Host可根據請求發送的內存數據的PFN查詢第一虛擬機的對應關係,獲取請求發送的內存數據的物理內存頁地址;再通過RDMA網卡將請求發送的內存數據的物理內存頁地址存儲的內存數據發送至目的物理主機。如此,在虛擬機遷移的過程中,不需要將虛擬機的內存映射到用戶態空間並通過超級調用更新頁表,通過該待遷移虛擬的對應關係以及數據發送求中的PFN,可直接查詢獲取請求發送的內存數據對應的物理內存頁地址,進而大大降低了虛擬機所在的物理機中的處理器利用率及時間開銷,一定程度上解決了現有技術中由於在虛擬化平臺下,虛擬機遷移的過程中,需要將虛擬機的內存映射到用戶態空間並通過超級調用更新頁表,導致虛擬機所在的物理機中的處理器利用率及時間開銷較大的問題。
[0196]實施例五
[0197]參見圖7,為本發明實施例提供的另一種Host70,參見圖7,該Host70包括:建立單元701,第一註冊單元702,獲取單元703,第一查詢單元704,第二查詢單元705,驅動發送單元706,
[0198]其中,獲取單元703,第一查詢單元704,第二查詢單元705,驅動發送單元706的具體功能參見實施例四中所述,在此不再贅述。
[0199]建立單元701,用於獲取特權虛擬機用戶態進程觸發的遷移所述第一虛擬機的內存數據的遷移請求,其中,所述遷移請求中包含所述第一虛擬機的標識;根據所述遷移請求中的所述第一虛擬機的標識獲取所述第一虛擬機內存的地址空間;根據所述地址空間獲取所述虛擬機內存的PFN ;根據所述第一虛擬機內存的PFN計算所述第一虛擬機內存的物理內存頁地址;建立所述第一虛擬機內存的PFN與所述第一虛擬機內存的物理內存頁地址之間的對應關係;
[0200]第一註冊單元702,用於在建立單元701根據所述第一虛擬機內存的PFN計算所述第一虛擬機內存的物理內存頁地址之後,獲取單元702獲取發送第一虛擬機內存數據的數據發送請求之前,
[0201]將建立單元701獲取的第一虛擬機內存的物理內存頁地址註冊至所述RDMA網卡。
[0202]本實施例中,第一註冊單元702將第一虛擬機全部內存的物理內存頁地址一次註冊給RDMA網卡,例如,第一虛擬機全部內存對應的物理內存頁地址為0x00010000?OxOOOlffff,則第一註冊單元702將0x00010000?OxOOOlfTfT —次性全部註冊至RDMA網卡。
[0203]進一步的,所述獲取單元601具體用於,依序提取數據發送請求隊列中的數據發送請求,其中,所述數據發送請求包含不同的待遷移的虛擬機的數據發送請求,所述數據發送請求隊列中的數據發送請求按照時間先後或者優先級高低進行排序。
[0204]本發明實施例提供的Host70,用於獲取特權虛擬機用戶態進程發送的虛擬機的遷移命令,並根據每個虛擬機的遷移命令中包含的虛擬機的標識建立每個虛擬機內存的PFN與物理內存頁地址的對應關係;根據每個虛擬機的對應關係,可以獲取每個虛擬機內存的PFN對應的物理內存頁地址,並將每個虛擬機的物理內存頁地址註冊至該RDMA網卡;再通過RDMA網卡將請求發送的內存數據的物理內存頁地址存儲的內存數據發送至目的物理主機。如此,在虛擬機遷移的過程中,不需要將虛擬機的內存映射到用戶態空間並通過超級調用更新頁表,通過該待遷移虛擬的對應關係以及數據發送求中的PFN,可直接查詢獲取請求發送的內存數據對應的物理內存頁地址,進而大大降低了虛擬機所在的物理機中的處理器利用率及時間開銷,一定程度上解決了現有技術中由於在虛擬化平臺下,虛擬機遷移的過程中,需要將虛擬機的內存映射到用戶態空間並通過超級調用更新頁表,導致虛擬機所在的物理機中的處理器利用率及時間開銷較大的問題。
[0205]而且,因為在驅動發送單元706通過RDMA網卡發送數據前,第一註冊單元702把每個虛擬機的物理內存頁地址一次性註冊至該RDMA網卡,可以保證RDMA網卡根據用戶態進程發送的數據發送請求成功傳輸相關的數據。
[0206]而且,獲取單元703可以將分別獲取的每一個虛擬機對應的用戶態進程的數據發送請求通過數據發送請求隊列進行統一管理,可以實現針對不同的用戶態進程的數據遷移設置不同優先級,進而對不同的業務進行QoS優化,提高虛擬機遷移的性能。
[0207]實施例六
[0208]參見圖8,為本發明實施例提供的另一種Host80,參見圖8,該Host80包括:建立單元801,獲取單元802,第一查詢單元803,第二查詢單元804,第一註冊單元805,驅動發送單元806,
[0209]其中,
[0210]建立單元801,用於獲取特權虛擬機用戶態進程觸發的遷移所述第一虛擬機的內存數據的遷移請求,其中,所述遷移請求中包含所述第一虛擬機的標識;根據所述遷移請求中的所述第一虛擬機的標識獲取所述第一虛擬機內存的地址空間;根據所述地址空間獲取所述虛擬機內存的PFN ;根據所述第一虛擬機內存的PFN計算所述第一虛擬機內存的物理內存頁地址;建立所述第一虛擬機內存的PFN與所述第一虛擬機內存的物理內存頁地址之間的對應關係;
[0211]獲取單元802,用於獲取發送第一虛擬機內存數據的數據發送請求,其中,所述數據發送請求包含所述第一虛擬機的標識,以及請求發送的內存數據的PFN ;
[0212]優選的,所述獲取單元802具體用於,依序提取數據發送請求隊列中的數據發送請求,其中,所述數據發送請求包含不同的待遷移的虛擬機的數據發送請求,所述數據發送請求隊列中的數據發送請求按照時間先後或者優先級高低進行排序。
[0213]第一查詢單元803,用於根據所述第一虛擬機的標識查詢對應關係信息庫,得到所述第一虛擬機的對應關係,其中,所述對應關係信息庫包含待遷移的虛擬機的對應關係,所述虛擬機的對應關係為基於所述虛擬機的標識獲取所述虛擬機內存的地址空間,以及所述地址空間對應的所述虛擬機內存的PFN,以及所述虛擬機內存的PFN對應的所述虛擬機內存的物理內存頁地址後,建立的所述虛擬機內存的PFN與所述虛擬機內存的物理內存頁地址的對應關係;
[0214]第二查詢單元804,用於根據所述請求發送的內存數據的PFN查詢所述第一查詢單元803得到的所述第一虛擬機的對應關係,得到所述請求發送的內存數據的物理內存頁地址;
[0215]第二註冊單元805,用於將第二查詢單元804得到的得到所述請求發送的內存數據的物理內存頁地址註冊至RDMA網卡;
[0216]本實施例中,第二註冊單元805根據每次的數據發送請求,分別就將每個數據發送請求請求發送的內存數據的物理內存頁地址分批次的註冊至RDMA網卡,例如,第一虛擬機全部內存對應的物理內存頁地址為0x00010000?OxOOOlffff,第一個數據發送請求請求發送的內存數據的物理內存頁地址為0x00010000?0x000 IOOf f,則第二註冊單元805在獲取第一個數據發送請求之後,通過RDMA網卡將物理內存頁地址0x00010000?OxOOOlOOff上存儲的內存數據發送給目的物理主機之前,將物理內存頁地址0x00010000?OxOOOlffff註冊至RDMA網卡;再例如,第二個數據發送請求請求發送的內存數據的物理內存頁地址為0x00010100?OxOOOlOlff,則第二註冊單元805在獲取第二個數據發送請求之後,通過RDMA網卡將物理內存頁地址0x00010100?OxOOOlOlff上存儲的內存數據發送給目的物理主機之前,將物理內存頁地址0x00010100?OxOOOlOlff註冊至RDMA網卡。
[0217]驅動發送單元806,用於在第二註冊單元805將第二查詢單元804得到的得到所述請求發送的內存數據的物理內存頁地址註冊至RDMA網卡後,通過RDMA網卡將所述第二查詢單元804得到的請求發送的內存數據的物理內存頁地址存儲的內存數據發送至目的物
理主機。
[0218]本發明實施例提供的HostSO,用於獲取特權虛擬機用戶態進程觸發的虛擬機的遷移命令,並根據虛擬機的遷移命令中包含的虛擬機的標識建立虛擬機內存的PFN與物理內存頁地址的對應關係;根據虛擬機的對應關係,可以獲取虛擬機內存的PFN對應的物理內存頁地址,再通過RDMA網卡發送數據之前將虛擬機的物理內存頁地址註冊至該RDMA網卡;再通過RDMA網卡將請求發送的內存數據的物理內存頁地址存儲的內存數據發送至目的物理主機。如此,在虛擬機遷移的過程中,不需要將虛擬機的內存映射到用戶態空間並通過超級調用更新頁表,通過該待遷移虛擬的對應關係以及數據發送求中的PFN,可直接查詢獲取請求發送的內存數據對應的物理內存頁地址,進而大大降低了虛擬機所在的物理機中的處理器利用率及時間開銷,一定程度上解決了現有技術中由於在虛擬化平臺下,虛擬機遷移的過程中,需要將虛擬機的內存映射到用戶態空間並通過超級調用更新頁表,導致虛擬機所在的物理機中的處理器利用率及時間開銷較大的問題。
[0219]而且,可以將每一個虛擬機對應的用戶態進程分別發送的數據發送請求通過數據發送請求隊列進行統一管理,可以實現針對不同的用戶態進程的數據遷移設置不同優先級,進而對不同的業務進行QoS優化,提高虛擬機遷移的性能。
[0220]而且,獲取單元703可以將分別獲取的每一個虛擬機對應的用戶態進程的數據發送請求通過數據發送請求隊列進行統一管理,可以實現針對不同的用戶態進程的數據遷移設置不同優先級,進而對不同的業務進行QoS優化,提高虛擬機遷移的性能。
[0221]實施例七
[0222]本發明實施例提供一種物理主機90,參見圖9,該物理主機90包括硬體,其中所述硬體可以包括RDMA網卡901,可選的,所述硬體還可以包括至少一個處理器902、存儲器903,用於進行該物理主機90內部各設備之間的連接的至少一個通信總線904,用於實現這些裝置之間的連接和相互通信。
[0223]其中,通信總線904可以是工業標準體系結構(Industry Standard Architecture,簡稱為ISA)總線、外部設備互連(Peripheral Component,簡稱為PCI)總線或擴展工業標準體系結構(Extended Industry Standard Architecture,簡稱為 EISA)總線等。該總線 904 可以分為地址總線、數據總線、控制總線等。為便於表示,圖9中僅用一條粗線表示,但並不表示僅有一根總線或一種類型的總線。
[0224]存儲器903可以包括隨機存取存儲器,並向處理器803提供指令和數據。
[0225]處理器902可以是一個中央處理器(Central Processing Unit,簡稱為CPU),或者是特定集成電路(Application Specific Integrated Circuit,簡稱為ASIC),或者是被配置成實施本發明實施例的一個或多個集成電路。[0226]RDMA網卡901可以為支持RDMA功能的各種網卡,例如,可以為無線寬帶(InfiniBand)卡或乙太網(RDMA over Converged Ethernet,簡稱 RoCE)卡等。
[0227]其中,通過讀取存儲器903存儲的指令,處理器902用於,
[0228]獲取發送第一虛擬機內存數據的數據發送請求,其中,所述數據發送請求包含所述第一虛擬機的標識,以及請求發送的內存數據的PFN ;
[0229]根據所述第一虛擬機的標識查詢對應關係信息庫,得到所述第一虛擬機的對應關係,其中,所述對應關係信息庫包含待遷移的虛擬機的對應關係,所述虛擬機的對應關係為基於所述虛擬機的標識獲取所述虛擬機內存的地址空間,以及所述地址空間對應的所述虛擬機內存的PFN,以及所述虛擬機內存的PFN對應的所述虛擬機內存的物理內存頁地址後,建立的所述虛擬機內存的PFN與所述虛擬機內存的物理內存頁地址的對應關係;
[0230]根據所述請求發送的內存數據的PFN查詢獲取的所述第一虛擬機的對應關係,得到所述請求發送的內存數據的物理內存頁地址;
[0231]通過RDMA網卡901將獲取的請求發送的內存數據的物理內存頁地址存儲的內存數據發送至目的物理主機。
[0232]進一步的,所述處理器902還用於:
[0233]在獲取發送第一虛擬機內存數據的數據發送請求之前,
[0234]獲取特權虛擬機用戶態進程觸發的遷移所述第一虛擬機的內存數據的遷移請求,其中,所述遷移請求中包含所述第一虛擬機的標識;
[0235]根據所述遷移請求中的所述第一虛擬機的標識獲取所述第一虛擬機內存的地址空間;
[0236]根據所述地址空間獲取所述虛擬機內存的PFN ;
[0237]根據所述第一虛擬機內存的PFN計算所述第一虛擬機內存的物理內存頁地址;
[0238]建立所述第一虛擬機內存的PFN與所述第一虛擬機內存的物理內存頁地址之間的對應關係。
[0239]進一步的,所述處理器902還用於:將第一虛擬機內存數據的物理頁內存地址註冊給RDMA網卡,具體可以通過以下兩種方式中任意一種方式來實現:
[0240]1、在根據所述第一虛擬機內存的PFN計算所述第一虛擬機內存的物理內存頁地址之後,獲取發送第一虛擬機內存數據的數據發送請求之前,將所述第一虛擬機內存的物理內存頁地址註冊至所述RDMA網卡。
[0241]在這種方式下,處理器902將第一虛擬機全部內存的物理內存頁地址一次註冊給RDMA網卡,例如,第一虛擬機全部內存對應的物理內存頁地址為0x00010000?OxOOOlffff,則 Host901 將 0x00010000 ?OxOOOlffff —次性全部註冊至 RDMA 網卡。
[0242]2、在根據所述請求發送的內存數據的PFN查詢所述第一虛擬機的對應關係,得到所述請求發送的內存數據的物理內存頁地址之後,通過RDMA網卡將所述請求發送的內存數據的物理內存頁地址上所存儲的內存數據發送至目的物理主機之前,將所述請求發送的內存數據的物理內存頁地址註冊至所述RDMA網卡。
[0243]在這種方式下,處理器902根據每次的數據發送請求,分別就將每個數據發送請求請求發送的內存數據的物理內存頁地址分批次的註冊至RDMA網卡,例如,第一虛擬機全部內存對應的物理內存頁地址為0x00010000?OxOOOlffff,第一個數據發送請求請求發送的內存數據的物理內存頁地址為0x00010000~OxOOOlOOff,則處理器902在獲取第一個數據發送請求之後,通過RDMA網卡將物理內存頁地址0x00010000~OxOOOlOOff上存儲的內存數據發送給目的物理主機之前,將物理內存頁地址0x00010000~OxOOOlffff?註冊至RDMA網卡;再例如,第二個數據發送請求請求發送的內存數據的物理內存頁地址為0x00010100~OxOOOlOlff,則Host901在獲取第二個數據發送請求之後,通過RDMA網卡將物理內存頁地址0x00010100~OxOOOlOlff上存儲的內存數據發送給目的物理主機之前,將物理內存頁地址0x00010100~OxOOOlOlff註冊至RDMA網卡。[0244]本發明實施例提供的物理主機90,可獲取發送第一虛擬機內存數據的數據發送請求,其中,該數據發送請求包含第一虛擬機的標識,以及請求發送的內存數據的PFN;該Host根據第一虛擬機的標識查詢對應關係信息庫,獲取第一虛擬機的對應關係,其中,該對應關係信息庫包含待遷移的虛擬機的對應關係,虛擬機的對應關係為基於該虛擬機的標識獲取該虛擬機內存的地址空間,以及該地址空間對應的該虛擬機內存的PFN,以及該虛擬機內存的PFN對應的該虛擬機內存的物理內存頁地址後,建立的該虛擬機內存的PFN與物理內存頁地址的對應關係;所以,該Host可根據請求發送的內存數據的PFN查詢第一虛擬機的對應關係,獲取請求發送的內存數據的物理內存頁地址;再通過RDMA網卡將請求發送的內存數據的物理內存頁地址存儲的內存數據發送至目的物理主機。如此,在虛擬機遷移的過程中,不需要將虛擬機的內存映射到用戶態空間並通過超級調用更新頁表,通過該待遷移虛擬的對應關係以及數據發送求中的PFN,可直接查詢獲取請求發送的內存數據對應的物理內存頁地址,進而大大降低了虛擬機所在的物理機中的處理器利用率及時間開銷,一定程度上解決了現有技術中由於在虛擬化平臺下,虛擬機遷移的過程中,需要將虛擬機的內存映射到用戶態空間並通過超級調用更新頁表,導致虛擬機所在的物理機中的處理器利用率及時間開銷較大的問題。
[0245]實施例八
[0246]本發明實施例提供另一種物理主機100,參見圖10,該物理主機100包含硬體層、運行在所述硬體層之上的HostlOOl、以及運行在所述HostlOOl之上的至少一個虛擬機VM1002,以及所述硬體層包括RDMA網卡1003,可選的,還可以包括處理器1004和內存1005 ;其中,Host可以包括該物理主機100上的VMM和運行於該VMM上的特權虛擬機,虛擬機1002為該物理主機100上除特權虛擬機之外的其他虛擬機,虛擬機1002包括第一虛擬機。
[0247]其中,HostlOOl用於,
[0248]獲取發送第一虛擬機內存數據的數據發送請求,其中,所述數據發送請求包含所述第一虛擬機的標識,以及請求發送的內存數據的PFN ;
[0249]根據所述第一虛擬機的標識查詢對應關係信息庫,得到所述第一虛擬機的對應關係,其中,所述對應關係信息庫包含待遷移的虛擬機的對應關係,所述虛擬機的對應關係為基於所述虛擬機的標識獲取所述虛擬機內存的地址空間,以及所述地址空間對應的所述虛擬機內存的PFN,以及所述虛擬機內存的PFN對應的所述虛擬機內存的物理內存頁地址後,建立的所述虛擬機內存的PFN與所述虛擬機內存物理內存頁地址的對應關係;
[0250]根據所述請求發送的內存數據的PFN查詢獲取的所述第一虛擬機的對應關係,得到所述請求發送的內存數據的物理內存頁地址;[0251]通過RDMA網卡1003將獲取的請求發送的內存數據的物理內存頁地址存儲的內存數據發送至目的物理主機。
[0252]進一步的,所述HostlOOl還用於:
[0253]在獲取發送第一虛擬機內存數據的數據發送請求之前,
[0254]獲取特權虛擬機用戶態進程觸發的遷移所述第一虛擬機的內存數據的遷移請求,其中,所述遷移請求中包含所述第一虛擬機的標識;
[0255]根據所述遷移請求中的所述第一虛擬機的標識獲取所述第一虛擬機內存的地址空間;
[0256]根據所述地址空間獲取所述虛擬機內存的PFN ;
[0257]根據所述第一虛擬機內存的PFN計算所述第一虛擬機內存的物理內存頁地址;
[0258]建立所述第一虛擬機內存的PFN與所述第一虛擬機內存的物理內存頁地址之間的對應關係。
[0259]進一步的,所述HostlOOl還用於:
[0260]將第一虛擬機內存數據的物理頁內存地址註冊給RDMA網卡,具體可以通過以下兩種方式中任意一種方式來實現:
[0261]1、在根據所述第一虛擬機內存的PFN計算所述第一虛擬機內存的物理內存頁地址之後,獲取發送第一虛擬機內存數據的數據發送請求之前,將所述第一虛擬機內存的物理內存頁地址註冊至所述RDMA網卡。
[0262]在這種方式下,HostlOOl將第一虛擬機全部內存的物理內存頁地址一次註冊給RDMA網卡,例如,第一虛擬機全部內存對應的物理內存頁地址為0x00010000?OxOOOlffff,則 Host901 將 0x00010000 ?OxOOOlffff —次性全部註冊至 RDMA 網卡。
[0263]2、在根據所述請求發送的內存數據的PFN查詢所述第一虛擬機的對應關係,得到所述請求發送的內存數據的物理內存頁地址之後,通過RDMA網卡將所述請求發送的內存數據的物理內存頁地址上所存儲的內存數據發送至目的物理主機之前,將所述請求發送的內存數據的物理內存頁地址註冊至所述RDMA網卡。
[0264]在這種方式下,HostlOOl根據每次的數據發送請求,分別就將每個數據發送請求請求發送的內存數據的物理內存頁地址分批次的註冊至RDMA網卡,例如,第一虛擬機全部內存對應的物理內存頁地址為0x00010000?OxOOOlffff,第一個數據發送請求請求發送的內存數據的物理內存頁地址為0x00010000?OxOOOlOOff,則HostlOOl在獲取第一個數據發送請求之後,通過RDMA網卡將物理內存頁地址0x00010000?OxOOOlOOff上存儲的內存數據發送給目的物理主機之前,將物理內存頁地址0x00010000?OxOOOlffff註冊至RDMA網卡;再例如,第二個數據發送請求請求發送的內存數據的物理內存頁地址為0x00010100?OxOOOlOlff,則HostlOOl在獲取第二個數據發送請求之後,通過RDMA網卡將物理內存頁地址0x00010100?OxOOOlOlff上存儲的內存數據發送給目的物理主機之前,將物理內存頁地址0x00010100?OxOOOlOlff註冊至RDMA網卡。
[0265]本發明實施例的物理主機100,用於獲取發送第一虛擬機內存數據的數據發送請求,其中,該數據發送請求包含第一虛擬機的標識,以及請求發送的內存數據的PFN;該Host根據第一虛擬機的標識查詢對應關係信息庫,獲取第一虛擬機的對應關係,其中,該對應關係信息庫包含待遷移的虛擬機的對應關係,虛擬機的對應關係為基於該虛擬機的標識獲取該虛擬機內存的地址空間,以及該地址空間對應的該虛擬機內存的PFN,以及該虛擬機內存的PFN對應的該虛擬機內存的物理內存頁地址後,建立的該虛擬機內存的PFN與物理內存頁地址的對應關係;所以,可根據請求發送的內存數據的PFN查詢第一虛擬機的對應關係,獲取請求發送的內存數據的物理內存頁地址;再通過RDMA網卡將請求發送的內存數據的物理內存頁地址存儲的內存數據發送至目的物理主機。如此,在虛擬機遷移的過程中,不需要將虛擬機的內存映射到用戶態空間並通過超級調用更新頁表,通過該待遷移虛擬的對應關係以及數據發送求中的PFN,可直接查詢獲取請求發送的內存數據對應的物理內存頁地址,進而大大降低了虛擬機所在的物理機中的處理器利用率及時間開銷,一定程度上解決了現有技術中由於在虛擬化平臺下,虛擬機遷移的過程中,需要將虛擬機的內存映射到用戶態空間並通過超級調用更新頁表,導致虛擬機所在的物理機中的處理器利用率及時間開銷較大的問題。
[0266]實施例九
[0267]本發明實施例提供一種集群系統,參見圖10,該集群系統包括:多臺物理主機,所述多臺物理主機包括源物理主機和目的物理主機,其中每臺物理主機包括硬體層、運行在所述硬體層之上的Host、以及運行在所述Host之上的至少一個虛擬機VM,以及所述硬體層包括RDMA網卡,可選的,還可以處理器和內存。其中,Host可以包括Host所在的物理主機上的VMM和運行於該VMM上的特權虛擬機。
[0268]以及,本發明實施例的集群系統中包括的物理主機參考前述實施例介紹的物理主機,在此不再贅述。
[0269]本發明實施例的集群系統,源物理主機中的Host可獲取發送第一虛擬機內存數據的數據發送請求,其中,該數據發送請求包含第一虛擬機的標識,以及請求發送的內存數據的PFN ;該Host根據第一虛擬機的標識查詢對應關係信息庫,獲取第一虛擬機的對應關係,其中,該對應關係信息庫包含待遷移的虛擬機的對應關係,虛擬機的對應關係為基於該虛擬機的標識獲取該虛擬機內存的地址空間,以及該地址空間對應的該虛擬機內存的PFN,以及該虛擬機內存的PFN對應的該虛擬機內存的物理內存頁地址後,建立的該虛擬機內存的PFN與物理內存頁地址的對應關係;所以,該Host可根據請求發送的內存數據的PFN查詢第一虛擬機的對應關係,獲取請求發送的內存數據的物理內存頁地址;再通過RDMA網卡將請求發送的內存數據的物理內存頁地址存儲的內存數據發送至目的物理主機。如此,在虛擬機遷移的過程中,不需要將虛擬機的內存映射到用戶態空間並通過超級調用更新頁表,通過該待遷移虛擬的對應關係以及數據發送求中的PFN,可直接查詢獲取請求發送的內存數據對應的物理內存頁地址,進而大大降低了虛擬機所在的物理機中的處理器利用率及時間開銷,一定程度上解決了現有技術中由於在虛擬化平臺下,虛擬機遷移的過程中,需要將虛擬機的內存映射到用戶態空間並通過超級調用更新頁表,導致虛擬機所在的物理機中的處理器利用率及時間開銷較大的問題。
[0270]所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統,裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
[0271]在本申請所提供的幾個實施例中,應該理解到,所揭露的系統,裝置和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特徵可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
[0272]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
[0273]另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理包括,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以採用硬體的形式實現,也可以採用硬體加軟體功能單元的形式實現。
[0274]上述以軟體功能單元的形式實現的集成的單元,可以存儲在一個計算機可讀取存儲介質中。上述軟體功能單元存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,伺服器,或者網絡設備等)執行本發明各個實施例所述方法的部分步驟。而前述的存儲介質包括:U盤、移動硬碟、只讀存儲器(Read-Only Memory,簡稱ROM)、隨機存取存儲器(Random Access Memory,簡稱RAM)、磁碟或者光碟等各種可以存儲程序代碼的介質。
[0275]本領域普通技術人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關的硬體(例如處理器)來完成,該程序可以存儲於一計算機可讀存儲介質中,存儲介質可以包括:只讀存儲器、隨機存儲器、磁碟或光碟等。
[0276]最後應說明的是:以上實施例僅用以說明本發明的技術方案,而非對其限制;儘管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特徵進行等同替換;而這些修改或者替換,並不使相應技術方案的本質脫離本發明各實施例技術方案的精神和範圍。
【權利要求】
1.一種虛擬機內存數據的遷移方法,其特徵在於,包括: 獲取發送第一虛擬機內存數據的數據發送請求,其中,所述數據發送請求包含所述第一虛擬機的標識,以及請求發送的內存數據的物理頁框號PFN ; 根據所述第一虛擬機的標識查詢對應關係信息庫,得到所述第一虛擬機的對應關係,其中,所述對應關係信息庫包含待遷移的虛擬機的對應關係,所述虛擬機的對應關係為基於所述虛擬機的標識獲取所述虛擬機內存的地址空間,以及所述地址空間對應的所述虛擬機內存的PFN,以及所述虛擬機內存的PFN對應的所述虛擬機內存的物理內存頁地址後,建立的所述虛擬機內存的PFN與所述虛擬機內存的物理內存頁地址的對應關係; 根據所述請求發送的內存數據的PFN查詢所述第一虛擬機的對應關係,得到所述請求發送的內存數據的物理內存頁地址; 通過遠程直接內存讀取RDMA網卡將所述請求發送的內存數據的物理內存頁地址上所存儲的內存數據發送至目的物理主機。
2.根據權利要求1所述的方法,其特徵在於,在所述獲取發送第一虛擬機內存數據的數據發送請求之前,所述方法還包括: 獲取特權虛擬機用戶態進程觸發的遷移所述第一虛擬機的內存數據的遷移請求,其中,所述遷移請求中包含所述第一虛擬機的標識; 根據所述遷移請求中的所述第一虛擬機的標識獲取所述第一虛擬機內存的地址空間; 根據所述地址空間獲取所述虛擬機內存的PFN ; 根據所述第一虛擬機內存的PFN計算所述第一虛擬機內存的物理內存頁地址; 建立所述第一虛擬機內存的PFN與所述第一虛擬機內存的物理內存頁地址之間的對應關係。
3.根據權利要求2所述的方法,其特徵在於,在所述根據所述第一虛擬機內存的PFN計算所述第一虛擬機內存的物理內存頁地址之後,所述獲取發送第一虛擬機內存數據的數據發送請求之前,所述方法還包括: 將所述第一虛擬機內存的物理內存頁地址註冊至所述RDMA網卡。
4.根據權利要求1或2所述的方法,其特徵在於,在所述根據所述請求發送的內存數據的PFN查詢所述第一虛擬機的對應關係,得到所述請求發送的內存數據的物理內存頁地址之後,通過RDMA網卡將所述請求發送的內存數據的物理內存頁地址上所存儲的內存數據發送至目的物理主機之前,所述方法還包括: 將所述請求發送的內存數據的物理內存頁地址註冊至所述RDMA網卡。
5.根據權利要求1-4任一項所述方法,其特徵在於,所述獲取發送第一虛擬機內存數據的數據發送請求包括: 依序提取數據發送請求隊列中的數據發送請求,其中,所述數據發送請求包含不同的待遷移的虛擬機的數據發送請求,所述數據發送請求隊列中的數據發送請求按照時間先後或者優先級高低進行排序。
6.一種宿主機Host,其特徵在於,包括: 獲取單元,用於獲取發送第一虛擬機內存數據的數據發送請求,其中,所述數據發送請求包含所述第一虛擬機的標識,以及請求發送的內存數據的物理頁框號PFN ;第一查詢單元,用於根據所述第一虛擬機的標識查詢對應關係信息庫,得到所述第一虛擬機的對應關係,其中,所述對應關係信息庫包含待遷移的虛擬機的對應關係,所述虛擬機的對應關係為基於所述虛擬機的標識獲取所述虛擬機內存的地址空間,以及所述地址空間對應的所述虛擬機內存的PFN,以及所述虛擬機內存的PFN對應的所述虛擬機內存的物理內存頁地址後,建立的所述虛擬機內存的PFN與所述虛擬機內存的物理內存頁地址的對應關係; 第二查詢單元,用於根據所述請求發送的內存數據的PFN查詢所述第一查詢單元得到的所述第一虛擬機的對應關係,獲取所述請求發送的內存數據的物理內存頁地址; 驅動發送單元,用於通過遠程直接內存讀取RDMA網卡將所述第二查詢單元得到的請求發送的內存數據的物理內存頁地址上所存儲的內存數據發送至目的物理主機。
7.根據權利要求6所述的Host,其特徵在於,所述Host還包括 建立單元,用於在所述獲取單元獲取發送第一虛擬機內存數據的數據發送請求之前, 獲取特權虛擬機用戶態進程觸發的遷移所述第一虛擬機的內存數據的遷移請求,其中,所述遷移請求中包含所述第一虛擬機的標識; 根據所述遷移請求中的所述第一虛擬機的標識獲取所述第一虛擬機內存的地址空間; 根據所述地址空間獲取所述虛擬機內存的PFN ; 根據所述第一虛擬機內存的PFN計算所述第一虛擬機內存的物理內存頁地址; 建立所述第一虛擬機內存的PFN與所述第一虛擬機內存的物理內存頁地址之間的對應關係。
8.根據權利要求7所述的Host,其特徵在於,所述Host還包括:第一註冊單元,用於在所述建立單元根據所述第一虛擬機內存的PFN計算所述第一虛擬機內存的物理內存頁地址之後,所述獲取單元獲取發送第一虛擬機內存數據的數據發送請求之前, 將所述建立單元獲取的第一虛擬機內存的物理內存頁地址註冊至所述RDMA網卡。
9.根據權利要求6或7所述的Host,其特徵在於,所述Host還包括:第二註冊單元,用於在所述第二查詢單元根據所述請求發送的內存數據的PFN查詢所述第一虛擬機的對應關係,得到所述請求發送的內存數據的物理內存頁地址之後,所述驅動發送單元通過RDMA網卡將所述請求發送的內存數據的物理內存頁地址上所存儲的內存數據發送至目的物理主機之前, 將所述第二查詢單元得到的請求發送的內存數據的物理內存頁地址註冊至所述RDMA網卡。
10.根據權利要求6-9任一項所述Host,其特徵在於,所述獲取單元具體用於,依序提取數據發送請求隊列中的數據發送請求,其中,所述數據發送請求包含不同的待遷移的虛擬機的數據發送請求,所述數據發送請求隊列中的數據發送請求按照時間先後或者優先級聞低進行排序。
11.一種物理主機,其特徵在於,包括:硬體層、運行在所述硬體層之上的宿主機Host、以及運行在所述Host之上的至少一個虛擬機VM,以及所述硬體層包括遠程直接內存讀取RDMA網卡;所述至少一個虛擬機包括第一虛擬機,其中, 所述Host用於:獲取發送第一虛擬機內存數據的數據發送請求,其中,所述數據發送請求包含所述第一虛擬機的標識,以及請求發送的內存數據的物理頁框號PFN ; 根據所述第一虛擬機的標識查詢對應關係信息庫,得到所述第一虛擬機的對應關係,其中,所述對應關係信息庫包含待遷移的虛擬機的對應關係,所述虛擬機的對應關係為基於所述虛擬機的標識獲取所述虛擬機內存的地址空間,以及所述地址空間對應的所述虛擬機內存的PFN,以及所述虛擬機內存的PFN對應的所述虛擬機內存的物理內存頁地址後,建立的所述虛擬機內存的PFN與所述虛擬機內存的物理內存頁地址的對應關係; 根據所述請求發送的內存數據的PFN查詢所述第一虛擬機的對應關係,得到所述請求發送的內存數據的物理內存頁地址; 通過所述遠程直接內存讀取RDMA網卡將所述請求發送的內存數據的物理內存頁地址上所存儲的內存數據發送至目的物理主機。
12.根據權利要求11所述的物理主機,其特徵在於,所述Host還用於: 在獲取發送第一虛擬機內存數據的數據發送請求之前, 獲取特權虛擬機用戶態進程觸發的遷移所述第一虛擬機的內存數據的遷移請求,其中,所述遷移請求中包含所述第一虛擬機的標識; 根據所述遷移請求中的所述第一虛擬機的標識獲取所述第一虛擬機內存的地址空間; 根據所述地址空間獲取所述虛擬機內存的PFN ; 根據所述第一虛擬機內存的PFN計算所述第一虛擬機內存的物理內存頁地址;` 建立所述第一虛擬機內存的PFN與所述第一虛擬機內存的物理內存頁地址之間的對應關係。
13.根據權利要求12所述物理主機,其特徵在於,所述Host還用於: 在根據所述第一虛擬機內存的PFN計算所述第一虛擬機內存的物理內存頁地址之後,以及獲取發送第一虛擬機內存數據的數據發送請求之前, 將所述第一虛擬機內存的物理內存頁地址註冊至所述RDMA網卡。
14.根據權利要求11或12所述物理主機,其特徵在於,所述Host還用於:在根據所述請求發送的內存數據的PFN查詢所述第一虛擬機的對應關係,得到所述請求發送的內存數據的物理內存頁地址之後,通過RDMA網卡將所述請求發送的內存數據的物理內存頁地址上所存儲的內存數據發送至目的物理主機之前, 將所述請求發送的內存數據的物理內存頁地址註冊至所述RDMA網卡。
15.一種集群系統,其特徵在於,包括:多臺如權利要求11至14任一項所述的物理主機,所述多臺物理主機包括源物理主機和目的物理主機,其中每臺物理主機包括硬體層、運行在所述硬體層之上的宿主機Host、以及運行在所述Host之上的至少一個虛擬機VM,以及所述硬體層包括RDMA網卡。
【文檔編號】G06F15/16GK103530167SQ201310462273
【公開日】2014年1月22日 申請日期:2013年9月30日 優先權日:2013年9月30日
【發明者】楊傑, 章曉峰 申請人:華為技術有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀