带有非对称存储器的系统中的虚拟机存储器管理的制作方法

文档序号:6431402阅读:155来源:国知局
专利名称:带有非对称存储器的系统中的虚拟机存储器管理的制作方法
技术领域
本发明涉及计算机技术,尤其涉及计算机存储技术。
背景技术
当前,商业云计算服务被装备为向企业提供计算和数据存储服务,从而允许企业替换或补充私人拥有的信息技术(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·纳图基 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1