CN110088733B - 虚拟机迁移的基于存储层的编排 - Google Patents

虚拟机迁移的基于存储层的编排 Download PDF

Info

Publication number
CN110088733B
CN110088733B CN201780078704.2A CN201780078704A CN110088733B CN 110088733 B CN110088733 B CN 110088733B CN 201780078704 A CN201780078704 A CN 201780078704A CN 110088733 B CN110088733 B CN 110088733B
Authority
CN
China
Prior art keywords
virtual
data
orchestrator
environment
logical storage
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.)
Active
Application number
CN201780078704.2A
Other languages
English (en)
Other versions
CN110088733A (zh
Inventor
J·P·卡拉唐纳
S·柳
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.)
NetApp Inc
Original Assignee
NetApp Inc
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 NetApp Inc filed Critical NetApp Inc
Publication of CN110088733A publication Critical patent/CN110088733A/zh
Application granted granted Critical
Publication of CN110088733B publication Critical patent/CN110088733B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2069Management of state, configuration or failover
    • 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/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/45575Starting, stopping, suspending or resuming virtual machine instances
    • 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
    • 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/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

基于存储层的编排方法可以跨不同的虚拟化环境有效地迁移虚拟化企业级系统。可以在公共云目的地中创建具有虚拟机(VM)的多个虚拟磁盘的源逻辑存储容器的副本作为目的地逻辑存储容器。每个VM与包括用于VM的引导数据(“引导磁盘”)的至少一个虚拟磁盘相关联。利用应用编程接口函数调用和/或脚本化任务自动化和配置管理命令,编排方法协调不同应用和工具以将引导磁盘转换成规范化存储表示(例如逻辑单元编号(LUN)),以使目的地环境中的VM实例化,并且以链式加载引导磁盘以在不同虚拟化环境中启动VM。

Description

