CN109308232B - 虚拟机热迁移故障后回滚的方法、装置以及*** - Google Patents

虚拟机热迁移故障后回滚的方法、装置以及*** Download PDF

Info

Publication number
CN109308232B
CN109308232B CN201710630142.XA CN201710630142A CN109308232B CN 109308232 B CN109308232 B CN 109308232B CN 201710630142 A CN201710630142 A CN 201710630142A CN 109308232 B CN109308232 B CN 109308232B
Authority
CN
China
Prior art keywords
virtual machine
live migration
original
rollback
machine
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
CN201710630142.XA
Other languages
English (en)
Other versions
CN109308232A (zh
Inventor
张超
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.)
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201710630142.XA priority Critical patent/CN109308232B/zh
Publication of CN109308232A publication Critical patent/CN109308232A/zh
Application granted granted Critical
Publication of CN109308232B publication Critical patent/CN109308232B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • 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
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • 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/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/45562Creating, deleting, cloning 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/4557Distribution of virtual machine instances; Migration and load balancing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Hardware Redundancy (AREA)
  • Retry When Errors Occur (AREA)

Abstract

本发明公开了一种虚拟机热迁移故障后回滚的方法、装置以及***,所述方法包括:判断虚拟机热迁移故障的发生阶段,如果所述虚拟机热迁移故障发生在虚拟机暂停运行的阶段,则执行如下步骤;在源物理机一侧保存原虚拟机的运行状态数据;清理原虚拟机及其对应的后端资源;根据所述保存的原虚拟机的运行状态数据创建新虚拟机及其对应的后端资源;启动所述新虚拟机。利用所述方法,可解决现有的因部分操作***的停机操作所造成的前后端资源不一致而致使虚拟机热迁移故障后回滚失败的问题。

Description

