(57)【要約】      （修正有）【課題】クラスタ化されたネットワーク環境において、ネットワークにより支援されるクラスタ化されたアプリケーションのためのデータのアーカイビング、バックアップ、および読み出しを実行する。【解決手段】仮想クライアントアプリケーションを用いるアーカイブサーバアプリケーションは、実際のバックアップ手順の前に、クラスタ化されたアプリケーションの物理的位置を決定し、その物理的位置は、仮想クライアントアプリケーションによって格納された１組のバックアップ設定ファイルにアクセスするために処理がなされる。バックアップ設定ファイルは、クラスタ化されたアプリケーションがアーカイブおよび／または復元されるべき方法と関連する情報を含む。データアーカイブシステムは、クラスタ化されたアプリケーションのフェイルオーバー動作のためにネットワークを監視せずに、クラスタ化されたアプリケーションのアーカイビングが実行可能である。【選択図】図１
2005352723.tif 000002
【特許請求の範囲】
【請求項１】
クラスタ化されたネットワーク環境にて、クラスタ化されたアプリケーションのためのデータをアーカイブする方法であって、
前記クラスタ化されたアプリケーションのための浮動識別子を含む、前記クラスタ化されたアプリケーションのための位置要求を生成するステップ、
前記位置要求に応答して、前記クラスタ化されたアプリケーションのための物理位置識別子を得るステップ、
前記クラスタ化されたアプリケーションのためのアーカイブ設定ファイルにアクセスするステップ、および
前記アーカイブ設定ファイルにしたがって、前記クラスタ化されたアプリケーションのためのデータをアーカイブするステップ
を含む、方法。
【請求項２】
前記物理位置識別子は、前記クラスタ化されたネットワーク環境において、ノードに対する機械名を含む、請求項１に記載の方法。
【請求項３】
前記浮動識別子は、前記クラスタ化されたアプリケーションに固有の仮想ＩＰアドレスを含む、請求項１に記載の方法。
【請求項４】
前記物理位置識別子は、前記クラスタ化されたネットワーク環境において、ノードを識別する、請求項１に記載の方法。
【請求項５】
前記物理位置識別子に応答して、アクティブなアーカイブクライアントアプリケーションが前記ノードに存在しないことを決定するステップ、および
前記決定するステップに応答して、前記アーカイブするステップより前に、アクティブなアーカイブクライアントアプリケーションを前記ノードにインストールするステップ
をさらに含む、請求項４に記載の方法。
【請求項６】
前記物理位置識別子に応答して、前記ノードに存在するアーカイブクライアントアプリケーションが休止中であることを決定するステップ、および
前記決定するステップに応答して、前記アーカイブクライアントアプリケーションを前記ノードにてアクティブにするステップ
をさらに含む、請求項４に記載の方法。
【請求項７】
前記アーカイブするステップは、前記データのための少なくとも１つの記憶媒体装置を識別する、請求項１に記載の方法。
【請求項８】
クラスタ化されたネットワーク環境にて、クラスタ化されたアプリケーションデータをアーカイブするシステムであって、
アーカイブサーバアプリケーションと、
前記クラスタ化されたネットワーク環境において、クラスタ化されたアプリケーションの通常動作のために設定されている第１のノードのための第１のアーカイブクライアントアプリケーションと、
前記クラスタ化されたネットワーク環境において、前記クラスタ化されたアプリケーションのフェイルオーバー動作のために設定されている第２のノードのための第２のアーカイブクライアントアプリケーションと、
前記第１のノードまたは前記第２のノードから、前記クラスタ化されたアプリケーションのための物理位置識別子を得て、前記クラスタ化されたアプリケーションのためのアーカイブ設定ファイルにアクセスするために設定されている、前記クラスタ化されたアプリケーションに対応する仮想クライアントアプリケーションと
を含む、システム。
【請求項９】
前記アーカイブサーバアプリケーションは、前記アーカイブ設定ファイルにしたがって、前記クラスタ化されたアプリケーションのためのデータのアーカイビングを管理する、請求項８に記載のシステム。
【請求項１０】
前記物理位置識別子は、前記第１のノードまたは前記第２のノードに対する機械名を含む、請求項８に記載のシステム。
【請求項１１】
前記仮想クライアントアプリケーションはさらに、前記クラスタ化されたアプリケーションのための位置要求を生成するために設定され、
前記位置要求は、前記クラスタ化されたアプリケーションのための浮動識別子を含む、請求項８に記載のシステム。
【請求項１２】
前記浮動識別子は、前記クラスタ化されたアプリケーションに固有の仮想ＩＰアドレスを含む、請求項１１に記載のシステム。
【請求項１３】
前記アーカイブサーバアプリケーションは、前記クラスタ化されたネットワーク環境において、第３のノードに存在する、請求項８に記載のシステム。
【請求項１４】
前記仮想クライアントアプリケーションは前記第３のノードに存在する、請求項１３に記載のシステム。
【請求項１５】
前記アーカイブ設定ファイルは前記第３のノードに格納される、請求項１４に記載のシステム。
【請求項１６】
前記仮想クライアントアプリケーションは、前記クラスタ化されたネットワーク環境において、第３のノードに存在する、請求項８に記載のシステム。
【請求項１７】
前記第１のアーカイブクライアントアプリケーションは前記第１のノードに存在し、前記第２のアーカイブクライアントアプリケーションは前記第２のノードに存在する、請求項８に記載のシステム。
【請求項１８】
クラスタ化されたネットワーク環境において、クラスタ化されたアプリケーションのためのデータをアーカイブするシステムであって、
前記クラスタ化されたアプリケーションのための浮動識別子を含む、前記クラスタ化されたアプリケーションのための位置要求を生成する手段、
前記位置要求に応答して、前記クラスタ化されたアプリケーションのための物理位置識別子を得る手段、
前記クラスタ化されたアプリケーションのためのアーカイブ設定ファイルにアクセスする手段、および
前記アーカイブ設定ファイルにしたがって、前記クラスタ化されたアプリケーションのためのデータのアーカイビングを管理する手段
を含む、システム。
【請求項１９】
前記生成する手段、前記得る手段、前記アクセスする手段、および前記管理する手段はそれぞれ、ソフトウエアにて実行される、請求項１８に記載のシステム。
【請求項２０】
クラスタ化されたネットワーク環境において、クラスタ化されたアプリケーションデータをアーカイブする方法であって、
前記クラスタ化されたアプリケーションの現在の物理的位置を決定するステップと、
前記クラスタ化されたアプリケーションに対応するアーカイブ設定ファイルにしたがって、前記クラスタ化されたアプリケーションのための第１のファイルをアーカイブするステップと、
前記決定するステップを繰り返して、前記クラスタ化されたアプリケーションの更新された物理的位置を得るステップと、
前記アーカイブ設定ファイルにしたがって、前記クラスタ化されたアプリケーションのための第２のファイルをアーカイブするステップと
を含む、方法。
【請求項２１】
前記更新された物理的位置は、前記現在の物理的位置と同じである、請求項２０に記載の方法。
【請求項２２】
前記物理的位置を決定するステップは、
前記クラスタ化されたアプリケーションのための浮動識別子を含む、前記クラスタ化されたアプリケーションのための位置要求を生成するステップと、
前記位置要求に応答して、前記クラスタ化されたアプリケーションのための物理位置識別子を得るステップと
を含む、請求項２０に記載の方法。
【請求項２３】
前記物理位置識別子は、前記クラスタ化されたネットワーク環境において、ノードに対する機械名を含む、請求項２２に記載の方法。
【請求項２４】
前記浮動識別子は、前記クラスタ化されたアプリケーションに固有の仮想ＩＰアドレスを含む、請求項２２に記載の方法。
【発明の詳細な説明】
【発明の属する技術分野】
【０００１】
本発明は主に、コンピュータデータのアーカイビングに関する。より具体的には、本発明は、クラスタ化されたネットワーク環境におけるコンピュータデータのアーカイビングに関する。
【発明の背景】
【０００２】
［関連する参考文献］
本出願は、「クラスタ化された環境でアーカイブクライアントアプリケーションを管理するシステムおよび方法」というタイトルの米国特許出願に含まれる主題に関連する。
何十年もの間、情報はコンピュータ間で多様な形態にて共有されている。情報の共有を促す１つの有名な形態は、クライアント／サーバモデルとして知られており、このクライアント／サーバモデルは、クライアント／サーバネットワークとして広く認識されている。クライアント／サーバネットワークにおいて、サーバアプリケーションは、（１またはそれ以上のコンピュータハードウエアに存在し、）多数のクライアントアプリケーションからの要求を待ち受け、そして実行するソフトウエアプログラムである。サーバアプリケーションはしばしば、データの格納を管理し、１またはそれ以上のクライアントアプリケーションは、サーバアプリケーションへのアクセスを確保する。
クライアント／サーバネットワークの数が増加したため、この技術もまた同様に進歩して、多くのクライアントアプリケーションが単一のサーバアプリケーションにアクセスすることを可能にした。この能力はまた、サーバアプリケーションへの依存と、サーバの障害を少なくしたいという要望とを増加させた。この技術はさらに進歩して、主要なサーバシステムに障害がある場合に、補助的なサーバシステムを絶え間なくアクティブにすることを可能にした。この絶え間ないアクティブ化プロセスは、クライアントに気付かれることなく、すべてのアクティブなアプリケーションを、主要なメインサーバから補助的なサーバシステムへと移行させる。この移行プロセスは典型的には、「フェイルオーバー（"failover"または"failing over"）」として当業者に知られており、「サーバクラスタにおいて、アプリケーション設定情報を明確にフェイルオーバーする方法およびシステム」というタイトルの米国特許番号第６，３６０，３３１号に教示されている。主要なサーバシステムから補助的なサーバシステムへと（または第１のノードから第２のノードへと）フェイルオーバーするために設定されたアプリケーションは、「クラスタ化されたアプリケーション」として当業者に知られている。クラスタ化されたアプリケーションは、仮想インターネットプロトコル（「ＩＰ」）アドレスを有する共有化資源として関連付けられて設定される。仮想ＩＰアドレスは変化せず、しかも物理的位置に依存しないため、障害が生じた場合であっても、クラスタ化されたアプリケーションへの継続的なクライアント通信が可能となる。
【０００３】
フェイルオーバーのプロセスは、データを正確にアーカイブしそして復元する際の困難性を増加させる。アーカイブプロセスの間、アーカイブシステムは、「バックアップジョブ」として当業者に知られていることを予定しているだろう。この「バックアップジョブ」は、アーカイブのための特定のアプリケーション、ファイルシステム、ドライブ、またはこれらと同様のものを識別する。バックアップジョブがアクティブになると、アーカイブシステムは、アーカイブされるアプリケーションの物理的位置および特定の設定を認識しなければならない。このため、バックアップジョブがアクティブになって、ノードＡにてアプリケーションをアーカイブし、このアプリケーションがノードＢへとフェイルオーバーする場合、このアプリケーションは、ノードＡではもはやアクティブではないため、アーカイブしているジョブは失敗するだろう。
【０００４】
したがって、クラスタ化されたアプリケーションのアーカイビングを可能にするデータアーカイブシステムおよびデータアーカイブ方法が求められている。
【発明の開示】
【発明の簡単な要旨】
【０００５】
本発明にかかる実用的なデータアーカイブシステムは、少なくとも１つのアーカイブクライアントアプリケーションと、少なくとも１つの対応するアーカイブサーバアプリケーションと、少なくとも１つの対応する仮想クライアントアプリケーションとを含む。具体的には、このアーカイブシステムは仮想クライアントアプリケーションを利用し、この仮想クライアントアプリケーションは、アーカイブが特定のクラスタ化されたアプリケーションのために実行される設定および処理を促す。クラスタ化されたアプリケーションのための仮想クライアントアプリケーションの使用は、クラスタ化されたアプリケーションが新しいノードへとフェイルオーバーすることを可能にする一方で、フェイルオーバーされたクラスタ化されたアプリケーションをアーカイブする能力を保存する。実際には、アーカイブシステムをセットアップするプロセスは、仮想クライアントアプリケーションが仮想ＩＰアドレスを含むように、仮想クライアントアプリケーションを生成し、この仮想ＩＰアドレスは、アーカイブシステムにおいて、各アーカイブクライアントアプリケーションによって参照可能である。
本発明の上記の態様および他の態様は、クラスタ化されたネットワーク環境において、クラスタ化されたアプリケーションのためのデータをアーカイブする方法によって１つの形態にて実行させてもよい。この方法は、クラスタ化されたアプリケーションのための浮動識別子を含む、前記クラスタ化されたアプリケーションのための位置要求を生成するステップと、前記位置要求に応答して、前記クラスタ化されたアプリケーションのための物理位置識別子を得るステップと、前記クラスタ化されたアプリケーションに対応するアーカイブ設定ファイルにアクセスするステップと、前記アーカイブ設定ファイルにしたがって、前記クラスタ化されたアプリケーションのためのデータをアーカイブするステップとを含む。
【好ましい実施形態の詳細な説明】
【０００６】
ここで、本発明は機能的ブロック構成要素および多様な処理ステップの観点で記載することができる。このような機能的ブロックは、特定の機能を実行するために設定された多数のハードウエア構成要素、ソフトウエア構成要素、および／またはファームウエア構成要素によって実現することができる。例えば、本発明は種々の集積回路要素、記憶要素、ロジック要素、参照テーブル（look-up table）、およびこれらと同様のものを使用してもよく、これらは１またはそれ以上のマイクロプロセッサまたは他の制御デバイスの制御下で様々な機能を実行してもよい。加えて、本発明は多数の実用的なコンピュータハードウエアの実行と連動して実行させてもよいこと、ならびに、ここで記載されている特定のシステム構造は単に本発明の１つの例示的な用途にすぎないことを、当業者は理解するだろう。
【０００７】
ここで示されそして記載された特定の実行は、本発明およびそのベストモードの例示であり、いずれかの方法によって本発明の範囲を限定することを特段に意図するものではない。実際に、簡潔さの点から、従来技術およびコンピュータ装置、コンピュータネットワーク、データ転送、データアーカイビング、データ通信ならびにデータ格納の態様、ならびにシステム（およびシステムの個々の動作構成要素）の他の機能的な態様は、ここでは詳細に記載しないつもりである。さらに、ここに含まれる種々の図で示される接続ラインは、種々の要素間での例示的な機能的関係および／または物理的な連結を表すことを意図している。実用的な実施形態においては、多くの代替的または付加的な機能的関係または物理的接続が存在するかもしれないことを留意すべきである。
【０００８】
図１は、本発明に含まれるであろう、クラスタ化されたネットワーク環境１００の一例の模式的な図である。説明を容易にするために、クラスタ化されたネットワーク環境１００は単純化された構造を表す。すなわち、実際の構造は、付加的および／または代替的な物理的要素および論理的要素を有していてもよい。クラスタ化されたネットワーク環境１００は通常、アーカイブサーバシステム１０２、多数のクライアント構成要素１０４，１０６，１０８，１１０，１１２、および多数の記憶媒体装置１１６，１１８，１２０，１２２を含む。１またはそれ以上の記憶媒体装置は、ネットワークにアクセスされる記憶装置（ＮＡＳ；network-accessed storage）と関連付けられてもよい。代替的に（あるいは付加的に）、１またはそれ以上の記憶媒体装置は、記憶領域ネットワーク（ＳＡＮ；storage area network）１２６と関連付けられてもよい。従来のＳＡＮ機構を用いた場合、クライアント構成要素１１０およびクライアント構成要素１１２は、ＦＣスイッチ１２８を介して記憶資源を共有する。
【０００９】
図１において、アーカイブサーバシステム１０２、クライアント構成要素、および記憶媒体装置は物理的なハードウエア構成要素を表す。アーカイブサーバシステム１０２は、ここで記載されたアーカイブサーバアプリケーションのタスク（および場合によっては他のタスク）を実行するために設定されたコンピュータであり、一方、クライアント構成要素は、データのアーカイビング（バックアップ）を要求する多数のクラスタ化されたアプリケーションと関連付けられたタスクを実行するために設定されたコンピュータである。クライアント構成要素はまた、ここで記載されたアーカイブクライアントアプリケーションのタスク（および場合によっては他のタスク）を実行するために設定されていてもよい。例えば、クライアント構成要素１０４は、クラスタ化された電子メールサーバアプリケーションのための主要なノードであってもよく、クライアント構成要素１０６は、クラスタ化された電子メールサーバアプリケーションのためのフェイルオーバーノードであってもよく、さらに、アーカイブサーバシステム１０２は、クラスタ化された電子メールサーバアプリケーションのためのバックアップ手順および復元手順を担っていてもよい。単一のクラスタ化されたアプリケーションは、多数のクライアント構成要素ノードによって支援されていてもよいが、しかしながら、実際のほとんどの配置においては、クラスタ化されたアプリケーションはそれぞれ、供給された１つの主要なノードと、供給された１つのフェイルオーバーノードとを有する。ここで記載された例示的な実施形態の目的のためには、アーカイブサーバシステム１０２にはクラスタ化されたアプリケーションは存在しない。しかしながら、実用的な実施形態ではそのように限定される必要はない。
【００１０】
ここで用いられているように、「ノード」は、ネットワーク環境において、物理的なプロセシング位置に関する。この点において、ノードはコンピュータまたはプリンタなどの他のデバイスであることができる。実用的なネットワークにおいては、各ノードは固有のネットワークアドレスを有し、このネットワークアドレスは、データリンクコントロール（ＤＬＣ）アドレスまたはメディアアクセスコントロール（ＭＡＣ）アドレスと呼ばれることもある。
【００１１】
「サーバ」は、特にネットワーク環境において、管理、プロセシング、読み出し、および／またはデータ伝送に関連付けられた多数の機能および動作を実行するために設定されたコンピュータ処理装置またはコンピュータ処理システムとしばしば定義される。あるいは、「サーバ」または「サーバアプリケーション」は、そのような処理、方法、および／または技法を実行するソフトウエアに言及してもよい。市販されているほとんどの一般用サーバにおいては、本発明のアーカイブシステムを支援する実用的なサーバ構成要素は、ユニックス、リナックス、アップルマッキントッシュＯＳ、またはマイクロソフトウインドウズのあらゆる改訂版などのいずれの適切なオペレーティングシステム上で実行するように設定されていてもよく、かつ、多数のマイクロプロセッサ装置（例えば、インテル社によるペンティアムファミリー、またはアドバンスドマイクロデバイス社、ＩＢＭ社、サンマイクロシステムズ社、あるいはモトローラ社から市販されているプロセッサ装置）を実行してもよい。
【００１２】
サーバプロセッサは、システムメモリ（例えば、適切な容量のランダムアクセスメモリ）および適切な容量の記憶装置または「永久的な（permanent）」メモリを用いて通信を行なう。永久的なメモリは１またはそれ以上のハードディスク、フロッピーディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、磁気テープ、取り外し可能な媒体、固体状態記憶装置またはこれらの組み合わせを含んでいてもよい。既知の技法にしたがって、オペレーティングシステムのプログラムおよびサーバアプリケーションプログラムは永久的なメモリに存在し、動作中にこれらの一部をシステムメモリに取り込んでもよい。コンピュータプログラミング分野における当業者の実務にしたがって、種々のサーバ構成要素またはクライアント構成要素によって実行可能である代表的な動作例を参照して、本発明を以下のように説明する。このような動作は、コンピュータにより実行され、コンピュータ化され、ソフトウエアにより実施され、またはコンピュータにより実施されるものであると言及されることがある。代表的に示される動作は、電気信号からなる種々のマイクロプロセッサ装置による操作を含み、種々の電気信号は、他のプロセシング信号と同様に、システムメモリにおいてメモリ位置でのデータビットを表す。データビットが維持されるメモリ位置は、データビットに対応する特定の電気的特性、磁気的特性、光学的特性、または有機的特性を有する物理的位置である。
【００１３】
ソフトウエアが実行される場合、本発明の種々の要素（前記要素はクライアント装置またはアーカイブサーバシステム１０２に存在していてもよい）は本質的に、種々のタスクを実行するコードセグメントである。プログラムまたはコードセグメントは、プロセッサが読み取り可能な媒体内に格納可能であるか、または、伝送媒体または通信経路（パス）にわたって搬送波内で具現化されるコンピュータデータ信号によって伝送可能である。「プロセッサが読み取り可能な媒体」または「機械が読み取り可能な媒体」は、情報を格納または転送することができるいかなる媒体を含んでいてもよい。プロセッサが読み取り可能な媒体の例には、電子回路、半導体メモリ装置、ＲＯＭ、フラッシュメモリ、消去可能なＲＯＭ（ＥＲＯＭ）、フロッピーディスケット、ＣＤ−ＲＯＭ、光学ディスク、ハードディスク、ファイバ光学媒体、無線周波数（ＲＦ）リンク、またはこれらと同様のものが含まれる。コンピュータデータ信号は、電子ネットワークチャンネル、光学ファイバ、空気、電磁気経路（パス）、またはＲＦリンクなどの伝送媒体中を伝搬することができる。コードセグメントは、インターネット、イントラネット、ＬＡＮ、またはこれらと同様のものなどのコンピュータネットワークを介してダウンロード可能である。
【００１４】
実用的な用途においては、アーカイブサーバシステムおよびクライアント構成要素は、既知のコンピュータプラットフォーム（例えば、コンパックアルファＴｒｕ６４，フリーＢＳＤ，ＨＰ−ＵＸ，ＩＢＭ  ＡＩＸ，リナックス，ＮＣＲ  ＭＰ−ＲＡＳ，ＳＣＯ  オープンサーバ，ＳＣＯ  ユニックスウエア，ＳＧＩ  イリックス，ソラリス（Ｓｐａｒｃ），ソラリス（インテル），ウインドウズ  ２０００，ウインドウズ  ＮＴ，およびノベル  ネットウエア）にしたがって設定されていてもよい。実用的な用途においては、記憶媒体装置は、既知のテープ技術（ＤＬＴ，８ｍｍ，４ｍｍＤＡＴ，ＤＴＦ，ＬＴＯ，ＡＩＴ−３，スーパーＤＬＴ，ＤＴＦ２，およびＭ２）、または既知の光ディスク技術（ＤＶＤ−ＲＡＭ，ＣＤ，またはそれと同様のもの）にしたがって設定可能である。実用的な用途においては、クラスタ化されたネットワーク環境１００は、多数のＳＡＮ／ＮＡＳ装置（例えば、アンカー（Ancor），ブロカード（Brocade），チャパラル（Chaparral），クロスロード（Crossroads），ＥＭＣ，ファルコンストル（FalconStor），ガドゾックス（Gadzoox），ネットワークアプライアンス（Network Appliance），およびヴィクセル（Vixel））を支援することができる。簡潔さの点から、これら従来の装置およびプラットフォームをここで記載するつもりはない。
【００１５】
従来のクラスタ化されたネットワーク環境において、アーカイブサーバシステム１０２のオペレーティングシステムおよびクライアント構成要素のオペレーションシステムは、クラスタ化されたアプリケーションを操作することができる。言い換えれば、（フェイルオーバーノードがクラスタ化されたアプリケーションを支援すると仮定する場合）クラスタ化されたアプリケーションは、１つのクライアントノードから別のクライアントノードへとフェイルオーバーすることができ、クラスタ化されたアプリケーションは、その物理的位置とともに変化しない浮動識別子によって一意的に識別される。実用的な用途においては、この浮動識別子は、クラスタ化されたアプリケーションに割り当てられる仮想ＩＰアドレスであり、この仮想ＩＰアドレスは、その物理的なノードの位置に関わらず、特定のクラスタ化されたアプリケーションを識別する。ここで、「ＩＰアドレス」は従来の意味で用いられており、すなわち、ＩＰアドレスは、ＴＣＰ／ＩＰ相互ネットワークにおいて、コンピュータまたは装置のための識別子である。メッセージは、所望の目的地のＩＰアドレスを用いるようなネットワーク内で送られる。現在の規格によれば、ＩＰアドレスの形式は、ピリオドによって区切られた４個の番号として記載される３２ビットの数アドレスであり、各番号は０から２５５までが可能である。例えば、「１．２３４．５６．７８９」はＩＰアドレスとすることができる。
【００１６】
図２は、クラスタ化されたネットワーク環境にて配置可能であるアーカイブシステム２００の一例の一部を示す模式的な図である。図２に示される部分は、単一のクラスタ化されたアプリケーション２０２のアーカイビングを支援する機能的な構成要素を表し、クラスタ化されたアプリケーション２０２は、少なくとも２つのクライアント構成要素のノード（ノードＡ（参照番号２０４）およびノードＢ（参照番号２０６））によって支援される。アーカイブシステム２００に関する下記の記載は、多数の互換性のあるクライアントノードを検討するために展開することができる。さらに、実際の実行は、多数の異なるクラスタ化されたアプリケーションを支援することができる。
【００１７】
アーカイブシステム２００は通常、アーカイブサーバシステム２０８、クライアントノード２０４、およびクライアントノード２０６を含み、これらはすべて、周知の規格およびプロトコルにしたがってデータ通信のために相互接続される。ある実用的な実施形態においては、アーカイブシステム２００は、アーカイブサーバシステム２０８とクライアントノード２０４／２０６との間の通信、およびクライアントノード２０４とクライアントノード２０６との間の通信のためのインターネットプロトコル（「ＩＰ」）の一連のプロトコルと互換性を有する。もちろん、アーカイブシステム２００および／またはクラスタ化されたネットワーク環境は、アーカイビングおよび他の目的のために、付加的または代替的な通信技法、通信プロトコル、または通信方法を利用してもよい。
【００１８】
例示的な実施形態においては、アーカイビングサーバシステム２０８はある物理ノードにて実行される。アーカイビングサーバシステム２０８は、アーカイブサーバアプリケーション２１０と、クラスタ化されたアプリケーション２０２のための仮想クライアントアプリケーション２１２とを含む。アーカイブサーバシステム２０８は好ましくは、１またはそれ以上の適切に設定された記憶媒体要素を含むかまたは前記記憶媒体要素と通信し、前記記憶媒体要素は、このシステムによって利用される他のデータに加えて、アーカイブされたデータを格納することができる（図１参照）。アーカイブデータアプリケーション２１０は、種々のアーカイブクライアントアプリケーションと通信するため、ならびに、場合によってはここで記載されているアーカイビングタスクを管理するために適切に設定される。以下により詳細に記載されるように、実用的なアーカイブサーバシステム２０８は、類似する複数のクラスタ化されたアプリケーションのための複数の仮想クライアントアプリケーションを含んでいてもよい。例示的な実施形態においては、異なる仮想クライアントアプリケーションが、異なるクラスタ化されたアプリケーションそれぞれのために生成され、この異なるクラスタ化されたアプリケーションは、アーカイブサーバシステム２０８によって提供される。
【００１９】
本例の目的のために、クライアントノード２０４は、クラスタ化されたアプリケーション２０２に対する「主要な」動作ノードまたは「通常の」動作ノードとして考慮されるだろうし、クライアントノード２０６は、フェイルオーバーノードとして考慮されるだろう。言い換えれば、クラスタ化されたアプリケーション２０２ａは通常、クライアントノード２０４にて実行され、クラスタ化されたアプリケーション２０２ｂは、クライアントノード２０６でフェイルオーバーモードにて実行される。既知のクラスタ化技法にしたがって、クラスタ化されたアプリケーション２０２は、クライアントノード２０４／２０６の両方で重複してインストールされることができ、クラスタ化されたアプリケーション２０２ｂは、フェイルオーバーの通知によりアクティブになることができる。ここで記載されたアーカイブシステムの背景により、クライアントノード２０４／２０６は構成および機能を一致させることができる。
【００２０】
クライアントノード２０４は、アーカイブクライアントアプリケーション２１４を含み、このアーカイブクライアントアプリケーション２１４は、アーカイブサーバシステム２０８と連動してアーカイビング機能、バックアップ機能、および読み出し機能を実行するために設定される。この点で、アーカイブクライアントアプリケーション２１４は、クラスタ化されたアプリケーション２０２のアーカイビング要求、バックアップ要求、および読み出し要求を支援するために特別に設定される。さらに、アーカイブクライアントアプリケーション２１４は、多数の異なるクラスタ化されたアプリケーションを支援することができる。クラスタ化されたアプリケーション２０２ａのフェイルオーバーに応答して、クライアントノード２０６はアクティブなノードとなり、クラスタ化されたアプリケーション２０２ｂはクライアントノード２０６でアクティブになる。この点で、アーカイブクライアントアプリケーション２１４は、クラスタ化されたアプリケーション２０２のアーカイビング要求、バックアップ要求、および読み出し要求をもはや管理しない。むしろ、クライアントノード２０６に存在するアーカイブクライアントアプリケーション２１６は、これらの要求について責任を負うと仮定する。以下により詳細に記載されるように、アーカイブクライアントアプリケーション２１６は、クライアントノード２０６にて予めインストールしておくことができ、フェイルオーバー時にアクティブになる準備ができている。代わりに、アーカイブクライアントアプリケーション２１６は、フェイルオーバーに応答して、クラスタ化されたネットワーク環境において適切な位置から即時に（「on the fly」）インストールが可能である。クラスタ化されたアプリケーション２０２の物理的位置に関わらず、アーカイブシステム２００がアーカイブクライアントアプリケーションを用いてアーカイビングジョブを実行することができる点、および、アーカイブシステム２００を適切な方法にて配置できる点で、異なるアーカイブクライアントアプリケーションを使用することが望ましい。既知のクラスタ化技法および手順にしたがって、クラスタ化されたアプリケーション２０２はいつでも（そして、バックアップ中または復元処理中であっても）、クライアントノード２０４／２０６の間でフェイルオーバーおよびフェイルバック（failback）を行なうことができる。
【００２１】
例示的な実施形態において、アーカイブサーバアプリケーション２１０または仮想クライアントアプリケーション２１２は、各ノードにて、アーカイブクライアントアプリケーションをインストールするかまたはアクティブにすることができ、各ノードは、アーカイブシステム２００によって支援されたクラスタ化されたアプリケーションを受け取ることができる。仮想クライアントアプリケーション２１２および／またはアーカイブサーバアプリケーション２１０は、アーカイブサーバシステム２０８によるアーカイブ設定ファイルの格納および操作を促す。アーカイブ設定ファイルは、特定のクラスタ化されたアプリケーションと関連付けられている（クラスタ化されたアプリケーションのためのアーカイブ設定ファイルは、クラスタ化されたアプリケーションがアーカイブシステム２００によってアーカイブされるかまたはバックアップされる方法を指示する。）。さらに、仮想クライアントアプリケーション２１２および／またはアーカイブサーバアプリケーション２１０は、クラスタ化されたアプリケーションデータの格納および操作を促す。すなわち、実際のデータはアーカイブされ、および／または復元される。クラスタ化されたアプリケーションデータの実際のアーカイビング、バックアップ、および取り出しは、アーカイブサーバアプリケーション２１０によって管理され、かつ、仮想クライアントアプリケーション２１２によってアクセスされた特定のアーカイビング設定ファイルにしたがって、それぞれのアーカイブクライアントアプリケーションによって実行される。
【００２２】
アーカイブジョブがアクティブになると、アーカイブサーバアプリケーション２１０は、仮想クライアントアプリケーション２１２から、特定のクラスタ化されたアプリケーション２０２のための浮動識別子を得ることができる。次いで、アーカイブサーバシステム２００は、クラスタ化されたアプリケーション２０２のための位置要求を送信する。実用的な実施形態においては、この位置要求は、特定のクラスタ化されたアプリケーション２０２の浮動識別子を含む。浮動識別子はクラスタ化されたアプリケーションとともに移動するため、位置要求に応答するアーカイブクライアントアプリケーションは、クラスタ化されたアプリケーション２０２と同じ物理的位置に存在するアーカイブクライアントアプリケーションとなることができる。次いで、アーカイブシステム２００は、各アーカイブクライアントアプリケーションに、クラスタ化されたアプリケーションのための格納された設定ファイルを使用させることにより、現在のクライアントノードが変化するかどうか、またはフェイルオーバーが起きるかどうかを決定する必要性をなくすことができる。
【００２３】
図２に示される例において、アーカイブサーバシステム２０８は物理的なコンピュータ処理ノード上に存在し、一方、クラスタ化されたアプリケーション２０２はノード２０４に現在存在し、このノード２０４は、クラスタ化されたアプリケーション２０２の通常動作のために設定される。クラスタ化されたアプリケーション２０２は、第３の物理的なノード２０６へとフェイルオーバーすることができ、この第３の物理的なノード２０６は、クラスタ化されたアプリケーション２０２のフェイルオーバー動作のために設定される。アーカイブシステム２００の初期設定の間、アーカイブサーバアプリケーション２１０は、クラスタ化されたアプリケーション２０２に対応する仮想クライアントアプリケーション２１２を生成することができる。下記により詳細に記載されるように、仮想クライアントアプリケーション２１２は好ましくは、仮想クライアント名と、クラスタ化されたアプリケーション２０２の名前と、クラスタ化されたアプリケーション２０２に割り当てられた命名アドレスと、クラスタ化されたアプリケーション２０２のために使用可能なフェイルオーバーノードのリストとを含む。実用的な実施形態においては、仮想クライアントアプリケーション２１２は相対的に「薄い」アプリケーションであり、実際のアーカイビングを操作しかつアーカイブクライアントアプリケーション２１４／２１６によって一方で実行されるタスクを復元させるために設定される必要がない。仮想クライアントアプリケーション２１２はむしろ、アーカイブシステムのためのデータの格納を管理したり、クラスタ化されたアプリケーションそれぞれの物理的位置を監視したりするのに主に使用される。
【００２４】
アーカイブサーバアプリケーション２１０は、ノード２０４上にアーカイブクライアントアプリケーション２１４を設定し、ノード２０６上にアーカイブクライアントアプリケーション２１６を設定する。言い換えれば、各アーカイブクライアントアプリケーションは、クライアントノードにてインストールされまたはアクティブになる。アーカイブシステム２００はまた、設定されたアーカイブクライアントアプリケーションのリストを更新することができ、このアーカイブクライアントアプリケーションのリストは、仮想クライアントアプリケーション２１２に含まれる。バックアップジョブが一度設定されると、アーカイブサーバアプリケーション２１０が仮想クライアントアプリケーション２１２と通信し、この仮想クライアントアプリケーション２１２は順に、クラスタ化されたアプリケーション２０２の現在の物理的位置を決定しようと試みる。クラスタ化されたアプリケーション２０２と同じノードに存在するアーカイブクライアントアプリケーションが、バックアップジョブ要求に応答して生成された適切なメッセージを受け取ると、アーカイブクライアントアプリケーションは、その物理的位置に関する情報とともに、アーカイブサーバアプリケーション２１０に反応する。
【００２５】
上述したように、仮想クライアントアプリケーション２１２は適切には、利用可能なクライアントノードのうちの１つから、クラスタ化されたアプリケーション２０２に対する物理的位置識別子（例えば、ノードに割り当てられる機械名、ノードに対する物理ＩＰアドレス、またはノードに対するいずれかの固有の識別子）を得るように設定される。その後、仮想クライアントアプリケーション２１２は、クラスタ化されたアプリケーションのためのアーカイブ設定ファイル（および場合によっては他の情報）にアクセスすることができる。この方法は、アーカイブサーバアプリケーション２１０が、物理的なノードの位置の変化またはフェイルオーバーについて定常的に監視する必要なしで、クラスタ化されたアプリケーション２０２の物理的なノードの位置を識別することを可能にする。より具体的には、アーカイブサーバアプリケーション２１０は仮想クライアントアプリケーション２１２と通信し、仮想クライアントアプリケーション２１２は、ノード２０４に障害が発生して、クラスタ化されたアプリケーション２０２がノード２０６へとフェイルオーバーする場合に、アーカイブサーバシステム２０８に悪影響が生じないように、クラスタ化されたアプリケーション２０２の物理的なノードを消滅させる。
【００２６】
図３は、アーカイブシステム２００またはクラスタ化されたネットワーク環境１００にて使用可能なアーカイブサーバシステム３００の一例の模式的な図である。アーカイブサーバシステム２０８に関連して、上述したように、システム３００は、ここで記載されたアーカイビング機能、バックアップ機能、および復元機能を管理するアーカイブサーバアプリケーション３０２を含む。実際の実施においては、単一のアーカイブシステムは、多数のクラスタ化された（およびクラスタ化されていない）アプリケーションを支援するために柔軟に設定可能である。したがって、アーカイブサーバシステム３００は、複数の仮想クライアントアプリケーション３０４を用いて表される。１つの例示的な実施形態においては、アーカイブサーバシステム３００は、Ｎ個の異なる仮想クライアントアプリケーション３０４とともに、Ｎ個の異なるクラスタ化されたアプリケーションを支援し、仮想クライアントアプリケーション３０４はそれぞれ、１個のクラスタ化されたアプリケーションのみと相互作用するように適切に設定される。このようなデザインは、小規模の環境または大規模の環境において測定可能な動作を可能にし、アーカイブクライアントアプリケーションの適切な配置を促し、クラスタ化されたアプリケーションと、クラスタ化されたアプリケーションの仮想クライアントアプリケーションとの間の通信を促す（実用的な実施形態においては、クラスタ化されたアプリケーションと、クラスタ化されたアプリケーションの仮想クライアントアプリケーションとは、共通の名前を共有する）。
【００２７】
アーカイブサーバシステム３００はまた、ネットワークマネージャー３０６およびメディアマネージャー３０８を含む。ネットワークマネージャー３０６は、クラスタ化されたネットワークにおいて、１またはそれ以上のネットワークパス、通信リンク、またはそれと同様のものを介して、他のシステム、サブシステム、および構成要素との通信を操作する。ネットワークマネージャーは、当業者に知られているものであり、その動作の詳細についてはここでは説明しない。メディアマネージャー３０８は、クラスタ化されたネットワーク環境において、種々の媒体記憶装置を操作する。例えば、メディアマネージャー３０８は、記憶装置の利用可能性、前記装置によって利用される記憶媒体の種類、前記記憶装置の物理的位置、およびクラスタ化されたアプリケーションデータを実際に最良に格納する方法を監視および／または操作し、クライアントノードは前記記憶装置へのアクセスを有する。これらの要素は、アーカイブサーバアプリケーション３０２および／またはオペレーションシステムによって制御可能であり、このオペレーションシステムは、アーカイブサーバシステム３００がインストールされたノードに存在する。
【００２８】
図４は、システム２００のようなアーカイブシステムで使用可能な仮想クライアントアプリケーション４００の一例を模式的に表す図である。この説明のために、仮想クライアントアプリケーション４００は、ネットワーク環境において、１つのクラスタ化されたアプリケーションのみを支援することを目的とする。上述したように、仮想クライアントアプリケーション４００は好ましくは、それぞれのアーカイブサーバアプリケーションと同じノード位置に存在する。ここで説明されているように、仮想クライアントアプリケーション４００は、さまざまな仮想クライアント機能４０１を有する。例えば、仮想クライアントアプリケーション４００は、クラスタ化されたアプリケーションの名前を格納し、クラスタ化されたアプリケーションの浮動ＩＰアドレスを格納し、（クラスタ化されたアプリケーションの種類などの）クラスタ化されたアプリケーションに関連する情報を格納し、アーカイブクライアントアプリケーションがインストールされたノードのリストを格納し、かつ、格納されたデータについて素早く報告することができる。
【００２９】
仮想クライアントアプリケーション４００は、アーカイブシステムと互換性を有するアーカイブクライアントアプリケーションを用いて設定されたクライアントノードのテーブルまたは表４０２を含み、維持し、または前記テーブルまたは表４０２へとアクセスする。表４０２は多数のエントリーを有することができ、そして、この表４０２は、インストール／セットアップ時に生成される静的な表、バックアップ／復元ジョブに応答して即座に（on the fly）アーカイブクライアントアプリケーションがインストールされると生成されそして更新される動的な表、あるいはこれらの両方の組み合わせであってもよい。例えば、クライアントノードＡは、物理ＩＰアドレスおよび／または第１の機械名によって一意的に識別され、そして、クライアントノードＢは、異なる物理ＩＰアドレスおよび／または第２の機械名によって一意的に識別される。表４０２は、仮想クライアントアプリケーション４００が、ノードの物理ＩＰアドレスまたは機械名に基づいて、クラスタ化されたアプリケーションに対する物理的なノードを識別するのを可能にする。
【００３０】
仮想クライアントアプリケーション４００はまた、アーカイブシステムによって使用される他の情報、データ、ファイル、および／または識別子を含み、維持し、または前記他の情報、データ、ファイル、および／または識別子へとアクセスすることができる。例えば、以下の要素は、仮想クライアント４００（仮想クライアント名４０４、仮想クライアント識別子（例えば、ＩＰアドレス）４０６、各クラスタ化されたアプリケーション名４０８、各クラスタ化されたアプリケーションに対する浮動識別子（例えば、ＩＰアドレス）４１０、クラスタ化されたアプリケーションに対するアーカイブデータ／ファイルを表すアプリケーションデータおよび／またはファイル識別子（参照番号４１２）、およびクラスタ化されたアプリケーションに対するアーカイブ設定ファイル４１４）に適切に関連付けられてもよい。仮想クライアント名４０４は、仮想クライアント４００のための単純な英数字名であってもよく、例えば、仮想クライアント４００を一意的に識別する語または語句である。仮想クライアント識別子４０６は下位レベルの識別子（例えば、ＩＰアドレス）であり、クラスタ化されたネットワーク環境において使用される通信プロトコルとの互換性のためにフォーマットされる。仮想クライアント識別子４０６は、クラスタ化されたネットワーク環境において、アーカイブクライアントアプリケーションが適切な仮想クライアントアプリケーションを識別し、かつ前記適切な仮想クライアントアプリケーションと通信するのを可能にする（単一のアーカイブクライアントアプリケーションは、多数のクラスタ化されたアプリケーションを支援することができるため、多数の仮想クライアントアプリケーションと通信することができる）。上述したように、浮動識別子４１０は、クラスタ化されたアプリケーションを一意的に識別する仮想ＩＰアドレスであってもよい。仮想クライアントアプリケーション４００は浮動識別子４１０を利用して、各クラスタ化されたアプリケーションの物理的位置を決定する。クラスタ化されたアプリケーションの名前４０８および／または浮動識別子４１０はまた、単一のアーカイブクライアントアプリケーションが、複数の仮想クライアントアプリケーションと通信するのを可能にする。
【００３１】
クラスタ化されたアプリケーションのアーカイブ設定ファイル４１４は、クラスタ化されたアプリケーションデータがバックアップおよび／または復元される方法を命令し、バックアップ／復元を実行するためのプロトコルを記述し、最後のバックアップおよび／または復元のステータスを示唆し、かつ、当業者に知られている他の共通の機能に関連付けられてもよい。実際には、バックアップ設定ファイル４１４のいくつかは事実上静的であり、一方、その他は、アーカイブシステムがジョブを実行するときはいつでも修正されるため、事実上動的である。最終的には、クラスタ化されたアプリケーションデータは、アーカイブシステムによってアーカイブされおよび／または復元されるだろう情報である。仮想クライアントアプリケーション４００はアーカイブサーバアプリケーションによって管理されるので、要求に応じて、クラスタ化されたアプリケーションデータの物理的記憶および復元を促す。
【００３２】
図５は、ここで記載されているアーカイブシステムに使用可能なアーカイブクライアントアプリケーション５００の一例の模式的な説明である。実際の用途においては、アクティブなクライアントアプリケーション５００は、クラスタ化されたアプリケーションが存在するのと同じノードに存在しなければならない。したがって、１つの例示的な配置においては、アーカイブクライアントアプリケーション５００は、ネットワークによって支援されるクラスタ化されたアプリケーションそれぞれのための主要なまたは「通常の」動作ノードそれぞれにおいて最初にインストール可能であり、そして、これらのクラスタ化されたアプリケーションのための潜在的なフェイルオーバーノードそれぞれにおいてインストール可能である。代わりに、アーカイブクライアントアプリケーション５００は、必要なときにのみノードに動的にインストールさせることができ、または前記ノードに「押下される（pushed）」ことができる。好ましい実用的な実施形態においては、アーカイブクライアントアプリケーション５００は、相当するアーカイブサーバアプリケーションと異なるノードに存在する。アーカイブクライアントアプリケーション５００は、ここで記載されている様々なアーカイブクライアント機能５０２を実行する。例えば、アーカイブクライアントアプリケーション５００は、アーカイブシステムにおいて他のアプリケーションまたはプロセスと通信してもよいし、アーカイブ手順を支援して特定のアプリケーション、オペレーションシステム、およびハードウエアと通信してもよいし、特定のアプリケーション、オペレーションシステム、またはハードウエアからデバイスハンドラーへとデータを転送してもよいし、そして、アーカイブサーバシステムにて維持されるジョブマネージャーへとバックアップジョブの詳細を報告してもよい。
【００３３】
アーカイブクライアントアプリケーション５００は、仮想クライアント名５０６および相当する仮想クライアント識別子５０８のテーブルまたは表５０４を含み、維持し、または前記テーブルまたは表５０４へとアクセスする。表５０４は多数のエントリーを有することができ、そして、この表５０４は、インストール／セットアップ時に生成される静的な表、仮想クライアントアプリケーションがアーカイブシステムによって生成されると生成されそして更新される動的な表、またはこれら両方の組み合わせであってもよい。例えば、仮想クライアント１は第１のＩＰアドレスによって一意的に識別され、仮想クライアント２は第２のＩＰアドレスによって一意的に識別される等である。表５０４は、アーカイブクライアントアプリケーション５００がその存在場所にあるクラスタ化されたアプリケーションのための適切な仮想クライアントアプリケーションを識別しかつ前記仮想クライアントアプリケーションと通信することを可能にする。
【００３４】
仮想クライアント名５０６は、特定の仮想クライアントアプリケーションに対する単純な英数字名（例えば、仮想クライアントアプリケーションを一意的に識別する語または語句）であってもよい。仮想クライアント識別子５０８は下位レベルの識別子（例えば、ＩＰアドレス）であり、クラスタ化されたネットワーク環境において使用される通信プロトコルとの互換性のためにフォーマットされている。仮想クライアント識別子５０８は、アーカイブクライアントアプリケーション５００が適切な仮想クライアントアプリケーションを識別し、かつこの適切な仮想クライアントアプリケーションと通信することを可能にする（上述したように、あるアーカイブクライアントアプリケーションは、多数のクラスタ化されたアプリケーションを支援することができるため、多数の仮想クライアントアプリケーションと通信することができる）。
【００３５】
アーカイブクライアントアプリケーション５００はまた、ネットワークマネージャー５１０を含み、このネットワークマネージャー５１０は、クラスタ化されたネットワーク環境において、１またはそれ以上のネットワークパス、通信リンク、またはそれと同様のものを介して、他のシステム、サブシステム、および構成要素との通信を操作する。例えば、ネットワークマネージャー５１０は、アーカイブクライアントアプリケーション５００と、アーカイブサーバアプリケーション、アーカイブサーバノードのオペレーティングシステム、仮想クライアントアプリケーション、およびこれらと同様のものとの間の通信を促す。ネットワークマネージャーは当業者に知られているので、その動作の詳細はここでは取り扱わない。
【００３６】
図６は、ここで記載されたアーカイブシステムによって実行可能である、クラスタ化されたアプリケーションのバックアッププロセス６００のフローダイアグラムである。プロセス６００に関連して実行される様々なタスクは、ソフトウエア、ハードウエア、ファームウエア、またはこれらの組み合わせによって実行されてもよい。実用的な実施形態においては、プロセス６００の部分は、異なる要素のアーカイブシステム（例えば、アーカイブサーバアプリケーション、仮想クライアントアプリケーション、アーカイブクライアントアプリケーション、各ノードのオペレーションシステム、およびこれらと同様のもの）によって実行されてもよい。プロセス６００は多数の付加的または代替的なタスクを含んでいてもよいこと、図６に示されるタスクを図示された順に実行させる必要はないこと、そして、プロセス６００はここで詳細に記載されていない付加的な機能性を有するより包括的なアーカイブプロセスまたはアーカイブプログラム内に組み込まれていてもよいことは、理解されるべきである。
【００３７】
以下のプロセス６００の記載においては、アーカイブされるクラスタ化されたアプリケーションが「クラスタ化されたアプリケーションＡＡ」と名付けられて、ネットワークにおける他のクラスタ化されたアプリケーションと区別されると仮定する。以下の記載においてはまた、アーカイブサーバアプリケーションは、適切なネットワークノードにてインストールされ、仮想クライアントアプリケーションは、クラスタ化されたアプリケーションＡＡのために生成されかつ設定されていると仮定する。
【００３８】
クラスタ化されたアプリケーションのバックアッププロセス６００はタスク６０２から開始してもよく、タスク６０２はクラスタ化されたアプリケーションＡＡのためのバックアップジョブを要求する。最初のバックアップ要求は、適切なスケジューラーによって生成させてもよく、この適切なスケジューラーは、アーカイブシステムによって維持されるか、またはユーザの入力に応答して生成される。実用的な実施形態においては、アーカイブサーバアプリケーションはバックアップジョブを要求し、この要求はクラスタ化されたアプリケーションＡＡを識別する。ジョブの要求に応答して、バックアップジョブの詳細を適切なメモリ位置（タスク６０４）から取り出すことができる。このような情報は最終的には、バックアップジョブを実行する際に、応答するアーカイブクライアントアプリケーションによって使用される。
【００３９】
最終的には、クラスタ化されたアプリケーションＡＡのためのアーカイブサーバアプリケーションまたは仮想クライアントアプリケーションは、クラスタ化されたアプリケーションＡＡのための浮動識別子または仮想ＩＰアドレスを含む位置要求を生成する（タスク６０６）。この位置要求はまた、タスク６０４の間に読み出されたバックアップジョブの詳細、クラスタ化されたアプリケーションＡＡの名前、および／または各仮想クライアントの名前を含んでいてもよい。この点において、アーカイブサーバアプリケーション、各仮想クライアントアプリケーション、およびこれらの対応するソフトウエア要素は、単独でまたは組み合わせにより、クラスタ化されたアプリケーションＡＡのための位置要求を生成する例示的な手段である。実際には、この位置要求は、既知のクラスタ化されたネットワーク手順にしたがって、従来のプログラムによって生成されてもよい。この位置要求は仮想クライアントアプリケーションによる試みを表し、クラスタ化されたアプリケーションＡＡの現在の物理的位置を決定する。
【００４０】
クラスタ化されたアプリケーションＡＡがネットワークのどこかに実際に存在すると仮定すると、クラスタ化されたアプリケーションＡＡが存在するクライアントノードが位置要求を受け取るだろうし、そのノードに存在するアーカイブクライアントアプリケーションはその位置要求に応答するだろう（タスク６０８）。例示的な実施形態においては、タスク６０８は、クライアントノードのオペレーションシステムによって、またはクライアントノードに存在するアーカイブクライアントアプリケーションによって実行可能である。クライアントノードからの応答または認知はクライアントノードの物理的位置を識別し、クラスタ化されたアプリケーションＡＡの現在の物理的位置を順に識別する。実用的な実施形態においては、アーカイブシステムは、ネットワーク環境内で様々なノードに対する異なる「機械名」を割り当てる命名仕様（convention）を実行する。したがって、クライアントノードからの応答は、特定のノードに対する固有の機械名を含む。ネットワークマネージャーおよび／またはシステムの他の構成要素は、機械名からアドレス識別子（例えば、ＩＰアドレス）への翻訳を操作してもよく、アドレス識別子はネットワークまたはオペレーションシステムと互換性を有する。クライアントノードからの応答は、仮想クライアントアプリケーションのＩＰアドレスを用いる各仮想クライアントアプリケーションへと送り返される。このことは、仮想クライアントアプリケーションが、クラスタ化されたアプリケーションＡＡの物理的位置を得ることを可能にする（タスク６１０）。この点において、アーカイブサーバアプリケーション、各仮想クライアントアプリケーション、各アーカイブクライアントアプリケーション、各クライアントノード、およびこれらに相当するソフトウエア要素およびオペレーションシステムは、単独でまたは組み合わせにより、クラスタ化されたアプリケーションＡＡに対する物理位置識別子を得るための例示的な手段である。
【００４１】
図４に関連して上述したように、仮想クライアントアプリケーションはそれぞれ、アクティブなクライアントアプリケーションを有するクライアントノードの表を維持する。実用的な実施形態においては、アクティブなアーカイブクライアントアプリケーションは、実際のデータアーカイビングが開始できる前に、物理的なクライアントノードに存在していなければならない。したがって、アーカイブシステムはクエリータスク６１２を実行して、アーカイブクライアントアプリケーションがそのクライアントノードにおいて現在アクティブであるかどうか、および／または休止中のアーカイブクライアントアプリケーションがクライアントノードに存在するかどうかを決定してもよい。実用的な実施形態においては、クエリータスク６１２は各仮想クライアントアプリケーションによって実行される。クエリータスク６１２は、アクティブなアーカイブクライアントアプリケーションがそのノードに存在しないことを決定すると、アーカイブシステムはタスク６１４を開始する。タスク６１４の間、アーカイブシステムは、（そのようなアプリケーションがノードに存在しない場合）クライアントノードにてアクティブなアーカイブクライアントアプリケーションをインストールしてもよく、または、クライアントノードにてすでにインストールされている休止中のアーカイブクライアントアプリケーションをアクティブにしてもよい。実際には、アーカイブサーバアプリケーションが「押（push）」技法を実行して、要求に応じてアーカイブクライアントアプリケーションを動的にインストールしてもよいし、または、適切なメッセージを生成して、休止中のアーカイブクライアントアプリケーションをそのノードにてアクティブにしてもよい。
【００４２】
タスク６１４の後に、または、アクティブなアーカイブクライアントアプリケーションがクライアントノードに存在することをクエリータスク６１２が決定する場合、アーカイブシステムは実際のバックアップ／アーカイブ手順を進行することができる。特に、アーカイブシステムは、クラスタ化されたアプリケーションＡＡに対応するアーカイブ設定ファイル（タスク６１６）にアクセスする。実際には、アーカイブサーバシステムは、（クラスタ化されたアプリケーションＡＡの物理的位置に関わらず）アーカイブ設定ファイルを必要に応じてアーカイブクライアントアプリケーションに提供できるように、アーカイブ設定ファイルを格納する。この点において、アーカイブサーバアプリケーション、各仮想クライアントアプリケーション、各アーカイブクライアントアプリケーション、各クライアントノード、およびこれらに対応するソフトウエア要素ならびにオペレーションシステムは、単独でまたは組み合わせにより、アーカイブ設定ファイルにアクセスする例示的な手段である。
【００４３】
この設定ファイルは実際のバックアップ手順を指示する。例示的な実施形態において、アーカイブサーバアプリケーションは、仮想クライアントアプリケーションを介してこれらの設定ファイルにアクセスする。これらの設定ファイルは図４とともに上述された。
【００４４】
アーカイブ設定ファイルの１つの機能は、アーカイブシステムが、バックアップデータの格納のために、少なくとも１つの記憶媒体装置を識別することを可能にする（タスク６１８）。例えば、アーカイブサーバアプリケーションは、クライアントノードと近い物理的な近接位置にある特定のテープドライブを識別してもよく、または、アーカイブサーバアプリケーションは、大容量の利用可能な記憶空間を有するテープドライブを識別してもよい。その後、アーカイブシステムは、適切な記憶媒体装置（例えば、タスク６１８において識別される媒体装置の１つ）へと現在のファイルのバックアップ（タスク６２０）を実行する。この点において、アーカイブサーバアプリケーション、各仮想クライアントアプリケーション、各アーカイブクライアントアプリケーション、各クライアントノード、およびこれらに対応するソフトウエア要素は、単独でまたは組み合わせにより、アーカイブ設定ファイルにしたがって、クラスタ化されたアプリケーションＡＡのためのデータのアーカイブを管理するための例示的な手段である。
【００４５】
実際のバックアップ手順またはアーカイブ手順は、仮想クライアントアプリケーションによって維持されるアーカイブ設定ファイルにしたがって、クラスタ化されたアプリケーションＡＡのためのデータを格納する。アーカイブシステムは、このプロセスにおいて、この点で多数のファイルをアーカイブすることができる。しかしながら、ここで詳細に記載されたプロセス６００の例においては、クラスタ化されたアプリケーションＡＡがフェイルオーバーした場合であってもバックアップジョブが実行可能であるように、クラスタ化されたアプリケーションＡＡのファイルは個別にアーカイブされる。クラスタ化されたアプリケーションがフェイルオーバーした場合に、アーカイブジョブをリセットするまたは繰り返す必要がないため、この特徴は非常に望ましい。
【００４６】
クラスタ化されたアプリケーションのバックアッププロセス６００は、クエリータスク６２２を含んでいてもよく、このクエリータスク６２２は、クラスタ化されたアプリケーションＡＡのためにバックアップするファイルがさらに存在するかどうかを確認する。もし前記ファイルがさらに存在しないのであれば、アーカイブプロセスはこの繰り返しを完了して、プロセス６００を終了する。もし前記ファイルがさらに存在するのであれば、プロセス６００は、別の位置要求を生成できるように、タスク６０６に再び入る。この方法においては、プロセス６００のバルク（bulk）は、各個別のファイルのために繰り返し可能である（または、代わりに、プロセス６００のバルクは、多数のファイルがバックアップされた後に繰り返し可能である。）。言い換えれば、プロセス６００はクラスタ化されたアプリケーションＡＡの現在の物理的位置を周期的に確認して、その実際の物理的位置に関わらず、クラスタ化されたアプリケーションＡＡのためのデータをバックアップすることができる。これにより、更新された物理的位置が直前の物理的位置と同じである場合、アーカイブ手順は同じセットの設定ファイルを利用することができる。一方、物理的位置が変わると、アーカイブ手順は新しいセットの設定ファイルを利用して、現在のデータをバックアップすることができ、または、異なるノードにてインストールされた異なるアーカイブクライアントアプリケーションのための同じセットの設定ファイルを利用することができる。
【００４７】
好ましい実施形態を参照して本発明を上述してきた。しかしながら、この開示を読む当業者は、本発明の範囲から逸脱することなく好ましい実施形態を形成すると思われる変更および修正を認識することができるだろう。これらの変更または修正およびその他の変更または修正は、以下の請求の範囲に記載されているように、本発明の範囲内に含まれることを意図している。
【００４８】
以下の図面とともに詳細な説明および請求の範囲を参照して考慮することにより、本発明をより完全に理解することができ、ここで、図面を通して同じ参照番号は類似する要素に言及する。
【図面の簡単な説明】
【００４９】
【図１】図１は、クラスタ化されたネットワーク環境の一例を示す模式的な図である。
【図２】図２は、クラスタ化されたネットワーク環境に配置可能なアーカイブシステムの一例の一部を示す模式的な図である。
【図３】図３は、アーカイブシステムにて使用可能なサーバ構成要素の一例を示す模式的な図である。
【図４】図４は、アーカイブシステムにて使用可能な仮想クライアントアプリケーションの一例を示す模式的な図である。
【図５】図５は、アーカイブシステムにて使用可能なクライアントアプリケーションの一例を示す模式的な図である。
【図６】図６は、アーカイブシステムによって実行可能なクラスタ化されたアプリケーションのバックアップ処理のフローダイヤグラムである。
【図１】
2005352723.tif 000003
【図２】
2005352723.tif 000004
【図３】
2005352723.tif 000005
【図４】
2005352723.tif 000006
【図５】
2005352723.tif 000007
【図６Ａ】
2005352723.tif 000008
【図６Ｂ】
2005352723.tif 000009
【外国語明細書】
1. TITLE OF INVENTION
SYSTEM AND METHOD FOR ARCHIVING DATA IN A CLUSTERED ENVIRONMENT
2. DETAILED DESCRIPTION OF INVENTION
CROSS REFERENCE TO RELATED APPLICATION
This application is related to the subject matter contained in United States patent application, titled SYSTEM AND METHOD FOR MANAGING ARCHIVING CLIENT APPLICATIONS IN A CLUSTERED ENVIRONMENT.
FIELD OF THE INVENTION
The present invention relates generally to the archiving of computer data.  More particularly, the present invention relates to the archiving of computer data in a clustered network environment.
BACKGROUND OF THE INVENTION
For a number of decades, information has been shared among computers in many various forms.  One popular form that facilitates information sharing is known as the client/server model, which is commonly realized as a client/server network.  In a client/server network, a server application is a software program (residing on one or more pieces of computer hardware) that awaits and fulfills requests from any number of client applications.  Server applications often manage the storage of data, to which one or many client applications have secure access.
As the client/server network increased in popularity the technology also advanced to enable a large number of client applications to access a single server application.  This ability also increased the reliance on the server application and the need to reduce server failures.  The technology further advanced to enable the seamless activation of a secondary server system in the event of failure of the main server system.  This seamless activation process transfers all active applications from the main server system to the secondary server system without client awareness.  This transfer process is typically known in the art as "failover" or "failing over," which is taught in U.S. Pat. No. 6,360,331 titled METHOD AND SYSTEM FOR TRANSPARENTLY FAILING OVER APPLICATION CONFIGURATION INFORMATION IN A SERVER CLUSTER.  The applications that are configured to failover from a main server system to a secondary server system (or from a first node to a second node) are known in the art as "clustered applications."  A clustered application is configured to be associated as a shared resource having a virtual Internet Protocol ("IP") address.  The virtual IP address does not change and is not dependent on the physical location, thus allowing continued client communication to a clustered application despite the event of a failure.
The process of failing over increases the difficulty to accurately archive and restore data.  During the archive process the archiving system will schedule what is known in the art as a "backup job," which identifies a particular application, a file system, a drive, or the like, for archiving.  When a backup job is activated, the archiving system must be aware of the physical location and specific configuration of the application to be archived.  Therefore, if a backup job is activated to archive an application on node A and the application fails over to node B, the archiving job will fail because the application is no longer active on node A.
Accordingly, there is a need for a data archiving system and method that enables archiving of clustered applications.
BRIEF SUMMARY OF THE INVENTION
A practical data archiving system according to the present invention includes at least one archiving client application, at least one corresponding archiving server application, and at least one corresponding virtual client application.  Specifically, the archiving system utilizes a virtual client application that facilitates the configuration and process in which archiving is performed for a specific clustered application.  The use of a virtual client application for a clustered application enables the clustered application to failover to a new node, while preserving the ability to archive the failed-over clustered application.  In practice, the setup process of the archiving system creates the virtual client application such that the virtual client application contains a virtual IP address, which can be referenced by each archiving client application in the archiving system.
The above and other aspects of the present invention may be carried out in one form by a method for archiving data for a clustered application in a clustered network environment.  The method involves:  generating a location request for the clustered application, the location request including a floating identifier for the clustered application; obtaining a physical location identifier for the clustered application in response to the location request; accessing archiving configuration files corresponding to the clustered application; and archiving data for the clustered application in accordance with the archiving configuration files.
DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT
The present invention may be described herein in terms of functional block components and various processing steps.  It should be appreciated that such functional blocks may be realized by any number of hardware, software, and/or firmware components configured to perform the specified functions.  For example, the present invention may employ various integrated circuit components, memory elements, logic elements, look-up tables, and the like, which may carry out a variety of functions under the control of one or more microprocessors or other control devices.  In addition, those skilled in the art will appreciate that the present invention may be practiced in conjunction with any number of practical computer hardware implementations and that the particular system architecture described herein is merely one exemplary application for the invention.
It should be appreciated that the particular implementations shown and described herein are illustrative of the invention and its best mode and are not intended to otherwise limit the scope of the invention in any way.  Indeed, for the sake of brevity, conventional techniques and aspects of computer devices, computer networks, data transmission, data archiving, data communication and storage, and other functional aspects of the systems (and the individual operating components of the systems) may not be described in detail herein.  Furthermore, the connecting lines shown in the various figures contained herein are intended to represent exemplary functional relationships and/or physical couplings between the various elements.  It should be noted that many alternative or additional functional relationships or physical connections may be present in a practical embodiment.
FIG. 1 is a schematic representation of an example clustered network environment 100 that may incorporate the present invention.  For ease of illustration, clustered network environment 100 represents a simplified architecture; a practical architecture may have additional and/or alternative physical and logical elements.  Clustered network environment 100 generally includes an archiving server system 102, a number of client components 104, 106, 108, 110, 112, and 114, and a number of storage media devices 116, 118, 120, and 122.  One or more of the storage media devices may be associated with network-accessed storage ("NAS") 124.  Alternatively (or additionally), one or more of the storage media devices may be associated with a storage area network ("SAN") 126.  As with conventional SAN arrangements, client component 110 and client component 112 share storage resources via an FC switch 128.
In FIG. 1, archiving server system 102, the client components, and the storage media devices represent physical hardware components.  Archiving server system 102 is a computer configured to perform the archiving server application tasks described herein (and possibly other tasks), while the client components are computers configured to perform tasks associated with any number of clustered applications that require data archiving (backup).  The client components may also be configured to perform the archiving client application tasks described herein (and possibly other tasks).  For example, client component 104 may be the primary node for a clustered email server application, client component 106 may be a failover node for the clustered email server application, and archiving server system 102 may be responsible for the backup and restore procedures for the clustered email server application.  A single clustered application may be supported by any number of client component nodes, however, in most practical deployments, each clustered application has one devoted primary node and one devoted failover node.  For purposes of the example embodiment described herein, no clustered applications reside at archiving server system 102.  A practical embodiment, however, need not be so limited.
As used herein, a "node" refers to a physical processing location in the network environment.  In this regard, a node can be a computer or some other device, such as a printer.  In practical networks, each node has a unique network address, sometimes called a Data Link Control ("DLC") address or Media Access Control ("MAC") address.
A "server" is often defined as a computing device or system configured to perform any number of functions and operations associated with the management, processing, retrieval, and/or delivery of data, particularly in a network environment.  Alternatively, a "server" or "server application" may refer to software that performs such processes, methods, and/or techniques.  As in most commercially available general purpose servers, a practical server component that supports the archiving system of the invention may be configured to run on any suitable operating system such as Unix, Linux, the Apple Macintosh OS, or any variant of Microsoft Windows, and it may employ any number of microprocessor devices, e.g., the Pentium family of processors by Intel or the processor devices commercially available from Advanced Micro Devices, IBM, Sun Microsystems, or Motorola.
The server processors communicate with system memory (e.g., a suitable amount of random access memory), and an appropriate amount of storage or "permanent" memory.  The permanent memory may include one or more hard disks, floppy disks, CD-ROM, DVD-ROM, magnetic tape, removable media, solid state memory devices, or combinations thereof.  In accordance with known techniques, the operating system programs and the server application programs reside in the permanent memory and portions thereof may be loaded into the system memory during operation.  In accordance with the practices of persons skilled in the art of computer programming, the present invention is described below with reference to symbolic representations of operations that may be performed by the various server components or the client components.  Such operations are sometimes referred to as being computer-executed, computerized, software-implemented, or computer-implemented.  It will be appreciated that operations that are symbolically represented include the manipulation by the various microprocessor devices of electrical signals representing data bits at memory locations in the system memory, as well as other processing of signals.  The memory locations where data bits are maintained are physical locations that have particular electrical, magnetic, optical, or organic properties corresponding to the data bits.
When implemented in software, various elements of the present invention (which may reside at the client devices or at the archiving server system 102) are essentially the code segments that perform the various tasks.  The program or code segments can be stored in a processor-readable medium or transmitted by a computer data signal embodied in a carrier wave over a transmission medium or communication path.  The "processor-readable medium" or "machine-readable medium" may include any medium that can store or transfer information.  Examples of the processor-readable medium include an electronic circuit, a semiconductor memory device, a ROM, a flash memory, an erasable ROM (EROM), a floppy diskette, a CD-ROM, an optical disk, a hard disk, a fiber optic medium, a radio frequency (RF) link, or the like.  The computer data signal may include any signal that can propagate over a transmission medium such as electronic network channels, optical fibers, air, electromagnetic paths, or RF links.  The code segments may be downloaded via computer networks such as the Internet, an intranet, a LAN, or the like.
In practical applications, the archiving server system and the client components may be configured in accordance with any known computer platform, e.g., Compaq Alpha Tru64, FreeBSD, HP-UX, IBM AIX, Linux, NCR MP-RAS, SCO OpenServer, SCO Unixware, SGI Irix, Solaris (Sparc), Solaris (Intel), Windows 2000, Windows NT, and Novell Netware.  In practical applications, the storage media devices may be configured in accordance with any known tape technology (DLT, 8 mm, 4 mm DAT, DTF, LTO, AIT-3, SuperDLT, DTF2, and M2), or any known optical disc technology (DVD-RAM, CD, or the like).  In practical applications, clustered network environment 100 can support a number of SAN/NAS devices, e.g., Ancor, Brocade, Chaparral, Crossroads, EMC, FalconStor, Gadzoox, Network Appliance, and Vixel.  For the sake of brevity, these conventional devices and platforms will not be described herein.
As in conventional clustered network environments, the operating systems of archiving server system 102 and the client components are capable of handling clustered applications.  In other words, a clustered application can failover from one client node to another client node (assuming that the failover node supports that clustered application), and the clustered application is uniquely identified by a floating identifier that does not change with its physical location.  In practical applications, this floating identifier is a virtual IP address that is assigned to the clustered application, and that virtual IP address identifies the particular clustered application regardless of its physical node location.  "IP address" is used in its conventional sense herein, namely, an IP address is an identifier for a computer or device on a TCP/IP compatible network.  Messages are routed within such networks using the IP address of the desired destination.  In accordance with current standards, the format of an IP address is a 32-bit numeric address written as four numbers separated by periods, where each number can be 0 to 255.  For example, 1.234.56.789 could be an IP address.
FIG. 2 is a schematic representation of a portion of an example archiving system 200 that may be deployed in a clustered network environment.  The portion shown in FIG. 2 represents the functional components that support archiving of a single clustered application 202 that is supported by at least two client component nodes:  node A (reference number 204) and node B (reference number 206).  The following description of archiving system 200 can be extended to contemplate any number of compatible client nodes.  Furthermore, a practical implementation can support any number of different clustered applications.
Archiving system 200 generally includes an archiving server system 208, client node 204, and client node 206, which are all interconnected for data communication in accordance with well known standards and protocols.  In one practical embodiment, archiving system 200 is compatible with the Internet Protocol ("IP") suite of protocols for communications between archiving server system 208 and client nodes 204/206, and between client node 204 and client node 206.  Of course, archiving system 200 and/or the clustered network environment may utilize additional or alternative communication techniques, protocols, or methods for archiving and other purposes.
In the example embodiment, archiving server system 208 is implemented in one physical node.  Archiving server system 208 includes an archiving server application 210 and a virtual client application 212 for clustered application 202.  Archiving server system 208 preferably includes or communicates with one or more suitably configured storage media elements (see FIG. 1), which can store archived data in addition to other data utilized by the system.  Archiving server application 210 is suitably configured to communicate with the various archiving client applications and to otherwise manage the archiving tasks described herein.  As described in more detail below, a practical archiving server system 208 may include a plurality of virtual client applications for a like plurality of clustered applications.  In the example embodiment, a different virtual client application is created for each different clustered application serviced by archiving server system 208.
For purposes of this example, client node 204 will be considered the "primary" or "normal" operating node for clustered application 202, while client node 206 will be considered the failover node.  In other words, clustered application 202a normally executes at client node 204, and clustered application 202b executes in failover mode at client node 206.  In accordance with known clustering techniques, clustered application 202 can be redundantly installed at both client nodes 204/206, and clustered application 202b can be activated upon notice of a failover.  In the context of the archiving system described herein, client nodes 204/206 can be identical in configuration and function.
Client node 204 includes an archiving client application 214, which is suitably configured to perform archiving, backup, and restore functions in conjunction with archiving server system 208.  In this regard, archiving client application 214 is specifically configured to support the archiving, backup, and restore needs of clustered application 202.  Furthermore, archiving client application 214 is capable of supporting any number of different clustered applications.  In response to a failover of clustered application 202a, client node 206 becomes the active node and clustered application 202b is activated at client node 206.  At this point, archiving client application 214 no longer manages the archiving, backup, and restore needs of clustered application 202.  Rather, an archiving client application 216 resident at client node 206 assumes responsibility for those needs.  As described in more detail below, archiving client application 216 may be pre-installed at client node 206 and ready for activation at failover.  Alternatively, archiving client application 216 can be installed "on the fly" from any suitable location in the clustered network environment in response to the failover.  Use of different archiving client applications is desirable so that archiving system 200 can perform archiving jobs with the archiving client applications regardless of the physical location of clustered application 202 and so that archiving system 200 can be deployed in a modular fashion.  In accordance with known clustering techniques and procedures, clustered application 202 can failover and failback between client nodes 204/206 at any time (and even during a backup or restore process).
In the example embodiment, archiving server application 210 or virtual client application 212 can install or activate archiving client applications on each node that can receive a clustered application supported by archiving system 200.  Virtual client application 212 and/or archiving server application 210 facilitates the storing and handling of archiving configuration files by archiving server system 208.  The archiving configuration files are associated with the particular clustered application (the archiving configuration files for a clustered application dictate the manner in which that clustered application is archived or backed up by archiving system 200).  Furthermore, virtual client application 212 and/or archiving server application 210 facilitates the storing and handling of the clustered application data, i.e., the actual data to be archived and/or restored.  The actual archiving, backup, and restoring of clustered application data is managed by archiving server application 210 and carried out by the respective archiving client application in accordance with the particular archiving configuration files accessed by virtual client application 212.
When an archive job is activated, archiving server application 210 will obtain the floating identifier for the specific clustered application 202 from the virtual client application 212.  Archiving server system 200 then sends a location request for clustered application 202.  In practical embodiments, this location request includes the floating identifier of the specific clustered application 202.  Since the floating identifier moves with the clustered application, the archiving client application that responds to the location request will be the archiving client application that resides at the same physical location as the clustered application 202.  Archiving system 200 will then cause the respective archiving client application to utilize stored configuration files for the clustered application, thus eliminating the need to determine whether the current client node has changed or whether a failover has occurred.
In the example shown in FIG. 2, archiving server system 208 resides on one physical computing node, while clustered application 202 currently resides on node 204, which is configured for normal operation of clustered application 202.  Clustered application 202 is capable of failing over to a third physical node 206, which is configured for failover operation of clustered application 202.  During the initial configuration of archiving system 200, archiving server application 210 will create virtual client application 212 corresponding to clustered application 202.  As described in more detail below, virtual client application 212 preferably contains a virtual client name, the name of clustered application 202, a naming address assigned to clustered application 202, and a list of available failover nodes for clustered application 202.  In practical embodiments, virtual client application 212 is a relatively "thin" application and it need not be configured to handle the actual archiving and restore tasks that are otherwise carried out by archiving client applications 214/216.  Rather, virtual client application 212 is primarily utilized to manage the storage of data for the archiving system and to monitor the physical location of the respective clustered application.
Archiving server application 210 configures archiving client application 214 on node 204 and archiving client application 216 on node 206.  In other words, the respective archiving client applications are installed or activated at their client nodes.  Archiving system 200 may also update a list of configured archiving client applications, which is contained in virtual client application 212.  Once the backup job is configured, archiving server application 210 may communicate with virtual client application 212, which in turn attempts to determine the current physical location of clustered application 202.  When the archiving client application that resides on the same node as clustered application 202 receives an appropriate message generated in response to a backup job request, it responds to archiving server application 210 with information regarding its physical location.
As described above, virtual client application 212 is suitably configured to obtain, from one of the available client nodes, a physical location identifier (e.g., the machine name assigned to the node, a physical IP address for the node, or any unique identifier for the node) for clustered application 202.  Thereafter, virtual client application 212 can access archiving configuration files (and possibly other information) for the clustered application.  This method enables archiving server application 210 to identify the physical node location of clustered application 202 without having to constantly monitor for a change in physical node location or failover.  More specifically, archiving server application 210 communicates with virtual client application 212, which resolves the physical node of clustered application 202 such that in the event node 204 fails and clustered application 202 fails over to node 206, archiving server system 208 will not be adversely affected.
FIG. 3 is schematic representation of an example archiving server system 300 that may be utilized in archiving system 200, or utilized in clustered network environment 100.  As described above in connection with archiving server system 208, system 300 includes an archiving server application 302 that manages the archiving, backup, and restore functions described herein.  In a practical implementation, a single archiving system can be flexibly configured to support any number of clustered (and non-clustered) applications.  Accordingly, archiving server system 300 is depicted with a plurality of virtual client applications 304.  In one example embodiment, archiving server system 300 supports N different clustered applications with N different virtual client applications 304, and each virtual client application 304 is suitably configured for interaction with only one clustered application.  Such a design enables scalable operation in small or large environments, facilitates a modular deployment of archiving client applications, and facilitates communication between a clustered application and its virtual client application (which, in practical embodiments, share a common name).
Archiving server system 300 also includes a network manager 306 and a media manager 308.  Network manager 306 handles communications with other systems, subsystems, and components in the clustered network environment via one or more network paths, communication links, or the like.  Network managers are known to those skilled in the art and details of their operation are not addressed herein.  Media manager 308 handles the various media storage devices in the clustered network environment.  For example, media manager 308 monitors and/or handles the availability of the storage devices, the type of storage media utilized by the devices, the physical location of the storage devices, which client nodes have access to the storage devices, and how best to actually store the clustered application data.  These elements may be controlled by archiving server application 302 and/or by the operating system resident at the node upon which archiving server system 300 is installed.
FIG. 4 is a schematic representation of an example virtual client application 400 that may be utilized in an archiving system such as system 200.  For purposes of this description, virtual client application 400 is intended to support only one clustered application in the network environment.  As mentioned above, virtual client application 400 preferably resides at the same node location as the respective archiving server application.  Virtual client application 400 performs a variety of virtual client functions 401 as described herein.  For example, virtual client application 400 stores the name of the clustered application, stores the floating IP address of the clustered application, stores information related to the clustered application (such as the clustered application's type), stores a list of nodes upon which archiving client applications are installed, and is capable of smartly reporting on stored data.
Virtual client application 400 includes, maintains, or accesses a table or list 402 of client nodes configured with an archiving client application compatible with the archiving system.  The list 402 can have any number of entries, and it may be a static list generated at the time of installation/set-up, a dynamic list that is created and updated as archiving client applications are installed "on the fly" in response to a backup/restore job, or a combination of both.  For example, client node A is uniquely identified by a physical IP address and/or a first machine name, and client node B is uniquely identified by a different physical IP address and/or a second machine name.  List 402 enables virtual client application 400 to identify the physical node for a clustered application based upon the physical IP address or machine name of the node.
Virtual client application 400 may also include, maintain, or access other information, data, files, and/or identifiers utilized by the archiving system.  For example, the following elements may be suitably associated with virtual client application 400:  a virtual client name 404, a virtual client identifier (e.g., an IP address) 406, the name 408 of the respective clustered application, a floating identifier (e.g., an IP address) 410 for the respective clustered application, application data and/or file identifiers that represent archived data/files for the clustered application (reference number 412), and archiving configuration files 414 for the clustered application.  The virtual client name 404 may be a simple alphanumeric name for virtual client 400, e.g., a word or a phrase that uniquely identifies virtual client 400.  The virtual client identifier 406 is a lower level identifier, e.g., an IP address, formatted for compatibility with the communication protocols used in the clustered network environment.  The virtual client identifier 406 enables the archiving client applications in the clustered network environment to identify and communicate with the proper virtual client application (a single archiving client application can support any number of clustered applications and, therefore, communicate with any number of virtual client applications).  As described above, the floating identifier 410 may be a virtual IP address that uniquely identifies the clustered application.  Virtual client application 400 utilizes floating identifier 410 to determine the physical location of the respective clustered application.  The name 408 and/or floating identifier 410 of the clustered application also enables a single archiving client application to communicate with a plurality of virtual client applications.
Clustered application archiving configuration files 414 dictate the manner in which the clustered application data is backed up and/or restored, describe protocols for carrying out the backup/restore, indicate the status of the last backup and/or restore, and may be associated with other common functionality known in the art.  In practice, some of the backup configuration files 414 are static in nature, while others are dynamic in nature because they are modified whenever the archiving system performs a job.  Ultimately, the clustered application data is the information that will be archived and/or restored by the archiving system.  Virtual client application 400 facilitates the physical storage and restoration of the clustered application data as required, as managed by the archiving server application.
FIG. 5 is a schematic representation of an example archiving client application 500 that may be utilized in an archiving system as described herein.  In practical applications, an active archiving client application 500 must reside at the same node upon which the clustered application resides.  Accordingly, in an example deployment, archiving client application 500 can be initially installed at each primary or "normal" operating node for each clustered application supported by the network, and at every potential failover node for those clustered applications.  Alternatively, archiving client application 500 can be dynamically installed or "pushed" to a node only when needed.  In preferred practical embodiments, archiving client application 500 resides at a different node than the corresponding archiving server application.  Archiving client application 500 performs a variety of archiving client functions 502 as described herein.  For example, archiving client application 500 may communicate with other applications or processes in the archiving system, communicate with specific applications, operating systems, and hardware in support of the archiving procedures, transfer data from specific applications, operating systems, or hardware to a device handler, and report backup job details to a job manager maintained at the archiving server system.
Archiving client application 500 includes, maintains, or accesses a table or list 504 of virtual client names 506 and corresponding virtual client identifiers 508.  The list 504 can have any number of entries, and it may be a static list generated at the time of installation/set-up, a dynamic list that is created and updated as virtual client applications are created by the archiving system, or a combination of both.  For example, Virtual Client 1 is uniquely identified by a first IP address, Virtual Client 2 is uniquely identified by a second IP address, and so on.  List 504 enables archiving client application 500 to identify and communicate with the proper virtual client application for its resident clustered application(s).
A virtual client name 506 may be a simple alphanumeric name for the particular virtual client application, e.g., a word or a phrase that uniquely identifies that virtual client application.  The virtual client identifier 508 is a lower level identifier, e.g., an IP address, formatted for compatibility with the communication protocols used in the clustered network environment.  The virtual client identifier 508 enables archiving client application 500 to identify and communicate with the proper virtual client application (as mentioned above, one archiving client application can support any number of clustered applications and, therefore, communicate with any number of virtual client applications).
Archiving client application 500 also includes a network manager 510, which handles communications with other systems, subsystems, and components in the clustered network environment via one or more network paths, communication links, or the like.  For example, network manager 510 facilitates communication between archiving client application 500 and the archiving server application, the archiving server node operating system, the virtual client applications, and the like.  Network managers are known to those skilled in the art and details of their operation are not addressed herein.
FIG. 6 is a flow diagram of a clustered application backup process 600 that may be performed by an archiving system as described herein.  The various tasks performed in connection with process 600 may be performed by software, hardware, firmware, or any a combination thereof.  In practical embodiments, portions of process 600 may be performed by different elements of the archiving system, e.g., the archiving server application, the virtual client application, the archiving client application, the operating systems of the respective nodes, and the like.  It should be appreciated that process 600 may include any number of additional or alternative tasks, the tasks shown in FIG. 6 need not be performed in the illustrated order, and process 600 may be incorporated into a more comprehensive archiving process or program having additional functionality not described in detail herein.
The following description of process 600 assumes that the clustered application to be archived is named Clustered Application AA, which distinguishes it from other clustered applications in the network.  The following description also assumes that the archiving server application is installed at an appropriate network node, and that a virtual client application has been created and configured for Clustered Application AA.
Clustered application backup process 600 may begin with a task 602, which requests a backup job for Clustered Application AA.  The initial backup request may be generated by a suitable scheduler maintained by the archiving system or generated in response to a user input.  In the practical embodiment, the archiving server application requests the backup job, and the request identifies Clustered Application AA.  In response to the job request, backup job details can be retrieved from a suitable memory location (task 604).  Such information is ultimately used by the responding archiving client application when performing the backup job.
Eventually, the archiving server application or the virtual client application for Clustered Application AA generates a location request that includes the floating identifier or virtual IP address for Clustered Application AA (task 606).  The location request may also contain the backup job details retrieved during task 604, the name of Clustered Application AA, and/or the name of the respective virtual client.  In this regard, the archiving server application, the respective virtual client application, and their corresponding software elements, individually or in combination, are example means for generating a location request for Clustered Application AA.  In practice, this location request may be generated by a conventional program in accordance with known clustered network methodologies.  This location request represents an attempt by the virtual client application to determine the current physical location of Clustered Application AA.
Assuming that Clustered Application AA does indeed reside somewhere in the network, the client node upon which Clustered Application AA resides will receive the location request, and the archiving client application resident at that node will respond to the request (task 608).  In the example embodiment, task 608 can be performed by the operating system of the client node or by the archiving client application resident at the client node.  The response or acknowledgement from the client node identifies the physical location of the client node, which in turn identifies the current physical location of Clustered Application AA.  In the practical embodiment, the archiving system employs a naming convention that assigns different "machine names" for the various nodes within the network environment.  Accordingly, the response from the client node includes the unique machine name for that particular node.  The network manager(s) and/or other components of the system may handle the translation of a machine name to an address identifier (e.g., an IP address) compatible with the network or operating systems.  The response from the client node is sent back to the respective virtual client application using the IP address of the virtual client application.  This enables the virtual client application to obtain the physical location of Clustered Application AA (task 610).  In this regard, the archiving server application, the respective virtual client application, the respective archiving client application, the respective client node, and their corresponding software elements and operating systems, individually or in combination, are example means for obtaining a physical location identifier for Clustered Application AA.
As described above in connection with FIG. 4, each virtual client application maintains a list of client nodes having active archiving client applications.  In the practical embodiment, an active archiving client application must be resident at the physical client node before the actual data archiving can begin.  Accordingly, the archiving system may perform a query task 612 to determine whether an archiving client application is currently active at that client node and/or to determine whether a dormant archiving client application resides at the client node.  In the practical embodiment, query task 612 is performed by the respective virtual client application.  If query task 612 determines that no active archiving client application resides at the node, then the archiving system initiates a task 614.  During task 614, the archiving system may install an active archiving client application at the client node (if no such application resides at the node) or activate a dormant archiving client application that is already installed at the client node.  In practice, the archiving server application may employ "push" techniques to dynamically install the archiving client application on demand, or it may generate a suitable message to activate the dormant archiving client application at the node.
Following task 614, or if query task 612 determines that an active archiving client application resides at the client node, the archiving system can proceed with the actual backup/archive procedures.  In particular, the archiving system accesses the archiving configuration files (task 616) corresponding to Clustered Application AA.  In practice, the archiving server system stores the archiving configuration files such that those files can be presented to the archiving client applications as necessary (regardless of the physical location of Clustered Application AA).  In this regard, the archiving server application, the respective virtual client application, the respective archiving client application, the respective client node, and their corresponding software elements and operating systems, individually or in combination, are example means for accessing the archiving configuration files.
The configuration files dictate the actual backup procedures.  In the example embodiment, the archiving server application accesses these configuration files via the virtual client application.  These configuration files were described above in connection with FIG. 4.
One function of the archiving configuration files is to enable the archiving system to identify at least one storage media device for the storage of the backup data (task 618).  For example, the archiving server application may identify a specific tape drive that is in close physical proximity to the client node, or it may identify a tape drive that has a high amount of available storage space.  Thereafter, the archiving system performs a backup (task 620) of the current file (or files) to an appropriate storage media device, e.g., one of the media devices identified in task 618.  In this regard, the archiving server application, the respective virtual client application, the respective archiving client application, the respective client node, and their corresponding software elements, individually or in combination, are example means for managing the archiving of data for Clustered Application AA in accordance with the archiving configuration files.
The actual backup or archiving procedure stores data for Clustered Application AA in accordance with the archiving configuration files maintained by the virtual client application.  The archiving system can archive any number of files at this point in the process.  In the example process 600 described in detail herein, however, files of Clustered Application AA are archived individually such that backup jobs can be executed even while Clustered Application AA is failing over.  This feature is highly desirable because an archiving job need not be reset or repeated in the event of failover of the clustered application.
Clustered application backup process 600 may include a query task 622, which checks whether there are more files to backup for Clustered Application AA.  If not, then the archiving process is complete for this iteration, and process 600 ends.  If so, then process 600 is re-entered at task 606 so that another location request can be generated.  In this manner, the bulk of process 600 can be repeated for each individual file (or, alternatively, repeated after any number of files have been backed up).  In other words, process 600 periodically confirms the current physical location of Clustered Application AA and is capable of backing up the data for Clustered Application AA regardless of its actual physical location.  Thus, if the updated physical location is the same as the last physical location, then the archiving procedure can utilize the same set of configuration files.  If, on the other hand, the physical location has changed, then the archiving procedure can utilize a new set of configuration files to backup the current data or utilize the same set of configuration files but for a different archiving client application installed at a different node.
The present invention has been described above with reference to a preferred embodiment.  However, those skilled in the art having read this disclosure will recognize that changes and modifications may be made to the preferred embodiment without departing from the scope of the present invention.  These and other changes or modifications are intended to be included within the scope of the present invention, as expressed in the following claims.
3. BRIEF DESCRIPTION OF THE DRAWINGS
A more complete understanding of the present invention may be derived by referring to the detailed description and claims when considered in conjunction with the following Figures, wherein like reference numbers refer to similar elements throughout the Figures.
FIG. 1 is a schematic representation of an example clustered network environment;
FIG. 2 is a schematic representation of a portion of an example archiving system that may be deployed in a clustered network environment;
FIG. 3 is schematic representation of an example server component that may be utilized in an archiving system;
FIG. 4 is a schematic representation of an example virtual client application that may be utilized in an archiving system;
FIG. 5 is a schematic representation of an example client application that may be utilized in an archiving system; and
FIG. 6 is a flow diagram of a clustered application backup process that may be performed by an archiving system.
What is claimed is:
1.  A method for archiving data for a clustered application in a clustered network environment, said method comprising:
generating a location request for said clustered application, said location request including a floating identifier for said clustered application;
obtaining a physical location identifier for said clustered application in response to said location request;
accessing archiving configuration files for said clustered application; and
archiving data for said clustered application in accordance with said archiving configuration files.
2.  A method according to claim 1, wherein said physical location identifier comprises a machine name for a node in said clustered network environment.
3.  A method according to claim 1, wherein said floating identifier comprises a virtual IP address unique to said clustered application.
4.  A method according to claim 1, wherein said physical location identifier identifies a node in said clustered network environment.
5.  A method according to claim 4, further comprising:
determining, in response to said physical location identifier, that no active archiving client application resides at said node; and
in response to said determining step, installing an active archiving client application at said node prior to said archiving step.
6.  A method according to claim 4, further comprising:
determining, in response to said physical location identifier, that an archiving client application resident at said node is dormant; and
in response to said determining step, activating said archiving client application at said node.
7.  A method according to claim 1, wherein said archiving step identifies at least one storage media device for said data.
8.  A system for archiving clustered application data in a clustered network environment, said system comprising:
an archiving server application;
a first archiving client application for a first node in said clustered network environment, said first node being configured for normal operation of a clustered application;
a second archiving client application for a second node in said clustered network environment, said second node being configured for failover operation of said clustered application; and
a virtual client application corresponding to said clustered application, said virtual client application being configured to obtain, from said first node or said second node, a physical location identifier for said clustered application, and to access archiving configuration files for said clustered application.
9.  A system according to claim 8, wherein said archiving server application manages the archiving of data for said clustered application in accordance with said archiving configuration files.
10.  A system according to claim 8, wherein said physical location identifier comprises a machine name for said first node or said second node.
11.  A system according to claim 8, wherein said virtual client application is further configured to generate a location request for said clustered application, said location request including a floating identifier for said clustered application.
12.  A system according to claim 11, wherein said floating identifier comprises a virtual IP address unique to said clustered application.
13.  A system according to claim 8, wherein said archiving server application resides at a third node in said clustered network environment.
14.  A system according to claim 13, wherein said virtual client application resides at said third node.
15.  A system according to claim 13, wherein said archiving configuration files are stored at said third node.
16.  A system according to claim 8, wherein said virtual client application resides at a third node in said clustered network environment.
17.  A system according to claim 8, wherein said first archiving client application resides at said first node and said second archiving client application resides at said second node.
18.   A system for archiving data for a clustered application in a clustered network environment, said system comprising:
means for generating a location request for said clustered application, said location request including a floating identifier for said clustered application;
means for obtaining a physical location identifier for said clustered application in response to said location request;
means for accessing archiving configuration files for said clustered application; and
means for managing the archiving of data for said clustered application in accordance with said archiving configuration files.
19.  A system according to claim 18, wherein said means for generating, said means for obtaining, said means for accessing, and said means for managing are each implemented in software.
20.  A method for archiving clustered application data in a clustered network environment, said method comprising:
determining a current physical location of a clustered application;
archiving a first file for said clustered application in accordance with archiving configuration files corresponding to said clustered application;
repeating said determining step to obtain an updated physical location of said clustered application; and
archiving a second file for said clustered application in accordance with said archiving configuration files.
21.  A method according to claim 20, wherein said updated physical location is the same as said current physical location.
22.   A method according to claim 20, wherein determining a physical location comprises:
generating a location request for said clustered application, said location request including a floating identifier for said clustered application; and
obtaining a physical location identifier for said clustered application in response to said location request.
23.  A method according to claim 22, wherein said physical location identifier comprises a machine name for a node in said clustered network environment.
24.  A method according to claim 22, wherein said floating identifier comprises a virtual IP address unique to said clustered application.
ABSTRACT OF THE DISCLOSURE
A data archiving system according to the invention can be deployed in a clustered network environment to perform archiving, backup, and restoring of data for clustered applications supported by the network.  The archiving system generally includes an archiving server application resident at a first node, a virtual client application resident at the first node, and archiving client applications resident at other nodes within the network.  The archiving server application, using the virtual client application, determines the physical location of a clustered application prior to (and, in one practical embodiment, during) the actual backup procedure.  The physical location of the clustered application is processed to access a set of backup configuration files stored by the virtual client application.  The backup configuration files contain information related to the manner in which the clustered application should be archived and/or restored.  In this manner, the data archiving system can perform archiving of clustered applications without having to monitor the network for failover operation of the clustered applications.
【図１】
2005352723.tif 000010
【図２】
2005352723.tif 000011
【図３】
2005352723.tif 000012
【図４】
2005352723.tif 000013
【図５】
2005352723.tif 000014
【図６Ａ】
2005352723.tif 000015
【図６Ｂ】
2005352723.tif 000016