虚拟机迁移的基于存储层的编排
背景技术
本公开一般地涉及数据处理领域,并且更具体地涉及多计算机数据传输。
虽然许多企业承认针对业务连续性的灾难恢复性计划的价值,但灾难恢复站点的成本可能是难以承受的。而且,资源将被花费在通常未经使用的站点上。利用公共云,企业可以创建使用云服务提供者的资源的灾难恢复计划。这通常被称为基于云的灾难恢复。企业可以利用云的弹性以用于按需式基于云的灾难恢复服务,并且针对云服务提供者资源(而不是空闲/未经使用的资源)的实际使用进行支付。
基于云的灾难恢复解决方案可以由云服务提供者直接提供或作为分层服务由终端用户或者第三方提供。存在不同类型的灾难恢复:1)备份和还原,2)引导灯,和3)热备用。备份和还原灾难恢复通常涉及将数据备份到持久存储装置,并且然后将备份数据还原到站点,可能是在灾难已经结束后的主站点。这种类型的灾难恢复具有最短还原时间。引导灯灾难恢复依赖于在云中运行的最低版本的主环境。在需要恢复时,配置和/或启动附加资源以使最低版本达到全规模生产环境。热备用灾难恢复在公共云中维持缩小版本的主环境。用于热备用灾难恢复的缩小环境可能需要在公共云中运行的多个服务器和服务,这些服务器和服务将不会在引导灯灾难恢复解决方案中运行。
附图说明
可以通过参照附图更好地理解本公开的实施例。
图1是在公共云中所托管的外部虚拟化环境中启动来自源环境的虚拟化系统的概念图。
图2描绘了用以将虚拟磁盘转换成逻辑存储目标的子文件克隆的概念示例。
图3是用于编排针对外部环境中的针对基于存储层的虚拟机启动的操作的示例操作的流程图。
图4是用于编排虚拟化系统的启动的示例操作的流程图,其中在存储层处将VM数据从源VM环境复制到云目的地VM环境,并且在云目的地中的存储层处操纵该VM数据。
图5是用于将虚拟化系统故障转移到云站点的外部环境的示例操作的流程图。
图6描绘了具有基于存储层的虚拟化可移植性编排器的示例计算机系统。
具体实施方式
以下描述包括体现本公开的实施例的示例系统、方法、技术和程序流程。然而,应当理解,可以在没有这些具体细节的情况下实践本公开。例如,本公开涉及灾难恢复上下文中的说明性示例,但实施例不限于该上下文。在其他上下文中(诸如具有不同云服务提供者的部分生产环境的试运行或测试运行),实施例可以在存储层处的虚拟化环境之间切换。在其他实例中,为免使描述模糊,尚未详细地示出已知的指令实例、协议、结构和技术。
概述
针对许多企业的基于云的灾难恢复(“云DR”)包括应用连续性以及底层数据。当云DR包括应用连续性时,应用在公共云中的虚拟机上运行。在许多情况下,企业的主数据中心将使用与服务提供者所使用的虚拟化环境不同的虚拟化环境。基于主机的云DR解决方案按逐个主机的基础复制虚拟磁盘状态(引导和数据驱动器)—将每个主机的虚拟驱动器复制到云存储装置或将这些虚拟驱动器导入云镜像(例如
Figure BDA0002099756740000021
机器镜像(AMI))。这样做通常会损失由存储层提供的存储效率(例如删除重复、压缩、精简配置)并增加网络带宽要求以处理重新水化的数据。另外,这使故障恢复操作复杂化,这是由于恢复涉及利用特殊恢复镜像引导每个主机以设置复制并重新同步变化后的状态。此过程在企业级上是劳动密集型的、易出错的且不实际的。
与基于主机的云DR解决方案相比,针对云DR在存储层处编排虚拟机数据的操纵和激活(“存储层云DR方法”)可以从存储层有效地在外部虚拟化环境中启动虚拟化企业级系统。在存储层处将虚拟化系统底层的数据从源站点复制到托管外部虚拟化环境(从源站点中的虚拟化环境的角度看是外部的)的目的地站点中。应用利用已在存储层被复制的虚拟化系统的底层数据。这避免了在访客操作系统层处迁移或导出虚拟机的低效率,并且允许将主站点处的VM(例如数以千计的VM)企业级转移到云站点,尽管虚拟化技术中存在差异。这种方法还保持存储效率,使网络流量最小化,并且简化常见DR操作,诸如:DR训练、故障转移和故障恢复。在存储层(而不是访客操作系统层)处执行的故障转移和故障恢复操作可以在企业级上高效完成,但可能会受到虚拟化环境之间的不兼容性阻碍,其中,管理程序、虚拟磁盘格式和编排方法不同。例如,在
Figure BDA0002099756740000031
数据中心环境中实例化的虚拟机不能够在Amazon或
Figure BDA0002099756740000032
公共云中被本地引导。应用用以避免不同VM环境之间的互操作性的复杂性,此编排存储层云DR方法将主站点虚拟化环境的虚拟磁盘转换为广泛采用的存储表示,诸如逻辑单元编号(LUN)。可以在公共云目的地中创建具有VM的多个虚拟磁盘的源逻辑存储容器的副本作为目的地逻辑存储容器。每个VM与包括用于VM的引导数据(“引导磁盘”)的至少一个虚拟磁盘相关联。利用应用编程接口函数调用(call)和/或脚本化任务自动化和配置管理命令,协调不同应用和工具以将引导磁盘转换为广泛采用的存储表示,以使目的地环境中的VM实例化,并且以链式加载引导磁盘以在目的地环境中使虚拟化企业级系统起转。可以将这种方法实施为应用(例如数据中心管理应用)、脚本、软件即服务以及它们的各种组合。
示例说明
图1是将来自源环境的虚拟化系统启动到公共云中所托管的外部虚拟化环境中的概念图。图1涉及虚拟环境X和Y,用以一般地标识不同的虚拟化环境,而不将示例说明限制于特定供应商,并确认对一些公共云服务提供者的环境的有限可见性。在图1中,实现虚拟环境X的主站点101中的虚拟化系统在实现虚拟环境Y的云站点113中被启动。主站点101(例如主数据中心)托管在虚拟环境X中具有多个虚拟堆栈的虚拟化系统。“虚拟堆栈”是指具有访客操作系统和至少一个应用的虚拟机实例。为了避免说明过于复杂,未描绘虚拟机监视器。主站点可以使数以千计的虚拟堆栈实例化。图1描绘了虚拟堆栈109至112。
逻辑存储容器103、105包含虚拟堆栈109至112底层的数据。逻辑存储容器103(例如卷)包含虚拟磁盘105A至105N。每个虚拟磁盘105A至105N包括用于对应于虚拟堆栈的引导数据。引导数据可以包括VM配置数据、VM状态数据、应用状态数据等。在该说明中,虚拟磁盘105A包括用于虚拟机堆栈109的引导数据,并且虚拟磁盘105N包括用于虚拟机堆栈110的引导数据。虚拟机堆栈不限于与虚拟磁盘的1:1关系。可以将VM与其他虚拟磁盘(例如与用于虚拟机堆栈的附加数据)相关联。逻辑存储容器105包含虚拟磁盘107A至107N。虚拟磁盘107A包括用于虚拟机堆栈111的引导数据,并且虚拟磁盘107N包括用于虚拟机堆栈112的引导数据。
图1注释有一系列数字1至5,这些数字表示用于编排将虚拟化系统启动到外部VM环境中的操作的阶段。将这些阶段分解为具有字母的子阶段,以表达这些操作同时发生的可能性。虽然针对该示例这些阶段是有序的,但这些阶段说明了一个示例以帮助理解本公开并且不应该被用来限制权利要求。落入权利要求的范围内的主题内容可以关于操作顺序和一些操作而变化。
为了在存储层处的目的地虚拟环境(即,云站点113)中创建针对虚拟化系统的支持数据,在阶段1a和1b处将逻辑存储容器103、105的数据复制到云站点113中。已经在主站点101与云站点113之间建立了复制关系。这可以涉及在主站点101与云站点113的节点之间创建对等关系。对等关系的创建可以包括账户创建、网络地址发现、交换认证凭证等。建立复制关系还包括在复制端点(诸如源存储容器和目的地存储容器)之间创建关系。各种复制关系是可能的,这些复制关系基本上包括将数据从主站点101中的源端点复制到云站点113中的目的地端点,其中附加的可能功能性为:更新云站点113中的具有对主站点101处的逻辑存储容器做出的改变的逻辑存储容器。例如,可以利用增量快照创建复制关系以捕获更新。具体参照图1,已经在逻辑存储容器103与云站点113中的逻辑存储容器115(例如卷、桶等)之间创建了复制关系。也已在逻辑存储容器105与云站点113中的逻辑存储容器117之间创建了复制关系。在阶段1a,将逻辑存储容器103复制到逻辑存储容器115。在阶段1b,将逻辑存储容器105复制到逻辑存储容器117。可以利用数据管理软件或经由云DR编排器120直接创建这些复制关系。
云DR编排器120可以是在管理层处被暴露的或者经由不同数据管理软件被访问的程序代码。云DR编排器120至少了解已在主站点与辅助站点之间被建立的复制关系。例如,指示复制关系的文件、数据库等可以对云DR编排器120可访问。
基于检测到灾难恢复触发器,云DR编排器120编排执行从存储层到云站点113的外部虚拟化环境中的故障转移的操作。阶段3至5涵盖云DR编排器120进行的故障转移操作的编排。触发器的检测和触发器本身可以跨实施例而变化。例如,可以向其他软件组件注册编排器120以接收与主站点101的节点相对应的系统健康警报或故障状态的通知。在一些实施例中,编排器120响应于检测到管理员命令或者通过管理控制台被激活而开始故障转移操作。无论触发器和检测路径的特定形式如何,编排器120都能中断主站点的与云站点113的触发器和逻辑存储容器相对应的逻辑存储容器之间的复制关系。在阶段2a,编排器120中断了逻辑存储容器103与阶段2a的逻辑存储容器115之间的复制关系。编排器120还在阶段2b中断了逻辑存储容器105与逻辑存储容器117之间的复制关系。“中断”复制关系可以包括各种配置变化以使复制管理软件停止更新逻辑存储容器115、117,但至少涉及改变逻辑存储容器115、117的权限或设置以允许修改这些权限或设置(例如,改变写入权限以允许写入)。无论具体命令和/或配置设置如何,编排器程序代码都可以包括对应用编程接口(API)函数的一个或多个调用,该函数被定义用于由存储操作系统或由复制管理API来中断复制关系。
在阶段3a至3d,编排器120将来自主站点101的虚拟磁盘转换为云站点113的LUN。可以将虚拟机与包括引导磁盘和一个或多个数据磁盘的多个虚拟磁盘相关联。当将VM与多个虚拟磁盘相关联时,将用作“引导磁盘”的虚拟磁盘与同VM相关联的其他虚拟磁盘区分开。编排器120针对逻辑容器115的每个VM转换每一组虚拟磁盘,这从虚拟磁盘的每个集合中的引导磁盘开始。图1仅图示了由于绘制空间有限而导致的引导磁盘的转换,但也转换了数据磁盘。编排器120在阶段3a将虚拟磁盘119A(即,VM 109的引导磁盘)转换成具有引导数据125A的LUN 125A。在3b处,编排器120A将虚拟磁盘119N转换为具有VM 110的引导数据125B的LUN 123B。在3c处,编排器120B将虚拟磁盘121A转换为具有VM 111的引导数据125C的LUN 123C。在3d处,编排器120B将虚拟磁盘121N转换为具有VM 112的引导数据125D的LUN123D。作为转换的一部分,编排器120忽视虚拟磁盘119A、119N、121A和121N的元数据。在一些实施例中,编排器可以被设计为在转换后剥除或者删除VM元数据。在虚拟环境X中使用了被忽视或剥除的元数据。为了在外部虚拟化环境中启动虚拟机,将转换或导入虚拟磁盘,这是因为虚拟磁盘不能够在外部虚拟化环境中被本地引导。然而,导入和转换是昂贵且低效的操作。虚拟磁盘的转换避免了在存储层处的不同虚拟文件格式之间进行转换的成本,并且避免了在访客操作系统层处迁移虚拟机。为了转换虚拟磁盘,可以使用子文件克隆来将虚拟磁盘转换成LUN。
图2描绘了用以将虚拟磁盘转换为存储表示的子文件克隆的概念示例,该存储表示是针对存储输入/输出操作的逻辑目标。虚拟磁盘201包括数据块203中的文件系统元数据(例如链路计数、父索引节点编号等)和文件数据。间接块和直接块引用数据块203。针对该说明,数据块203处的文件数据包括来自源VM环境的引导数据和虚拟机元数据。基于虚拟磁盘201来创建逻辑存储目标205。编排器程序代码可以包括转换程序代码,其执行(多个)脚本化命令以将虚拟磁盘201克隆为指定路径处的逻辑存储目标205中的文件克隆207。如所描绘的,克隆过程确定数据块和数据块203的范围(例如块地址),并且更新文件克隆207的结构化元数据以引用数据块203并更新针对逻辑存储目标205的块映射以涵盖数据块203。可以利用从虚拟磁盘201的文件名导出的逻辑存储目标名称来指定逻辑存储目标205。为了避免与目的地VM环境或外部VM环境的不兼容性,编排器忽视具有VM元数据的数据块,并且不引用那些数据块。图2假设VM元数据在数据块202中。转换程序代码可以使用标识虚拟磁盘内的VM元数据的边界的偏移和已知大小。如果有关虚拟磁盘的布局的信息可用(例如描述符文件),那么程序代码可以读取信息以确定具有文件数据或有效载荷数据的数据块的(多种)程度或(多个)范围。可以在对转换程序代码可访问的VM指示符或规范中指示偏移或者在转换程序代码中指定偏移。作为克隆的结果,虚拟磁盘201与逻辑存储目标205共享数据和/或数据位置(例如数据块或数据范围)。因此,经由逻辑存储目标205对共享数据块203的更新隐式地移行至虚拟磁盘201。
回到图1,编排器120唤起(invoke)对由云站点113的云服务提供者的API定义的(多个)函数的调用,以使虚拟环境Y中的虚拟机127A至127D实例化并且在阶段4a至4d中的相应阶段上链式加载经转换的引导数据125A至125D。编排器120可以基于最低限度配置的虚拟机模板126利用(多个)云服务提供者API调用来使虚拟机127A至127D实例化。图1描绘了具有访客操作系统但不具有驻留在访客操作系统上的应用的每个实例化虚拟机127A至127D。这指示虚拟机模板126的最低限度配置,这是由于将被链式加载的引导数据将生成如在主站点101中存在的虚拟堆栈。编排器120唤起对函数的API调用以在4a处将引导数据125A的引导装载程序链式加载到虚拟机127A中;并唤起对该函数的API调用以在4b处将引导数据125B的引导装载程序链式加载到虚拟机127B中。对于逻辑容器117,编排器120唤起对函数的API调用以在4c处将引导数据125C的引导装载程序链式加载到虚拟机127C中;并唤起对函数的API调用以在4d处将引导数据125D的引导装载程序链式加载到虚拟机127D中。
作为链式加载的引导数据125A至125D的结果,虚拟堆栈129A至129D在云站点113中实例化。虚拟堆栈129A至129D与在主站点101中的虚拟环境X中运行的虚拟堆栈109至112相对应。利用引导数据125A的链式加载,虚拟机127A在5a处变为虚拟堆栈129A。链式加载引导数据125B使虚拟机127B在5b处变为虚拟堆栈129B。链式加载引导数据125C使虚拟机127C在5c处变为虚拟堆栈129C。链式加载引导数据125D使虚拟机127D在5d处变为虚拟堆栈129D。虚拟堆栈可以包括各种服务器、数据库等。
图1提供了基于存储层的云DR的示例说明,但操纵存储层处的虚拟机数据并编排操作以基于存储层处的VM数据在外部虚拟化环境中启动虚拟化系统的技术不限于DR故障转移。这种技术可以被用来测试云DR或运行训练以用于云DR。在训练或测试的情况下,将保留复制关系,并且将在测试/训练中使用克隆。此外,所公开的技术可以被用来将虚拟化系统转移或迁移到外部环境中,例如在没有DR激励的情况下,从内部部署设备到公共云。另外,图1的示例说明假设用于数据存储和计算资源二者的具有公共云资源的云解决方案。然而,这种方法可以使用私有云和公共云的混合。可以将VM数据复制到私有云中的存储端点,并在发生故障转移、完成测试等时转换至公共云。
图1和后续示意图涉及“云DR编排器”和“虚拟化可移植性编排器”或编排器。编排器是程序代码的运行实例,该程序代码可以被实施于在管理层和存储层二者处操作的工具或应用中。编排器可以与存储层的存储操作系统或存储应用接口连接,以创建存储层处的复制关系或促进存储层处的复制关系的创建。例如,编排器可以唤起针对存储操作系统和/或存储管理应用而被定义的API调用,以促进在支持VM的逻辑存储容器之间创建复制关系并中断复制关系。然后,编排器可以产生线程/过程以将虚拟磁盘转换为可以在目的地环境中挂载的存储表示。每个线程/过程可以基于脚本/可执行文件,该脚本/可执行文件包括根据任务自动化和配置管理工具/框架(例如PowerShell)的命令/指令,以将逻辑存储容器中的虚拟磁盘转换为存储表示的逻辑单元。编排器程序代码还可以包括对由云服务提供者定义的API函数的调用,以使目的地环境中的虚拟机实例化,并且然后触发经转换的引导磁盘的链式加载,该链式加载导致虚拟化系统在目的地环境中起转。特定名称“编排器”应该对任何权利要求解释不具有影响,且应该意识到程序代码的特定模块化和架构是与实现相关的并且因平台、开发者等而不同。
图3是用于编排外部环境中的基于存储层的虚拟机启动的示例操作的流程图。在框301处,将虚拟磁盘从主存储簇复制到辅助存储簇。主存储簇可以包括内置部署设备和/或私有云设备。辅助存储簇可以包括私有云资源和/或公共云资源。复制可以基于管理员命令和/或先前与数据管理软件建立的复制关系,该数据管理软件有效地复制虚拟磁盘(例如使用压缩、删除重复等)。在框302处,从已经被复制到辅助存储簇中的虚拟磁盘创建LUN。在辅助存储簇中,从不具有虚拟磁盘的元数据的复制的虚拟磁盘创建LUN。虚拟磁盘的元数据是特定于与主存储簇相关联的虚拟化环境的元数据。由存储操作系统例如通过使用文件子克隆将虚拟磁盘的数据部分组合成连续文件来从虚拟磁盘创建LUN。然后将LUN映射到启动器组(小型计算机系统接口(SCSI)/互联网SCSI启动器的组),该启动器组将访问LUN以使LUN以SCSI/iSCSI)目标形式可见。在框305处,挂载LUN。将用于修补驱动程序的补丁脚本安装在LUN上。另外,安装虚拟化环境工具。在框307处,根据从虚拟引导磁盘创建的所挂载的LUN链式加载访客操作系统。访客操作系统执行已安装的补丁脚本以安装驱动程序和/或工具。如果源VM具有多个虚拟磁盘,那么补丁脚本将数据磁盘挂载在适当挂载点上。在框309处,虚拟机可以运行或可以被启动。
图4是用于编排虚拟化系统的启动的示例操作的流程图,其中,在存储层处将VM数据从源VM环境复制到云目的地VM环境,并且在云目的地VM环境中的存储层处操纵该VM数据。如已经指示的,流程图将编排器称为执行操作。图4的示例操作遍历虚拟化系统的复制的逻辑存储容器和复制的逻辑存储容器内的虚拟磁盘,并且然后在目的地VM环境中启动对应虚拟机。图4呈现了这种迭代版本的操作以帮助理解。取决于可用计算资源,编排器可以被设计为同时处理虚拟化系统或逻辑存储容器组的逻辑存储容器。在一些实施例中,编排器可以读取用于虚拟化系统的配置文件,该虚拟化系统优先化用于处理的特定逻辑存储容器。在一些实施例中,逻辑存储容器的元数据或逻辑存储容器内的文件可以指示用于处理的优先级。编排器首先可以读取优先级信息并优先化引导磁盘转换并通过相应地链式加载进行启动。
在框401处,编排器检测触发器。触发器可以是检测到主站点处的故障,请求测试故障转移计划,将虚拟化系统移动到不同虚拟化环境中等。除非编排器包括管理层组件,否则管理层组件将可能会检测到触发器并将该检测传送给编排器。组件可以从监测代理来检测对等簇中的故障,接收管理员命令以移动虚拟化系统等。
在框402处,编排器标识云目的地中的逻辑存储容器。将所标识的逻辑存储容器与将在云目的地中被启动的虚拟化系统相关联。编排器可以读取配置文件或所传送的数据以标识与虚拟化系统相关联的逻辑存储容器。编排器可以被编程或被配置为根据云环境中的数据的层级组织将账户或涵盖的存储容器内的所有逻辑存储容器视为支持VM。
在框403处,编排器开始处理每个所标识的逻辑存储容器。编排器转换源虚拟机的虚拟磁盘并且在存储层转换这些虚拟磁盘以在云目的地的VM环境中启动对应虚拟机。该描述将正被处理的逻辑存储容器称为“所选择的”逻辑存储容器。
在框405处,编排器开始处理所选择的逻辑存储容器中的每个虚拟磁盘以进行转换。编排器基于虚拟磁盘类型来处理虚拟磁盘。基于元数据,编排器标识作为引导磁盘的虚拟磁盘并且在数据磁盘之前处理引导磁盘。由于加载VM标识器的引导磁盘,将标识每个VM。编排器可以读取所选择的逻辑存储容器的文件系统元数据,以确定各个虚拟磁盘的位置。编排器可以通过文件扩展名和/或文件名来将虚拟磁盘与其他文件区分开。此描述将正被处理的虚拟磁盘称为“所选择的”虚拟磁盘。
在框406处,编排器将虚拟磁盘转换为逻辑存储目标。如前所述,逻辑存储目标是可以被访问的广泛采用的存储表示,可能是在将访问路径暴露到存储表示中的挂载操作之后。此访问路径可以被视为针对输入/输出(I/O)操作的目标。因此,虚拟磁盘的转换继续将底层数据驻留在存储层处。编排器可以使用克隆技术将虚拟磁盘转换为逻辑存储目标。
在框407处,编排器确定所选择的虚拟磁盘是否为引导磁盘。虽然指示为引导磁盘的虚拟磁盘还可以包括除引导数据外的其他数据,但编排器可以读取元数据以确定虚拟磁盘是引导磁盘还是数据磁盘。对于虚拟磁盘的每个VM集合,也可以执行一次该确定。例如,编排器可以针对虚拟磁盘集合设置标记,该标记指示是否已经处理了引导磁盘。在已经处理了引导磁盘之后,编排器可以评估标记以确定程序代码的路径。在一些情况下,编排器可以读取虚拟磁盘的报头信息以确定所选择的虚拟磁盘是否为引导磁盘,例如将标记或值设置为指示引导磁盘。如果虚拟磁盘不是引导磁盘,那么在框419处,编排器移动到所选择的逻辑存储容器的下一虚拟磁盘。如果所选择的虚拟磁盘是引导磁盘,那么在框409处,流程继续。
在框409处,编排器基于VM模板或预配置/预填充的云计算实例将VM部署在目的地VM环境中。在此部署之前,VM不需要通电(即,不消耗计算资源)。这避免了在需求或需要之前维持对VM通电而产生的成本。VM模板先前已被配置了最少的配置信息/已利用最少的配置信息定义了VM模板。例如,VM模板已被配置了最少量的虚拟资源和访客操作系统。编排器可以执行对由云服务提供者定义的API的应用编程接口(API)调用以部署VM。VM模板可以由虚拟化系统(例如由客户或主站点名)指定。实施例还可以使用不同VM模板来适应不同VM(例如在源环境中出于不同目的而配置的VM,诸如后端能力与前端能力)。无论是使用VM模板还是预填充的云计算实例,这些都可以包括支持不同VM配置的变型—不同系统存储器配置、中央处理器配置、网络接口卡配置、带宽配置等。编排器可以基于源VM的配置信息来选择适合的云计算实例或VM模板。
在框413处,编排器将从(多个)虚拟磁盘转换的(多个)逻辑存储目标附接至所部署的VM,并且将引导逻辑存储目标链式加载到VM中。所部署的VM包括被编程为引导逻辑存储目标的引导装载程序。编排器可以进行由云服务提供者定义的API调用,以将逻辑存储目标附接到VM。编排器挂载从虚拟引导磁盘转换的逻辑存储目标,并且然后在任务自动化和配置管理框架中执行命令脚本,以将引导数据链式加载到所部署的VM中。这将由来自存储层的引导数据定义的虚拟机启动到外部VM环境中。
在框415处,编排器确定在所选择的逻辑存储容器中是否存在附加虚拟磁盘。如果在逻辑存储容器中存在另一虚拟磁盘,那么在框405处,编排器选择下一虚拟磁盘。如果在所选择的逻辑存储容器中不存在另一虚拟磁盘,那么控制流至框421。
在框421处,编排器确定是否存在被标识为与正在启动的虚拟化系统相关联的附加逻辑存储容器。如果存在,那么在框403处,编排器选择下一逻辑存储容器。否则,过程结束。实施例可以针对每个逻辑存储容器采用编排器,因此可以不执行遍历逻辑存储容器的操作。另外,实施例可以在链式加载虚拟引导磁盘之前转换针对VM的虚拟引导磁盘和虚拟数据磁盘。
虽然大部分操作在不同使用场景中保持一致,但是出于不同原因,在外部虚拟化环境中启动来自虚拟层的虚拟化系统之间存在一些变型。例如,故障转移将推迟或中止站点之间的复制关系。相比之下,故障转移测试复制目的地逻辑存储容器以用于测试故障转移,同时站点之间的复制关系保持不变。作为另一示例,从灾难恢复场景外部的存储层启动外部虚拟化环境中的虚拟化系统可以从初始副本(而不是维持快照)开始。
图5是用于将虚拟化系统故障转移到云站点的外部虚拟化环境的示例操作的流程图。图5的示例操作与图4中所描绘的那些操作类似,但包括相对于故障转移的一些附加操作。
在框501处,编排器检测故障转移触发器。可以通过存储层代理(例如存储操作系统过程或复制代理)向编排器通知源站点(例如簇)已失败。不管如何检测到触发故障转移的事件,都将对触发器的检测传送给包括编排器的管理层。“管理层”是指监测并维持源站点的节点(管理节点和/或存储节点)的状态的程序/过程。
在框502处,编排器标识与经历故障转移的虚拟化系统相关联的云DR目的地中的逻辑存储容器。编排器可以读取配置文件或所传送的数据以标识与虚拟化系统相关联的逻辑存储容器。编排器可以被编程或被配置为根据云环境中的数据的层级组织和/或容器的优先级将账户或涵盖的存储容器内的所有逻辑存储容器视为与经历故障转移的虚拟化系统相关联。
在框503处,编排器开始处理每个所标识的逻辑存储容器。处理所标识的逻辑存储容器涉及:修改复制关系并且处理逻辑存储容器内的虚拟磁盘。该描述将正被处理的逻辑存储容器称为“所选择的”逻辑存储容器。
在框504处,编排器“中断”源逻辑存储容器与所选择的逻辑存储容器之间的关系。故障转移将基于与检测到的故障转移触发器的时间点相对应的复制的逻辑存储容器来启动虚拟化系统。由于所选择的逻辑存储容器处于维持的复制关系中,因此定期传送在源处进行的更新。为了避免破坏状态,将对所选择的逻辑存储容器的写入访问权限限制于写入更新的代理。“中断”复制关系更新复制配置,以允许编排器访问不具有附加更新的所选择的逻辑存储容器。
在框505处,编排器开始处理最新版本的所选择的逻辑存储容器中的每个虚拟磁盘以进行转换。由于源逻辑存储容器的时间点副本正在云DR目的地中被维持,因此编排器选择最新副本。编排器可以读取最新版本的所选择的逻辑存储容器的文件系统元数据,以确定各个虚拟磁盘的位置。编排器可以单独地或同时处理虚拟磁盘的多个集合,其中使与VM相对应的一个或多个虚拟磁盘的每个集合被启动到外部虚拟化环境中。此描述将正被处理的虚拟磁盘集合称为“所选择的”虚拟磁盘集合。
在框507处,编排器在所选择的虚拟磁盘集合中的每个虚拟磁盘上使用子文件克隆,以将每个虚拟磁盘转换为具有引导数据的LUN。编排器创建不具有可能在外部VM环境中不兼容的虚拟磁盘元数据的LUN。编排器利用一系列命令创建LUN,以基于虚拟磁盘的大小和布局创建LUN。编排器然后可以确定与虚拟磁盘元数据不相对应的虚拟磁盘的块地址的(多个)范围或(多种)程度(“数据范围”)。编排器然后下发(多个)命令以将所标识的数据范围克隆到所创建的LUN。克隆命令将朝向虚拟磁盘的所标识的数据范围的指示器复制到LUN结构(例如缓冲树)以引用所标识的数据范围。编排器在创建LUN时可以生成与(如虚拟磁盘所相关的)LUN层级相关的信息,以从“数据磁盘LUN”隐式标识“引导磁盘LUN”。在子文件克隆的情况下,转换时间是恒定的(即,无论虚拟磁盘的大小如何,故障转移时间都相同)。
在框508处,编排器基于VM模板将VM部署在目的地VM环境中。VM模板先前已被配置了最少的配置信息/已利用最少的配置信息定义了VM模板。例如,VM模板已经被配置了最少量的虚拟资源和访客操作系统。编排器可以执行对由云服务提供者定义的API的API调用以部署VM。VM模板可以由虚拟化系统(例如由客户或主站点名)指定。实施例还可以使用不同VM模板来适应不同VM(例如在源环境中出于不同目的而被配置的VM,诸如后端能力与前端能力)。
在框511处,编排器将(多个)LUN附接到所部署的VM。编排器还调用函数以挂载引导LUN(即,从虚拟引导磁盘转换的LUN)。这允许所部署的VM将I/O命令(诸如小型计算机系统接口(SCSI)命令)下发至LUN。
在框513处,编排器安装补丁脚本,该补丁脚本可以被用于处理转换后的虚拟数据磁盘的数据并且安装VM工具,该VM工具可以被用来允许客户端继续访问外部虚拟化环境中的VM。
在框515处,编排器将引导数据从所挂载的LUN链式加载到所部署的VM中。在挂载LUN之后,编排器将所挂载的LUN中的引导数据链式加载到所部署的VM中,以利用引导数据替换所部署的VM的执行代码。这将由来自存储层的引导数据定义的虚拟机启动到外部VM环境中。在链式加载引导LUN之后,编排器应用(多个)已安装的补丁脚本并且挂载从虚拟数据磁盘转换的(多个)LUN。
在框519处,编排器确定在所选择的逻辑存储容器中是否存在用于故障转移VM的附加虚拟磁盘集合。如果在逻辑存储容器中存在另一虚拟磁盘,那么在框405处,编排器选择下一虚拟磁盘集合。如果在所选择的逻辑存储容器中不存在具有引导数据的另一虚拟磁盘集合,那么控制流至框521。
在框521处,编排器确定是否存在被标识为与经历故障转移的虚拟化系统相关联的附加逻辑存储容器。如果存在,那么在框403处,编排器选择下一逻辑存储容器。否则,过程结束。利用此编排,公共云中的目的地可以作为针对源环境的用于灾难恢复的全功能辅助站点而操作。
在某一时刻,虚拟化系统可能会故障恢复到源站点。管理层将确定源站点已经恢复和/或可用于托管虚拟化系统。用于将虚拟磁盘转换为逻辑存储目标以进行快速故障转移的克隆也允许快速故障恢复。由于逻辑存储目标是指云DR站点中的逻辑存储容器的数据范围(块或程度),因此可以将在故障转移期间对底层数据做出的改变复制回存储层处的源站点。编排器调用存储应用定义的函数以使不同站点的逻辑存储容器之间的复制关系逆转。因此,源和目的地被逆转,并且在源站点处创建了云DR站点中的逻辑存储容器的副本。由于在存储层处操作,因此编排器可以通过批处理(例如支持逻辑存储容器的整个存储阵列)而不是通过各个VM故障恢复到源/主站点。在使虚拟磁盘回到源VM环境中的情况下,可以从虚拟磁盘使VM实例化。利用存储层和子文件克隆效率,基于存储层的云DR将停机时间减至最少,并在不对业务过程造成长期压力的情况下允许恢复关键数据和应用。相比之下,将虚拟磁盘转换或导入到作为外部虚拟化环境的目的地环境中的灾难恢复解决方案不能够有效地故障恢复(例如按卷粒度的虚拟磁盘的批处理故障恢复)虚拟化系统,这是因为虚拟磁盘已被转换/导入该外部虚拟化环境中。
流程图说明和/或框图的每个框以及流程图说明和/或框图中的框的组合可以通过程序代码实现。可以将程序代码提供给通用计算机、专用计算机或其他可编程机器或装置的处理器。
应理解,本公开的各方面可以体现为被存储在一种或者多种机器可读介质中的系统、方法或程序代码/指令。相应地,各方面可以采用硬件、软件(包括固件、常驻软件、微代码等)或软件和硬件方面的组合的形式,这些方面在本文中通常都可以被称为“电路”、“模块”或“系统”。作为示例说明中的各个模块/单元所呈现的功能性可以根据平台(操作系统和/或硬件)、应用生态系统、接口、程序员偏好、编程语言、管理员偏好等中的任何一个来以不同方式组织。
可以利用一种或多种机器可读介质的任何组合。机器可读介质可以是机器可读信号介质或机器可读存储介质。机器可读存储介质可以是例如但不限于,系统、装置或设备,该系统、装置或设备采用电子技术、磁性技术、光学技术、电磁技术、红外技术或半导体技术中的任何一种或组合来存储程序代码。机器可读存储介质的更具体示例(非详尽列表)将包括以下内容:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪速存储器)、便携式压缩盘只读存储器(CD-ROM)、光学存储设备,磁性存储设备或前述的任何合适组合。在本文档的上下文中,机器可读存储介质可以是任何有形介质,该有形介质可以包含或存储用于由指令执行系统、装置或设备使用或结合指令执行系统、装置或设备使用的程序。机器可读存储介质不是机器可读信号介质。
图6描绘了具有基于存储层的虚拟化可移植性编排器的示例计算机系统。计算机系统包括处理器601(可能包括多个处理器、多个核、多个节点和/或实现多线程等)。计算机系统包括存储器607。存储器607可以是系统存储器(例如高速缓存、SRAM、DRAM、零电容器RAM、双晶体管RAM、eDRAM、EDO RAM、DDR RAM、EEPROM、NRAM、RRAM、SONOS、PRAM等中的一个或多个),或机器可读介质的上文已描述的可能实现中的任何一种或多种。计算机系统还包括总线603(例如PCI、ISA、PCI-Express、
Figure BDA0002099756740000171
总线、
Figure BDA0002099756740000172
总线、NuBus等)和网络接口605(例如光纤通道接口、以太网接口、互联网小型计算机系统接口、SONET接口、无线接口等)。该系统还包括基于存储层的虚拟化可移植性编排器611。编排器611编排操纵存储层处的数据以产生可移植到外部虚拟化环境中的虚拟磁盘的操作。更具体地,编排器611与存储层软件(例如复制管理软件、存储操作系统等)协调以将存储层处的虚拟化系统从源站点复制到云站点。复制虚拟化系统包括:复制虚拟化系统的虚拟机底层的虚拟磁盘文件。文件的数据(“文件数据”)包括引导数据、应用数据和与虚拟化系统的状态和虚拟化系统的内容(例如工作载荷数据)相关的其他数据。由于云站点的虚拟机技术可以与源站点不同,因此编排器将复制的虚拟磁盘文件转换为可以由云站点的实体在云站点中访问的存储表示(无论云站点的VM技术如何)。换言之,编排器操纵虚拟磁盘数据,而虚拟此数据仍然驻留在存储层处。在转换之后,编排器611将转换后的虚拟文件数据链式加载到云站点中的所部署的VM中。虽然将编排器611描绘为示例系统的单个组件,但是编排器611可以包括多个软件组件。编排器611可以包括与存储层软件协调的程序代码,以便于创建复制关系以及检测用于启动虚拟化系统的命令和/或触发器。可以将该程序代码视为编排器611的管理层组件。编排器611还可以包括产生用于转换和链式加载的线程或过程的程序代码。编排器611可以针对包括待转换的虚拟磁盘文件的每个逻辑存储容器产生线程/过程。这些线程/过程可以标识和选择虚拟磁盘,以用于转换为存储表示并执行转换。编排器611还可以产生线程/过程以针对待启动的每个VM执行链式加载。先前所描述的功能性中的任何一个可以部分地(或完全地)在硬件中和/或在处理器601上实现。例如,功能性可以利用专用集成电路实现,在处理器601中所实现的逻辑中实现,在外围设备或卡上的协处理器中实现等。另外,实现可以包括图6中未图示的更少组件或附加组件(例如视频卡、音频卡、附加网络接口、外围设备等)。处理器601和网络接口605被耦合至总线603。虽然将存储器607图示为被耦合至总线603,但该存储器可以被耦合至处理器601。
除非另有明确说明,否则具有连接词“和”的列表前面的短语“…中的至少一个”的使用不应被视为排他性列表,并且不应被解释为具有每个类别中的一个项的类别列表。叙述“A、B和C中的至少一个”的条款可以由所列出的项中的仅一个、所列出的项中的多个和列表中的项中的一个或多个以及未列出的另一项违反。