虚拟机热迁移故障后回滚的方法、装置以及***
技术领域
本申请涉及虚拟机领域,具体涉及一种虚拟机热迁移故障后回滚的方法、装置以及一种***。本申请另外涉及一种数据处理的方法。
背景技术
虚拟机热迁移是云计算运营中的一个关键技术,通过热迁移将虚拟机从一个物理机迁移到另外一个物理机,以实现计算资源的动态调度、负载均衡、物理故障的主动容错和在线维护,提高了***的可靠性,可以获得更强大的计算能力、更大的内存以及更快速的通信能力。
目前主流的虚拟机热迁移方法为内存预拷贝迁移方法,该过程为:在保持虚拟机在源物理主机上正常运行的情况下,通过迭代的方式,将虚拟机的内存从源物理主机拷贝到目的物理主机,在拷贝的过程中,虚拟机一直保持运行状态,因此不断的有传输完成的内存被虚拟机再次改写,需要通过多轮拷贝的方式才能递归的将虚拟机的内存拷贝到目的端。在绝大部分内存拷贝结束后,虚拟机监视器会暂停虚拟机的运行,将最后的剩余内存脏页、CPU的状态信息以及虚拟机设备状态信息最终一并传递到目的端,完成虚拟机迁移的操作。
当上述虚拟机热迁移过程发生故障时,需要该虚拟机继续在源物理机上恢复运行,该过程称之为虚拟机热迁移故障后回滚。现有的虚拟机热迁移故障后回滚的方法为直接恢复该虚拟机在源物理机上的运行,该方法的理论依据为:虚拟机热迁移失败时,由于虚拟机本身就在源端运行,相关的上下文都没有发生变化,并且源物理机上的脏数据可以重用,所以直接恢复该虚拟机为运行状态就可以达到快速回滚的目的。
然而,上述现有虚拟机热迁移故障后回滚的方法存在一定缺陷。
上述内存预拷贝迁移方法中,故障可能发生在热迁移的任何阶段,各阶段对故障回滚的要求有所差异,当故障发生在内存预拷贝的过程中时,则需要终止热迁移的流程,同时清理目的端预留的资源即可保证所述虚拟机在源物理机上恢复运行;当故障发生在停机拷贝阶段时,恢复所述虚拟机的运行需要该虚拟机的前后端资源能够保持一致性,然而,现有热迁移回滚方法无法保证在该过程中所有虚拟机操作***的前后端资源都能够始终保持一致,在所述停机拷贝阶段,所述停机操作对于不同类型的操作***来说存在一定差异,该差异主要来源于热迁移过程中停机拷贝时前后端资源的连接状况的不确定性,部分操作***的前端资源和后端资源的连接会断开,例如部分Linux***会将网络断连,而有些操作***的前端和后端资源的连接不会断开,例如windows***的网卡驱动。当所述热迁移的虚拟机在停机拷贝时前后端资源处于断开状态时,如果简单地认为后端资源状态没有发生变化而没有对所述后端资源重新进行初始化,则导致直接恢复该虚拟机运行时会因为前后端资源状态的不一致而无法建立连接;当所述热迁移的虚拟机在停机拷贝时前后端资源处于连接状态时,如果在恢复该虚拟机运行时又重新连接,同样导致前后端资源状态的不统一,因此,将造成虚拟机热迁移回滚的失败。
发明内容
本申请提供一种虚拟机热迁移故障后回滚的方法,以解决现有的因部分操作***的停机操作所造成的前后端资源不一致而致使虚拟机热迁移故障后回滚失败的问题。本申请另外提供一种虚拟机热迁移故障后回滚的装置以及一种***。本申请另外提供一种数据处理的方法。
本申请提供一种虚拟机热迁移故障后回滚的方法,所述方法包括如下步骤:
判断虚拟机热迁移故障的发生阶段,如果所述虚拟机热迁移故障发生在虚拟机暂停运行的阶段,则执行如下步骤;
在源物理机一侧保存原虚拟机的运行状态数据;
清理原虚拟机及其对应的后端资源;
根据所述保存的原虚拟机的运行状态数据创建新虚拟机及其对应的后端资源;
启动所述新虚拟机。
可选的,所述清理原虚拟机及其对应的后端资源,包括:
释放所述原虚拟机进程并清理所述原虚拟机在源物理机上的后端资源。
可选的,所述清理所述原虚拟机在源物理机上的后端资源,包括:
断开存储和网络连接;
清理后端设备上的与所述原虚拟机相对应的存储和网络连接的驱动程序。
可选的,所述根据所述保存的原虚拟机的运行状态数据创建新虚拟机及其对应的后端资源,包括:
从所述保存的原虚拟机的运行状态数据中加载其中的原虚拟机进程;并且
按照所述保存的原虚拟机的运行状态数据,在所述源物理机上创建符合所述原虚拟机参数要求的后端资源。
可选的,所述后端资源,包括:
与虚拟机相对应的存储和网络驱动程序。
可选的,在所述新建虚拟机及其对应的后端资源之后,在所述启动所述新虚拟机之前,还包括:
修改虚拟机控制结构的状态标识,表明该虚拟机需要触发上电管理。
可选的,所述启动所述新虚拟机,包括:
恢复虚拟处理器的运行;
使能定时器和中断;
触发虚拟机设备电源管理;
扫描设备,触发前后端连接。
可选的,所述方法适用于Xen虚拟化架构中的虚拟机热迁移故障后回滚。
本申请还提供一种虚拟机热迁移故障后回滚的装置,所述装置包括:
虚拟机热迁移故障发生阶段判断单元,用于判断虚拟机热迁移故障的发生阶段,如果所述虚拟机热迁移故障发生在虚拟机暂停运行的阶段,则触发如下单元;
原虚拟机运行状态数据保存单元,用于在源物理机一侧保存原虚拟机的运行状态数据;
原虚拟机及其对应的后端资源清理单元,用于清理原虚拟机及其对应的后端资源,
新虚拟机及其对应的后端资源创建单元,用于根据所述保存的原虚拟机的运行状态数据创建新虚拟机及其对应的后端资源;
新虚拟机启动单元,用于启动所述新虚拟机。
本申请还提供一种***,所述***包括:
处理器;
***控制单元;
***内存;
非易失存储器或存储设备;
网络接口;
输入/输出(I/O)设备;
指令程序;
所述***内存和所述非易失存储器或存储设备分别存储所述指令程序的暂时性副本和持久性副本;当所述指令程序被所述处理器执行时,所述***执行上述的方法。
本申请另外提供一种数据处理的方法,所述方法包括如下步骤:
确定第一虚拟机热迁移发生故障,并且所述故障发生在所述第一虚拟机暂停运行阶段;
清理所述第一虚拟机及其对应的后端资源,并保存所述第一虚拟机的运行状态数据;
根据所述第一虚拟机的运行状态数据,创建第二虚拟机及其对应的后端资源。
可选的,所述后端资源包括:在虚拟化过程中,能够根据虚拟机的请求信息对本地设备驱动进行调用,从而达到对物理硬件进行访问的目的的驱动程序。
与现有技术相比,本申请具有以下优点:
当虚拟机热迁移的故障发生在停机拷贝阶段时,直接清理该虚拟机及其对应的后端资源,根据原虚拟机的运行状态数据重建新的虚拟机,并启动该虚拟机,以使该虚拟机达到与原虚拟机具有相同运行状态从而完成原虚拟机在源物理机上的恢复运行,排除了可能出现的由于虚拟机前后端资源的无法归一而造成的虚拟机在源物理机上恢复运行时失败的问题。
附图说明
图1是本申请第一实施例提供的虚拟机热迁移故障后回滚的方法流程图;
图2是本申请第一实施例提供的虚拟机热迁移过程中的故障发生示意图;
图3是本申请提供的虚拟机热迁移故障后回滚方法的运行构架图;
图4是本申请提供的虚拟机热迁移的示意图;
图5是本申请提供的虚拟机热迁移故障后回滚的完整示意图;
图6是本申请第二实施例提供的一种虚拟机热迁移故障后回滚的装置单元框图;
图7是本申请第三实施例提供的一种***的示意图;
图8是本申请第四实施例提供的数据处理的方法流程图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施的限制。
本申请的技术方案可以有不同的变更实施方式或者替代实施方式,本说明书将结合附图给出的示例对特定的实施方式进行详细说明。但是,本领域技术人员应该理解,本说明书的目的不是为了将本申请技术方案限定于本说明书公开的特定实施方式,而是为了覆盖与本申请技术方案一致的所有变更实施方式、等同实施方式和替代实施方式。
在本说明书中对“实施例”、“本实施例”、或者“示范实施例”等的引用,指明所描述的实施例可以包括具体的特征、结构或特性,但是并非要求每个实施例都需要包括该具体的特征、结构或特性。此外,当结合一个实施例描述具体的特征、结构或特性时,在本领域技术人员的知识范围内,可以结合其他实施例来实施这种特征、结构或特性(无论其是否被详细描述)。
本申请的实施例可以按照软件、硬件、固件、或其结合、或其他方式实现。本申请的实施例还可实现为存储在非永久性或永久性机器可读介质(例如:计算机可读介质)上的指令,所述指令可通过一个或多个处理器读取或执行。机器可读介质包括任何按机器可读形式存储或传送信息的存储设备、机制或其他物理结构。例如,机器可读介质可以包括只读存储器(ROM)、随机访问存储器(RAM)、磁盘存储介质、光存储介质、闪存设备以及其他。
在本说明书提供的附图中,一些结构或方法特征通常是按照具体的排列方式和/或顺序来展示的。但是应该理解,这些具体的排列方式和/或顺序并不是必需的。在一些实施例中,这些特征可以按照与附图不同的排列方式和/或顺序来组织。此外,在某一附图中包含的结构或方法特征,并不意味着在所有实施例中都要包含该特征,在一些实施例中,可以不包含该特征,或者该特征可以与其他特征相结合。
在本申请中,提供了一种虚拟机热迁移回滚的方法、一种虚拟机热迁移回滚的装置以及一种***。以下提供实施例逐一进行详细说明。
本申请所提供的虚拟机热迁移故障后回滚的方法,其基本思想为:当虚拟机热迁移的故障发生在停机拷贝阶段时,直接清理该虚拟机及其对应的后端资源,并且,根据原虚拟机的运行状态数据重建新的虚拟机及其对应的后端资源,并启动该新建的虚拟机,从而实现热迁移过程中发生故障的虚拟机在源物理机上恢复运行,请结合图5了解该方法,其为本申请提供的虚拟机热迁移故障后回滚的完整示意图。
本申请所提供的虚拟机热迁移故障后回滚的方法,该方法作为虚拟机管理程序的一部分,其运行于虚拟机管理平台上。例如,在Xen虚拟化体系结构中,虚拟机管理程序Xen位于操作***和硬件之间,负责为上层运行的操作***内核提供虚拟化的硬件资源,并且负责管理和分配这些资源,以及确保上层虚拟机(称为域Domain)之间的相互隔离。Domain0作为虚拟机管理程序所创建的特权域,其运行在Xen管理程序之上,在Xen中担任管理员的角色,具有直接访问硬件和管理其他虚拟机Domain U的特权,并同时提供虚拟的资源服务。本实施例中,所述虚拟机热迁移故障后回滚的方法也运行于Domain 0上,作为虚拟机运行环境的某一管理模块。其运行构架如图3所示,其为本实施例提供的Xen虚拟化体系结构中的虚拟机热迁移故障后回滚方法的运行构架图。
本申请第一实施例提供一种虚拟机热迁移故障后回滚的方法。请参考图1,其为本申请的第一实施例提供的虚拟机热迁移故障后回滚的方法流程图,以下结合图1介绍该实施例。
框S101:判断虚拟机热迁移故障的发生阶段,如果所述虚拟机热迁移故障发生在虚拟机暂停运行的阶段,则执行本方法的后续步骤。
虚拟机热迁移,又称虚拟机动态迁移或者虚拟机在线迁移,指的是将正在运行的虚拟机从源物理主机上迁移到目的物理主机上,并且确保在所述虚拟机上所运行的应用程序在迁移过程中能够正常运行。
虚拟机热迁移的方法较多,各类型虚拟化平台所对应的虚拟机热迁移方法存在一定的差异,例如,Xen虚拟化技术中的Xen虚拟机所采用的虚拟机热迁移方法为主流的内存预拷贝(pre-copy)迁移方法,所述内存预拷贝迁移方法的工作原理如下:虚拟机管理程序将所有内存页标记为脏页面并拷贝到目的主机上,然后迭代拷贝内存页,该过程中,上一轮传输过程中被修改过的脏页面在本次迁移,当需要传输的内存小于一个阈值或者迭代次数超过设置的最大迭代次数时,停止内存页的迭代拷贝,然后将最后的剩余内存脏页、CPU的状态信息以及虚拟机设备状态信息一起复制到目的物理主机上。
在所述内存预拷贝迁移方法中,虚拟机热迁移的过程可概括为两个阶段,分别为第一阶段的内存预拷贝阶段以及第二阶段的停机拷贝阶段,如图2所示,其为虚拟机热迁移过程中的故障发生示意图,所述第一阶段包括如下阶段:
201启动迁移→202目的端资源预留→203虚拟机内存迭代拷贝→204虚拟机停止运行。
所述第二阶段包括如下阶段:
204虚拟机停止运行→205虚拟机状态与设备信息拷贝→206目的端虚拟机状态激活。
当在所述虚拟机热迁移的过程中发生故障时,如果所述故障发生在上述第二阶段的停机拷贝阶段,则执行本申请的热迁移故障后回滚的方法。
如果故障发生在上述第一阶段的内存预拷贝阶段,则为已有技术的虚拟机热迁移回滚方法,在此不作说明。
框S102:在源物理机一侧保存原虚拟机的运行状态数据。
虚拟机运行状态数据的保存是虚拟机的常用功能,形式较为多样,常见的虚拟机快照和克隆技术即利用了虚拟机的运行状态保存逻辑。
所述虚拟机的运行状态数据指的是该虚拟机的CPU状态(各种通用寄存器和控制寄存器)、所有内存镜像、以及设备状态(网卡、显卡、终端控制器等),其包含了虚拟机的创建参数、资源配置等信息。所述在源物理机一侧保存原虚拟机的运行状态数据,其目的在于在所述源物理机上对原虚拟机的创建信息、配置信息和运行信息等所有状态数据完整保存下来,作为该虚拟机的备案信息。
本实施例以Xen虚拟化技术的完全虚拟机的保存过程为例进行说明,该过程类似于Xen虚拟机的“保存/恢复”功能中的保存阶段,由于本实施例中的虚拟机处于停止状态中,所以,该保存过程较为简单,只需按预定顺序直接对虚拟机所有内存、模拟设备状态、虚拟机相关状态以及虚拟机控制结构VMCS的状态进行保存即可。
框S103:清理原虚拟机及其对应的后端资源。
在上述对所述虚拟机的运行状态数据进行保存后,将进入清理原虚拟机以及其对应的后端资源状态阶段。
所述后端资源,指的是在虚拟化的运作当中,能够根据虚拟机的请求信息对本地设备驱动进行调用,从而达到对物理机真实硬件进行访问的目的的驱动程序,最核心的后端资源为存储资源和网络资源,例如,在Xen虚拟化体系结构中,特权域Domain 0中建立后端设备,用户域Domain U中建立前端设备,在运行中,所有的用户域操作***向前端设备发送请求,前端设备将这些请求以及用户域的身份信息发送到处于特权域中的后端设备,后端设备根据所述请求信息利用设备驱动来完成硬件访问,在该过程中,所有的真实硬件访问都由特权域的后端设备调用本地设备驱动发起,前端设备只需完成数据请求的转发操作。在上述过程中,用户域Domain U为虚拟化客户机,而特权域Domain 0作为虚拟机管理员,虚拟机管理员包含存储设备驱动和网络设备驱动,对应的,每个半虚拟化客户机的前端都包含与所述虚拟机管理员相对应的用以操作网路和磁盘的驱动程序,以实现所述半虚拟化客户机的存储连接和网络连接;相应的,每个全虚拟化客户机都在虚拟机管理员中存在一个对应的用以实现所述全虚拟化客户机的网络和磁盘访问操作的精灵程序。
清理所述原虚拟机的后端资源,其实质为清理该虚拟机所对应的后端驱动程序,其过程为断开所述虚拟机的网络和存储连接,然后对已断开连接的后端驱动程序进行清理,所述后端驱动程序接收来自虚拟化客户机的IO和网络请求,然后调用本地设备驱动进行真实的硬件访问。
清理原虚拟机的过程为释放所述虚拟机进程的过程,当所述虚拟机是以虚拟机模拟器进行模拟的方式创建时,该虚拟机的进程为所述虚拟机模拟器的模拟进程。在所述虚拟机进程的释放过程中,该虚拟机的内存保持不变。例如,在以虚拟操作***模拟器QEMU作为虚拟机的创建工具时,每个虚拟机对应于物理主机中的一个QEMU进程,当清理该虚拟机时,只需清理该QEMU进程即可。
框S104:根据所述保存的原虚拟机的运行状态数据创建新虚拟机及其对应的后端资源。
在上述对原虚拟机及其对应的后端资源进行清理后,本步骤将根据所述保存的原虚拟机的运行状态数据创建新虚拟机及其对应的后端资源。所述对虚拟机及其后端资源同步进行清理或创建,其目的在于保持虚拟机前后端资源状态的统一。
所述根据所述保存的原虚拟机的运行状态数据创建新虚拟机及其对应的后端资源,指的是根据保存的原虚拟机的CPU状态、所有内存镜像以及设备状态等信息重新创建与所述保存的配置信息完全相同的虚拟机,并且根据所述保存的状态信息新建符合所述原虚拟机的参数要求的后端资源。
在本实施例中,Xen完全虚拟化虚拟机的重建与所述Xen虚拟机“保存/恢复”功能中的恢复阶段的方法一致,其过程为:根据保存的配置信息创建一个新的虚拟机,在所述虚拟机上恢复所述原虚拟机的内存、虚拟机的相关状态以及虚拟机控制结构VMCS。当以虚拟操作***模拟器QEMU作为虚拟机的创建工具时,所述创建虚拟机的方式为加载QEMU进程。内存恢复的过程为首先恢复内存布局,使之与原虚拟机一致,然后再恢复内存数据。
所述符合所述原虚拟机的参数要求,指的是能够满足所述虚拟机对源物理机存储资源和网络资源的访问要求,从而实现存储和网络连接。与上述删除后端资源相对应的,创建新虚拟机对应的后端资源的过程为:在所述虚拟机管理员上,创建与所述原虚拟机的前端资源相对应的用以实现存储和网络连接的驱动程序。
框S105:启动所述新虚拟机。
当所述虚拟机创建完成后,需启动该虚拟机以完成所述虚拟机在源物理机上的运行。
因为所述虚拟机为新建的虚拟机,在启动时需要重新触发上电管理,所以,需要修改该虚拟机的控制结构VMCS中的EAX寄存器的状态标识,表明当前的操作***需要执行新的上电启动过程,该状态标识在虚拟机启动之后会被虚拟机操作***读取,引发后续对新虚拟机启动时的对应操作。
本实施例中,所述启动虚拟机的流程为虚拟机上电启动的标准化流程,其具体步骤包括:恢复虚拟处理器为运行状态;设置该虚拟机的中断和定时操作,重新使能timer和中断;触发虚拟机设备电源管理;扫描该虚拟机的所有设备,触发前后端驱动设备连接;虚拟机恢复运行。由于该虚拟机的启动过程为现有技术的标准流程,在此不作过多说明。
上述方法中,通过将热迁移故障回滚的过程转变为虚拟机及其后端资源的重新创建以及运行恢复的过程,从而实现不同种类操作***的虚拟机在任何故障状态下的成功回滚。该方法在本实施例中是利用所述Xen虚拟化平台中的虚拟机管理员Domain 0中的相应管理程序实现的,而在其他虚拟化平台中,该方法的实现过程可借助所述虚拟化平台所对应的虚拟机管理程序完成。本申请第二实施例提供一种虚拟机热迁移故障后回滚的装置,请参看图6,该图为该实施例的单元框图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
所述虚拟机热迁移故障后回滚的装置,包括:
虚拟机热迁移故障发生阶段判断单元601,用于判断虚拟机热迁移故障的发生阶段,如果所述虚拟机热迁移故障发生在虚拟机暂停运行的阶段,则触发如下单元;
原虚拟机运行状态数据保存单元602,用于在源物理机一侧保存原虚拟机的运行状态数据;
原虚拟机及其对应的后端资源清理单元603,用于清理原虚拟机及其对应的后端资源;
新虚拟机及其对应的后端资源创建单元604,用于根据所述保存的原虚拟机的运行状态数据创建新虚拟机及其对应的后端资源;
新虚拟机启动单元605,用于启动所述新虚拟机。
可选的,所述清理原虚拟机及其对应的后端资源,包括:
释放所述原虚拟机进程并清理所述原虚拟机在源物理机上的后端资源。
可选的,所述清理所述虚拟机在源物理机上的后端资源,包括:
断开存储和网络连接;
清理后端设备上的与所述原虚拟机相对应的存储和网络连接的驱动程序。
可选的,所述根据所述保存的原虚拟机的运行状态数据创建新虚拟机及其对应的后端资源,包括:
从所述保存的原虚拟机的运行状态数据中加载其中的原虚拟机进程;并且
按照所述保存的原虚拟机的运行状态数据,在所述源物理机上创建符合所述原虚拟机参数要求的后端资源。
可选的,所述后端资源,包括:
与虚拟机相对应的存储和网络驱动程序。
可选的,在所述新建虚拟机及其对应的后端资源之后,在所述启动所述新虚拟机之前,还包括:
修改虚拟机控制结构的状态标识,表明该虚拟机需要触发上电管理。
可选的,所述启动所述新虚拟机,包括:
恢复虚拟处理器的运行;
使能Timer和中断;
触发虚拟机设备电源管理;
扫描设备,触发前后端连接。
可选的,所述方法适用于Xen虚拟化架构中的虚拟机热迁移故障后回滚。
本申请第三实施例提供一种***,请参看图7,该图为所述***实施例的示意图。所述***700包括:处理器701,与所述处理器耦合的***控制单元702,与所述***控制单元耦合的***内存(System Memory)703,与所述***控制单元耦合的非易失存储器(NonVolatile Memory—NVM)或存储设备704,与所述***控制单元耦合的网络接口705,输入/输出(I/O)设备706,以及指令程序707。所述***内存703和所述非易失存储器或存储设备704可以分别存储指令程序707的暂时性副本和持久性副本,当所述指令程序707被处理器701中的至少一个处理器执行时,所述***700将执行如本申请第一实施例所提供的虚拟机热迁移故障后回滚的方法。
所述处理器701可以包括至少一个处理器,每个处理器可以是单核处理器或者多核处理器。所述处理器701可以包括通用处理器和专用处理器(例如,图形处理器、应用处理器、基带处理器等)的任意组合。在具体实施时,所述处理器701可以被配置为采用不同的实施方式执行如本申请第一实施例所提供的虚拟机热迁移故障后回滚的方法。
所述***控制单元702可以包括任何相应的接口控制器,为所述处理器701中的至少一个处理器,和/或,任何与所述***控制单元702通信的设备或组件,提供接口。
所述***控制单元702可以包括为所述***内存703提供接口的至少一个内存控制器。所述***内存703可以用于加载并存储数据和/或指令。所述***内存703可以包括任何易失性存储器,例如,动态随机存取存储器(dynamic random access memory—DRAM)。
所述非易失存储器或存储设备704可以包括至少一个有形的、永久性的计算机可读介质,所述计算机可读介质用于存储数据和/或指令。所述非易失存储器或存储设备704可以包括任何形式的非易失存储器,例如,闪存(flash memory),和/或,任何非易失存储设备,例如,至少一个硬盘驱动器(harddisk drive—HDD)、至少一个光盘驱动器、和/或、至少一个数字多功能磁盘(digital versatile disk—DVD)驱动器。
所述网络接口705可以包括为所述***700提供无线接口的收发器,所述***700可以通过无线接口实现跨网络的通信,和/或与其他设备通信。所述网络接口705可以包括任何硬件和/或固件。所述网络接口705可以包括提供多输入、多输出无线接口的多个天线。在具体实施时,所述网络接口705可以为网络适配器、无线网络适配器、电话调制解调器、和/或无线调制解调器。
在具体实施时,所述处理器701中的至少一个处理器可以与所述***控制单元702中的至少一个控制器的控制逻辑封装在一起。在具体实施时,所述处理器701中的至少一个处理器可以与所述***控制单元702中的至少一个控制器的控制逻辑封装在一起,形成***封装(System in Package—SiP)。在具体实施时,所述处理器701中的至少一个处理器可以与所述***控制单元702中的至少一个控制器的控制逻辑集成在同一个芯片上。在具体实施时,所述处理器701中的至少一个处理器可以与所述***控制单元702中的至少一个控制器的控制逻辑集成在同一个芯片上,形成片上***(System on Chip—SoC)。
所述输入/输出设备706可以包括供用户与所述***700进行交互的用户接口,和/或供***组件和所述***700进行交互的***组件接口。
在不同的实施方式中,用户接口可以包括但不局限于:显示器(例如,液晶显示器,触摸屏显示器等)、扬声器、麦克风、至少一个摄像装置(例如相机、和/或摄像机)、闪光灯、以及键盘。
在不同的实施方式中,***组件接口可以包括但不局限于:非易失性存储器端口、音频插孔、以及电源接口。
在不同的实施方式中,所述***700可以部署于个人电脑、移动计算设备等电子设备上,所述移动计算设备可以包括但不局限于:笔记本电脑、平板电脑、移动电话、和/或其他智能设备等。在不同的实施方式中,所述***700可以包括更多或更少的组件,和/或不同的架构。
本申请第四实施例提供一种数据处理的方法。请参考图8,其为本申请第四实施例提供的数据处理的方法流程图,以下结合图8介绍该实施例。
框S801,确定第一虚拟机热迁移发生故障,并且所述故障发生在所述第一虚拟机暂停运行阶段。
框S802,清理所述第一虚拟机及其对应的后端资源,并保存所述第一虚拟机的运行状态数据;其中,所述后端资源包括:在虚拟化过程中,能够根据虚拟机的请求信息对本地设备驱动进行调用,从而达到对物理硬件进行访问的目的的驱动程序。
框S803,根据所述第一虚拟机的运行状态数据,创建第二虚拟机及其对应的后端资源。
本实施例提供的一种数据处理的方法,其实质与第一实施例所提供的一种虚拟机热迁移故障后回滚的方法为相同技术内容,仅在实现步骤及表述上有略微调整,所述第一虚拟机代表第一实施例中的原虚拟机,所述第二虚拟机代表第一实施例中的新虚拟机,具体内同请参阅本申请第一实施例,在此不再赘述。
本发明虽然以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以做出可能的变动和修改,因此本发明的保护范围应当以本发明权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

Claims (9)

1.一种虚拟机热迁移故障后回滚的方法,其特征在于,包括:
判断虚拟机热迁移故障的发生阶段,如果所述虚拟机热迁移故障发生在虚拟机暂停运行的阶段,则执行如下步骤;
在源物理机一侧保存原虚拟机的运行状态数据;
清理原虚拟机及其对应的后端资源,其中,所述后端资源,为在虚拟化的运作当中,能够根据所述虚拟机的请求信息对本地设备驱动进行调用,从而达到对物理机真实硬件进行访问的目的的驱动程序;
根据所述保存的原虚拟机的运行状态数据创建新虚拟机及其对应的后端资源;
启动所述新虚拟机;
其中,在所述新建虚拟机及其对应的后端资源之后,在所述启动所述新虚拟机之前,包括:
修改虚拟机控制结构的状态标识,表明该虚拟机需要触发上电管理。
2.根据权利要求1所述的虚拟机热迁移故障后回滚的方法,其特征在于,所述清理原虚拟机及其对应的后端资源,包括:
释放所述原虚拟机进程并清理所述原虚拟机在源物理机上的后端资源。
3.根据权利要求2所述的虚拟机热迁移故障后回滚的方法,其特征在于,所述清理所述原虚拟机在源物理机上的后端资源,包括:
断开存储和网络连接;
清理后端设备上的与所述原虚拟机相对应的存储和网络连接的驱动程序。
4.根据权利要求1所述的虚拟机热迁移故障后回滚的方法,其特征在于,所述根据所述保存的原虚拟机的运行状态数据创建新虚拟机及其对应的后端资源,包括:
从所述保存的原虚拟机的运行状态数据中加载其中的原虚拟机进程;并且
按照所述保存的原虚拟机的运行状态数据,在所述源物理机上创建符合所述原虚拟机参数要求的后端资源。
5.根据权利要求1所述的虚拟机热迁移故障后回滚的方法,其特征在于,所述后端资源,包括:
与虚拟机相对应的存储和网络驱动程序。
6.根据权利要求1所述的虚拟机热迁移故障后回滚的方法,其特征在于,所述启动所述新虚拟机,包括:
恢复虚拟处理器的运行;
使能定时器和中断;
触发虚拟机设备电源管理;
扫描设备,触发前后端连接。
7.根据权利要求1所述的虚拟机热迁移故障后回滚的方法,其特征在于,所述方法适用于Xen虚拟化架构中的虚拟机热迁移故障后回滚。
8.一种虚拟机热迁移故障后回滚的装置,其特征在于,包括:
虚拟机热迁移故障发生阶段判断单元,用于判断虚拟机热迁移故障的发生阶段,如果所述虚拟机热迁移故障发生在虚拟机暂停运行的阶段,则触发如下单元;
原虚拟机运行状态数据保存单元,用于在源物理机一侧保存原虚拟机的运行状态数据;
原虚拟机及其对应的后端资源清理单元,用于清理原虚拟机及其对应的后端资源,其中,所述后端资源,为在虚拟化的运作当中,能够根据所述虚拟机的请求信息对本地设备驱动进行调用,从而达到对物理机真实硬件进行访问的目的的驱动程序;
新虚拟机及其对应的后端资源创建单元,用于根据所述保存的原虚拟机的运行状态数据创建新虚拟机及其对应的后端资源;
新虚拟机启动单元,用于启动所述新虚拟机;
其中,在所述新建虚拟机及其对应的后端资源之后,在所述启动所述新虚拟机之前,包括:
修改虚拟机控制结构的状态标识,表明该虚拟机需要触发上电管理。
9.一种虚拟机热迁移故障后回滚的***,其特征在于,包括:
处理器;
***控制单元;
***内存;
非易失存储器或存储设备;
网络接口;
输入/输出(I/O)设备;
指令程序;
所述***内存和所述非易失存储器或存储设备分别存储所述指令程序的暂时性副本和持久性副本;当所述指令程序被所述处理器执行时,所述***执行如权利要求1-7任一项所述的方法。
CN201710630142.XA 2017-07-28 2017-07-28 虚拟机热迁移故障后回滚的方法、装置以及*** Active CN109308232B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710630142.XA CN109308232B (zh) 2017-07-28 2017-07-28 虚拟机热迁移故障后回滚的方法、装置以及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710630142.XA CN109308232B (zh) 2017-07-28 2017-07-28 虚拟机热迁移故障后回滚的方法、装置以及***

Publications (2)

Publication Number Publication Date
CN109308232A CN109308232A (zh) 2019-02-05
CN109308232B true CN109308232B (zh) 2022-09-06

Family

ID=65204922

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710630142.XA Active CN109308232B (zh) 2017-07-28 2017-07-28 虚拟机热迁移故障后回滚的方法、装置以及***

Country Status (1)

Country Link
CN (1) CN109308232B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112231064A (zh) * 2020-10-23 2021-01-15 苏州浪潮智能科技有限公司 一种虚拟机迁移的动态容错方法、***、装置及存储介质
CN114884836A (zh) * 2022-04-28 2022-08-09 济南浪潮数据技术有限公司 一种虚拟机高可用方法、装置及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106569881A (zh) * 2015-10-09 2017-04-19 中国石油化工股份有限公司 一种基于kvm的数据迁移方法及***

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7743126B2 (en) * 2001-06-28 2010-06-22 Hewlett-Packard Development Company, L.P. Migrating recovery modules in a distributed computing environment
CN102193813A (zh) * 2010-03-09 2011-09-21 上海拜翰网络科技有限公司 嵌入式虚拟化快速启动方法及***
CN104424015B (zh) * 2013-09-11 2018-10-09 华为技术有限公司 一种虚拟机管理方法和装置
KR20170109603A (ko) * 2015-01-28 2017-09-29 닛본 덴끼 가부시끼가이샤 가상 네트워크 기능 관리 장치, 시스템, 힐링 방법 및 프로그램
CN106549783A (zh) * 2015-09-18 2017-03-29 中兴通讯股份有限公司 虚拟机故障处理方法和装置
CN106533769B (zh) * 2016-11-24 2019-12-13 华为技术有限公司 一种故障恢复方法及装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106569881A (zh) * 2015-10-09 2017-04-19 中国石油化工股份有限公司 一种基于kvm的数据迁移方法及***

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A Trusted Virtual Machine in an Untrusted Management Environment;Chunxiao Li等;《IEEE TRANSACTIONS ON SERVICES COMPUTING》;20110623;第5卷(第4期);第472-483页 *
虚拟化云计算平台的能耗管理;叶可江等;《计算机学报》;20120615;第35卷(第6期);第1262-1285页 *

Also Published As

Publication number Publication date
CN109308232A (zh) 2019-02-05

Similar Documents

Publication Publication Date Title
US9823877B2 (en) Virtual machine backup from storage snapshot
US9959177B2 (en) Backing up virtual machines
US8635395B2 (en) Method of suspending and resuming virtual machines
US8694828B2 (en) Using virtual machine cloning to create a backup virtual machine in a fault tolerant system
US9052935B1 (en) Systems and methods for managing affinity rules in virtual-machine environments
US9092248B1 (en) Systems and methods for restoring distributed applications within virtual data centers
CN104598294B (zh) 用于移动设备的高效安全的虚拟化方法及其设备
CN112199162B (zh) 基于虚拟化磁盘双活容灾的磁盘快照方法、装置及介质
Kadav et al. Live migration of direct-access devices
US9600369B2 (en) Operating system recovery method and apparatus, and terminal device
US10789135B2 (en) Protection of infrastructure-as-a-service workloads in public cloud
EP2800303A1 (en) Switch method, device and system for virtual application dual machine in cloud environment
CN102446119B (zh) 基于Passthrough I/O的虚拟机动态迁移方法
WO2012149844A1 (zh) 一种虚拟机内存快照生成和恢复方法、装置及***
KR101673299B1 (ko) 운영 시스템 복구 방법 및 장치, 그리고 단말기기
CN106569876A (zh) 一种基于直接设备访问模型的虚拟机迁移的方法及装置
CN112256397A (zh) 一种虚机跨平台迁移方法及***
CN110704161B (zh) 虚拟机创建方法、装置及计算机设备
JP2016110183A (ja) 情報処理システム及び情報処理システムの制御方法
WO2020192448A1 (zh) 虚拟机的迁移方法和***
WO2020063432A1 (zh) 一种升级虚拟化模拟器的方法和装置
WO2015009771A1 (en) Systems and methods for instantly restoring virtual machines in high input/output load environments
US9557980B2 (en) Seamless application integration apparatus and method
WO2023184875A1 (zh) 一种裸金属磁盘备份方法、装置及计算机可读存储介质
CN112328365A (zh) 一种虚拟机迁移方法、装置、设备及存储介质

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
TR01 Transfer of patent right

Effective date of registration: 20230530

Address after: Room 1-2-A06, Yungu Park, No. 1008 Dengcai Street, Sandun Town, Xihu District, Hangzhou City, Zhejiang Province

Patentee after: Aliyun Computing Co.,Ltd.

Address before: Box 847, four, Grand Cayman capital, Cayman Islands, UK

Patentee before: ALIBABA GROUP HOLDING Ltd.

TR01 Transfer of patent right