CN110741350A - 用于分布式计算***的备份和还原架构 - Google Patents

用于分布式计算***的备份和还原架构 Download PDF

Info

Publication number
CN110741350A
CN110741350A CN201880037292.2A CN201880037292A CN110741350A CN 110741350 A CN110741350 A CN 110741350A CN 201880037292 A CN201880037292 A CN 201880037292A CN 110741350 A CN110741350 A CN 110741350A
Authority
CN
China
Prior art keywords
backup
script
deployment
job
scripts
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.)
Granted
Application number
CN201880037292.2A
Other languages
English (en)
Other versions
CN110741350B (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.)
Pivotal Software Inc
Original Assignee
Pivo Tal Software Co
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 Pivo Tal Software Co filed Critical Pivo Tal Software Co
Publication of CN110741350A publication Critical patent/CN110741350A/zh
Application granted granted Critical
Publication of CN110741350B publication Critical patent/CN110741350B/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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • 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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency

Landscapes

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

Abstract

本文描述了用于备份和还原云计算平台上的部署的方法、***和计算机可读介质。云计算平台上的部署包括虚拟机的集合和相应的磁盘。部署可以包括被称为部署作业的多个子单元。各自的作业规范文件指定每个部署作业使用的各自的资源。所述资源包括各种脚本,所述脚本指定在备份之前、期间和之后要执行的动作。备份编排器在接收到对所述部署的备份请求后,将按脚本类型要求的预指定的顺序执行所述脚本。当执行特定类型的脚本时,如果在规范文件中指定了与该类型相对应的脚本,则用于每个部署作业的相应脚本执行。当特定类型的所有脚本完成执行时,具有下一种类型的脚本执行。因此,备份多个部署作业的操作被同步化且被编排。

Description

