用于迁移虚拟机的方法和系统的制作方法

文档序号:8318995阅读:199来源:国知局
用于迁移虚拟机的方法和系统的制作方法
【技术领域】
[0001]本公开内容涉及虚拟机或访客在主机之间的迁移。特别地,其涉及使用一个或多个交换设备对支持存储器过量使用(memory over commitment)的虚拟机的迁移进行处理。
【背景技术】
[0002]访客机器或虚拟机可以是虚拟器件、操作系统或其它类型的虚拟化完备的工作负载。从访客机器的角度来看,其能够用作具有其自己的专用资源的独立单元。监管程序模块能够提供对一个或多个虚拟机进行管理的虚拟化逻辑。该监管程序模块(或仅“监管程序”)能够向在监管程序上运行以及由其管理的虚拟机指派对物理设备/硬件的共享。该虚拟化能够通过在多个虚拟机之间共享主机资源而允许多个虚拟机在单个物理主机的顶端运行。一些计算机系统允许多个监管程序在其硬件上运行。
[0003]某些系统能够允许虚拟机在不同监管程序之间进行迁移。例如,计划中的监管程序中断(例如,为了对监管程序执行维护)可以触发迁移事件,这会使得一个或多个虚拟机被迁移到另一个监管程序。虚拟机的源和目标实例之间可能难以进行令人满意的协调。

【发明内容】