Claims (4)

1.一种或者多种非瞬态机器可读介质,所述非瞬态机器可读介质包括用于启动到外部虚拟化环境中的虚拟化系统进行基于存储层的编排的程序代码,所述程序代码可执行用以:
标识云环境中的第一逻辑存储容器,所述第一逻辑存储容器已经从源环境中的第二逻辑存储容器被复制;
标识所述第一逻辑存储容器中的虚拟磁盘,所述虚拟磁盘包括用于所述源环境的虚拟机的引导数据;
将所标识的所述虚拟磁盘转换成存储容器表示;
挂载所述存储容器表示,以用于由所述云环境中所部署的虚拟机访问;以及
将所述存储容器表示的所述引导数据链式加载到所部署的所述虚拟机中的对应虚拟机中。
2.根据权利要求1所述的非瞬态机器可读介质,其中可执行以将所标识的所述虚拟机转换成存储容器表示的所述程序代码包括:可执行以唤起一个或多个命令的集合以创建具有结构化元数据的所述存储表示中的第一存储表示的程序代码,所述结构化元数据引用所标识的所述虚拟磁盘中的第一所标识的虚拟磁盘的数据块。
3.根据权利要求2所述的非瞬态机器可读介质,其中所标识的所述虚拟磁盘中的所述第一所标识的虚拟磁盘的所述数据块包括:针对所述虚拟机中的第一虚拟机的所述引导数据中的第一引导数据。
4.根据权利要求1所述的非瞬态机器可读介质,还包括程序代码,所述程序代码可执行以将所述第一逻辑存储容器的数据复制到所述源环境中,以在所述源环境恢复之后在所述源环境中重新启动所述虚拟机,其中被复制到所述源环境中的所述数据包括所述虚拟机在所述云环境中运行之后的状态。
CN201780078704.2A 2016-12-21 2017-12-20 虚拟机迁移的基于存储层的编排 Active CN110088733B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/387,416 2016-12-21
US15/387,416 US10228964B2 (en) 2016-12-21 2016-12-21 Storage layer based orchestration method for virtual machine migration across disparate virtualization environments
PCT/US2017/067606 WO2018119079A1 (en) 2016-12-21 2017-12-20 Storage layer based orchestration of virtual machine migration