用于分布式计算***的备份和还原架构
技术领域
本说明书通常涉及云计算技术。
背景技术
在云计算中,通常以虚拟机的形式向用户提供一组共享的计算资源、存储资源和网络资源。多个物理计算设备,例如服务器场中的计算机,可以提供用于供应这些资源的服务平台。服务平台有时被称为基础设施即服务(IaaS)。部署***可以使用IaaS资源自动化并简化将应用的源代码或二进制代码表示形式转换成该应用的服务实例的过程。然后,最终用户可以在云计算平台上访问该服务实例。云计算平台的一个示例是部署在一组云设备上的Pivotal Cloud
Figure BDA0002303833910000011
软件产品。一个示例性部署***是
Figure BDA0002303833910000012
***,所述***在云计算平台上部署和管理服务实例。
发明内容
本说明书描述了用于备份和还原云计算平台上的部署的方法、***和计算机可读介质。云计算平台上的部署是一组虚拟机和相应的非暂时性存储设备(例如磁盘)。部署可以包括被称为部署作业的多个子单元。相应的作业规范文件指定由每个部署作业使用的相应资源。所述资源包括各种脚本,所述脚本指定要在备份或还原操作之前、期间和之后实行的动作。备份编排器(orchestrator)在接收到对部署的备份或还原请求后,将按脚本类型要求的预指定顺序为部署作业执行脚本。当执行特定类型的脚本时,将执行对应于该类型的每个部署作业的相应脚本。当特定类型的所有脚本完成执行时,将执行具有下一种类型的脚本。因此,多个部署作业的备份和还原过程被同步化且被编排。
可以实现本说明书中描述的主题的特定实施例以实现以下优点中的一个或多个。所公开的技术可以提供用于备份和还原大型分布式计算***上的大型部署的简单命令行接口。在并行运行多个作业的大型***上的备份和还原过程本质上很复杂。所公开的技术提供了一种架构,所述架构通过将备份和还原的动作委派给每个部署作业来简化复杂的过程。与用于备份和还原部署的常见技术相比,本说明书中描述的技术提供了更灵活的备份和还原。所公开的技术编排了多个作业的备份和还原操作,从而防止了由不同作业在不同时间锁定而致使的冲突,并且确保在进行备份之前***的子部件以一致状态被暂停。因此,与传统的备份***相比,所公开的技术更适合于具有多个子部件的大型部署。
本说明书中描述的主题的一个或多个实施例的细节在附图和以下描述中阐述。根据说明书、附图和权利要求书,本主题的其它特征、方面和优点将变得显而易见。
附图说明
图1是示出了实现备份和还原架构的示例性***的架构的框图。
图2是示出了备份和还原脚本的示例性预定义顺序的框图。
图3是示出了用于多个作业的备份和还原脚本的示例性编排的图解。
图4是示出了备份过程中脚本执行的示例性过程的流程图。
图5是示出了备份或还原部署的示例性过程的流程图。
在各种附图中,相同的附图标记和名称指示相同的元件。
具体实施方式
图1是示出了实现备份和还原架构的示例性***的架构的框图。备份编排器102从客户端设备106接收对部署110进行备份的备份请求104。备份编排器102包括执行一个或多个程序的一个或多个计算机,所述一个或多个程序实行备份或还原。备份请求104可以包括调用一个或多个程序的命令行输入。备份请求104可以显式地或隐式地识别部署110。例如,备份请求104可以指定一个或多个参数,例如部署的名称、部署的网络路径或二者。客户端设备106可以包括被配置成接收命令行输入的命令行接口(CLI)。备份操作包括将可以用于重新创建部署110的数据转储到非暂时性存储设备。还原操作包括根据先前转储的数据重新创建部署110。
部署110包括虚拟机(VM)和永久存储设备(例如,磁盘)的集合。VM由“stemcell”构建而成,其包括包装在IaaS特定程序包中的操作***映像,所述程序包包括一个或多个实用程序和配置文件。部署的VM基于部署清单112而填充有软件的特定发行版,并且由部署主管(例如,BOSH Director)进行管理。每个发行版都包括配置属性、配置模板、脚本、源代码和二进制工件(artifact)的版本化的集合。部署清单112是指定stemcell的版本、发行版以及每个发行版要使用的资源的文件。
部署110包括多个部署作业,部署作业在逻辑上被分组成实例组,例如实例组116和118。实例组116和118中的每一个可以包括跨越多个可用性区域的一个或多个实例,例如VM。实例组(例如,实例组116)中的每一个可以包括一个或多个部署作业,例如部署作业120和122。每个部署作业是表示长期运行的服务或短期运行的任务的部署的逻辑单元,也被称为差事(errand)。部署作业120和122中的每一个都在部署清单112中定义。部署作业120和122中的每一个可以包括元数据、一个或多个配置文件以及一个或多个脚本。作业规范文件(例如,BOSH规范文件)可以定义元数据,包括例如作业名称、作业描述、模板以及与所述作业相关联的脚本的位置。部署清单112可以为部署作业120和122中的每一个指定各自的作业名称、一个或多个各自的作业模板、各自的资源库、一个或多个各自的网络以及一个或多个备份或还原脚本。备份或还原脚本实行用于备份和还原操作的准备和清理动作。
例如,部署清单112指定第一部署作业120与第一备份前脚本、第一备份脚本和第一备份后脚本相关联。部署清单112指定第二部署作业122与第二备份前脚本、第二备份脚本和第二备份后脚本相关联。每个脚本都可以由发行版作者创建。每个脚本可以是常规的壳脚本(shell script)。在每个脚本中可以使用ERB(嵌入式RuBy)标签进行模板化。
每个脚本定义在备份或还原的每个特定阶段实行的相应操作。备份可以包括在多个阶段实行的多个任务。任务和相应的阶段可以包括:例如,备份前检查,用于确定特定的部署作业是否可备份,例如是否适合备份;备份前锁定,所述备份前锁定阻止部署作业被修改和失去同步;备份,所述备份转储(例如写入)部署作业的数据;备份后解锁,所述备份后解锁允许修改部署作业;以及备份后清理,所述备份后清理保存工件。还原的阶段可以包括:例如,还原前检查、还原锁定、还原、还原解锁、还原验证和还原清理。这些任务仅作为示例提供。每个阶段的任务都可以是用户可配置的,以实行发行版作者期望的任何动作。
对于第一部署作业120和第二部署作业122中的每一个,每个阶段可以对应于各自的脚本。每个部署作业不一定具有所有阶段的脚本。可以将对应于特定阶段的所有作业的脚本一起存储在目录(例如,/var/vcap/jobs/[job name]/bin/backup or/var/vcap/jobs/[job name]/bin/restore)中。发行版中用于部署作业的一个或多个规范文件可以为各阶段指定各自的目录。
在接收到备份请求104时,备份编排器102定位与部署作业120和122相关联的脚本并执行所述脚本。备份编排器102被配置成逐步执行脚本。例如,备份编排器102可以在执行备份前锁定脚本之前为所有部署作业执行备份前检查阶段的脚本。在每个阶段内,备份编排器102可能会或可能不会以特定顺序执行所有部署作业的脚本。脚本可以生成一个或多个工件124。每个工件124可以包括关于备份的信息,例如备份的版本。备份编排器102可以收集和存储工件,或者将工件提供给客户端设备106。备份编排器102可以生成对客户端设备106的响应以报告备份状态。
通常而言,备份编排器102提供用于指定和调用备份操作以及用于配置公共备份目的地的公共用户接口。为了方便起见,以上在备份方面总体上描述了备份编排器102的操作。还原过程与此类似。
图2是示出了备份和还原脚本的示例性预定义顺序的框图。备份编排器(例如,图1的备份编排器102)提供生命周期挂钩(lifecycle hook)供发行版作者使用。生命周期挂钩定义了用于备份和还原的脚本执行的各种阶段。所述阶段在部署作业之间同步化。发行版作者可以使用生命周期挂钩来协调多个部署作业的备份和还原操作。
对于备份脚本202,生命周期挂钩包括备份前检查204、备份前锁定206、备份208、备份后解锁210和备份后清理212的各阶段。对于还原脚本222,生命周期挂钩包括还原前检查224、还原前锁定226、还原228、还原后解锁230、还原验证232以及还原清理234的各阶段。备份编排器可以按照图2中指示的顺序线性地执行脚本。
在执行下一个阶段(例如,备份208)的脚本之前,备份编排器可以为所有作业顺次地执行某个阶段(例如,备份前锁定206)的所有脚本,以允许群集的部署中的一致性。例如,针对第一部署作业的备份前检查204将在针对第二部署作业的备份前检查204开始之前完成。备份编排器可以控制也可以不控制在部署作业之间调用特定阶段的各脚本的顺序。备份编排器确实控制不同阶段的脚本被调用的顺序。另外,在一些实施方式中,备份编排器可以实行部署间编排以维持跨部署的一致性。
部署作业可以具有实行备份前检查204的脚本,所述备份前检查204将***署作业是否可备份。该脚本允许部署作业检查是否可以起动备份操作。该脚本是可选的,并且如果不需要进行备份前检查,则不需要包括该脚本。例如,当备份MySQL时,用于备份前检查204的脚本可以确定作业是否可以被锁定。
为了创建用于备份前检查204的脚本,发行版作者可以将shell脚本以任何名称存储在部署的模板目录中。在部署作业规范文件的模板部分中,发行版作者可以将脚本名称和bin/pre-backup-check目录添加为键值对。作业规范文件可以与发行版相关联。下面在清单1中示出了用于备份前检查204脚本的示例性条目。
名称:a_node
模板:
pre-backup-check.erb:bin/pre-backup-check
清单1
用于备份前检查204的脚本使用退出代码来指示结果。例如,退出代码0(零)可以指示成功;任何其它退出代码都可以指示失败。成功退出指示部署作业是可备份的。在部署的任何节点上调用用于备份前锁定206的任何脚本之前,调用用于备份前检查204的脚本。可以跨部署中的各个作业以任何顺序调用用于备份前检查204的脚本。
用于备份前检查204的脚本可以生成呈标准输出流和标准错误流(例如,stdout流和stderr流)形式的日志。这些流将被捕获并发送到调用备份的客户端设备。备份编排器还可以将日志存储在各种目录中。例如,stdout流可以被附加到/var/vcap/sys/log/<job-name>/pre-backup-check.stdout.log文件中;stderr数据流可以被附加到/var/vcap/sys/log/<job-name>/pre-backup-check.stderr.log文件中。
部署作业可以具有用于备份前锁定206的脚本,所述备份前锁定206将锁定被确定为可备份的部署作业。该脚本允许部署作业锁定,以使得整个群集上备份保持一致。例如,在备份MySQL时,用于备份前锁定206的脚本可以锁定作业,以使得在备份期间不运行任何数据库迁移。
为了将备份锁定脚本添加到部署作业中,发行版作者可以在部署作业的模板目录中用任何名称创建脚本。部署作业规范文件的模板部分包括脚本名称和bin/backup-lock目录作为键值对。下面在清单2中示出了用于备份前锁定206的脚本的示例性条目。
名称:a_node
模板:
backup-lock.erb:bin/backup-lock
清单2
用于备份前锁定206的脚本使用退出代码来指示结果。例如,退出代码0(零)可以指示成功;任何其它退出代码都可以指示失败。成功退出指示部署作业被成功地锁定。在部署的任何节点上调用用于备份208的脚本中的任何一个之前,调用用于备份前锁定206的脚本。可以跨部署中的各个作业以任何顺序调用用于备份前锁定206的脚本。
用于备份前锁定206的脚本可以生成呈stdout流和stderr流形式的日志。这些流将被捕获并发送到调用备份的操作者。备份编排器还可以将日志存储在各种目录中。例如,stdout流可以被附加到/var/vcap/sys/log/<job-name>/pre-backup-lock.stdout.log文件中;stderr流可以被附加到/var/vcap/sys/log/<job-name>/pre-backup-lock.stderr.log文件中。
部署作业可以具有将部署作业的备份转储到指定目录(例如,由$BACKUP_DIRECTORY参数指定的目录)的备份208脚本。例如,在备份MySQL时,备份208脚本将调用数据转储命令,例如mysql dump。部署中至少有一个备份208脚本,以使得部署是可备份的。
为了将备份脚本添加到部署作业中,发行版作者可以在部署作业的模板目录中用任何名称创建脚本。部署作业规范文件的模板部分包括脚本名称和bin/backup目录作为键值对。下面在清单3中示出了用于备份208脚本的示例性条目。
名称:a_node
模板:
backup.erb:bin/backup
清单3
备份208脚本使用退出代码来指示结果。例如,退出代码0(零)可以指示成功;任何其它退出代码都可以指示失败。成功退出指示部署作业被成功备份。在部署的所有节点上调用所有备份前锁定206之后,调用备份208脚本。在部署的任何节点上调用备份后解锁210脚本中的任何一个之前,调用备份208脚本。可以跨部署中的各个作业以任何顺序调用备份208脚本。
备份208脚本可以生成呈stdout流和stderr流形式的日志。这些流将被捕获并发送到调用备份的操作者。备份编排器还可以将日志存储在各种目录中。例如,stdout流可以被附加到/var/vcap/sys/log/<job-name>/backup.stdout.log文件中;stderr流可以被附加到/var/vcap/sys/log/<job-name>/backup.stderr.log文件中。
备份后解锁210和备份后清理212脚本可以具有如上所公开的类似结构。同样,还原脚本也可以具有类似的结构。
图3是示出用于多个作业的备份和还原脚本的示例性编排的图解。示例性部署(例如,图1的部署110)可以具有多个实例组,例如第一实例组116和第二实例组118。第一实例组116包括第一部署作业120和第二部署作业122。第二实例组118包括第三部署作业304。
第一部署作业120与第一备份前检查脚本306、第一备份前锁定脚本308、第一备份脚本310、第一备份后解锁脚本312和第一备份后清理脚本314相关联。第二部署作业122与第二备份前检查脚本316、第二备份前锁定脚本318、第二备份脚本320、第二备份后解锁脚本322和第二备份后清理脚本324相关联。第三部署作业304与第三备份前检查脚本326、第三备份脚本330和第三备份后清理脚本334相关联。
备份编排器(例如,图1的备份编排器102)协调这些脚本306到334的执行。备份编排器在各阶段中执行脚本。在第一阶段340中,备份编排器执行第一备份前检查脚本306、第二备份前检查脚本316和第三备份前检查脚本326,不一定按该顺序执行。在执行了这些脚本之后,备份编排器移至第二阶段342。在第二阶段342中,备份编排器执行第一备份前锁定脚本308和第二备份前锁定脚本318。在示出的示例中,第三部署作业304不具有备份前锁定脚本。在执行这些脚本之后,备份编排器移至第三阶段344以执行备份脚本310、320和330。在执行备份脚本310、320和330之后,备份编排器移至第四阶段346以执行备份后解锁脚本312和322。最后,备份编排器移动到第五阶段348以执行备份后清理脚本414、324和334。每个移动都发生在前一阶段中的所有脚本完成执行之后。
为了方便起见,在图3中仅示出与对部署进行备份有关的脚本。与还原部署有关的脚本的执行可以被类似地分组和分阶段。
图4是示出备份中脚本执行的示例性过程400的流程图。过程400可以由包括一个或多个处理器(例如,图1的备份编排器102)的***来实行。
***接收(402)备份或还原部署的请求。所述请求可以通过提供部署的位置或名称来指定部署。***确定(404)是否存在指定的部署。响应于确定部署不存在,***退出(406)备份。响应于确定部署确实存在,***例如通过执行mkdir命令来创建(408)用于存储备份工件的本地目录。
***确定(410)本地目录是否被成功创建。响应于确定创建本地目录不成功,***退出(406)备份。响应于确定创建本地目录成功,***执行(412)用于部署中的部署作业的备份前脚本。备份前脚本可以包括用于备份前检查和备份前锁定的脚本。***可以以如参考图3所述的组和阶段执行备份前脚本。
***确定(414)执行备份前脚本是否成功。响应于确定执行备份前脚本成功,***执行(416)备份脚本以转储部署作业的数据。然后,***执行(418)备份后脚本。如果***确定执行备份前脚本不成功,则***可以跳过备份脚本并执行备份后脚本。备份后脚本可以包括用于备份后解锁和备份后清理的脚本。***可以以如参考图3所述的组和阶段执行备份后脚本。
***确定(420)备份成功。响应于确定备份成功,***排除(422)工件。将工件从已部署的实例中排除,以使得复制备份所花费的时间不包括在锁定作业的时间中。然后,***从实例中移除(424)备份。移除备份包括将备份的副本从部署的实例中删除,因为备份已被复制到操作者VM。响应于确定备份不成功,***跳过排除工件。***从实例中移除(424)备份。然后***退出(406)备份。
过程400是备份部署的过程。还原部署的过程可以包括类似的操作。
图5是示出备份或还原部署的示例性过程500的流程图。过程500可以由包括一个或多个处理器(例如,图1的备份编排器102)的***实行。
***从客户端设备接收(502)备份或还原部署的请求。部署包括一个或多个部署作业。在虚拟机的集合和一个或多个非暂时性存储设备(例如,永久性磁盘)的集合上实现所述部署。每个部署作业在各自的虚拟机中执行。每个部署作业都在部署清单中定义。所述请求可以是启动备份编排器程序的命令行输入。所述请求与识别所述部署的部署标识符相关联。部署标识符可以指定部署的名称或位置。部署标识符可以是请求的参数,或者与发出请求的客户端设备隐式地相关联。
***基于部署标识符来确定(504)存储作业特定的脚本的脚本位置。确定脚本位置包括识别如作业规范文件中指定的(例如,如上面的清单1到3中示出的条目)脚本位置。每个作业特定的脚本根据部署清单和一个或多个作业规范文件与各自的部署作业相关联。部署清单和一个或多个作业规范文件可以指定部署的配置参数。
对于每个作业,部署清单和一个或多个作业规范文件可以指定各自的备份前脚本(例如,备份前检查脚本和备份前锁定脚本);各自的备份脚本;一个或多个各自的备份后脚本,例如备份后解锁脚本和备份后清理脚本;一个或多个各自的还原前脚本,例如还原前检查脚本和还原前锁定脚本;各自的还原脚本;或一个或多个各自的还原后脚本,例如还原后解锁脚本、还原后验证脚本和还原后清理脚本中的一个或多个。脚本的内容以及由脚本实行的动作是用户可定义的,并且可以由发行版作者进行编辑。因此,***提供了灵活且可适应不同部署的不同需求的架构。部署清单和一个或多个作业规范文件可以通过指定各自的脚本的各自的位置(例如,目录或其它形式的访问路径)来指定各自的脚本。
***以预定的顺序执行(506)存储在脚本位置处的作业特定的脚本。在执行期间,***会为每个部署作业执行备份前脚本或还原前脚本。然后,***为每个部署作业执行备份脚本或还原脚本。然后,***为每个部署作业执行备份后脚本或还原后脚本。以预定的顺序执行存储在脚本位置处的作业特定的脚本包括:按脚本类型顺次地执行作业特定的脚本,每个脚本类型对应于一个阶段。在执行期间,第二类型的脚本在第一类型的脚本对于所有部署作业完成之后执行。对于每个脚本类型,具有该脚本类型的作业特定的脚本针对每个部署作业顺次地执行。特别地,例如,上面参考图3描述了执行顺序。作业特定的脚本备份一个或多个部署作业或还原一个或多个部署作业。
***向客户端设备提供(508)状态报告作为对请求的响应,所述状态报告指示备份或还原的状态。所述状态报告可以是标准的输入/输出和错误流,或者可以存储在指定的位置,并且在发生新的备份和还原时被附加。状态可以包括对于成功的代码或对于失败的错误代码。
可以在数字电子电路中,在有形地体现的计算机软件或固件中,在计算机硬件(包括在本说明书中公开的结构以及其结构等效形式)中或它们的一个或多个的组合中来实现本说明书中所描述的主题和功能操作的实施例。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即在有形的非暂时性程序载体上编码的计算机程序指令的一个或多个模块,以由数据处理装置执行,或控制数据处理装置的操作。替选地或另外,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,所述信号被生成以对信息进行编码从而传输到合适的接收器装置以由数据处理装置执行。所述计算机存储介质可以是机器可读存储设备、机器可读存储衬底、随机或串行访问存储器设备或它们中的一个或多个的组合。
术语“数据处理装置”是指数据处理硬件,并且涵盖用于处理数据的所有类别的装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。所述装置还可以是或进一步包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除硬件之外,所述装置可以可选地包括为计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理***、操作***或它们中的一个或多个的组合的代码。
也可以被称为或描述为程序、软件、软件应用、模块、软件模块、脚本或代码的计算机程序可以以任何形式的编程语言来编写,所述编程语言包括编译或解释性语言,或声明性或程序性语言;并且可以以任何形式进行部署,包括部署为独立程序或部署为适合在计算环境中使用的模块、部件、子例程或其它单元。计算机程序可以但不必对应于文件***中的文件。程序可以存储在保存其它程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中,存储在专用于所讨论程序的单个文件中,或存储在多个协调文件(例如,存储一个或多个模块、子程序或代码的各部分的文件)中。可以部署计算机程序以在位于一个站点上或分布在多个站点上并通过通信网络互连的一个计算机或多个计算机上执行。
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机实行,以通过对输入数据进行操作并生成输出来实行各功能。过程和逻辑流程还可以由专用逻辑电路实行,并且装置也可以实现为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
举例来说,适合于执行计算机程序的计算机包括,可以基于通用或专用微处理器或二者,或者包括任何其它类别的中央处理单元。通常而言,中央处理单元将从只读存储器或随机存取存储器或二者接收指令和数据。计算机的基本元件是用于实行或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常而言,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如,磁盘、磁光盘或光盘,或计算机还将被可操作地耦合以从所述一个或多个大容量存储设备接收数据,或将数据传递到所述一个或多个大容量存储设备,或二者。然而,计算机不必具有此类设备。此外,计算机可以被嵌入到另一个设备中,所述另一设备例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位***(GPS)接收器或便携式存储设备(例如,通用串行总线(USB)闪存盘)等。
适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,包括例如半导体存储设备(例如EPROM、EEPROM)和闪速存储设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD-ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实施例可以在具有用于将信息显示给用户的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)以及键盘和指向设备(例如,鼠标或轨迹球)的计算机上实现,用户可以通过所述键盘和轨迹球向计算机提供输入。其它类别的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档以及从所述设备接收文档来与用户进行交互;例如通过响应于从web浏览器收到的请求而将网页发送到用户的客户端设备上的web浏览器。
本说明书中描述的主题的实施例可以在计算***中实现,所述计算***包括后端部件(例如,如数据服务器)或包括中间件部件(例如,应用服务器)或包括前端部件(例如,客户端计算机,所述客户端计算机具有用户可以用来与本说明书中描述的主题的实施方式交互的图形用户接口或web浏览器)或者包括一个或多个这种后端部件、中间件部件或前端部件的任何组合。***的部件可以通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如互联网。
所述计算***可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是通过在各自的计算机上运行并且彼此具有客户端-服务器关系的计算机程序产生的。
虽然本说明书包含许多特定的实施方式细节,但是这些细节不应被解释为对任何发明的范围或可以要求保护的范围的限制,而是对可能特定于特定发明的特定实施例的特征的描述。在单独的实施例的上下文中在本说明书中描述的某些特征也可以在单个实施例中以组合形式实现。相反,在单个实施例的上下文中描述的各种特征也可以分别在多个实施例中或以任何合适的子组合来实现。此外,虽然上面可以将特征描述为以某些组合的形式起作用并且甚至最初是这样要求保护的,但是在某些情况下可以从组合中切离要求保护的组合的一个或多个特征,并且要求保护的组合可以涉及子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了各操作,但是这不应理解为要求以示出的特定顺序或以相继顺序执行这些操作,或者执行所有示出的操作以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种***模块和部件的分离不应被理解为在所有实施例中都需要这种分离,并且应当理解,所描述的程序部件和***通常可以一起集成在单个软件产品中或打包成多个软件产品。
因此,已经描述了主题的特定实施例。其它实施例也在以下权利要求的范围内。例如,在科学论文的上下文中描述所述主题。所述主题可以应用于将深度方面添加到搜索的其它索引工作。在一些情况下,可以以不同的顺序执行权利要求中阐述的动作,并且仍然实现期望的结果。另外,附图中描绘的过程不一定需要示出的特定顺序或相继顺序来实现期望的结果。在一些实施方式中,多任务和并行处理可能是有利的。

