JP6968903B2 - 分散コンピューティングシステムのための、バックアップおよび復元フレームワーク - Google Patents

分散コンピューティングシステムのための、バックアップおよび復元フレームワーク Download PDF

Info

Publication number
JP6968903B2
JP6968903B2 JP2019560731A JP2019560731A JP6968903B2 JP 6968903 B2 JP6968903 B2 JP 6968903B2 JP 2019560731 A JP2019560731 A JP 2019560731A JP 2019560731 A JP2019560731 A JP 2019560731A JP 6968903 B2 JP6968903 B2 JP 6968903B2
Authority
JP
Japan
Prior art keywords
script
backup
deployment
job
restore
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
JP2019560731A
Other languages
English (en)
Other versions
JP2020518926A (ja
Inventor
テレーズ・ルイーズ・ストーウェル
カリヤン・チャクラヴァルシィー・デュダラ
コリン・マイケル・ハンフリーズ
サイモン・ジェームズ・ジョーンズ
ジャティン・ナイク
アルヴァロ・ペレス−シャーリー
ヘンリー・アーサー・ジェームズ・スタンリー
Original Assignee
ピヴォタル・ソフトウェア・インコーポレーテッド
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 ピヴォタル・ソフトウェア・インコーポレーテッド filed Critical ピヴォタル・ソフトウェア・インコーポレーテッド
Publication of JP2020518926A publication Critical patent/JP2020518926A/ja
Application granted granted Critical
Publication of JP6968903B2 publication Critical patent/JP6968903B2/ja
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
    • 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
    • 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
    • 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)

Description

