專利名稱:帶有非對稱存儲器的系統中的虛擬機存儲器管理的制作方法
技術領域:
本發明涉及計算機技術,尤其涉及計算機存儲技術。
背景技術:
當前,商業云計算服務被裝備為向企業提供計算和數據存儲服務,從而允許企業替換或補充私人擁有的信息技術(IT)資產,減輕管理和維護這些私人擁有的IT資產的負擔。雖然云計算的可行性在過去若干年有所增長,但在云計算被廣泛采用之前存在要克服的某些技術障礙。急需解決的一個問題是關于多個顧客對計算資源的共享。云計算平臺例行地采用虛擬化來將工作負載封裝在虛擬機中,它們隨后在云計算服務器上整合。因此,某個云計算服務器可具有在其上運行的與多個不同的顧客相對應的多個虛擬機。理想地,對于使用服務器的任何顧客,與其他顧客相對應的其他虛擬機對服務器上的資源的使用是透明的。當前,云計算提供者基于對資源的使用或保留來向顧客收取費用,諸如但不限于,CPU小時、存儲容量和網絡帶寬。顧客和云計算提供者之間的服務級協定通常基于資源可用性,諸如系統正常運行時間、I/O請求等方面的保證。由此,顧客可加入與云計算服務提供者的協定,其中該協定指定將為顧客保留或對顧客可用的資源量以及系統正常運行時間等方面的保證。然而如果顧客未使用服務器的全部可用資源,則為了云計算服務提供者的利益來使得該顧客與其他顧客共享計算資源。這可以通過虛擬化來進行,從而使得顧客的工作負載可被封裝在虛擬機中,且許多虛擬機可在服務器上整合。虛擬化可通過提供故障隔離有助于與獨立工作負載的協同主存的連接,從而阻止與一個顧客相對應的應用程序中的故障被傳播至與另一顧客相對應的另一應用程序。當前,存在管理在存儲器過度預配時如何對待數據的各種虛擬機存儲器管理系統。這些系統一般涉及標識何時要將數據從硬盤按頁傳入存儲器或從存儲器按頁傳出至硬盤。然而,這樣的系統在發展計算機硬件體系結構方面并未被優化。
發明內容
以下是在本文詳細描述的主題的簡要概述。本發明內容不旨在是關于權利要求的范圍的限制。此處描述了涉及管理虛擬化系統上的非對稱存儲器資源的各種技術。處理器不斷地被開發成具有日益增長的執行能力。然而最近,與這些處理器相關聯的能力和復雜性已經使得半導體行業轉向包括若干核的多核體系結構,其中每一核常常具有與大部分先進處理器的設計相比較簡單、較小的設計。就性能和容量兩方面而言,處理器上越來越多的核的數量對存儲器造成了越來越多的壓力。由此,提出處理器能夠對非對稱存儲器池進行存取的硬件體系結構設計,其中非對稱存儲器池包括第一存儲器和第二存儲器,且第一存儲器的性能特征與第二存儲器的性能特征不相同。換言之,第一存儲器在處理器和處理器核方面與第二存儲器的等待時間和帶寬相比可具有較短的等待時間和較高的帶寬。
根據此處更詳細地描述的一個方面,多個虛擬機可在使用非對稱存儲器池的虛擬化系統上執行。換言之,虛擬化機器的一個或多個可被分配跨具有不同性能特征的處理器的地址空間。因此,在虛擬化系統中執行的虛擬機可被分配第一存儲器的一部分(例如,多個頁)以及第二存儲器的一部分,其中第一存儲器和第二存儲器具有不同的性能特征。第一存儲器和第二存儲器可被監視一閾值時間段來查明虛擬機如何對已經被分配到該虛擬機的第一存儲器中的頁以及第二存儲器中的頁進行存取。可以使用所監視的多個虛擬機對第一存儲器和第二存儲器的存取來預測這些多個虛擬機對第一存儲器和第二存儲器的將來存取。隨后可使用這些預測的將來存取來動態地在多個虛擬機之間分配非對稱存儲器。 即,可動態地分配來自非對稱存儲器的存儲器以顯著地優化虛擬化環境中多個虛擬機的執行。另外,對于在虛擬化環境中執行的任何給定的虛擬機,可積極地管理不同存儲器池(第一存儲器和第二存儲器)之間的頁。例如,可采用以上討論的預測來確定是否應該將分配給特定虛擬機的頁在該虛擬機的地址空間中從第一存儲器遷移至第二存儲器,或反向。在閱讀并理解了附圖和描述后,可以明白其他方面。
圖1是計算系統中的示例性處理器/存儲器體系結構的功能框圖。圖2是便于管理虛擬化系統中的非對稱存儲器池的示例性系統的功能框圖。圖3是便于管理虛擬化系統中的非對稱存儲器池的示例性系統的功能框圖。圖4示出帶有非對稱存儲器池的虛擬化系統中的頁遷移。圖5是帶有非對稱存儲器池的虛擬化系統中的存儲器管理系統的示例性實施例的功能框圖。圖6是示出用于跨虛擬化系統中的非對稱存儲器池遷移頁的示例性方法的流程圖。圖7是示出用于跨虛擬化系統中的非對稱存儲器池管理存儲器分配的示例性方法的流程圖。圖8是示例性計算系統。
具體實施例方式現在將參考附圖來描述關于管理虛擬化系統中的非對稱存儲器池的各種技術,在全部附圖中相同的附圖標記表示相同的元素。另外,本文出于解釋的目的示出并描述了各示例性系統的若干功能框圖;然而可以理解,被描述為由特定系統組件執行的功能可以由多個組件來執行。類似地,例如,一組件可被配置成執行被描述為由多個組件執行的功能。參考圖1,示出了作為此處公開的各方面的基礎的示例性硬件體系結構100。體系結構100包括多個處理器102-104。根據一示例,處理器102-104中的一個或多個可以是多核處理器。體系結構100還包括多個第一存儲器106-108,它們在此還可被稱為“近”存儲器。第一近存儲器106可只由第一存儲器102存取,而第N近存儲器可只由第N存儲器108 存取。然而要理解的是,近存儲器106-108中的每一個可由多個處理器或處理器核存取。
體系結構100還包括可由第一處理器102和第N處理器兩者存取的第二存儲器 110,其中第二存儲器110在此還可被稱為“遠”存儲器。根據一示例,近存儲器106-108關于處理器102-104可具有與遠存儲器110關于處理器102-104不相似的性能特征。例如, 近存儲器106-108與遠存儲器110相比關于處理器102-104可具有較佳的性能,其中較佳的性能可以指較短的等待時間和/或較高的帶寬。具有不同性能特征的不同存儲器(各自可由處理器存取)可被稱為非對稱存儲器,其中非對稱存儲器池指具有不同性能特征的不同存儲器。將不描述各種特定實施例,其中這樣的實施例在本質上是示例性的且不旨在限制權利要求書的范圍。在第一示例中,第一處理器102和第一近存儲器106可駐留在服務器中,而遠存儲器110可以是可由該服務器和若干其他服務器存取的存儲器刀片或存儲器排 (memory bank)。在另一示例中,如先前所述,處理器102-104可以是駐留在服務器上的多核處理器,而近存儲器106-108可以是片上存儲器。在該示例中,近存儲器106可由多核處理器上的每一核存取。此外,遠存儲器110可以是片外存儲器。在這樣的實施例中,近存儲器106-108可以是通過利用3D裸片疊層分別堆疊在處理器102-104上的DRAM,而遠存儲器 110可以是某種形式的片外存儲器。雖然提供了某些示例,但要理解的是,構想了任何合適的分層非對稱存儲器方案,且這些方案旨在落入本文所附權利要求書的范圍之內。現在參考圖2,示出了便于管理虛擬化系統中的非對稱存儲器池的示例性系統 200。系統200包括近存儲器202和遠存儲器204,其中近存儲器202在處理器或處理器核方面的性能特征與遠存儲器204的性能特征不同。系統200還包括多個虛擬機206-208, 其中虛擬機206中的每一個具有分配給其的近存儲器202的各部分和遠存儲器204的各部分。具體地,虛擬機206-208中的每一個具有分配給其的相鄰虛擬地址空間,且這些相鄰虛擬地址空間可映射到近存儲器202和遠存儲器204的各部分。在一示例中,虛擬機206-208 可共享處理器的資源,以使得取決于與其相對應的工作負載來在虛擬機206-208之間共享處理器的處理周期。在另一實施例中,虛擬機206-208中的每一個可被分配多核處理芯片的一核。當然,還構想了其他實現,并且這些實現旨在落入本文所附權利要求書的范圍內。系統200還包括監視器組件210,監視器組件210監視虛擬機206-208隨時間對近存儲器202和遠存儲器204的存取。例如,監視器組件210可被配置成監視對與虛擬機 206-208相對應的虛擬地址空間中的每一頁的存取,其可映射到近存儲器202和遠存儲器 204。在一特定示例中,監視器組件210可經由硬件存取位來跟蹤虛擬機206-208的存儲器使用。更具體地,監視器組件210可檢查并清除與描述客物理地址(GPA)和系統物理地址 (SPA)之間的映射(例如,虛擬地址空間和系統地址空間之間的映射)的嵌套表條目相關聯的存取位。在一示例中,監視器組件210可向系統管理程序(未示出)進行超調用來檢查和清除這些存取位。此外,監視器組件210可周期性地(例如,每秒一次)分析存取位。預測器組件212與監視器組件210進行通信,并且可預測虛擬機206-208中的每一個將來對近存儲器202中的頁以及遠存儲器204中的頁的存取。更具體地,預測器組件 212可輸出指示給定客物理頁在不久的將來將始終被存取的似然性的數據。在一示例中,預測器組件212可從監視器組件210接收關于近存儲器202和遠存儲器204中的頁的歷史存取模式,并且對于給定客物理頁,可預測該客物理頁將由與該客物理頁相對應的虛擬機存取的似然性。所預測的似然性可以是二元的,因為預測器組件212或者輸出客物理頁可能由虛擬機存取或者輸出客物理頁可能不由虛擬機存取的指示。或者,預測器組件212可輸出具有更具粒度的預測,諸如取決于連續比例的值或存取似然性的若干可能水平中的一個的值。在一示例性實現中,預測器組件212可對給定客物理頁采用空間過濾或時間過濾中的一個或多個來預測該客物理頁在不久的將來將被存取的似然性。例如,以下示出的算法可由處理器執行,其中該算法是使用大小為W的歷史窗口的時間過濾算法
權利要求
1.一種系統,包括預測器組件012),所述預測器組件(21 預測虛擬機對計算系統中的非對稱存儲器池的各部分的存取,其中所述非對稱存儲器池包括第一存儲器和第二存儲器,且其中所述第一存儲器的性能特征與所述第二存儲器的性能特征不相同;以及存儲器管理系統014),所述存儲器管理系統(214)至少部分地基于所述預測器組件所預測的對所述非對稱存儲器池的存取來將所述第一存儲器的各部分分配給所述虛擬機。
2.如權利要求1所述的系統,其特征在于,所述性能特征包括關于處理器的等待時間。
3.如權利要求1所述的系統,其特征在于,所述性能特征包括關于處理器的帶寬。
4.如權利要求1所述的系統,其特征在于,所述虛擬機在多核處理器的一核上執行。
5.如權利要求4所述的系統,其特征在于,所述第一存儲器是包括所述多核處理器的芯片上的存儲器。
6.如權利要求1所述的系統,其特征在于,所述第二存儲器是可由多個處理器存取的存儲器排。
7.如權利要求1所述的系統,其特征在于,所述存儲器管理系統將所述第一存儲器的頁在正在對所述第一存儲器和所述第二存儲器進行存取的多個虛擬機之間進行分配。
8.如權利要求1所述的系統,其特征在于,所述存儲器管理系統將所述第二存儲器中分配給所述虛擬機的至少一頁遷移至所述第一存儲器中分配給所述虛擬機的至少一頁。
9.如權利要求1所述的系統,其特征在于,其中多個虛擬機正在訪問所述非對稱存儲器池,其中所述預測器組件被配置成預測所述多個虛擬機對所述非對稱存儲器池的各部分的存取,其中所述存儲器管理系統至少部分地基于所述預測器組件所預測的對所述非對稱存儲器池的各部分的存取來將所述第一存儲器的相應的各部分分配給所述多個虛擬機中的每一個。
10.一種方法,包括以下計算機可執行動作將地址空間分配給在計算裝置上執行的虛擬機,其中所述地址空間是跨第一存儲器和第二存儲器的,其中所述第一存儲器的性能特征與所述第二存儲器的性能特征不相同;獲得所述虛擬機對所述第一存儲器中的頁以及所述第二存儲器中的頁的歷史存取;至少部分地基于所述虛擬機對所述第一存儲器中的頁以及所述第二存儲器中的頁的歷史存取來預測所述虛擬機對所述第一存儲器中的頁以及所述第二存儲器中的頁的將來存取;以及至少部分地基于所述虛擬機對所述第一存儲器中的頁以及第二存儲器中的頁的將來存取的預測來將數據從所述第一存儲器遷移至所述第二存儲器。
11.如權利要求10所述的方法,其特征在于,還包括監視與所述第一存儲器和所述第二存儲器相對應的存取位。
12.如權利要求10所述的方法,其特征在于,還包括將地址空間分配給在所述計算設備上執行的多個虛擬機,其中所述多個虛擬機中的每一個被分配跨所述第一存儲器和所述第二存儲器的地址空間;獲得所述多個虛擬機對所述第一存儲器中的頁以及所述第二存儲器中的頁的歷史存取;至少部分地基于所述多個虛擬機對所述第一存儲器中的頁以及所述第二存儲器中的頁的歷史存取來預測所述多個虛擬機對所述第一存儲器中的頁以及所述第二存儲器中的頁的將來存取;以及至少部分地基于對所述多個虛擬機對所述第一存儲器中的頁以及所述第二存儲器中的頁的將來存取的預測來將所述第一存儲器的各部分分配給相應的所述多個虛擬機。
13.如權利要求10所述的方法,其特征在于,所述方法被配置成以供在所述計算設備上執行的系統管理程序中執行。
14.如權利要求10所述的方法,其特征在于,還包括至少部分地基于對所述虛擬機對所述第一存儲器中的頁以及第二存儲器中的頁的將來存取的預測來將頁從所述第一存儲器遷移至所述第二存儲器。
15.如權利要求10所述的方法,其特征在于,還包括對于地址空間中被分配給所述虛擬機的每一頁,計算指示一閾值時間量內對各個頁的存取次數的度量;以及至少部分地基于所述度量來預測所述虛擬機對所述第一存儲器中的頁以及所述第二存儲器中的頁的將來存取模式。
全文摘要
本發明涉及帶有非對稱存儲器的系統中的虛擬機存儲器管理。本文描述了包括預測虛擬機對計算系統中的非對稱存儲器池的各部分的存取的預測器組件的系統,其中非對稱存儲器池包括第一存儲器和第二存儲器,且其中第一存儲器的性能特征與第二存儲器的性能特征不相同。該系統還包括存儲器管理系統,該存儲器管理系統至少部分地基于預測器組件所預測的對非對稱存儲器池的存取來將第一存儲器的各部分分配給虛擬機。
文檔編號G06F3/06GK102402399SQ20111024509
公開日2012年4月4日 申請日期2011年8月16日 優先權日2010年8月17日
發明者D·T·哈珀三世, P·沙爾馬, R·B·納圖基 申請人:微軟公司