Claims (10)

1.一种方法,包括:
由安装在一个或多个计算机上的备份编排器从客户端设备接收对于备份或还原包括一个或多个部署作业的部署的请求,所述请求与识别所述部署的部署标识符相关联;
由所述备份编排器并且基于所述部署标识符来确定存储作业特定的脚本的脚本位置,每个作业特定的脚本根据指定所述部署的配置参数的规范文件与各自的部署作业相关联;
以预定的顺序执行存储在所述脚本位置处的所述作业特定的脚本,包括执行用于每个部署作业的备份前脚本或还原前脚本,然后执行用于每个部署作业的备份脚本或还原脚本,然后执行用于每个部署作业的备份后脚本或还原后脚本,其中所述作业特定的脚本备份所述一个或多个部署作业或还原所述一个或多个部署作业;以及
由所述备份编排器向所述客户端设备提供状态报告作为对所述请求的响应,所述状态报告指示所述备份或所述还原的状态。
2.根据权利要求1所述的方法,其中:
在虚拟机的集合和永久性磁盘的集合上实现所述部署,
每个部署作业在各自的虚拟机中执行,以及
在所述规范文件中定义每个部署作业。
3.根据权利要求1至2中的任一项所述的方法,其中,确定所述脚本位置包括:识别所述规范文件中指定的所述脚本位置。
4.根据权利要求1至3中的任一项所述的方法,其中,所述规范文件为每个作业定义以下中的一个或多个:
各自的备份前脚本;
各自的备份脚本;
各自的备份后脚本;
各自的还原前脚本;
各自的还原脚本;或
各自的还原后脚本。
5.根据权利要求4所述的方法,其中,所述规范文件通过指定所述各自的脚本的各自的位置来定义所述各自的脚本。
6.根据权利要求1至5中的任一项所述的方法,其中:
所述备份前脚本或所述还原前脚本包括用于锁定一个或多个作业的脚本,以及
所述备份后脚本或所述还原后脚本包括用于解锁一个或多个作业的脚本。
7.根据权利要求1至6中的任一项所述的方法,其中,以所述预定的顺序执行存储在所述脚本位置处的所述作业特定的脚本包括:按脚本类型顺次地执行所述作业特定的脚本,其中第二类型的脚本在第一类型的脚本对于所有部署作业完成之后执行。
8.根据权利要求7所述的方法,其中,对于每个脚本类型,具有该脚本类型的所述作业特定的脚本针对每个部署作业顺次地执行。
9.一种***,所述***包括:
一个或多个计算机和存储指令的一个或多个存储设备,所述指令当由所述一个或多个计算机执行时可操作以致使所述一个或多个计算机实行根据权利要求1至8中的任一项所述的方法。
10.一种编码有计算机程序的计算机存储介质,所述程序包括指令,所述指令当由数据处理装置执行时可操作以致使所述数据处理装置实行根据权利要求1至8中的任一项所述的方法。
CN201880037292.2A 2017-05-05 2018-04-27 用于分布式计算***的备份和还原架构 Active CN110741350B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/588,529 US10379968B2 (en) 2017-05-05 2017-05-05 Backup and restore framework for distributed computing systems
US15/588,529 2017-05-05
PCT/US2018/029989 WO2018204201A1 (en) 2017-05-05 2018-04-27 Backup and restore framework for distributed computing systems