本明細書は一般に、クラウドコンピューティング技術に関する。
クラウドコンピューティングでは、一式の共有コンピューティングリソース、記憶リソース、およびネットワークリソースを、通常、仮想マシンの形態でユーザにプロビジョニングできる。複数の物理的コンピューティング機器、例えば、サーバファーム内のコンピュータは、これらのリソースをプロビジョニングするためのサービスプラットフォームを提供できる。サービスプラットフォームは、サービスとしてのインフラストラクチャ(IaaS)と呼ばれることもある。デプロイメントシステムは、アプリケーションのソースコードまたはバイナリコード表現をIaaSリソースを使用するそのアプリケーションのサービスインスタンスへ変換するのを自動化および簡素化することができる。それにより、エンドユーザは、クラウドコンピューティングプラットフォーム上のサービスインスタンスにアクセスできる。クラウドコンピューティングプラットフォームの例には、一式のクラウド機器上にデプロイされるPivotal Cloud Foundry(登録商標)ソフトウェア製品がある。デプロイメントシステムの例には、クラウドコンピューティングプラットフォーム上のサービスインスタンスをデプロイおよび管理するBOSH(登録商標)システムがある。
本明細書は、クラウドコンピューティングプラットフォーム上のデプロイメントを、バックアップするおよび復元するための、方法、システム、およびコンピュータ読み取り可能な媒体について説明する。クラウドコンピューティングプラットフォーム上のデプロイメントとは、一式の仮想マシンおよび対応する非一時的記憶デバイス(例えば、ディスク)のことである。デプロイメントには、デプロイメントジョブと呼ばれる複数のサブユニットを含んでもよい。それぞれのジョブ仕様ファイルは、各デプロイメントジョブによって使用されるそれぞれのリソースを指定する。リソースには、バックアップまたは復元動作の前、動作中、後に行われる作動を指定する様々なスクリプトが含まれる。バックアップオーケストレータは、デプロイメントに対するバックアップまたは復元要求を受け取ると、スクリプトタイプごとに整列された予め指定された順番でスクリプトをそのデプロイメントジョブのために実行する。特定のタイプのスクリプトが実行される際、そのタイプに対応する各デプロイメントジョブのための、対応するスクリプトが実行される。特定のタイプのすべてのスクリプトが実行し終わると、次のタイプを有するスクリプトが実行される。このようにして、複数のデプロイメントジョブのバックアップおよび復元プロセスは、同期されオーケストレーションされる。
本明細書で説明される主題の特定の実施形態は、以下の1つまたは複数の利点を実現するために実装され得る。開示される技術は、大規模分散コンピューティングシステム上の大規模なデプロイメントをバックアップするおよび復元するための簡単なコマンドラインインタフェースを提供できる。複数のジョブを並行して実行している大規模なシステムにおけるバックアップおよび復元プロセスは、本質的に複雑である。開示される技術は、バックアップおよび復元の作動を各デプロイメントジョブに委託することによって複雑なプロセスを簡素化するフレームワークを提供する。バックアップおよび復元のデプロイメントのための従来型の技術と比較して、本明細書で説明される技術は、より柔軟性の高いバックアップおよび復元を提供する。本開示の技術は、複数のジョブのバックアップおよび復元動作をオーケストレーションすることによって、異なるジョブが異なる時間にロックアップすることから生じる競合を防ぎ、システムのサブコンポーネントが、バックアップが行われる前に安定した状態で確実に一時停止するようにする。したがって、従来型のバックアップシステムと比較して、本開示の技術は、複数のサブコンポーネントを有する大規模なデプロイメントに、より適している。
本明細書で説明される主題の1つまたは複数の実施形態の詳細は、下記の添付の図面および説明に記載される。他の特徴、態様および主題の利点は、説明、図面および特許請求の範囲から明らかになろう。
バックアップおよび復元フレームワークを実装する例示的システムのアーキテクチャを示すブロック図である。 バックアップおよび復元スクリプトの予め定義された順序の例を示すブロック図である。 複数のジョブのためのバックアップおよび復元スクリプトのオーケストレーションの例を示す図である。 バックアッププロセスにおけるスクリプトの実行プロセスの例を示すフローチャートである。 デプロイメントをバックアップするまたは復元するプロセスの例を示すフローチャートである。
様々な図面中の同様の参照番号および呼称は、同様の要素を示す。
図1は、バックアップおよび復元フレームワークを実装する例示的システムのアーキテクチャを示すブロック図である。バックアップオーケストレータ102は、クライアントデバイス106からデプロイメント110をバックアップするためのバックアップ要求104を受け取る。バックアップオーケストレータ102は、バックアップまたは復元を行う1つまたは複数のプログラムを実行する1つまたは複数のコンピュータを含む。バックアップ要求104は、1つまたは複数のプログラムを呼び出すコマンドライン入力を含み得る。バックアップ要求104は、デプロイメント110を明示的または暗黙的に識別できる。例えば、バックアップ要求104は、1つまたは複数のパラメータ、例えば、デプロイメントの名前、デプロイメントのネットワークパス、または両方を指定することができる。クライアントデバイス106は、コマンドライン入力を受け取るように構成されたコマンドラインインタフェース(CLI)を含み得る。バックアップ動作は、デプロイメント110を再作成するために使用され得るデータを非一時的記憶デバイスにダンプすることを含む。復元動作は以前ダンプされたデータからデプロイメント110を再作成することを含む。
デプロイメント110は、仮想マシン(VM)およびディスクなどの永続的記憶デバイスの集合を含む。VMは、1つまたは複数のユーティリティおよび構成ファイルを含むIaaS特定のパッケージでラップされたオペレーティングシステムイメージを含むstemcellにより構築される。デプロイメントのVMは、デプロイメントのマニフェスト112に基づいたソフトウェアの特定のリリースによって事前設定(populate)され、デプロイメントディレクタ、例えば、BOSH Directorによって管理される。各リリースには、構成プロパティ、構成テンプレート、スクリプト、ソースコードおよびバイナリ加工物のバージョン化された集合を含む。デプロイメントマニフェスト112は、stemcell、リリースおよび各リリースによって使用されるリソースのバージョンを指定するファイルである。
デプロイメント110は、インスタンスグループ、例えば、インスタンスグループ116および118内に論理的にグループ化された複数のデプロイメントジョブを含む。インスタンスグループ116および118のそれぞれは、複数のアベイラビリティーゾーン(availability zone)にわたって広がる1つまたは複数のインスタンス、例えばVM、を含み得る。インスタンスグループのそれぞれ、例えば、インスタンスグループ116は、1つまたは複数のデプロイメントジョブ、例えば、デプロイメントジョブ120および122を含み得る。各デプロイメントジョブとは、長期のサービス、またはエランド(errand)とも呼ばれる短期のタスクを表すデプロイメントの論理ユニットである。デプロイメントジョブ120および122のそれぞれは、デプロイメントマニフェスト112で定義される。デプロイメントジョブ120および122のそれぞれは、メタデータ、1つまたは複数の構成ファイル、および1つまたは複数のスクリプトを含み得る。ジョブ仕様ファイル、例えば、BOSHのspecファイル(BOSH spec file)は、そのジョブに関連するジョブ名、ジョブ記述、テンプレートおよびスクリプトの場所などを含む、メタデータを定義できる。デプロイメントマニフェスト112は、デプロイメントジョブ120および122のそれぞれに対し、それぞれのジョブ名、1つまたは複数のそれぞれのジョブテンプレート、それぞれのリソースプール、1つまたは複数のそれぞれのネットワーク、および1つまたは複数のバックアップスクリプトまたは復元スクリプトを指定できる。バックアップスクリプトまたは復元スクリプトは、バックアップまたは復元動作のための準備およびクリーンアップの作動を行う。
例えば、デプロイメントマニフェスト112は、第1のデプロイメントジョブ120が、第1のプレバックアップ(pre-backup)スクリプト、第1のバックアップスクリプト、および第1のポストバックアップ(post-backup)スクリプトに関連付けられるよう指定する。デプロイメントマニフェスト112は、第2のデプロイメントジョブ122が、第2のプレバックアップスクリプト、第2のバックアップスクリプト、および第2のポストバックアップスクリプトに関連付けられるよう指定する。各スクリプトは、リリース作成者(release author)が作成できる。各スクリプトは、通常のシェルスクリプトであってよい。ERB(埋め込みRuby(Embedded Ruby))タグは、各スクリプトでテンプレート用に使用してもよい。
各スクリプトは、バックアップまたは復元の各々の具体的な段階で行われるそれぞれの動作を定義する。バックアップは、複数の段階で行われる複数のタスクを含み得る。タスクおよびそれに対応する段階には、例えば、特定のデプロイメントジョブがバックアップ可能である(例えば、バックアップに適している)かどうかを判定するためのプレバックアップチェック、デプロイメントジョブが修正され同期を外れることを妨げるプレバックアップロック(pre-backup lock)、デプロイメントジョブのデータをダンプする(例えば、書き込む)バックアップ、デプロイメントジョブが修正されるのを可能にするポストバックアップロック解除(post-backup unlock)、および加工物(artifact)を保存するポストバックアップクリーンアップを含んでよい。復元の段階には、例えば、プレ復元(pre-restore)チェック、復元ロック、復元、復元ロック解除、復元検証、および復元クリーンアップを含んでよい。これらのタスクは、例として提供される。各段階のタスクは、リリース作成者が望む任意の作動を行えるよう、ユーザによって設定可能(configurable)である。
第1のデプロイメントジョブ120および第2のデプロイメントジョブ122のそれぞれについて、各段階は、それぞれのスクリプトに対応し得る。各デプロイメントジョブは、必ずしもすべての段階のためのスクリプトを有する必要はない。特定の段階に対応する全ジョブのためのスクリプトは、1つのディレクトリ、例えば、/var/vcap/jobs/[job name]/bin/backupまたは/var/vcap/jobs/[job name]/bin/restoreに一緒に保存することができる。リリース内のデプロイメントジョブのための1つまたは複数の仕様ファイルは、各段階のためのそれぞれのディレクトリを指定できる。
バックアップ要求104を受け取ると、バックアップオーケストレータ102は、デプロイメントジョブ120および122に関連するスクリプトを探し当て(locate)、そのスクリプトを実行する。バックアップオーケストレータ102は、スクリプトを段階ごとに実行するように構成される。例えば、バックアップオーケストレータ102は、プレバックアップロックスクリプトを実行する前に、すべてのデプロイメントジョブのためのプレバックアップチェック段階のスクリプトを実行できる。各段階内で、バックアップオーケストレータ102は、すべてのデプロイメントジョブのためのスクリプトを特定の順序で実行しても、特定の順序で実行しなくてもよい。スクリプトは、1つまたは複数の加工物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、のすべてのジョブのためのすべてのスクリプトを逐次的に実行できる。例えば、第1のデプロイメントジョブのためのプレバックアップチェック204は、第2のデプロイメントジョブのためのプレバックアップチェック204が開始される前に完了する。バックアップオーケストレータは、特定の段階のスクリプトがデプロイメントジョブ間でコール(call)される順序を制御しても、制御しなくてもよい。バックアップオーケストレータは、異なる段階のスクリプトがコールされる順序を制御する。加えて、いくつかの実装形態では、バックアップオーケストレータは、デプロイメント横断的な(cross-deployment)一貫性を維持するために、デプロイメント間の(inter-deployment)オーケストレーションを行ってもよい。
デプロイメントジョブは、デプロイメントジョブがバックアップ可能かどうかをチェックするプレバックアップチェック204を行うスクリプトを有してもよい。このスクリプトによって、デプロイメントジョブは、バックアップ動作を開始できるかどうかをチェックできる。このスクリプトは任意選択であり、プレバックアップチェックが要求されない場合は含まれる必要はない。例えば、MySQLをバックアップする際、プレバックアップチェック204のためのスクリプトは、そのジョブがロックできるかどうかを判定することができる。
プレバックアップチェック204のためのスクリプトを作成するために、リリース作成者は、デプロイメントのテンプレートディレクトリ内に任意の名前でシェルスクリプトを保存することができる。デプロイメントジョブ仕様ファイルのテンプレートセクションにおいて、リリース作成者は、キー/値ペア(key value pair)として、スクリプト名およびbin/pre-backup-checkディレクトリを追加できる。ジョブ仕様ファイルは、リリースと関連付けされ得る。プレバックアップチェック204のための入力の例は、下記のリスト1に示される。
name: a_node
templates:
pre-backup-check.erb: bin/pre-backup-check
リスト1
プレバックアップチェック204のためのスクリプトは、結果を示すために終了コード(exit code)を使用する。例えば、終了コード0(ゼロ)は、成功を示し、それ以外の終了コードは失敗を示し得る。終了に成功したことは、そのデプロイメントジョブが、バックアップ可能であることを示す。プレバックアップチェック204のためのスクリプトは、デプロイメントの任意のノードにおいてプレバックアップロック206のための任意のスクリプトがコールされる前に、コールされる。プレバックアップチェック204のためのスクリプトは、デプロイメント内の全ジョブにわたって任意の順序でコールされてよい。
プレバックアップチェック204のためのスクリプトは、標準出力(standard output)ストリームおよび標準エラー出力(standard error)ストリーム(例えば、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のためのスクリプトを有し得る。このスクリプトによって、デプロイメントジョブは、バックアップがクラスタにわたって一貫性を持つようにロックすることができる。例えば、MySQLをバックアップする際、プレバックアップロック206のためのスクリプトはバックアップ中にマイグレーションが実行されないようジョブをロックできる。
デプロイメントジョブにバックアップロックスクリプトを追加するために、リリース作成者は、デプロイメントジョブのテンプレートディレクトリ内に任意の名前でスクリプトを作成することができる。デプロイメントジョブ仕様ファイルのテンプレートセクションは、キー/値ペアとして、スクリプト名およびbin/pre-backup-lockディレクトリを含む。プレバックアップロック206のためのスクリプトの入力例は、下記のリスト2に示される。
name: a_node
templates:
backup-lock.erb: bin/backup-lock
リスト2
プレバックアップロック206のためのスクリプトは、結果を示すために終了コードを使用する。例えば、終了コード0(ゼロ)は、成功を示し、それ以外の終了コードは失敗を示し得る。終了に成功したことは、そのデプロイメントジョブが、ロックされることに成功したことを示す。プレバックアップロック206のためのスクリプトは、デプロイメントの任意のノードにおいてプレバックアップ208のための任意のスクリプトがコールされる前に、コールされる。プレバックアップロック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を呼び出す。デプロイメントをバックアップ可能にするためには、デプロイメントにおいて少なくとも1つのバックアップ208スクリプトが存在する。
デプロイメントジョブにバックアップスクリプトを追加するために、リリース作成者は、デプロイメントジョブのテンプレートディレクトリ内に任意の名前でスクリプトを作成することができる。デプロイメントジョブ仕様ファイルのテンプレートセクションは、キー/値ペアとして、スクリプト名およびbin/backupディレクトリを含む。バックアップ208のための入力の例は、下記のリスト3に示される。
name: a_node
templates:
backup.erb: bin/backup
リスト3
バックアップ208スクリプトは、結果を示すために終了コードを使用する。例えば、終了コード0(ゼロ)は、成功を示し、それ以外の終了コードは失敗を示し得る。終了に成功したことは、そのデプロイメントジョブが、バックアップに成功したことを示す。バックアップ208スクリプトは、デプロイメントのすべてのノードですべてのプレバックアップロック206がコールされた後で、コールされる。バックアップ208スクリプトは、デプロイメントの任意のノードで任意のポストバックアップロック解除210スクリプトがコールされる前に、コールされる。バックアップ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は、複数のインスタンスグループ、例えば第1のインスタンスグループ116および第2のインスタンスグループ118を含み得る。第1のインスタンスグループ116は、第1のデプロイメントジョブ120および第2のデプロイメントジョブ122を含む。第2のインスタンスグループ118は、第3のデプロイメントジョブ304を含む。
第1のデプロイメントジョブ120は、第1のプレバックアップチェックスクリプト306、第1のプレバックアップロックスクリプト308、第1のバックアップスクリプト310、第1のポストバックアップロック解除スクリプト312、および第1のポストバックアップクリーンアップスクリプト314に関連付けられる。第2のデプロイメントジョブ122は、第2のプレバックアップチェックスクリプト316、第2のプレバックアップロックスクリプト318、第2のバックアップスクリプト320、第2のポストバックアップロック解除スクリプト322、および第2のポストバックアップクリーンアップスクリプト324に関連付けられる。第3のデプロイメントジョブ304は、第3のプレバックアップチェックスクリプト326、第3のバックアップスクリプト330、第3のポストバックアップクリーンアップスクリプト334に関連付けられる。
バックアップオーケストレータ、例えば、図1のバックアップオーケストレータ102は、これらのスクリプト306〜334の実行を調整する。バックアップオーケストレータは、スクリプトを段階ごとに実行する。第1の段階340では、バックアップオーケストレータは、必ずしもこの順序ではないが、第1のプレバックアップチェックスクリプト306、第2のプレバックアップチェックスクリプト316、および第3のプレバックアップチェックスクリプト326を実行する。これらのスクリプトを実行した後、バックアップオーケストレータは、第2の段階342に移行する。第2の段階342では、バックアップオーケストレータは、第1のプレバックアップロックスクリプト308および第2のプレバックアップロックスクリプト318を実行する。示される例では、第3のデプロイメントジョブ304は、プレバックアップロックスクリプトを持たない。これらのスクリプトを実行した後、バックアップオーケストレータは、第3の段階344に移行し、バックアップスクリプト310、320、330を実行する。バックアップスクリプト310、320、330の実行に続いて、バックアップオーケストレータは、第4の段階346に移行し、ポストバックロック解除スクリプト312および322を実行する。最後に、バックアップオーケストレータは、第5の段階348に移行し、ポストバックアップクリーンアップスクリプト414、324、334を実行する。各移行は、前段階のすべてのスクリプトが実行を終了した後で行われる。
便宜上、デプロイメントのバックアップに関するスクリプトのみが図3に示される。デプロイメントの復元に関するスクリプトの実行も同様にグループ化、段階化され得る。
図4は、バックアップにおけるスクリプト実行のプロセス400の例を示すフローチャートである。プロセス400は、1つまたは複数のプロセッサ、例えば、図1のバックアップオーケストレータ102を含むシステムによって行われ得る。
システムは、デプロイメントをバックアップするまたは復元するための要求を受け取る(402)。要求は、デプロイメントの場所または名前を提供することによってデプロイメントを指定できる。システムは、指定されたデプロイメントが存在するかどうかを判定する(404)。デプロイメントが存在しないとの判定に応答して、システムはバックアップを終了する(406)。デプロイメントが存在するとの判定に応答して、システムは、例えば、mkdirコマンドを実行することによって、バックアップ加工物を保存するためのローカルディレクトリを作成する(408)。
システムは、ローカルディレクトリの作成に成功したかどうかを判定する(410)。ローカルディレクトリの作成が不成功であるとの判定に応答して、システムはバックアップを終了する(406)。ローカルディレクトリの作成が成功であるとの判定に応答して、システムは、そのデプロイメントにおけるデプロイメントジョブのためのプレバックアップスクリプトを実行する(412)。プレバックアップスクリプトは、プレバックアップチェックおよびプレバックアップロックのためのスクリプトを含み得る。システムは、図3を参照して説明されるように、グループ内および段階内でプレバックアップスクリプトを実行できる。
システムは、プレバックアップスクリプトの実行が成功したかどうかを判定する(414)。プレバックアップスクリプトの実行が成功であったとの判定に応答して、システムは、そのデプロイメントジョブのデータをダンプするためのバックアップスクリプトを実行する(416)。システムは、次にポストバックアップスクリプトを実行する(418)。システムが、プレバックアップスクリプトの実行が不成功であったと判定した場合、システムは、バックアップスクリプトをスキップして、ポストバックアップスクリプトを実行できる。ポストバックアップスクリプトは、ポストバックアップロック解除およびポストバックアップクリーンアップのためのスクリプトを含み得る。システムは、図3を参照して説明されるように、グループ内および段階内でポストバックアップスクリプトを実行できる。
システムは、バックアップが成功したことを判定する(420)。バックアップが成功であったとの判定に応答して、システムは、加工物を排出する(422)。加工物は、デプロイされたインスタンスから排出され、したがってバックアップをコピーするためにかかる時間はそのジョブがロックされる時間には含まれない。システムは、次にインスタンスからバックアップを除去する(424)。バックアップがオペレータのVMにコピーされたので、バックアップを除去するステップには、デプロイされたインスタンスからバックアップのコピーを削除することを含む。バックアップが不成功であったとの判定に応答して、システムは、加工物の排出をスキップする。システムは、インスタンスからバックアップを除去する(424)。システムは、次にバックアップを終了する。
プロセス400は、デプロイメントをバックアップするプロセスである。デプロイメントを復元するプロセスは、同様の動作を含み得る。
図5は、デプロイメントをバックアップするまたは復元するプロセス500の例を示すフローチャートである。プロセス500は、1つまたは複数のプロセッサ、例えば、図1のバックアップオーケストレータ102、を含むシステムによって行われ得る。
システムは、クライアントデバイスから、デプロイメントをバックアップまたは復元する要求を受け取る(502)。デプロイメントは、1つまたは複数のデプロイメントジョブを含む。デプロイメントは、仮想マシンの集合および1つまたは複数の非一時的記憶デバイス、例えば、永続的ディスクの集合において実装される。各デプロイメントジョブは、それぞれの仮想マシンにおいて実行される。各デプロイメントジョブは、デプロイメントマニフェストにおいて定義される。要求は、バックアップオーケストレータプログラムを起動するコマンドライン入力であり得る。要求は、デプロイメントを識別するデプロイメント識別子に関連付けられる。デプロイメント識別子は、デプロイメントの名前または場所を指定できる。デプロイメント識別子は、要求のパラメータであってもよく、その要求を発行するクライアントデバイスに暗黙的に関連付けられていてもよい。
システムは、デプロイメント識別子に基づいて、ジョブ特定スクリプトを保存する、スクリプトの場所を判定する(504)。スクリプトの場所の判定には、ジョブ仕様ファイルに指定されるように、例えば、上記リスト1〜3に示された入力のように、スクリプトの場所を識別することを含む。各ジョブ特定スクリプトは、デプロイメントマニフェストおよび1つまたは複数のジョブ仕様ファイルに従って、それぞれのデプロイメントジョブに関連付けられる。デプロイメントマニフェストおよび1つまたは複数のジョブ仕様ファイルは、そのデプロイメントの構成パラメータを指定できる。
各ジョブに関して、デプロイメントマニフェストおよび1つまたは複数のジョブ仕様ファイルは、1つまたは複数のそれぞれのプレバックアップスクリプト(例えば、プレバックアップチェックスクリプトおよびプレバックアップロックスクリプト)、それぞれのバックアップスクリプト、1つまたは複数のそれぞれのポストバックアップスクリプト(例えば、ポストバックアップロック解除スクリプトおよびポストバックアップクリーンアップスクリプト)、1つまたは複数のそれぞれのプレ復元スクリプト(例えば、プレ復元チェックスクリプトおよびプレ復元ロックスクリプト)、それぞれの復元スクリプト、または1つまたは複数のそれぞれのポスト復元スクリプト(例えば、ポスト復元ロック解除スクリプト、ポスト復元検証スクリプト、およびポスト復元クリーンアップスクリプト)、を指定できる。スクリプト、およびそのスクリプトによって行われる作動の内容は、ユーザによって定義可能であり、リリース作成者が編集できる。システムはこのように、柔軟で、様々なデプロイメントのニーズに適応できるフレームワークを提供する。デプロイメントマニフェストおよび1つまたは複数のジョブ仕様ファイルは、それぞれのスクリプトのそれぞれの場所、例えば、ディレクトリまたは他の形態のアクセスパスを指定することによってそれぞれのスクリプトを指定できる。
システムは、スクリプトの場所に保存されたジョブ特定スクリプトを所定の順序で実行する(506)。実行している間、システムは、各デプロイメントジョブのためのプレバックアップスクリプトまたはプレ復元スクリプトを実行する。システムは、次に、各デプロイメントジョブのためのバックアップスクリプトまたは復元スクリプトを実行する。システムは、次に、各デプロイメントジョブのためのポストバックアップスクリプトまたはポスト復元スクリプトを実行する。スクリプトの場所に保存されたジョブ特定スクリプトを所定の順序で実行するステップには、ジョブ特定スクリプトを、段階に対応する各スクリプトタイプごとに逐次的に実行することを含む。実行している間、第1のタイプのスクリプトがすべてのデプロイメントジョブに対して完了した後、第2のタイプのスクリプトが実行される。各スクリプトタイプについて、当該のスクリプトタイプを有するジョブ特定スクリプトは、各デプロイメントジョブに対して逐次的に実行される。特に、例えば、実行順序は、図3を参照して上記で説明される。ジョブ特定スクリプトは、1つまたは複数のデプロイメントジョブをバックアップするか、または1つまたは複数のデプロイメントジョブを復元する。
システムは、要求に対する応答として、バックアップまたは復元の状態を示すステータスレポートをクライアントデバイスに提供する(508)。ステータスレポートは、標準入出力ストリームまたは標準エラー出力ストリームであり得、または、新規のバックアップおよび復元が生じたときは、特定の場所に保存され、追加され得る。状態には、成功時のためのコードまたは失敗時のためのエラーコードを含み得る。
本明細書で説明される主題および機能的動作の実施形態は、本明細書で開示される構造およびその構造的等価物を含む、デジタル電子回路で、有形に具現化されるコンピュータソフトウェアまたはファームウェアで、コンピュータハードウェアで、またはそれらのうちの1つまたは複数の組合せで、実装することができる。本明細書で説明される主題の実施形態は、1つまたは複数のコンピュータプログラム、つまり、データ処理装置で、またはその動作を制御して実行するために有形の非一時的プログラム担体上にコード化されたコンピュータプログラム命令の1つまたは複数のモジュールとして、実装され得る。代替的にまたは追加として、プログラム命令は、データ処理装置による実行のために適切な受信装置に伝送するための情報をコード化するために生成される、人工的に生成される伝搬信号、例えば機械的に生成される電気信号、光学的信号、または電磁的信号によってコード化できる。コンピュータ記憶媒体は、機械読み取り可能な記憶デバイス、機械読み取り可能な記憶基板、ランダムアクセスメモリデバイスまたはシリアルアクセスメモリデバイス、または1つまたは複数のそれらの組合せであり得る。
「データ処理装置」という用語は、データ処理ハードウェアを意味し、例としてプログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくは複数のコンピュータを含む、データ処理のためのすべての種類の装置、デバイスおよび機械を包含する。装置はまた、専用論理回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)であるか、またはそれらをさらに含み得る。装置は、任意選択で、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、または1つまたは複数のそれらの組合せの構成要素となるコードを含んでよい。
プログラムソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも呼ばれたり説明されたりするコンピュータプログラムは、コンパイラ言語またはインタープリタ言語、もしくは宣言型言語または手続き型言語を含むどのような形態のプログラミング言語で書かれてもよく、かつ、スタンドアロンプログラムとしてのまたはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境での使用に適する他のユニットとしての形態を含むいかなる形態でデプロイされてもよい。コンピュータプログラムは、ファイルシステム内のファイルに対応してもよいが、必須ではない。プログラムは、他のプログラムまたはデータ(例えば、マークアップ言語の文書に保存された1つまたは複数のスクリプト)を保持するファイルの一部分内に、当該のプログラムに特化した単一のファイル内に、または複数の調整されたファイル(例えば、1つまたは複数のモジュール、サブプログラム、またはコードの部分を保存するファイル)内に保存され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに配置されるかもしくは複数のサイトにわたって分散され通信ネットワークによって相互接続される複数のコンピュータ上で実行されるようデプロイされ得る。
本明細書で説明されるプロセスおよび論理フローは、入力データに対して動作して出力を生成することによって機能を行うための1つまたは複数のコンピュータプログラムを実行する、1つまたは複数のプログラマブルコンピュータによって行われ得る。プロセスおよび論理フローはまた、専用論理回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって行うこともでき、装置として実装することもできる。
コンピュータプログラムの実行に適するコンピュータは、例として、汎用または専用マイクロプロセッサまたはそれら両方、もしくは任意の他の種類の中央処理装置を含む。一般的には、中央処理装置は、リードオンリメモリまたはランダムアクセスメモリもしくはそれら両方から命令およびデータを受け取る。コンピュータの本質的な要素は、命令を行うまたは実行するための中央処理装置ならびに、命令およびデータを保存するための1つまたは複数のメモリデバイスである。一般的に、コンピュータはまた、データの受け取りまたは転送またはそれら両方のために、1つまたは複数のデータ保存用の大容量記憶デバイス、例えば、磁気ディスク、光磁気ディスク、または光学ディスクを含むかまたは動作可能に結合される。しかしながら、コンピュータが、このようなデバイスを持つことは必須ではない。さらに、いくつかの例を挙げると、コンピュータは別のデバイス(例えば、携帯電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機)、またはポータブル記憶デバイス(例えば、ユニバーサルシリアルバス(USB)フラッシュドライブ)などに組み込まれ得る。
コンピュータプログラム命令およびデータの保存に適したコンピュータ読み取り可能な媒体には、例としてEPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスクまたはリムーバブルディスクなどの磁気ディスク、光磁気ディスク、およびCD-ROMおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスが含まれる。プロセッサおよびメモリは、専用論理回路によって補完されてよく、またはそれに組み込まれてもよい。
ユーザとの対話を提供するために、本明細書で説明される主題の実施形態は、ユーザに情報を表示するためのCRT(cathode ray tube:陰極線管)またはLCD(liquid crystal display:液晶ディスプレイ)モニタなどのディスプレイデバイス、ならびにユーザがそれによりコンピュータに入力を提供できる、マウスまたはトラックボールなどのキーボードおよびポインティングデバイスを有するコンピュータ上で実装できる。他の種類のデバイスも同様にユーザとの対話を提供するために使用でき、例えば、ユーザに提供されるフィードバックは、視覚フィードバック、聴覚フィードバックまたは触覚フィードバックなどの任意の形態の感覚フィードバックであり得、またユーザからの入力は、音響、音声、または触覚的入力を含む任意の形態で受け取られ得る。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送信することおよびデバイスからの文書を受信することにより、例えば、ウェブブラウザから受信した要求に応答して、ユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによってユーザと対話できる。
本明細書で説明される主題の実施形態は、データサーバなどとしてのバックエンドコンポーネントを含むコンピューティングシステム、またはアプリケーションサーバなどのミドルウェアコンポーネントを含むコンピューティングシステム、またはグラフィカルユーザインタフェースまたはウェブブラウザを有し、それを通じてユーザが本明細書で説明される主題の実装形態と対話できるための、クライアントコンピュータなどのフロントエンドコンポーネントを含むコンピューティングシステムもしくは1つまたは複数のそのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組合せで実装できる。システムのコンポーネントは、任意の形態または媒体によるデジタルデータ通信、例えば、通信ネットワークによって相互接続できる。通信ネットワークの例には、ローカルエリアネットワーク(LAN)および広域ネットワーク(WAN)、例えば、インターネットが含まれる。
コンピューティングシステムは、クライアントおよびサーバを含んでよい。クライアントおよびサーバは一般に、互いに遠隔にあり、一般的には通信ネットワークを通じて対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行され、相互にクライアントとサーバとの関係を有するコンピュータプログラムによって発生する。
本明細書は、多くの具体的な実装形態の詳細を含むが、これらは、いかなる発明の範囲または特許請求の範囲であり得る範囲の制限としてではなく、むしろ特定の発明の特定の実施形態に固有であり得る特徴についての説明として解釈されるべきである。別個の実施形態の文脈において本明細書で説明されるある特定の特徴はまた、単一の実施形態に組み合わせて実装できる。逆に、単一の実施形態の文脈で説明される様々な特徴はまた、複数の実施形態において別々にまたは任意の適切なサブコンビネーションにおいて実装できる。さらに、特徴は、ある特定の組合せにおける作用として上記で説明され、当初はそのように特許請求される場合もあるが、特許請求される組合せのうちの1つまたは複数の特徴は、場合によってはその組合せから削除され得、特許請求される組合せはサブコンビネーションまたはサブコンビネーションの変形形態に振り向けられる場合もある。
同様に、動作は図面において特定の順序で図示されているが、所望の結果を達成するために、このような動作は示される特定の順序または順番で行われること、または例示されるすべての動作が行われることが必要であると理解されるべきではない。ある特定の状況では、マルチタスクおよび並行処理も有利であり得る。さらに、上記の実施形態における様々なシステムのモジュールおよびコンポーネントの分離は、すべての実施形態でそのような分離が必要であると理解されるべきではなく、説明されるプログラムコンポーネントおよびシステムは、一般に、単一のソフトウェア製品にともに統合されてよく、または複数のソフトウェア製品にパッケージ化され得ることが理解されるべきである。
このように、主題についての具体的な実施形態が、説明された。他の実施形態は、以下の特許請求の範囲内にある。例えば、主題は、科学論文の文脈において説明される。主題は、探求に深さの側面を加える他の索引づけされた作業に適用できる。ある場合には、特許請求の範囲に記載される作動は、異なる順序で行われてもよく、なおかつ所望の結果を達成し得る。加えて、添付の図面で図示されるプロセスは、所望の結果を達成するために、必ずしも示される特定の順序、または順番を要請しない。ある特定の実装形態では、マルチタスクおよび並行処理も有利であり得る。
102 バックアップオーケストレータ
104 CLIリクエスト
106 クライアントデバイス(CLI)
110 デプロイメント
112 マニフェスト
116 第1のインスタンスグループ
118 第2のインスタンスグループ
120 第1のデプロイメントジョブ
122 第2のデプロイメントジョブ
124 加工物
202 バックアップスクリプト
204 プレバックアップチェック
206 プレバックアップロック
208 バックアップ
210 ポストバックアップロック解除
212 バックアップクリーンアップ
222 復元スクリプト
224 プレ復元チェック
226 プレ復元ロック
228 復元
230 ポスト復元ロック解除
232 復元検証
234 復元クリーンアップ
304 第3のデプロイメントジョブ
306 第1のプレバックアップチェックスクリプト
308 第1のプレバックアップロックスクリプト
310 第1のバックアップスクリプト
312 第1のポストバックアップロック解除スクリプト
314 第1のポストバックアップクリーンアップスクリプト
316 第2のプレバックアップチェックスクリプト
318 第2のプレバックアップロックスクリプト
320 第2のバックアップスクリプト
322 第2のポストバックアップロック解除スクリプト
324 第2のポストバックアップクリーンアップスクリプト
326 第3のプレバックアップチェックスクリプト
330 第3のバックアップスクリプト
334 第3のポストバックアップクリーンアップスクリプト
340 第1の段階
342 第2の段階
344 第3の段階
346 第4の段階
348 第5の段階
400 バックアップにおけるスクリプト実行のプロセス
402 要求を受け取る
404 指定されたデプロイメントが存在するかどうかを判定する
406 バックアップを終了する
408 バックアップ加工物を保存するためのローカルディレクトリを作成する
410 ローカルディレクトリの作成に成功したかどうかを判定する
412 プレバックアップスクリプトを実行する
414 プレバックアップスクリプトの実行が成功したかどうかを判定する
416 バックアップスクリプトを実行する
418 ポストバックアップスクリプトを実行する
420 バックアップが成功したことを判定する
422 加工物を排出する
424 インスタンスからバックアップを除去する
500 デプロイメントを、バックアップするまたは復元するプロセス