[0004]在本公开内容的某些实施例中,提供了用于在虚拟机迁移至目标监管程序的期间对交换页面进行处理的系统和方法。该迁移能够通过控制对存储虚拟机的交换页面的交换设备的共享权限而被促成,并由此允许目标监管程序访问存在于交换设备上的交换页面。
[0005]实施例针对一种用于使用一个或多个交换程序在均支持存储器过量使用的源监管程序和目标监管程序之间迁移虚拟机的方法。该方法可以包括:由源监管程序接收迁移请求,该迁移请求指定源监管程序上的虚拟机的源实例以及目标监管程序;由源监管程序识别由虚拟机的源实例使用、并且可被目标监管程序物理地访问的至少一个交换设备;由源监管程序针对每个所识别的交换设备而识别一个或多个源交换槽,该一个或多个源交换槽存储虚拟机的源实例的至少一个换出页面;由源监管程序停止由虚拟机的源实例进行的处理;向目标监管程序许可对由源监管程序识别的一个或多个源交换槽的访问;由目标监管程序将虚拟机的目标实例与交换表相关联,上述交换表参考向目标监管程序所许可的一个或多个交换槽;以及由目标监管程序使用一个或多个交换槽以针对虚拟机的目标实例填充(populate)所换出的虚拟存储器。
[0006]某些实施例针对一种用于在均支持存储器过量使用的源监管程序和目标监管程序之间迁移虚拟机的系统。该系统可以包括:源监管程序,其被配置为:接收迁移请求,其指定源监管程序上的虚拟机的源实例以及目标监管程序;识别由虚拟机的源实例使用、并且可被目标监管程序物理地访问的至少一个交换设备;针对每个所识别的交换设备而识别一个或多个源交换槽,该一个或多个源交换槽存储虚拟机的源实例的至少一个换出页面;以及停止由虚拟机的源实例进行的处理。目标监管程序可以被配置为:将虚拟机的目标实例与交换表相关联,该交换表参考了向目标监管程序许可的一个或多个交换槽;以及使用一个或多个交换槽以针对虚拟机的目标实例填充所换出的虚拟存储器。固件模块可以被配置为向目标监管程序许可对由源监管程序识别的一个或多个源交换槽的访问。
[0007]以上
【发明内容】
并非意在描述本公开内容的每个所图示的实施例或每一实施方式。
【附图说明】
[0008]本申请中所包括的附图被结合到说明书中并形成其一部分。它们图示了本公开的实施例并且连同描述一起用来对本公开的原理加以解释。附图仅是本发明某些实施例的图示而并非对本公开内容进行限制。
[0009]图1描绘了依据本公开实施例的用于将虚拟机迁移至新的监管程序的系统的框图;
[0010]图2描绘了依据本公开实施例的其中各种模块驻留于固件内的系统的框图;
[0011]图3描绘了依据本公开实施例的虚拟机向新的监管程序的迁移的流程图;
[0012]图4描绘了依据本公开实施例的虚拟机向新的监管程序的迁移的流程图,其中源监管程序能够防止所迁移的交换槽(swap slot)的重复使用;以及
[0013]图5描绘了用于实现各种实施例的计算机系统的高阶框图。
[0014]虽然本发明能够形成各种修改和替换形式,但是其具体形式已经通过示例在附图中示出并且将被详细描述。然而,应当理解的是,其意图并非将本发明限制为所描述的特定实施例。与之相反,其意在覆盖处于本发明的精神和范围之内的所有修改、等同体和替换形式。
【具体实施方式】
[0015]本公开内容的各方面涉及虚拟机迁移,更具体地,各方面涉及在虚拟机迁移期间处理虚拟存储器和交换的页面。虽然本发明并非必然局限于这样的应用,但是本发明的各种方面可以通过使用本文对各种示例的讨论而被理解。
[0016]本公开内容的实施例针对一种系统,其被配置为对虚拟机到新的主机的迁移进行协调,同时对映射到该虚拟机(或访客)的源实例的虚拟(交换)存储器的数据进行适当处理。依据特定实施例,该系统可以被配置为控制并改变/修改一个或多个交换设备的共享以促进新主机以及新主机上运行的虚拟机的相对应(目标)实例对交换设备的使用。
[0017]各种实施例涉及使用智能配置的监管程序和固件模块来促进迁移的某些方面。例如,实施例针对允许针对存储所交换存储器页面的设备的访问权限在虚拟机的不同实例之间进行转移的迁移。这对于使用很少或不使用附加存储器来完成交换页面的迁移而言是有用的。例如,能够在不向存储器中放置交换页面的情况下完成迁移。
[0018]在某些实施例中,资源管理器模块能够控制对交换设备(例如,磁盘驱动器或其它存储设备)的访问以针对可能正在使用交换设备来存储交换页面的虚拟机的进程存储器的损害进行保护。例如,资源管理器可以根据请求访问的监管程序而限制对交换设备的访问。该监管程序可以被配置为限制针对适当虚拟机的访问。在特定情况下,访问控制可以为使得多个主机被允许共享交换设备,同时保持其中所存储的交换页面的完整性。例如,监管程序能够使用可以包括固件模块(例如,资源管理器模块)的常见基础设施,该固件模块能够指派针对交换设备的特定部分或槽的共享权限。
[0019]根据本公开内容的各方面,监管程序能够针对多个虚拟机而控制对主机硬件的存储器访问。例如,监管程序能够确定哪些虚拟机(有时称作访客或逻辑分区)从共享存储器池接收到更多物理存储器。为了有助于优化性能和存储器使用,在共享存储器分区中运行的操作系统能够为监管程序提供有关该操作系统如何使用其存储器的信息。该信息能够帮助监管程序确定哪些页面要存储在共享存储器池中而哪些页面要存储在交换(分页或分页空间)设备中。
[0020]如果系统存储器在物理上被过量使用(其中当前被所有监管程序和虚拟机所使用的逻辑存储器的总和大于共享存储器池中的存储器数量),则监管程序能够将逻辑存储器的一部分存储在共享存储器池中并且将其余逻辑存储器存储在交换设备(有时被称作分页或分页空间设备)中。监管程序能够确定要从共享存储器池指派给每个虚拟机的物理存储器的数量以及要存储在交换设备中的逻辑存储器的数量。
[0021]当虚拟机尝试访问存储器中已经被交换的部分(页面)时,可能发生页面错误。监管程序能够执行页面错误处理程序以便从交换设备取回所请求的存储器页面。所取回的存储器页面随后可以被置于主存储器中。这一操作也可以包括将现有页面从存储器移动至交换设备而为所取回的页面腾出空间。更为复杂的页面错误处理例程也是有可能的。
[0022]在一些实施例中,在虚拟机中运行的操作系统能够将过量使用的逻辑存储器连续移动至分页空间。当监管程序管理过量使用的逻辑存储器时,其使用来自页面表的信息来确定哪些页面要存储在交换设备中而哪些页面要存储在共享存储器池中。
[0023]依据实施例,共用基础设施和/或存储资源管理器模块能够对能够针对高度可用性进行配置的主机群组(或集群)的存储器资源提供监视和控制。如果系统提供了共享存储环境,则多个主机能够被给予对相同磁盘子系统以及该磁盘子系统内所包含的相同磁盘的访问。然而,交换设备存储监管程序和或一个或多个虚拟机的存储器页面。系统能够被设计为使得存储器页面中所存储的数据在正常操作期间由监管程序排他性地进行访问。本公开内容的各方面针对能够保持该排他性同时允许新的监管程序运行其自己的虚拟机的新实例以访问之前被指派给原有或源监管程序的交换页面。
[0024]在各种实施例中,目标监管程序及其虚拟机的目标实例能够使用从源监管程序所复制的数据结构(页面表的一部分)访问之前由源监管程序所指派的交换页面。这一数据结构能够通过地址以及一个或多个源交换槽而定义或识别交换设备的地址。目标监管程序因此能够使用该源交换设备地址和源交换槽地址来取回(多个)换出页面并且将它们置于虚拟机的存储器空间中。例如,一旦虚拟机的目标实例开始在目标监管程序上进行处理,则其可能需要访问一个或多个换出页面。目标监管程序能够访问数据结构的副本以找到换出页面,取回该页面并且随后通过将它们置入活跃存储器而对槽进行填
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1