Publications (2)

Publication Number Publication Date
CN110741350A true CN110741350A (zh) 2020-01-31
CN110741350B CN110741350B (zh) 2023-12-22

Family

ID=62555114

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880037292.2A Active CN110741350B (zh) 2017-05-05 2018-04-27 用于分布式计算***的备份和还原架构

Country Status (6)

Country Link
US (1) US10379968B2 (zh)
EP (1) EP3619607A1 (zh)
JP (1) JP6968903B2 (zh)
CN (1) CN110741350B (zh)
AU (1) AU2018261579B2 (zh)
WO (1) WO2018204201A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111651303A (zh) * 2020-07-07 2020-09-11 南京云信达科技有限公司 一种分布式架构的数据库在线备份和恢复方法技术领域

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11075925B2 (en) 2018-01-31 2021-07-27 EMC IP Holding Company LLC System and method to enable component inventory and compliance in the platform
US10693722B2 (en) 2018-03-28 2020-06-23 Dell Products L.P. Agentless method to bring solution and cluster awareness into infrastructure and support management portals
US10754708B2 (en) * 2018-03-28 2020-08-25 EMC IP Holding Company LLC Orchestrator and console agnostic method to deploy infrastructure through self-describing deployment templates
US10802920B2 (en) * 2018-04-18 2020-10-13 Pivotal Software, Inc. Backup and restore validation
US10795756B2 (en) 2018-04-24 2020-10-06 EMC IP Holding Company LLC System and method to predictively service and support the solution
US11086738B2 (en) 2018-04-24 2021-08-10 EMC IP Holding Company LLC System and method to automate solution level contextual support
US11055078B2 (en) * 2018-09-28 2021-07-06 Atlassian Pty Ltd. Systems and methods for deploying software products to environments
US11599422B2 (en) 2018-10-16 2023-03-07 EMC IP Holding Company LLC System and method for device independent backup in distributed system
US11573863B2 (en) * 2019-04-08 2023-02-07 Kyndryl, Inc. Virtual machine backup and restore coordinator
US10862761B2 (en) 2019-04-29 2020-12-08 EMC IP Holding Company LLC System and method for management of distributed systems
US11188362B2 (en) * 2019-05-29 2021-11-30 Red Hat, Inc. Generating a command line interface for projects based on configuration management technologies
US11301557B2 (en) 2019-07-19 2022-04-12 Dell Products L.P. System and method for data processing device management
US11403200B2 (en) * 2020-06-11 2022-08-02 Cisco Technology, Inc. Provisioning resources for monitoring hosts based on defined functionalities of hosts
US11449395B2 (en) 2020-07-01 2022-09-20 Oracle International Corporation Backup and restore of distributed environments
CN113553152A (zh) * 2021-07-20 2021-10-26 中国工商银行股份有限公司 作业调度方法及装置
US11899538B2 (en) 2021-12-27 2024-02-13 Dell Products, L.P. Storage integrated differential block based backup
US11899540B2 (en) 2021-12-27 2024-02-13 Dell Products, L.P. Regenerating a chain of backups
US11880283B2 (en) * 2021-12-28 2024-01-23 Dell Products L.P. Backup copy validation as a workflow
US11934275B2 (en) 2021-12-28 2024-03-19 Dell Products L.P. Backup copy validation as an embedded object
US12007851B2 (en) 2021-12-27 2024-06-11 Dell Products L.P. Differential checksum validation
US11782799B2 (en) 2021-12-27 2023-10-10 Dell Products L.P. Using bitmaps to validate data
CN114880386B (zh) * 2022-04-06 2023-04-07 北京宇信科技集团股份有限公司 一种任务调度平台及任务调度方法
CN116662079B (zh) * 2023-07-31 2023-09-29 明阳时创(北京)科技有限公司 一种快速备份与复原ubuntu操作***的方法及***

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050278397A1 (en) * 2004-06-02 2005-12-15 Clark Kevin J Method and apparatus for automated redundant data storage of data files maintained in diverse file infrastructures
US20080276123A1 (en) * 2007-05-03 2008-11-06 Microsoft Corporation Automation of bare metal recoveries
US20120216073A1 (en) * 2011-02-18 2012-08-23 Ab Initio Technology Llc Restarting Processes
US20120266156A1 (en) * 2011-04-12 2012-10-18 Vmware, Inc. Release lifecycle management system for a multi-node application
CN103092749A (zh) * 2011-11-08 2013-05-08 苏州中茵泰格科技有限公司 测试环境部署的方法及***
US20130232498A1 (en) * 2012-03-02 2013-09-05 Vmware, Inc. System to generate a deployment plan for a cloud infrastructure according to logical, multi-tier application blueprint
US20130232463A1 (en) * 2012-03-02 2013-09-05 Vmware, Inc. System and method for customizing a deployment plan for a multi-tier application in a cloud infrastructure
US20140196044A1 (en) * 2013-01-07 2014-07-10 Wal-Mart Stores, Inc. SYSTEM AND METHOD FOR INCREASING THROUGHPUT OF A PaaS SYSTEM
US8914329B1 (en) * 2012-12-24 2014-12-16 Emc Corporation Automated time-based testing method for distributed system
CN104216793A (zh) * 2013-05-31 2014-12-17 国际商业机器公司 应用程序备份、恢复的方法及设备
CN105100127A (zh) * 2014-04-22 2015-11-25 国际商业机器公司 用于验证在云计算环境中的应用部署拓扑的设备和方法
CN106462484A (zh) * 2014-07-01 2017-02-22 微软技术许可有限责任公司 云中的分布式流处理
US20170116013A1 (en) * 2015-10-26 2017-04-27 International Business Machines Corporation Deployment of instances amid configuration changes

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7143121B2 (en) * 2003-06-27 2006-11-28 Hewlett-Packard Development Company, L.P. Method and system for archiving and restoring data from an operations center in a utility data center
US8472923B2 (en) * 2005-03-10 2013-06-25 At&T Intellectual Property Ii, L.P. Monitoring mobile phone communications
US9378011B2 (en) * 2009-03-19 2016-06-28 Microsoft Technology Licensing, Llc Network application versioning
US8316349B2 (en) * 2010-05-27 2012-11-20 Microsoft Corporation Deployment script generation and execution
JP6358042B2 (ja) * 2014-10-21 2018-07-18 富士通株式会社 情報処理システム、制御装置および情報処理システムの制御方法
CN105897805B (zh) * 2015-01-04 2019-12-27 伊姆西公司 对多层架构的数据中心的资源进行跨层调度的方法和装置
US9836297B2 (en) * 2015-08-21 2017-12-05 Tata Consultancy Services Limited Computer implemented method and system for automatically deploying and versioning scripts in a computing environment
US10831463B2 (en) * 2017-03-08 2020-11-10 International Business Machines Corporation Intelligent software deployment on an IaaS platform

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050278397A1 (en) * 2004-06-02 2005-12-15 Clark Kevin J Method and apparatus for automated redundant data storage of data files maintained in diverse file infrastructures
US20080276123A1 (en) * 2007-05-03 2008-11-06 Microsoft Corporation Automation of bare metal recoveries
CN103370693A (zh) * 2011-02-18 2013-10-23 起元技术有限责任公司 重启进程
US20120216073A1 (en) * 2011-02-18 2012-08-23 Ab Initio Technology Llc Restarting Processes
US20120266156A1 (en) * 2011-04-12 2012-10-18 Vmware, Inc. Release lifecycle management system for a multi-node application
CN103608773A (zh) * 2011-04-12 2014-02-26 威睿公司 用于多节点应用的部署***
CN103092749A (zh) * 2011-11-08 2013-05-08 苏州中茵泰格科技有限公司 测试环境部署的方法及***
US20130232463A1 (en) * 2012-03-02 2013-09-05 Vmware, Inc. System and method for customizing a deployment plan for a multi-tier application in a cloud infrastructure
US20130232498A1 (en) * 2012-03-02 2013-09-05 Vmware, Inc. System to generate a deployment plan for a cloud infrastructure according to logical, multi-tier application blueprint
US8914329B1 (en) * 2012-12-24 2014-12-16 Emc Corporation Automated time-based testing method for distributed system
US20140196044A1 (en) * 2013-01-07 2014-07-10 Wal-Mart Stores, Inc. SYSTEM AND METHOD FOR INCREASING THROUGHPUT OF A PaaS SYSTEM
CN104216793A (zh) * 2013-05-31 2014-12-17 国际商业机器公司 应用程序备份、恢复的方法及设备
CN105100127A (zh) * 2014-04-22 2015-11-25 国际商业机器公司 用于验证在云计算环境中的应用部署拓扑的设备和方法
CN106462484A (zh) * 2014-07-01 2017-02-22 微软技术许可有限责任公司 云中的分布式流处理
US20170116013A1 (en) * 2015-10-26 2017-04-27 International Business Machines Corporation Deployment of instances amid configuration changes

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111651303A (zh) * 2020-07-07 2020-09-11 南京云信达科技有限公司 一种分布式架构的数据库在线备份和恢复方法技术领域

Also Published As

Publication number Publication date
AU2018261579A1 (en) 2019-11-28
AU2018261579B2 (en) 2020-11-12
CN110741350B (zh) 2023-12-22
EP3619607A1 (en) 2020-03-11
JP2020518926A (ja) 2020-06-25
US20180322019A1 (en) 2018-11-08
WO2018204201A1 (en) 2018-11-08
JP6968903B2 (ja) 2021-11-17
US10379968B2 (en) 2019-08-13

Similar Documents

Publication Publication Date Title
CN110741350A (zh) 用于分布式计算***的备份和还原架构
CN110941446B (zh) 基于多环境离线任务的版本发布方法及装置
US11061884B2 (en) Method and system to accelerate transaction commit using non-volatile memory
US9858157B2 (en) Intelligent restore-container service offering for backup validation testing and business resiliency
US8645323B2 (en) Large volume data replication using job replication
US8473783B2 (en) Fault tolerance in distributed systems
US7698391B2 (en) Performing a provisioning operation associated with a software application on a subset of the nodes on which the software application is to operate
US11836152B2 (en) Continuous replication and granular application level replication
US10853189B2 (en) Image restore from incremental backup
US11397569B2 (en) Deploying micro frontends to different clusters from a single repository
US8938490B2 (en) System and method for accessing mainframe system automation from a process automation application
US20100281241A1 (en) Method and system for synchronizing inclusive decision branches
CN110494849B (zh) 用于确定跨平台应用迁移的成功的***和方法
US9805038B2 (en) Efficient conflict resolution among stateless processes
US20200272454A1 (en) Software builds using a cloud system
CN115220876A (zh) 虚拟资源创建方法、装置、程序产品、介质及电子设备
CN108139947B (zh) 将web用户接口应用与运行时引擎隔离的***和方法
US9766940B2 (en) Enabling dynamic job configuration in mapreduce
US11068352B2 (en) Automatic disaster recovery mechanism for file-based version control system using lightweight backups
CN117389713B (zh) 存储***应用业务数据迁移方法、装置、设备及介质
EP4036720B1 (en) Hash optimized composition cache for isolated execution environments
CN116360800B (zh) 一种代码分支环境的部署方法、装置及电子设备
CN116893834B (zh) 负载更新方法、装置、***、电子设备及可读存储介质
US20230123568A1 (en) Dynamically performing a storage service job workflow

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
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: California, USA

Patentee after: Pivotal Software, Inc.

Country or region after: U.S.A.

Address before: California, USA

Patentee before: PIVOTAL SOFTWARE, Inc.

Country or region before: U.S.A.