Claims (10)

1つまたは複数のコンピュータにインストールされたバックアップオーケストレータにより、1つまたは複数のデプロイメントジョブを含むデプロイメントをバックアップするまたは復元する要求をクライアントデバイスから受け取るステップであって、前記要求は、前記デプロイメントを識別するデプロイメント識別子に関連付けられている、ステップと、
前記バックアップオーケストレータにより、前記デプロイメント識別子に基づいて、前記デプロイメントの構成パラメータを指定する仕様ファイルに従ってそれぞれのデプロイメントジョブに関連付けられた各ジョブ特定スクリプトを保存する、スクリプトの場所を判定するステップと、
各デプロイメントジョブのためのプレバックアップスクリプトまたはプレ復元スクリプトを実行すること、次に各デプロイメントジョブのためのバックアップスクリプトまたは復元スクリプトを実行すること、次に各デプロイメントジョブのためのポストバックアップスクリプトまたはポスト復元スクリプトを実行することを含む、前記スクリプトの場所に保存されたジョブ特定スクリプトをスクリプトタイプごとに逐次的に実行するステップであって、前記ジョブ特定スクリプトは、前記1つまたは複数のデプロイメントジョブをバックアップするかまたは前記1つまたは複数のデプロイメントジョブを復元する、ステップと、
前記バックアップオーケストレータにより、前記クライアントデバイスに、前記バックアップまたは復元の状態を示すステータスレポートを、前記要求に対する応答として提供するステップと、
を含む方法。
前記デプロイメントは、仮想マシンの集合および永続的ディスクの集合において実装され、
各デプロイメントジョブは、それぞれの仮想マシンにおいて実行され、
各デプロイメントジョブは、前記仕様ファイル内で定義される、請求項1に記載の方法。
前記スクリプトの場所を判定する前記ステップは、前記仕様ファイル内で指定されるような前記スクリプトの場所を識別するステップを含む、請求項1または2に記載の方法。
前記仕様ファイルは、各ジョブに対し、
それぞれのプレバックアップスクリプト、
それぞれのバックアップスクリプト、
それぞれのポストバックアップスクリプト、
それぞれのプレ復元スクリプト、
それぞれの復元スクリプト、または
それぞれのポスト復元スクリプト、
のうちの1つまたは複数を定義する、請求項1から3のいずれか一項に記載の方法。
前記仕様ファイルは、それぞれのスクリプトのそれぞれの場所を指定することによって前記それぞれのスクリプトを定義する、請求項4に記載の方法。
前記プレバックアップスクリプトまたはプレ復元スクリプトは、1つまたは複数のジョブをロックするためのスクリプトを含み、
前記ポストバックアップスクリプトまたはポスト復元スクリプトは、1つまたは複数のジョブをロック解除するためのスクリプトを含む、請求項1から5のいずれか一項に記載の方法。
2のタイプのスクリプトは、第1のタイプのスクリプトがすべてのデプロイメントジョブに対して完了した後で実行される、請求項1から6のいずれか一項に記載の方法。
各スクリプトタイプについて、そのスクリプトタイプを有するジョブ特定スクリプトは、各デプロイメントジョブに対して逐次的に実行される、請求項7に記載の方法。
1つまたは複数のコンピュータと、前記1つまたは複数のコンピュータによって実行されるとき、請求項1から8のいずれか一項に記載の方法を前記1つまたは複数のコンピュータに行わせるように動作可能な命令を記憶する1つまたは複数の記憶デバイスと、
を含むシステム。
コンピュータプログラムを記憶したコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、データ処理装置によって実行されるとき、前記データ処理装置に請求1から8のいずれか一項に記載の方法を行わせるように動作可能な命令を含む、コンピュータ読み取り可能な記憶媒体。
JP2019560731A 2017-05-05 2018-04-27 分散コンピューティングシステムのための、バックアップおよび復元フレームワーク Active JP6968903B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/588,529 2017-05-05
US15/588,529 US10379968B2 (en) 2017-05-05 2017-05-05 Backup and restore framework for distributed computing systems
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
JP2020518926A JP2020518926A (ja) 2020-06-25
JP6968903B2 true JP6968903B2 (ja) 2021-11-17