Publications (2)

Publication Number Publication Date
CN110088733A CN110088733A (zh) 2019-08-02
CN110088733B true CN110088733B (zh) 2023-05-12

Family

ID=60955410

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780078704.2A Active CN110088733B (zh) 2016-12-21 2017-12-20 虚拟机迁移的基于存储层的编排

Country Status (4)

Country Link
US (2) US10228964B2 (zh)
EP (1) EP3559807B1 (zh)
CN (1) CN110088733B (zh)
WO (1) WO2018119079A1 (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10133593B1 (en) * 2016-03-31 2018-11-20 Amazon Technologies, Inc. Virtual machine migration
US10360009B2 (en) * 2017-03-17 2019-07-23 Verizon Patent And Licensing Inc. Persistent data storage for a microservices application
US11550665B2 (en) 2017-06-02 2023-01-10 Apple Inc. Techniques for preserving clone relationships between files
US11368534B2 (en) 2017-10-06 2022-06-21 Johnson Controls Tyco IP Holdings LLP Building management system with device cloud registration and data adaptor
US10642598B2 (en) 2017-10-06 2020-05-05 Johnson Controls Technology Company Building management system with plug and play device registration and configuration
US11262741B2 (en) 2017-10-06 2022-03-01 Johnson Controls Tyco IP Holdings LLP Building management system with automatic binding of equipment data
US10963171B2 (en) * 2017-10-16 2021-03-30 Red Hat, Inc. Compressibility instrumented dynamic volume provisioning
US10754741B1 (en) * 2017-10-23 2020-08-25 Amazon Technologies, Inc. Event-driven replication for migrating computing resources
US10917409B2 (en) * 2018-04-19 2021-02-09 Microsoft Technology Licensing, Llc System and method to securely execute datacenter management operations remotely
US10691568B2 (en) * 2018-07-26 2020-06-23 International Business Machines Corporation Container replication and failover orchestration in distributed computing environments
US11169893B2 (en) 2018-07-31 2021-11-09 Vmware, Inc. Reserving failover capacity in cloud computing
US11265243B2 (en) 2018-07-31 2022-03-01 Vmware, Inc. Support for multi-AZ management appliance networking
US10809987B2 (en) 2018-08-14 2020-10-20 Hyperblox Inc. Software acceleration platform for supporting decomposed, on-demand network services
US20200057569A1 (en) * 2018-08-17 2020-02-20 Schlumberger Technology Corporation System and method for secure data replication on drilling management systems
US11556437B2 (en) 2018-08-22 2023-01-17 Intel Corporation Live migration of virtual devices in a scalable input/output (I/O) virtualization (S-IOV) architecture
CN110321198B (zh) * 2019-07-04 2020-08-25 广东石油化工学院 一种容器云平台计算资源与网络资源协同调度方法及系统
US11513829B2 (en) * 2019-07-31 2022-11-29 EMC IP Holding Company LLC Method and system for instant recovery of application data using virtual machine backups
CN111443872A (zh) * 2020-03-26 2020-07-24 深信服科技股份有限公司 分布式存储系统构建方法、装置、设备、介质
CN112269759B (zh) * 2020-10-23 2023-12-22 北京浪潮数据技术有限公司 一种共享文件存储的迁移方法及相关装置
CN113360185B (zh) * 2021-05-10 2023-06-23 Tcl空调器(中山)有限公司 空调外机的微控制单元的处理方法、装置以及微控制单元
US11888681B1 (en) 2022-10-13 2024-01-30 Hewlett Packard Enterprise Development Lp Network switch stack failover configuration management
US11941024B1 (en) * 2022-10-14 2024-03-26 Oracle International Corporation Orchestration service for database replication
US20240176642A1 (en) * 2022-11-29 2024-05-30 Coontec Co., Ltd. Virtual machine system and virtual machine provisioning method using the same

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8046550B2 (en) * 2008-07-14 2011-10-25 Quest Software, Inc. Systems and methods for performing backup operations of virtual machine files
US8839228B2 (en) * 2010-04-21 2014-09-16 Ca, Inc. System and method for updating an offline virtual machine
US9268549B2 (en) * 2013-03-27 2016-02-23 Vmware, Inc. Methods and apparatus to convert a machine to a virtual machine
US9098457B2 (en) * 2013-10-31 2015-08-04 Vmware, Inc. Visualizing disaster recovery plan execution for the cloud
US10216531B2 (en) * 2014-05-12 2019-02-26 Netapp, Inc. Techniques for virtual machine shifting
US10776209B2 (en) 2014-11-10 2020-09-15 Commvault Systems, Inc. Cross-platform virtual machine backup and replication
US20160335109A1 (en) * 2015-05-14 2016-11-17 Netapp, Inc. Techniques for data migration

Also Published As

Publication number Publication date
US10228964B2 (en) 2019-03-12
US20190171477A1 (en) 2019-06-06
CN110088733A (zh) 2019-08-02
EP3559807A1 (en) 2019-10-30
US20180173554A1 (en) 2018-06-21
US10528382B2 (en) 2020-01-07
EP3559807B1 (en) 2022-07-20
WO2018119079A1 (en) 2018-06-28

Similar Documents

Publication Publication Date Title
CN110088733B (zh) 虚拟机迁移的基于存储层的编排
US20240205082A1 (en) Replicating functionality and data of a primary computing device onto a virtual machine
US11755428B2 (en) Backup and recovery of application data of an application executing in a virtual machine
US10691568B2 (en) Container replication and failover orchestration in distributed computing environments
US9461881B2 (en) Migration of existing computing systems to cloud computing sites or virtual machines
US8924954B2 (en) Application software installation method and application software installation apparatus
US8621461B1 (en) Virtual machine based operating system simulation using host ram-based emulation of persistent mass storage device
US11086662B2 (en) Method and system of migrating applications to a cloud-computing environment
EP2843549B1 (en) Virtual machine deployment and management engine
US10303458B2 (en) Multi-platform installer
US9817592B1 (en) Using an intermediate virtual disk format for virtual disk conversion
US10175886B1 (en) Systems and methods for handling missing storage image layers while provisioning containers in computer clusters
US20160335109A1 (en) Techniques for data migration
US11263082B2 (en) Data recovery of guest virtual machines
US20240078198A1 (en) Instant recovery as an enabler for uninhibited mobility between primary storage and secondary storage
US11449388B1 (en) Synthesized network block devices for recovery of image backups
US11892917B2 (en) Application recovery configuration validation
US10102020B2 (en) Methods, systems, and computer readable media for virtual machine (VM) deployment using read-only memory
US9369405B2 (en) Mapping computer resources to consumers in a computer system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant