应用程序备份、恢复的方法及设备的制作方法

文档序号:6503640阅读:162来源:国知局
应用程序备份、恢复的方法及设备的制作方法
【专利摘要】本发明公开了一种方法和装置。所述方法包括:一种应用程序进行备份方法,所述应用程序跨多个虚拟机运行,该方法包括:响应于需要对所述应用程序进行备份,执行第一组脚本,所述第一组脚本用于在备份前协调所述多个虚拟机进入准备状态;响应于所述第一组脚本执行完毕,触发管理所述多个虚拟机的至少一个备份代理的备份操作,所述备份操作包括所述备份代理分别在其所管理的虚拟机上定位该应用程序相关的数据并进行备份;响应于所述备份操作结束,执行第二组脚本,所述第二组脚本用于恢复所述多个虚拟机的运行。利用本发明实施例的方法和装置,可以对跨虚拟机的用程序进行备份和恢复。
【专利说明】应用程序备份、恢复的方法及设备

【技术领域】
[0001] 本发明是涉及应用程序的备份与恢复,更具体而言,涉及一种对跨虚拟机的应用 程序进行备份、恢复的方法和设备。

【背景技术】
[0002] 现有技术中存在操作系统、虚拟机级别的备份与恢复方案,然而,在对跨虚拟机的 应用程序进行备份时,并不能直接应用现有的针对单个虚拟机、或单个操作系统的备份及 恢复方案。对于跨多个虚拟机的应用来说,该应用的不同部分运行在不同的虚拟机之上,例 如,应用程序的数据库部分、应用服务部分会运行在不同的虚拟机上。因此,在对跨虚拟机 的应用程序进行备份时,需要保证该应用程序所在的多个虚拟机之间数据的协调性。
[0003] 此外,现有技术对每个应用程序需要设计特定于该应用程序的备份方案,由于应 用程序各不相同的,因此,现有方式并不是一种通用的解决方案,这也使得应用程序备份、 恢复的效率也很低。
[0004] 由上可见,现有技术仍然存在着改进的空间,需要提供一种通用的对跨虚拟机的 应用程序进行备份及恢复的技术方案。


【发明内容】

[0005] 根据本发明的一个第方面,提供了一种应用程序进行备份方法,所述应用程序跨 多个虚拟机运行,该方法包括:响应于需要对所述应用程序进行备份,执行第一组脚本,所 述第一组脚本用于在备份前协调所述多个虚拟机进入准备状态;响应于所述第一组脚本执 行完毕,触发管理所述多个虚拟机的至少一个备份代理的备份操作,所述备份操作包括所 述备份代理分别在其所管理的虚拟机上定位该应用程序相关的数据并进行备份;响应于所 述备份操作结束,执行第二组脚本,所述第二组脚本用于恢复所述多个虚拟机的运行。
[0006] 根据本发明一第二个方面,还提供了一种对应用程序进行恢复的方法,所述应用 程序跨多个虚拟机运行,该方法包括:响应于接收到对所述用程序进行恢复的指令,调用并 执行第一组恢复脚本,所述第一组恢复脚本用于进入恢复准备状态;响应于所述第一组恢 复脚本执行完毕,触发至少一个恢复代理执行恢复操作,所述恢复操作包括恢复代理在其 所管理的虚拟机上拷贝回该应用程序相关的备份数据;响应于所述备份操作结束,调用并 执行第二组恢复脚本,所述第二组恢复脚本用于恢复所述多个虚拟机的运行。
[0007] 根据本发明的第三个方面,提供了一种一种应用程序的备份设备,所述应用程序 跨多个虚拟机运行,该设备包括:第一脚本执行装置,配置为响应于需要对所述应用程序进 行备份,执行第一组脚本,所述第一组脚本用于在备份前协调所述多个虚拟机进入准备状 态;备份装置,配置为响应于所述第一组脚本执行完毕,触发管理所述多个虚拟机的至少一 个备份代理的备份操作,所述备份操作包括所述备份代理分别在其所管理的虚拟机上定位 该应用程序相关的数据并进行备份;第一脚本执行装置,配置为响应于所述备份操作结束, 执行第二组脚本,所述第二组脚本用于恢复所述多个虚拟机的运行。
[0008] 根据本发明的第四个方面,提供了一种一种对应用程序进行恢复的设备,所述应 用程序跨多个虚拟机运行,该设备包括:第一组恢复脚本运行装置,配置为响应于接收到对 所述用程序进行恢复的指令,调用并执行第一组恢复脚本,所述第一组恢复脚本用于进入 恢复准备状态;恢复装置,配置为响应于所述第一组恢复脚本执行完毕,触发至少一个恢复 代理执行恢复操作,所述恢复操作包括恢复代理在其所管理的虚拟机上拷贝回该应用程序 相关的备份数据;第二组恢复脚本运行装置,配置为响应于所述备份操作结束,调用并执行 第二组恢复脚本,所述第二组恢复脚本用于恢复所述多个虚拟机的运行。
[0009] 采用本发明的方法和装置,能够提供一种通用的对跨虚拟机的应用程序进行备份 及恢复的技术方案。

【专利附图】

【附图说明】
[0010] 通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其 它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号 通常代表相同部件。
[0011] 图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框 图;
[0012] 图2示出根据本发明一个实施例的对应用程序进行备份的方法流程图。
[0013] 图3A示出了根据本发明一个实施例的备份代理位于物理节点的示意图。
[0014] 图3B示出了根据本发明一个实施例的备份代理位于虚拟机之中的示意图。
[0015] 图4示出根据本发明一个实施例的对应用程序进行恢复的方法流程图.
[0016] 图5示出根据本发明一个实施例的对应用程序进行备份的设备示意图。
[0017] 图6示出根据本发明一个实施例的对应用程序进行恢复的设备示意图。

【具体实施方式】
[0018] 下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开 的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方 式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的 范围完整地传达给本领域的技术人员。
[0019] 所属【技术领域】的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。 因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包 括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为"电路"、"模 块"或"系统"。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质 中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0020] 可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算 机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一一但不限 于--电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算 机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便 携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储 器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、 或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程 序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0021] 计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号, 其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括一但 不限于一电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是 计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者 传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0022] 计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括--但不限 于--无线、电线、光缆、RF等等,或者上述的任意合适的组合。
[0023] 可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机 程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++, 还包括常规的过程式程序设计语言-诸如"C"语言或类似的程序设计语言。程序代码可以 完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部 分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在 涉及远程计算机的情形中,远程计算机可以通过任意种类的网络--包括局域网(LAN)或 广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提 供商来通过因特网连接)。
[0024] 下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/ 或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各 方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、 专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序 指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框 中规定的功能/操作的装置。
[0025] 也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置 以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一 个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品(manufacture) 〇
[0026] 也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备 上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计 算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图 和/或框图中的方框中规定的功能/操作的过程。
[0027] 图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框 图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使 用范围带来任何限制。
[0028] 如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统 /服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器 28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
[0029] 总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器, 外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举 例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC) 总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
[0030] 计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是 任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动 的和不可移动的介质。
[0031] 系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存 取存储器(RAM) 30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其 它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34 可以用于读写不可移动的、非易失性磁介质(图3未显示,通常称为"硬盘驱动器")。尽管 图1中未示出,可以提供用于对可移动非易失性磁盘(例如"软盘")读写的磁盘驱动器, 以及对可移动非易失性光盘(例如⑶-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。 在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28 可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模 块被配置以执行本发明各实施例的功能。
[0032] 具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器 28中,这样的程序模块42包括--但不限于--操作系统、一个或者多个应用程序、其它 程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程 序模块42通常执行本发明所描述的实施例中的功能和/或方法。
[0033] 计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、 显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的 设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信 的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接 口 22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络 (例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适 配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示 出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代 码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存 储系统等。
[0034] 现在参看图2,其示出根据本发明一个实施例的备份方法流程图,用于对跨多个虚 拟机的用程序进行备份。其中,该应用程序所跨的多个虚拟机既可以位于同一个物理节点 上,也可以位于多个物理节点上。如图2所示,该方法至少包括步骤201,步骤202以及步骤 203三个步骤。
[0035] 在步骤201中,响应于需要对所述应用程序进行备份,执行第一组脚本,所述第一 组脚本用于在备份前协调所述多个虚拟机使其进入准备状态。
[0036] 该第一组脚本以及第二组脚本可以是预先存储在备份/恢复服务器之上,由用户 提前上传至服务器,藉此,步骤201、202以及203中所应用的脚本就可从备份/恢复服务器 中获取。该第一组脚本以及第二组脚本通常是由应用的开发者提供,供用户在对用程序进 行备份时执行。
[0037] 在一个实施例中,还可在备份/恢复服务器上提供备份管理入口,供用户进行各 种备份的管理操作。应用程序部署完成后,用户可以通过备份管理入口设定备份策略(备 份时间、备份数量等),以及SLA等等。
[0038] 根据所接收的备份指令来确定是否需要对所述应用程序进行备份,该备份指令可 以是按照备份策略中预先设定的时刻发出,也可以是由用户通过备份管理入口临时发出。
[0039] 在一个实施例中,当所述应用程序包括数据库时,所述第一组脚本包括使得该应 用的数据库进入备份状态的脚本;所述第二组脚本包括使得该应用的数据库恢复运行的脚 本。举例而言,所述第一组脚本可以执行以下操作中的至少一种:停止所述数据库,设置该 数据库为写挂起状态;设置数据库为内存写状态(写操作不flush到持久存储)。相对应 的,所述第二组脚本可以执行与所述第一组脚本相反的操作:启动数据库,将该数据库从写 挂起状态恢复到正常运行;将该数据库从内存写状态恢复到正常运行。
[0040] 在一个实施例中,当所述应用程序包括应用服务器时,所述第一组脚本包括使得 该应用的应用服务器进入备份状态的脚本;所述第二组脚本包括使得该应用的应用服务器 恢复运行的脚本。举例而言,所述第一组脚本可执行以下操作:停止应用服务器,设置应用 服务器只接受读请求。相对应的,所述第二组脚本则执行与第一组脚本相反的操作,例如, 恢复应用服务器的运行,设置该应用服务器能够接受读请求。
[0041] 在一个实施例中,所述第一组脚本包括使得该应用进入备份状态的脚本;所述第 二组脚本包括使得该应用恢复运行的脚本。举例而言,所述第一组脚本可用于完成对当前 正在处理的请求,设置为不再接受新的写请求,或者设置为不再接任何受新的请求。相对应 的,所述第二组脚本则执行与第一组脚本相反的操作,例如,设置为可以接受新的请求。 [0042] 当然,本领域技术人员也可以采用其它类型的脚本,只要该脚本可以用于在备份 时协调多个虚拟机即可,例如,在另一些实施例中,所述第一脚本还包括用于消息队列服务 器的停止,相关存储空间的清理、准备。
[0043] 在一个实施例中,执行第一组脚本包括:分发所述第一组脚本;在所述多个虚拟 机上执行所述第一组脚本。按照一种实施方式,可将第一组脚本分别分发至该应用所在的 各个虚拟机上,然后由各个虚拟机执行在所接受到的第一组脚本中执行与该虚拟机相关的 脚本。按照另一种实施方式,还可以将该第一组脚本中所包括的脚本按照脚本类型分发至 所相应的虚拟机之上,例如,将该组脚本中与数据库相关的脚本分发至该应用数据库所在 的虚拟机之上,将该组脚本中与应用服务器相关的脚本分发至该应用的应用服务器所在的 虚拟机之上,然后由各个虚拟机执行所接受到的脚本。
[0044] 在步骤202中,响应于所述第一组脚本执行完毕,触发管理所述多个虚拟机的至 少一个备份代理的备份操作,所述备份操作包括所述备份代理分别在其所管理的虚拟机上 定位该应用程序相关的数据并进行备份。
[0045] 在一个实施例中,备份代理分别在其所管理的虚拟机上定位该应用程序相关的数 据并进行备份包括:对该应用程序相关的数据执行快照操作。因此,集合所有备份代理通过 快照操作所分别获取的快照后,就可得到该应用程序在多个虚拟机上所有待备份数据的快 照。进一步的,所述备份操作还包括从快照中将备份数据拷贝至外部存储器的步骤,现有技 术中有多种从快照中拷贝备份数据的方式,例如,基于现有的Rsync方式进行备份数据的 拷贝,由于该部分属于现有技术,不再进行赘述。
[0046] 图3A示出了根据本发明一个实施例的备份代理位于物理节点的示意图,在这个 实施例中,备份代理管理其所在的物理节点上的与该应用程序相关的所有虚拟机。采用该 种实施方式时,需要用户对物理节点具有操作权限,能够直接在该物理节点上安装备份代 理,并且该备份代理也有权限对运行于该物理节点上的虚拟机进行备份操作。如图3A所 示,其中物理节点1、物理节点2上分别创建有两个虚拟机,因此,物理节点1上的备份恢复 代理(B/R代理)能够对虚拟机A (图3A中所示的VMA)、虚拟机(图3A中所示的VMB)执行 备份操作,物理节点2上的备份代理能够对虚拟机C (图3A中所示的VMC)、虚拟机D (图3A 中所示的VMD)执行备份操作。
[0047] 图3B示出了根据本发明一个实施例的备份代理位于虚拟机之中的示意图,在这 个实施例中,备份代理被设置于应用程序所在的各个虚拟机之中。该实施例是更为常见, 因为在很多情形下,用户并不能直接拥有物理节点的操作权限,故需要在虚拟机内部植入 备份代理,从而能够通过触发备份代理对虚拟机内部的该应用程序相关的数据执行备份操 作。如图3B所示,在物理节点1上创建虚拟机A (VMA),在物理节点2上创建虚拟B (VMB)。 而备份/恢复代理分别位于各个虚拟机之中,因此,各个备份/恢复代理在虚拟机内部拥有 对应用程序相关的数据进行备份操作的权限,例如,VMA中的备份/恢复代理拥有对逻辑卷 A(LVA)中的应用程序相关的数据D1进行备份的权限。
[0048] 在该实施例中,为了使得备份代理位于虚拟机之中并管理该备份代理所位于的虚 拟机,需要提供经过定制的基础镜像(image),作为部署应用时创建虚拟机的基础镜像。可 对该基础镜像进行如下定制:将备份代理烧制入基础镜像中;如果需要支持快照功能,可 在基础镜像中安装支持快照功能的文件系统管理软件,例如LVM。
[0049] 关于定位应用程序相关的数据,也可以采用多种实现方式。在一个实施例中,可在 备份指令中提供该应用数据所在的虚拟机识别ID、以及在该虚拟机中的逻辑卷标,因此,备 份代理可以直接按照这些识别信息定位到相应的数据以进行备份操作。在另一个实施例 中,备份指令中可以不包含这些标识信息,当备份代理接收到备份操作时,可在其所在的虚 拟机中收集所有的数据信息,然后将这些信息反馈给备份/恢复服务器,然后再由备份/恢 复服务器告知其中哪些数据或虚拟机是与该应用程序相关的数据。
[0050] 如果需要支持快照功能,那么在基于前述定制过的基础镜像安装则应用程序时, 需要将其安装在一个或多个由支持快照功能的文件系统管理的逻辑卷内,并将应用程序安 装卷标信息注册到备份/恢复系统中。
[0051] 可以在应用程序在部署时,将该应用所在的虚拟机ID注册到备份和恢复系统中, 作为替换的方式,也可在应用部署完成后获取,以云环境为例,可以由备份/恢复系统从云 的IaaS或PaaS接口读取。
[0052] 在运行时,可以在备份/恢复系统中维护以下数据结构:
[0053] 应用实|对应虚拟机ID列|对应备份内容列表 |备份策略 _毛___ application_001 {VM01, VM02, {VM01:{LV01, LV03},每周六24:00开始备 VM03} VM02:{LV05}, 份,保留备份数据3 VM03: {LV02}} 份 ?
[0054] 在根据备份策略触发备份代理进行备份时,根据备份代理所管理的虚拟机ID,将 相应的备份内容列表以及备份策略发送给该备份代理;该备份代理获取该备份内容列表以 及备份策略后,就可根据上述信息进行备份,例如可以是基于快照的备份。
[0055] 综上,根据虚拟机的不同设置方式,每个备份代理所管理的虚拟机的数量可能不 同。举例而言,当备份代理位于物理节点时,则该备份代理可以管理该物理节点上所有的虚 拟机,而当备份代理位于虚拟机中时,则该备份代理则只能管理其所在的虚拟机。因此,备 份代理的数量并不一定与该应用所在的虚拟机的数目相同,但只要能够管理该应用所在的 多个虚拟机即可。
[0056] 在步骤203中,响应于所述备份操作结束,调用并执行第二组脚本,所述第二组脚 本用于恢复所述多个虚拟机的运行。执行第二组脚本的过程与执行第一组脚本的方式相 同,在此不对其进行赘述。
[0057] 按照本申请的一个实施例,所述备份代理分别在其所管理的虚拟机上定位该应用 程序相关的数据并进行备份时执行快照操作。快照技术,在存储系统中被广泛采用,最早被 应用到阵列和主机中,通常都是基于卷,在块(block)级别进行处理。采用快照操作能够明 显的提高备份的速度,原因在于,快照其实是指向保存在存储设备中的数据的引用标记或 指针,记载数据在某一时刻的状况,例如,通过建立一个指针列表来指示读取数据的地址, 从而提供一个瞬时数据的影像。由于快照创建的过程中通常不会有数据的物理拷贝,因此 快照的创建几乎是实时的,通常小于1秒。快照的原理属于现有技术, 申请人:在此不再赘 述,但需要说明的是,现有技术中的快照操通常是用于单个系统,从来没有被应用于跨多个 虚拟机运行的应用程序的备份中,特别是通过备份代理对应用程序所跨的多个虚拟机中该 应用程序相关的数据协调执行快照操作。
[0058] 按照本申请的一个实施例,为了支持快照操作,应用程序被部署在基于逻辑卷管 理(LVM)的多个虚拟机中,或者,该多个虚拟机位于支持LVM的物理节点中。逻辑卷管理 (LVM)是公知的支持快照操作的磁盘管理方式,具体可参看http: //en. wikipedia. cxtr/ wiki/Logical Volume Manager % 28Linux% 29, 申请人:不再作过多的陈述。此夕卜,本令页域 技术人员了解,现有的主机0S上的VxVM,或者Windows系统的VSS也都是支持快照的存储 管理系统,都可以应用与本申请的技术方案之中。
[0059] 图4示出根据本发明一个实施例的对应用程序进行恢复的方法流程图,所述应用 程序跨多个虚拟机运行,该方法包括:
[0060] 在步骤401中,响应于接收到对所述用程序进行恢复的指令,调用并执行第一组 恢复脚本,所述第一组恢复脚本用于在多个新创建的虚拟机上重新部署所述应用程序并进 入恢复准备状态。
[0061] 在一个实施例中,所述第一组恢复脚本用于:删除该应用实例所运行的原有虚拟 机;在多个新创建的虚拟机上重新部署应用程序时不启动所述重新部署的应用程序。如果 该应用在部署后自动启动,则需要停止该应用。在一个实施例中,用于部署新的应用实例的 多个虚拟机是基于定制镜像所创建的虚拟机,该定制镜像中包括恢复代理功能。
[0062] 在步骤402中,响应于所述第一组恢复脚本执行完毕,触发至少一个恢复代理执 行恢复操作,所述恢复操作包括获取该应用程序相关的备份数据并将所述备份数据拷贝至 该恢复代理所管理的新虚拟机中。
[0063] 在一个实施例中,所述恢复代理的恢复操作包括:删除所述多个新创建的虚拟机 上与备份数据相对应的内容,例如虚拟机VM01上的逻辑卷LV01和逻辑卷LV02中的所有内 容;根据用户指定的恢复策略拷贝备份数据到相应的位置。
[0064] 在步骤403中,响应于所述备份操作结束,调用并执行第二组恢复脚本,所述第二 组恢复脚本用于恢复所述重新部署的应用程序的运行。
[0065] 在一个实施例中,所述第二组恢复脚本中包括:根据新虚拟机环境修改所述重新 部署的应用程序的应用配置,如根据新的IP地址,主机名等更改数据库链接;启动所述重 新部署的应用程序,包括启动数据库,应用服务器等。
[0066] 图5示出根据本发明一个实施例的对应用程序进行备份的设备示意图,所述应用 程序跨多个虚拟机运行,该设备包括:
[0067] 第一脚本执行装置501,配置为响应于需要对所述应用程序进行备份,执行第一组 脚本,所述第一组脚本用于在备份前协调所述多个虚拟机进入准备状态。
[0068] 备份装置502,配置为响应于所述第一组脚本执行完毕,触发管理所述多个虚拟机 的至少一个备份代理的备份操作,所述备份操作包括所述备份代理分别在其所管理的虚拟 机上定位该应用程序相关的数据并进行备份。
[0069] 第一脚本执行装置503,配置为响应于所述备份操作结束,执行第二组脚本,所述 第二组脚本用于恢复所述多个虚拟机的运行。
[0070] 在一个实施例中,在部署所述应用程序时提供所述第一组脚本以及所述第二组脚 本。
[0071] 在一个实施例中,所述备份代理分别在其所管理的虚拟机上定位该应用程序相关 的数据并进行备份包括:对该应用程序相关的数据执行快照操作。
[0072] 在一个实施例中,所述备份代理位于物理节点中并管理位于该物理节点中的虚拟 机。在另一个实施例中,所述备份代理位于所述虚拟机中并管理该备份代理所位于的虚拟 机。
[0073] 在一个实施例中,还包括:配置为在部署所述应用程序时,根据包括所述备份代理 的基础镜像创建该应用程序所在的所述多个虚拟机使得所述备份代理位于所述虚拟机之 中并管理该备份代理所位于的虚拟机的装置。在一个实施例中,所述基础镜像中还包括支 持快照功能的文件系统管理软件。
[0074] 图6示出根据本发明一个实施例的对应用程序进行恢复的设备示意图,所述应用 程序跨多个虚拟机运行,该设备包括:
[0075] 第一组恢复脚本运行装置601,配置为响应于接收到对所述用程序进行恢复的指 令,调用并执行第一组恢复脚本,所述第一组恢复脚本用于在多个新创建的虚拟机上重新 部署所述应用程序并进入恢复准备状态。
[0076] 恢复装置602,配置为响应于所述第一组恢复脚本执行完毕,触发至少一个恢复代 理执行恢复操作,所述恢复操作包括获取该应用程序相关的备份数据并将所述备份数据拷 贝至该恢复代理所管理的新虚拟机中。
[0077] 第二组恢复脚本运行装置603,配置为响应于所述备份操作结束,调用并执行第二 组恢复脚本,所述第二组恢复脚本用于恢复所述重新部署的应用程序的运行。
[0078] 在一个实施例中,所述第一组恢复脚本用于:删除该应用程序所在的所述多个原 有虚拟机;在所述多个新创建的虚拟机上重新部署所述应用程序时不启动所述重新部署的 应用程序。
[0079] 在一个实施例中,所述恢复代理的恢复操作包括:删除所述多个新创建的虚拟机 上所述备份数据相应位置处的内容;根据用户指定的恢复策略拷贝所述备份数据到所述相 应位置。
[0080] 在一个实施例中,所述第二组恢复脚本中包括:根据所述多个新创建的虚拟机环 境修改所述重新部署的应用程序的应用配置;启动所述重新部署的应用程序。
[0081] 采用本申请的技术方案,只需要物理机或虚拟机支持通常意义上的备份操作(可 以是文件备份,块存储备份以及虚拟机整机备份的任何一种或几种的组合),这个要求对于 现今云计算环境中的宿主机和虚拟机,不管其使用的是Linux还是Windows操作系统,都是 成立的,因此,本申请的技术方案能够同时支持Linux和Windows操作系统,具有通用性。 [0082] 附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程 序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以 代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个 用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所 标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以 基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的 是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行 规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的 组合来实现。
[0083] 以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也 不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技 术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨 在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领 域的其它普通技术人员能理解本文披露的各实施例。
【权利要求】
1. 一种应用程序的备份方法,所述应用程序跨多个虚拟机运行,该方法包括: 响应于需要对所述应用程序进行备份,执行第一组脚本,所述第一组脚本用于在备份 前协调所述多个虚拟机进入准备状态; 响应于所述第一组脚本执行完毕,触发管理所述多个虚拟机的至少一个备份代理的备 份操作,所述备份操作包括所述备份代理分别在其所管理的虚拟机上定位该应用程序相关 的数据并进行备份; 响应于所述备份操作结束,执行第二组脚本,所述第二组脚本用于恢复所述多个虚拟 机的运行。
2. 根据权利要求1所述的方法,其中,所述备份代理分别在其所管理的虚拟机上定位 该应用程序相关的数据并进行备份包括: 对该应用程序相关的数据执行快照操作。
3. 根据权利要求1所述的方法,其中, 所述备份代理位于物理节点中并管理位于该物理节点中的虚拟机。
4. 根据权利要求1所述的方法,其中, 所述备份代理位于所述虚拟机之中并管理该备份代理所位于的虚拟机。
5. 根据权利要求5所述的方法,还包括: 在部署所述应用程序时,根据包括所述备份代理的基础镜像创建该应用程序所在的所 述多个虚拟机使得所述备份代理位于所述虚拟机之中并管理该备份代理所位于的虚拟机。
6. 根据权利要求6所述的方法,其中,所述基础镜像中还包括支持快照功能的文件系 统管理软件。
7. -种对应用程序进行恢复的方法,所述应用程序跨多个原有虚拟机运行,该方法包 括: 响应于接收到对所述应用程序进行恢复的指令,调用并执行第一组恢复脚本,所述第一 组恢复脚本用于在多个新创建的虚拟机上重新部署所述应用程序并进入恢复准备状态; 响应于所述第一组恢复脚本执行完毕,触发至少一个恢复代理执行恢复操作,所述恢 复操作包括获取该应用程序相关的备份数据并将所述备份数据拷贝至该恢复代理所管理 的新虚拟机中; 响应于所述备份操作结束,调用并执行第二组恢复脚本,所述第二组恢复脚本用于恢 复所述重新部署的应用程序的运行。
8. 根据权利要求7所述的方法,其中,所述第一组恢复脚本用于: 删除该应用程序所在的所述多个原有虚拟机; 在所述多个新创建的虚拟机上重新部署所述应用程序时不启动所述重新部署的应用 程序。
9. 根据权利要求7所述的方法,其中,所述恢复代理的恢复操作包括: 删除所述多个新创建的虚拟机上所述备份数据相应位置处的内容; 根据用户指定的恢复策略拷贝所述备份数据到所述相应位置。
10. 根据权利要求7所述的方法,其中,所述第二组恢复脚本中包括: 根据所述多个新创建的虚拟机环境修改所述重新部署的应用程序的应用配置; 启动所述重新部署的应用程序。
11. 一种应用程序的备份设备,所述应用程序跨多个虚拟机运行,该设备包括: 第一脚本执行装置,配置为响应于需要对所述应用程序进行备份,执行第一组脚本,所 述第一组脚本用于在备份前协调所述多个虚拟机进入准备状态; 备份装置,配置为响应于所述第一组脚本执行完毕,触发管理所述多个虚拟机的至少 一个备份代理的备份操作,所述备份操作包括所述备份代理分别在其所管理的虚拟机上定 位该应用程序相关的数据并进行备份; 第一脚本执行装置,配置为响应于所述备份操作结束,执行第二组脚本,所述第二组脚 本用于恢复所述多个虚拟机的运行。
12. 根据权利要求11所述的设备,其中,所述备份代理分别在其所管理的虚拟机上定 位该应用程序相关的数据并进行备份包括:对该应用程序相关的数据执行快照操作。
13. 根据权利要求11所述的设备,其中,所述备份代理位于物理节点中并管理位于该 物理节点中的虚拟机。
14. 根据权利要求11所述的设备,其中,所述备份代理位于所述虚拟机中并管理该备 份代理所位于的虚拟机。
15. 根据权利要求14所述的设备,还包括: 配置为在部署所述应用程序时,根据包括所述备份代理的基础镜像创建该应用程序所 在的所述多个虚拟机使得所述备份代理位于所述虚拟机之中并管理该备份代理所位于的 虚拟机的装置。
16. 根据权利要求15所述的设备,其中,所述基础镜像中还包括支持快照功能的文件 系统管理软件。
17. -种对应用程序进行恢复的设备,所述应用程序跨多个虚拟机运行,该设备包括: 第一组恢复脚本运行装置,配置为响应于接收到对所述应用程序进行恢复的指令,调 用并执行第一组恢复脚本,所述第一组恢复脚本用于在多个新创建的虚拟机上重新部署所 述应用程序并进入恢复准备状态; 恢复装置,配置为响应于所述第一组恢复脚本执行完毕,触发至少一个恢复代理执行 恢复操作,所述恢复操作包括获取该应用程序相关的备份数据并将所述备份数据拷贝至该 恢复代理所管理的新虚拟机中; 第二组恢复脚本运行装置,配置为响应于所述备份操作结束,调用并执行第二组恢复 脚本,所述第二组恢复脚本用于恢复所述重新部署的应用程序的运行。
18. 根据权利要求17所述的设备,其中,所述第一组恢复脚本用于: 删除该应用程序所在的所述多个原有虚拟机; 在所述多个新创建的虚拟机上重新部署所述应用程序时不启动所述重新部署的应用 程序。
19. 根据权利要求17所述的设备,其中,所述恢复代理的恢复操作包括: 删除所述多个新创建的虚拟机上所述备份数据相应位置处的内容; 根据用户指定的恢复策略拷贝所述备份数据到所述相应位置。
20. 根据权利要求17所述的设备,其中,所述第二组恢复脚本中包括: 根据所述多个新创建的虚拟机环境修改所述重新部署的应用程序的应用配置; 启动所述重新部署的应用程序。
【文档编号】G06F11/14GK104216793SQ201310215104
【公开日】2014年12月17日 申请日期:2013年5月31日 优先权日:2013年5月31日
【发明者】王远, 张剑鸣, 刘晓曦, 徐景民 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1