JP2016524752A - アプリケーションをバックアップ及び復元するための方法及び装置 - Google Patents

アプリケーションをバックアップ及び復元するための方法及び装置 Download PDF

Info

Publication number
JP2016524752A
JP2016524752A JP2016515617A JP2016515617A JP2016524752A JP 2016524752 A JP2016524752 A JP 2016524752A JP 2016515617 A JP2016515617 A JP 2016515617A JP 2016515617 A JP2016515617 A JP 2016515617A JP 2016524752 A JP2016524752 A JP 2016524752A
Authority
JP
Japan
Prior art keywords
backup
application
restore
virtual machines
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
JP2016515617A
Other languages
English (en)
Other versions
JP6516730B2 (ja
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2016524752A publication Critical patent/JP2016524752A/ja
Application granted granted Critical
Publication of JP6516730B2 publication Critical patent/JP6516730B2/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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • 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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual

Landscapes

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

Abstract

【課題】 複数の仮想マシンにわたって動作するアプリケーションをバックアップ及び復元するための方法及び装置を提供する。【解決手段】 本発明は、方法及び装置を開示する。本方法は、複数の仮想マシンにわたって動作するアプリケーションをバックアップするための方法を含み、この方法は、アプリケーションをバックアップする必要性に応答して、バックアップの前に複数の仮想マシンを連携させて準備状態に入らせるために用いられる第1の組のスクリプトを実行することと、第1の組のスクリプトが完全に実行されることに応答して、複数の仮想マシンを管理する少なくとも1つのバックアップ・エージェントのバックアップ操作をトリガすることであって、バックアップ操作は、バックアップ・エージェントが、それによって管理されているそれぞれの仮想マシン上で、アプリケーションに関連するデータを突き止めることを含む、トリガすることと、バックアップ操作の完了に応答して、複数の仮想マシンの動作を復元するために用いられる第2の組のスクリプトを実行することとを含む。本発明の実施形態における方法及び装置によって、仮想マシン間アプリケーションのためのバックアップ及び復元を実施することができる。【選択図】 図2

Description

本発明は、アプリケーションのバックアップ及び復元に関し、より詳細には、仮想マシン間(cross-virtual-machine)アプリケーションをバックアップ及び復元するための方法及び装置に関する。
従来技術においては、オペレーティング・システム・レベル及び仮想マシン・レベルにおけるバックアップ及び復元解決策が存在する。しかしながら、仮想マシン間アプリケーションをバックアップする際、単一の仮想マシン又は単一のオペレーティング・システム用のバックアップ及び復元解決策を直接適用することはできない。複数の仮想マシンにわたって動作するアプリケーションについては、アプリケーションの異なる部分が異なる仮想マシン上で動作する。例えば、アプリケーションのデータベース部分及びアプリケーション・サービス部分が、異なる仮想マシン上で動作することがある。従って、仮想マシン間アプリケーションをバックアップする際、アプリケーションが配置される複数の仮想マシン間でのデータ連携(data coordination)を保証することが必要である。
さらに、従来技術においては、各アプリケーションについて、アプリケーション特有のバックアップ解決策を設計する必要はある。アプリケーションは互いに異なるため、既存の方法は一般的解決策にならず、そのことがアプリケーションのバックアップ及び復元の効率を非常に低くする。
上記を考慮して、依然として従来技術への改善の余地が大いに存在し、従って、仮想マシン間アプリケーションをバックアップ及び復元するための普遍的な技術的解決策を提供することが望ましい。
複数の仮想マシンにわたって動作するアプリケーションをバックアップ及び復元するための方法及び装置を提供する。
本発明の第1の態様によると、複数の仮想マシンにわたって動作するアプリケーションをバックアップするための方法が提供され、この方法は、アプリケーションをバックアップする必要性に応答して、バックアップの前に複数の仮想マシンを連携させて準備状態に入らせるためのものである第1の組のスクリプトを実行することと、第1の組のスクリプトが完全に実行されることに応答して、複数の仮想マシンを管理する少なくとも1つのバックアップ・エージェントのバックアップ操作をトリガすることであって、バックアップ操作は、バックアップ・エージェントが、それによって管理されるそれぞれの仮想マシン上で、アプリケーションに関連するデータを突き止めることと、バックアップを実施することを含む、トリガすることと、バックアップ操作の完了に応答して、複数の仮想マシンの動作を復元するために用いられる第2の組のスクリプトを実行することとを含む。
本発明の第2の態様によると、複数の仮想マシンにわたって動作するアプリケーションを復元するための方法が提供され、この方法は、アプリケーションを復元するための命令の受信に応答して、復元準備状態に入らせるために用いられる第1の組の復元スクリプトを呼び出し、実行することと、第1の組の復元スクリプトが完全に実行されたことに応答して、少なくとも1つの復元エージェントをトリガして復元操作を実施することであって、復元操作は、復元エージェントが、アプリケーションに関連するバックアップ・データを、それによって管理される仮想マシンにコピーすることを含む、トリガすることと、復元操作の完了に応答して、複数の仮想マシンの動作を復元するために用いられる第2の組の復元スクリプトを呼び出し、実行することとを含む。
本発明の第3の態様によると、複数の仮想マシンにわたって動作するアプリケーションをバックアップするための装置が提供され、この装置は、アプリケーションをバックアップする必要性に応答して、バックアップの前に複数の仮想マシンを連携させて準備状態に入らせるために用いられる第1の組のスクリプトを実行するように構成された第1のスクリプト実行モジュールと、第1の組のスクリプトが完全に実行されたことに応答して、複数の仮想マシンを管理する少なくとも1つのバックアップ・エージェントのバックアップ操作をトリガするように構成されたバックアップ・モジュールであって、バックアップ操作は、バックアップ・エージェントが、それによって管理されるそれぞれの仮想マシン上でアプリケーションに関連するデータを突き止めることと、バックアップを実施することとを含む、バックアップ・モジュールと、バックアップ操作の完了に応答して、複数の仮想マシンの動作を復元するために用いられる第2の組のスクリプトを実行するように構成された第2のスクリプト実行モジュールとを含む。
本発明の第4の態様によると、複数の仮想マシンにわたって動作するアプリケーションを復元するための装置が提供され、この装置は、アプリケーションを復元する命令の受信に応答して、復元準備状態に入らせるために用いられる第1の組の復元スクリプトを呼び出し、実行するように構成された第1の組の復元スクリプト動作モジュールと、第1の組の復元スクリプトが完全に実行されたことに応答して、少なくとも1つの復元エージェントをトリガして復元操作を実施するように構成された復元モジュールであって、復元操作は、復元エージェントが、アプリケーションに関連するバックアップ・データを、それによって管理されている仮想マシンにコピーすることを含む、復元モジュールと、復元操作の完了に応答して、複数の仮想マシンの動作を復元するために用いられる第2の復元スクリプトの組を呼び出し、実行するように構成された第2の復元スクリプトの組の動作モジュールとを含む。
本発明の方法及び装置を採用することにより、仮想マシン間アプリケーションをバックアップ及び復元するための一般的な技術的解決策を提供することができる。
添付図面における本開示の幾つかの実施形態のより詳細な説明を通じて、本開示の上記及び他の目的、特徴及び利点がより明らかとなるであろう。本開示の実施形態において、一般に、同じ参照符号は同じコンポーネントを指す。
本発明の実施形態を実施するように適合された例示的なコンピュータ・システム/サーバ12のブロック図を示す。 本発明の一実施形態による、アプリケーションをバックアップするための方法のフローチャートを示す。 本発明の一実施形態による、物理ノードに配置されたバックアップ・エージェントの概略図を示す。 本発明の一実施形態による、仮想マシン内に配置されたバックアップ・エージェントの概略図を示す。 本発明の一実施形態による、アプリケーションを復元するための方法のフローチャートを示す。 本発明の一実施形態による、アプリケーションをバックアップするための装置の概略図を示す。 本発明の一実施形態による、アプリケーションを復元するための装置の概略図を示す。
幾つかの好ましい実施形態が、本開示の好ましい実施形態が示される添付図面を参照して、より詳細に説明される。しかしながら、本開示は、種々の方法で実施することができ、従って、本明細書で開示される実施形態に限定されると解釈されるべきではない。それとは反対に、これらの実施形態は、本開示の十分かつ完全な理解のため及び本開示の範囲を当業者に完全に伝えるために提供される。
当業者により認識されるように、本発明の態様は、システム、方法又はコンピュータ・プログラム製品として具体化することができる。従って、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、又はソフトウェアの態様とハードウェアの態様とを組み合わせた実施形態の形態をとることができ、本明細書においては、これらは全て、一般的に「回路」、「モジュール」又は「システム」と呼ぶことがある。さらに、本発明の態様は、コンピュータ可読プログラム・コードが組み込まれた1つ又は複数のコンピュータ可読媒体内に具体化されたコンピュータ・プログラム製品の形態をとることができる。
1つ又は複数のコンピュータ可読媒体のいずれの組み合わせを用いることもできる。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読ストレージ媒体とすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子、磁気、光、電磁気、赤外線、又は半導体のシステム、装置、若しくはデバイス、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例(非網羅的なリスト)として、1つ又は複数の配線を有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラム可能読み取り専用メモリ(EPROM又はフラッシュ・メモリ)、光ファイバ、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD−ROM)、光記憶装置、磁気記憶装置、又は上記のもののいずれかの適切な組み合わせが挙げられる。本文書の文脈において、コンピュータ可読ストレージ媒体は、命令実行システム、装置若しくはデバイスによって又はこれらと関連して用いるためのプログラムを収容又は格納することができるいずれかの有形媒体とすることができる。
コンピュータ可読信号媒体は、コンピュータ可読プログラム・コードが、例えばベースバンド内に、又は搬送波の一部としてその中に具体化された、伝搬データ信号を含むことができる。このような伝搬信号は、これらに限定されるものではないが、電磁気、光又はこれらのいずれかの適切な組み合わせを含む、種々の異なる形態のいずれかを取ることができる。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではなく、かつ、命令実行システム、装置若しくはデバイスによって又はこれらと関連して用いるためのプログラムを通信、伝搬、又は搬送することができる、いずれかのコンピュータ可読媒体とすることができる。
コンピュータ可読媒体上に具体化されたプログラム・コードは、これらに限定されるものではないが、無線、有線、光ファイバ・ケーブル、RF等、又は上記のもののいずれかの適切な組み合わせを含む、いずれかの適切な媒体を用いて伝送することができる。
本発明の態様のための動作を実行するためのコンピュータ・プログラム・コードは、Java、Smalltalk、C++等のようなオブジェクト指向型プログラミング言語、及び「C」プログラミング言語又は同様のプログラミング言語のような従来の手続き型プログラミング言語を含む、1つ又は複数のプログラミング言語のいずれかの組み合わせで記述することができる。プログラム・コードは、完全にユーザのコンピュータ上で実行される場合もあり、スタンドアロンのソフトウェア・パッケージとして、一部がユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。後者のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)若しくは広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある(例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて)。
本発明の態様は、本発明の実施形態に記載されるような方法、装置(システム)及びコンピュータ・プログラム製品のフローチャート図及び/又はブロック図を参照して以下に説明される。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図におけるブロックの組み合わせは、コンピュータ・プログラム命令によって実装できることが理解されるであろう。これらのコンピュータ・プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実施するための手段を作り出すようにすることができる。
これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装する命令を含む製品を製造するようにすることができる。
コンピュータ・プログラム命令はまた、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で行わせてコンピュータ実施のプロセスを生成し、それにより、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実行するためのプロセスを提供するようにすることもできる。
ここで、本開示の実施形態を実施するために適用できる例示的なコンピュータ・システム/サーバ12が示される、図1を参照する。コンピュータ・システム/サーバ12は単なる例示であり、本明細書で説明される本発明の実施形態の使用範囲又は機能に関するいずれかの制限を示唆することを意図するものではない。
図1に示されるように、コンピュータ・システム/サーバ12が、汎用コンピューティング・デバイスの形態で示される。コンピュータ・システム/サーバ12のコンポーネントは、これらに限定されるものではないが、1つ又は複数のプロセッサ又は処理ユニット16、システム・メモリ28、及びシステム・メモリ28を含む種々のシステム・コンポーネントをプロセッサ16に結合するバス18を含むことができる。
バス18は、メモリ・バス又はメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、及び種々のバス・アーキテクチャのいずれかを用いるプロセッサ又はローカル・バスを含む、幾つかのタイプのバス構造のうちのいずれかの1つ又は複数を表す。限定ではなく例としては、このようなアーキテクチャは、業界標準アーキテクチャ(Industry Standard Architecture、ISA)バス、マイクロ・チャネル・アーキテクチャ(Micro Channel Architecture、MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカル・バス、及びPeripheral Component Interconnect(PCI)バスを含む。
コンピュータ・システム/サーバ12は、典型的には、種々のコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム/サーバ12がアクセス可能ないずれかの利用可能媒体とすることができ、揮発性媒体及び不揮発性媒体の両方と、取り外し可能媒体及び取り外し不能媒体の両方とを含む。
システム・メモリ28は、ランダム・アクセス・メモリ(RAM)30及び/又はキャッシュ・メモリ32など、揮発性メモリの形のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ12は、他の取り外し可能/取り外し不能、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体をさらに含むことができる。単なる例として、取り外し不能の不揮発性磁気媒体(図示されておらず、典型的には「ハード・ドライブ」と呼ばれる)との間の読み取り及び書き込みのために、ストレージ・システム34を設けることができる。図示されていないが、取り外し可能な不揮発性磁気ディスク(例えば、フロッピー・ディスク」)との間の読み取り及び書き込みのための磁気ディスク・ドライブと、CD−ROM、DVD−ROM又は他の光媒体などの取り外し可能な不揮発性光ディスクとの間の読み取り及び書き込みのための光ディスク・ドライブとを設けることができる。このような例においては、それぞれを、1つ又は複数のデータ媒体インターフェースによってバス18に接続することができる。以下でさらに示され説明されるように、メモリ28は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールの組(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含むことができる。
限定ではなく例として、メモリ28内に、プログラム・モジュール42の組(少なくとも1つ)を有するプログラム/ユーティリティ40、並びにオペレーティング・システム、1つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データを格納することができる。オペレーティング・システム、1つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データ、又はそれらの何らかの組み合わせの各々は、ネットワーキング環境の実装形態を含むことができる。プログラム・モジュール42は、一般に、本明細書で説明される本発明の実施形態の機能及び/又は方法を実行する。
コンピュータ・システム/サーバ12はまた、キーボード、ポインティング・デバイス、ディスプレイ24等のような1つ又は複数の外部デバイス14;ユーザがコンピュータ・システム/サーバ12と対話することを可能にする1つ又は複数のデバイス;及び/又はコンピュータ・システム/サーバ12が1つ又は複数の他のコンピューティング・デバイスと通信することを可能にするいずれかのデバイス(例えば、ネットワーク・カード、モデムなど)と通信することもできる。このような通信は、入力/出力(I/O)インターフェース22を経由して行うことができる。さらにまた、コンピュータ・システム/サーバ12は、ネットワーク・アダプタ20を介して、ローカル・エリア・ネットワーク(LAN)、汎用広域ネットワーク(WAN)、及び/又はパブリック・ネットワーク(例えば、インターネット)などの1つ又は複数のネットワークと通信することもできる。示されるように、ネットワーク・アダプタ20は、バス18を介して、コンピュータ・システム/サーバ12の他のコンポーネントと通信する。図示されないが、コンピュータ・システム/サーバ12と共に他のハードウェア及び/又はソフトウェア・コンポーネントを使用できることを理解されたい。例としては、これらに限定されるものではないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部のディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、及びデータ・アーカイブ・ストレージ・システムなどが含まれる。
ここで、本発明の一実施形態による、仮想マシン間アプリケーションをバックアップするためのバックアップ方法のフローチャートを示す、図2を参照する。アプリケーションが横断的に動作する複数の仮想マシンは、同じ物理ノード上又は複数の物理ノード上に配置することができる。図2に示されるように、本方法は、少なくともステップ201、ステップ202、及びステップ203を含む。
ステップ201において、アプリケーションをバックアップする必要性に応じて、第1の組のスクリプトが実行される。第1の組のスクリプトは、バックアップの前に、複数の仮想マシンを連携させて準備状態に入らせるために用いられる。
第1の組のスクリプト及び第2の組のスクリプトは、バックアップ/復元サーバ上に事前に格納し、前もってユーザによりサーバにアップロードしてもよい。従って、ステップ201、202、及び203において適用されるスクリプトは、バックアップ/復元サーバから取り出してもよい。第1の組のスクリプト及び第2の組のスクリプトは、一般に、アプリケーションの開発者によって提供され、アプリケーションをバックアップする際にユーザが実行するのに利用できる。
一実施形態において、バックアップ管理ポータルをバックアップ/復元サーバ上に設けることができ、これはユーザが種々のバックアップ管理操作を実施するのに利用できる。アプリケーションが完全に配備された後、ユーザは、バックアップ管理ポータルを通じて、バックアップ・ポリシー(バックアップ時間、バックアップ量など)及びSLAなどを設定することができる。
受信したバックアップ命令に基づき、アプリケーションのバックアップが必要であるかどうかが判断される。バックアップ命令は、バックアップ・ポリシーに従って予め設定された時間に出されることもあり、又は、バックアップ管理ポータルを通じてユーザにより一時的に出されることもある。
一実施形態において、アプリケーションがデータベースを含む場合、第1の組のスクリプトは、スクリプトがアプリケーションのデータベースにバックアップ状態に入らせることを含み、第2の組のスクリプトは、スクリプトがアプリケーションのデータベースにその動作を復元させることを含む。例えば、第1の組のスクリプトは、以下の操作、即ち、データベースを停止し、データベースを書き込みサスペンド状態に設定すること、及びデータベースをメモリ書き込み状態に設定すること(書き込み操作は、永久メモリにフラッシュされない)のうちの少なくとも一方を実行することができる。それに対応して、第2の組のスクリプトは、第1の組のスクリプトとは対照的な操作、即ち、データベースを開始して、データベースを書き込みサスペンド状態から通常の動作に復元させること、及びデータベースをメモリ書き込み状態から通常の動作に復元させることを実行することができる。
一実施形態において、アプリケーションがアプリケーション・サーバを含むとき、第1の組のスクリプトは、スクリプトがアプリケーションのアプリケーション・サーバにバックアップ状態に入らせることを含み、第2の組のスクリプトは、スクリプトがアプリケーションのアプリケーション・サーバにその動作を復元させることを含む。例えば、第1の組のスクリプトは、以下の操作、即ち、アプリケーション・サーバを停止すること、及び読み取り要求のみを受け入れるようにアプリケーション・サーバを設定することを実行することができる。それに対応して、第2の組のスクリプトは、第1の組のスクリプトとは対照的な操作、例えば、アプリケーション・サーバの動作を復元すること、及び書き込み要求を受け入れることができるようにアプリケーション・サーバを設定することを実行することができる。
一実施形態において、第1の組のスクリプトは、スクリプトがアプリケーションにバックアップ状態に入らせることを含み、第2の組のスクリプトは、スクリプトがアプリケーションに動作を復元させることを含む。例えば、第1の組のスクリプトを用いて、現在処理されている要求を達成し、「新しい書き込み要求を受け入れない」ように設定し、又は、「いかなる新しい要求も受け入れない」ように設定することができる。それに対応して、第2の組のスクリプトは、第1の組のスクリプトとは対照的な操作、例えば、新しい要求を受け入れることができるように設定することを実行する。
当然ながら、当業者は、バックアップ時に複数の仮想マシンを連携させるためにスクリプトを使用できる限り、他のタイプのスクリプトを採用してもよい。例えば、幾つかの他の実施形態においては、第1の組のスクリプトを用いて、メッセージ・キュー・サーバを停止し、クリアし、関連するストレージ空間を準備することもできる。
一実施形態において、第1の組のスクリプトを実行することは、第1の組のスクリプトを分散させること、及び第1の組のスクリプトを複数の仮想マシン上で実行することを含む。一実施形態によれば、第1の組のスクリプトを、アプリケーションが配置されるそれぞれの仮想マシンに分散させることができ、次いで、各々の仮想マシンは、受信した第1の組のスクリプト内の現在の仮想マシンに関連するスクリプトを実行する。別の実施形態によれば、第1の組のスクリプト内のスクリプトは、スクリプトのタイプに従って、対応する仮想マシンにわたって分散される。例えば、スクリプトの組の中のデータベースに関連したスクリプトは、アプリケーション・データベースが配置される仮想マシンに分散され、スクリプトの組の中のアプリケーション・サーバに関連するスクリプトは、アプリケーションのアプリケーション・サーバが配置される仮想マシンに分散され、次いで、各々の仮想マシンが受信したスクリプトを実行する。
ステップ202において、第1の組のスクリプトが完全に実行されたことに応答して、複数の仮想マシンを管理する少なくとも1つのバックアップ・エージェントのバックアップ操作がトリガされる。バックアップ操作は、バックアップ・エージェントが、それによって管理されるそれぞれの仮想マシン上でアプリケーションに関連するデータを突き止め、バックアップを実施することを含む。
一実施形態において、バックアップ・エージェントが、それによって管理されるそれぞれの仮想マシン上でアプリケーションに関連するデータを突き止め、バックアップを実施することは、アプリケーションに関連するデータに対してスナップショット操作を実施することを含む。従って、スナップショット操作を通じて全てのバックアップ・エージェントにより取得されたそれぞれのスナップショットを集約することにより、複数の仮想マシン上のアプリケーションの全てのバックアップ予定(to-be-backed-up)データを取得することができる。さらに、バックアップ操作は、バックアップ・データをスナップショットから外部メモリにコピーするステップをさらに含むことができる。従来技術では、例えば、既存のRsync方法に基づいてバックアップ・データをコピーするなど、スナップショットからバックアップ・データをコピーする複数の方法が提供される。
図3は、本発明の一実施形態による、物理ノードが配置されるバックアップ・エージェントの概略図を示す。この実施形態において、バックアップ・エージェントは、バックアップ・エージェントが配置される物理ノードにおける、アプリケーションに関連する全ての仮想マシンを管理する。この実施形態を採用する場合、ユーザが、物理ノードに対して操作権を有し、物理ノードにおいてバックアップ・エージェントを直接インストールできることが必要であり、一方、バックアップ・エージェントもまた、物理ノードで動作する仮想マシンに対してバックアップ操作を実施する権利を有する。図3に示されるように、物理ノード1及び物理ノード2において、それぞれ、2つの仮想マシンが作成される。従って、物理ノード1におけるバックアップ復元エージェント(B/Rエージェント)は、仮想マシンA(図3に示されるVMA)及び仮想マシンB(図3に示されるVMB)に対してバックアップ操作を実施することができ、物理ノード2におけるバックアップ・エージェントは、仮想マシンC(図3に示されるVMC)及び仮想マシンD(図3に示されるVMD)に対してバックアップ操作を実施することができる。
図4は、本発明の一実施形態による、仮想マシン内に配置されるバックアップ・エージェントの概略図を示す。この実施形態において、バックアップ・エージェントは、アプリケーションが配置されるそれぞれの仮想マシン内に配置される。多くの場合、ユーザは直接物理ノードに対する操作権を有さないため、この実施形態は、より一般的であり、従って、バックアップ・エージェントを仮想マシン内に組み込み、その結果、バックアップ・エージェントをトリガすることにより、仮想マシン内のアプリケーションに関連するデータのためのバックアップ操作を実施できるようにすることが必要である。図4に示されるように、物理ノード1にて仮想マシンA(VMA)が作成され、物理ノード2に仮想マシンB(VMB)が作成される。さらに、バックアップ/復元エージェントは、それぞれの仮想マシン内に配置され、従って、各々のバックアップ/復元エージェントは、仮想マシン内で、アプリケーションに関連するデータに対するバックアップ操作を実施する権利を有する。例えば、VMA内のバックアップ/復元エージェントは、論理ボリュームA(LVA)内のアプリケーションに関連するデータD1をバックアップする権利を有する。
この実施形態において、バックアップ・エージェントを仮想マシン内に配置させ、バックアップ・エージェントが配置される仮想マシンを管理するために、アプリケーションを配備する際に仮想マシンを作成するための基本イメージとして、カスタマイズされた基本イメージを提供することが必要である。基本イメージは、以下のようにカスタマイズすることができる、即ち、バックアップ・エージェントを基本イメージに焼き付け、スナップショット機能をサポートする必要がある場合には、スナップショット機能をサポートするファイル・システム管理ソフトウェア(例えば、LVM)を基本イメージ内にインストールすることができる。
アプリケーションに関連するデータを突き止めるために、複数の方法を採用することができる。一実施形態においては、バックアップ命令内に、アプリケーション・データが配置される仮想マシンの識別ID及び仮想マシン内の論理ボリューム・ラベルを提供することができ、従って、バックアップ・エージェントは、バックアップ操作を実施するために、直接、上記の識別情報に従って対応するデータを突き止めることができる。別の実施形態においては、バックアップ命令が、そうした識別情報を含まないことがある。バックアップ・エージェントがバックアップ命令を受信すると、バックアップ・エージェントは、それが配置される仮想マシン内の全てのデータ情報を収集することができ、次に、そうした情報をバックアップ/復元サーバにフィードバックし、次いで、バックアップ/復元サーバは、どのデータ又は仮想マシンがアプリケーションに関連するデータであるかを知らせる。
スナップショット機能をサポートすることが必要な場合は、上述したカスタマイズされた基本イメージに基づいてアプリケーションをインストールする際、スナップショット機能をサポートするファイル・システムによって管理される1つ又は複数の論理ボリューム内に、アプリケーションをインストールしなければならず、かつ、アプリケーション・インストール・ボリューム情報をバックアップ/復元システムに登録しなければならない。
アプリケーションの配備時に、アプリケーションが配置される仮想マシンのIDを、バックアップ及び復元システムに登録することができる。代替的な方法として、アプリケーションが完全に配備された後、仮想マシンIDを取り出すことができる。クラウド環境を例にとると、仮想マシンIDは、バックアップ/復元システムにより、クラウドのIaaSインターフェース又はPaaSインターフェースから、読み取ることができる。
動作中、以下のデータ構造をバックアップ/復元システム内に保持することができる。
Figure 2016524752
バックアップ・エージェントをトリガし、バックアップ・ポリシーに従ってバックアップ操作を実施するとき、バックアップ・エージェントによって管理される仮想マシンIDに基づいて、対応するバックアップ・コンテンツのリスト及びバックアップ・ポリシーがバックアップ・エージェントに送られ、バックアップ・エージェントは、バックアップ・コンテンツのリスト及びバックアップ・ポリシーを取得した後、上記の情報に従って、バックアップを実施することができ、例えば、バックアップは、スナップショット・ベースのバックアップとすることができる。
上記を考慮して、仮想マシンの異なる設定方法に応じて、各バックアップ・エージェントによって管理される仮想マシンの数は異なり得る。例えば、バックアップ・エージェントが物理ノードに配置される場合、バックアップ・エージェントは、物理ノードにおける全ての仮想マシンを管理することができ、バックアップ・エージェントが仮想マシン内に配置される場合には、バックアップ・エージェントは、これが配置される仮想マシンしか管理することができない。従って、バックアップ・エージェントの数は、アプリケーションが配置される複数の仮想マシンを管理できる限り、必ずしもアプリケーションが配置される仮想マシンの数と等しいとは限らない。
ステップ203において、バックアップ操作の完了に応答して、複数の仮想マシンの動作を復元するための第2の組のスクリプトが呼び出され、実行される。第2の組のスクリプトを実行するプロセスは、第1の組のスクリプトを実行する方法と同一であり、ここでは詳細には論じない。
本発明の一実施形態によると、バックアップ・エージェントは、それによって管理されるそれぞれの仮想マシン上で、アプリケーションに関連するデータを突き止め、バックアップを実施する際に、スナップショット操作を実施する。スナップショット技術は、ストレージ・システムにおいて広く適用され、これは、最初にアレイ及びホスト・コンピュータにおいて適用され、一般に、ボリュームに基づきブロック・レベルで処理を行う。スナップショットは、実際には、特定の時点におけるデータの状態を記録する、ストレージ・デバイス内に格納されたデータに向けられた参照マーク又はポインタであるため、スナップショット操作を用いることにより、バックアップ速度を著しく向上させることができる。例えば、読み取られるデータのアドレスを示すためにポインタのリストを確立することによって、一時データのイメージを提供することができる。一般に、スナップショット作成プロセス中、データの物理コピーは存在しないので、スナップショットの作成は、ほぼリアルタイムであり、概ね1秒未満である。スナップショットの原理は従来技術のものであり、本出願人は、本明細書でこれを詳述しない。しかしながら、従来技術におけるスナップショット操作は、通常、単一のシステムに基づき、それは、複数の仮想マシンにわたって動作するアプリケーションのバックアップ、特に、バックアップ・エージェントを通じて、アプリケーションが横断的に動作する複数の仮想マシンにおいてアプリケーションに関連するデータを連携させることによるスナップショット操作の実施には、決して適用されないことに留意されたい。
本発明の一実施形態によれば、スナップショット操作をサポートするために、アプリケーションが論理ボリューム管理(LVM)に基づく複数の仮想マシン内に配備されるか、又は、複数の仮想マシンがLVMをサポートする物理ノードに配置される。論理ボリューム管理(LVM)は、スナップショット操作をサポートする周知のディスク管理方法である。詳細については、http://en.wikipedia.org/wiki/Logical_Volume_Manager_%28Linux%29を参照されたい。本出願人は、本明細書ではこれを詳述しない。さらに、当業者であれば、既存のホスト・コンピュータOS上のVxVM、又はWindowsシステムのVSSもまた、スナップショットをサポートするストレージ管理システムであり、これを本出願の技術的解決策に適用できることを理解されたい。
図5は、本発明の一実施形態による、複数の仮想マシンにわたって動作するアプリケーションを復元するための方法のフローチャートを示す、本方法は、以下を含む。
ステップ401において、アプリケーションを復元する命令の受信に応答して、複数の新しく作成された仮想マシン上にアプリケーションを再配備し、復元準備状態に入らせるための第1の組の復元スクリプトが呼び出され、実行される。
一実施形態において、第1の組の復元スクリプトは、アプリケーション・インスタンスにより動作される元の仮想マシンを削除し、アプリケーションを複数の新しく作成された仮想マシン上に再配備するとき、再配備されたアプリケーションが開始されないようにするために用いられる。配備後にアプリケーションが自動的に開始された場合には、アプリケーションを停止させなければならない。一実施形態において、新しいアプリケーション・インスタンスを配備するための複数の仮想マシンは、復元エージェント機能を含むカスタマイズされたイメージに基づいて作成された仮想マシンである。
ステップ402において、第1の組の復元スクリプトの実行の完了に応答して、少なくとも1つの復元エージェントをトリガして復元操作を実施する。復元操作は、アプリケーションに関連するバックアップ・データを取得することと、バックアップ・データを、復元エージェントによって管理される新しい仮想マシンにコピーすることとを含む。
一実施形態において、復元エージェントの復元操作は、複数の新しく作成された仮想マシン上のバックアップ・データに対応するコンテンツ、例えば、仮想マシンVM01上の論理ボリュームLV01及び論理ボリュームLV02における全てのコンテンツを削除することと、ユーザ指定の復元ポリシーに基づいて、バックアップ・データを対応する位置にコピーすることとを含む。
ステップ403において、復元操作の完了に応答して、再配備されたアプリケーションの動作を復元するための第2の組の復元スクリプトが呼び出され、実行される。
一実施形態において、第2の組の復元スクリプトは、新しい仮想マシンの環境に基づいて、再配備されたアプリケーションのアプリケーション構成を変更すること、例えば、新しいIPアドレス、ホスト名等に基づいてデータベース・リンクを変えること、及びデータベース、アプリケーション・サーバ等を開始することを含む、再配備されたアプリケーションを開始することなどを含むことができる。
図6は、本発明の一実施形態による、複数の仮想マシンにわたって動作するアプリケーションをバックアップするための装置の概略図を示し、この装置は、以下を含む。:
アプリケーションをバックアップする必要性に応答して、第1の組のスクリプトを実行するように構成された第1のスクリプト実行モジュール501。第1の組のスクリプトは、バックアップの前に、複数の仮想マシンを連携させて準備状態に入らせるために用いられる。
第1の組のスクリプトが完全に実行されることに応答して、複数の仮想マシンを管理する少なくとも1つのバックアップ・エージェントのバックアップ操作をトリガするように構成されたバックアップ・モジュール502。バックアップ操作は、バックアップ・エージェントが、それによって管理されるそれぞれの仮想マシン上で、アプリケーションに関連するデータを突き止めること、及びバックアップを実施することを含む。
バックアップ操作の完了に応答して、複数の仮想マシンの動作を復元するための第2の組のスクリプトを実行するように構成された第2のスクリプト実行モジュール503。
一実施形態において、第1の組のスクリプト及び第2の組のスクリプトは、アプリケーションの配備時に提供される。
一実施形態において、バックアップ・エージェントがそれによって管理されるそれぞれの仮想マシン上で、アプリケーションに関連するデータを突き止めること及びバックアップを実施することは、アプリケーションに関連するデータに対してスナップショット操作を実施することを含む。
一実施形態において、バックアップ・エージェントは物理ノードに配置され、物理ノード内の仮想マシンを管理する。別の実施形態において、バックアップ・エージェントは、仮想マシン内に配置され、バックアップ・エージェントが配置される仮想マシンを管理する。
一実施形態において、アプリケーションを配備する際、バックアップ・エージェントを含む基本イメージに基づき、アプリケーションが配置される複数の仮想マシンを作成し、バックアップ・エージェントが、仮想マシン内に配置され、バックアップ・エージェントが配置される仮想マシンを管理するように構成されたモジュールがさらに含まれる。一実施形態において、基本イメージは、スナップショット機能をサポートするファイル・システム管理ソフトウェアをさらに含む。
図7は、本発明の一実施形態による、複数の仮想マシンにわたって動作するアプリケーションを復元するための装置の概略図を示し、この装置は、以下を含む。
アプリケーションを復元する命令の受信に応答して、第1の組の復元スクリプトを呼び出し、実行するように構成された第1の組の復元スクリプト動作モジュール601。第1の組の復元スクリプトは、アプリケーションを複数の新しく作成された仮想マシン上に再配備して復元準備状態に入らせるために用いられる。
第1の組の復元スクリプトの実行の完了に応答して、少なくとも1つの復元エージェントをトリガして復元操作を実施するように構成された復元モジュール602であって、復元操作は、アプリケーションに関連するバックアップ・データを取得することと、バックアップ・データを、復元エージェントによって管理される新しい仮想マシンにコピーすることとを含む。
復元操作の完了に応答して、第2の組の復元スクリプトを呼び出し、実行するように構成された第2の組の復元スクリプト動作モジュール603。第2の組の復元スクリプトは、再配備されたアプリケーションの動作を復元するために用いられる。
一実施形態において、第1の組の復元スクリプトは、アプリケーションが配置される元の複数の仮想マシンを削除し、アプリケーションを、複数の新しく作成された仮想マシン上に再配備するとき、再配備されたアプリケーションが開始されないようにするために用いられる。
一実施形態において、復元エージェントの復元操作は、複数の新しく作成された仮想マシン上のバックアップ・データの対応する位置におけるコンテンツを削除すること、及び、ユーザにより指定された復元ポリシーに基づいて、バックアップ・データを対応する位置にコピーすることを含む。
一実施形態において、第2の組の復元スクリプトは、複数の新しく作成された仮想マシンの環境に基づき、再配備されたアプリケーションのアプリケーション構成を変更すること、及び再配備されたアプリケーションを開始することを含む。
本出願の技術的解決策を採用することにより、物理マシン又は仮想マシンが一般的な意味でバックアップ操作(ファイル・バックアップ、ブロック・ストレージ・バックアップ、及び仮想マシン全体のバックアップのいずれか1つ、又はそれらの幾つかの組み合わせとすることができる)をサポートすることしか必要とされない。この要件は、Linuxを用いるか、Windows OSを用いるかに関わりなく、現在のクラウド・コンピューティング環境におけるホスト・コンピュータ及び仮想コンピュータに適用できる。従って、本出願の技術的解決策は、Linux及びWindows OSの両方をサポートすることができ、従って用途が広い。
図中のフローチャート及びブロック図は、本発明の種々の実施形態によるシステム、方法及びコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能性、及び動作を示す。これに関して、フローチャート又はブロック図中の各ブロックは、指定された論理機能を実施するための1つ又は複数の実行可能命令を含むコードの、モジュール、セグメント、又は部分を表すことができる。さらに、幾つかの代替的実施形態において、ブロック内に記述された機能は、図中に示したのとは別の順序で実行することができることに留意されたい。例えば、連続して示した2つのブロックは、実際には、実質的に並列に実行することができ、又はブロックは場合により、関与する機能性に応じて逆の順序で実行することができる。さらに、ブロック図及び/又はフローチャート図の各ブロック、並びにブロック図及び/又はフローチャート図中のブロックの組み合わせは、指定された機能又は動作を実行する専用ハードウェアをベースとするシステム、又は専用ハードウェアとコンピュータ命令との組み合わせによって実施できることにも留意されたい。
本発明の種々の実施形態の説明は、例示のために提示されているが、網羅的であること又は開示された実施形態に限定することを意図するものではない。説明された実施形態の範囲及び趣旨から逸脱することなく、当業者には、多くの変更及び変形が明らかであろう。本明細書で用いられる用語は、実施形態の原理、実際の用途、又は市場に見られる技術に勝る技術的改善を最も良く説明するため、又は、当業者が、本明細書に開示される実施形態を理解するのを可能にするために選択された。
12:コンピュータ・システム/サーバ
14:外部デバイス
16:プロセッサ又は処理ユニット
18:バス
20:ネットワーク・アダプタ
22:入力/出力(I/O)インターフェース
24:ディスプレイ
28:システム・メモリ
30:ランダム・アクセス・メモリ(RAM)
32:キャッシュ・メモリ
34:ストレージ・システム
40:プログラム/ユーティリティ
42:プログラム・モジュール
501:第1のスクリプト実行モジュール
502:バックアップ・モジュール
503:第2のスクリプト実行モジュール
601:第1の組の復元スクリプト動作モジュール
602:復元モジュール
603:第2の組の復元スクリプト動作モジュール

Claims (20)

  1. 複数の仮想マシンにわたって動作するアプリケーションをバックアップするための方法であって、前記方法は、
    前記アプリケーションをバックアップする必要性に応答して、前記バックアップの前に前記複数の仮想マシンを連携させて準備状態に入らせるためのものである第1の組のスクリプトを実行することと、
    前記第1の組のスクリプトが完全に実行されたことに応答して、前記複数の仮想マシンを管理する少なくとも1つのバックアップ・エージェントのバックアップ操作をトリガすることであって、前記バックアップ操作は、前記バックアップ・エージェントが、それによって管理される前記それぞれの仮想マシン上で前記アプリケーションに関連するデータを突き止めること及びバックアップを実施することを含む、トリガすることと、
    前記バックアップ操作の完了に応答して、前記複数の仮想マシンの動作を復元するためのものである第2の組のスクリプトを実行することと、
    を含む、方法。
  2. 前記バックアップ・エージェントが、それによって管理される前記それぞれの仮想マシン上で前記アプリケーションに関連するデータを突き止めること及びバックアップを実施することは、
    前記アプリケーションに関連する前記データに対してスナップショット操作を実施することを含む、請求項1に記載の方法。
  3. 前記バックアップ・エージェントは、物理ノードに配置され、前記物理ノード内の仮想マシンを管理する、請求項1に記載の方法。
  4. 前記バックアップ・エージェントは、前記仮想マシン内に配置され、前記バックアップ・エージェントが配置される前記仮想マシンを管理する、請求項1に記載の方法。
  5. 前記アプリケーションを配備する際、前記バックアップ・エージェントを含む基本イメージに基づいて、前記バックアップ・エージェントが配置される前記複数の仮想マシンを作成し、前記バックアップ・エージェントが、前記仮想マシン内に配置され、前記バックアップ・エージェントが配置される前記仮想マシンを管理するようにすることをさらに含む、請求項1に記載の方法。
  6. 前記基本イメージは、スナップショット機能をサポートするファイル・システム管理ソフトウェアをさらに含む、請求項5に記載の方法。
  7. 複数の元の仮想マシンにわたって動作するアプリケーションを復元するための方法であって、前記方法は、
    前記アプリケーションを復元する命令の受信に応答して、前記アプリケーションを複数の新しく作成された仮想マシン上に再配備して復元準備状態に入らせるためのものである第1の組の復元スクリプトを呼び出し、実行することと、
    前記第1の組の復元スクリプトの実行の完了に応答して、少なくとも1つの復元エージェントをトリガして復元操作を実施することであって、前記復元操作は、前記アプリケーションに関連するバックアップ・データを取得することと、前記バックアップ・データを、前記復元エージェントによって管理される新しい仮想マシンにコピーすることとを含む、トリガすることと、
    前記復元操作の完了に応答して、前記再配備されたアプリケーションの動作を復元するためのものである第2の組の復元スクリプトを呼び出し、実行することと、
    を含む、方法。
  8. 前記第1の組の復元スクリプトは、
    前記アプリケーションが配置される前記複数の元の仮想マシンを削除し、
    前記アプリケーションを前記複数の新しく作成された仮想マシン上に再配備するとき、前記再配備されたアプリケーションを開始しない、
    ために用いられる、請求項7に記載の方法。
  9. 前記復元エージェントの前記復元操作は、
    前記複数の新しく作成された仮想マシン上の前記バックアップ・データの対応する位置におけるコンテンツを削除することと、
    ユーザにより指定された復元ポリシーに従って、前記バックアップ・データを前記対応する位置にコピーすることと、
    を含む、請求項7に記載の方法。
  10. 前記第2の組の復元スクリプトは、
    前記複数の新しく作成された仮想マシンの環境に基づいて、前記配備されたアプリケーションのアプリケーション構成を変更することと、
    前記再配備されたアプリケーションを開始することと、
    を含む、請求項7に記載の方法。
  11. 複数の仮想マシンにわたって動作するアプリケーションをバックアップするための装置であって、前記装置は、
    前記アプリケーションをバックアップする必要性に応答して、前記バックアップの前に前記複数の仮想マシンを連携させて準備状態に入らせるためのものである第1の組のスクリプトを実行するように構成された第1のスクリプト実行モジュールと、
    前記第1の組のスクリプトが完全に実行されたことに応答して、前記複数の仮想マシンを管理する少なくとも1つのバックアップ・エージェントのバックアップ操作をトリガするように構成されたバックアップ・モジュールであって、前記バックアップ操作は、前記バックアップ・エージェントが、それによって管理される前記それぞれの仮想マシン上で前記アプリケーションに関連するデータを突き止めること及びバックアップを実施することを含む、バックアップ・モジュールと、
    前記バックアップ操作の完了に応答して、前記複数の仮想マシンの動作を復元するためのものである第2の組のスクリプトを実行するように構成された第2のスクリプト実行モジュールでと、
    を含む、装置。
  12. 前記バックアップ・エージェントが、それによって管理される前記それぞれの仮想マシン上で前記アプリケーションに関連するデータを突き止めること及びバックアップを実施することは、前記アプリケーションに関連する前記データに対してスナップショット操作を実施することを含む、請求項11に記載の装置。
  13. 前記バックアップ・エージェントは、物理ノード上に配置され、前記物理ノード内の仮想マシンを管理する、請求項11に記載の装置。
  14. 前記バックアップ・エージェントは、前記仮想マシン内に配置され、前記バックアップ・エージェントが配置された前記仮想マシンを管理する、請求項11に記載の装置。
  15. 前記アプリケーションを配備する際、前記バックアップ・エージェントを含む基本イメージに基づき、前記アプリケーションが配置される前記複数の仮想マシンを作成し、前記バックアップ・エージェントが、前記仮想マシン内に配置され、前記バックアップ・エージェントが配置される前記仮想マシンを管理するようにするように構成されたモジュールをさらに含む、請求項14に記載の装置。
  16. 前記基本イメージは、スナップショット機能をサポートするファイル・システム管理ソフトウェアをさらに含む、請求項15に記載の装置。
  17. 複数の仮想マシンにわたって動作するアプリケーションを復元するための装置であって、前記装置は、
    前記アプリケーションを復元する命令の受信に応答して、前記アプリケーションを複数の新しく作成された仮想マシン上に再配備して復元準備状態に入らせるためのものである第1の組の復元スクリプトを呼び出し、実行するように構成された第1の組の復元スクリプト動作モジュールと、
    前記第1の復元スクリプトの組の実行の完了に応答して、少なくとも1つの復元エージェントをトリガして復元操作を実施するように構成された復元モジュールであって、前記復元操作は、前記アプリケーションに関連するバックアップ・データを取得することと、前記バックアップ・データを、前記復元エージェントによって管理される新しい仮想マシンにコピーすることとを含む、復元モジュールと、
    前記復元操作の完了に応答して、前記配備されたアプリケーションの動作を復元するためのものである第2の組の復元スクリプトを呼び出し、実行するように構成された第2の組の復元スクリプト動作モジュールと、
    を含む、装置。
  18. 前記第1の組の復元スクリプトは、
    前記アプリケーションが配置される前記複数の元の仮想マシンを削除し、
    前記アプリケーションを前記複数の新しく作成された仮想マシン上に再配備するとき、前記再配備されたアプリケーションが開始されないようにする、
    ために用いられる、請求項17に記載の装置。
  19. 前記復元エージェントの前記復元操作は、
    前記複数の新しく作成された仮想マシン上の前記バックアップ・データの対応する位置におけるコンテンツを削除することと、
    ユーザにより指定された復元ポリシーに従って、前記バックアップ・データを前記対応する位置にコピーすることと、
    を含む、請求項17に記載の装置。
  20. 前記第2の組の復元スクリプトは、
    前記複数の新しく作成された仮想マシンの環境に基づいて、前記配備されたアプリケーションのアプリケーション構成を変更することと、
    前記再配備されたアプリケーションを開始することと、
    を含む、請求項17に記載の装置。
JP2016515617A 2013-05-31 2014-04-11 アプリケーションをバックアップ及び復元するための方法及び装置 Active JP6516730B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201310215104.XA CN104216793B (zh) 2013-05-31 2013-05-31 应用程序备份、恢复的方法及设备
CN201310215104.X 2013-05-31
PCT/CN2014/075177 WO2014190806A1 (en) 2013-05-31 2014-04-11 Application backup and restore

Publications (2)

Publication Number Publication Date
JP2016524752A true JP2016524752A (ja) 2016-08-18
JP6516730B2 JP6516730B2 (ja) 2019-05-22

Family

ID=51987964

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016515617A Active JP6516730B2 (ja) 2013-05-31 2014-04-11 アプリケーションをバックアップ及び復元するための方法及び装置

Country Status (6)

Country Link
US (1) US10067692B2 (ja)
JP (1) JP6516730B2 (ja)
CN (1) CN104216793B (ja)
DE (1) DE112014002051T5 (ja)
GB (1) GB2529117B (ja)
WO (1) WO2014190806A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11550671B2 (en) 2020-09-18 2023-01-10 Fujitsu Limited Backup management device, backup management method, and information processing system

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107506258B (zh) * 2016-06-14 2021-11-12 伊姆西Ip控股有限责任公司 用于数据备份的方法和设备
US10394538B2 (en) 2017-02-09 2019-08-27 International Business Machines Corporation Optimizing service deployment in a distributed computing environment
US10331528B2 (en) * 2017-03-02 2019-06-25 Hewlett Packard Enterprise Development Lp Recovery services for computing systems
US10379968B2 (en) * 2017-05-05 2019-08-13 Pivotal Software, Inc. Backup and restore framework for distributed computing systems
CN109726038B (zh) * 2017-10-27 2023-12-15 伊姆西Ip控股有限责任公司 用于管理虚拟机的方法和设备
US20190278669A1 (en) * 2018-03-06 2019-09-12 International Business Machines Corporation Method for restore and backup of application containers in a shared file system
US11108859B2 (en) * 2018-07-02 2021-08-31 Accenture Global Solutions Limited Intelligent backup and recovery of cloud computing environment
US10936443B2 (en) 2018-09-26 2021-03-02 EMC IP Holding Company LLC System and method for tag based backup infrastructure
US10922122B2 (en) * 2018-09-26 2021-02-16 EMC IP Holding Company LLC System and method for virtual machine resource tagging
CN111090544A (zh) * 2018-10-24 2020-05-01 伊姆西Ip控股有限责任公司 用于管理虚拟机的方法、设备和计算机程序产品
CN109947499A (zh) * 2019-01-31 2019-06-28 维沃移动通信有限公司 一种设备配置方法、终端设备及服务器
US11573863B2 (en) 2019-04-08 2023-02-07 Kyndryl, Inc. Virtual machine backup and restore coordinator
US10776041B1 (en) * 2019-05-14 2020-09-15 EMC IP Holding Company LLC System and method for scalable backup search
US12019748B2 (en) * 2021-05-17 2024-06-25 Rubrik, Inc. Application migration for cloud data management and ransomware recovery

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009533777A (ja) * 2006-04-17 2009-09-17 マイクロソフト コーポレーション 仮想マシンのホストレベルのアプリケーション整合バックアップの作成
JP2009539162A (ja) * 2006-05-29 2009-11-12 マイクロソフト コーポレーション 複製時のシャドーコピーデータの保持
JP2010271882A (ja) * 2009-05-21 2010-12-02 Hitachi Ltd バックアップ管理方法
JP2011253350A (ja) * 2010-06-02 2011-12-15 Mitsubishi Electric Corp 仮想計算機制御システム

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7689859B2 (en) * 2006-12-20 2010-03-30 Symantec Operating Corporation Backup system and method
US8577845B2 (en) * 2008-06-13 2013-11-05 Symantec Operating Corporation Remote, granular restore from full virtual machine backup
US8046550B2 (en) 2008-07-14 2011-10-25 Quest Software, Inc. Systems and methods for performing backup operations of virtual machine files
US8060476B1 (en) * 2008-07-14 2011-11-15 Quest Software, Inc. Backup systems and methods for a virtual computing environment
US8495316B2 (en) * 2008-08-25 2013-07-23 Symantec Operating Corporation Efficient management of archival images of virtual machines having incremental snapshots
US8307177B2 (en) * 2008-09-05 2012-11-06 Commvault Systems, Inc. Systems and methods for management of virtualization data
US8682862B2 (en) * 2009-04-10 2014-03-25 Phd Virtual Technologies Inc. Virtual machine file-level restoration
US8285681B2 (en) 2009-06-30 2012-10-09 Commvault Systems, Inc. Data object store and server for a cloud storage environment, including data deduplication and data management across multiple cloud storage sites
US8694469B2 (en) 2009-12-28 2014-04-08 Riverbed Technology, Inc. Cloud synthetic backups
US20110185129A1 (en) * 2010-01-22 2011-07-28 Sun Microsystems, Inc. Secondary java heaps in shared memory
US20120072685A1 (en) 2010-09-16 2012-03-22 Hitachi, Ltd. Method and apparatus for backup of virtual machine data
US8650165B2 (en) * 2010-11-03 2014-02-11 Netapp, Inc. System and method for managing data policies on application objects
US8677355B2 (en) * 2010-12-17 2014-03-18 Microsoft Corporation Virtual machine branching and parallel execution
US8676763B2 (en) 2011-02-08 2014-03-18 International Business Machines Corporation Remote data protection in a networked storage computing environment
US8819471B2 (en) * 2011-06-03 2014-08-26 Apple Inc. Methods and apparatus for power state based backup
US8775376B2 (en) 2011-06-30 2014-07-08 International Business Machines Corporation Hybrid data backup in a networked computing environment
CN102541686B (zh) * 2011-11-29 2015-07-01 中标软件有限公司 一种使用虚拟机来实现系统的备份以及灾难恢复的方法
CN102521083B (zh) 2011-12-13 2015-04-29 广州杰赛科技股份有限公司 一种云计算系统中虚拟机备份方法和系统
CN103092674A (zh) * 2012-12-14 2013-05-08 北京伸得纬科技有限公司 一种虚拟机系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009533777A (ja) * 2006-04-17 2009-09-17 マイクロソフト コーポレーション 仮想マシンのホストレベルのアプリケーション整合バックアップの作成
JP2009539162A (ja) * 2006-05-29 2009-11-12 マイクロソフト コーポレーション 複製時のシャドーコピーデータの保持
JP2010271882A (ja) * 2009-05-21 2010-12-02 Hitachi Ltd バックアップ管理方法
JP2011253350A (ja) * 2010-06-02 2011-12-15 Mitsubishi Electric Corp 仮想計算機制御システム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
VMWARE徹底入門, vol. 第2版, JPN6018007854, 11 November 2010 (2010-11-11), pages 406 - 433, ISSN: 0003910600 *
できるPRO VMWARE VSPHERE 5, vol. 初版, JPN6018007850, 11 May 2012 (2012-05-11), pages 288 - 308, ISSN: 0003910599 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11550671B2 (en) 2020-09-18 2023-01-10 Fujitsu Limited Backup management device, backup management method, and information processing system

Also Published As

Publication number Publication date
CN104216793A (zh) 2014-12-17
US10067692B2 (en) 2018-09-04
JP6516730B2 (ja) 2019-05-22
GB2529117B (en) 2017-11-15
CN104216793B (zh) 2017-10-17
GB201520851D0 (en) 2016-01-13
US20160202923A1 (en) 2016-07-14
WO2014190806A1 (en) 2014-12-04
GB2529117A (en) 2016-02-10
DE112014002051T5 (de) 2016-03-03

Similar Documents

Publication Publication Date Title
JP6516730B2 (ja) アプリケーションをバックアップ及び復元するための方法及び装置
US10394547B2 (en) Applying update to snapshots of virtual machine
US10073747B2 (en) Reducing recovery time in disaster recovery/replication setup with multitier backend storage
US9575991B2 (en) Enabling coarse-grained volume snapshots for virtual machine backup and restore
US20150378849A1 (en) Method and device for backing up, restoring a virtual machine
KR102236522B1 (ko) 정보를 처리하기 위한 방법 및 장치
CN107870968B (zh) 对文件系统卷执行实时更新
US9489274B2 (en) System and method for performing efficient failover and virtual machine (VM) migration in virtual desktop infrastructure (VDI)
US9817734B2 (en) Virtual machine recovery on non-shared storage in a single virtual infrastructure management instance
US9354907B1 (en) Optimized restore of virtual machine and virtual disk data
EP3502877A1 (en) Data loading method and device
US10061665B2 (en) Preserving management services with self-contained metadata through the disaster recovery life cycle
US11003362B2 (en) Disaster recovery practice mode for application virtualization infrastructure
CN106777394B (zh) 一种集群文件系统
CN109168328B (zh) 虚拟机迁移的方法、装置和虚拟化系统
US20190227888A1 (en) Handling node failure in multi-node data storage systems
US10169027B2 (en) Upgrade of an operating system of a virtual machine
US9003139B1 (en) Systems and methods for recovering virtual machines after disaster scenarios
US9317538B1 (en) Methods for generating data sets using catalog entries
US9852028B2 (en) Managing a computing system crash
US10922305B2 (en) Maintaining storage profile consistency in a cluster having local and shared storage
CN113568714A (zh) 磁盘管理方法、装置、电子设备及存储介质
US9658894B2 (en) Automatically and dynamically reclaiming resources during virtual machine decommission
US9223513B2 (en) Accessing data in a dual volume data storage system using virtual identifiers
US10838783B1 (en) Data management system and method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170228

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180313

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180530

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20181106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190305

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20190313

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: 20190326

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190416

R150 Certificate of patent or registration of utility model

Ref document number: 6516730

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150