买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】虚拟机集群备份_微软技术许可有限责任公司_201580061651.4 

申请/专利权人:微软技术许可有限责任公司

申请日:2015-11-10

公开(公告)日:2020-09-11

公开(公告)号:CN107111533B

主分类号:G06F11/14(20060101)

分类号:G06F11/14(20060101)

优先权:["20141113 US 14/540640"]

专利状态码:有效-授权

法律状态:2020.09.11#授权;2017.09.22#实质审查的生效;2017.08.29#公开

摘要:实施例涉及备份虚拟机集群和在备份虚拟机集群之前确定虚拟机节点所有权。在一种场景中,一种计算机系统确定哪些虚拟机节点是所述虚拟机集群的部分,确定哪些共享存储资源是所述虚拟机集群的部分,以及确定哪些虚拟机节点拥有所述共享存储资源。所述计算机系统然后向所述虚拟机节点拥有者指示将在所述虚拟机集群的节点上使至少一个指定的应用停顿,以使得可以创建一致的集群范围检查点。所述计算机系统进一步创建包括针对所述虚拟机集群中的每个虚拟机的检查点的集群范围检查点。

主权项:1.一种在计算机系统处的用于备份虚拟机集群的计算机实现的方法,所述计算机系统包括至少一个处理器,所述方法包括:确定作为所述虚拟机集群的部分的多个虚拟机节点;确定作为所述虚拟机集群的部分的一个或多个共享存储资源;确定所述虚拟机节点中的哪一个虚拟机节点拥有所述共享存储资源中的每个共享存储资源;向所述虚拟机节点中作为共享存储资源的拥有者的每一个虚拟机节点指示将在所述虚拟机集群的节点上使至少一个指定的应用停顿,以使得可以创建一致的集群范围检查点;以及发起对包括针对所述虚拟机集群中的每个虚拟机节点的检查点的所述集群范围检查点的创建,其中所述集群范围检查点包括所述虚拟机集群中的每个共享存储资源的至少一个实例。