Family

ID=62555114

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019560731A Active JP6968903B2 (ja) 2017-05-05 2018-04-27 分散コンピューティングシステムのための、バックアップおよび復元フレームワーク

Country Status (6)

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

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
CN111651303A (zh) * 2020-07-07 2020-09-11 南京云信达科技有限公司 一种分布式架构的数据库在线备份和恢复方法技术领域
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
US11934275B2 (en) 2021-12-28 2024-03-19 Dell Products L.P. Backup copy validation as an embedded object
US11880283B2 (en) * 2021-12-28 2024-01-23 Dell Products L.P. Backup copy validation as a workflow
US11782799B2 (en) 2021-12-27 2023-10-10 Dell Products L.P. Using bitmaps to validate data
US11899540B2 (en) 2021-12-27 2024-02-13 Dell Products, L.P. Regenerating a chain of backups
CN114880386B (zh) * 2022-04-06 2023-04-07 北京宇信科技集团股份有限公司 一种任务调度平台及任务调度方法
CN116662079B (zh) * 2023-07-31 2023-09-29 明阳时创(北京)科技有限公司 一种快速备份与复原ubuntu操作系统的方法及系统

Family Cites Families (21)

* 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
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
US8472923B2 (en) * 2005-03-10 2013-06-25 At&T Intellectual Property Ii, L.P. Monitoring mobile phone communications
US7694165B2 (en) * 2007-05-03 2010-04-06 Microsoft Corporation Automation of bare metal recoveries
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
US9021299B2 (en) * 2011-02-18 2015-04-28 Ab Initio Technology Llc Restarting processes
US9015710B2 (en) * 2011-04-12 2015-04-21 Pivotal Software, Inc. Deployment system for multi-node applications
US9170798B2 (en) * 2012-03-02 2015-10-27 Vmware, Inc. System and method for customizing a deployment plan for a multi-tier application in a cloud infrastructure
CN103092749A (zh) * 2011-11-08 2013-05-08 苏州中茵泰格科技有限公司 测试环境部署的方法及系统
US9052961B2 (en) * 2012-03-02 2015-06-09 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
US9342369B2 (en) * 2013-01-07 2016-05-17 Wal-Mart Stores, Inc. System and method for increasing throughput of a PaaS system
CN104216793B (zh) * 2013-05-31 2017-10-17 国际商业机器公司 应用程序备份、恢复的方法及设备
CN105100127B (zh) * 2014-04-22 2018-06-05 国际商业机器公司 用于验证在云计算环境中的应用部署拓扑的设备和方法
US9641580B2 (en) * 2014-07-01 2017-05-02 Microsoft Technology Licensing, Llc Distributed stream processing in the cloud
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
US9665390B2 (en) * 2015-10-26 2017-05-30 International Business Machines Corporation Deployment of instances amid configuration changes
US10831463B2 (en) * 2017-03-08 2020-11-10 International Business Machines Corporation Intelligent software deployment on an IaaS platform

