CN104781796A - 使用存储器映射图的虚拟机的存储器分配 - Google Patents

使用存储器映射图的虚拟机的存储器分配 Download PDF

Info

Publication number
CN104781796A
CN104781796A CN201380060517.3A CN201380060517A CN104781796A CN 104781796 A CN104781796 A CN 104781796A CN 201380060517 A CN201380060517 A CN 201380060517A CN 104781796 A CN104781796 A CN 104781796A
Authority
CN
China
Prior art keywords
memory module
virtual machine
vmm
memory
storer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201380060517.3A
Other languages
English (en)
Other versions
CN104781796B (zh
Inventor
S.S.查哈尔
M.J.库马
D.G.迈尔斯
D.斯塔纳索洛维奇
J.贝尔特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN104781796A publication Critical patent/CN104781796A/zh
Application granted granted Critical
Publication of CN104781796B publication Critical patent/CN104781796B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • Signal Processing (AREA)

Abstract

公开了与针对虚拟机的存储器分配关联的设备和方法。在实施例中,一种设备可包括:处理器;多个存储器模块;和存储器控制器,被配置为提供存储器模块的布局。该设备还可包括:VMM,被配置为由处理器操作以管理由处理器进行的VM的执行,包括使用由存储器控制器提供给VMM的存储器模块的布局将存储器模块选择性地分配给VM。可描述和要求保护其它实施例。

Description

使用存储器映射图的虚拟机的存储器分配
技术领域
本公开的实施例涉及数据处理领域,并且具体地讲,涉及在主机系统上运行的虚拟机的存储器分配和错误恢复。
背景技术
在企业和办公室计算环境中存在虚拟化趋势。通常,每个主机的虚拟机的比率一直稳定地增加。尽管当前每个主机具有10个虚拟机并不罕见,但估计在不远的将来这将会增加到15、20或更多。在接下来的几年中,预期多数计算环境将会被虚拟化。随着主机支持越来越多的虚拟机,存在关于主机上的虚拟机的可用性的增加的担心。主机上的虚拟机的可用性能够受到任何数量的问题的影响。这些问题之一是主机上的存储器模块故障。
在当前架构下,通常,每个虚拟机可跨主机的许多存储器模块分布,其中虚拟机仅占用这些存储器模块中的每个存储器模块的一部分。这种类型的分配导致交错存储器分配,其中每个存储器模块可具有驻留在它上面的许多虚拟机的一部分。这种交错分配的益处在于:它实现对虚拟机的数据的并行访问,因为能够同时访问保存虚拟机的一部分的每个存储器模块。然而,当涉及虚拟机可用性时,交错架构具有缺点。利用当前架构,每当存在存储器模块故障时,主机上的所有虚拟机必须被关闭,以便使主机能够重新启动以排除发生故障的存储器模块。因此,每当单个存储器模块在主机上发生故障时,它引起在该主机上运行的所有虚拟机的停机。
附图说明
图1是根据本公开的一些实施例的一般化虚拟计算环境。
图2是根据本公开的一些实施例的图1的虚拟计算环境中的主机的一种可能的配置的示图。
图3是根据本公开的一些实施例的虚拟机的物理存储器的分配的流程图。
图4是根据本公开的一些实施例的在存储器模块故障的情况下的虚拟机的重新分配的流程图。
图5是描述根据本公开的一些实施例的错误校正的示图。
具体实施方式
在下面的详细描述中,参照形成本详细描述的一部分的附图,其中相似标号始终表示相似部分,并且其中作为说明示出可实施的实施例。应该理解,在不脱离本公开的范围的情况下可利用其它实施例并且可实现结构或逻辑改变。因此,不应该在限制性意义上进行下面的详细描述,并且由所附权利要求及其等同物定义实施例的范围。
各种操作可被以最有助于理解要求保护的主题的方式依次描述为多个分立动作或操作。然而,描述的次序不应该被解释为暗示这些操作必须依赖于次序。特别地,这些操作可不按照呈现的次序执行。可按照不同于所描述的实施例的次序执行描述的操作。可执行各种另外的操作和/或可在另外的实施例中省略描述的操作。
为了本公开的目的,短语“A和/或B”表示(A)、(B)或(A和B)。为了本公开的目的,短语“A、B和/或C”表示(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。该描述可使用短语“在一个实施例中”或“在实施例中”,它们每一个均可指示相同或不同实施例中的一个或多个。另外,如关于本公开的实施例所使用的,术语“包括”、“包含”、“具有”等是同义的。
参照图1,其图示根据本公开的一些实施例的在主机102上实现的虚拟计算环境100。在实施例中,虚拟计算环境(以下,简单地称为虚拟环境)100可被配置为同时支持这里表示为VM1-VM5的多个虚拟机。可在虚拟机之中共享虚拟环境100中的主机102,其中虚拟化软件层(诸如,虚拟机管理器(VMM) 104)被配置为协调由虚拟机VM1-VM5对主机102的资源的使用。
VMM 104可被配置为提供抽象层,抽象层可提供用于运行虚拟机的完整系统的错觉。换句话说,从虚拟机的视点,VMM 104可以是一组虚拟化硬件,在该硬件上执行虚拟机。因此,主机102和VMM 104的基础硬件的组合可为虚拟机VM1-VM5提供执行环境。
在实施例中,VMM 104可被配置为从虚拟机VM1-VM5接收对存储器资源的请求。VMM 104还可被适配为从主机102(例如,主机102的存储器控制器)接收主机102上可用的存储器资源的存储器模块布局。VMM 104还可被适配为利用存储器模块布局选择性地分配存储器以满足来自虚拟机VM1-VM5的存储器请求。在一些实施例中,对于每个存储器请求,VMM 104可被适配为确定满足存储器请求的最低数量的存储器模块并且利用这个确定将存储器资源选择性地分配给做出请求的VM。将在以下更详细地描述存储器的这种选择性分配。
在一些实施例中,VMM 104可直接在主机102上执行,如图1中所述。在其它实施例中,VMM 104可在主机操作系统内执行,该主机操作系统在主机102上执行。VMM 104还可被称为虚拟化软件或管理程序,为了本公开的目的,虚拟化软件和管理程序可被视为是同义的,除非上下文另外清楚地指示;并且因此,这些术语可被可互换地使用。
虚拟机可被分成两个类型:过程虚拟机和系统虚拟机。过程虚拟机被设计为运行单个过程或应用,而系统虚拟机运行客户操作系统(OS)和客户应用。虚拟机VM1-VM5可由过程虚拟机、系统虚拟机或其任何组合组成。为了说明的目的,在图1中描述五个虚拟机VM1-VM5;然而,对于本领域普通技术人员而言将会清楚的是,虚拟机的数量不是限制因素并且在不脱离本公开的范围的情况下能够包括任何数量的虚拟机。
在一些实施例中,虚拟机的客户OS可以是相同的,例如复制的虚拟机。在一些实施例中,客户OS可与基础主机OS的客户OS相同。在其它实施例中,虚拟机的OS可彼此不同和/或可不同于基础主机102的执行环境。
主机102还可被称为主机平台或主机硬件,为了本公开的目的,这些术语可被视为是同义的,除非上下文另外清楚地指示。在图2的讨论中进一步讨论主机102。
图2图示针对本公开的一些实施例的图1的主机102的硬件资源的更详细的描述。除了本公开的教导之外,主机102可以是本领域已知的、便携式或静止的许多计算装置中的任何一个,包括但不限于个人计算机、工作站、服务器、便携式计算机(电子书、超级本、膝上型计算机)和手持式装置(诸如,个人数字助手(PDA)或智能电话)。
主机102硬件可由存储器202、存储器控制器206和处理器208组成。处理器可与存储器控制器206耦合,并且存储器控制器206可与存储器202耦合。对于本领域普通技术人员而言将会清楚的是,主机102的配置不是限制因素并且在不脱离本公开的范围的情况下可按照各种方式配置主机102的硬件资源。另外,在不脱离本公开的范围的情况下,可添加另外的部件。
存储器202由多个存储器模块204a-j(统称为204)组成。在不脱离本公开的范围的情况下,存储器模块204可以是任何类型的存储器模块,易失性或非易失性、动态或静态随机存取存储器、闪存。为了说明的目的,存储器202被描述为由10个存储器模块204a-j组成。本领域普通技术人员将会意识到,在不脱离本公开的范围的情况下,存储器202能够由任何数量的存储器模块组成。
存储器控制器206可被配置为管理去往和来自存储器202的数据流。存储器控制器206还可被配置为包含读和写存储器202所需的逻辑。在实施例中,存储器控制器206可被适配为将存储器模块布局提供给VMM 104。由存储器控制器206提供的存储器模块布局可具有任何形式,只要它提供足够信息以供VMM 104在针对虚拟机分配存储器时利用。例如,在一些实施例中,存储器模块布局能够是存储器模块以及每个存储器模块的开始和结束地址的列表。在其它实施例中,存储器模块布局能够是每个存储器地址和每个存储器地址所驻留的存储器模块的列表。在再另外的实施例中,存储器模块布局可由存储器模块利用相应存储器模块的每个地址的列表进行划分。本领域普通技术人员将会意识到,在不脱离本公开的范围的情况下,存在将这种信息呈现给VMM 104的许多方法。
存储器控制器206还可被适配为确定针对VMM 104的存储器分配。在一些实施例中,存储器控制器206可被适配为确定满足VMM 104的存储器要求的最低数量的存储器模块。在这些实施例中,存储器控制器206可被适配为随后选择存储器块,使得VMM 104将会完全驻留于所述最低数量的存储器模块内。在一些实例中,可能仅需要单个存储器模块。在其它实施例中,存储器控制器206可被配置为利用每个可用存储器模块的一部分。存储器控制器206将会通过跨具有可用存储器块的所有存储器模块选择可用存储器块来实现这一点。在还其它实施例中,存储器控制器206可被配置为利用所述最低数量的存储器模块和全部数量的可用存储器模块之间的某个数量的存储器模块数量的一部分。在一些实施例中,存储器控制器206可被适配为从具有足够可用性的存储器模块选择存储器块以跨存储器模块相等地分摊VMM 104。
尽管存储器控制器206被描述为与处理器208分开,但本领域普通技术人员将会理解,在不脱离本公开的范围的情况下,存储器控制器能够与处理器集成。另外,非限制性地,通常处理器208可以是例如可从加利福尼亚圣克拉拉的英特尔公司购得的单核或多核处理器。
图3是根据本公开的一些实施例的用于利用VMM将存储器分配给虚拟机的过程流程图300。为了清楚,将参照图1和2的元件描述这个过程。该过程可开始于块302,在块302中,VMM 104可被激活。根据主机102的配置,可通过主机系统的OS或通过主机102的硬件或固件机构实现这一点。在块304,激活VMM 104的主机系统的OS或者硬件或固件机构可在块306中针对VMM 104分配一个或多个存储器模块的全部或部分。如参照图2所讨论的,在一些实施例中,激活VMM 104的主机系统的OS或者硬件或固件机构可被适配为确定满足VMM 104的存储器要求的最低数量的存储器模块。
在针对VMM 104的存储器模块已被分配并且VMM 104已被完全实例化之后,VMM 104可在块308向存储器控制器206提交对存储器模块布局的请求。如以上参照图2所讨论的,存储器控制器206可被适配为接受这种请求并且对这种请求做出响应。在块310中,VMM 104将会从存储器控制器206接收存储器模块布局。在替代实施例中,存储器控制器206可被配置为在VMM 104初始化时自动地将存储器映射图提供给VMM 104。
存储器模块布局可具有任何格式,只要它与VMM 104兼容即可。例如,在一些实施例中,存储器模块布局能够是存储器模块以及每个存储器模块的开始和结束地址的列表。在其它实施例中,存储器模块布局能够是每个存储器地址和该存储器地址所驻留的存储器模块的列表。在还另外的实施例中,存储器模块布局可由存储器模块利用列出的相应存储器模块的每个地址进行划分。本领域普通技术人员将会意识到,在不脱离本公开的范围的情况下,存在将这种信息呈现给VMM 104的许多方式。
在块312中,在接收到存储器映射图之后,VMM 104可响应于例如VM请求而激活虚拟机(诸如,图1的VM1)。随后在块314,VMM 104可确定正被激活的虚拟机的存储器要求或例如由正被激活的虚拟机向VMM 104提供这种信息。在一些实施例中,可基于针对虚拟机VM1的某个类型的所存储的初始化设置来静态地确定存储器要求。在其它实施例中,可在运行中或动态地确定存储器要求。
在块316中,VMM 104可确定针对虚拟机VM1的选择性存储器分配。VMM 104可通过利用存储器模块布局来确定选择性存储器分配,以选择存储器的块来满足虚拟机VM1的存储器要求。VMM 104可按照许多方式选择存储器块以便分配。例如,在一些实施例中,VMM 104可被适配为确定满足虚拟机VM1的存储器要求的最低数量的存储器模块。在这些实施例中,VMM 104随后可选择存储器块,从而虚拟机VM1将会完全驻留于所述最低数量的存储器模块内。在其它实施例中,VMM 104可利用每个可用存储器模块的一部分。VMM 104将会通过跨具有可用存储器块的所有存储器模块选择可用存储器块来实现这一点。在再其它实施例中,VMM 104可利用所述最低数量的可用存储器模块和全部数量的可用存储器模块之间的某个数量的存储器模块数量的一部分。在一些实施例中,VMM 104可被适配为从具有足够可用性的存储器模块选择存储器块以跨存储器模块相等地分摊虚拟机VM1。
在一些实施例中,VMM 104可记录选择性存储器分配的细节以用于以后参考。这些细节可包括分配给虚拟机的地址范围或存储器模块以及这些地址或存储器模块已被分配给的虚拟机的标识。
在块320中,确定是否存在更多的待激活的虚拟机。如果存在更多的待激活的虚拟机,则可针对每个另外的待激活的虚拟机(即,图1的VM2-VM5)重复上述过程。如果所有虚拟机已被激活,则这个过程可结束或暂停,直至另一虚拟机将要被激活。
图4是在本公开的一些实施例下用于从存储器模块故障恢复的过程流程图400。为了清楚,将参照图1和2的元件描述这个过程。
该过程可开始于块402,在块402中,可由主机102检测存储器模块故障。在一些实施例中,可通过使用主机102的机器检查架构(MCA)恢复机构检测存储器模块故障。普通技术人员将会理解,在不脱离本公开的范围的情况下,能够利用检测存储器模块故障的任何方法。
在块404中,VMM 104可被通知存储器模块故障。根据主机102的配置,可通过主机OS、存储器控制器206或主机102的固件实现这一点。在一些实施例中,这个通知可包括发生故障的存储器模块的标识。在其它实施例中,这个通知可包括发生故障的存储器模块的地址范围。
在块406,VMM 104可识别包括发生故障的存储器模块的虚拟机分配。可参照以上在图3的讨论中描述的所记录的存储器分配细节来实现这一点。为了完成这一点,VMM 104可把利用所包括的信息的所记录的存储器分配与存储器模块故障通知进行相互对照,以便确定哪个虚拟机或哪些虚拟机已被分配给发生故障的存储器模块。
在块408,VMM 104可确定是否任何一个虚拟机或多个虚拟机受到存储器模块故障的影响。如果没有虚拟机受到影响,则该过程可结束。如果一个或多个虚拟机受到存储器模块故障的影响,则该过程可继续前进至块410。
在块410,VMM 104可停止所识别的一个虚拟机、多个虚拟机,而不停止不受影响的虚拟机。在块412,VMM 104可将其它存储器资源重新分配给所识别的一个虚拟机或多个虚拟机,并且利用所述新的存储器分配重新启动受影响的一个虚拟机或多个虚拟机。可利用参照图3的块312-318描述的相同过程实现该重新分配。在受影响的虚拟机的重新启动之前,尽可能地,VMM 104可将恢复的数据从先前分配的存储器模块恢复和迁移到新分配的存储器模块。
图5是描述根据本公开的一些实施例的恢复过程的示图。502是根据本公开的一些实施例的在第一时间实例的图1的虚拟机VM1-VM5的存储器分配的描述。在这个实施例中,主机OS或固件加载器已在存储器模块204j中加载和初始化VMM 104,以利用满足VMM 104的存储器要求的所述最低数量的存储器模块。另外,VMM 104已执行选择性存储器分配,在该选择性存储器分配中,虚拟机VM1-VM5被分配给满足虚拟机VM1-VM5的相应存储器要求的所述最低数量的存储器模块。如所描述的,存储器模块204a已被分配给VM1,存储器模块204b已被分配给VM2和VM3两者,存储器模块204c已被分配给VM4并且204d已被分配给VM5。存储器模块204e-204i尚未被分配。可通过参照图3描述的分配过程实现这种分配。
504描述在比第一时间实例晚的第二时间实例的存储器模块故障。在这个方案中,存储器模块204c经历故障。主机102将会检测到这个错误,并且根据主机102的配置通过硬件的机构通知VMM 104或者通知主机OS,主机OS继而将会向VMM 104通知存储器模块故障。
506描述在接收到故障通知之后对存储器模块故障的响应。响应于关于存储器模块故障的通知,VMM 104将会停止VM4。该存储器模块还可被VMM 104、存储器控制器206或主机102的其它机构标记为不可用。在一些实施例中,存储器控制器206可被适配为将该存储器模块标记为不可用;然而,本公开不限于此。在不脱离本公开的范围的情况下,能够使用用于将该存储器模块标记为不可用的任何机构。
508描述由VMM 104进行的VM4的重新激活。在这个方案中,VMM 104已选择性地分配针对VM4的存储器模块204e。参照图3和4描述这个选择性存储器分配。如前所述,尽可能地,VMM 104可将所恢复的数据从存储器模块204c恢复和迁移到204e。
本公开的实施例能够采用完全硬件实施例、完全软件实施例或者既包含硬件元件又包含软件元件的实施例的形式。在优选实施例中,本公开被实现于软件中,所述软件包括但不限于固件、常驻软件、微码等。另外,本公开能够采用可从计算机可用或计算机可读介质访问的计算机程序产品的形式,所述计算机可用或计算机可读介质提供由计算机或任何指令执行系统使用或与计算机或任何指令执行系统一起使用的程序代码。
为了这个描述的目的,计算机可用或计算机可读介质能够是如下的任何设备,该设备能够包含、存储、传送、传播或传输由指令执行系统、设备或装置使用或与指令执行系统、设备或装置一起使用的程序。该介质能够是电子、磁、光学、电磁、红外或半导体系统(或设备或装置)或传播介质。计算机可读介质的例子包括半导体或固态存储器、磁带、可移除计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、刚性磁盘和光盘。光盘的当前例子包括压缩盘-只读存储器(CD-ROM)、读/写压缩盘(CD-R1W)和DVD。
因此,这里描述的内容包括可提供被配置为提供存储器模块的布局的存储器控制器的设备、至少一个机器可读存储介质和方法。在实施例中,一种设备可包括:处理器;许多存储器模块;和存储器控制器,与处理器和存储器模块耦合并且被配置为提供存储器模块的布局。该设备还可包括:虚拟机管理器(VMM),被配置为由处理器操作以管理由处理器进行的虚拟机的执行,包括使用由存储器控制器提供给VMM的存储器模块的布局将存储器模块选择性地分配给虚拟机。
在实施例中,VMM可被配置为采用利用满足存储器要求的所述最低数量的存储器模块的存储器分配。在实施例中,VMM可被配置为采用利用满足存储器要求的最小数量的存储器模块的存储器分配。
在实施例中,VMM可被配置为接收存储器模块的布局并且从虚拟机接收存储器要求。VMM可确定满足虚拟机的存储器要求的待整体上或部分地分配的所述最低数量的存储器模块,并且将所述最低数量的存储器模块分配给虚拟机。
在实施例中,存储器控制器可被配置为在存储器模块故障的情况下警告VMM。VMM可被配置为响应于关于存储器模块故障的警告识别具有包括发生故障的存储器模块的存储器分配的虚拟机。VMM可停止具有包括发生故障的存储器模块的存储器分配的虚拟机。VMM可向虚拟机重新分配不包括发生故障的存储器模块的新的存储器分配。VMM可利用所述新的存储器分配重新启动虚拟机。
在实施例中,存储器控制器可被配置为具有机器检查架构(MCA)恢复使能硬件以检测存储器模块的故障。在实施例中,VMM可被配置为将存储器模块分配给至多一个虚拟机。在实施例中,存储器控制器可被配置为分配供VMM驻留的最小数量的存储器模块。
在实施例中,所述至少一个机器可读存储介质可包括指令,该指令被配置为响应于由计算装置的处理器执行而为计算装置提供虚拟机管理器(VMM)。在实施例中,VMM可被装备为管理由处理器进行的虚拟机的执行。在另外的实施例中,VMM可被装备为包括计算装置的存储器模块到虚拟机的选择性分配。VMM可被装备为使用由计算装置的存储器控制器提供的存储器模块的布局。在实施例中,VMM可被配置为采用利用满足存储器要求的所述最少数量的存储器模块的存储器分配。
在实施例中,VMM可被配置为接收存储器模块的布局。VMM可被配置为从虚拟机接收存储器要求。VMM可确定满足虚拟机的存储器要求的待整体上或部分地分配的最低数量的存储器模块,并且将所述最低数量的存储器模块分配给虚拟机。
在实施例中,VMM可被配置为从存储器控制器接收存储器模块故障的警告。VMM可被配置为响应于关于存储器模块故障的警告来识别具有包括发生故障的存储器模块的存储器分配的虚拟机。VMM可停止具有包括发生故障的存储器模块的存储器分配的虚拟机。VMM可向虚拟机重新分配不包括发生故障的存储器模块的新的存储器分配。VMM可利用所述新的存储器分配重新启动虚拟机。
在实施例中,所述至少一个机器可读存储介质还可包括如下指令,当该指令由计算装置的处理器执行时,该指令使计算装置分配供VMM驻留的最小数量的存储器模块。
在实施例中,方法可包括:由在主机上操作的虚拟机管理器(VMM)接收主机的存储器模块的布局。在实施例中,该方法可包括:由VMM接收由VMM管理的虚拟机的存储器要求。在实施例中,该方法可包括:由VMM使用存储器模块的布局选择性地分配存储器模块以满足虚拟机的存储器要求。
在实施例中,该方法可包括:由VMM确定针对虚拟机的最低数量的存储器模块。该方法可包括:由VMM分配针对虚拟机的所述最低数量的存储器模块。
在实施例中,该方法可包括:向VMM警告存储器模块故障。该方法还可包括:响应于关于发生故障的存储器模块的警告,识别具有包括发生故障的存储器模块的存储器分配的虚拟机。该方法可包括:停止具有包括发生故障的存储器模块的存储器分配的虚拟机。该方法可包括:向虚拟机重新分配不包括发生故障的存储器模块的新的存储器分配;并且利用所述新的存储器分配重新启动虚拟机。在实施例中,该方法可包括:利用机器检查架构(MCA)恢复使能硬件检测存储器模块故障。
虽然已在这里图示和描述了特定实施例,但本领域普通技术人员将会理解,在不脱离本公开的实施例的范围的情况下,各种各样的替代和/或等同实现方式可替换示出和描述的特定实施例。本申请意图覆盖这里讨论的实施例的任何修改或变化。因此,本公开的实施例显然应该仅由权利要求及其等同物限制。

Claims (20)

1.一种用于存储器模块到虚拟机的选择性分配的设备,包括:
处理器;
多个存储器模块;
存储器控制器,与处理器和存储器模块耦合并且被配置为提供存储器模块的布局;和
虚拟机管理器(VMM),被配置为由处理器操作以管理由处理器进行的虚拟机的执行,所述执行包括使用由存储器控制器提供给VMM的存储器模块的布局将存储器模块选择性地分配给虚拟机。
2.如权利要求1所述的设备,其中所述VMM被配置为采用利用满足存储器要求的最低数量存储器模块的存储器分配。
3.如权利要求1所述的设备,其中所述VMM被配置为采用利用满足存储器要求的最小数量存储器模块的存储器分配。
4.如权利要求1所述的设备,其中所述VMM被配置为:
接收存储器模块的布局;
从虚拟机接收存储器要求;
确定满足虚拟机的存储器要求的待整体上或部分地分配的最低数量的存储器模块;以及
将所述最低数量的存储器模块分配给虚拟机。
5.如权利要求1-4中任何一项所述的设备,其中所述存储器控制器还被配置为:
向VMM警告所述存储器模块中的存储器模块的故障。
6.如权利要求5所述的设备,其中所述VMM还被配置为:
响应于关于发生故障的存储器模块的警告,识别具有包括发生故障的存储器模块的存储器分配的虚拟机;
停止具有包括发生故障的存储器模块的存储器分配的虚拟机;
向虚拟机重新分配不包括发生故障的存储器模块的新的存储器分配;以及
利用所述新的存储器分配重新启动虚拟机。
7.如权利要求5所述的设备,其中所述存储器控制器被配置为具有机器检查架构(MCA)恢复使能硬件以检测存储器模块的故障。
8.如权利要求1所述的设备,其中所述VMM被配置为将存储器模块分配给至多一个虚拟机。
9.如权利要求1所述的设备,其中所述存储器控制器还被配置为分配供VMM驻留的最小数量的存储器模块。
10.至少一个机器可读介质,包括用于将存储器模块选择性地分配给虚拟机的指令,该指令响应于由计算装置的处理器执行而为计算装置提供虚拟机管理器(VMM),虚拟机管理器被装备为管理由处理器进行的虚拟机的执行,所述执行包括使用由计算装置的存储器控制器提供的存储器模块的布局将计算装置的存储器模块选择性地分配给虚拟机。
11.如权利要求10所述的至少一个机器可读介质,其中所述VMM被配置为采用利用满足存储器要求的最少数量的存储器模块的存储器分配。
12.如权利要求10所述的至少一个机器可读介质,其中所述VMM被配置为:
接收存储器模块的布局;
从虚拟机接收存储器要求;
确定满足虚拟机的存储器要求的待整体上或部分地分配的最低数量的存储器模块;以及
将最低数量的存储器模块分配给虚拟机。
13.如权利要求10-12中任何一项所述的至少一个机器可读介质,其中所述VMM被配置为从存储器控制器接收存储器模块故障的警告。
14.如权利要求10所述的至少一个机器可读介质,其中所述VMM被配置为:
响应于关于存储器模块故障的警告,识别具有包括发生故障的存储器模块的存储器分配的虚拟机;
停止具有包括发生故障的存储器模块的存储器分配的虚拟机;
向虚拟机重新分配不包括发生故障的存储器模块的新的存储器分配;以及
利用所述新的存储器分配重新启动虚拟机。
15.所述至少一个机器可读介质,还包括指令,当该指令由计算装置的处理器执行时,该指令使计算装置分配供VMM驻留的最小数量的存储器模块。
16.一种用于将存储器模块选择性地分配给虚拟机的方法,包括:
由在主机上操作的虚拟机管理器(VMM)接收主机的存储器模块的布局;
由VMM接收由VMM管理的虚拟机的存储器要求;
由VMM使用存储器模块的布局选择性地分配存储器模块以满足虚拟机的存储器要求。
17.如权利要求16所述的方法,还包括:
由VMM确定针对虚拟机的最低数量的存储器模块;以及
由VMM分配针对虚拟机的所述最低数量的存储器模块。
18.如权利要求16或17之一所述的方法,还包括:向VMM警告存储器模块故障。
19.如权利要求18所述的方法,还包括:
响应于关于发生故障的存储器模块的警告,识别具有包括发生故障的存储器模块的存储器分配的虚拟机;
停止具有包括发生故障的存储器模块的存储器分配的虚拟机;
向虚拟机重新分配不包括发生故障的存储器模块的新的存储器分配;以及
利用所述新的存储器分配重新启动虚拟机。
20.如权利要求18所述的方法,还包括:利用机器检查架构(MCA)恢复使能硬件来检测存储器模块故障。
CN201380060517.3A 2012-12-20 2013-06-20 使用存储器映射图的虚拟机的存储器分配 Expired - Fee Related CN104781796B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/722,499 US9015523B2 (en) 2012-12-20 2012-12-20 Memory allocation for virtual machines using memory map
US13/722499 2012-12-20
PCT/US2013/046885 WO2014098989A1 (en) 2012-12-20 2013-06-20 Memory allocation for virtual machines using memory map

Publications (2)

Publication Number Publication Date
CN104781796A true CN104781796A (zh) 2015-07-15
CN104781796B CN104781796B (zh) 2017-08-29

Family

ID=50976166

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380060517.3A Expired - Fee Related CN104781796B (zh) 2012-12-20 2013-06-20 使用存储器映射图的虚拟机的存储器分配

Country Status (4)

Country Link
US (1) US9015523B2 (zh)
EP (1) EP2936318B1 (zh)
CN (1) CN104781796B (zh)
WO (1) WO2014098989A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106407015A (zh) * 2016-10-13 2017-02-15 安徽鼎集信息科技有限公司 一种高可靠虚拟化服务器系统

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10229043B2 (en) * 2013-07-23 2019-03-12 Intel Business Machines Corporation Requesting memory spaces and resources using a memory controller
US9710381B2 (en) 2014-06-18 2017-07-18 International Business Machines Corporation Method and apparatus for cache memory data processing
CN105988874B (zh) 2015-02-10 2020-08-28 阿里巴巴集团控股有限公司 资源处理方法及装置
US10394589B2 (en) 2016-12-06 2019-08-27 International Business Machines Corporation Vertical replication of a guest operating system
WO2018184701A1 (en) * 2017-04-07 2018-10-11 NEC Laboratories Europe GmbH Method for operating virtual machines on a virtualization platform and corresponding virtualization platform
US10374731B2 (en) * 2017-10-31 2019-08-06 Rohde & Schwarz Gmbh & Co. Kg Over-the-air measurements system as well as method for testing the over-the-air characteristics of a device under test
US11385974B1 (en) 2021-03-01 2022-07-12 Google Llc Uncorrectable memory error recovery for virtual machine hosts
US20230315561A1 (en) * 2022-03-31 2023-10-05 Google Llc Memory Error Recovery Using Write Instruction Signaling

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6594749B1 (en) 2000-05-19 2003-07-15 Sun Microsystems, Inc. System and method for memory management using fixed-size blocks
US7886126B2 (en) 2005-01-14 2011-02-08 Intel Corporation Extended paging tables to map guest physical memory addresses from virtual memory page tables to host physical memory addresses in a virtual machine system
US7549022B2 (en) 2006-07-21 2009-06-16 Microsoft Corporation Avoiding cache line sharing in virtual machines
US8015367B1 (en) * 2007-02-16 2011-09-06 Vmware, Inc. Memory management methods in a computer system with shared memory mappings
US7865762B2 (en) * 2007-12-04 2011-01-04 Intel Corporation Methods and apparatus for handling errors involving virtual machines
JP2010122805A (ja) * 2008-11-18 2010-06-03 Hitachi Ltd 仮想サーバシステム並びに物理cpu及び物理メモリの割り当て方法
US20100161929A1 (en) * 2008-12-18 2010-06-24 Lsi Corporation Flexible Memory Appliance and Methods for Using Such
US20100169884A1 (en) * 2008-12-31 2010-07-01 Zohar Bogin Injecting transactions to support the virtualization of a physical device controller
US8738932B2 (en) * 2009-01-16 2014-05-27 Teleputers, Llc System and method for processor-based security
US8090977B2 (en) * 2009-12-21 2012-01-03 Intel Corporation Performing redundant memory hopping
US8327085B2 (en) 2010-05-05 2012-12-04 International Business Machines Corporation Characterizing multiple resource utilization using a relationship model to optimize memory utilization in a virtual machine environment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106407015A (zh) * 2016-10-13 2017-02-15 安徽鼎集信息科技有限公司 一种高可靠虚拟化服务器系统

Also Published As

Publication number Publication date
US20140181576A1 (en) 2014-06-26
EP2936318A4 (en) 2016-11-02
CN104781796B (zh) 2017-08-29
WO2014098989A1 (en) 2014-06-26
US9015523B2 (en) 2015-04-21
EP2936318A1 (en) 2015-10-28
EP2936318B1 (en) 2018-01-10

Similar Documents

Publication Publication Date Title
CN104781796A (zh) 使用存储器映射图的虚拟机的存储器分配
US10078454B2 (en) Access to storage resources using a virtual storage appliance
US9413683B2 (en) Managing resources in a distributed system using dynamic clusters
US9594582B2 (en) Detection and management of dynamic migration of virtual environments
US8185907B2 (en) Method and system for assigning logical partitions to multiple shared processor pools
US8219750B2 (en) Method and system for execution of applications in conjunction with distributed RAID
US9626324B2 (en) Input/output acceleration in virtualized information handling systems
US9747121B2 (en) Performance optimization of workloads in virtualized information handling systems
US20120278800A1 (en) Virtual Processor Allocation Techniques
US10289564B2 (en) Computer and memory region management method
US10956189B2 (en) Methods for managing virtualized remote direct memory access devices
US9558028B2 (en) Systems and methods for migration of virtual machines across virtual storage resources
US20160103728A1 (en) Modular System Awareness in Virtualized Information Handling Systems
US20150067284A1 (en) System and method for selectively utilizing memory available in a redundant host in a cluster for virtual machines
US9552211B1 (en) Method for performing hot-swap of a storage device in a virtualization environment
US11175944B2 (en) Optimizing cluster-wide operations in a hyper-converged infrastructure (HCI) deployment
US20140373006A1 (en) System And Method For Virtual Machine Management
US20190173770A1 (en) Method and system for placement of virtual machines using a working set computation
US9971785B1 (en) System and methods for performing distributed data replication in a networked virtualization environment
WO2011134716A1 (en) Managing a multiprocessing computer system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170829

Termination date: 20210620

CF01 Termination of patent right due to non-payment of annual fee