(57)【特許請求の範囲】
【請求項１】
少なくとも１つの順次バックアップ・デバイス内に不連続に格納されたバックアップ・オブジェクトからデータを復元するためのクライアントおよびサーバの動作を実行するコンピュータ・プログラムであって、
クライアントによって、復元時点でボリューム内のデータの復元セットを復元する旨の復元要求を開始するステップと、
前記復元時点に関する前記データの復元セットを含む、少なくとも１つの順次バックアップ・デバイス内に格納されたバックアップ・オブジェクトを決定するステップであって、前記決定されたバックアップ・オブジェクトは、全ボリューム・バックアップ、および、異なる時点での前記ボリューム内のデータを提供するデルタ・バックアップを含む、バックアップ・オブジェクトのセットから決定され、異なる時点での前記ボリューム内のブロックに関するデータを提供する異なるバックアップ・オブジェクト内の範囲は、前記順次バックアップ・デバイス内に連続して格納されない、ステップと、
前記決定されたバックアップ・オブジェクトに関して、前記少なくとも１つの順次バックアップ・デバイス内に格納される範囲を決定するステップと、
前記決定された範囲が前記少なくとも１つの順次バックアップ・デバイス内に格納された順序に従って前記決定された範囲を分類するステップであって、分類リストを生成するステップと、
前記サーバによって、前記分類リスト内の前記順序に従って、前記少なくとも１つの順次バックアップ・デバイスから前記範囲を取り出すステップであって、前記範囲が格納された順序で前記順次バックアップ・デバイスから順番に前記範囲にアクセスする、ステップと、
前記サーバによって、前記取り出された範囲を前記クライアントに戻すステップと、
前記クライアントによって、受信した範囲から復元データ・セットを再構築するステップと、
をコンピュータに実行させるコンピュータ・プログラム。
【請求項２】
前記決定されたバックアップ・オブジェクトが複数の順次アクセス・デバイス内に格納され、
前記分類リスト内の前記範囲を分類するステップが、要求されたバックアップ・オブジェクトに関する範囲を含む前記順次バックアップ・デバイスのそれぞれについて実行されて、前記順次バックアップ・デバイスのそれぞれに関する１つの分類リストを生成し、
前記取り出すステップが、前記順次バックアップ・デバイスに関する前記分類リスト内の前記順序に従って、前記順次バックアップ・デバイスのそれぞれに関するすべての前記範囲を取り出すステップであって、前記範囲が前記順次バックアップ・デバイスに書き込まれた順序に従って、前記順次バックアップ・デバイス内の前記範囲に順番にアクセスする、ステップを含む、請求項１に記載のコンピュータ・プログラム。
【請求項３】
前記コンピュータ・プログラムはさらに、前記バックアップ・オブジェクトを前記順次バックアップ・デバイス内に格納するステップをコンピュータに実行させ、
前記バックアップ・オブジェクトを前記順次バックアップ・デバイス内に格納するステップが、範囲の１つのインスタンスのみを格納し、
前記決定されたバックアップ・オブジェクトのうちの少なくとも２つが、少なくとも１つの共通範囲を含み、
前記戻された範囲が、前記少なくとも２つの決定されたバックアップ・オブジェクトに含まれる前記少なくとも１つの共通範囲の少なくとも１つのインスタンスのみを含む、請求項１または２に記載のコンピュータ・プログラム。
【請求項４】
前記サーバまたはクライアントが、前記復元セットを含む前記バックアップ・オブジェクトを決定する動作と、前記決定されたバックアップ・オブジェクトに関する前記範囲を決定する動作とを実行し、前記動作が、
前記クライアントによって、前記クライアントのローカルに維持されている前記決定された範囲を決定するステップと、
前記クライアントによって、前記クライアントのローカルに維持されていない要求されたバックアップ・オブジェクト内の範囲のインジケーションを前記サーバに送信するステップであって、前記サーバは、前記クライアントがローカルに維持していない指示された範囲を前記クライアントに戻し、前記クライアントは、前記サーバから受信した前記範囲、および、前記クライアントのローカルに維持されている要求されたバックアップ・オブジェクト内の前記範囲から、前記復元セットを再構築する、ステップと
をさらに含む、請求項３に記載のコンピュータ・プログラム。
【請求項５】
前記コンピュータ・プログラムはさらに、時点を有する各バックアップ・オブジェクトについて、バックアップ・オブジェクトがインデックスに示されたそれぞれのファイルについて前記時点でデータを提供するかどうかを示す、前記ボリューム内のファイルのファイル・インデックスを提供するステップをコンピュータに実行させ、
前記ファイル・インデックスが、前記バックアップ・オブジェクトがデータを提供する前記ファイルに関するデータを有する前記バックアップ・オブジェクト内の少なくとも１つの範囲を示す、請求項１〜４のいずれか１項に記載のコンピュータ・プログラム。
【請求項６】
前記復元セットが前記ボリューム内のファイルのサブセットを含み、
前記バックアップ・オブジェクトを決定するステップが、前記バックアップ・オブジェクト内の前記ファイル・インデックスから、全バックアップ・ボリュームのみ、１つまたは複数のデルタ・バックアップ、あるいは、前記復元時点で前記復元セットにおける前記ファイルに関する最も新しいデータを提供する１つまたは複数のデルタ・バックアップと組み合わせた全バックアップ・ボリュームに関する、バックアップ・オブジェクトを決定するステップを含む、請求項５に記載のコンピュータ・プログラム。
【請求項７】
前記範囲を決定するステップが、前記決定されたバックアップ・オブジェクト内の前記ファイル・インデックスから、前記復元セット内の前記ファイルに関する前記復元時点での最も新しいデータを提供する、前記範囲を決定するステップを含む、請求項６に記載のコンピュータ・プログラム。
【請求項８】
前記復元セットが前記全ボリュームを含み、
前記バックアップ・オブジェクトを決定するステップが、前記バックアップ・オブジェクト内の前記ファイル・インデックスから、全バックアップ・ボリュームのみ、あるいは、前記復元時点で前記ボリュームにおけるすべてのファイルに関する最も新しいデータを提供する、１つまたは複数のデルタ・バックアップと組み合わせた全バックアップ・ボリュームに関する、バックアップ・オブジェクトを決定するステップを含み、
前記範囲を決定するステップが、前記決定されたバックアップ・オブジェクト内の前記ファイル・インデックスから、前記ボリューム内の前記ファイルに関する前記復元時点での最も新しいデータを提供する、前記範囲を決定するステップを含む、請求項５に記載のコンピュータ・プログラム。
【請求項９】
クライアントおよび少なくとも１つの順次バックアップ・デバイスと通信するシステムであって、
プロセッサと、
動作を実行するために前記プロセッサによって実行されるコードを含むコンピュータ読み取り可能ストレージ媒体とを備え、前記動作が、
前記クライアントから、復元時点でボリューム内のデータの復元セットを復元する旨の復元要求を受信するステップと、
前記復元時点に関する前記データの復元セットを含む、少なくとも１つの順次バックアップ・デバイス内に不連続に格納されたバックアップ・オブジェクトを決定するステップであって、前記決定されたバックアップ・オブジェクトは、全ボリューム・バックアップ、および、異なる時点での前記ボリューム内のデータを提供するデルタ・バックアップを含む、バックアップ・オブジェクトのセットから決定され、異なる時点での前記ボリューム内のブロックに関するデータを提供する異なるバックアップ・オブジェクト内の範囲は、前記順次バックアップ・デバイス内に連続して格納されない、ステップと、
前記決定されたバックアップ・オブジェクトに関して、前記少なくとも１つの順次バックアップ・デバイス内に格納される範囲を決定するステップと、
前記決定された範囲が前記少なくとも１つの順次バックアップ・デバイス内に格納された順序に従って前記決定された範囲を分類するステップであって、分類リストを生成するステップと、
サーバによって、前記分類リスト内の前記順序に従って、前記少なくとも１つの順次バックアップ・デバイスから前記範囲を取り出すステップであって、前記範囲が格納された順序で前記順次バックアップ・デバイスから順番に前記範囲にアクセスする、ステップと、
前記サーバによって、前記取り出された範囲を前記クライアントに戻すステップであって、前記クライアントが、受信した範囲から復元データ・セットを再構築する、ステップと、
を含む、システム。
【請求項１０】
要求されたデータ・オブジェクトが複数の順次アクセス・デバイス内に格納され、
前記分類リスト内の前記範囲を分類するステップが、要求されたバックアップ・オブジェクトに関する範囲を含む前記順次バックアップ・デバイスのそれぞれについて実行されて、前記順次バックアップ・デバイスのそれぞれに関する１つの分類リストを生成し、
前記取り出すステップが、前記順次バックアップ・デバイスに関する前記分類リスト内の前記順序に従って、前記順次バックアップ・デバイスのそれぞれに関するすべての前記範囲を取り出すステップであって、前記範囲が前記順次バックアップ・デバイスに書き込まれた順序に従って、前記順次バックアップ・デバイス内の前記範囲に順番にアクセスする、ステップを含む、請求項９に記載のシステム。
【請求項１１】
少なくとも１つの順次バックアップ・デバイスと通信するシステムであって、
クライアント・バックアップ・プログラムを有するクライアントと、
サーバ・バックアップ・プログラムを有するサーバとを備え、
前記サーバが前記クライアントと通信し、
前記クライアント・バックアップ・プログラムが、復元時点でボリューム内のデータの復元セットを復元する旨の復元要求を開始するために実行され、
前記サーバ・バックアップ・プログラムが、
前記復元時点に関する前記データの復元セットを含む、少なくとも１つの順次バックアップ・デバイス内に不連続に格納されたバックアップ・オブジェクトを決定するステップであって、前記決定されたバックアップ・オブジェクトは、全ボリューム・バックアップ、および、異なる時点での前記ボリューム内のデータを提供するデルタ・バックアップを含む、バックアップ・オブジェクトのセットから決定され、異なる時点での前記ボリューム内のブロックに関するデータを提供する異なるバックアップ・オブジェクト内の範囲は、前記順次バックアップ・デバイス内に連続して格納されない、ステップと、
前記決定されたバックアップ・オブジェクトに関して、前記少なくとも１つの順次バックアップ・デバイス内に格納される範囲を決定するステップと、
前記決定された範囲が前記少なくとも１つの順次バックアップ・デバイス内に格納された順序に従って前記決定された範囲を分類するステップであって、分類リストを生成するステップと、
前記サーバによって、前記分類リスト内の前記順序に従って、前記少なくとも１つの順次バックアップ・デバイスから前記範囲を取り出すステップであって、前記範囲が格納された順序で前記順次バックアップ・デバイスから順番に前記範囲にアクセスする、ステップと、
前記サーバによって、前記取り出された範囲を前記クライアントに戻すステップと、
を実行するために実行され、
さらに前記クライアント・バックアップ・プログラムが、受信した範囲から復元データ・セットを再構築するために実行される、システム。
【請求項１２】
前記サーバ・バックアップ・プログラムはさらに、前記バックアップ・オブジェクトを前記順次バックアップ・デバイス内に格納するステップを実行し、
前記バックアップ・オブジェクトを前記順次バックアップ・デバイス内に格納するステップが、範囲の１つのインスタンスのみを格納し、
前記決定されたバックアップ・オブジェクトのうちの少なくとも２つが少なくとも１つの共通範囲を含み、
前記戻された範囲が、前記少なくとも２つの決定されたバックアップ・オブジェクトに含まれる前記少なくとも１つの共通範囲の少なくとも１つのインスタンスのみを含む、請求項１１に記載のシステム。
【請求項１３】
前記サーバ・バックアップ・プログラムまたはクライアント・バックアップ・プログラムが、前記復元セットを含む前記バックアップ・オブジェクトを決定する動作と、前記決定されたバックアップ・オブジェクトに関する前記範囲を決定する動作とを実行し、
前記クライアント・バックアップ・プログラムが、
前記クライアントのローカルに維持されている前記決定された範囲を決定するステップと、
前記クライアントのローカルに維持されていない要求されたバックアップ・オブジェクト内の範囲のインジケーションを前記サーバに送信するステップであって、前記サーバは、前記クライアントがローカルに維持していない指示された範囲を前記クライアントに戻し、前記クライアントは、前記サーバから受信された前記範囲、および、前記クライアントのローカルに維持されている要求されたバックアップ・オブジェクト内の前記範囲から、前記復元セットを再構築する、ステップと
をさらに実行するために実行される、請求項１２に記載のシステム。
【請求項１４】
さらに前記サーバ・バックアップ・プログラムが、時点を有する各バックアップ・オブジェクトについて、バックアップ・オブジェクトがインデックスに示されたそれぞれのファイルについて前記時点でデータを提供するかどうかを示す、前記ボリューム内のファイルのファイル・インデックスを提供するために実行され、
前記ファイル・インデックスが、前記バックアップ・オブジェクトがデータを提供する前記ファイルに関するデータを有する前記バックアップ・オブジェクト内の少なくとも１つの範囲を示す、請求項１１〜１３のいずれか１項に記載のシステム。
【請求項１５】
前記復元セットが前記ボリューム内のファイルのサブセットを含み、
前記クライアント・バックアップ・プログラムによって、前記バックアップ・オブジェクトを決定するステップが、前記バックアップ・オブジェクト内の前記ファイル・インデックスから、全バックアップ・ボリュームのみ、１つまたは複数のデルタ・バックアップ、あるいは、前記復元時点で前記復元セットにおける前記ファイルに関する最も新しいデータを提供する１つまたは複数のデルタ・バックアップと組み合わせた全バックアップ・ボリュームに関する、バックアップ・オブジェクトを決定するステップを含む、請求項１４に記載のシステム。
【請求項１６】
前記範囲を決定するステップが、前記決定されたバックアップ・オブジェクト内の前記ファイル・インデックスから、前記復元セット内の前記ファイルに関する前記復元時点での最も新しいデータを提供するステップを含む、請求項１５に記載のシステム。
【請求項１７】
前記復元セットが前記全ボリュームを含み、
前記バックアップ・オブジェクトを決定するステップが、前記バックアップ・オブジェクト内の前記ファイル・インデックスから、全バックアップ・ボリュームのみ、あるいは、前記復元時点で前記ボリュームにおけるすべてのファイルに関する最も新しいデータを提供する、１つまたは複数のデルタ・バックアップと組み合わせた全バックアップ・ボリュームに関する、バックアップ・オブジェクトを決定するステップを含み、
前記範囲を決定するステップが、前記決定されたバックアップ・オブジェクト内の前記ファイル・インデックスから、前記ボリューム内の前記ファイルに関する前記復元時点での最も新しいデータを提供する、ステップを含む、請求項１５に記載のシステム。
【請求項１８】
少なくとも１つの順次バックアップ・デバイス内に不連続にバックアップ・オブジェクトを格納するステップと、
クライアントによって、復元時点でボリューム内のデータの復元セットを復元する旨の復元要求を開始するステップと、
前記復元時点に関する前記データの復元セットを含む、少なくとも１つの順次バックアップ・デバイス内に格納されたバックアップ・オブジェクトを決定するステップであって、前記決定されたバックアップ・オブジェクトは、全ボリューム・バックアップ、および、異なる時点での前記ボリューム内のデータを提供するデルタ・バックアップを含む、バックアップ・オブジェクトのセットから決定され、異なる時点での前記ボリューム内のブロックに関するデータを提供する異なるバックアップ・オブジェクト内の範囲は、前記順次バックアップ・デバイス内に連続して格納されない、ステップと、
前記決定されたバックアップ・オブジェクトに関して、前記少なくとも１つの順次バックアップ・デバイス内に格納される範囲を決定するステップと、
前記決定された範囲が前記少なくとも１つの順次バックアップ・デバイス内に格納された順序に従って前記決定された範囲を分類するステップであって、分類リストを生成するステップと、
サーバによって、前記分類リスト内の前記順序に従って、前記少なくとも１つの順次バックアップ・デバイスから前記範囲を取り出すステップであって、前記範囲が格納された順序で前記順次バックアップ・デバイスから順番に前記範囲にアクセスする、ステップと、
前記サーバによって、前記取り出された範囲を前記クライアントに戻すステップと、
前記クライアントによって、受信した範囲から復元データ・セットを再構築するステップと、
を含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、順次バックアップ・デバイス内に格納されたバックアップ・オブジェクトからファイルの復元セットを復元するためのコンピュータ・プログラム製品、システム、および方法に関する。
【背景技術】
【０００２】
ネットワーク・バックアップ環境では、クライアント・システムは、バックアップ・オブジェクト内のそれらのデータを、ネットワークを介してバックアップ・サーバへバックアップする。バックアップ・サーバは、格納されたバックアップ・オブジェクトに関する情報を提供する、バックアップ・オブジェクトのデータベースを維持する。クライアント・システムは、バックアップ・サーバによって維持されたバックアップ・オブジェクトから、ファイルを復元することができる。ボリュームに関するバックアップ・オブジェクトは、初期の時点での全ボリューム・バックアップ・オブジェクトと、初期時点でのボリュームへの様々な時点での変更をキャプチャするデルタ・バックアップ（delta backup）とを含む。全ボリューム・バックアップは、ボリューム全体を表す１つのオブジェクトからなるか、または複数のオブジェクトからなるものとすることができる。デルタ・バックアップは、増分バックアップまたは差分バックアップを含むことができる。ある時点での「増分バックアップ」は、最後に取られた増分バックアップまたは全ボリューム・バックアップのいずれか新しい方の時点から、増分バックアップの時点までの間に変更されたファイルまたはブロックを有する、バックアップ・オブジェクトを含む。「差分バックアップ」は、最後の全ボリューム・バックアップのある時点で取られたボリュームのバックアップを含むため、差分バックアップ・セットは、差分バックアップの時点と最後の全ボリューム・バックアップとの間に変更されたすべてのファイルまたはブロックを有する。
【０００３】
Ｔｉｖｏｌｉ  Ｓｔｏｒａｇｅ  Ｍａｎａｇｅｒ（ＴＳＭ）  ＦａｓｔＢａｃｋ（Ｒ）は、ブロック・レベルの増分バックアップを実行するシステムの例である。他の例には、ローカル・ハードウェア・スナップショットが作成され、その後Ｔｉｖｏｌｉ  Ｓｔｏｒａｇｅ  Ｍａｎａｇｅｒサーバにバックアップされる、ＴＳＭクライアントおよびＦｌａｓｈＣｏｐｙ（Ｒ）  Ｍａｎａｇｅｒによる、ファイル・システムのイメージ・バックアップが含まれる。（Ｔｉｖｏｌｉ  Ｓｔｏｒａｇｅ  Ｍａｎａｇｅｒ  ＦａｓｔＢａｃｋおよびＦｌａｓｈＣｏｐｙは、米国およびその他諸国におけるインターナショナル・ビジネス・マシーンズ・コーポレーションの登録商標である。）増分および差分のバックアップに加え、バックアップ・リポジトリのストレージ要件をさらに低減させるために重複排除が適用可能である。
【０００４】
バックアップ・クライアントおよびサーバはデータ重複排除を実装することが可能であり、これによって、ストレージ・スペースを最適化し、ネットワーク帯域幅を保持するため、バックアップ動作中に冗長データが除去される。バックアップ動作は、複数のバックアップ・オブジェクトが同じ範囲を共有している場合、その範囲の１つのインスタンスのみがバックアップ・ストレージに格納されるように、データの領域または範囲内のデータをバックアップすることが可能である。
【０００５】
ストレージ・バックアップ・アクティビティ中の重複排除は、データ・ソース（クライアント）側、データ・ターゲット（サーバ）側、またはバックアップ・サーバに接続された重複排除機器で、実行可能である。重複排除されたデータのサーバからクライアントへの復元は、重複排除された領域または範囲からのデータの再構築を含む。現行のシステムでは、重複排除されたデータはディスク上に格納され、バックアップ・サーバはディスクから復元するためにバックアップ・オブジェクト用の範囲にアクセスし、共通範囲を有するオブジェクトを含む全バックアップ・オブジェクトをクライアントに戻すことになる。たとえ、復元用に選択された多くのバックアップ・オブジェクト内に（または同じオブジェクト内に）同じ範囲が発見された場合であっても、その領域または範囲は復元され、サーバからクライアントへと複数回伝送されることになる。バックアップ・サーバは、ディスク・ベース・ストレージのランダム・アクセスの性質により、任意の順序でディスクからその範囲にアクセスすることができる。
【０００６】
バックアップ・オブジェクトからデータを復元するための動作は、全体および関連付けられた増分または差分バックアップ（重複排除されている場合がある）からのデータを適用することが必要な場合がある。復元プロセスは、バックアップ・リポジトリ内のいくつかの可能なデータ変換および配置位置により、バックアップ・リポジトリ内で断片化されている可能性のある、クライアント・イメージの再構築を含む。たとえば、ソース・クライアント・イメージはバックアップ・リポジトリ内で複数のオブジェクトに分割（たとえば、０．５ＴＢボリュームを１ＧＢバックアップ・オブジェクトに分割）可能である。これらのオブジェクトは、バックアップ・リポジトリ内の複数のボリューム（ディスクまたはテープ）にわたる可能性がある。増分または差分時点バックアップの場合、各時点バックアップは、バックアップ・リポジトリ内の異なるボリューム（ディスクまたはテープ）上にある可能性がある。さらに、ソース・クライアント・イメージの重複排除を実行した結果、重複排除されたソース・イメージの領域がバックアップ・リポジトリ内の複数のボリューム（ディスクまたはテープ）上に存在する可能性がある。サーバ・バックアップ・プログラムは、データを移動、満了、または再利用（reclaim）する、管理動作を有することができる。これらの動作の結果、順次アクセス媒体上のオブジェクトまたは範囲の順序が変更される可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
当分野では、異なるストレージ環境においてバックアップ・オブジェクトの復元を処理するための改良された技法が求められている。
【課題を解決するための手段】
【０００８】
順次バックアップ・デバイス内に格納されたバックアップ・オブジェクトからファイルの復元セットを復元するための、コンピュータ・プログラム製品、システム、および方法が提供される。バックアップ・オブジェクトは、少なくとも１つの順次バックアップ・デバイス内に格納される。クライアントは、復元時点でボリューム内のデータの復元セットを復元する旨の復元要求を開始する。復元時点に関するデータの復元セットを含む、少なくとも１つの順次バックアップ・デバイス内に格納されたバックアップ・オブジェクトが決定され、この決定されたバックアップ・オブジェクトは、全ボリューム・バックアップ、および、異なる時点でのボリューム内のデータを提供するデルタ・バックアップを含む、バックアップ・オブジェクトのセットから決定され、異なる時点でのボリューム内のブロックに関するデータを提供する異なるバックアップ・オブジェクト内の範囲は、順次バックアップ・デバイス内に連続して格納されない。決定されたバックアップ・オブジェクトに関して、少なくとも１つの順次バックアップ・デバイス内に格納される範囲が決定される。決定された範囲は、それらが分類リストを生成するために少なくとも１つの順次バックアップ・デバイス内に格納された順序に従って分類される。範囲は、それらが格納された順序で順次バックアップ・デバイスから順番にその範囲にアクセスするために、分類リスト内の順序に従って、少なくとも１つの順次バックアップ・デバイスから取り出される。取り出された範囲はクライアントに戻され、クライアントは受信した範囲から復元データ・セットを再構築する。
【図面の簡単な説明】
【０００９】
【図１】ネットワーク・バックアップ環境の実施形態を示す図である。
【図２】ボリューム・バックアップ情報の実施形態を示す図である。
【図３】バックアップ・オブジェクト情報の実施形態を示す図である。
【図４】バックアップ・オブジェクト情報に関するファイル・インデックス内のファイル・インデックス・エントリの実施形態を示す図である。
【図５】復元リスト内の復元リスト・エントリの実施形態を示す図である。
【図６】範囲情報の実施形態を示す図である。
【図７】クライアントによって維持されるバックアップ・オブジェクトに関して、バックアップ・サーバがバックアップ・デバイス内に範囲をどのように維持するかの例を示す図である。
【図８】範囲情報の例を示す図である。
【図９】バックアップ・デバイス内の範囲からファイルの復元セットを復元するための諸動作の実施形態を示す図である。
【図１０】復元セットの復元元であるバックアップ・オブジェクトおよび範囲を決定するための諸動作の実施形態を示す図である。
【図１１】コンピュータ・アーキテクチャの実施形態を示す図である。
【発明を実施するための形態】
【００１０】
バックアップ・サーバは、順次アクセス・デバイス内の複数のバックアップ・オブジェクトからの範囲を格納する。重複排除実施形態では、複数のバックアップ・オブジェクト内に含められたか、または同じバックアップ・オブジェクト内の複数の位置にある範囲について、各範囲の１つのインスタンスがバックアップされる。順次アクセス媒体（磁気テープなど）からのデータの復元には、カートリッジを装填し、デバイス・リーダをデータ範囲に位置決めするための時間が必要である。順次アクセス媒体は、データ位置に順番にアクセスしなければならないストレージを備える。さらにバックアップされたファイルが断片化解除可能であるため、および、異なる時点で異なるバックアップ・オブジェクト内に存在する同じデータが不連続に格納されるため、バックアップ・データは不連続となる可能性がある。従来技術では、順次アクセス媒体からの不連続データの復元動作は、複数のボリュームの装填および探索動作を必要とするため、結果としてアクセス性能が低下する。説明される諸実施形態では、順次アクセス媒体からバックアップ・データを復元するための、改善された性能および効率的な技法を提供する。クライアントが、重複排除を用いて順次アクセス媒体内でバックアップされた範囲からのバックアップ・オブジェクトからファイルを復元できるようにするために、バックアップ・サーバは、順次バックアップ・デバイス全体にわたって範囲が格納された順序で順次アクセス・デバイスから復元するためにファイルを含む範囲にアクセスし、その範囲をファイルの復元に使用するためにクライアントに戻す。
【００１１】
図１は、ネットワーク・バックアップ環境の実施形態を示す。この環境は、ネットワーク６を介して通信するクライアント・システム２およびサーバ・システム４を含む。クライアント２およびサーバ４は、ローカル・ストレージ１４内に維持されるボリューム１２のバックアップを含むバックアップ・サービスをクライアント２に提供するための、クライアント・サーバ・バックアップ関連動作を実行するために、それぞれ、クライアント・バックアップ・プログラム８およびサーバ・バックアップ・プログラム１０を含む。１つのクライアント２が示されているが、サーバ４は、ネットワーク６を介して複数のクライアント・システムにバックアップ・サービスを提供することができる。本明細書で使用される「バックアップ」という用語は、アーカイブおよびスペース管理動作などの、他のバックアップ関連動作を言い表す。さらに、バックアップおよび復元動作は、全ボリュームまたはボリューム上のファイルのサブセットに関して実行可能である。本明細書におけるボリュームに関するバックアップおよび復元動作に関する言及は、全ボリュームまたはボリューム内のファイルおよびオブジェクトのサブセットに関するバックアップおよび復元動作を言い表す。
【００１２】
クライアント・バックアップ・プログラム８は、１つまたは複数の順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃ内で、クライアント２とは異なる時点でボリューム１２のバックアップに関する情報を提供するバックアップ・データベース１６を維持する。順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃは、内部で媒体の装填が必要であり、順次アクセス媒体上のトラック位置に読み取りヘッドを移動するために探索動作が実行される、磁気テープ媒体または他の順次アクセス・デバイスなどの、データが順次ストレージ位置から順次読み取られ、この位置へ順次書き込まれる、順次アクセス・デバイスを備える。
【００１３】
復元時点での全ボリュームまたはボリュームのサブセットを備える復元セットを復元するために、クライアント・バックアップ・プログラム８は、順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃから復元しクライアント２に戻すためのファイルに関する範囲を示す復元リスト２０を生成するために、復元ファイルおよびバックアップ・オブジェクト内の復元ファイルを含む範囲に関するバックアップ・データを有するバックアップ・オブジェクトを決定する。復元するための復元セットは、全ボリューム、ファイル・システム、またはファイルのサブセットを含むことができる。さらに、本明細書におけるボリュームまたはボリューム上のファイルのサブセットに対する言及は、ファイル・システムおよびファイル・システム内のファイルのサブセットにも適用される。
【００１４】
サーバ・バックアップ・プログラム１０は、順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃ内の復元するためのバックアップ・オブジェクト内の範囲の位置を示す範囲情報２２と、順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃから範囲が取り出され、クライアント２に戻される順序を示す、分類リストとを維持する。ある諸実施形態では、クライアント・バックアップ・プログラム８がサーバ・バックアップ・プログラム１０から範囲を受信すると、クライアント・バックアップ・プログラム８は、受信した範囲からの復元セットから、即時にファイルを復元することができる。
【００１５】
ある諸実施形態では、複数のファイルを復元する場合、クライアント・バックアップ・プログラム８は、たとえ復元要求内の他のファイルが完全に復元されていない場合であっても、復元が完了すると、復元されたファイルを使用可能にすることができる。クライアント・バックアップ・プログラム８は、部分的に復元されたファイルへのアクセスを防ぐために、すべての範囲が含まれるまで、復元中のバックアップ・オブジェクトへのアクセスを許可しない可能性がある。復元が失敗した場合、クライアント・バックアップ・プログラム８は、部分的にしか復元されていないファイルへのアクセスを防ぐために、部分的に復元されたファイルを除去することができる。別の方法として、クライアント・バックアップ・プログラム８は、復元するためにバックアップ・オブジェクトに関してサーバ・バックアップ・プログラム１０から受信した範囲をバッファリングすることができる。
【００１６】
部分的に復元されたデータ・オブジェクトの使用を防ぐために、「．ＴＭＰ」などの拡張子をファイル名に付加するなどのように、復元プロセス中にあるデータ・オブジェクトを名前変更することができる。別の方法として、復元中のデータ・オブジェクトをステージング・ディレクトリ内に再構築することが可能であり、データ・オブジェクトが完全に再構築され、アクセス可能なアクティブ・ディレクトリに戻されるまで、このステージング・ディレクトリからデータ・オブジェクトにアクセスできない。さらに他の実施形態では、アプリケーションによるアクセスには使用できないことを示す特別許可を用いて、再構築中のデータ・オブジェクトを構成することができる。
【００１７】
範囲は、バックアップ・オブジェクトが１つまたは複数の範囲を含むように構成可能なような、バックアップ・オブジェクトに割り当てられたデータの領域またはブロックを含む。バックアップ・オブジェクトは、ファイル、データベース、ファイル・システム、または任意の他のデータのグループ化を含むことができる。
【００１８】
ネットワーク６は、ローカル・エリア・ネットワーク（ＬＡＮ）、ストレージ・エリア・ネットワーク（ＳＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、無線ネットワークなどを含むことができる。クライアント２およびサーバ４は、エンタープライズ・ストレージ・サーバ、ストレージ・コントローラ、ブレード・サーバ、汎用サーバ、デスクトップ・コンピュータ、ワークステーション、電話デバイス、携帯情報端末（ＰＤＡ）など、または他のコンピューティング・デバイスを含むことができる。
【００１９】
ストレージ１４は、相互接続ハード・ディスク・ドライブ（ＤＡＳＤ、ＲＡＩＤ、ＪＢＯＤなどとして構成される）、ソリッド・ステート・ストレージ・デバイス（たとえばＥＥＰＲＯＭ（電気的消去可能プログラマブル読み取り専用メモリ）、フラッシュ・メモリ、フラッシュ・ディスク、ストレージクラス・メモリ（ＳＣＭ））、電子メモリなどの、当分野で知られた１つまたは複数のストレージ・デバイス内に実装された、ストレージ媒体を含むことができる。順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃは、磁気テープ媒体、順次アクセス・メモリ（ＳＡＭ）などの、データが所定の決められた順序でのみアクセス可能な、ストレージ・デバイスまたは要素を含む。
【００２０】
サーバ４は、クラウド内のクライアント２にバックアップ・サービスを提供するための「クラウド」ストレージなどの、分散ストレージ環境またはネットワーク・ストレージ環境内に実装可能である。別の方法として、クライアント２およびサーバ４は、同一メモリ内で実行される別々のプログラムなどの、同一システム内のソフトウェアまたはソフトウェアおよびハードウェアのコンポーネントの組み合わせを含むことができる。
【００２１】
図２は、異なる時点でのボリュームに関して作成されたバックアップ・オブジェクトのバックアップ・データベース１６内で維持されるボリューム・バックアップ情報を示す。ボリューム・バックアップ情報５０は、ボリューム１２を識別するボリューム識別子（ＩＤ）５２と、異なる時点ｔ０、ｔ１．．．ｔｎで作成されたボリューム５２の複数のバックアップ・オブジェクト５４ａ、５４ｂ．．．５４ｎと、を含む。一実施形態では、時点ｔ０で取られた第１のバックアップ・オブジェクト５４ａは、全体ボリューム５２の全バックアップを含む。後続の時点ｔ１．．．ｔｎで取られた後続の各バックアップ・オブジェクト５４ｂ．．．５４ｎは、ボリュームのデルタ・バックアップを含む。データ・バックアップは、増分バックアップまたは差分バックアップのいずれかを含む。
【００２２】
図３は、バックアップ・データベース１６内で維持されるバックアップ・オブジェクト情報７０の実施形態を示し、バックアップ・オブジェクト情報７０のインスタンスは、バックアップ・データベース１６内で維持されるそれぞれのバックアップ・オブジェクトについて維持される。バックアップ・オブジェクト情報７０は、ファイル・レベルでの追跡を提供する。バックアップ・オブジェクト情報７０は、バックアップ・オブジェクト識別子７２、バックアップ・オブジェクトが作成された際のボリュームの時点（ｔｉ）のバックアップ時点（ｔｉ）７４、バックアップ・オブジェクト７２内でデータが提供されるボリュームのファイルを示すファイル・インデックス７６、および、バックアップ・データまたはバックアップ・データの位置を含むバックアップ・データ７８を含む。デルタ・バックアップ・オブジェクトの場合、ファイル・インデックス７６は、全ボリューム・バックアップの時点または最後のデルタ・バックアップの時点である、バックアップに関する前の時点から、変更されたファイルを示す。
【００２３】
図４は、バックアップ・オブジェクトについてファイル・インデックス７６内で維持される、ファイル・インデックス・エントリ８０の実施形態を示す。ファイル・インデックス・エントリ８０は、サブファイル（範囲）レベルでデータを追跡する。ファイル・インデックス・エントリ８０は、ボリューム内のファイルの固有識別子を提供するファイル名８２、ファイル８２内の範囲を識別する範囲ＩＤ８４、および、ファイル８２内の範囲８４のシーケンス番号を示すシーケンス番号８６を含む。ファイル・インデックス・エントリ８０によって表されるファイル８２を含むそれぞれの範囲について、範囲ＩＤ８４および対応するシーケンス番号８６が存在する。同じファイル内の複数の位置に同じ範囲が生じる場合、ファイル内の範囲８４の各インスタンスにつき１つの、異なるシーケンス番号８６を有する同じ範囲ＩＤ８４について、複数のファイル・インデックス・エントリ８０が存在することになる。
【００２４】
ある諸実施形態では、サーバ・バックアップ・プログラム１０は、バックアップ・オブジェクト情報７０およびファイル・インデックス・エントリ８０を、クライアント・バックアップ・プログラム８に送信する。
【００２５】
図５は、復元するファイルのファイルＩＤ９２と、順次アクセス・デバイス１８ａ、１８ｂ、１８ｃ内に格納されたファイルの各範囲に関する１つまたは複数の範囲ＩＤ９４ａ．．．９４ｎとを示す、復元リスト２０内のエントリ９０の実施形態を示す。
【００２６】
図６は、復元するデータ・オブジェクト内の範囲に関する範囲識別子（ＩＤ）１０２と、範囲１０２を含む順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃのバックアップ・デバイスＩＤ１０４と、範囲を有する順次バックアップ・デバイス１０４内のブロックまたは位置を示すデバイス・ストレージ位置１０６とを示す、サーバ・バックアップ・プログラム１０が維持する範囲情報１００の実施形態を示す。データ・オブジェクト内には各範囲について１つのエントリ１００が存在するため、複数のデータ・オブジェクトに含まれる範囲は、範囲の順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃ内の位置を示す、範囲情報２２内に１つのエントリ１００のみを有することになる。
【００２７】
図２〜図６に示されたデータ構造内に提示されたデータは、フィールドおよび他の情報の異なる組み合わせを有するデータ構造の異なる組み合わせ内に格納されるなどのように、図２〜図６内に示されたものとは異なるフォーマットおよび配置構成内に格納可能である。
【００２８】
図７は、重複排除が使用される場合、サーバ４が、範囲Ｃ、Ｇ、Ａ、Ｂ、Ｆ、Ｄ、Ｈ、Ｊのうちの１つのインスタンスのみを有する３つの順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃを、どのように有するかの例を示す。クライアント４は、バックアップ・デバイス１８ａ、１８ｂ、１８ｃ内にバックアップされた範囲からなるデータ・オブジェクト８０ａ、８０ｂ、８０ｃを有する。バックアップ・データベース１６は、バックアップ・オブジェクト８０ａ、８０ｂ、８０ｃに関するバックアップ・オブジェクト情報７０（図３）を提供する。バックアップ・オブジェクト８０ａ、８０ｂ、８０ｃは範囲を共有することができる。さらに、同じバックアップ・オブジェクト内に範囲の複数のインスタンスが存在可能である。たとえば、バックアップ・オブジェクト８０ｂおよび８０ｃは共通範囲Ｃ、Ｈ、およびＧを有し、バックアップ・オブジェクト８０ａおよび８０ｃは共通範囲Ａ、Ｄ、Ｆを有する。バックアップ・オブジェクト８０ｃは範囲Ｈの２つのインスタンスを有する。同じ範囲の複数のインスタンスを格納することを避けるために重複排除が使用される実施形態では、クライアント４は、共通範囲を有するバックアップ・オブジェクト８０ａ、８０ｂ、８０ｃを維持することができるが、それらの範囲がバックアップ・デバイス１８ａ、１８ｂ、１８ｃ内にバックアップされる場合、重複排除は、バックアップ・デバイス１８ａ、１８ｂ、１８ｃ内に各範囲の１つのインスタンスのみを格納する。
【００２９】
図８は、各範囲の１つのインスタンスを有する範囲列１２２と、範囲を含む順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃを示すバックアップ・デバイス列１２４と、バックアップ・デバイス１２４上の範囲のアドレスまたは位置を有するデバイス・ストレージ位置列１２６とを有する、図７のバックアップ・オブジェクト例に関する範囲情報２２（図１）の例を含む、範囲情報１２０の例を示す。範囲情報２２は、復元するためのバックアップ・オブジェクト内の範囲を有するバックアップ・デバイス１８ａ、１８ｂ、１８ｃおよびストレージ位置を示すために、バックアップ・デバイス列１２４およびデバイス・ストレージ位置１２６のアドレスに従って分類される。
【００３０】
図９は、その範囲が順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃ内に格納されたバックアップ・オブジェクト内で維持されるデータの復元セットを復元するために、サーバ・バックアップ・プログラム１０およびクライアント・バックアップ・プログラム８によって実行される諸動作の実施形態を示す。クライアント・バックアップ・プログラム８は（ブロック２００で）、復元時点で復元セットを復元するための復元要求を開始する。復元セットは、全ボリューム１２またはボリューム１２内のファイルのサブセットを含むことができる。クライアント・バックアップ・プログラム８は（ブロック２０２で）、その範囲が、復元時点で復元セット内のファイルの最も新しいバージョンを提供する少なくとも１つの順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃ内に格納された、バックアップ・オブジェクトを決定する。クライアント・バックアップ・プログラム８は（ブロック２０４で）、復元ファイルに関する最も新しいデータを有する復元ファイルおよび範囲の復元リスト２０を生成するために、復元時点で復元セット内のファイルの最も新しいデータを有する決定されたバックアップ・オブジェクト内の範囲を決定する。
【００３１】
さらにクライアント・バックアップ・プログラム８は（ブロック２０６で）、クライアント・ストレージ１４でローカルに維持される、復元リスト２０内に示された範囲を決定することができる。クライアント・バックアップ・プログラム８は（ブロック２０８で）、範囲のインジケーションをサーバ４に送信し、サーバ４はこれを使用して、クライアント２がローカル・ストレージ１４内にローカルに維持している範囲を含まない、クライアント２に送信するための範囲を決定する。一実施形態では、クライアント・バックアップ・プログラム８は、ローカルに維持されている範囲のリスト、または、クライアントがローカルに維持していない復元するためのデータ・オブジェクト内の範囲のリストを、サーバ４に送信することができる。
【００３２】
サーバ・バックアップ・プログラム１０が、ファイルの復元セットを復元するために必要な、クライアントがローカルに維持していない範囲を決定するために使用されたインジケーションを受信すると、サーバ・バックアップ・プログラム１０は（ブロック２１０で）、クライアントがローカルに維持していない範囲を、分類リスト２４を生成するために、少なくとも１つの順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃ内に格納された順番に従って分類する。分類リスト２４は、順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃから範囲に順番にアクセスするためのプランを、サーバ・バックアップ・プログラム１０に提供する。代替実施形態では、クライアント・バックアップ・プログラム８が分類リスト２４を生成することもできる。次にサーバ・バックアップ・プログラム１０はブロック２１２から２１８で、分類リスト２４内に示された各バックアップ・デバイスについて動作ループを実行する。各バックアップ・デバイス１８ａ、１８ｂ、１８ｃに対して、サーバ・バックアップ・プログラム１０は（ブロック２１４で）、分類リスト２４内に示されたような順次バックアップ・デバイス内に格納された順序に従って、順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃから、分類リスト２４内の範囲を順番に読み取る。サーバ・バックアップ・プログラム１０は（ブロック２１６で）、順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃから読み取られた場合、範囲をクライアント４に送信することができる。
【００３３】
一実施形態では、（ブロック２２０で）サーバ４から範囲を受信すると、クライアント・バックアップ・プログラム８は（ブロック２２２で）、ローカルに維持されているかまたはサーバから受信したリスト２２内に示されている範囲から、復元リスト２２内のファイルを復元することができる。一実施形態では、クライアント・バックアップ・プログラム８は、範囲をサーバ４から受信するかまたはストレージ１４からローカルに取り出した場合、その範囲からファイルを復元することができる。
【００３４】
代替実施形態では、クライアント・バックアップ・プログラム８は、復元するためのファイルを有するすべての範囲がバッファ内で使用可能となった後、ファイルが復元されるように、サーバ４から受信した範囲およびバッファ内でローカルに取り出した範囲を集めることができる。
【００３５】
図１０は、図９のブロック２０２およびブロック２０４で実行されたような、復元するためのファイルに関する最も新しいデータを有するバックアップ・オブジェクトおよび範囲を決定するために実行される、諸動作の実施形態を示す。復元リスト２０を生成するために、復元時点（ｔｒ）で復元セット内のファイルに関する最も新しいデータを有するバックアップ・オブジェクトおよび範囲を決定するための諸動作を（ブロック２５０で）開始すると、クライアント・バックアップ・プログラム８（またはサーバ・バックアップ・プログラム１０）は（ブロック２５２で）、全ボリュームまたはボリューム内のファイルのサブセットとすることが可能な、復元セット内の各ファイルに関するエントリを有する復元リスト２０を生成する。復元リスト２０内のファイル・インデックス・エントリ８０（図４）内に示された各ファイルに関して、動作のループがブロック２５４〜２６２で実行される。ブロック２５６で、クライアント・バックアップ・プログラム８は、復元時点でファイルに関する最も新しいデータを提供する、時点ｔｉでのデータを有するバックアップ・オブジェクト（ｔｉ）を、ファイル・インデックス７６から決定するが、ここでｔｉ≦ｔｒである。クライアント・バックアップ・プログラム８は（ブロック２５８で）、ファイルに関するデータを有する決定されたバックアップ・オブジェクト内の範囲を決定する。たとえば、決定されたバックアップ・オブジェクトのファイル・インデックス７６内のファイル・インデックス・エントリ８０は、決定されたバックアップ・オブジェクト内のそのファイルに関するデータを有する範囲８４を示すことになる。ファイルに関する決定された範囲は（ブロック２６０で）、復元リスト２０内のファイルに関する復元リスト・エントリ９０（図５）内のフィールド９４に示される。
【００３６】
ある諸実施形態では、クライアント・バックアップ・プログラム８について、図９内のステップ２０２、２０４、２０６、および２０８ならびに図１０内の諸動作などのように、復元するためのファイルに関する最も新しいデータを有するバックアップ・オブジェクト内の範囲を決定するため、および、復元リスト２０を生成するための、諸動作を実行するものとして説明された。他の諸実施形態では、復元するためのファイルに関するデータを有するバックアップ・オブジェクトおよび範囲を決定するためのこれらの諸動作は、クライアント・バックアップ・プログラム８からの復元要求に応答して、サーバ４で維持されるバックアップ・データベース１６から、サーバ・バックアップ・プログラム１０によって実行されてもよい。サーバ・バックアップ・プログラム１０が図１０の諸動作を実行する場合、サーバはローカルに維持されている範囲情報２２を使用して、図１０の諸動作を実行することができる。こうした諸実施形態では、サーバ・バックアップ・プログラム１０は、クライアント・バックアップ・プログラム８に復元リスト２０を提供し、サーバから受信した範囲から復元セット内のファイルに関するデータを復元するために使用することができる。
【００３７】
説明された諸実施形態は、全ボリューム・バックアップおよび異なる時点でデータのバックアップを提供するデルタ・バックアップを有する、バックアップ・オブジェクトからボリューム内のファイルの復元セットを復元するための諸技法を提供するものであり、バックアップ・オブジェクトに関する範囲は、諸実施形態の順次バックアップ・デバイスからの範囲の順次取り出しを最適化するために、順次バックアップ・デバイス内に格納される。異なる時点でのデータを有するバックアップ・オブジェクトは、順次バックアップ・デバイスにおける範囲内の不連続位置に格納された範囲を有する。さらに、ボリューム内の断片化により、ファイルが不連続に格納されるという結果が生じる場合がある。説明された諸実施形態は、連続して復元するファイルを有する範囲を取り出すために、順次バックアップ・デバイスからのデータの取り出しを最適化する。
【００３８】
さらに、説明された諸実施形態は、複数のバックアップ・オブジェクト内に維持されている範囲の１つのインスタンスのみが順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃ内にバックアップされるように、重複排除を使用してバックアップ・オブジェクトの範囲を格納する実施形態において、順次バックアップ・デバイスからの範囲の取り出しを最適化する。重複排除は、たとえ、クライアント２がネットワークを介してバックアップ・サーバ４から復元している複数のバックアップ・オブジェクト内に範囲が含まれている場合であっても、範囲の１つのインスタンスのみをバックアップすることによってストレージを最適化し、範囲の１つのインスタンスのみを送信することによって、ネットワーク帯域幅を最適化する。
【００３９】
説明された諸動作は、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組み合わせを生成するために、標準的なプログラミングあるいはエンジニアリングまたはその両方の技法を使用する、方法、装置、またはコンピュータ・プログラム製品として、実装可能である。したがって、諸実施形態の諸態様は、全体としてハードウェア実施形態、全体としてソフトウェア実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、あるいは、本明細書ではすべて一般に「回路」、「モジュール」、または「システム」と呼ぶことが可能なソフトウェア態様とハードウェア態様とを組み合わせた実施形態の形を取ることができる。さらに諸実施形態の諸態様は、コンピュータ読み取り可能プログラム・コードがその上で具体化された１つまたは複数のコンピュータ読み取り可能媒体内で具体化された、コンピュータ・プログラム製品の形を取ることもできる。
【００４０】
１つまたは複数のコンピュータ読み取り可能媒体の任意の組み合わせが使用可能である。コンピュータ読み取り可能媒体は、コンピュータ読み取り可能信号媒体またはコンピュータ読み取り可能ストレージ媒体とすることができる。コンピュータ読み取り可能ストレージ媒体は、たとえば、電子、磁気、光、電磁、赤外線、または半導体のシステム、装置、またはデバイス、あるいはそれらの任意の好適な組み合わせとすることができるが、それらに限定されるものではない。コンピュータ読み取り可能ストレージ媒体のより特定の例（非網羅的リスト）には、１本または複数本のワイヤを有する電気接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭまたはＦｌａｓｈ（Ｒ）メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、光ストレージ・デバイス、磁気ストレージ・デバイス、またはそれらの任意の好適な組み合わせが含まれる。本明細書との関連において、コンピュータ読み取り可能ストレージ媒体は、命令実行のシステム、装置、またはデバイスによって、またはこれらに関連して使用するためのプログラムを含むかまたは格納することが可能な、任意の有形媒体とすることができる。
【００４１】
コンピュータ読み取り可能信号媒体は、たとえばベースバンド内または搬送波の一部として、内部にコンピュータ読み取り可能プログラム・コードが具体化された、伝搬データ信号を含むことができる。こうした伝搬信号は、電磁、光、またはそれらの任意の好適な組み合わせを含むがこれらに限定されない、様々な形のいずれかを取ることができる。コンピュータ読み取り可能信号媒体は、コンピュータ読み取り可能ストレージ媒体ではなく、命令実行のシステム、装置、またはデバイスによって、またはこれらに関連して使用するためのプログラムを送信、伝搬、または移送することが可能な、任意のコンピュータ読み取り可能媒体とすることができる。
【００４２】
コンピュータ読み取り可能媒体上に具体化されたプログラム・コードは、無線、有線、光ファイバ・ケーブル、ＲＦなど、またはそれらの任意の好適な組み合わせを含むがこれらに限定されない、任意の適切な媒体を使用して伝送可能である。
【００４３】
本発明の諸態様に関する諸動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および、「Ｃ」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組み合わせで作成可能である。プログラム・コードは、全体としてユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロン型ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、あるいは、全体としてリモート・コンピュータまたはサーバ上で、実行可能である。後者のシナリオでは、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを介して、リモート・コンピュータをユーザのコンピュータに接続することができる、あるいは、（たとえばインターネット・サービス・プロバイダを使用してインターネットを介して）外部コンピュータとの接続を実行することができる。
【００４４】
上記では、本発明の諸態様について、本発明の諸実施形態に従った方法、装置（システム）、およびコンピュータ・プログラム製品の流れ図あるいはブロック図またはその両方を参照しながら説明されている。流れ図あるいはブロック図またはその両方の各ブロック、ならびに、流れ図あるいはブロック図またはその両方におけるブロックの組み合わせは、コンピュータ・プログラム命令によって実施可能であることを理解されよう。コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行する命令が、流れ図あるいはブロック図またはその両方の１つまたは複数のブロック内に指定された機能／活動を実施するための手段を作成するように、これらのコンピュータ・プログラム命令を、汎用コンピュータ、特定用途向けコンピュータ、または他のマシンを製造するためのプログラマブル・データ処理装置のプロセッサへと提供することができる。
【００４５】
コンピュータ読み取り可能媒体内に格納された命令が、流れ図あるいはブロック図またはその両方の１つまたは複数のブロック内に指定された機能／活動を実施する命令を含む製品を生成するように、これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスに特定の様式で機能するように指示可能な、コンピュータ読み取り可能媒体に格納することも可能である。
【００４６】
コンピュータまたは他のプログラマブル装置上で実行する命令が、流れ図あるいはブロック図またはその両方の１つまたは複数のブロック内に指定された機能／活動を実施するためのプロセスを提供するように、コンピュータ・プログラム命令を、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードして、コンピュータ実施プロセスを生成するために、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させることも可能である。
【００４７】
ある諸実施形態では、図１のシステムは、クラウド・コンピューティング環境におけるクラウド・コンポーネント部分として実装可能である。クラウド・コンピューティング環境では、クラウド・コンピューティングの送達に関与するハードウェアおよびソフトウェアのコンポーネントのシステム・アーキテクチャは、インターネットなどのネットワークを介して互いに通信する複数のクラウド・コンポーネントを備えることができる。たとえば、ある諸実施形態では、図１のサーバ４は、ネットワーク・クラウド内にホストおよびクライアントのバックアップ・サービスを提供することができる。
【００４８】
図１１は、図１のクライアント２およびサーバ４で実装可能なコンピュータ・アーキテクチャ３００の実施形態を示す。アーキテクチャ３００は、プロセッサ３０２（たとえばマイクロプロセッサ）、メモリ３０４（たとえば揮発性メモリ・デバイス）、およびストレージ３０６（たとえば、磁気ディスク・ドライブ、光ディスク・ドライブ、テープ・ドライブなどの、不揮発性ストレージ）を含むことができる。ストレージ３０６は、内部ストレージ・デバイス、あるいは、接続されるかまたはネットワーク・アクセスが可能なストレージを備えることができる。オペレーティング・システム３０８と、ストレージ３０６内のバックアップ・プログラム８および１０を含むプログラムが、メモリ３０４内にロードされ、プロセッサ３０２によって実行される。メモリ３０４は、情報１６、２０、２２、および２４などのデータ構造を、さらに含むことができる。アーキテクチャは、ネットワーク３０と通信可能なネットワーク・カード３１０をさらに含む。入力デバイス３１２は、ユーザ入力をプロセッサ３０２に提供するために使用され、キーボード、マウス、ペン・スタイラス、マイクロフォン、タッチ・センサー式ディスプレイ画面、または当分野で知られた任意の他の起動または入力メカニズムを含むことができる。出力デバイス３１４は、プロセッサ３０２、または、ディスプレイ・モニタ、プリンタ、ストレージなどの他のコンポーネントから伝送された情報をレンダリングすることができる。
【００４９】
「ある実施形態」、「実施形態」、「諸実施形態」、「その実施形態」、「その諸実施形態」、「１つまたは複数の実施形態」、「いくつかの実施形態」、および「一実施形態」という用語は、特に明示的に指定されていない限り「本発明の１つまたは複数の（ただしすべてではない）実施形態」を意味する。
【００５０】
「含む」、「備える」、「有する」、およびそれらの変形の用語は、特に明示的に指定されていない限り、「含むが限定されない」ことを意味する。
【００５１】
アイテムの列挙されたリストは、特に明示的に指定されていない限り、アイテムのいずれかまたはすべてが相互に排他的であることを示唆するものではない。
【００５２】
「ａ」、「ａｎ」、および「ｔｈｅ」は、特に明示的に指定されていない限り、「１つまたは複数」を意味する。
【００５３】
互いに通信しているデバイスは、特に明示的に指定されていない限り、互いに連続した通信状態にあるとは限らない。加えて、互いに通信しているデバイスは、直接、あるいは１つまたは複数の仲介を介して間接的に、通信可能である。
【００５４】
互いに通信しているいくつかのコンポーネントを備える実施形態の説明は、こうしたコンポーネントのすべてが必要であることを示唆するものではない。反対に、本発明の多種多彩かつ可能な諸実施形態を示すために、様々なオプションのコンポーネントについて説明される。
【００５５】
さらに、プロセス・ステップ、方法ステップ、アルゴリズムなどについて、ある順序で説明されている場合があるが、こうしたプロセス、方法、およびアルゴリズムは、代替順序で作業するように構成可能である。言い換えれば、説明可能なステップの任意の順序または順番は、ステップがその順番で実行されるという要件を必ずしも示すものではない。本明細書で説明されるプロセスの諸ステップは、任意の実用的な順序で実行可能である。さらに、いくつかのステップは同時に実行可能である。
【００５６】
本明細書で単一のデバイスまたは製品について記載されている場合、単一のデバイス／製品の代わりに、複数のデバイス／製品が（それらが協働するか否かに関わらず）使用可能であることが容易に明らかとなろう。同様に、本明細書で複数のデバイスまたは製品について（それらが協働するか否かに関わらず）記載されている場合、複数のデバイスまたは製品の代わりに、単一のデバイス／製品が使用可能であること、あるいは、表示されたデバイスまたはプログラムの数の代わりに、異なる数のデバイス／製品が使用可能であることが、容易に明らかとなろう。デバイスの機能あるいは特徴またはその両方は、別の方法として、そうした機能／特徴を有するものとして明示的に説明されていない１つまたは複数の他のデバイスによって具体化することができる。したがって、本発明の他の諸実施形態が、デバイス自体を含む必要はない。
【００５７】
図９および図１０に示された諸動作は、ある順序で発生するある諸イベントを示している。代替の諸実施形態では、ある諸動作を異なる順序で実行すること、修正すること、または除去することが可能である。さらに、前述の論理に諸ステップを追加し、依然として説明された諸実施形態に準拠するものとすることが可能である。さらに、本明細書で説明された諸動作は順次発生可能であるか、またはある諸動作は並行して処理可能である。さらに、諸動作を、単一の処理ユニットによって、または分散型処理ユニットによって、実行可能である。
【００５８】
前述の本発明の様々な実施形態の記述は、例示および説明の目的で提示されてきた。これは網羅的なものではなく、本発明を開示された精密な形に限定することは意図されていない。上記教示に鑑みて、多くの修正および変形が可能である。本発明の範囲は、この詳細な説明によってではなく、本明細書に添付された特許請求の範囲によって限定されることが意図される。前述の仕様、例示、およびデータは、本発明の組成物の製造および使用の完全な説明を提供するものである。本発明の多くの実施形態は、本発明の趣旨および範囲を逸脱することなく実行可能であるため、本発明は、以下に添付の特許請求の範囲内に入るものである。
【符号の説明】
【００５９】
２    クライアント
４    サーバ
６    ネットワーク
８    クライアント・バックアップ・プログラム
１０    サーバ・バックアップ・プログラム
１２    ボリューム
１４    ストレージ
１６    バックアップ・データベース
１８ａ、１８ｂ、１８ｃ    順次バックアップ・デバイス
２０    復元リスト
２２    範囲情報
２４    分類リスト
【図１】
0005756394.tif 000002
【図２】
0005756394.tif 000003
【図３】
0005756394.tif 000004
【図４】
0005756394.tif 000005
【図５】
0005756394.tif 000006
【図６】
0005756394.tif 000007
【図７】
0005756394.tif 000008
【図８】
0005756394.tif 000009
【図９】
0005756394.tif 000010
【図１０】
0005756394.tif 000011
【図１１】
0005756394.tif 000012