Also Published As

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

Similar Documents

Publication Publication Date Title
JP6968903B2 (ja) 分散コンピューティングシステムのための、バックアップおよび復元フレームワーク
CN110941446B (zh) 基于多环境离线任务的版本发布方法及装置
JP6928066B2 (ja) Hyperledger Fabricネットワークの構築方法、コントローラ及び記憶媒体
US10402302B1 (en) Reproduction of testing scenarios in a continuous integration environment
US10585785B2 (en) Preservation of modifications after overlay removal from a container
US20090288082A1 (en) System and method for performing designated service image processing functions in a service image warehouse
CN108776643B (zh) 一种基于版本控制流程的目标代码合并控制方法及系统
US20160378521A1 (en) Automated test optimization
CN113672353B (zh) 一种基于容器的任务执行方法及装置
US8938490B2 (en) System and method for accessing mainframe system automation from a process automation application
US9805038B2 (en) Efficient conflict resolution among stateless processes
WO2019099008A1 (en) Software builds using a cloud system
US20150293953A1 (en) Robust, low-overhead, application task management method
US20230289234A1 (en) Computing environment pooling
US11093527B2 (en) Framework for continuous processing of a set of documents by multiple software applications
US20150227392A1 (en) Enabling Dynamic Job Configuration in Mapreduce
US20120331148A1 (en) Infrastructure management operational workflows
CN110888717A (zh) Hdfs的目录操作的事务控制方法及装置
CN116360800B (zh) 一种代码分支环境的部署方法、装置及电子设备
CN117762557A (zh) 虚拟机创建方法、装置、电子设备及可读存储介质
CN117389713A (zh) 存储系统应用业务数据迁移方法、装置、设备及介质
CN112148348A (zh) 任务处理方法、装置及存储介质
US9268576B1 (en) Physical replica utilizing replica virtual storage for computer system
CN111209139A (zh) 基于版本控制管理系统的容灾方法及装置
US20150186127A1 (en) Method for using shared installation session environment to duplicate installs

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191224

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210301

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210601

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211004

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211027

R150 Certificate of patent or registration of utility model

Ref document number: 6968903

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150