(57)【特許請求の範囲】
【請求項１】
第１の仮想マシンおよび第２の仮想マシンを含む複数の仮想マシンにわたって横断的に動作する少なくとも第１のアプリケーションおよび第２のアプリケーションをバックアップするための方法であって、
第１のアプリケーションおよび第２のアプリケーションをバックアップする必要性に応答して、第１スクリプトおよび第２スクリプトを含む第１の組のスクリプトを実行して、前記バックアップの前に、第１および第２の仮想マシンを連携させて準備状態に入り、  前記第１のスクリプトを第１の仮想マシンおよび前記第2のスクリプトを第2の仮想マシンに分配することであって、
第１のスクリプトおよび第２のスクリプトは、それぞれ第１の仮想マシン内に配置された第１のアプリケーションの第１のタイプおよび前記第２の仮想マシン内に配置された第２のアプリケーションの第２のタイプに関連付けられることを特徴とし、かつ
第１のスクリプトは前記第２のスクリプトとは異なり、第１のタイプは第２のタイプとは異なることを特徴とし、
第１のスクリプトおよび第２のスクリプトの１つは、
第１および第２のアプリケーションの対応する一つにおいて現在処理されている要求の操作の完了を実行することと、
前記対応する第１および第２のアプリケーションの一つを停止することと、
前記対応する第１および第２のアプリケーションの一つを読み出し要求を受付け、書き込み要求を受付けないように設定することと、を特徴とする前記分配することと、
第１のスクリプトおよび第２のスクリプトの各々が完全に実行されたことに応答して、前記第1および第２の仮想マシンのそれぞれを管理する、第1および第２の仮想マシンの各々に配置された少なくとも１つのバックアップ・エージェントのバックアップ操作をトリガすることであって、前記バックアップ操作は、    
前記バックアップ・エージェントが、それぞれの第１および第２の仮想マシン上の第１および第２のアプリケーションに関連するデータを連携させ突き止め、および、バックアップを実施することを含み、
前記バックアップ・エージェントの各々により実行されたバックアップ操作は、第１および第２のアプリケーションに関連する前記データに対してスナップショット操作を実施することを含むことを特徴とし、
前記バックアップ操作の完了に応答して、第１および第２の仮想マシンの動作を復元するためのものである第２の組のスクリプトを実行することと、
を含む、方法。
【請求項２】
前記バックアップ・エージェントは、物理ノードに配置され、前記物理ノード内の別の仮想マシンを管理する、請求項１に記載の方法。
【請求項３】
前記バックアップ・エージェントは、第１および第２の仮想マシンの少なくとも１つの内に配置され、前記バックアップ・エージェントが配置される前記第１および第２の仮想マシンの少なくとも１つを管理する、請求項１に記載の方法。
【請求項４】
第１および第２のアプリケーションを配備する際、前記バックアップ・エージェントを含む基本イメージに基づいて、前記バックアップ・エージェントが配置される前記第１および第２の仮想マシンの少なくとも１つを作成し、前記バックアップ・エージェントが、前記第１および第２の仮想マシンの少なくとも１つの内に配置され、前記バックアップ・エージェントが配置される前記仮想マシンを管理するようにすることをさらに含む、請求項１に記載の方法。
【請求項５】
前記基本イメージは、スナップショット機能をサポートするファイル・システム管理ソフトウェアをさらに含む、請求項４に記載の方法。
【請求項６】
第１の仮想マシンおよび第２の仮想マシンを含む複数の仮想マシンにわたって横断的に動作する少なくとも第１のアプリケーションおよび第２のアプリケーションをバックアップするための装置であって、前記装置は、
第１のアプリケーションおよび第２のアプリケーションをバックアップする必要性に応答して、第１スクリプトおよび第２スクリプトを含む第１の組のスクリプトを実行して、前記バックアップの前に、第１および第２の仮想マシンを連携させて準備状態に入らせて前記第１のスクリプトを第１の仮想マシンおよび前記第2のスクリプトを第2の仮想マシンに分配することであって、
第１のスクリプトおよび第２のスクリプトは、それぞれ第１の仮想マシン内に配置された第１のアプリケーションの第１のタイプおよび前記第２の仮想マシン内に配置された第２のアプリケーションの第２のタイプに関連付けられることを特徴とし、かつ
第１のスクリプトは前記第２のスクリプトとは異なり、第１のタイプは第２のタイプとは異なることを特徴とし、
第１のスクリプトおよび第２のスクリプトの１つは、
第１および第２のアプリケーションの対応する一つにおいて現在処理されている要求の操作の完了を実行することと、
前記対応する第１および第２のアプリケーションの一つを停止することと、
前記対応する第１および第２のアプリケーションの一つを読み出し要求を受付け、書き込み要求を受付けないように設定することと、を特徴とする前記分配することと、
第１のスクリプトおよび第２のスクリプトの各々が完全に実行されたことに応答して、前記第1および第２の仮想マシンのそれぞれを管理する、第1および第２の仮想マシンの各々に配置された少なくとも１つのバックアップ・エージェントのバックアップ操作をトリガすることであって、
前記バックアップ操作は、前記バックアップ・エージェントが、それぞれの第１および第２の仮想マシン上の第１および第２のアプリケーションに関連するデータを連携させ突き止め、および、バックアップを実施することを含み、
前記バックアップ・エージェントの各々により実行されたバックアップ操作は、第１および第２のアプリケーションに関連する前記データに対してスナップショット操作を実施することを含むことを特徴とし、
前記バックアップ操作の完了に応答して、第１および第２の仮想マシンの動作を復元するためのものである第２の組のスクリプトを実行することと、
を実行する、装置。
【請求項７】
前記バックアップ・エージェントは、物理ノードに配置され、前記物理ノード内の別の仮想マシンを管理する、請求項６に記載の装置。
【請求項８】
前記バックアップ・エージェントは、第１および第２の仮想マシンの少なくとも１つの内に配置され、前記バックアップ・エージェントが配置される前記第１および第２の仮想マシンの少なくとも１つを管理する、請求項６に記載の装置。
【請求項９】
第１および第２のアプリケーションを配備する際、前記バックアップ・エージェントを含む基本イメージに基づいて、前記バックアップ・エージェントが配置される前記第１および第２の仮想マシンの少なくとも１つを作成し、前記バックアップ・エージェントが、前記第１および第２の仮想マシンの少なくとも１つの内に配置され、前記バックアップ・エージェントが配置される前記仮想マシンを管理するようにすることをさらに含む、請求項６に記載の装置。
【請求項１０】
前記基本イメージは、スナップショット機能をサポートするファイル・システム管理ソフトウェアをさらに含む、請求項９に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションのバックアップ及び復元に関し、より詳細には、仮想マシン間（cross-virtual-machine）アプリケーションをバックアップ及び復元するための方法及び装置に関する。
【背景技術】
【０００２】
従来技術においては、オペレーティング・システム・レベル及び仮想マシン・レベルにおけるバックアップ及び復元解決策が存在する。しかしながら、仮想マシン間アプリケーションをバックアップする際、単一の仮想マシン又は単一のオペレーティング・システム用のバックアップ及び復元解決策を直接適用することはできない。複数の仮想マシンにわたって動作するアプリケーションについては、アプリケーションの異なる部分が異なる仮想マシン上で動作する。例えば、アプリケーションのデータベース部分及びアプリケーション・サービス部分が、異なる仮想マシン上で動作することがある。従って、仮想マシン間アプリケーションをバックアップする際、アプリケーションが配置される複数の仮想マシン間でのデータ連携（data coordination）を保証することが必要である。
【０００３】
さらに、従来技術においては、各アプリケーションについて、アプリケーション特有のバックアップ解決策を設計する必要はある。アプリケーションは互いに異なるため、既存の方法は一般的解決策にならず、そのことがアプリケーションのバックアップ及び復元の効率を非常に低くする。
【０００４】
上記を考慮して、依然として従来技術への改善の余地が大いに存在し、従って、仮想マシン間アプリケーションをバックアップ及び復元するための普遍的な技術的解決策を提供することが望ましい。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
複数の仮想マシンにわたって動作するアプリケーションをバックアップ及び復元するための方法及び装置を提供する。
【課題を解決するための手段】
【０００６】
本発明の第１の態様によると、複数の仮想マシンにわたって動作するアプリケーションをバックアップするための方法が提供され、この方法は、アプリケーションをバックアップする必要性に応答して、バックアップの前に複数の仮想マシンを連携させて準備状態に入らせるためのものである第１の組のスクリプトを実行することと、第１の組のスクリプトが完全に実行されることに応答して、複数の仮想マシンを管理する少なくとも１つのバックアップ・エージェントのバックアップ操作をトリガすることであって、バックアップ操作は、バックアップ・エージェントが、それによって管理されるそれぞれの仮想マシン上で、アプリケーションに関連するデータを突き止めることと、バックアップを実施することを含む、トリガすることと、バックアップ操作の完了に応答して、複数の仮想マシンの動作を復元するために用いられる第２の組のスクリプトを実行することとを含む。
【０００７】
本発明の第２の態様によると、複数の仮想マシンにわたって動作するアプリケーションを復元するための方法が提供され、この方法は、アプリケーションを復元するための命令の受信に応答して、復元準備状態に入らせるために用いられる第１の組の復元スクリプトを呼び出し、実行することと、第１の組の復元スクリプトが完全に実行されたことに応答して、少なくとも１つの復元エージェントをトリガして復元操作を実施することであって、復元操作は、復元エージェントが、アプリケーションに関連するバックアップ・データを、それによって管理される仮想マシンにコピーすることを含む、トリガすることと、復元操作の完了に応答して、複数の仮想マシンの動作を復元するために用いられる第２の組の復元スクリプトを呼び出し、実行することとを含む。
【０００８】
本発明の第３の態様によると、複数の仮想マシンにわたって動作するアプリケーションをバックアップするための装置が提供され、この装置は、アプリケーションをバックアップする必要性に応答して、バックアップの前に複数の仮想マシンを連携させて準備状態に入らせるために用いられる第１の組のスクリプトを実行するように構成された第１のスクリプト実行モジュールと、第１の組のスクリプトが完全に実行されたことに応答して、複数の仮想マシンを管理する少なくとも１つのバックアップ・エージェントのバックアップ操作をトリガするように構成されたバックアップ・モジュールであって、バックアップ操作は、バックアップ・エージェントが、それによって管理されるそれぞれの仮想マシン上でアプリケーションに関連するデータを突き止めることと、バックアップを実施することとを含む、バックアップ・モジュールと、バックアップ操作の完了に応答して、複数の仮想マシンの動作を復元するために用いられる第２の組のスクリプトを実行するように構成された第２のスクリプト実行モジュールとを含む。
【０００９】
本発明の第４の態様によると、複数の仮想マシンにわたって動作するアプリケーションを復元するための装置が提供され、この装置は、アプリケーションを復元する命令の受信に応答して、復元準備状態に入らせるために用いられる第１の組の復元スクリプトを呼び出し、実行するように構成された第１の組の復元スクリプト動作モジュールと、第１の組の復元スクリプトが完全に実行されたことに応答して、少なくとも１つの復元エージェントをトリガして復元操作を実施するように構成された復元モジュールであって、復元操作は、復元エージェントが、アプリケーションに関連するバックアップ・データを、それによって管理されている仮想マシンにコピーすることを含む、復元モジュールと、復元操作の完了に応答して、複数の仮想マシンの動作を復元するために用いられる第２の復元スクリプトの組を呼び出し、実行するように構成された第２の復元スクリプトの組の動作モジュールとを含む。
【００１０】
本発明の方法及び装置を採用することにより、仮想マシン間アプリケーションをバックアップ及び復元するための一般的な技術的解決策を提供することができる。
【００１１】
添付図面における本開示の幾つかの実施形態のより詳細な説明を通じて、本開示の上記及び他の目的、特徴及び利点がより明らかとなるであろう。本開示の実施形態において、一般に、同じ参照符号は同じコンポーネントを指す。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態を実施するように適合された例示的なコンピュータ・システム／サーバ１２のブロック図を示す。
【図２】本発明の一実施形態による、アプリケーションをバックアップするための方法のフローチャートを示す。
【図３】本発明の一実施形態による、物理ノードに配置されたバックアップ・エージェントの概略図を示す。
【図４】本発明の一実施形態による、仮想マシン内に配置されたバックアップ・エージェントの概略図を示す。
【図５】本発明の一実施形態による、アプリケーションを復元するための方法のフローチャートを示す。
【図６】本発明の一実施形態による、アプリケーションをバックアップするための装置の概略図を示す。
【図７】本発明の一実施形態による、アプリケーションを復元するための装置の概略図を示す。
【発明を実施するための形態】
【００１３】
幾つかの好ましい実施形態が、本開示の好ましい実施形態が示される添付図面を参照して、より詳細に説明される。しかしながら、本開示は、種々の方法で実施することができ、従って、本明細書で開示される実施形態に限定されると解釈されるべきではない。それとは反対に、これらの実施形態は、本開示の十分かつ完全な理解のため及び本開示の範囲を当業者に完全に伝えるために提供される。
【００１４】
当業者により認識されるように、本発明の態様は、システム、方法又はコンピュータ・プログラム製品として具体化することができる。従って、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）、又はソフトウェアの態様とハードウェアの態様とを組み合わせた実施形態の形態をとることができ、本明細書においては、これらは全て、一般的に「回路」、「モジュール」又は「システム」と呼ぶことがある。さらに、本発明の態様は、コンピュータ可読プログラム・コードが組み込まれた１つ又は複数のコンピュータ可読媒体内に具体化されたコンピュータ・プログラム製品の形態をとることができる。
【００１５】
１つ又は複数のコンピュータ可読媒体のいずれの組み合わせを用いることもできる。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読ストレージ媒体とすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子、磁気、光、電磁気、赤外線、又は半導体のシステム、装置、若しくはデバイス、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例（非網羅的なリスト）として、１つ又は複数の配線を有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラム可能読み取り専用メモリ（ＥＰＲＯＭ又はフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、光記憶装置、磁気記憶装置、又は上記のもののいずれかの適切な組み合わせが挙げられる。本文書の文脈において、コンピュータ可読ストレージ媒体は、命令実行システム、装置若しくはデバイスによって又はこれらと関連して用いるためのプログラムを収容又は格納することができるいずれかの有形媒体とすることができる。
【００１６】
コンピュータ可読信号媒体は、コンピュータ可読プログラム・コードが、例えばベースバンド内に、又は搬送波の一部としてその中に具体化された、伝搬データ信号を含むことができる。このような伝搬信号は、これらに限定されるものではないが、電磁気、光又はこれらのいずれかの適切な組み合わせを含む、種々の異なる形態のいずれかを取ることができる。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではなく、かつ、命令実行システム、装置若しくはデバイスによって又はこれらと関連して用いるためのプログラムを通信、伝搬、又は搬送することができる、いずれかのコンピュータ可読媒体とすることができる。
【００１７】
コンピュータ可読媒体上に具体化されたプログラム・コードは、これらに限定されるものではないが、無線、有線、光ファイバ・ケーブル、ＲＦ等、又は上記のもののいずれかの適切な組み合わせを含む、いずれかの適切な媒体を用いて伝送することができる。
【００１８】
本発明の態様のための動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋等のようなオブジェクト指向型プログラミング言語、及び「Ｃ」プログラミング言語又は同様のプログラミング言語のような従来の手続き型プログラミング言語を含む、１つ又は複数のプログラミング言語のいずれかの組み合わせで記述することができる。プログラム・コードは、完全にユーザのコンピュータ上で実行される場合もあり、スタンドアロンのソフトウェア・パッケージとして、一部がユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。後者のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）若しくは広域ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある（例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて）。
【００１９】
本発明の態様は、本発明の実施形態に記載されるような方法、装置（システム）及びコンピュータ・プログラム製品のフローチャート図及び／又はブロック図を参照して以下に説明される。フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図におけるブロックの組み合わせは、コンピュータ・プログラム命令によって実装できることが理解されるであろう。これらのコンピュータ・プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実施するための手段を作り出すようにすることができる。
【００２０】
これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実装する命令を含む製品を製造するようにすることができる。
【００２１】
コンピュータ・プログラム命令はまた、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で行わせてコンピュータ実施のプロセスを生成し、それにより、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実行するためのプロセスを提供するようにすることもできる。
【００２２】
ここで、本開示の実施形態を実施するために適用できる例示的なコンピュータ・システム／サーバ１２が示される、図１を参照する。コンピュータ・システム／サーバ１２は単なる例示であり、本明細書で説明される本発明の実施形態の使用範囲又は機能に関するいずれかの制限を示唆することを意図するものではない。
【００２３】
図１に示されるように、コンピュータ・システム／サーバ１２が、汎用コンピューティング・デバイスの形態で示される。コンピュータ・システム／サーバ１２のコンポーネントは、これらに限定されるものではないが、１つ又は複数のプロセッサ又は処理ユニット１６、システム・メモリ２８、及びシステム・メモリ２８を含む種々のシステム・コンポーネントをプロセッサ１６に結合するバス１８を含むことができる。
【００２４】
バス１８は、メモリ・バス又はメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、及び種々のバス・アーキテクチャのいずれかを用いるプロセッサ又はローカル・バスを含む、幾つかのタイプのバス構造のうちのいずれかの１つ又は複数を表す。限定ではなく例としては、このようなアーキテクチャは、業界標準アーキテクチャ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ、ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ、ＭＣＡ）バス、Ｅｎｈａｎｃｅｄ  ＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカル・バス、及びＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バスを含む。
【００２５】
コンピュータ・システム／サーバ１２は、典型的には、種々のコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム／サーバ１２がアクセス可能ないずれかの利用可能媒体とすることができ、揮発性媒体及び不揮発性媒体の両方と、取り外し可能媒体及び取り外し不能媒体の両方とを含む。
【００２６】
システム・メモリ２８は、ランダム・アクセス・メモリ（ＲＡＭ）３０及び／又はキャッシュ・メモリ３２など、揮発性メモリの形のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム／サーバ１２は、他の取り外し可能／取り外し不能、揮発性／不揮発性のコンピュータ・システム・ストレージ媒体をさらに含むことができる。単なる例として、取り外し不能の不揮発性磁気媒体（図示されておらず、典型的には「ハード・ドライブ」と呼ばれる）との間の読み取り及び書き込みのために、ストレージ・システム３４を設けることができる。図示されていないが、取り外し可能な不揮発性磁気ディスク（例えば、フロッピー・ディスク」）との間の読み取り及び書き込みのための磁気ディスク・ドライブと、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ又は他の光媒体などの取り外し可能な不揮発性光ディスクとの間の読み取り及び書き込みのための光ディスク・ドライブとを設けることができる。このような例においては、それぞれを、１つ又は複数のデータ媒体インターフェースによってバス１８に接続することができる。以下でさらに示され説明されるように、メモリ２８は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールの組（例えば、少なくとも１つ）を有する少なくとも１つのプログラム製品を含むことができる。
【００２７】
限定ではなく例として、メモリ２８内に、プログラム・モジュール４２の組（少なくとも１つ）を有するプログラム／ユーティリティ４０、並びにオペレーティング・システム、１つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データを格納することができる。オペレーティング・システム、１つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データ、又はそれらの何らかの組み合わせの各々は、ネットワーキング環境の実装形態を含むことができる。プログラム・モジュール４２は、一般に、本明細書で説明される本発明の実施形態の機能及び／又は方法を実行する。
【００２８】
コンピュータ・システム／サーバ１２はまた、キーボード、ポインティング・デバイス、ディスプレイ２４等のような１つ又は複数の外部デバイス１４；ユーザがコンピュータ・システム／サーバ１２と対話することを可能にする１つ又は複数のデバイス；及び／又はコンピュータ・システム／サーバ１２が１つ又は複数の他のコンピューティング・デバイスと通信することを可能にするいずれかのデバイス（例えば、ネットワーク・カード、モデムなど）と通信することもできる。このような通信は、入力／出力（Ｉ／Ｏ）インターフェース２２を経由して行うことができる。さらにまた、コンピュータ・システム／サーバ１２は、ネットワーク・アダプタ２０を介して、ローカル・エリア・ネットワーク（ＬＡＮ）、汎用広域ネットワーク（ＷＡＮ）、及び／又はパブリック・ネットワーク（例えば、インターネット）などの１つ又は複数のネットワークと通信することもできる。示されるように、ネットワーク・アダプタ２０は、バス１８を介して、コンピュータ・システム／サーバ１２の他のコンポーネントと通信する。図示されないが、コンピュータ・システム／サーバ１２と共に他のハードウェア及び／又はソフトウェア・コンポーネントを使用できることを理解されたい。例としては、これらに限定されるものではないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部のディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、及びデータ・アーカイブ・ストレージ・システムなどが含まれる。
【００２９】
ここで、本発明の一実施形態による、仮想マシン間アプリケーションをバックアップするためのバックアップ方法のフローチャートを示す、図２を参照する。アプリケーションが横断的に動作する複数の仮想マシンは、同じ物理ノード上又は複数の物理ノード上に配置することができる。図２に示されるように、本方法は、少なくともステップ２０１、ステップ２０２、及びステップ２０３を含む。
【００３０】
ステップ２０１において、アプリケーションをバックアップする必要性に応じて、第１の組のスクリプトが実行される。第１の組のスクリプトは、バックアップの前に、複数の仮想マシンを連携させて準備状態に入らせるために用いられる。
【００３１】
第１の組のスクリプト及び第２の組のスクリプトは、バックアップ／復元サーバ上に事前に格納し、前もってユーザによりサーバにアップロードしてもよい。従って、ステップ２０１、２０２、及び２０３において適用されるスクリプトは、バックアップ／復元サーバから取り出してもよい。第１の組のスクリプト及び第２の組のスクリプトは、一般に、アプリケーションの開発者によって提供され、アプリケーションをバックアップする際にユーザが実行するのに利用できる。
【００３２】
一実施形態において、バックアップ管理ポータルをバックアップ／復元サーバ上に設けることができ、これはユーザが種々のバックアップ管理操作を実施するのに利用できる。アプリケーションが完全に配備された後、ユーザは、バックアップ管理ポータルを通じて、バックアップ・ポリシー（バックアップ時間、バックアップ量など）及びＳＬＡなどを設定することができる。
【００３３】
受信したバックアップ命令に基づき、アプリケーションのバックアップが必要であるかどうかが判断される。バックアップ命令は、バックアップ・ポリシーに従って予め設定された時間に出されることもあり、又は、バックアップ管理ポータルを通じてユーザにより一時的に出されることもある。
【００３４】
一実施形態において、アプリケーションがデータベースを含む場合、第１の組のスクリプトは、スクリプトがアプリケーションのデータベースにバックアップ状態に入らせることを含み、第２の組のスクリプトは、スクリプトがアプリケーションのデータベースにその動作を復元させることを含む。例えば、第１の組のスクリプトは、以下の操作、即ち、データベースを停止し、データベースを書き込みサスペンド状態に設定すること、及びデータベースをメモリ書き込み状態に設定すること（書き込み操作は、永久メモリにフラッシュされない）のうちの少なくとも一方を実行することができる。それに対応して、第２の組のスクリプトは、第１の組のスクリプトとは対照的な操作、即ち、データベースを開始して、データベースを書き込みサスペンド状態から通常の動作に復元させること、及びデータベースをメモリ書き込み状態から通常の動作に復元させることを実行することができる。
【００３５】
一実施形態において、アプリケーションがアプリケーション・サーバを含むとき、第１の組のスクリプトは、スクリプトがアプリケーションのアプリケーション・サーバにバックアップ状態に入らせることを含み、第２の組のスクリプトは、スクリプトがアプリケーションのアプリケーション・サーバにその動作を復元させることを含む。例えば、第１の組のスクリプトは、以下の操作、即ち、アプリケーション・サーバを停止すること、及び読み取り要求のみを受け入れるようにアプリケーション・サーバを設定することを実行することができる。それに対応して、第２の組のスクリプトは、第１の組のスクリプトとは対照的な操作、例えば、アプリケーション・サーバの動作を復元すること、及び書き込み要求を受け入れることができるようにアプリケーション・サーバを設定することを実行することができる。
【００３６】
一実施形態において、第１の組のスクリプトは、スクリプトがアプリケーションにバックアップ状態に入らせることを含み、第２の組のスクリプトは、スクリプトがアプリケーションに動作を復元させることを含む。例えば、第１の組のスクリプトを用いて、現在処理されている要求を達成し、「新しい書き込み要求を受け入れない」ように設定し、又は、「いかなる新しい要求も受け入れない」ように設定することができる。それに対応して、第２の組のスクリプトは、第１の組のスクリプトとは対照的な操作、例えば、新しい要求を受け入れることができるように設定することを実行する。
【００３７】
当然ながら、当業者は、バックアップ時に複数の仮想マシンを連携させるためにスクリプトを使用できる限り、他のタイプのスクリプトを採用してもよい。例えば、幾つかの他の実施形態においては、第１の組のスクリプトを用いて、メッセージ・キュー・サーバを停止し、クリアし、関連するストレージ空間を準備することもできる。
【００３８】
一実施形態において、第１の組のスクリプトを実行することは、第１の組のスクリプトを分散させること、及び第１の組のスクリプトを複数の仮想マシン上で実行することを含む。一実施形態によれば、第１の組のスクリプトを、アプリケーションが配置されるそれぞれの仮想マシンに分散させることができ、次いで、各々の仮想マシンは、受信した第１の組のスクリプト内の現在の仮想マシンに関連するスクリプトを実行する。別の実施形態によれば、第１の組のスクリプト内のスクリプトは、スクリプトのタイプに従って、対応する仮想マシンにわたって分散される。例えば、スクリプトの組の中のデータベースに関連したスクリプトは、アプリケーション・データベースが配置される仮想マシンに分散され、スクリプトの組の中のアプリケーション・サーバに関連するスクリプトは、アプリケーションのアプリケーション・サーバが配置される仮想マシンに分散され、次いで、各々の仮想マシンが受信したスクリプトを実行する。
【００３９】
ステップ２０２において、第１の組のスクリプトが完全に実行されたことに応答して、複数の仮想マシンを管理する少なくとも１つのバックアップ・エージェントのバックアップ操作がトリガされる。バックアップ操作は、バックアップ・エージェントが、それによって管理されるそれぞれの仮想マシン上でアプリケーションに関連するデータを突き止め、バックアップを実施することを含む。
【００４０】
一実施形態において、バックアップ・エージェントが、それによって管理されるそれぞれの仮想マシン上でアプリケーションに関連するデータを突き止め、バックアップを実施することは、アプリケーションに関連するデータに対してスナップショット操作を実施することを含む。従って、スナップショット操作を通じて全てのバックアップ・エージェントにより取得されたそれぞれのスナップショットを集約することにより、複数の仮想マシン上のアプリケーションの全てのバックアップ予定（to-be-backed-up）データを取得することができる。さらに、バックアップ操作は、バックアップ・データをスナップショットから外部メモリにコピーするステップをさらに含むことができる。従来技術では、例えば、既存のＲｓｙｎｃ方法に基づいてバックアップ・データをコピーするなど、スナップショットからバックアップ・データをコピーする複数の方法が提供される。
【００４１】
図３は、本発明の一実施形態による、物理ノードが配置されるバックアップ・エージェントの概略図を示す。この実施形態において、バックアップ・エージェントは、バックアップ・エージェントが配置される物理ノードにおける、アプリケーションに関連する全ての仮想マシンを管理する。この実施形態を採用する場合、ユーザが、物理ノードに対して操作権を有し、物理ノードにおいてバックアップ・エージェントを直接インストールできることが必要であり、一方、バックアップ・エージェントもまた、物理ノードで動作する仮想マシンに対してバックアップ操作を実施する権利を有する。図３に示されるように、物理ノード１及び物理ノード２において、それぞれ、２つの仮想マシンが作成される。従って、物理ノード１におけるバックアップ復元エージェント（Ｂ／Ｒエージェント）は、仮想マシンＡ（図３に示されるＶＭＡ）及び仮想マシンＢ（図３に示されるＶＭＢ）に対してバックアップ操作を実施することができ、物理ノード２におけるバックアップ・エージェントは、仮想マシンＣ（図３に示されるＶＭＣ）及び仮想マシンＤ（図３に示されるＶＭＤ）に対してバックアップ操作を実施することができる。
【００４２】
図４は、本発明の一実施形態による、仮想マシン内に配置されるバックアップ・エージェントの概略図を示す。この実施形態において、バックアップ・エージェントは、アプリケーションが配置されるそれぞれの仮想マシン内に配置される。多くの場合、ユーザは直接物理ノードに対する操作権を有さないため、この実施形態は、より一般的であり、従って、バックアップ・エージェントを仮想マシン内に組み込み、その結果、バックアップ・エージェントをトリガすることにより、仮想マシン内のアプリケーションに関連するデータのためのバックアップ操作を実施できるようにすることが必要である。図４に示されるように、物理ノード１にて仮想マシンＡ（ＶＭＡ）が作成され、物理ノード２に仮想マシンＢ（ＶＭＢ）が作成される。さらに、バックアップ／復元エージェントは、それぞれの仮想マシン内に配置され、従って、各々のバックアップ／復元エージェントは、仮想マシン内で、アプリケーションに関連するデータに対するバックアップ操作を実施する権利を有する。例えば、ＶＭＡ内のバックアップ／復元エージェントは、論理ボリュームＡ（ＬＶＡ）内のアプリケーションに関連するデータＤ１をバックアップする権利を有する。
【００４３】
この実施形態において、バックアップ・エージェントを仮想マシン内に配置させ、バックアップ・エージェントが配置される仮想マシンを管理するために、アプリケーションを配備する際に仮想マシンを作成するための基本イメージとして、カスタマイズされた基本イメージを提供することが必要である。基本イメージは、以下のようにカスタマイズすることができる、即ち、バックアップ・エージェントを基本イメージに焼き付け、スナップショット機能をサポートする必要がある場合には、スナップショット機能をサポートするファイル・システム管理ソフトウェア（例えば、ＬＶＭ）を基本イメージ内にインストールすることができる。
【００４４】
アプリケーションに関連するデータを突き止めるために、複数の方法を採用することができる。一実施形態においては、バックアップ命令内に、アプリケーション・データが配置される仮想マシンの識別ＩＤ及び仮想マシン内の論理ボリューム・ラベルを提供することができ、従って、バックアップ・エージェントは、バックアップ操作を実施するために、直接、上記の識別情報に従って対応するデータを突き止めることができる。別の実施形態においては、バックアップ命令が、そうした識別情報を含まないことがある。バックアップ・エージェントがバックアップ命令を受信すると、バックアップ・エージェントは、それが配置される仮想マシン内の全てのデータ情報を収集することができ、次に、そうした情報をバックアップ／復元サーバにフィードバックし、次いで、バックアップ／復元サーバは、どのデータ又は仮想マシンがアプリケーションに関連するデータであるかを知らせる。
【００４５】
スナップショット機能をサポートすることが必要な場合は、上述したカスタマイズされた基本イメージに基づいてアプリケーションをインストールする際、スナップショット機能をサポートするファイル・システムによって管理される１つ又は複数の論理ボリューム内に、アプリケーションをインストールしなければならず、かつ、アプリケーション・インストール・ボリューム情報をバックアップ／復元システムに登録しなければならない。
【００４６】
アプリケーションの配備時に、アプリケーションが配置される仮想マシンのＩＤを、バックアップ及び復元システムに登録することができる。代替的な方法として、アプリケーションが完全に配備された後、仮想マシンＩＤを取り出すことができる。クラウド環境を例にとると、仮想マシンＩＤは、バックアップ／復元システムにより、クラウドのＩａａＳインターフェース又はＰａａＳインターフェースから、読み取ることができる。
【００４７】
動作中、以下のデータ構造をバックアップ／復元システム内に保持することができる。
【表１】
0006516730.tif 000002
【００４８】
バックアップ・エージェントをトリガし、バックアップ・ポリシーに従ってバックアップ操作を実施するとき、バックアップ・エージェントによって管理される仮想マシンＩＤに基づいて、対応するバックアップ・コンテンツのリスト及びバックアップ・ポリシーがバックアップ・エージェントに送られ、バックアップ・エージェントは、バックアップ・コンテンツのリスト及びバックアップ・ポリシーを取得した後、上記の情報に従って、バックアップを実施することができ、例えば、バックアップは、スナップショット・ベースのバックアップとすることができる。
【００４９】
上記を考慮して、仮想マシンの異なる設定方法に応じて、各バックアップ・エージェントによって管理される仮想マシンの数は異なり得る。例えば、バックアップ・エージェントが物理ノードに配置される場合、バックアップ・エージェントは、物理ノードにおける全ての仮想マシンを管理することができ、バックアップ・エージェントが仮想マシン内に配置される場合には、バックアップ・エージェントは、これが配置される仮想マシンしか管理することができない。従って、バックアップ・エージェントの数は、アプリケーションが配置される複数の仮想マシンを管理できる限り、必ずしもアプリケーションが配置される仮想マシンの数と等しいとは限らない。
【００５０】
ステップ２０３において、バックアップ操作の完了に応答して、複数の仮想マシンの動作を復元するための第２の組のスクリプトが呼び出され、実行される。第２の組のスクリプトを実行するプロセスは、第１の組のスクリプトを実行する方法と同一であり、ここでは詳細には論じない。
【００５１】
本発明の一実施形態によると、バックアップ・エージェントは、それによって管理されるそれぞれの仮想マシン上で、アプリケーションに関連するデータを突き止め、バックアップを実施する際に、スナップショット操作を実施する。スナップショット技術は、ストレージ・システムにおいて広く適用され、これは、最初にアレイ及びホスト・コンピュータにおいて適用され、一般に、ボリュームに基づきブロック・レベルで処理を行う。スナップショットは、実際には、特定の時点におけるデータの状態を記録する、ストレージ・デバイス内に格納されたデータに向けられた参照マーク又はポインタであるため、スナップショット操作を用いることにより、バックアップ速度を著しく向上させることができる。例えば、読み取られるデータのアドレスを示すためにポインタのリストを確立することによって、一時データのイメージを提供することができる。一般に、スナップショット作成プロセス中、データの物理コピーは存在しないので、スナップショットの作成は、ほぼリアルタイムであり、概ね１秒未満である。スナップショットの原理は従来技術のものであり、本出願人は、本明細書でこれを詳述しない。しかしながら、従来技術におけるスナップショット操作は、通常、単一のシステムに基づき、それは、複数の仮想マシンにわたって動作するアプリケーションのバックアップ、特に、バックアップ・エージェントを通じて、アプリケーションが横断的に動作する複数の仮想マシンにおいてアプリケーションに関連するデータを連携させることによるスナップショット操作の実施には、決して適用されないことに留意されたい。
【００５２】
本発明の一実施形態によれば、スナップショット操作をサポートするために、アプリケーションが論理ボリューム管理（ＬＶＭ）に基づく複数の仮想マシン内に配備されるか、又は、複数の仮想マシンがＬＶＭをサポートする物理ノードに配置される。論理ボリューム管理（ＬＶＭ）は、スナップショット操作をサポートする周知のディスク管理方法である。詳細については、http://en.wikipedia.org/wiki/Logical_Volume_Manager_%28Linux%29を参照されたい。本出願人は、本明細書ではこれを詳述しない。さらに、当業者であれば、既存のホスト・コンピュータＯＳ上のＶｘＶＭ、又はＷｉｎｄｏｗｓシステムのＶＳＳもまた、スナップショットをサポートするストレージ管理システムであり、これを本出願の技術的解決策に適用できることを理解されたい。
【００５３】
図５は、本発明の一実施形態による、複数の仮想マシンにわたって動作するアプリケーションを復元するための方法のフローチャートを示す、本方法は、以下を含む。
【００５４】
ステップ４０１において、アプリケーションを復元する命令の受信に応答して、複数の新しく作成された仮想マシン上にアプリケーションを再配備し、復元準備状態に入らせるための第１の組の復元スクリプトが呼び出され、実行される。
【００５５】
一実施形態において、第１の組の復元スクリプトは、アプリケーション・インスタンスにより動作される元の仮想マシンを削除し、アプリケーションを複数の新しく作成された仮想マシン上に再配備するとき、再配備されたアプリケーションが開始されないようにするために用いられる。配備後にアプリケーションが自動的に開始された場合には、アプリケーションを停止させなければならない。一実施形態において、新しいアプリケーション・インスタンスを配備するための複数の仮想マシンは、復元エージェント機能を含むカスタマイズされたイメージに基づいて作成された仮想マシンである。
【００５６】
ステップ４０２において、第１の組の復元スクリプトの実行の完了に応答して、少なくとも１つの復元エージェントをトリガして復元操作を実施する。復元操作は、アプリケーションに関連するバックアップ・データを取得することと、バックアップ・データを、復元エージェントによって管理される新しい仮想マシンにコピーすることとを含む。
【００５７】
一実施形態において、復元エージェントの復元操作は、複数の新しく作成された仮想マシン上のバックアップ・データに対応するコンテンツ、例えば、仮想マシンＶＭ０１上の論理ボリュームＬＶ０１及び論理ボリュームＬＶ０２における全てのコンテンツを削除することと、ユーザ指定の復元ポリシーに基づいて、バックアップ・データを対応する位置にコピーすることとを含む。
【００５８】
ステップ４０３において、復元操作の完了に応答して、再配備されたアプリケーションの動作を復元するための第２の組の復元スクリプトが呼び出され、実行される。
【００５９】
一実施形態において、第２の組の復元スクリプトは、新しい仮想マシンの環境に基づいて、再配備されたアプリケーションのアプリケーション構成を変更すること、例えば、新しいＩＰアドレス、ホスト名等に基づいてデータベース・リンクを変えること、及びデータベース、アプリケーション・サーバ等を開始することを含む、再配備されたアプリケーションを開始することなどを含むことができる。
【００６０】
図６は、本発明の一実施形態による、複数の仮想マシンにわたって動作するアプリケーションをバックアップするための装置の概略図を示し、この装置は、以下を含む。：
【００６１】
アプリケーションをバックアップする必要性に応答して、第１の組のスクリプトを実行するように構成された第１のスクリプト実行モジュール５０１。第１の組のスクリプトは、バックアップの前に、複数の仮想マシンを連携させて準備状態に入らせるために用いられる。
【００６２】
第１の組のスクリプトが完全に実行されることに応答して、複数の仮想マシンを管理する少なくとも１つのバックアップ・エージェントのバックアップ操作をトリガするように構成されたバックアップ・モジュール５０２。バックアップ操作は、バックアップ・エージェントが、それによって管理されるそれぞれの仮想マシン上で、アプリケーションに関連するデータを突き止めること、及びバックアップを実施することを含む。
【００６３】
バックアップ操作の完了に応答して、複数の仮想マシンの動作を復元するための第２の組のスクリプトを実行するように構成された第２のスクリプト実行モジュール５０３。
【００６４】
一実施形態において、第１の組のスクリプト及び第２の組のスクリプトは、アプリケーションの配備時に提供される。
【００６５】
一実施形態において、バックアップ・エージェントがそれによって管理されるそれぞれの仮想マシン上で、アプリケーションに関連するデータを突き止めること及びバックアップを実施することは、アプリケーションに関連するデータに対してスナップショット操作を実施することを含む。
【００６６】
一実施形態において、バックアップ・エージェントは物理ノードに配置され、物理ノード内の仮想マシンを管理する。別の実施形態において、バックアップ・エージェントは、仮想マシン内に配置され、バックアップ・エージェントが配置される仮想マシンを管理する。
【００６７】
一実施形態において、アプリケーションを配備する際、バックアップ・エージェントを含む基本イメージに基づき、アプリケーションが配置される複数の仮想マシンを作成し、バックアップ・エージェントが、仮想マシン内に配置され、バックアップ・エージェントが配置される仮想マシンを管理するように構成されたモジュールがさらに含まれる。一実施形態において、基本イメージは、スナップショット機能をサポートするファイル・システム管理ソフトウェアをさらに含む。
【００６８】
図７は、本発明の一実施形態による、複数の仮想マシンにわたって動作するアプリケーションを復元するための装置の概略図を示し、この装置は、以下を含む。
【００６９】
アプリケーションを復元する命令の受信に応答して、第１の組の復元スクリプトを呼び出し、実行するように構成された第１の組の復元スクリプト動作モジュール６０１。第１の組の復元スクリプトは、アプリケーションを複数の新しく作成された仮想マシン上に再配備して復元準備状態に入らせるために用いられる。
【００７０】
第１の組の復元スクリプトの実行の完了に応答して、少なくとも１つの復元エージェントをトリガして復元操作を実施するように構成された復元モジュール６０２であって、復元操作は、アプリケーションに関連するバックアップ・データを取得することと、バックアップ・データを、復元エージェントによって管理される新しい仮想マシンにコピーすることとを含む。
【００７１】
復元操作の完了に応答して、第２の組の復元スクリプトを呼び出し、実行するように構成された第２の組の復元スクリプト動作モジュール６０３。第２の組の復元スクリプトは、再配備されたアプリケーションの動作を復元するために用いられる。
【００７２】
一実施形態において、第１の組の復元スクリプトは、アプリケーションが配置される元の複数の仮想マシンを削除し、アプリケーションを、複数の新しく作成された仮想マシン上に再配備するとき、再配備されたアプリケーションが開始されないようにするために用いられる。
【００７３】
一実施形態において、復元エージェントの復元操作は、複数の新しく作成された仮想マシン上のバックアップ・データの対応する位置におけるコンテンツを削除すること、及び、ユーザにより指定された復元ポリシーに基づいて、バックアップ・データを対応する位置にコピーすることを含む。
【００７４】
一実施形態において、第２の組の復元スクリプトは、複数の新しく作成された仮想マシンの環境に基づき、再配備されたアプリケーションのアプリケーション構成を変更すること、及び再配備されたアプリケーションを開始することを含む。
【００７５】
本出願の技術的解決策を採用することにより、物理マシン又は仮想マシンが一般的な意味でバックアップ操作（ファイル・バックアップ、ブロック・ストレージ・バックアップ、及び仮想マシン全体のバックアップのいずれか１つ、又はそれらの幾つかの組み合わせとすることができる）をサポートすることしか必要とされない。この要件は、Ｌｉｎｕｘを用いるか、Ｗｉｎｄｏｗｓ  ＯＳを用いるかに関わりなく、現在のクラウド・コンピューティング環境におけるホスト・コンピュータ及び仮想コンピュータに適用できる。従って、本出願の技術的解決策は、Ｌｉｎｕｘ及びＷｉｎｄｏｗｓ  ＯＳの両方をサポートすることができ、従って用途が広い。
【００７６】
図中のフローチャート及びブロック図は、本発明の種々の実施形態によるシステム、方法及びコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能性、及び動作を示す。これに関して、フローチャート又はブロック図中の各ブロックは、指定された論理機能を実施するための１つ又は複数の実行可能命令を含むコードの、モジュール、セグメント、又は部分を表すことができる。さらに、幾つかの代替的実施形態において、ブロック内に記述された機能は、図中に示したのとは別の順序で実行することができることに留意されたい。例えば、連続して示した２つのブロックは、実際には、実質的に並列に実行することができ、又はブロックは場合により、関与する機能性に応じて逆の順序で実行することができる。さらに、ブロック図及び／又はフローチャート図の各ブロック、並びにブロック図及び／又はフローチャート図中のブロックの組み合わせは、指定された機能又は動作を実行する専用ハードウェアをベースとするシステム、又は専用ハードウェアとコンピュータ命令との組み合わせによって実施できることにも留意されたい。
【００７７】
本発明の種々の実施形態の説明は、例示のために提示されているが、網羅的であること又は開示された実施形態に限定することを意図するものではない。説明された実施形態の範囲及び趣旨から逸脱することなく、当業者には、多くの変更及び変形が明らかであろう。本明細書で用いられる用語は、実施形態の原理、実際の用途、又は市場に見られる技術に勝る技術的改善を最も良く説明するため、又は、当業者が、本明細書に開示される実施形態を理解するのを可能にするために選択された。
【符号の説明】
【００７８】
１２：コンピュータ・システム／サーバ
１４：外部デバイス
１６：プロセッサ又は処理ユニット
１８：バス
２０：ネットワーク・アダプタ
２２：入力／出力（Ｉ／Ｏ）インターフェース
２４：ディスプレイ
２８：システム・メモリ
３０：ランダム・アクセス・メモリ（ＲＡＭ）
３２：キャッシュ・メモリ
３４：ストレージ・システム
４０：プログラム／ユーティリティ
４２：プログラム・モジュール
５０１：第１のスクリプト実行モジュール
５０２：バックアップ・モジュール
５０３：第２のスクリプト実行モジュール
６０１：第１の組の復元スクリプト動作モジュール
６０２：復元モジュール
６０３：第２の組の復元スクリプト動作モジュール
【図１】
0006516730.tif 000003
【図２】
0006516730.tif 000004
【図３】
0006516730.tif 000005
【図４】
0006516730.tif 000006
【図５】
0006516730.tif 000007
【図６】
0006516730.tif 000008
【図７】
0006516730.tif 000009