(57)【要約】データをバックアップし、そして／または復元するシステム及び方法である。バックアップ処理が始まると、バックアップグループを含むバックアップアイテムの単一スナップショットを作成するシステム及び方法が提供される。単一スナップショットをバックアップ／復元アプリケーションが使用して保存プロセスを各バックアップグループに対して実行する。同じスナップショットを使用することにより、バックアップが同じ時点を基準にして行われるので、クライアントシステムでバックアップされるデータが矛盾の無い、かつ同期した状態になる。復元処理が始まると、復元アイテム（例えば、バックアップグループ、ライター、及びライターコンポーネント）がクライアントのバックアップグループから選択される。
2008545198.tif 000002
【特許請求の範囲】
【請求項１】
一つ以上のクライアントからのデータのバックアップ処理を実行するサーバと通信する一つ以上のクライアントを含むシステムにおいて、前記データはバックアップグループに体系化され、第１クライアントからのデータを保存する方法は、
単一スナップショットを生成する必要があることを示す信号を受信するステップと；
一つ以上のバックアップグループを保存すべきであることを示す通知を受信するステップと；
前記一つ以上のバックアップグループに対応する一つ以上のディレクトリを特定するステップと； 
特定される前記一つ以上のディレクトリの各々の少なくとも一部分を使用して、単一スナップショットを作成するようにリクエストするステップと、
を備える方法。
【請求項２】
前記単一スナップショットを生成する必要があることを示す信号は、前記サーバのバックアップマネージャによって生成されるスナップショットジョブリクエストを含む、請求項１記載の方法。
【請求項３】
前記一つ以上のバックアップグループに対応する一つ以上のディレクトリを特定するステップは、
前記第１クライアント側でアクティブになっている一つ以上のバックアップグループに関連する一つ以上のライターを列挙するステップと；
前記第１クライアント側でアクティブになっている前記一つ以上のライターから、メタデータを受信するステップと；
前記受信メタデータを分析して前記一つ以上のライターに関連付けられる前記一つ以上のディレクトリを特定するステップと； 
前記特定される一つ以上のディレクトリを、単一スナップショットの作成を要求する前記リクエストに含めるステップと、
を含む、請求項１記載の方法。
【請求項４】
前記単一スナップショット開始信号を受信するステップは、先頭バックアップグループを受信するステップを含み、前記先頭バックアップグループは前記第１クライアント側のどのデータにも関連付けられることがなく、且つ前記先頭バックアップグループを実行することによって、前記選択された一つ以上のバックアップグループに対応する前記一つ以上のディレクトリの特定が開始される、請求項１記載の方法。
【請求項５】
前記特定される一つ以上のディレクトリの各々の前記少なくとも一部分の前記単一スナップショットを実行するステップを更に備える、請求項１記載の方法。
【請求項６】
前記単一スナップショットの削除をリクエストするステップを更に備える、請求項１記載の方法。
【請求項７】
前記第１クライアントの単一スナップショットを実行している間、各ライターに関連付けられる各アプリケーションに処理を一時中断させるステップを更に備える、請求項６記載の方法。
【請求項８】
末尾バックアップグループを受信するステップを更に備え、前記末尾バックアップグループは前記第１クライアント側のどのデータにも関連付けられることがなく、且つ前記末尾バックアップグループを実行することによって、前記単一スナップショットの削除のリクエストが開始される、請求項６記載の方法。
【請求項９】
前記一つ以上のバックアップグループはリストとして受信される、請求項１記載の方法。
【請求項１０】
各アプリケーションに新規のトランザクションを中断させるステップと；
各アプリケーションに現在行なっているトランザクションを終了させるステップと； 
各アプリケーションに関連する全てのキャッシュをディスクにフラッシュするステップと、
を更に備える、請求項９記載の方法。
【請求項１１】
前記単一スナップショットが実行された後で、各ライターに関連付けられる各アプリケーションに処理を再開させるステップを更に備える、請求項９記載の方法。
【請求項１２】
前記特定される一つ以上のディレクトリの各々の少なくとも一部分はコピーセットに含まれ、単一スナップショットの作成を要求する前記リクエストは、前記コピーセットで特定される一つ以上のディレクトリの前記一部分を使用して行なわれる、請求項１記載の方法。
【請求項１３】
一つ以上のディレクトリは、ユーザデータ、システムデータ、オペレーティングシステム、アプリケーション、サービス、前記第１クライアントのオペレーティングシステム状態、これらの要素のコンポーネント、またはこれらの要素の組み合わせの内の少なくとも一つに関連するデータを含む、請求項１記載の方法。
【請求項１４】
バックアップグループに対応する前記データの或る部分、または全ての保存を実行するために、前記単一スナップショットを参照するステップを更に備える、請求項１記載の方法。
【請求項１５】
一つ以上のバックアップグループを保存すべきであることを示す通知を受信するステップは、ユーザが一つ以上のバックアップグループを、ユーザインターフェースを通して選択することを可能にするステップを含む、請求項１記載の方法。
【請求項１６】
一つ以上のクライアントからのデータのバックアップコピーを保存するサーバと通信する一つ以上のクライアントを含むシステムにおいて、クライアントは、
一つ以上のバックアップグループの保存を、一つ以上のバックアップグループの単一スナップショットを使用して実行するように構成されるバックアップアプリケーションの少なくとも一部分と；
前記バックアップアプリケーションと通信するスナップショットマネージャであって、単一スナップショットを生成する必要があることを示す信号を検出するように構成される前記スナップショットマネージャと；
前記スナップショットマネージャと通信し、かつ前記単一スナップショットの実行をリクエストするように構成されるスナップショットジェネレータであって、単一スナップショットを、前記単一スナップショットがもはや必要ではないことを示す信号を受信するまで維持する、前記スナップショットジェネレータと； 
保存対象の前記クライアントのデータを維持するように構成されるストレージデバイスと、を備え、
前記データは、ディレクトリ、ユーザデータ、システムデータ、オペレーティングシステム、アプリケーション、サービス、クライアントのオペレーティングシステム状態、これらの要素のコンポーネント、またはこれらの要素の組み合わせの内の一つ以上である、
システム。
【請求項１７】
前記スナップショットマネージャは、先頭バックアップグループを受信し、そして実行するように構成され、前記先頭バックアップグループは前記クライアント側のどのデータにも関連付けられることがなく、先頭バックアップグループを実行することによって、前記スナップショットジェネレータが始動する、請求項１６記載のシステム。
【請求項１８】
スナップショットジェネレータからのリクエストに応答して単一スナップショットを実行するように構成される、単一スナップショットを実行する手段を更に備る、請求項１６記載のシステム。
【請求項１９】
単一スナップショットを実行する前記手段は、システムプロバイダ、ハードウェアプロバイダ、またはソフトウェアプロバイダの内の少なくとも一つを含む、請求項１８記載のシステム。
【請求項２０】
単一スナップショットを実行する手段は、シャドウコピーサービスを含む、請求項１８記載のシステム。
【請求項２１】
前記シャドウコピーサービスは、
前記クライアント側でアクティブになっている一つ以上のバックアップグループに関連する一つ以上のライターを列挙し；
メタデータを、前記クライアント側でアクティブになっている前記一つ以上のライターから受信し； 
ライターを有する前記バックアップグループに対応する一つ以上のディレクトリを特定する
ように構成される、請求項２０記載のシステム。
【請求項２２】
前記スナップショットジェネレータは、
前記一つ以上のバックアップグループに対応する一つ以上のディレクトリを特定し； 
コピーセットにおいて特定される一つ以上のディレクトリの各々の少なくとも一部分をコンパイルする
ように更に構成される、請求項１６記載のシステム。
【請求項２３】
前記スナップショットジェネレータは、前記クライアントの前記単一スナップショットを実行している間、各ライターに関連付けられる各アプリケーションに処理を一時中断させ、前記単一スナップショットが実行された後で、各ライターに関連付けられる各アプリケーションに処理を再開させるように更に構成される、請求項２０記載のシステム。
【請求項２４】
ユーザに、一つ以上のバックアップグループを選択させることを可能にするユーザインターフェースを更に備える、請求項１６記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データをバックアップするシステム及び方法に関する。詳細には、本発明の実施形態は、データを、単一クライアントスナップショットを使用してバックアップし、そして復元するシステム及び方法に関する。
【背景技術】
【０００２】
多くの個人及びビジネス交流がデータ駆動型である社会では、データは、システム障害、ウイルス、停電などのようなイベントに起因して容易に紛失したり、壊れたりする。データのバックアップは、コンピュータネットワークの重要な機能になっている。なぜならば、重大なビジネス機能及びパーソナル機能を実行する際のコンピュータ及びネットワークに対する依存度が益々高くなって行くからである。容易に、正確に、かつ高い信頼度でデータにアクセスすることができるという環境は、コンピュータ及び／又はネットワークにアクセスしようとする誰もが期待するところである。紛失データをバックアップする、または復元するために、コンピュータまたはネットワークの電源を「切断する」必要がある場合、このような切断時間はパーソナルプロセス及びビジネスプロセスに甚大な影響を及ぼす。データへの途切れないアクセスに対する要求は、データ及びサービスの提供に対する要求を満たすことができるソフトウェア及びハードウェアに対する要求に対応する。
【０００３】
データのバックアップ及び復元は通常、データをバックアップし、かつデータをバックアップコピーから復元するソフトウェアを使用することにより行なわれる。データの量が増え続けることに伴ない、データのバックアップ及び復元は一層複雑になる。ギガバイトレベルのデータは現時点では、１つのディレクトリから別のディレクトリに迅速に転送することができず、バックアップ目的のために或るディレクトリのデータをオフラインで取得する処理は魅力に欠ける選択肢である。
【０００４】
ファイルシステムをバックアップする処理の他に、アプリケーション及びサービスのような他のタイプのデータをバックアップする必要が増している。しかしながら、アプリケーション及びサービスは多くの場合、バックアップが始まる場合にファイルを開いている。開かれたファイルは普通、従来のシステムを使用して効果的にバックアップするということができず、かつ多くの場合、バックアップ処理の間にスキップされる。その結果、更に別のアプリケーションが、開かれたファイルのバックアップを管理し易くするために、かつバックアップの間にスキップされたファイルのバックアップログを管理するために必要となる場合が多い。
【０００５】
オペレーティングシステムは、データをバックアップするソフトウェア及びシステムに別の困難な課題を提示する。オペレーティングシステムが複雑であることによって多くの場合、オペレーティングシステムを論理ユニットにバックアップしてシステムまたはクライアントの状態を維持する必要がある。オペレーティングシステムを部分的にバックアップすることによって、オペレーティングシステムが部分的バックアップまたは不完全バックアップにより復元される場合に、矛盾またはシステム障害が発生する。別の表現をすると、ファイルシステム自体をバックアップすることによって、システムの状態を効果的にバックアップするということができず、その結果、システムが復旧するとエラーが発生する。オペレーティングシステムは多くの場合、システムの状態を維持しながらバックアップする必要のあるデータのデータベース、または他のディレクトリを使用する形で使用される。更に、オペレーティングシステムだけでなく、アプリケーション及びサービスは多くの場合、複数のコンピュータシステムに渡って分散配置され、これにより、データの効果的なバックアップ及び復元が複雑になる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
途切れのないサービスを増大するストレージ要求を満たしながら提供したいという要望によって、データを迅速に、かつアプリケーション及びサービスの中断を最小限に抑えつつバックアップするシステム及び方法に対する要求が生まれている。
【課題を解決するための手段】
【０００７】
本発明の実施形態は、データを選択的にバックアップし、そして／または復元するシステム及び方法に関する。本明細書で使用するように、「データ」という用語は、これらには制限されないが、ディレクトリ（例えば、ボリューム、ファイルシステムなど）、ユーザデータ、システムデータ、アプリケーション、サービス、オペレーティングシステムなどを指し、これらの要素はクライアントの一つ以上のストレージデバイスに保存される。オペレーティングシステムのバックアップまたは復元では、ここに定義される、またはこの技術分野の当業者によって理解されるデータのいずれかをバックアップする、または復元する。データは、必ずしも特定のストレージデバイスに対応する訳ではない論理ディレクトリに体系化される。データは多くのストレージデバイスに格納されるが、データを論理ディレクトリ及びサブディレクトリに体系化して、ユーザが容易に情報の場所を特定することができるようにする。一つの例として、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムでは、メインディレクトリはボリュームを表わす。ボリュームは、例えばクライアント側の通常のストレージボリュームであるＣドライブ及びＤドライブを含むが、ＣドライブまたはＤドライブ自体は、スタックのハードディスクを含んでもよい。ユーザはどの特定のディスクから情報を取得すべきかについて認識する必要はない。従って、ディレクトリを設けてユーザがクライアント側のデータを探索し易くする。クライアントがネットワークを通してアクセスすることができる他のディレクトリを設けてもよい。更に、以下に更に説明するように、ディレクトリ及びサブディレクトリは複数のバックアップグループに体系化され、これらのバックアップグループを選択して、バックアップグループに対応するデータのバックアップまたは復元を実行することができる。クライアントの特定の機能に固有の更に別のディレクトリを設けることができる。例えば、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムでは、クライアントのオペレーティングシステム状態の維持に関する所定のデータは、オペレーティングシステムステートボリューム（ここでは、ＶＳＳボリュームと表記する）に体系化される。更に、ＶＳＳボリュームは他のアプリケーション及び／又はサービスを含み、これらのアプリケーション及び／又はサービスを使用してクライアント側のデータを復元することができる。ＶＳＳボリュームに関しては、一つよりも多くのストレージデバイスを導入することができ、そしてＶＳＳボリュームのデータは、Ｃドライブ、Ｄドライブ、及び／又は他のドライブのようなクライアントコンピュータの異なるストレージデバイスに格納することができる。従って、ＶＳＳボリュームは、データの場所を特定するための単なる論理コンポーネントであるが、ストレージデバイスの実際の集合を表わす訳ではない。しかしながら、１つの実施形態では、ＶＳＳボリュームに関するデータの全ては、クライアント側の複数のストレージデバイスに分散されるのではなく、単一の個別のストレージデバイスに配置される。Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムをここに例示として使用して本発明について説明する。しかしながら、クライアントをバックアップし、そして復元するシステム及び方法は他のオペレーティングシステムに適用することもできることを理解されたい。例えば、他のオペレーティングシステムでは通常、オペレーティングシステム状態の幾つかの局面または全ての局面をバックアップすることが望ましい。更に、他のオペレーティングシステムはディレクトリまたはファイルシステムを利用して、ユーザがクライアント側に格納されるデータを探索し易くする。従って、「ディレクトリ」という用語を「ボリューム」または「ファイルシステム」という用語と同じ意味に使用して、クライアント側のデータを論理的に体系化する全ての手段を指す。
【０００８】
本発明のシステム及び方法は単一スナップショットを利用して、或る時点でのクライアントデータのコピーを単一の時点において可能にする。スナップショットは原始データの、または一つ以上のボリュームのコンテンツの読み出し限定の或る時点の複製または表現であるので、実際のコピーは別のローカルストレージデバイスまたはリモートストレージデバイスで行なわれる。単一スナップショットによって、クライアントにおける複数のボリューム及び／又はサブディレクトリにあるデータの或る部分、または全ての部分を単一の時点で同期バックアップされるので、ユーザは、バックアップデータを復元する、またはバックアップデータにアクセスするときに、クライアントのバックアップデータの全てが特定の時点で同期することを確認することができる。ローカルストレージデバイスまたはリモートストレージデバイスでの或る時点のコピーは、既に開いているファイルの有用なバックアップを含み、かつオペレーティングシステム状態のバックアップも可能にする。これにより、オペレーティングシステムを論理ユニットとして、システムのオペレーティングシステム状態を変化させることなく復旧される。本発明の実施形態によって更に、クライアントまたはシステムのコンポーネントを選択的にバックアップし、そして／または復元することができる。
【０００９】
通常、ユーザはバックアップ対象のクライアントまたはシステムのボリュームに関連するバックアップグループの全てを選択するように選択を行なう。この場合、単一スナップショットは、単一の時点におけるクライアントまたはコンピュータのボリュームのデータの全ての表現を捕捉するので、例えばオペレーティングシステム状態を単一の時点の状態とも一致させることができる。しかしながら、バックアップグループの全てに満たないバックアップグループは、クライアントのデータの全てに満たないデータをバックアップする必要があると指定するユーザによって選択されてもよい。これは、クライアントデータシステム全体のバックアップを実行することなく、変更が或るバックアップグループにのみ行なわれたことをユーザが認識する場合に有利である。ユーザは、バックアップ／復元アプリケーションと通信するユーザインターフェースにアクセスすることにより、一つ以上のバックアップグループを選択することができる。バックアップグループは、バックアップを必要とするアイテムを特定する情報を含む。バックアップグループに特定されるアイテムは複数のボリュームに分散される可能性があるので、本発明の実施形態によって確実に、該当するボリュームを単一スナップショットに追加し、そして該当するデータを正しくバックアップするが、これについては以下に更に詳細に説明する。
【００１０】
バックアップを実行する場合、バックアップされることになるデータのストレージを処理している、または制御しているシステムは、クライアントにリクエストして、一時的に処理をフリーズさせる、または中断させる。処理が中断している間、データの単一スナップショットが作成される。単一スナップショットが作成された後、バックアップを単一スナップショットに基づいて実行しながら、アプリケーション及び／又はサービスに指示して処理を再開させる。処理を中断することによって開いているファイルを把握し、そして単一スナップショットに含める。従って、開いているファイルはバックアップにおいてスキップされることはない。また、バックアップされているサービスまたはアプリケーションには単一スナップショットを作成する前に通知が行なわれ、そしてバックアップのために中断し、そして準備するための時間が与えられる。従って、バックアップ／復元アプリケーションによって確実に、トランザクションが一時中断され、かつバックアップ対象のデータが矛盾の無い状態になる。
【発明を実施するための最良の形態】
【００１１】
本発明に関する上に記載した特徴、及び他の特徴を更に明らかにするために、本発明についての更に詳細な説明を、添付の図に示される本発明の特定の実施形態を参照しながら行なうこととする。これらの図は本発明の単なる通常の実施形態を表わしているので、本発明の技術範囲を制限するものとして捉えられるべきではない。本発明は、更に別の細部及び詳細について添付の図を使用して記述され、そして説明される。
【００１２】
１．データをバックアップするための環境例の概要
図１は、ネットワークデータのスナップショットを作成し、そして本発明への使用に適合させることができるネットワークデータをバックアップし／復元するシステム例を示している。図１のシステムを使用して、データを本発明に従ってバックアップするが、本発明の実施形態は、バックアップ対象のデータを有する他のネットワークにおいても実施される。図１はサーバ１０２を示し、このサーバは、クライアント１０４，１０６，及び１０８によって表わされるクライアント（群）との関係を有する。各クライアント１０４，１０６，及び１０８はデータをストレージボリュームに格納し、このストレージボリュームはそれぞれのクライアント自体に、そして／またはそれぞれのクライアントから離れた場所に設けられる。ストレージボリュームはクライアントの一つ以上のボリュームまたはドライブだけでなく、アプリケーション及びサービスを表わす。クライアント１０８は、例えばデータ（アプリケーション、サービス、及び／又はボリュームを含む）を含むストレージ１０９を有する。また、サービスは或るタイプのアプリケーションを表わすので、ここではアプリケーションと表記してもよい。
【００１３】
各クライアント１０４，１０６，及び１０８はバックアップ対象のデータを有するシステムを表わす。各クライアントは比較的に簡単なものでも（例えば、デスクトップコンピュータ）、または比較的複雑なものでも（例えば、大規模データベースサーバまたはサーバクラスタ内の一つのサーバ）よい。クライアントは更に、ネットワーク上の或るノード、またはストレージエリアネットワーク（ＳＡＮ）上の或るストレージデバイスであってもよい。各クライアント１０４，１０６，及び１０８は更に、サーバ１０２とは異なるオペレーティングシステムまたはプラットフォームで動作してもよい。バックアップ処理の環境では、クライアントはサーバ１０２による制御の下で動作する。
【００１４】
本明細書において使用するように、「ユーザ」という用語は、サーバ１０２を操作する人（例えば、アドミニストレータ）を指してもよい。別の構成として、ユーザはクライアント１０４，１０６，及び／又は１０８を使用する人を指してもよい。両方のタイプのユーザはバックアップまたは復元を要求するリクエストを開始するが、サーバ１０２は、クライアント１０４，１０６，または１０８が利用することができない更に別の機能を有してもよいことを理解されたい。ユーザはスケジュールを立て、このスケジュールは、サーバ１０２がバックアップ処理をクライアント１０４，１０６，及び／又は１０８のデータに対して自動的に実行する時刻を決定する。しかしながら、クライアント側のユーザがアドホックバックアップ処理及び復元処理を開始してもよい。図１の例では、サーバ１０２はバックアップストレージ１１０にアクセスし、このバックアップストレージ１１０には、クライアントのデータの一つ以上のコピーが保存される。バックアップストレージ１１０はサーバ１０２の中に配置されても、サーバ１０２とは異なる別体として設けられてもよい。データ１１４は、サーバ１０２によってバックアップストレージ１１０でバックアップされているデータを表わす。
【００１５】
サーバ１０２は通常、サーバから開始する全てのバックアップ処理またはプロセスを制御し、そして指示する。クライアントはアドホックバックアップ処理及び復元処理を制御する。データは、１つの実施形態では、バックアップグループを使用してバックアップされる。しかしながら、バックアップグループを用いる場合でも、クライアントシステムの単一スナップショットを使用してバックアップグループのバックアップを実行する。
【００１６】
単一スナップショットは、オペレーティングシステム状態の重要なコンポーネントをバックアップし、そして矛盾の無いユニットとして復元されることが望ましい場合に有用である。別の表現をすると、オペレーティングシステムは、全ての時点におけるオペレーティングシステムの状態を定義するファイルまたはデータを含む。サーバ１０２がシステムのバックアップを実行する場合、このサーバ１０２によって、オペレーティングシステムに関連する適切なバックアップグループを同じスナップショットを使用してバックアップし、確実にオペレーティングシステムに対して、クライアントの矛盾の無い時点におけるバックアップを提供することが保証される。クライアントは、これもまた矛盾の無いユニットとしてバックアップする必要のあるコンポーネントを有するオペレーティングシステム固有のアプリケーション及びサービスの他に、他のアプリケーションまたはサービスを含む。例えば、上で説明したように、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムでは、これらのアプリケーション及びサービスはオペレーティングシステム状態コンポーネントとともに、ＶＳＳボリュームに入れることができる。しかしながら、クライアントデータは、デザイン検討事項によって変わる形で、いずれかの適切な方法により体系化し、そして／またはグループ化される。
【００１７】
図１に戻って、この図を参照すると、サーバ１０２は更に、クライアントファイルインデックス１１２及びメディアボリューム１１６を共に、サーバ自体、及びバックアップストレージ１１０に配置し、そして管理する。クライアントファイルインデックス１１２はバックアップデータアイテムのインデックスである。メディアボリューム１１６はバックアップボリュームのインデックスである。クライアントファイルインデックス１１２及びメディアボリューム１１６は一括してここでは「オンラインインデックス」と表記される。オンラインインデックスは通常、バックアップ処理が完了した後にバックアップストレージ１１０に保管される。しかしながら、他のオペレーティングシステムが同様のデータ構造を使用して、バックアップされるディレクトリ及びアイテムを維持してディレクトリ及びアイテムをリカバリーの間に復元することができるようにすることを理解されたい。
【００１８】
２．単一スナップショットを作成するシステム例
図２を簡単に参照すると、単一スナップショットを作成し、そしてバックアップ及び復元処理を実行するシステム例が示される。この図に示すように、バックアップ／復元アプリケーション２０２がバックアップ／復元処理を開始する。本明細書において使用するように、バックアップ／復元アプリケーションは、リクエスターと表記され、または別の表現では、バックアップまたは復元処理をリクエストするアプリケーションと表記される。バックアップ／復元アプリケーション２０２によって、ユーザはバックアップする、または復元する全ての、または特定のバックアップグループを選択する。例えば、図２の実施形態では、バックアップ／復元アプリケーション２０２はサーバコンポーネント２０２Ａ及びクライアントコンポーネント２０２Ｂを有し、これらのコンポーネントは通信することによりバックアップまたは復元機能を実行する。サーバコンポーネント２０２Ａ及びクライアントコンポーネント２０２Ｂはバックアップ／復元アプリケーション２０２全体の一部分であるが、サーバコンポーネント２０２Ａ及びクライアントコンポーネント２０２Ｂを必要に応じて異ならせて、サーバ１０２及びクライアント１０８が種々の該当する機能を実行することができることを理解されたい。バックアップ／復元アプリケーション２０２の一部分が２通りに分かれる、或いは３通りにまでも分かれる場合、図２に示すコンポーネント群の配置は異なってもよく、かつ図２のシステムは例示として提示されるのであり、本発明を制限するために提示されるのではないことを理解されたい。典型的とは言えない実施形態では、バックアップ／復元アプリケーション２０２はサーバにのみ実装される（この場合、サーバはクライアントの特徴を持つ）か、またはクライアントにのみ実装される（この場合、クライアントはサーバの特徴を持つ）。図２に示すように、バックアップ／復元アプリケーション２０２は、バックアップ／復元アプリケーションのアクセス先であるバックアップストレージ２０４と通信して、バックアップ及び／又は復元機能を実行する。
【００１９】
クライアントコンポーネント２０２Ｂは、１つの実施形態ではクライアント側のスナップショットマネージャ２０６と通信する。スナップショットマネージャ２０６はスナップショットジェネレータ２０８を始動し、スナップショットジェネレータは単一スナップショットの作成を開始する。スナップショットジェネレータ２０８は、スナップショットが作成されるまで、バックアップが行なわれているシステム、例えばクライアント１０８に対して処理の一時中断をリクエストする。スナップショットジェネレータ２０８は、単一スナップショット２１４がデータに基づいて作成されるときのデータとなる物理データ２１２を含むストレージ２１０と通信する。
【００２０】
３．データのバックアップ／復元に使用されるバックアップグループ例
上で説明したように、バックアップ対象のクライアントデータまたはアイテムは、これらには制限されないが、ボリューム、ユーザデータ、システムデータ、アプリケーション、サービス、オペレーティングシステム、及び／又は他の類似の要素を含む。クライアントデータはディレクトリまたはボリュームに体系化され、ボリュームは更に或る階層のサブディレクトリを有し、更にクライアントデータは、バックアップ／復元アプリケーションと通信するユーザインターフェースに表示される。更に、階層によってユーザは特定のボリュームまたはサブディレクトリをバックアップする対象として指定し易くなる。ボリューム及びサブディレクトリは「バックアップグループ」単位で体系化され、バックアップグループはここでは、サーバ１０２と特定クライアント、例えばクライアント１０８との間でバックアップセッションが行われている間にバックアップされるデータまたはアイテムの集合として定義される。従って、バックアップグループはボリューム全体、ボリューム全体に満たないボリューム、または一つ以上のボリュームに分散されるデータを含み、バックアップグループはこれらには制限されないが、ファイルグループ、ファイルシステム全体、データベースまたはオペレーティングシステム情報のようなアプリケーション生成データなどを含む。バックアップグループはアプリケーションまたはサービス、或いは一つ以上のボリュームに分散されるアプリケーション、サービス、及び／又はオペレーティングシステムのコンポーネントを含む。バックアップグループが一つよりも多くのボリュームに格納される情報を含む構成の一つの例を示すと、バックアップグループは、オペレーティングシステム状態に関する情報を含むが、当該情報は異なるボリュームに格納される。従って、バックアップグループという用語は、論理的にグループを構成するファイル群を識別し、そしてファイル群の位置を特定する体系化ツールとして使用される。
【００２１】
或るオペレーティングシステムは、アプリケーションまたはサービスによって動作して情報をストレージデバイスに保存する書き込みコンポーネントを含む。例えば、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムでは、書き込みコンポーネントは「ライター」と表記される。従って、「ライター」及び「書き込みコンポーネント」という用語は、同じ意味に使用されてこの機能を提供する全てのコンポーネントを指す。更に、書き込みコンポーネントは、スナップショット生成ハードウェア及びソフトウェアを含むバックアップ／復元ハードウェア及びソフトウェアと対話する。一般的に、ライターはバックアップ対象の少なくとも一つのアプリケーションまたはサービスに対応する。バックアップグループにおいてライターに関連するデータは更に、異なるボリューム、サブディレクトリなどに格納される。例えば、ライターはデータを一つよりも多くのボリュームに格納される。更に、幾つかのボリュームをいずれのライターにも関連付けないようにすることができる。従って、バックアップグループを、ライターに関連付けられる或るボリューム、いずれのライターにも関連付けられないボリューム、または両方のボリュームに格納される情報に対応させることが可能である。クライアント側の一つ以上のファイルはオペレーティングシステム状態に関連する。１つの実施形態では、上に述べたように、バックアップグループを使用して、クライアントのオペレーティングシステム状態に関連するファイルが体系化される。例えば、Ｍｉｃｒｏｓｏｆｔ（登録商標）はボリューム・シャドウ・コピー・サービスを提供し、そしてＶＳＳボリュームフレームワークを提供して、Ｗｉｎｄｏｗｓ（登録商標）で動作するクライアントのオペレーティングシステム状態をバックアップする。更に、上に述べたように、ＶＳＳボリュームは、ライターを含む他のアプリケーション及び／又はサービスを含む。ＶＳＳボリュームは、オペレーティングシステム状態に関連するバックアップデータの体系化ツールとなる。クライアントのオペレーティングシステム状態に関するバックアップグループを保存することによって、ユーザはユーザのオペレーティングシステムを復元し、そしてオペレーティングシステムを必要に応じて前の状態に戻し、更にこの保存処理は、ユーザのオペレーティングシステムドライブまたはマシン全体が壊れた場合に重要となる。この処理を行わない場合には、ユーザはユーザのシステムを再構築してサービスを再構成し、更にアプリケーションを再インストールし、そして再構成する必要がある。
【００２２】
ボリューム・シャドウ・コピー・サービスを、ここに説明する論理ＶＳＳボリュームと組み合わせて実装するＷｉｎｄｏｗｓ（登録商標）オペレーティングシステムは、クライアントデータに関連するバックアップグループを体系化する単なる一つの例示的な方法に過ぎない。他のオペレーティングシステムプラットフォームは、バックアップグループをクライアントに関連するデータに関して体系化する同様の方法、または異なる方法を使用する。しかしながら、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムの例を使用して、図３Ａ及び３Ｂはユーザインターフェース３０２Ａ，３０２Ｂの２つの例を示しており、各ユーザインターフェースは、クライアントのバックアップグループを体系化する異なる方法を有する。ユーザインターフェース３０２Ａ，３０２Ｂはバックアップ／復元アプリケーションに関連付けられ、これについては以下で更に詳細に説明する。ユーザはユーザインターフェース３０２Ａまたは３０２Ｂと対話して、保存すべき特定のバックアップグループを選択する。別の構成として、ユーザは単に、ユーザインターフェースを使用することなく、バックアップ対象のバックアップグループを列挙する。更に、ユーザはバックアップ対象の「全ての」バックアップグループを選択する。実際、矛盾の無いバックアップオペレーティングシステム状態について関心がある場合、ユーザは、ＶＳＳボリュームに関連する少なくともこれらのバックアップ対象の全てのバックアップグループを選択する。
【００２３】
図３Ａは、複数のボリュームを含むインターフェース３０２Ａを示し、各ボリュームは特定の英数字によって特定され、かつドライブ（例えば、Ａ：ドライブ、Ｃ：ドライブ、Ｄ：ドライブなど）として共通に表記される。複数のＶＳＳバックアップグループ３２８も設けてバックアップ／復元機能を実行する。図３Ａに示すように、システムの或るボリュームに関連するバックアップグループ３２６、及びオペレーティングシステム状態に関連するバックアップグループ３２８は同じツリーにある。これとは異なり、図３Ｂでは、メインＶＳＳボリュームに関連するバックアップグループ３５４はツリー３５０の下に配置される。
【００２４】
一例としての図３Ａによれば、図３Ｂにも当てはまるが、バックアップグループ３２８はバックアップグループ３０６，３０８，３１０，３１２，３１４，及び３１６を含み、これらのバックアップグループはシステムバックアップグループであり、かつオペレーティングシステムライター及びライターコンポーネントを含む。システムバックアップグループ３２８の多くのコンポーネントが相互依存性を持つので、ユーザはバックアップグループ３２８の全て（すなわち、クライアントのオペレーティングシステム状態の維持に関連するバックアップグループ）を選択して、単一スナップショットを、バックアップグループの全て、及び単一スナップショットを使用して行なうバックアップごとの保存に関して作成することができるようにすることが好ましい。システムのバックアップグループの全てに関するバックアップは同じスナップショットを使用して行なわれる。これにより、万が一、復元が必要になった場合には、クライアントのオペレーティングシステム状態を、無矛盾性を保ちながら確実に復元することができる。しかしながら、上で説明したように、かつ図３Ａに示されるように、ユーザは、バックアップ対象のクライアントのオペレーティングシステム状態に関連するバックアップグループの全てに満たないバックアップグループを選択し、そして選択されるこれらのバックアップグループは単一スナップショットを使用してバックアップされることになる。
【００２５】
１つの実施形態では、バックアップグループ３２８，３５４は動的に収集され、そしてバックアップグループ３２８，３５４の内容は、どのライターがクライアント側でアクティブになっているかという事実に部分的に基づいて動的に決定される。クライアントのライターが列挙されるか、または特定されると、同じタイプのライターが或る特定のバックアップグループのライターになる。従って、特定のバックアップグループに関連するライターは同じタイプを有する。例えば、図３Ａでは、複数のライター３２４はそれぞれ同じタイプを有し、かつバックアップグループ３１０に含まれる。特定のアプリケーションまたはサービスに関するライターを利用することができない（すなわち、非アクティブになっている、または存在しない）とすると、適切なファイルは、該当するボリューム（群）がバックアップ用に選択される場合にファイルシステムを通してバックアップされる。所定のバックアップ処理が行なわれる場合、バックアップグループ群の内の幾つかのバックアップグループは、他のバックアップグループがライターを全く含むことができない状態でアクティブライターを含む。
【００２６】
ライターに関する上の説明から、ライター群を全てのボリュームまたはバックアップグループに関連付ける必要があるという風に捉えられるべきではない。或るボリュームをどのライターにも関連付けなくてもよい。更に、バックアップグループに対応する情報が、ライターに関連付けられないボリュームに格納される場合、或るバックアップグループをどのライターにも関連付けない。ボリューム群はライター群に関連付けてもよいが、オペレーティングシステム状態に関連するバックアップグループ群のいずれとも関連付けないようにしてもよい。
【００２７】
本発明は、全てのバックアップグループを実際に１回の処理ごとにバックアップすることを必要としないことを理解されたい。すなわち、ユーザはバックアップ対象の所定のバックアップグループ群を指定することができる。従って、図３Ａ及び３Ｂの論理的体系化によって差が生じ、この場合、ユーザはバックアップ対象のバックアップグループ群の全てに満たないバックアップグループを選択する。例えば、図３Ａの体系化によって、メインディレクトリとして体系化されるオペレーティングシステム状態に関連する所定のバックアップグループ群を設定して、これらのバックアップグループを選択する。図３Ａに示すように、ユーザはユーザの希望に応じて、システムドライブＤ、ＶＳＳ  Ｓｙｓｔｅｍ  Ｂｏｏｔ（ＶＳＳシステムブート）、及びＶＳＳ  Ｕｓｅｒ  Ｄａｔａ（ＶＳＳユーザデータ）を選択して、または列挙して、バックアップすることができる。これとは異なり、図３Ｂでは、ＶＳＳバックアップグループ群は全て、一つのメインＶＳＳボリュームの下のサブディレクトリ群として体系化されるので、ユーザはＶＳＳボリューム全体を選択することができる。例えば、図３Ｂに示すように、ユーザは場合によっては、システムＣドライブ、システムＤドライブ、及びＶＳＳボリュームを選択して、または列挙して、バックアップする。ＶＳＳボリュームを選択することにより、オペレーティングシステム状態に関連するバックアップグループ群の全てを含むオペレーティングシステム状態ディレクトリ全体が、ＶＳＳボリュームが選択されるたびにバックアップされる。図３Ｂの構成の方が、ユーザが単一の選択（すなわち、ＶＳＳ：）を行なって、オペレーティングシステム状態に関連するバックアップグループ群の全てを特定する操作を容易にすることができるので望ましい。なぜならば、或る状況では、オペレーティングシステム状態が、オペレーティングシステム状態データのバックアップが行なわれるたびに一致していることを確認することが望ましいからである。しかしながら、ユーザは必要に応じて、オペレーティングシステム状態に関連するサブグループ群を、オペレーティングシステム状態サブグループ群の全てを選択する必要を生じることなく選択してもよい。ユーザがバックアップ対象のバックアップグループ群の全てを選択する、または幾つかのみを選択するかどうかに関係なく、単一スナップショットが、選択されるバックアップグループ群に対応するボリューム群から作成される。従って、図３Ａの例の場合、単一スナップショットはＣドライブボリューム及びＤドライブボリュームから作成される。更に、ＶＳＳ  Ｓｙｓｔｅｍ  Ｂｏｏｔバックアップグループ、ＶＳＳ  Ｓｙｓｔｅｍ  Ｆｉｌｅｓｅｔ（ＶＳＳシステムファイルセット）バックアップグループ、及びＶＳＳ  Ｓｙｓｔｅｍ  Ｓｅｒｖｉｃｅｓ（ＶＳＳシステムサービス）バックアップグループに対応するボリューム群が単一スナップショットに含まれることになる。１つの実施形態では、ＶＳＳバックアップグループ群に対応するボリューム群を実際には、Ｃドライブボリューム及びＤドライブボリュームとして、追加のボリュームを単一スナップショットに含める必要がないようにする。別の実施形態では、選���されるＶＳＳバックアップグループ群に対応するこれらのボリュームの他のボリューム群を表示して、追加のボリュームを単一スナップショットに含めることができるようにする。図３Ｂの場合、単一スナップショットはＣドライブボリューム、Ｄドライブボリューム、及びＶＳＳボリュームバックアップグループに関連するボリューム群から作成することができる（このスナップショットはここでも同じように、単一スナップショットに既に含まれているボリューム群、例えばＣドライブボリューム及びＤドライブボリュームに格納される情報に一致させることができる）。いずれの場合においても、単一スナップショットを作成した後、バックアップグループ群の各々に関するバックアッププロセスは、バックアップ処理のベースとなる同じスナップショットを使用することになる。従って、選択されるバックアップグループ群（または、必要に応じて、クライアントシステム全体）のバックアップは、単一時点でのバックアップを反映する。
【００２８】
これまでのプロセス例において説明したように、スナップショットマネージャ２０６及びスナップショットジェネレータ２０８は、バックアップグループ群のいずれかの保存プロセスを実行するために使用される単一スナップショットを開始する。これにより、従来のバックアッププログラムによって実現する復元よりも更に無矛盾性を保った復元が実現する。例えば、新規の１枚のハードウェアをインストールする場合、新規のドライバもインストールする必要がある場合が多い。普通、新規のドライバは当該ドライバの動作に関する情報を含む。この情報の或る部分は一つのオペレーティングシステムライターの内部に保存され、そして更に、データは、別のライターに割り当てられるハードドライブの一つ以上のファイルに保存される。この情報には必要に応じて、オペレーティングシステムがアクセスされ、そしてこの情報はドライバが正しく動作するために必要である。ドライバデータを保存するこれらのライターの内の一つのライターを一つのバックアップグループに入れ、ドライバデータを有するファイル群を含む別のライターを別のバックアップグループに入れる。両方のバックアップグループが同じスナップショットによって保存されない場合、情報の一方の部分が他方の部分と同期しないようにすることが可能である。
【００２９】
これとは異なり、本発明では、選択されるバックアップグループ群に対応するボリューム群の単一スナップショットが単一時点で作成される場合に、サーバ１０２がクライアント１０８に指示して、単一スナップショットを使用させてバックアップグループ群の各々の保存を実行させるようにする。更に、ファイル群を共有するバックアップグループ群にとっては、共有ファイルが同じ時点で更新され、これによって、重要な情報が脱落する機会を最小限に抑えることが保証される。従って、本発明では、バックアップデータは、単一クライアントスナップショットにより提供される単一の基準時点を基準とするので、実際にバックアップされる選択データが同じ時点が基準となる。バックアップのタイプは変わり得る。例えば、インクリメンタルバックアップを所定のバックアップグループ群に対して実行してもよい。別の構成として、フルバックアップを実行してもよい。
【００３０】
しかしながら、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステム形態では、ライター群を含む或るバックアップグループがバックアップされている場合には、当該バックアップグループのライター群の全てに対するフルバックアップを通常実行して、クライアントのオペレーティングシステム状態を維持するか、またはバックアップされているアプリケーションまたはサービスの状態を維持する。或る例では、バックアップグループのライター群の内の一つのライターはバックアックされない。この状況は、例えば当該ライターに関連するデータが変化していない場合に生じる。バックアップの性能は、特にライターによって特定されるアプリケーションが大きい場合に改善される。別の表現をすると、変化していない大きなアプリケーションをバックアップする処理を行なわないことにより、バックアップの性能は改善される。しかしながら、アプリケーションのデータが変化してしまうと、アプリケーションのフルバックアップが通常実行される。
【００３１】
図３Ｃ及び３Ｄは更に、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムで実行されるクライアント側のデータを選択的に復元するユーザインターフェース例を示している。図３Ｃにおいて、インターフェース３０２Ｃは、バックアップグループ３１０及び３１４が選択されて復元される様子を示している。更に、例えばバックアップグループ３１０におけるサブグループ群、すなわちライター群３２４及びコンポーネント３１３は、復元対象のバックアップグループ３１０全体を選択することなく、選択して復元される。図３Ｄは、図３Ｂの論理的体系化に対応するが、図３Ｃのインターフェース３０２Ｃとほぼ同じ機能及び目的を有する復元インターフェース３０２Ｄを示している。
【００３２】
４．単一スナップショットを作成する方法例
次に、図４Ａを参照して、クライアントデータを図２のシステム例を使用してバックアップするために使用される単一スナップショットを作成するプロセス例について更に詳細に説明する。図４Ａは、クライアント及びサーバが１つの実施形態において相互作用して単一クライアントスナップショットを作成する様子を示している。ステップ４０２では、サーバ１０２側のバックアップ／復元アプリケーションサーバコンポーネント２０２Ａを起動する。ステップ４０４では、サーバコンポーネント２０２Ａがクライアント側のバックアップ／復元アプリケーションクライアントコンポーネント２０２Ｂを起動する。ステップ４０６では、クライアントコンポーネント２０２Ｂが、全ての使用可能なバックアップグループ群のリストを当該クライアント用に作成し、そして当該リストをサーバコンポーネント２０２Ａに返送する。
【００３３】
ステップ４０８では、サーバコンポーネント２０２Ａがバックアップグループ群のリストを受信して、ユーザがバックアップ対象の利用可能なバックアップグループ群の内の一つ以上を選択することができるようにする。上で説明したように、ユーザはバックアップグループ群の全てを、または特定のバックアップグループ群のみを選択してバックアップすることができる。本明細書で使用するように、「ユーザ」という用語は、どのバックアップグループ群をバックアップすべきかに関する選択を行なう全ての人を指す。従って、ユーザとは、クライアントコンピュータを操作する人、またはクライアントコンピュータをサーバまたは他のグラフィカルユーザインターフェースを通して操作する管理者を指す。ユーザはバックアップグループ群を選択してバックアップ前のいずれの時点でも保存することができる。例えば、ユーザは、事前に構成されたバックアップグループを選択し、この同じ選択が一連の事前にスケジューリングされたバックアップに使用される。１つの実施形態では、クライアントコンポーネント２０２Ｂは、バックアップグループ群の全てを事前に構成して、バックアップが行なわれるたびにこれらのバックアップグループを保存するように構成される。この実施形態によって、オペレーティングシステム状態が確実に、バックアップが行なわれるたびに矛盾の無い基準時点でバックアップされるようにする。しかしながら、上に記載したように、ユーザが所定のバックアップグループ群のみを選択してバックアップし、そしてバックアップが行なわれる前のそれぞれの機会ごとに、この選択プロセスを実行してもよい。
【００３４】
ステップ４０９では、サーバコンポーネント２０２Ａは、ユーザが選択する選択バックアップグループ群を含むバックアップグループ群の変更リストを作成する。変更リストは、リストの先頭の先頭バックアップグループ５１２、及びリストの末尾の末尾バックアップグループ５１４も含む。変更リストは単に、選択されたバックアップグループ群が処理される順番を示し、そして本発明はバックアップグループ群の実際のリストの作成に制限されない。別の実施形態では、ユーザはまず、バックアップグループ群を、クライアントで利用する可能性がある潜在バックアップグループ群のリストに基づいて選択し、次に選択されたバックアップグループ群を、クライアントで利用する実際のバックアップグループ群のリストと比較する。他の変形例を使用してもよい。
【００３５】
図４Ｂは、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムの実施形態例において図３Ａに特定される選択を使用してサーバコンポーネント２０２Ａで作成されるバックアップグループ群の変更リスト５００の一例を示している。１つの実施形態では、バックアップグループ群の変更リストは、リストの先頭の先頭バックアップグループ５１２、及びリストの末尾の末尾バックアップグループ５１４を必ず含む。例えば、図３Ａに示すように、バックアップグループ５０２，５０４，５０６，５０８，及び５１０をユーザがバックアップ用に選択している。更に、選択されたバックアップグループ５０２，５０４，５０６，５０８，及び５１０の他に、先頭バックアップグループ５１２及び末尾バックアップグループ５１４もリストの先頭及び末尾に含まれる。ここで、同じようにして、図４Ｃが、バックアップグループ群の変更リストを図３Ｂのユーザインターフェース３０２Ｂに示される選択を使用して作成する様子を示していることに注目されたい。この場合、変更リスト５１６は先頭バックアップグループ５１２と、選択バックアップグループ５１８，５２０，及び５２２と、そして末尾バックアップグループ５１４と、を含む。勿論、変更リスト５１６は、特定のオペレーティングシステムがどのようにしてバックアップグループ群を体系化するかによって変わることになる。
【００３６】
先頭バックアップグループ５１２及び末尾バックアップグループ５１４は疑似バックアップグループである、というのは、これらのバックアップグループは、クライアントコンポーネント２０２Ｂに送信されることになる最初及び最後のバックアップグループであるが、どの特定のボリュームにも関連付けられることがないからである。これらのバックアップグループは、単一スナップショットの作成及び削除に使用され、そしてこれらのバックアップグループを使用して、作成スナップショットを維持する。変更リスト５００の作成がユーザには見えないことが好ましいことを理解されたい。
【００３７】
いずれにしても、ステップ４１０では、サーバコンポーネント２０２Ａはバックアップグループ群の変更リストをクライアントコンポーネント２０２Ｂに送信する。ステップ４１２では、変更リストの先頭バックアップグループ５１２を送信することにより、サーバコンポーネント２０２Ａは、バックアップを要求する他のどのようなリクエストも当該特定のクライアントに送信しないことを認識し、そして単一クライアントスナップショットの生成が成功した、または失敗したことを示す信号をクライアントコンポーネント２０２Ｂから受信するまで待機することを認識する。単一スナップショットの生成が失敗すると、バックアップ／復元アプリケーション２０２はデフォルト手順を使用して、単一スナップショットに一括してグループ化するのではなく、各選択バックアップグループのスナップショットを個々に生成する。
【００３８】
ステップ４１４では、クライアントコンポーネント２０２Ｂは、先頭バックアップグループ５１２及び末尾バックアップグループ５１４を含む変更リストを受信する。ステップ４１６では、先頭バックアップグループ５１２を実行することにより、クライアント側に配置されるスナップショットマネージャ２０６を起動する。
【００３９】
ステップ４１８では、クライアントコンポーネント２０２Ｂは変更リストをスナップショットジェネレータ２０８に渡す。ステップ４２０では、スナップショットジェネレータ２０８を起動すると、単一スナップショットの作成が始まる。スナップショットマネージャ２０６はアクティブ状態を維持して、スナップショットジェネレータ２０８からのスナップショット作成完了信号を待機する。
【００４０】
ステップ４２２では、スナップショットジェネレータ２０８は、変更リストに特定されるバックアップグループアイテム群に対応するボリューム群の全ての識別情報を管理することにより、単一スナップショットの作成を調整する。１つの実施形態では、スナップショットジェネレータ２０８は、特定済のボリューム群の全てをコピーセットに含み、そしてスナップショットの作成をリクエストする。コピーセットという用語は、単一スナップショットに記録することになるボリューム群のグループを指すために使用される。コピーセットは、単一スナップショットに記録する必要のあるボリューム群のリストまたは他の識別情報とすることができる。各オペレーティングシステムはスナップショット群を異なる形で作成するので、スナップショットを作成する処理の詳細についてはここでは説明しないが、システム例を使用して以下に更に詳細に説明する。一旦、スナップショットが作成されると、当該スナップショットをパスネームに関連付けて、バックアップ／復元アプリケーションが後の時点でスナップショットの位置を特定することができるようにする。以下に更に詳細に説明するように、クライアントコンポーネント２０２Ｂは、スナップショットが作成されている間は、クライアント１０８側のライター動作を一時中断する。更に、１つの実施形態では、メタデータは単一スナップショットを使用して生成される。
【００４１】
スナップショットに成功すると、ステップ４２３では、スナップショットジェネレータ２０８はスナップショットに、単一スナップショットが作成される時点で生成されるメタデータを付加して、保存またはバックアッププロセスを実行するために有用な追加情報を取り込む。更に、変更済みスナップショットファイルがクライアント２０２Ｂ側に格納されていても、ファイル名を作成して変更済みスナップショットファイルの位置を特定する。これについては以下に更に詳細に説明する。ステップ４２４では、スナップショットの作成に成功したことを示す信号をサーバコンポーネント２０２Ａに送信する。これがサーバコンポーネント２０２Ａに通知されて保存プロセスが開始する。ステップ４２５では、スナップショットジェネレータ２０８は或るイベントを設定し、このイベントを使用して、スナップショットを削除するときに信号を受信する。ステップ４２６では、スナップショットジェネレータ２０８がアクティブ状態を維持している間、スナップショットマネージャ２０６は停止する。スナップショットジェネレータ２０８は、選択バックアップグループ群の保存プロセス群の全てが完了するまで、かつスナップショットが削除されるまで、アクティブ状態を維持する。
【００４２】
ステップ４２６では、停止する前にスナップショットマネージャ２０６は変更済みスナップショットファイル名を先頭バックアップグループ５１２と一緒にサーバコンポーネント２０２Ａに返送し、これらの変更済みスナップショットファイル名及び先頭バックアップグループをサーバコンポーネント２０２Ａがステップ４２８で受信する。或る実施形態では、この動作によって別のアクション４２４が生成されるのではなく、サーバコンポーネント２０２Ａに、スナップショットの作成に成功したことが通知されるようになる。いずれにしても、変更済みスナップショットファイル名及び先頭バックアップグループ５１２を受信することにより、サーバコンポーネント２０２Ａに、当該コンポーネントがこの時点で保存プロセスを開始することを通知する。
【００４３】
ステップ４２９では、サーバコンポーネント２０２Ａはクライアントコンポーネント２０２Ｂへのリクエストの送信を開始して、クライアントコンポーネント２０２Ｂに変更リストに特定されるバックアップグループ群を保存させる。サーバコンポーネント２０２Ａは更に、変更済みスナップショットファイルのファイル名を各保存リクエストと一緒に送信する。ステップ４３０では、クライアントコンポーネント２０２Ｂは選択バックアップグループ群及び変更済みスナップショットファイル名を使用して、各バックアップグループの保存プロセスを開始する。各バックアップグループの保存プロセス（すなわち、バックアップ）の実行はバックアップ／復元アプリケーションによって変わるので、プロセス例について以下に更に詳細に説明する。しかしながら、一般的に、バックアップ／復元アプリケーションは変更リストを使用して、どのバックアップグループを保存すべきかについて特定する。
【００４４】
判定ブロック４３１は、サーバコンポーネント２０２Ａが、ユーザによって選択される他のバックアップグループ群を次々に選択して移動する様子を表わしている。１つの実施形態では、判定ブロック４３１では、現在のバックアップグループが最後のバックアップグループであるかどうかを尋ねる。上で説明したように、ユーザはバックアップ対象のバックアップグループ群の全てに関する指定を行なうことができる、または特定のバックアップグループ群のみを選択することができる。いずれの場合においても、サーバコンポーネント２０２Ａはバックアップグループリストを順次移動して、変更済みスナップショットファイル名を各バックアップグループ保存リクエストと一緒に送信し、クライアントコンポーネント２０２Ｂが、どの場所からスナップショットにアクセスして必要データを取り出せばよいかが分かるようにする。
【００４５】
従って、サーバコンポーネント２０２Ａは、各選択バックアップグループに関する個々の保存リクエストをクライアントコンポーネント２０２Ｂに送信することにより、バックアップグループ群の保存を指示する。別の構成として、サーバコンポーネント２０２Ａは、一つの単一保存リクエストをクライアントコンポーネント２０２Ｂに送信して、変更リストに特定されるバックアップグループ群の全てに関する保存を実行させる。いずれの場合においても、スナップショットジェネレータ２０８は、バックアップグループ群の保存の全てを処理している間は、動作している状態を維持する。１つの実施形態では、選択バックアップグループ群に関する保存が完了した後、ステップ４３２では、サーバコンポーネント２０２Ａはリクエストをクライアントコンポーネント２０２Ｂに送信して、ステップ４３３で受信する末尾バックアップグループ５１４を保存させる。末尾バックアップグループ５１４の受信はクライアントコンポーネント２０２Ｂに対する信号であり、この信号は、スナップショットマネージャ２０６をここでも同じように始動する必要があることを示す。ステップ４３５では、スナップショットマネージャ２０６は、スナップショットジェネレータ２０８が最初にステップ４２５で設定したイベントを通知する。ステップ４３６では、このイベントを設定することにより、スナップショットジェネレータ２０８が現在のスナップショットを削除するようになる。
【００４６】
ステップ４３８では、スナップショットジェネレータ２０８が停止する。ステップ４３９では、スナップショットマネージャ２０６は末尾バックアップグループ５１４をサーバコンポーネント２０４Ａに送信する。次にステップ４４０では、スナップショットマネージャ２０６が停止し、そして保存プロセスが完了する。ステップ４４２では、クライアントコンポーネント２０２Ｂが停止する。ステップ４４４では、サーバコンポーネント２０４Ａが末尾バックアップグループ５１４を受信すると、これによってバックアッププロセスの完了が通知される。ステップ４４６では、サーバコンポーネント２０４Ａが停止する。この技術分野の当業者であれば、上に説明したプロセス例は例示のために提示されるのであり、本発明を制限するためのものではなく、そしてプロセスステップ及び／又はアクションは順番を入れ替え、そして組み合わせる、または削除することができ、更に他のアクションを、クライアントで実行されるオペレーティングシステムプラットフォーム及び／又はバックアップ／復元アプリケーションによって変わる設計検討事項に起因して付け加えることができることを理解できるであろう。例えば、単一スナップショットを削除するのではなく、既存のスナップショットを第２スナップショットの基礎として使用することができる。すなわち、第１スナップショットを行なった時点と第２スナップショットを行なった時点との間に加えられる変更を示すポインタがポインタリストに維持される。新規のポインタリストを使用して第１スナップショットを更新し、第２スナップショットを作成する。
【００４７】
上で説明したように、種々のオペレーティングシステムが、スナップショットを作成し、更にバックアップ及び復元を実行する異なるシステムまたは方法を使用する。図２に戻って再度この図を簡単に参照すると、スナップショット２１４は、厳密な時点において物理ストレージ２１２に収容される内容物の少なくとも一部分の厳密な表現であることが分かる。読み出し、及び書き込みが可能な物理ストレージ２１２とは異なり、スナップショット２１４は読み出し専用である。
【００４８】
別の実施形態では、例えばコピーオンライト法（ｃｏｐｙ  ｏｎ  ｗｒｉｔｅ  ｍｅｔｈｏｄ）を使用すると、スナップショット２１４は、２つの時点で物理ストレージ２１２に加えられる変更の差分表現になる。第１時点での最初のコピーは、物理ストレージに新規変更が上書きされる前の物理ストレージ２１２のコピーを含む。変更が物理ストレージ２１２に対して加えられると、ポインタを変更されるエリアに置き、そしてポインタを物理ストレージ２１２に格納されるポインタリストに維持することができる。ポインタリスト及び最初のコピーを使用して、スナップショット２１４を作成することができ、このスナップショットは、スナップショットが作成された時点における物理ストレージ２１２の少なくとも一部分を表わす。単一スナップショットは、システムプロバイダ、ソフトウェアプロバイダ、及び／又はハードウェアプロバイダを使用して生成することができる。本明細書においてプロバイダとは、スナップショットを作成し、そして維持するハードウェアまたはソフトウェアとして広義に定義される。システムプロバイダの例は、特定のオペレーティングシステムに固有のソフトウェアプロバイダである。例えば、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムは事前設定のデフォルトソフトウェアプロバイダを持ち、これによりスナップショットを作成するが、他のオペレーティングシステムも同様の機能を当該オペレーティングシステムに実装する。ソフトウェアプロバイダはＩ／Ｏリクエストを、ファイルシステムとバックアップ／復元ボリュームマネージャとの間のソフトウェアレベルでインターセプトする。従って、ソフトウェアプロバイダは、スナップショットを作成し、そして／または維持するために特殊な形で維持されるソフトウェアアプリケーションとすることができる。ハードウェアプロバイダはスナップショットを、ハードウェアストレージアダプター（例えば、特定のストレージアレイ）またはコントローラと連動して動作することにより、ハードウェアレベルで管理する。いずれかの適切なシステムプロバイダ、ソフトウェアプロバイダ、及び／又はハードウェアプロバイダを使用して、単一スナップショットを本発明の示唆に従って実行することができる。更に、システムプロバイダ、ソフトウェアプロバイダ、及び／又はハードウェアプロバイダをバックアップ／復元アプリケーションのコードの一部分とすることができるので、同じアプリケーションによって、単一スナップショットの実行を要求するリクエストが行なわれ、そして単一スナップショットが実際に実行される。他の構成を、本明細書が示唆する事項を考慮に入れて使用することもできる。
【００４９】
図５及び６を参照すると、スナップショットを作成する例示としてのシステム及び方法が示され、当該システムは、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムに搭載されるシステムを表わす。ここで、幾つかのコンポーネントは図２に示すものと同じであり、かつ同様の構成要素は同様の参照番号により表記されることを理解されたい。更に、他のオペレーティングシステムは同様の、または等価なコンポーネント、或いは異なるコンポーネントを使用して、スナップショットを実行することができる。図５では、リクエスター２１８はオペレーティングシステムのコンポーネントを起動してスナップショットを作成する。リクエスター２１８は一般的にいずれかのアプリケーションであり、このアプリケーションは、スナップショットをとるようにリクエストする。１つの実施形態では、リクエスター２１８はバックアップ／復元アプリケーション２０２、スナップショットマネージャ２０６、及び／又はスナップショットジェネレータ２０８とすることができる。リクエスター２１８になるのが何であるかを定義することが重要であるのではなく、リクエスターがスナップショットの作成を直接リクエストするのか、または間接的にリクエストするのかだけが重要であるので、リクエスターという用語は、スナップショットを作成する実施形態例、及びバックアップ／復元処理を説明するために使用される。
【００５０】
リクエスター２１８（リクエスターは１つの実施形態では、スナップショットジェネレータ２０８とすることができる）はシャドウコピーサービス２２０と通信し、このシャドウコピーサービスは、クライアントの単一スナップショットの作成に参加するオペレーティングシステムサービスである。シャドウコピーサービスの場合、スナップショットはシャドウコピーまたは仮想ボリュームと表記することができることもある。コピーサービス２２０はリクエスター２１８に対して、選択バックアップグループ群に対応するデータをどのボリュームに格納すべきかについて特定する。上で説明したように、ＶＳＳボリュームは、例えば変更リストに含めることができる、または含める必要がない一つ以上のボリュームに格納されるデータを格納することができる。コピーサービス２２０は、単一スナップショットに記録する必要のあるボリューム群の全てを特定する。次に、リクエスター２１８がコピーセットに含まれるこれらのボリュームを特定する。
【００５１】
１つの例では、ＶＳＳボリュームのデータがＣドライブ及びＤドライブに保存され、そしてユーザがＣドライブ（ライターに関連する）、Ｄドライブ（ライターに関連する）、Ｇドライブ（ライターに関連しない）、及びＶＳＳボリューム（ライターに関連する）のバックアップをリクエストすると仮定する。結果として得られるコピーセットはＣドライブボリューム、Ｄドライブボリューム、及びＧドライブボリュームを含むことになる。他のどのボリュームも、コピーセットに含める必要はない、というのは、ＶＳＳに関する情報が既にＣドライブボリューム及びＤドライブボリュームに記録されているからである。別の例では、ユーザがＤドライブ、Ｇドライブ、及びＶＳＳボリュームのみをバックアップ対象として選択すると仮定する。コピーセットはＣドライブボリューム、Ｄドライブボリューム、及びＧドライブボリュームを含むことになる。この例では、Ｃドライブボリュームがコピーセットに含まれる、というのは、ＶＳＳボリュームに関する情報がＣドライブに保存されるからである。更に、別の例では、ユーザは単に、ＶＳＳボリューム（または、当該ボリュームのサブグループ）をバックアップ対象として選択することができる。コピーセットは、Ｃドライブボリューム及びＤドライブボリュームのようなＶＳＳボリュームグループに関する情報を記録するいずれのボリュームも含むことができる。最後に、１つの実施形態では、ライターを使用する全てのアプリケーションをＶＳＳボリュームに格納することができる。しかしながら、ＶＳＳボリュームに、ライターを使用する全てのアプリケーション及び／又はサービスを格納する必要はなく、かつアプリケーション及び／又はサービスを他のボリュームに格納することができることを理解されたい。この状況では、または書き込みコンポーネントを使用するアプリケーションまたはサービスがＶＳＳボリューム等価物の内部でグループ化されない他のオペレーティングシステムでは、ユーザは、いずれのライターにも関連付けることができるバックアップグループ群のみを、またはいずれのライターにも関連付けることができず、しかもいずれのＶＳＳバックアップグループにも関連付けられないバックアップグループ群のみを選択することができる。従って、コピーセットは、これらのバックアップグループに対応するこれらのボリュームのみから成る。従って、これまでの例は、別のバックアップグループ（例えば、ＶＳＳボリューム）には当該ボリュームをバックアップするために当該ボリュームに関する情報が必要になるので、当該ボリュームがユーザによってバックアップ対象として最初に選択されることがない場合でも、或るボリュームを或るコピーセットに含めることができることを示すために提示される。更に、ライター群に関連付けられるボリューム群（例えば、Ｃ及びＤドライブ）及びライター群に関連付けられないボリューム群（例えば、Ｇドライブ）の両方をコピーセットに含めることができる。ライター群に関連付けられる、または関連付けられない、或いはＶＳＳ情報を保存するＣ，Ｄ，及びＧドライブの例は、例としてのみ提示されるのであり、そしてＣ及びＤドライブをライター群に関連付ける必要はなく、かつライター群に関連付けられないものとして説明されるＧドライブを実際には、他のデザイン構成のライター群に関連付けることができることを、またはこれらのドライブはオペレーティングシステム状態情報を保存する必要がないことを理解されたい。更に、コピーセット群はこれまで、ボリューム群全体またはメインディレクトリ群全体の表示を含むものとして説明してきたが、全ボリュームまたは全ディレクトリに満たないボリュームまたはディレクトリは、或るコピーセットに含めることができるので、バックアップグループを保存するために必要な情報が当該コピーセットまたは単一スナップショットに含まれる限り、単一スナップショットに記録することができることを理解されたい。
【００５２】
バックアップグループ群に対応するボリューム群を特定するためには、コピーサービス２２０が各バックアップグループに関連するライター群を列挙して、どのライター群がクライアント側でアクティブになっているかを判断する必要がある。コピーサービス２２０は複数のライター２２２〜２２４と通信する。ライター２２２〜２２４は、少なくとも一つのアプリケーションまたはサービス、及び少なくとも一つのバックアップグループに関連付けられる。ライター２２２〜２２４はメタデータを供給し、メタデータはライターの名前、バックアップ対象のファイル及びコンポーネントのようなアイテムまたはデータ、どのアイテムまたはデータをバックアップから除外すべきかについての情報、及び／又はコンポーネント及びアプリケーションをバックアップ及び復元の間にハンドリングする方法を含む。ライター２２２〜２２４は、バックアップされているアプリケーションまたはサービスのタイプの特定も行なう。
【００５３】
ライターは、例えばメールサーバ、データベース、オペレーティングシステムコンポーネント、または他のアプリケーション或いはデータストアに関連付ける。本発明の実施形態は、ライター機能または同様の機能を提供する他のオペレーティングシステム及びコンピュータに連動させて用いられ、ライターを用いるオペレーティングシステムの一つの例がＷｉｎｄｏｗｓ（登録商標）である。このようにして、コピーサービス２２０はメタデータを、クライアント側でアクティブになっている各ライターから受信することができ、今度はライターがコピーサービス２２０を支援して、コピーサービスにＶＳＳボリュームに関連するボリューム群、またはライターに関連付けられる他のいずれかのボリュームを特定させる。
【００５４】
一旦、コピーセットが特定されると、コピーサービス２２０はクライアント側のストレージ２１０と通信する。ストレージ２１０内の物理ボリューム２１２は、バックアップグループ群の内の少なくとも一つに対応するデータを格納する。矛盾の無いデータセットを物理ボリューム２１２に格納した後、スナップショット２１４を作成して、矛盾の無いデータの表現または複製を物理ボリュームに反映させる。リクエスター２１８はストレージ２１０と通信して、ストレージ２１０に保存される単一スナップショット２１４にアクセスすることもできる。
【００５５】
図６を参照しながら、スナップショットを、例えば図５に示すシステムを使用して作成する方法例について次に説明する。ステップ６０２では、リクエスター２１８は通常、リクエスター２１８がコピーセットを選択バックアップグループ群に対応するボリューム群から作成するように支援するコピーサービス２２０とのインターフェース接続を行なうことにより始動する。ライターを含まないバックアップグループ群に対応するボリューム群をコピーセットに追加する。一つ以上の選択バックアップグループがライター群を有する場合、これらのバックアップグループに対応するボリューム群は、バックアップグループの各ライターにクエリーを出して、関連するデータをどのようにしてバックアップすべきかについて記述した情報だけでなく、どのデータをバックアップすべきかを特定する情報を取得することにより特定される。図６によれば、コピーサービス２２０は、現在クライアント側でアクティブになっているライター２２２〜２２４を列挙して、ライター群に関連付けられるボリューム群を特定する。クライアント側でアクティブになっているライター２２２〜２２４は動的に発見される。バックアップグループ群の内容は動的に、この場合は発見されたライター群に基づいて収集される。
【００５６】
従って、ステップ６０４では、コピーセットが、クライアントのスナップショットの一部分として含める必要のあるボリューム群を特定することにより作成される。従って、コピーセットは、これらには制限されないが、ライターを持たないバックアップグループを特定するボリューム、及び／又はライターを持つバックアップグループを特定するボリューム、或いは両方のボリュームを含む。コピーセットが作成された後、リクエスター２１８はスナップショットを作成する状態になる。コピーセットによってバックアップグループ群に対応するボリューム群が特定されるので、単一スナップショットは、特定のクライアントに関してバックアップされている選択バックアップグループ群に対応するボリューム群の全ての正確な表現を含むことになる。
【００５７】
ステップ６０６では、コピーセットに特定される関連ボリュームのスナップショットが実行される。バックアップ処理に関連するバックアップグループ群を同時に処理して単一スナップショットに記録する対象となるボリューム群を特定する。しかしながら、スナップショットを実行する前に、シャドウコピーサービス２２０はライター２２２〜２２４に、スナップショットが発生しようとしていることを通知し、次にこれらのライターに指示して、該当するアプリケーションまたはサービスを中断またはフリーズさせて、クライアントのデータが、例えば新規のトランザクションを中断する処理、現在のトランザクションを終了させる処理、キャッシュをディスクにフラッシュする処理などを行なうことにより、矛盾の無い状態になるようにすることができる。次に、リクエスター２１８はシャドウコピーサービス２２０に指示してスナップショットを作成させる。矛盾の無い状態になった後、スナップショットを実行することができる。スナップショットが完了すると、ライター２２２〜２２４はアクティビティを再開することができる。スナップショットはクライアントの一つ以上のボリュームに格納されるデータの表現であるので、実行スナップショットに含まれるデータは「スナップショットデータ」とも表記される。
【００５８】
スナップショットが生成されている間は、ステップ６０８では、メタデータファイルがコピーセットから得られる情報に基づいて生成される。メタデータファイルは、バックアップ対象のアイテムまたはデータだけでなく、或る例では、バックアップから除外すべきアイテムまたはデータを特定するマップである。メタデータファイルは多くの場合、適切な復元操作の命令を含む。コピーセット及びスナップショットのボリュームがライターに関連付けられる場合、メタデータファイルは、スナップショットが作成される前に収集されるライターデータを含む。ライターデータはファイルに、単一スナップショットの作成が成功するまで書き込まれない。コピーセットの、従ってスナップショットのボリュームがいずれのライターにも対応することがない場合、メタデータファイルはライターデータを含まないことになる。
【００５９】
ステップ６１０では、クライアントコンポーネント２０２Ｂはメタデータファイルをスナップショットデータに追加して、変更済みスナップショットファイルを形成する。この操作では、保存するために選択されるライターファイル群（設ける場合）、バックアップグループ群の各々を追加し、物理ボリューム群をスナップショットボリューム群及びマウントポイント群にマッピングする。この追加データは変更することができる、または他のデータは設計検討事項によって変わる形で追加することができる。クライアントコンポーネント２０２Ｂは変更済みスナップショットファイルのファイル名を生成する。
【００６０】
５．バックアッププロセス例及び復元プロセス例
次に、クライアントデータをバックアップし、そして復元するプロセスについて更に詳細に説明する。ここでも同じように、例示としての説明を、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムを使用して提示する。しかしながら、ここで得られる示唆は、他のオペレーティングシステムにも同様に適用することができる。図７を参照すると、バックアッププロセス例が示される。上で説明したように、本発明の１つの態様は単一スナップショットの作成に関するものであり、単一スナップショットは、スナップショットデータを、変更済みスナップショットファイルの選択バックアップグループ群に関連するメタデータとともに含む。変更済みスナップショットファイルは、例えばクライアント１０８側に格納されて、クライアント１０８側に保存されるデータに関連するバックアップグループ群を保存するために使用される。変更済みスナップショットファイルは、スナップショットデータ及び復元方法に関するＸＭＬ記述を含むことができる。
【００６１】
ステップ７０２では、特定のバックアップグループの保存を要求するリクエストが行なわれると、リクエスター２１８は、保存対象のリクエストバックアップグループに対応するリクエストデータオブジェクト群またはライター群を特定する。リクエスター２１８は、メタデータを収集してグループを、リクエストデータオブジェクト群、または特定されたライター群に関連する変更済みスナップショットファイルから保存する。１つの実施形態では、変更済みスナップショットファイルによってアクティブライター群のみを特定する。変更済みスナップショットファイルは、ライターコンポーネント群を個々に選択することができる機能に関する情報を含む。例えば、変更済みスナップショットファイルによって、ライターコンポーネント群の幾つかをバックアップまたは復元のために一括して選択する必要があることを通知する。別の例では、幾つかのライターコンポーネントを復元のために個々に選択するが、バックアップのためには個々に選択する必要はない。
【００６２】
次に、ステップ７０６では、バックアップアプリケーションが、変更済みスナップショットファイルに特定されるアイテム及びメタデータのバックアップコピーを行なって、ファイル群を、当該特定のバックアップグループに対応する単一スナップショットから保存する。図４Ａを参照しながら上に説明したように、クライアントは同じスナップショットを参照して、特定のバックアップグループに対応するスナップショット部分の位置を特定する。バックアップはバックアップストレージ２０４に保存される。従って、各バックアップグループに関する保存データは、当該バックアップグループに対応するスナップショットデータ及びメタデータのみを含み、単一スナップショットに同じようにして含まれる他のバックアップグループに対応するスナップショットデータ及びメタデータは含まない。クライアントのデータの特定バージョンにアクセスするために、バックアップストレージは、クライアントのデータの複数の表現を保存するように構成することができる。別の表現をすると、クライアントのデータの時点表現（ｐｏｉｎｔ  ｉｎ  ｔｉｍｅ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎｓ）は再構成することができる。ステップ７０８では、バックアップが完了した後、単一スナップショットは削除することができる。
【００６３】
図３Ｃ及び３Ｄに示すインターフェース３０２Ｃまたは３０２Ｄを使用して復元処理を開始することもできる。オペレーティングシステムは通常、論理ユニットとしてバックアップされるので、オペレーティングシステムは普通、ユニットとして復元される。前に示したように、各ライターのメタデータは、バックアップ処理の一部分として保存される。メタデータを使用して、復元がスナップショットバックアップ処理に関するものであるかどうかを判断することができる。
【００６４】
図８は、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムを使用する復元処理の例示としての方法を示している。ステップ８０２では、リクエスター２１８は通常、復元メタデータと表記されることになるものを取り出すことから始動する。一般的に、復元メタデータは、アクティブ状態のライターから収集される特定のメタデータ、及び単一スナップショットに含まれていた特定のライター群／コンポーネント群を最終的に取り込むことになる変更済みスナップショットファイルから収集される保存メタデータの両方を含む。復元処理に使用される復元メタデータは、選択バックアップ時点におけるバックアップデータから得られるので、復元メタデータが、クライアント側にはもはや存在しないライターのデータ、またはクライアント側で現時点において非アクティブ状態になっているライターのデータを含むことが可能である。しかしながら、これらのライターは通常、復元される。なぜならば、クライアントが選択バックアップ時点の状態に復元されているからである。この状態は、天災からの復旧が行なわれる状況でも発生し得る。復元メタデータは通常、シャドウコピーサービス２２０に渡され、次にサービスに復元処理の間にクエリーを出す。マウントポイント群がライターの保存ファイルリストに含まれる場合、マウントポイント及びマウントポイントが参照するボリュームを含むマウントポイントファイルはライターデータが復元される前には必ず復元される。マウントポイント群はライターデータを正しく復元する、または復旧するために必要である。
【００６５】
次に、ステップ８０４では、復元処理が続いているときに復元メタデータのクエリーを発行する。復元メタデータのクエリーを発行して、例えば特定のライターの復元方法、使用タイプ、ライターを復元するために再起動が必要かどうか、そしていずれかの潜在的な別のロケーションマッピングを判断する。
【００６６】
次に、ステップ８０６では、復元プロセスはシャドウコピーサービスとのインターフェース接続を行ない、そして事前復元コマンドを発行する。事前復元コマンドによって、復元用に選択されたライターコンポーネント群を有するライター群に、復元処理が行われようとしていることを通知する。従って、ライター群、及びライター群に関連するアプリケーションは、復元処理に対して準備する機会を得る。
【００６７】
次に、ステップ８０８では、復元プロセスは、各ライターの復元メタデータに特定される復元方法を実行する。
ファイルが復元処理の間にコピーされた後、事後復元通知を、影響を受けるライターに発行する。従って、ライターは事後復元処理を規定通りに実行することができる。この時点で、サーバはクライアントシステムの再起動を推奨することができる。
【００６８】
図３Ｃ及び３Ｄに示すインターフェース３０２Ｃ及び３０２Ｄは、バックアップグループ、ライター、及び／又は書き込みコンポーネントを復元のために選択的に特定する方法の例である。選択されるバックアップグループ、ライター、及び／又は書き込みコンポーネントは復元アイテムの例である。従って、復元処理は、復元アイテムに含まれるライターを利用して進行する。復元方法は、例えば各ライターに関して、各ライターに関連する復元メタデータに従って行なわれる。書き込みコンポーネントが非選択状態になっている場合、復元メタデータの該当する部分は復元処理の間に無効にする、または無視される。オペレーティング固有のバックアップグループが復元のために選択される場合、復元処理ではユーザに促して、全ての適切なバックアップグループ、ライター、及び／又は書き込みコンポーネントがオペレーティングシステムを論理ユニットとして復元するようにという推奨に応じるために選択されてしまう、ということがないようにする。しかしながら、復元処理は、推奨されるバックアップグループを選択することなく進めることができる。
【００６９】
或るライターの或るコンポーネントが復元のために選択されない場合、或るバックアップグループの或るライターが復元のために選択されない場合、または或るバックアップグループが、当該バックアップグループに関連するライターを全く持たない場合、復元プロセスは、復元メタデータの内、選択されないコンポーネントまたはライターに対応する部分を無視する、または無効にすることができる。
【００７０】
６．コンピューティングシステム例
本発明は、データをバックアップする方法及びシステムの両方に拡張することができる。本発明の実施形態は以下に更に詳細に説明するように、種々のコンピュータハードウェアを含む特定用途向けコンピュータまたは汎用コンピュータを含む。本発明の技術範囲に含まれる実施形態は更に、コンピュータ実行可能な命令またはデータ構造を実装する、または格納するコンピュータ読み取り可能な媒体を含む。このようなコンピュータ読み取り可能な媒体は、汎用コンピュータまたは特定用途向けコンピュータによるアクセスが可能ないずれかの利用可能な媒体である。一例として、かつ非制限的な例として、このようなコンピュータ読み取り可能な媒体は、ＲＡＭ，ＲＯＭ，ＥＥＰＲＯＭ，ＣＤ−ＲＯＭ，または他の光ディスクストレージデバイス、磁気ディスクストレージデバイス、または他の磁気ストレージデバイス、或いはコンピュータ実行可能な命令またはデータ構造の形態の所望のプログラムコード手段を搭載する、または格納するために使用することができ、かつ汎用コンピュータまたは特定用途向けコンピュータによるアクセスが可能な他のいずれかの媒体を含む。情報がネットワークまたは別の通信接続（有線、無線、または有線または無線の組み合わせ）を経由してコンピュータに転送される、または供給される場合、コンピュータは接続をコンピュータ読み取り可能な媒体として正しく認識する。従って、このような接続はいずれも、コンピュータ読み取り可能な媒体と正しく表記される。上述した手段の組み合わせもコンピュータ読み取り可能な媒体の範疇に含めるべきである。コンピュータ実行可能な命令は、例えば汎用コンピュータ、特定用途向けコンピュータ、または特定用途向け処理デバイスに所定の機能または機能グループを実行させる命令及びデータを含む。
【００７１】
以下の説明は、本発明を用いることができる適切なコンピューティング環境に関する簡単な概要説明を提示するために行なわれる。必要ではないが、本発明について、コンピュータがネットワーク環境で実行しているプログラムモジュールのようなコンピュータ実行可能な命令との一般的な関連で説明する。一般的に、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データタイプを実現するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。コンピュータ実行可能な命令、関連データ構造、及びプログラムモジュールは、本明細書に開示する方法のステップを実行するプログラムコード手段の例を表わす。このような実行可能な命令または関連データ構造の特定シーケンスは、このようなステップで説明される機能を実行する該当する行為の例を表わす。
【００７２】
この技術分野の当業者であれば、本発明を、パーソナルコンピュータ、携帯型デバイス、マルチプロセッサシステム、マイクロプロセッサ応用電子機器またはプログラム可能なコンシューマ電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータなどを含む多くのタイプのコンピュータシステム構成を持つネットワークコンピューティング環境で実施することができることが理解できるであろう。本発明は更に、タスクが通信ネットワークを通して接続される（有線リンク、無線リンクによって、または有線リンクまたは無線リンクの組み合わせによって）ローカルデバイス及びリモート処理デバイスによって行なわれる分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールはローカルメモリストレージデバイス及びリモートメモリストレージデバイスの両方に配置することができる。
【００７３】
本発明は他の特定の形態で、本発明の技術思想または基本的特徴から逸脱しない範囲で具体化することができる。記載の実施形態は、全ての点で単なる例示として捉えられ、かつ非制限的に解釈されるべきである。従って、本発明の技術範囲は、これまでの記述によってではなく、添付の請求項によって示される。請求項の等価物の意味及び範囲に包まれる全ての変更は請求項の技術的範囲に含まれるべきものである。
【図面の簡単な説明】
【００７４】
【図１】本発明の実施形態を実施する環境の例を示す。
【図２】バックアップ及び／又は復元操作を行なうシステム例を示す。
【図３Ａ】バックアップグループを体系化するユーザインターフェース例を示す。
【図３Ｂ】バックアップグループを体系化する別のユーザインターフェース例を示す。
【図３Ｃ】復元操作を行なうユーザインターフェース例を示す。
【図３Ｄ】復元操作を行なう別のユーザインターフェース例を示す。
【図４Ａ】単一スナップショットを作成し、そして使用するフローチャート例を示す。
【図４Ｂ】図３Ａに示すバックアップグループの選択に基づくバックアップグループの変更リスト例を示す。
【図４Ｃ】は図３Ｂに示すバックアップグループの選択に基づくバックアップグループの変更リスト例を示す。
【図５】スナップショットを生成するシステムの１つの実施形態を示す。
【図６】スナップショットを生成するフローチャート例である。
【図７】データをバックアップするフローチャート例である。
【図８】データを復元するフローチャート例である。
【図１】
2008545198.tif 000003
【図２】
2008545198.tif 000004
【図３Ａ】
2008545198.tif 000005
【図３Ｂ】
2008545198.tif 000006
【図３Ｃ】
2008545198.tif 000007
【図３Ｄ】
2008545198.tif 000008
【図４Ａ】
2008545198.tif 000009
【図４Ｂ】
2008545198.tif 000010
【図４Ｃ】
2008545198.tif 000011
【図５】
2008545198.tif 000012
【図６】
2008545198.tif 000013
【図７】
2008545198.tif 000014
【図８】
2008545198.tif 000015
【国際調査報告】
2008545198.tif 000016