全文数据:虚拟机集群备份背景技术[0001]计算系统已变成泛在的,其范围从小型嵌入式设备到电话和平板型设备到PC和后端服务器。这些计算系统中的每个计算系统被设计为对软件代码进行处理。软件允许用户执行功能,与由计算系统提供的硬件交互。在一些情况下,这些计算系统允许用户建立和运行虚拟机。这些虚拟机可以提供未被主机操作系统提供的功能,或者可以包括完全不同的操作系统。这样,虚拟机可以被用于扩展计算系统的功能。发明内容[0002]本文中描述的实施例涉及备份虚拟机集群和在备份虚拟机集群之前确定虚拟机节点所有权。在一个实施例中,一种计算机系统确定哪些虚拟机节点是所述虚拟机集群的部分,确定哪些共享存储资源是所述虚拟机集群的部分,以及确定哪些虚拟机节点拥有所述共享存储资源。计算机系统然后向虚拟机节点拥有者指示将在所述虚拟机集群的节点上使至少一个指定的应用停顿quiesce,以使得可以创建一致的集群范围检查点。计算机系统进一步创建包括针对虚拟机集群中的每个虚拟机的检查点的集群范围检查点。创建一致的集群范围检查点降低该系统内的存储要求,因为其避免单独地备份每个虚拟机。此外,由于每个虚拟机不是被单独地备份的,所以节省了用于那些备份中的每个备份的处理资源,允许这些资源被用在其它地方,并且提高其它项目的处理速度。[0003]在另一个实施例中,一种计算机系统执行用于在备份虚拟机集群之前确定虚拟机节点所有权的方法。计算机系统确定对于虚拟机集群内的至少一个共享存储资源而言所有权已变更,并且标识共享存储资源的至少一个潜在的新拥有者。计算机系统确定哪些虚拟机节点拥有共享存储资源,并且向虚拟机节点拥有者指示将在所述虚拟机集群的节点上使至少一个指定的应用停顿,以使得可以创建一致的集群范围检查点。计算机系统然后创建包括针对虚拟机集群中的每个共享存储设备的检查点的集群范围虚拟机检查点。[0004]提供本概要以便以简化形式介绍下面在详细说明中进一步描述的概念的选择。本概要不旨在标识所要求保护的主题的关键特征或者必要特征,其也不旨在被用作在确定所要求保护的主题的范围时的辅助。[0005]附加特征和优点将在随后的说明中被阐明,并且部分上将是对于本领域的技术人员而言从说明中显而易见的,或者可以通过实践本文中的教导被习得。本文中描述的实施例的特征和优点可以通过在所附权利要求中具体指出的伩器和组合来实现和获得。从下面的说明和所附的权利要求中,本文中描述的实施例的特征将变得显而易见。附图说明[0006]为进一步澄清本文中描述的实施例的以上和其它的特征,将参考附图给予更具体的说明。应当认识到,这些图仅描绘了本文中描述的实施例的示例,并且因此将不被看作对其范围的限制。将通过使用附图在具有附加特异性和细节的情况下描述和解释实施例,其中:图1图示了包括备份虚拟机集群的本文中描述的实施例可以在其中运行的计算机架构。[0007]图2图示了用于备份虚拟机集群的示例方法的流程图。[0008]图3图示了用于在备份虚拟机集群之前确定虚拟机节点所有权的示例方法的流程图。[0009]图4图示了其中虚拟机集群内的虚拟机节点停机并且所有权变更节点的实施例。[0010]图5图示了其中在虚拟机节点中被实例化的代理创建针对多个共享存储资源的检查点的实施例。具体实施方式[0011]本文中描述的实施例涉及备份虚拟机集群和在备份虚拟机集群之前确定虚拟机节点所有权。在一个实施例中,计算机系统确定哪些虚拟机节点是虚拟机集群的部分,确定哪些共享存储资源是虚拟机集群的部分,以及确定哪些虚拟机节点拥有共享存储资源。计算机系统然后向虚拟机节点拥有者指示将在虚拟机集群的节点上使至少一个指定的应用停顿,以使得可以创建一致的集群范围检查点。计算机系统进一步创建包括针对虚拟机集群中的每个虚拟机的检查点的集群范围检查点。[0012]在另一个实施例中,计算机系统执行用于在备份虚拟机集群之前确定虚拟机节点所有权的方法。计算机系统确定对于虚拟机集群内的至少一个共享存储资源而言所有权己变更,并且标识共享存储资源的至少一个潜在的新拥有者。计算机系统确定哪些虚拟机节点拥有共享存储资源,并且向虚拟机节点拥有者指示将在虚拟机集群的节点上使至少一个指定的应用停顿,以使得可以创建一致的集群范围检查点。计算机系统然后创建包括针对虚拟机集群中的每个共享存储设备的检查点的集群范围虚拟机检查点。[0013]下面的讨论现在涉及可以被执行的一些方法和方法动作。应当指出,尽管方法动作可以按照特定的次序被讨论或者在流程图中被图示为按照具体的次序发生,但除非专门指出或者由于一个动作在该动作被执行之前取决于另一个动作被完成而是必需的,否则没有任何具体的次序是必需的。[0014]本文中描述的实施例可以实现各种类型的计算系统。这些计算系统现在日益采用多种多样的形式。计算系统例如可以是诸如是智能电话或者特征电话之类的手持型设备、家电、膝上型计算机、可穿戴设备、台式计算机、大型机、分布式计算系统或者甚至常规上还未被看作计算系统的设备。在本说明和权利要求中,术语“计算系统”被宽泛地定义为包括包括至少一个物理的且有形的处理器和能够在其上具有可以被处理器执行的计算机可执行指令的物理的且有形的存储器的任何设备或者系统或者其组合)。计算系统可以被分布在网络环境上,并且可以包括多个成员计算系统。[0015]如在图1中图示的,计算系统101通常包括至少一个处理单元102和存储器103。存储器103可以是物理系统存储器,物理系统存储器可以是易失性的、非易失性的或者这两者的某种组合。术语“存储器”在本文中可以还被用于指诸如是物理存储介质之类的非易失性大容量存储装置。如果计算系统是分布式的,则处理、存储器和或存储能力可以也是分布式的。[0016]如本文中使用的,术语“可执行模块”或者“可执行组件”可以指可以在计算系统上被执行的软件对象、例程或者方法。本文中描述的不同的组件、模块、引擎和服务可以被实现为在计算系统上执行例如,作为单独的线程的对象或者进程。[0017]在随后的说明中,参考被一个或多个计算系统执行的动作描述了实施例。如果这样的动作用软件来实现,则执行动作的关联的计算系统的一个或多个处理器响应于具有被执行的计算机可执行指令指引计算系统的操作。例如,这样的计算机可执行指令可以被体现在形成计算机程序产品的一个或多个计算机可读介质上。这样的操作的示例涉及对数据的操纵。可以将计算机可执行指令和被操纵的数据存储在计算系统101的存储器103中。计算系统101还可以包含允许计算系统101通过有线或者无线网络与其它消息处理器通信的通信信道。[0018]本文中描述的实施例可以包括或者使用包括例如诸如是如下面详细讨论的一个或多个处理器和系统存储器之类的计算机硬件的专用或者通用计算机系统。可以将系统存储器包括在总体存储器103内。系统存储器也可以被称为“主存储器”,并且包括可由至少一个处理单元102通过存储器总线寻址的存储器位置,在这种情况下,在存储器总线自身上断言地址位置。系统存储器传统上是易失性的,但本文中描述的原理也适用于系统存储器是部分上或者甚至完全非易失性的情况。[0019]本发明的范围内的实施例还包括用于携带或者存储计算机可执行指令和或数据结构的物理的和其它的计算机可读介质。这样的计算机可读介质可以是可以被通用或者专用计算机系统访问的任何可用介质。存储计算机可执行指令和或数据结构的计算机可读介质是计算机存储介质。携带计算机可执行指令和或数据结构的计算机可读介质是传输介质。因此,通过示例而非限制,本发明的实施例可以包括至少两种完全不同种类的计算机可读介质:计算机存储介质和传输介质。[0020]计算机存储介质是存储计算机可执行指令和或数据结构的物理硬件存储介质。物理硬件存储介质包括计算机硬件,所述计算机硬件诸如是1^1、1?^4£?1?011、固态驱动器“SSD”)、闪存、相变存储器(“PCM”)、光盘存储装置、磁盘存储装置或者其它(一个或者多个磁性存储设备、或者可以被用于存储采用计算机可执行指令或者数据结构的形式的程序代码的任何其它一个或者多个硬件存储设备,所述计算机可执行指令或者数据结构可以被通用或者专用计算机系统访问和执行以实现本发明的所公开的功能。[0021]传输介质可以包括可以被用于携带采用计算机可执行指令或者数据结构的形式的程序代码并且可以被通用或者专用计算机系统访问的网络和或数据链路。“网络”被定义为使得能进行计算机系统和或模块和或其它电子设备之间的电子数据传输的一个或多个数据链路。在通过网络或者另一种通信连接硬连线、无线或者硬连线或者无线的组合向计算机系统传输或者提供信息时,计算机系统可以将连接看作传输介质。以上各项的组合也应当被包括在计算机可读介质的范围内。[0022]进一步地,在到达各种计算机系统部件时,采用计算机可执行指令或者数据结构的形式的程序代码可以自动地从传输介质被传输到计算机存储介质(或者反之亦然)。例如,通过网络或者数据链路接收的计算机可执行指令或者数据结构可以被缓冲在网络接口模块例如,“NIC”)内的RAM中,并且然后最终被传输到计算机系统RAM和或计算机系统处的较非易失性的计算机存储介质。因此,应当理解,可以将计算机存储介质包括在也或者甚至主要地使用传输介质的计算机系统部件中。[0023]计算机可执行指令例如包括当在一个或多个处理器处被执行时导致通用计算机系统、专用计算机系统或者专用处理设备执行特定的功能或者功能组的指令和数据。计算机可执行指令可以例如是二进制文件、诸如是汇编语言之类的中间格式指令或者甚至源代码。[0024]本领域的技术人员将认识到,本文中描述的原理可以在具有许多类型的计算机系统配置的网络计算环境中被实践,所述计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持型设备、多处理器系统、基于微处理器的或者可编程的消费电子、网络PC、微型计算机、大型计算机、移动电话、PDA、平板型设备、寻呼机、路由器、交换机等。本发明还可以在通过网络被链接通过硬连线数据链路、无线数据链路或者通过硬连线和无线数据链路的组合的本地和远程计算机系统两者执行任务的分布式系统环境中被实践。因此,在分布式系统环境中,一个计算机系统可以包括多个成员计算机系统。在分布式系统环境中,可以将程序模块放置在本地和远程存储器存储设备两者中。[0025]本领域的技术人员还将认识到,本发明可以在云计算环境中被实践。云计算环境可以是分布式的,尽管这不是必需的。在是分布式的时,云计算环境可以被国际化地分布在组织内和或具有跨多个组织地拥有的部件。在本说明和下面的权利要求中,“云计算”被定义为用于使得能进行对可配置计算资源例如,网络、服务器、存储装置、应用和服务)的共享池的按需网络访问的模型。“云计算”的定义不限于在被正确地部署时可以从这样的模型获得的其它许多优点中的任何优点。[0026]仍然进一步地,本文中描述的系统架构可以包括多个独立的部件,其每个为作为整体的系统的功能做贡献。该模块化在处理平台可伸缩性的问题时允许增加的灵活性,并且为此提供多种优点。可以通过使用具有有限的功能范围的较小规模的部分更容易地管理系统复杂度和增长。通过使用这些松耦合的模块增强了平台故障容忍度。可以随着业务需求指示而递增地使单个部件增长。模块化开发还转化成减少的新功能上市时间。可以在不影响核心系统的情况下添加或者减除新功能。[0027]图1图示了可以在其中使用至少一个实施例的计算机架构1〇〇。计算机架构1〇〇包括计算机系统1〇1。计算机系统10i可以是包括云计算系统的任何类型的本地或者分布式计算机系统。计算机系统101包括用于执行多种不同的功能的模块。例如,通信模块104可以被配置为与其它计算系统通信。通信模块104可以包括可向或者从其它计算系统接收和或发射数据的任何有线或者无线通信装置。通信模块104可以被配置为与数据库、移动计算设备诸如是移动电话或者平板型设备)、嵌入式或者其它类型的计算系统交互。[0028]计算机系统101可以包括检查点生成模块106。检查点生成模块106可以被配置为生成检查点或者快照。这些检查点或者快照是计算系统的状态的时间点表示。这些检查点可以形成用于将计算系统恢复到时间上的之前的状态的参考点。检查点可以包括操作系统、被安装在该操作系统内的应用、数据文件、设置和配置变更、媒体文件和与物理或者虚拟机节点相关的其它数据。在一些情况下,检查点可以是适用于虚拟机集群内的多个不同的虚拟机节点和或共享存储资源的集群范围检查点。[0029]例如,如图1中所示,虚拟机集群116包括两个虚拟机VM节点113A和113B。尽管在图1中示出了两个节点,但将理解,给定的VM集群中可以存在基本上任意数量的VM节点。类似地,尽管在图1中示出了仅一个共享存储资源117,但将理解,可以在给定的VM集群或者物理机的集群中实现基本上任意数量的共享存储资源。每个虚拟机节点可以具有诸如是应用114之类的被安装在其上的应用。如图1中所示,VM节点可以具有相同的被安装的应用(例如,114,并且可以具有未被示出的其它的被安装的应用。实际上,每个VM节点可以具有在其上被安装或者运行的基本上任意数量的应用或者服务。虚拟机节点可以进一步具有被安装在其上的虚拟化代理或者在本文中被简单地称为“代理”)。这些代理例如,115可以执行多个任务,所述任务包括把VM节点准备好以生成集群范围检查点。[0030]例如,指示生成模块105可以生成被发送到虚拟机集群116的一个或多个节点的指示112。在图1中,指示112被发送到VM节点113A,所述VM节点113A是在VM节点113A与113B之间被共享的共享存储资源117的拥有者。该指示可以向拥有VM节点指示将在集群的VM节点上和在共享存储装置117上使应用(例如,114停顿。如本文中使用的术语“停顿”指把应用安置好或者把应用准备好以使得可以针对应用创建一致的、稳定的检查点。因此,停顿可以包括向共享存储装置写数据、将数据从临时存储器清除flush、完成事务或者采取为获得针对该应用或者应用集合的稳定状态而需要的任何其它步骤。一旦在共享存储装置上使应用停顿,则可以生成适用于VM集群内的多个VM节点以及潜在地适用于VM集群内的多个共享存储资源的稳定的、一致的检查点。[0031]经常使用在客人操作系统内运行的高可用性软件使虚拟机形成集群。这些客人操作系统可以使用包括共享虚拟硬盘的各种形式的共享存储装置。传统的虚拟机备份一次仅对单个VM起作用,而不提供用于以一致的方式备份整个VM集群的装置。因此,一次备份单个VM不提供整体集群的一致图像。此外,单独地备份每个虚拟机可以导致共享存储装置的多个副本被备份,导致产生被浪费的存储资源。[0032]VM集群在本文中也被称为客人集群)116可以包括跨多个物理服务器散布的多个VM节点,所述多个物理服务器自身可以是主机集群的部分。如上面提到的,可以在每个VM中实例化虚拟化代理。虚拟化代理可以包括被安装在虚拟机内的集成组件。虚拟化代理可以查询客人操作系统中的集群化框架,以确定共享存储资源和共享存储资源的拥有节点。通常,在VM集群中,共享磁盘或者其它的共享存储资源被一个VM节点(例如,图1中的节点11:3A专有地拥有。在一些实施例中,这可以通过使用小型计算机系统接口(SCSI预留来达至11。只有拥有节点可以对共享磁盘执行IO。假设出现故障转移,则所有权移到另一个VM节点如图4中一般地所示)。[0033]在主机集群范围,可以作为整体在VM集群上发起快照操作。在主机集群层,将查询共享存储信息的消息发送给VM其是VM集群的成员)内的虚拟化代理。每个VM的虚拟化代理查询客人中的集群化框架例如,高可用性软件)以获得集群中的共享磁盘资源的列表和它们中的每个共享磁盘资源的拥有节点。然后将该信息发送回主机集群。与虚拟化代理的通信可以通过安全的、私有的客人-主机通信信道例如,通过VM总线或者通过其它的通信装置发生。[0034]主机集群可以使用从虚拟化代理获得的信息来确保仅共享磁盘的拥有VM负责获取该共享虚拟磁盘例如,117的快照。主机集群发起针对客人集群中的每个VM的VM快照操作。额外地,主机集群为每个VM提供它负责进行快照的共享虚拟磁盘的列表。至少在一些实施例中,拥有VM还负责在执行对存储装置的快照之前使在共享虚拟磁盘上运行的应用到达一致的状态(S卩,使应用停顿)。每个VM还可以负责获取它的私有非共享的存储装置的快照。结果是产生包括每个VM的快照的整个客人VM集群的快照,但是快照中存在每个共享虚拟磁盘的单个实例如在图5中一般地示出的)。[0035]相应地,本文中描述的实施例包括在每个VM中实例化提供关于共享存储资源的信息的代理。此外,实施例在主机集群范围分析关于共享存储资源的该信息,以跨不同的VM分布对共享存储设备进行快照的责任。将在下面分别关于图2和3的方法200和300进一步解释这些概念。[0036]鉴于上面描述的系统和架构,参考图2和3的流程图将更好地认识可以根据所公开的主题被实现的方法。出于简化解释的目的,所述方法被显示和描述为一系列方框。然而,应当理解和认识到,所要求保护的主题不受方框的次序的限制,因为一些方框可以按照与本文中所描绘和描述的次序不同的次序和或与其它方框并发地发生。此外,并非全部所图示的方框可以是实现下文中描述的方法所必需的。[0037]图2图示了用于备份虚拟机集群的方法200的流程图。现在将频繁参考环境100的部件和数据描述方法200。[0038]方法200包括确定哪些虚拟机节点是虚拟机集群的部分210。例如,计算机系统101的确定模块110可以确定虚拟机节点113A和113B是VM集群116的部分。确定模块110还可以确定哪些共享存储资源是虚拟机集群的部分220和哪些虚拟机节点拥有共享存储资源230。因此,在图1中,确定模块可以查询VM节点或者在那些节点上被实例化的代理,以确定共享存储资源117是VM集群116的部分,以及进一步确定VM节点113A是共享存储资源117的拥有者。因此,VM节点113A在VM节点中具有写入共享存储资源117的专有能力。通过仅允许集群中的一个VM节点是拥有者,可以在正在访问共享存储资源的多个不同的VM节点之间确保数据一致性。在一些情况下,多个VM节点可以同时从共享存储资源读数据,而在其它情况下,一次仅一个节点可以读共享存储资源或者写入共享存储资源。仍然进一步地,应用可以在每个共享存储资源上运行以及在资源拥有者节点上运行。[0039]方法200进一步包括:向作为存储设备拥有者的一个或多个虚拟机节点指示将在虚拟机集群的节点上使至少一个指定的应用停顿,以使得可以创建一致的集群范围检查点240。例如,指示生成模块105可以生成指示112,以及通信模块104可以将指示传送给作为各种VM集群的存储设备拥有者的VM节点。在计算机系统101是一个或多个VM节点的主机机器的情况下,通信可以通过VM总线、通过模拟的本地网络连接或者经由其它的通信装置发生。如果VM节点被托管在与计算机系统101不同的物理计算系统上,则可以经由任何有线或者无线通信装置发射指示消息II2。所述指示指示了:将对于操作系统、对于应用、对于服务或者对于其某种组合的数据停顿。[0040]例如,如果将针对正在VM节点113A和113B两者上运行的应用114创建集群范围检查点,则指示II2将指示用于应用114的数据要被停顿,以使得可以针对该应用生成一致的、稳定的检查点。应当指出,在另一个实施例中,检查点生成模块106可以发出如下这样的指示,即:用于应用114的数据要被停顿。检查点生成模块1〇6可以要求每个VM节点停顿和生成检查点。响应于该消息指示,每个VM节点使应用停顿,并且创建存储装置包括它拥有的共享存储装置)的检查点。产生的集群范围检查点107将包括针对VM节点113A的检查点108和针对VM节点113B的检查点109。[0041]一旦对于应用的数据已停顿,则检查点生成模块106可以生成包括针对虚拟机集群中的每个虚拟机的检查点的集群范围检查点(250。集群范围检查点107因此可以包括虚拟机集群中的每个共享存储资源的单个实例。相应地,如果虚拟机集群包括多个不同的共享存储资源,则集群范围检查点将包括针对该集群中的每个共享存储资源的检查点。[0042]例如,如图5中所图示的,虚拟机集群501包括两个虚拟机节点502和503和三个共享存储资源(例如,虚拟或者物理硬盘或者其它类型的存储介质)505、506和507。在检查点生成模块106生成针对VM集群501的集群范围检查点时,集群范围检查点508包括针对每个共享资源的单独的检查点,其包括针对资源505的检查点、针对资源506的检查点和针对资源507的检查点。VM节点502可以是共享存储资源505、506和507中的一个、两个或者全部三个共享存储资源的拥有者。因此,VM节点502可以负责在生成集群范围检查点508之前在共享存储资源上使数据停顿。可以在VM节点上实现虚拟化代理,以帮助促进对一致的、稳定的集群范围检查点的创建。[0043]每个VM节点可以具有在其上被实例化的虚拟化代理504A504B,其执行各种功能。例如,虚拟化代理可以被配置为确定虚拟机集群内的共享存储资源的当前的所有权。图1的虚拟化代理115可以采取步骤以确定它当前在其中被实例化的节点是否是拥有者,并且如果是,那么它“拥有”哪些共享存储资源。虚拟化代理115还可以与集群116中的其它VM节点通信以确定它们是否是拥有者以及它们拥有哪些共享存储资源。替换地,代理可以被用于向集群中的其它VM节点广播消息,该消息向那些节点通知集群内的每个节点的当前的所有权状态。在其它实施例中,推送和拉取技术的组合可以被用于确定VM集群内的共享存储装置所有权。[0044]在一些实施例中,虚拟化代理115可以与主机操作系统通信以作出包括VM集群成员关系和集群内的所有权的各种确定。可以使用安全的、私有的客人-主机通信信道作出这样的通信。在一些情况下,主机可以向代理指示将创建检查点,并且可以指定针对该检查点的参数或者设置。例如,主机可以指示将立即停止运转(spindown正在运行的进程,以及将立即使全部数据停顿以便尽可能早地获取快照。替换地,主机可以指示将缓慢地并且随着进程自然地结束逐渐地停止运转正在运行的进程,以及将在应用和关联的进程完全关闭时使数据停顿。相应地,管理员或者其他用户可以控制如何生成检查点。[0045]在具有多个VM节点和多个共享存储资源的VM集群例如,图5中,每个拥有VM节点可以创建针对它拥有的共享存储资源的检查点。因此,如果VM节点502拥有共享资源505和506,则它可以发起针对那些资源的检查点,而如果\^节点503拥有共享资源507,则它可以发起针对该资源的检查点。集群范围检查点508在那种情况下将包括针对每个共享资源5〇5、5〇6和5〇7的单独的检查点,其中,每个共享存储资源的检查点由该资源的拥有者发起。这可以在允许拥有节点使在那些节点上的应用停顿的主动-被动集群上发生。[0046]为维持跨应用和或VM节点的一致的状态,共享存储资源拥有者可以实现硬盘预留以维持共享硬盘上的一致的状态。例如,共享存储资源拥有者可以实现SCSI控制器预留以维持共享SCSI磁盘上的一致的状态。如果不拥有指定的共享存储资源的非拥有虚拟机节点希望使对于给定应用的数据停顿,则该非拥有VM节点(例如,图1的VM节点113B可以与共享存储资源的拥有者VM节点113A通信以使给定的应用停顿。拥有节点可以在完成时再与非拥有节点通信,以指示已使应用的数据停顿。在一些情况下,虚拟机节点的客人操作系统可以是发起对针对该虚拟机节点的检查点的创建的实体。在这些情况下,客人0S可以与VM节点上的代理通信以发起对检查点的创建。[0047]在一些情况下,虚拟机节点可以具有其自己的私有的、非共享的存储资源。在这样的情况下,具有其自己的私有的、非共享的存储资源的虚拟机节点可以创建针对其私有的、非共享的存储装置的检查点。该私有的检查点可以随集群范围检查点508的其它共享资源检查点一起被存储,或者可以被单独地存储。[0048]代理可以进一步被用于分析虚拟机集群中的其它虚拟机节点以确定那些虚拟机节点是否已经历故障。以及,在确定虚拟机节点已出故障时,代理可以发起分析,以确定该虚拟机节点的故障是否已影响虚拟机集群内的共享存储节点所有权。例如,如图4中所示,虚拟机集群401可以包括四个虚拟机节点:402、403、404和405。每个VM节点可以分别包括其自己的代理:407A、407B、407C和407D。集群401的VM节点中的每个VM节点可以访问单个共享存储资源406。如果如图4中所示,VM节点402是共享存储资源406的拥有者,并且如果该节点由于某个原因(例如,由于硬件或者软件故障)而故障,则所有权可以被移动到虚拟机集群401内的另一个虚拟机节点。新的拥有者可以是集群中的任何其它的VM节点,并且可以基于策略或者简单地基于“下一个可用的”方法被确定。通过假设拥有者角色,VM403现在是共享存储资源406的拥有者,并且是写入该存储资源的数据的唯一控制者。[0049]现在转向图3,图示出了用于在备份虚拟机集群之前确定虚拟机节点所有权的方法300的流程图。现在将频繁参考图1的环境100的部件和数据描述方法300。[0050]方法300包括确定对于虚拟机集群内的至少一个共享存储资源而言所有权已变更310。例如,如上面关于图4提到的,共享存储资源的所有权可以随时间变更。例如,拥有特定资源的VM节点可能由于硬件或者软件故障、由于例程维护、由于恶意攻击或者因为某个其它的原因而故障。然而,在一些情况下,所有权可以基于策略或者基于由用户作出的手动变更而不由于VM节点上的任何类型的故障而变更。例如,管理员或者其他用户可能希望在图4中将所有权从VM节点402变更到VM节点4〇3。管理员可能具有这样做的各种原因。实际上,管理员可能知道给定的节点将被停机以用于在接下来的二十四小时内进行维护。因此,管理员可以将所有权转移到集群内的另一个VM节点。[0051]在一些情况下,故障转移策略可以在集群中的VM节点之间就位。例如,图4的VM集群401可以具有已设立的故障转移策略,该故障转移策略指示,在给定的节点出故障时,所有权角色以及可能一些应用的应用处理可以自动地故障转移到指定的VM节点。因此,在VM集群401中,故障转移策略可以指示,如果VM节点402停机,则拥有者角色将被转移到VM节点4〇3。故障转移策略可以进一步指示,如果VM节点403停机,则拥有者角色将被转移到VM节点404,等等。[0052]方法300接下来包括标识共享存储资源的至少一个潜在的新拥有者32〇。图1的计算机系统101的标识模块111可以标识共享存储资源的潜在的新拥有者。在根据故障转移策略转移所有权角色的上面的示例中,标识模块111或者被安装在VM节点上的虚拟化代理中的任一个虚拟化代理可以确定哪些VM节点可以是给定的共享存储资源的潜在的新拥有者。由于VM集群内可以存在许多共享存储资源,所以可以存在许多拥有者和许多潜在的拥有者。例如,策略可以指示,如果节点由于某个原因而出故障时随后的拥有者将是谁。因此,代理可以与彼此通信以维护对于每个存储资源的所有权的当前状态,所述当前状态标识当前拥有者是谁以及基于策略标识潜在的新拥有者。[0053]方法300进一步包括确定哪一个或多个虚拟机节点拥有共享存储资源(330。例如,确定模块110可以确定图1的VM节点113A当前拥有共享存储资源II7。指示生成模块105然后可以生成指示112,指示112向作为共享存储资源的拥有者的一个或多个虚拟机节点指示将在虚拟机集群的节点上使至少一个指定的应用停顿,以使得可以创建一致的集群范围检查点(340。集群范围检查点生成模块106然后可以生成集群范围虚拟机检查点107350,集群范围虚拟机检查点107包括针对虚拟机集群中的每个共享存储设备的检查点包括针对VM节点113A检查点108和针对VM节点113B检查点109的检查点)。集群范围检查点生成模块106可以至少在一些实施例中生成在单个步骤中使指定的应用停顿并且创建检查点的指示112。[0054]如上面提到的,所有权的变更可以导致产生许多不同的场景,所述场景包括从出故障的VM节点进行的故障转移或者由管理员作出的对所有权的手动变更。因为拥有者角色确保仅一个VM节点可以写入共享存储设备,所以如果该拥有者角色出故障并且不进行故障转移,则没有VM节点将能够写该共享存储设备。因此,所有权角色根据需要从节点转移到节点以确保每个共享存储资源具有拥有者。共享存储资源拥有者具有对共享存储资源的专有的写访问,或者可以具有对共享存储资源的共享的写访问,其中,根据访问策略对访问进行调控。例如,如果两个不同的VM节点正在写入共享数据存储库上的不同的文件,则这两者节点可以具有所有权并且同时写入共享存储设备。[0055]在一些实施例中,共享存储资源是主机计算节点诸如是图1的计算机系统101的部分,或者可以通过主机计算节点来访问。可以使用被安装在VM节点上的虚拟化代理访问共享存储资源。可以在每个虚拟机节点上实例化虚拟化代理,并且虚拟化代理可以被配置为,确定共享存储资源所有权,以及确保检查点之间的一致性。可以通过在创建检查点之前使对于磁盘的应用数据停顿来确保一致性。作为拥有者的VM节点可以在被指令时或者在被需要时自动地使应用数据停顿。额外地,非拥有虚拟机节点可以确定给定的共享存储资源的当前拥有者,并且允许当前拥有者使在非拥有虚拟机节点上运行的应用停顿。[0056]权利要求支持:一种包括执行用于备份虚拟机集群的计算机实现的方法的至少一个处理器的计算机系统,所述方法包括:确定哪些虚拟机节点113A是虚拟机集群116的部分,确定哪些共享存储资源II7是虚拟机集群的部分,确定哪一个或多个虚拟机节点拥有共享存储资源,向一个或多个虚拟机节点拥有者113A指示将在虚拟机集群的节点上使至少一个指定的应用114停顿,以使得可以创建一致的集群范围检查点1〇7,以及创建包括针对虚拟机集群中的每个虚拟机的检查点的集群范围检查点107。[0057]在一些实施例中,集群范围检查点包括虚拟机集群中的每个共享存储资源的单个实例。在每个虚拟机上实例化虚拟化代理,并且虚拟化代理确定虚拟机集群内的共享存储资源的当前,所有权。虚拟化代理还使用安全的、私有的客人—主机通信信道与主机操作系统通信。[0058]提供了一种包括至少一个处理器的计算机系统。所述计算机系统执行用于在备份虚拟机集群之前确定虚拟机节点所有权的计算机实现的方法,所述方法包括:确定对于虚拟机集群401内的至少一个共享存储资源406而言所有权已变更,标识共享存储资源的至少一个潜在的新拥有者4〇3,确定哪一个或多个虚拟机节点403拥有共享存储资源,向一个或多个虚拟机节点拥有者指示将在虚拟机集群401的节点上使至少一个指定的应用114停顿,以使得可以创建一致的集群范围检查点1〇7,以及创建包括针对虚拟机集群中的每个共享存储设备406的检查点的集群范围虚拟机检查点107。[0059]在一些实施例中,共享存储资源拥有者具有对共享存储资源的专有的访问,或者具有对共享存储资源的共享的访问,其中,根据访问策略对访问进行调控。在一些情况下,在每个虚拟机上实例化虚拟化代理,其中,虚拟化代理被配置为,确定共享存储资源所有权,以及确保检查点之间的一致性。非拥有虚拟机节点确定给定的共享存储资源的当前拥有者,并且允许当前拥有者使在非拥有虚拟机节点上运行的一个或多个应用停顿。[0060]提供了一种包括以下项的计算机系统:一个或多个处理器;确定模块110,其用于确定哪些虚拟机节点113A是虚拟机集群116的部分,确定哪些共享存储资源是虚拟机集群的部分,以及确定哪一个或多个虚拟机节点拥有共享存储资源;指示模块105,其用于向一个或多个虚拟机节点拥有者指示将在虚拟机集群116的节点上使至少一个指定的应用114停顿,以使得可以创建一致的集群范围检查点107;以及集群范围检查点创建模块106,其用于创建包括针对虚拟机集群116中的每个虚拟机的检查点的集群范围检查点1〇7。[0061]所述计算机系统进一步包括:分析模块,其用于分析虚拟机集群中的一个或多个虚拟机节点以确定虚拟机节点是否已经历故障,以及在确定至少一个虚拟机节点己出故障时,发起用于确定虚拟机节点的故障是否已影响虚拟机集群内的共享存储节点所有权的分析。在由于节点故障而进行的故障转移时,将共享存储资源的所有权移动到虚拟机集群内的另一个虚拟机节点。共享存储资源的拥有虚拟机节点使在共享存储资源上运行的一个或多个应用停顿,并且创建针对该共享存储资源的检查点。[0062]在一些实施例中,拥有虚拟机节点拥有多个共享存储资源,并且创建针对它拥有的多个共享存储资源中的每个共享存储资源的检查点。在一些情况下,虚拟机节点中的至少一个虚拟机节点具有其自己的私有的、非共享的存储资源,并且进一步地,具有其自己的私有的、非共享的存储资源的至少一个虚拟机节点创建针对其私有的、非共享的存储装置的检查点。不拥有指定的共享存储资源的非拥有虚拟机节点与共享存储资源的拥有者通信,以使给定的应用停顿。[0063]相应地,提供了备份虚拟机集群的方法、系统和计算机程序产品。此外,提供了在备份虚拟机集群之前确定虚拟机节点所有权的方法、系统和计算机程序产品。[00M]本文中描述的概念和特征可以以其它具体的形式被体现,而不脱离它们的精神或者描述性特性。所描述的实施例将在所有方面都被看作仅说明性的而非限制性的。因此,本公开内容的范围由所附权利要求而非由前述说明指示。落在权利要求的等价项的意义和范围内的全部变更将被包括在它们的范围内。

权利要求:1.一种用于备份虚拟机集群的计算机实现的方法,所述计算机实现的方法被执行用于所述计算机实现的方法的计算机可执行指令的一个或多个处理器执行,并且所述计算机实现的方法包括:确定哪些虚拟机节点是所述虚拟机集群的部分;确定哪些共享存储资源是所述虚拟机集群的部分;确定哪一个或多个虚拟机节点拥有所述共享存储资源;向所述一个或多个虚拟机节点拥有者指示将在所述虚拟机集群的节点上使至少一个指定的应用停顿,以使得可以创建一致的集群范围检查点;以及创建包括针对所述虚拟机集群中的每个虚拟机的检查点的集群范围检查点。2.根据权利要求1所述的计算机实现的方法,其中,所述集群范围检查点包括所述虚拟机集群中的每个共享存储资源的单个实例。3.根据权利要求1所述的计算机实现的方法,其中,在每个虚拟机上实例化虚拟化代理,并且其中,所述虚拟化代理确定所述虚拟机集群内的共享存储资源的当前所有权。4.根据权利要求3所述的计算机实现的方法,其中,所述虚拟化代理使用安全的、私有的客人-主机通信信道与主机操作系统通信。5.—种用于在备份虚拟机集群之前确定虚拟机节点所有权的计算机实现的方法,所述计算机实现的方法被执行用于所述计算机实现的方法的计算机可执行指令的一个或多个处理器执行,并且所述计算机实现的方法包括:确定对于虚拟机集群内的至少一个共享存储资源而言所有权已变更;标识所述共享存储资源的至少一个潜在的新拥有者;确定哪一个或多个虚拟机节点拥有所述共享存储资源;向一个或多个虚拟机节点拥有者指示将在所述虚拟机集群的节点上使至少一个指定的应用停顿,以使得可以创建一致的集群范围检查点;以及创建包括针对所述虚拟机集群中的每个共享存储设备的检查点的所述集群范围虚拟机检查点。6.根据权利要求5所述的计算机实现的方法,其中,所述共享存储资源拥有者具有对所述共享存储资源的专有的访问,或者具有对所述共享存储资源的共享的访问,其中,根据访问策略对访问进行调控。7.根据权利要求5所述的计算机实现的方法,其中,在每个虚拟机上实例化虚拟化代理,所述虚拟化代理被配置为,确定共享存储资源所有权,以及确定检查点之间的一致性。8.根据权利要求5所述的计算机实现的方法,其中,非拥有虚拟节点确定给定的共享存储资源的当前拥有者,并且允许所述当前拥有者使在所述非拥有虚拟机节点上运行的一个或多个应用停顿。9.一种计算机系统,包括:计算机可读介质,其包含计算机可执行指令;一个或多个处理器,所述一个或多个处理器在执行所述计算机可执行指令时,导致所述计算机系统被配置为,具有用于执行用于在备份虚拟机集群前确定虚拟机节点所有权的计算机实现的方法的架构,并且在被配置为具有所述架构时,所述计算机系统包括:确定模块,其用于确定哪些虚拟机节点是所述虚拟机集群的部分、确定哪些共享存储资源是所述虚拟机集群的部分和确定哪一个或多个虚拟机节点拥有所述共享存储资源;指不模块,其用于向所述一个或多个虚拟机节点拥有者指示将在所述虚拟机集群的所述节点上使至少一个指定的应用停顿,以使得可以创建一致的集群范围检查点;以及集群范围检查点创建模块,其用于创建包括针对所述虚拟机集群中的每个虚拟机的检查点的所述集群范围检查点。10.根据权利要求9所述的计算机系统,其中,在被配置为具有所述架构时,所述计算机系统进一步包括分析模块,所述分析模块用于:分析所述虚拟机集群中的一个或多个虚拟机节点以确定所述虚拟机节点是否己经历故障,以及在确定至少一个虚拟机$点已出故障时,发起用于确定所述虚拟机节点的故障是否已影响所述虚拟机集群内的共享存储节点所有权的分析。

百度查询: 微软技术许可有限责任公司 虚拟机集群备份

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。