(57)【要約】  実施形態は、バックアップされたアイテムを、カスタムのスキーマを使用して探し出し、復元すること、および回復データを効率的に転送することを対象とする。或る実施形態において、コンピューターシステムが、バックアップデータセットのなかでデータ検索およびデータ取得をもたらすスキーマを規定する。このスキーマは、各データベースアイテムに関する検索可能な属性を格納し、さらにファイルシステムを活用して、バックアップセットのデータアイテムに関するファイルシステムメタデータを格納する。コンピューターシステムは、バックアップデータセットのなかからデータアイテムを見つけ出す要求を受け取り、このスキーマにアクセスして、格納された検索可能な属性から、バックアップデータセットのなかのいずれの回復ポイントが、要求されるデータアイテムを含むかを特定する。また、コンピューターシステムは、バックアップデータセット内の特定された回復ポイントから、要求されるデータを復元することもする。
2014526748.tif 000002
【特許請求の範囲】
【請求項１】
複数のコンピューティングシステムを含むコンピューターネットワーキング環境における、少なくとも１つのプロセッサーと、メモリーとを含むコンピューターシステムにおいて、バックアップされたアイテムを、カスタムのスキーマを使用して探し出し、復元するためのコンピューターによって実施される方法であって、
バックアップデータセットのなかでデータ検索およびデータ取得をもたらすように構成されたスキーマを規定し、前記スキーマは、各データベースアイテムに関して検索可能な属性を格納し、さらにファイルシステムを活用して、前記バックアップセットの前記データアイテムに関するファイルシステムメタデータを格納する動作と、
前記バックアップデータセットのうちの少なくとも１つのなかで１つまたは複数のデータアイテムを見つけ出す要求を受け取る動作と、
前記スキーマにアクセスして、前記格納された検索可能な属性から、前記バックアップデータセットのなかでいずれの回復ポイントが前記要求されるデータアイテムを含むかを特定する動作と、
前記バックアップセット内の前記特定された回復ポイントから前記要求されるデータアイテムを復元する動作とを備える方法。
【請求項２】
前記検索可能な属性は、少なくとも、前記データ部分が前記バックアップセットの中に最初に格納された時刻と前記データ部分が最後にアクセスされた時刻の指示を備える請求項１に記載の方法。
【請求項３】
前記スキーマを使用するユーザーインターフェースは、前記データ部分が一部を成す或る範囲のバックアップセットを表示する請求項２に記載の方法。
【請求項４】
前記ユーザーインターフェースは、各データアイテムに関して、最初の回復ポイントと最後の回復ポイントを示す請求項２に記載の方法。
【請求項５】
ファイルシステムメタデータは、親情報と、ファイル名情報とを含む請求項１に記載の方法。
【請求項６】
前記親情報と前記ファイル名情報は、別々のテーブルの中に格納される請求項５に記載の方法。
【請求項７】
前記親情報は、２つの部分に分割されるパスを含み、前記２つの部分のうちの第１の部分は、事前定義されたデータ長に長さが制限される請求項５に記載の方法。
【請求項８】
子アイテムについての拡張された情報の１つまたは複数の部分が、追加のテーブルの中に格納され、前記追加のテーブルは、格納されて、クエリーが行われる属性のタイプに特有のスキーマを使用し、前記拡張された情報は、前記拡張された情報を実施する検索機能および回復機能を可能にする請求項５に記載の方法。
【請求項９】
子アイテム情報が、前記子アイテムのデータソースのコンテキストに基づいて１つまたは複数の特定の子アイテムプロパティを追加するように拡張される請求項５に記載の方法。
【請求項１０】
前記ファイルシステムメタデータは、データレス仮想ハードドライブの中に格納され、前記データレス仮想ハードドライブは、対応するメタデータおよび属性を伴って、ただし、実際のデータファイルのデータを格納することなしに、作成されたデータファイルを格納するように構成される請求項１に記載の方法。
【請求項１１】
データ回復中、前記データレス仮想ハードドライブがマウントされ、さらにファイルシステムアプリケーションプログラミングインターフェースが、回復されるべき前記データアイテムに関する前記メタデータを抽出するように実装される請求項１０に記載の方法。
【請求項１２】
回復データを効率的に転送するための方法を実施するためのコンピュータープログラム製品であって、前記コンピュータープログラム製品は、コンピューティングシステムの１つまたは複数のプロセッサーによって実行されると、前記コンピューティングシステムに前記方法を実行させるコンピューター実行可能命令が格納されている１つまたは複数のコンピューター可読記憶媒体を備え、前記方法は、
データバックアップのセットの中の指定された回復ポイントから回復されるべき１つまたは複数のバックアップデータアイテムの指示をユーザーから受け取る動作と、
前記ユーザーによって指定されたバックアップデータアイテムのそれぞれに対応するチェックサムデータを計算する動作と、
前記ユーザーによって指定されたバックアップデータファイルの前記計算されたチェックサムデータを、前記ユーザーのコンピューターシステム上に既にあるデータアイテムに関連するチェックサムと比較して、前記バックアップデータアイテムのいずれのセグメントが前記ユーザーに復元されるべきかを特定する動作と、
前記データバックアップのうちの少なくとも１つから、前記ユーザーのコンピューターシステム上に既存のチェックサムがないバックアップされたデータアイテムを受け取る動作と、
前記受け取られたバックアップデータアイテムを前記ユーザーの既存のデータアイテムと組み合わせて、前記ユーザーのデータが完全に回復されるようにする動作とを備える、
コンピュータープログラム製品。
【請求項１３】
前記バックアップデータおよび前記チェックサムは、バージョン管理される請求項１２に記載のコンピュータープログラム製品。
【請求項１４】
バックアップデータは、指定されたバックアップデータバージョンから復元される請求項１３に記載のコンピュータープログラム製品。
【請求項１５】
１つまたは複数のプロセッサーと、
システムメモリーと、
前記１つまたは複数のプロセッサーによって実行されると、コンピューティングシステムに、バックアップされたアイテムを、カスタムのスキーマを使用して探し出し、復元するための方法を実行させるコンピューター実行可能命令が格納されている１つまたは複数のコンピューター可読記憶媒体とを備えるコンピューターシステムであって、
前記方法は、
バックアップデータセットのなかでデータ検索およびデータ取得をもたらすように構成されたスキーマを規定し、前記スキーマは、各データベースアイテムに関して検索可能な属性を格納し、さらにファイルシステムを活用して、前記バックアップセットの前記データアイテムに関するファイルシステムメタデータを格納し、さらに前記ファイルシステムメタデータは、データレス仮想ハードドライブの中に格納され、前記データレス仮想ハードドライブは、対応するメタデータおよび属性を伴って、ただし、実際のデータファイルのデータを格納することなしに、作成されたデータファイルを格納するように構成される動作と、
前記バックアップデータセットのうちの少なくとも１つのなかで１つまたは複数のデータアイテムを見つけ出す要求を受け取る動作と、
前記スキーマにアクセスして、前記格納された検索可能な属性から、前記バックアップデータセットのなかのいずれの回復ポイントが前記要求されるデータアイテムを含むかを特定する動作と、
前記バックアップデータセット内の前記特定された回復ポイントから前記要求されるデータアイテムを復元し、データ回復中、前記データレス仮想ハードドライブがマウントされ、さらにファイルシステムアプリケーションプログラミングインターフェースが、回復されるべき前記データアイテムに関する前記メタデータを抽出するように実装される動作とを備える、
コンピューターシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]コンピューターは、労働力、自宅、モバイルデバイス、および他の多くの場所に大いに取り込まれている。コンピューターは、大量の情報を迅速に、効率的に処理することができる。コンピューターシステム上で実行されるように設計されたソフトウェアアプリケーションが、ユーザーが、ビジネスアプリケーション、学業、エンターテイメントその他を含む多種多様な機能を実行することを可能にする。ソフトウェアアプリケーションは、しばしば、文書を書くためのワードプロセッサープリケーション、または電子メールを送信するため、受信するため、および整理するための電子メールプログラムなどの特定のタスクを実行するように設計される。
【０００２】
[0002]このため、ソフトウェアアプリケーション、およびソフトウェアアプリケーションに対応するユーザーによって生成されるデータは、しばしば、ユーザーおよびビジネスに非常に貴重である。多くの事例において、このアプリケーションデータは、他の（遠隔の）コンピューターシステム上にバックアップされる。データバックアップは、通常、各データファイルのコピーを格納する。時が経つにつれてこれらのファイルに変更が行われると、バックアップは、以前に格納されたバックアップデータに上書きして、バックアップされたデータが最新であることを確実にする。これらのデータバックアップは、時間が経つにつれ、ますます多くのユーザーがデータを作成し、編集するにつれて、ますます大きくなり得る。これらの大量のデータを処理すること、および転送することは、面倒になり得る。
【発明の概要】
【課題を解決するための手段】
【０００３】
[0003]本明細書で説明される実施形態は、バックアップされたアイテムを、カスタムのスキーマを使用して探し出して、復元すること、および回復データを効率的に転送することを対象とする。一実施形態において、コンピューターシステムは、バックアップデータセットのなかでデータ検索およびデータ取得をもたらすスキーマを規定する。このスキーマは、各データベースアイテムに関する検索可能な属性を格納し、さらにファイルシステムを活用して、バックアップセットのデータアイテムに関するファイルシステムメタデータを格納する。コンピューターシステムは、バックアップデータセットのなかからデータアイテムを見つけ出す要求を受け取り、このスキーマにアクセスして、格納された検索可能な属性から、バックアップデータセットのなかのいずれの回復ポイントが、要求されるデータアイテムを含むかを特定する。また、コンピューターシステムは、バックアップデータセット内の特定された回復ポイントから、要求されるデータを復元することもする。
【０００４】
[0004]別の実施形態において、コンピューターシステムが、ユーザーから、データバックアップのセットにおける指定された回復ポイントから回復されるべき様々なバックアップデータアイテムの指示を受け取る。このコンピューターシステムは、ユーザーによって指定されたバックアップデータアイテムのそれぞれに対応するチェックサムデータを計算し、ユーザーによって指定されたバックアップデータファイルの計算されたチェックサムデータを、既にユーザーのコンピューターシステム上にあるデータアイテムに関連するチェックサムデータと比較して、バックアップデータアイテムのいずれのセグメントがユーザーに復元されるべきかを特定する。また、このコンピューターシステムは、データバックアップから、ユーザーのコンピューターシステム上に既存のチェックサムがないバックアップされたデータアイテムを受け取り、受け取られたバックアップデータアイテムをユーザーの既存のデータアイテムと組み合わせて、ユーザーのデータを完全に回復することもする。
【０００５】
[0005]この概要は、詳細な説明において後段でさらに説明される選定された概念を、簡略化された形態で紹介するように与えられる。この概要は、特許請求される主題の重要な特徴も、不可欠な特徴も特定することは意図しておらず、特許請求される主題の範囲を確定する際の助けとして使用されることも意図していない。
【０００６】
[0006]さらなる特徴および利点は、後段の説明において示され、その説明から部分的に明白となり、あるいは本明細書の教示の実施によって知ることが可能である。本発明の特徴および利点は、添付の特許請求の範囲において特に指摘される機器および組み合わせによって実現され、得られることが可能である。本発明の特徴は、後段の説明、および添付の特許請求の範囲から、より完全に明白となり、あるいは後段で説明されるとおりの本発明の実施によって知ることが可能である。
【０００７】
[0007]本発明の実施形態の以上、およびその他の利点および特徴をさらに明確にするのに、本発明の実施形態のより詳細な説明が、添付の図面を参照して行われる。これらの図面は、本発明の典型的な実施形態を示すに過ぎず、したがって、本発明の範囲を限定するものと見なされるべきではないことが理解されよう。本発明を、添付の図面の用いることにより、さらに具体的に、さらに詳細に記述し、説明する。
【図面の簡単な説明】
【０００８】
【図１】[0008]バックアップされたアイテムを、カスタムのスキーマを使用して探し出し、復元することを含め、本発明の実施形態が動作することが可能なコンピューターアーキテクチャーを示す図である。
【図２】[0009]バックアップされたアイテムを、カスタムのスキーマを使用して探し出し、復元するための例示的な方法を示す流れ図である。
【図３】[0010]回復データを効率的に転送するための例示的な方法を示す流れ図である。
【図４】[0011]回復データがバックアップロケーションから回復ターゲットに効率的に転送される代替のコンピューターアーキテクチャー実施形態を示す図である。
【発明を実施するための形態】
【０００９】
[0012]本明細書で説明される実施形態は、バックアップされたアイテムを、カスタムのスキーマを使用して探し出して、復元すること、および回復データを効率的に転送することを対象とする。一実施形態において、コンピューターシステムは、バックアップデータセットのなかでデータ検索およびデータ取得をもたらすスキーマを規定する。このスキーマは、各データベースアイテムに関する検索可能な属性を格納し、さらにファイルシステムを活用して、バックアップセットのデータアイテムに関するファイルシステムメタデータを格納する。コンピューターシステムは、バックアップデータセットのなかからデータアイテムを見つけ出す要求を受け取り、このスキーマにアクセスして、格納された検索可能な属性から、バックアップデータセットのなかのいずれの回復ポイントが、要求されるデータアイテムを含むかを特定する。また、コンピューターシステムは、バックアップデータセット内の特定された回復ポイントから、要求されるデータアイテムを復元することもする。
【００１０】
[0013]別の実施形態において、コンピューターシステムが、ユーザーから、データバックアップのセットにおける指定された回復ポイントから回復されるべき様々なバックアップデータアイテムの指示を受け取る。このコンピューターシステムは、ユーザーによって指定されたバックアップデータアイテムのそれぞれに対応するチェックサムデータを計算し、ユーザーによって指定されたバックアップデータファイルの計算されたチェックサムデータを、既にユーザーのコンピューターシステム上にあるデータアイテムに関連するチェックサムデータと比較して、バックアップデータアイテムのいずれのセグメントがユーザーに復元されるべきかを特定する。また、このコンピューターシステムは、データバックアップから、ユーザーのコンピューターシステム上に既存のチェックサムがないバックアップされたデータアイテムを受け取り、受け取られたバックアップデータアイテムをユーザーの既存のデータアイテムと組み合わせて、ユーザーのデータを完全に回復することもする。
【００１１】
[0014]次に、以下の説明が、実行されることが可能ないくつかの方法および方法動作について述べる。方法動作は、或る順序で説明されること、または特定の順序で行われるものとして流れ図で例示されることが可能であるものの、特に明記されない限り、または或る動作が、その動作が実行されるのに先立って別の動作が完了していることに依存するために要求されるのでない限り、特定の順序は必ずしも要求されないことに留意されたい。
【００１２】
[0015]本発明の実施形態は、後段でより詳細に説明されるとおり、例えば、１つまたは複数のプロセッサーやシステムメモリーなどのコンピューターハードウェアを含む専用コンピューターまたは汎用コンピューターを備える、または利用することが可能である。また、本発明の範囲内の実施形態は、コンピューター実行可能命令および／またはデータ構造を伝送するため、または格納するための物理媒体および他のコンピューター可読媒体も含む。そのようなコンピューター可読媒体は、汎用コンピューターシステムまたは専用コンピューターシステムによってアクセスされ得る任意の利用可能な媒体であり得る。データの形態でコンピューター実行可能命令を格納するコンピューター可読媒体は、コンピューター記憶媒体である。コンピューター実行可能命令を伝送するコンピューター可読媒体は、伝送媒体である。このため、例として、限定としてではなく、本発明の実施形態は、少なくとも２つの別々の異なる種類のコンピューター可読媒体、すなわち、コンピューター記憶媒体と、伝送媒体とを含み得る。
【００１３】
[0016]コンピューター記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、ＲＡＭに基づくソリッドステートドライブ（ＳＳＤ）、フラッシュメモリー、相変化メモリー（ＰＣＭ）、もしくは他のタイプのメモリー、または他の光ディスクストレージ、磁気ディスクストレージ、もしくは他の磁気ストレージデバイス、あるいはコンピューター実行可能命令、データ、またはデータ構造の形態で所望されるプログラムコード手段を格納するのに使用され得るとともに、汎用コンピューターまたは専用コンピューターによってアクセスされ得る他の任意の媒体が含まれる。
【００１４】
[0017]「ネットワーク」は、コンピューターシステムおよび／またはモジュールおよび／または他の電子デバイスの間で電子データのトランスポートを可能にする１つまたは複数のデータリンクおよび／またはデータスイッチと定義される。情報が、ネットワーク（有線、ワイヤレス、または有線とワイヤレスの組み合わせ）を介してコンピューターに転送される、または供給される場合、コンピューターは、適切にその接続を伝送媒体と見なす。伝送媒体には、コンピューター実行可能命令の形態で、またはデータ構造の形態でデータまたは所望されるプログラムコード手段を伝送するのに使用され得るとともに、汎用コンピューターまたは専用コンピューターによってアクセスされ得るネットワークが含まれ得る。また、前述の媒体の組み合わせも、コンピューター可読媒体の範囲内に含められるべきである。
【００１５】
[0018]さらに、様々なコンピューターシステム構成要素に到達すると、コンピューター実行可能命令またはデータ構造の形態のプログラムコード手段は、伝送媒体からコンピューター記憶媒体に（またはコンピューター記憶媒体から伝送媒体に）自動的に転送され得る。例えば、ネットワークまたはデータリンクを介して受信されたコンピューター実行可能命令またはデータ構造が、ネットワークインターフェースモジュール（例えば、ネットワークインターフェースカード、すなわち「ＮＩＣ」）内でＲＡＭの中にバッファリングされ、その後、コンピューターシステムＲＡＭに、さらに／またはコンピューターシステムにおける揮発性のより低いコンピューター記憶媒体に最終的に転送されることが可能である。このため、コンピューター記憶媒体は、伝送媒体も（または主としても）利用するコンピューターシステム構成要素に含められることが可能であることを理解されたい。
【００１６】
[0019]コンピューター実行可能命令（またはコンピューター解釈可能）命令は、例えば、汎用コンピューター、専用コンピューター、または専用処理デバイスに、或る機能、または或るグループの機能を実行させる命令を備える。コンピューター実行可能命令は、例えば、バイナリー、アセンブリー言語などの中間フォーマットの命令、またはソースコードでさえあることが可能である。主題は、構造上の特徴、および／または方法上の動作に特有の言い回しで説明されてきたものの、添付の特許請求の範囲において規定される主題は、前述した説明される特徴または動作に必ずしも限定されないことを理解されたい。むしろ、説明される特徴および動作は、特許請求の範囲を実施する例示的な形態として開示される。
【００１７】
[0020]本発明は、パーソナルコンピューター、デスクトップコンピューター、ラップトップコンピューター、メッセージプロセッサー、ハンドヘルドデバイス、マルチプロセッサーシステム、マイクロプロセッサーベースの電子機器もしくはプログラマブル家庭用電子機器、ネットワークＰＣ、ミニコンピューター、メインフレームコンピューター、モバイル電話機、ＰＤＡ、ポケットベル、ルーター、スイッチなどを含む、多くのタイプのコンピューターシステム構成を有するネットワークコンピューティング環境において実施されることが可能であることが当業者には認識されよう。また、本発明は、ネットワークを介して（有線データリンクによって、ワイヤレスデータリンクによって、または有線データリンクとワイヤレスデータリンクの組み合わせによって）結び付けられたローカルコンピューターシステムと遠隔コンピューターシステムがそれぞれタスクを実行する、分散システム環境において実施されることも可能である（例えば、クラウドコンピューティング、クラウドサービスなど）。分散システム環境において、プログラムモジュールは、ローカルメモリー記憶デバイスと遠隔メモリー記憶デバイスの両方の中に配置され得る。
【００１８】
[0021]図１は、本発明の原理が使用され得るコンピューターアーキテクチャー１００を示す。コンピューターアーキテクチャー１００は、クライアントコンピューターシステム１０１、ならびにデータストア１３０を含む。これらのコンピューターシステムは、ローカルコンピューターシステムであっても、分散コンピューターシステムであってもよく、クラウドコンピューティングシステムを含んでも、使用してもよい。これらのコンピューターシステムは、他のコンピューターシステムおよび／または他のデバイスと通信するように構成され得る。これらのコンピューターシステムは、特定のタスクを実行するための様々なモジュールを含み得る。これらのモジュールは、後段で様々な方法およびシステムに関連して説明される。
【００１９】
[0022]前述したとおり、コンピューターシステムユーザーが、ユーザーのデータのバックアップを作成することが可能である。これらのバックアップは、通常、オペレーティングシステム、１つまたは複数のアプリケーション、ならびに様々なユーザーによって生成されたファイルおよび設定を含む。本明細書で説明されるいくつかの実施形態は、バックアップセット全体にわたるアイテムの効率的な検索、および特定のバックアップセットからのデータアイテムのメタデータの抽出を可能にする高度に最適化されたカタログスキームを含む。また、実施形態は、回復ターゲット（データが復元されるべきコンピューターシステム）上の、または回復ターゲットに近い既存のデータを使用して、バックアップストレージ（例えば、データストア１３０の中のバックアップデータセット１３１）からのデータ転送を最小限に抑える効率的なアルゴリズムも説明する。
【００２０】
[0023]アイテムレベルカタログは、２つの部分、すなわち、データベーステーブルのセットの中のアイテムの検索可能な属性（名前、最終変更時刻、サイズ、作成者などのような）を格納する部分と、バックアップセットの一部である物理ファイルに関するファイルシステムメタデータを格納する別の部分とに分割され得る。第１の部分は、回復アイテムに関する効率的なブラウズフィーチャーおよび検索フィーチャーをもたらす。第２の部分は、バックアップ中の効率的な格納、および回復時における物理ファイルに関するメタデータの抽出を助ける。これらの部分はともに、後段でより詳細に説明される。
【００２１】
[0024]一部の事例において、アイテム属性カタログの中に格納されたアイテムは、階層的な性質である。つまり、アイテムは、親−子関係を有する。親（例えば、ディレクトリー、サブディレクトリーなど）を表すアイテムが、ＰａｒｅｎｔＩｔｅｍテーブルの中に格納され得る一方で、子は、ＣｈｉｌｄＩｔｅｍテーブルの中に格納される。各親アイテムは、複数の子を有することが可能であるので、親についての情報は、繰り返されず、１回だけ格納される。
【００２２】
[0025]一部の実施形態において、特定のアイテムが複数のバージョンで出現することが可能である。例えば、ｃ：＼ｆｉｌｅｓディレクトリーの下の「ｄｏｃｕｍｅｎｔ．ｔｘｔ」というファイルが、日付を付けられたバックアップ（例えば、Ｂａｃｋｕｐ  Ｂ１、Ｂ２など）の一部としてバックアップされる。このファイルが、バックアップＢ１００までとどまりつづける可能性がある。その後、ユーザーが、バックアップＢ５０に関して回復を行うようにｃ：＼ｆｉｌｅｓの下のファイルをブラウズしようと試みると、ｄｏｃｕｍｅｎｔ．ｔｘｔというファイルがリストで出現する。この振舞いを実現するために、ＰａｒｅｎｔＩｔｅｍおよびＣｈｉｌｄＩｔｅｍテーブルの中の各アイテムは、ＳｔａｒｔＴｉｍｅと、ＥｎｄＴｉｍｅとを有する。ＳｔａｒｔＴｉｍｅは、アイテムが出現した最初の時刻を示し、ＥｎｄＴｉｍｅは、アイテムが無効になった（例えば、削除された）時刻を示す。このことは、各アイテムに関するエントリーが、各バージョンで繰り返されないことを確実にし、このため、テーブル内でその情報を格納するのに使用されるスペースは、最小限である。また、このスキームは、テーブルを可能な限り薄く保つのに役立ち、このことは、より良好なクエリーパフォーマンスに役立つ。このスキーマは、或る時間範囲内のすべてのアイテムの累積リストが見られることが可能なブラウズビューを効率的に表出させることが可能であり、これにより、ユーザーが各バックアップセットに移動して、別々にブラウズする必要性が回避される。
【００２３】
[0026]一部の事例において、子アイテムについての拡張された情報が、追加のテーブルに格納されることが可能である。この追加のテーブルは、格納されて、クエリーが行われる属性のタイプに特有のスキーマを使用する。このため、この拡張された情報は、この拡張された情報を実装する検索機能および回復機能を可能にする。例えば、ソフトウェアコラボレーションプログラムが、専用の回復検索ＵＩにおいて文書レベルのプロパティおよび他のリストレベルの詳細をリストアップすることが可能である。さらに、または代替として、データファイルに関して、この拡張された情報は、変更時刻、変更された時刻、ファイルサイズ、および他の任意のファイルシステム属性を含み得る。これらもまた、検索ユーザーインターフェースまたは回復ユーザーインターフェースにおいて提示されることが可能である。さらに、子アイテム情報は、子アイテムのデータソースのコンテキストに基づいて特定の子アイテムプロパティを追加するように拡張されることが可能である。
【００２４】
[0027]ＰａｒｅｎｔＩｔｅｍテーブルの中に格納されたパス情報は、３２Ｋ文字もの大きさであること、または一部の実施形態において、さらに長いことが可能である。この情報は、２つの部分に分割されて、第１の部分は、ファイルパスの最初の（例えば、４００の）文字を含み、残りの文字は、第２の部分に入る。ほとんどの事例で、アイテムパスの長さは、４００文字未満である。この機構は、第１の部分を、より迅速なクエリー応答に役立つインデックスの部分として含めることに役立つ。パスが４００文字長より大きい残りの事例に関して、やはり、インデックスの最初の４００文字部分を得ることにより、クエリーは、最初の４００文字がクエリーと合致する非常に少数の行だけに絞り込まれる。
【００２５】
[0028]ファイルメタデータカタログは、データレス仮想ハードディスク（ＶＨＤ）として保持され得る。データレスＶＨＤは、ファイルがすべてのメタデータおよび属性を有して作成されるが、いずれのファイルに関してもデータストリームは書き込まれないＶＨＤである。データレスＶＨＤを使用することは、ファイルシステム自体が、ファイルメタデータのためのカタログフォーマットとして使用されることを可能にする。回復中、このデータレスＶＨＤがマウントされ、さらにファイルシステムの復元ＡＰＩを使用して、回復されるべきファイルに関するメタデータを抽出することが可能である。このことは、ファイルシステムメタデータを別の（カスタムの）フォーマットに変換するファイルメタデータに関する他のフォーマットと比べて、より効率的である。これらのカスタムのフォーマットは、ファイルシステムに新たなフィーチャーが導入されるたびに変更される必要がある。データレスＶＨＤを使用することは、システムが、データレスＶＨＤ上でソースと同一のファイルシステムバージョンを使用すること、およびカスタムのフォーマットとのいかなる互換性問題にも対処することを回避することを可能にする。
【００２６】
[0029]回復中のデータ転送を最適化するのに、ソースデータが完全に利用可能であるか、部分的に利用可能であるかにかかわらず機能するように設計されたアルゴリズムが提供され得る。このアルゴリズムは、以下、すなわち、１）ユーザーが、ソースデータのより古いバージョンを獲得する必要があるシナリオ、２）ユーザーが、データ破損より前の状態に戻る必要があるシナリオ、３）ユーザーが、障害または取り消しの後に回復を再開する必要があるシナリオ、４）ユーザーが、バックアップされたデータを、低帯域幅および／または大きい待ち時間の接続を介して回復ターゲットに回復させる必要があるシナリオを含む様々な異なるシナリオにおいて適用されることが可能である。
【００２７】
[0030]ユーザーのファイルのすべてを完全にダウンロードするのではなく、データ転送は、バックアップデータと合致しないソースデータの部分だけを回復することによって最適化される。バックアップセットの中のデータに関して、ならびに回復ターゲット上で既に利用可能であるデータに関してもチェックサム値が計算される。回復は、回復ターゲット上で既に利用可能である同一のチェックサムを有するデータブロックを有さないデータだけをダウンロードすることによって最適化される。また、このアルゴリズムは、データを代替のロケーションに回復させるために適用されることも可能である。この回復プログラムは、元のロケーションからの合致するデータブロックを（チェックサムが合致した場合）インテリジェントにコピーし、元のロケーションにおいて合致するチェックサムを有するブロックを有さないブロックに関してだけバックアップデータを使用する。これらの概念は、図２の方法２００、および図３の方法３００をそれぞれ参照して後段でより詳細に説明される。
【００２８】
[0031]前述したシステムおよびアーキテクチャーに鑑みて、開示される主題により実施され得る方法は、図２および図３の流れ図を参照して、よりよく理解されよう。説明を簡単にするため、これらの方法は、一連のブロックとして示され、説明される。しかし、特許請求される主題は、いくつかのブロックが、本明細書で示され、説明されるのとは異なる順序で、さらに／または他のブロックと同時に生じ得るので、これらのブロックの順序によって限定されないことを理解し、認識されたい。さらに、例示されるすべてのブロックが、後段で説明される方法を実施するのに要求されるわけではない可能性がある。
【００２９】
[0032]図２は、バックアップされたアイテムを、カスタムのスキーマを使用して探し出し、復元するための方法２００の流れ図を示す。次に、方法２００が、図１の環境１００の構成要素およびデータを頻繁に参照して説明される。
【００３０】
[0033]方法２００は、バックアップデータセットのなかでデータ検索およびデータ取得をもたらすように構成されたスキーマを規定する動作を含み、このスキーマは、各データベースアイテムに関する検索可能な属性を格納し、さらにファイルシステムを活用してバックアップセットのデータアイテムに関するファイルシステムメタデータを格納する（動作２１０）。例えば、カスタムのスキーマ１１０が、ユーザー１０５またはセットのユーザーによって規定されることが可能である。このスキーマは、バックアップデータセット１３１に関するデータ検索およびデータ取得をもたらすように設計され得る。このスキーマ自体、各データベースアイテム（例えば、ファイル、またはセットのファイル）に関する様々な検索可能な属性１１１を含む。このスキーマは、コンピューターシステム１０１上のローカルファイルシステムを使用して、様々なバックアップセットのデータアイテムに関するファイルシステムメタデータ１１２を格納することができる。
【００３１】
[0034]検索可能な属性は、データ部分がバックアップセットの中に最初に格納された時刻（すなわち、第１の回復ポイント）の指示を含み得る。検索可能な属性は、データ部分が最後にアクセスされた（またはデータアイテムが削除された）時刻（すなわち、最終回復ポイント）をさらに含み得る。このスキーマにアクセスして、任意の所与のデータアイテムが部分を成す或る範囲のバックアップセットを表示するユーザーインターフェースが、使用されることが可能である。このため、ユーザーは、このユーザーインターフェースにおいてデータアイテムを指定することが可能であり、このユーザーインターフェースは、アイテムが一部分を成すバックアップデータセットのリストまたは範囲を表示することが可能である。
【００３２】
[0035]ファイルシステムメタデータ１１２は、親情報およびファイル名情報を含み得る。親情報は、ディレクトリーおよびサブディレクトリーを含むドライブ情報およびパス情報を含み得る。一部の実施形態において、親情報は、４００文字より大きいデータパスに関して異なるファイルに分割されることが可能である。このように２つの部分に分割されたパス、２つの部分のうちの第１の部分は、事前定義されたデータ長に長さが制限される。この長さは、４００文字であってもよく、実質的に、他の任意の文字数であってもよい。親情報は、親の下に格納されたすべてのファイルに関して１回だけ格納される。データパス冗長性を回避することは、効率を高める。親情報とファイル名情報は、別々のテーブルの中に格納されてもよい。
【００３３】
[0036]一部の事例において、ファイルシステムメタデータ１１２は、データレス仮想ハードドライブの中に格納される。前述したとおり、データレス仮想ハードドライブは、対応するメタデータおよび属性を伴って、ただし、実際のデータファイルのデータを格納することなしに、作成されたデータファイルを格納するように構成される。データ回復中、データレス仮想ハードドライブがマウントされ、さらにファイルシステムアプリケーションプログラミングインターフェース（ＡＰＩ）が、回復されるべき（バックアップデータセット１３１から）データアイテムに関するメタデータを抽出するように実装されることが可能である。
【００３４】
[0037]図２に戻ると、方法２００が、バックアップデータセットのうちの少なくとも１つのなかで１つまたは複数のデータアイテムを見つけ出す要求を受け取る動作を含む（動作２２０）。例えば、要求受信モジュール１１５が、指定された或るデータアイテムがバックアップされたデータセット１３１のなかで見つけ出されることを要求するデータ要求１０６をユーザー１０５から受け取ることが可能である。スキーマ１１０が、回復ポイント特定モジュールによって、回復ポイント特定モジュールが、格納された検索可能な属性１１１から、バックアップデータセットのなかでいずれの回復ポイント１３２が要求されるデータアイテムを含むかと特定することができるようにアクセスされることが可能である（動作２３０）。例えば、或るファイルがバックアップＢ２５〜Ｂ５０の中に含められており、バックアップＢ５０が、そのファイルの最新バージョンを含んでいた場合、回復ポイント特定モジュールは、データ復元モジュール１２５に回復ポイントＢ２５〜Ｂ５０を送り、すると、モジュール１２５は、要求されるデータアイテム１２６を、バックアップセット内の特定された（複数の）回復ポイントから復元する（動作２４０）。このため、スキーマ１１０は、最小限の量のデータが格納されることを可能にし、さらにバックアップされた特定のアイテムが効率的に検索され、回復されることを可能にする。
【００３５】
[0038]図３は、回復データを効率的に転送するための方法３００の流れ図を示す。次に、方法３００が、図４の環境４００の構成要素およびデータを頻繁に参照して説明される。
【００３６】
[0039]方法３００は、データバックアップのセットの中の指定された回復ポイントから回復されるべき１つまたは複数のバックアップデータアイテムの指示をユーザーから受け取る動作を含む（動作３１０）。例えば、クライアントコンピューターシステム４１０が、ユーザー４０５からデータ回復要求４０６を受け取ることが可能である。このデータ回復要求は、バックアップされたデータアイテム４３１内の指定された回復ポイントから回復されるべき様々なバックアップデータアイテム４０７を指定することが可能である。バックアップされたデータアイテムは、クライアントコンピューターシステムによってアクセスされ得る（またはクライアントコンピューターシステムに直接に接続された）データストア４３０の中に格納されることが可能である。
【００３７】
[0040]また、方法３００は、ユーザーによって指定されたバックアップデータアイテムのそれぞれに対応するチェックサムデータを計算する動作も含む（動作３２０）。例えば、チェックサムコンピューティングモジュール４１０が、それぞれのユーザーによって指定されたバックアップデータアイテム４０７に対応するチェックサム４１１を計算することが可能である。この計算されたチェックサムは、異なるチェックサムが異なるバージョンのデータアイテムに対応するようにバージョン管理されることが可能である。バックアップデータもまた、異なる複数のバージョンのデータアイテムがバックアップされ得るようにバージョン管理されることが可能である。これらのバックアップされた異なるデータアイテムのそれぞれは、そのデータアイテム独自の一意の（バージョン管理された）チェックサムを有する。これらのバージョン管理されたチェックサムが使用される場合、バックアップデータは、指定されたバックアップデータバージョンから復元され得る。このようにして、所与のバージョンと関係するすべてのファイルが一緒に復元されることが可能である。
【００３８】
[0041]方法３００は、ユーザーによって指定されたバックアップデータファイルの計算されたチェックサムデータを、ユーザーのコンピューターシステム上に既にあるデータアイテムに関連するチェックサムデータと比較して、バックアップデータアイテムのいずれのセグメントがユーザーに復元されるべきかを特定する動作を含む（動作３３０）。例えば、チェックサム比較モジュール４１５が、計算されたチェックサム４１１を１つまたは複数の既存のチェックサム４１２と比較することが可能である。既存のチェックサムは、ユーザーのコンピューター上に既にあるデータファイルに対応することが可能である。この比較を使用して、いずれのデータアイテムがユーザーのコンピューター上に既にあるかが特定され得る。次に、いずれのデータファイルがユーザーのコンピューター上に既存ではないかが特定されると、ユーザーのコンピューターシステム上にチェックサムが存在しなかったバックアップされたデータアイテム（例えば、選択されたデータアイテム４３２）が、バックアップされたデータアイテム４３１から復元されることが可能である（動作３４０）。このため、同一のチェックサムを有するデータブロックを有さないデータだけが、ユーザーのコンピューターシステムにダウンロードされる。
【００３９】
[0042]方法３００は、ユーザーのデータが完全に回復されるように、受け取られたバックアップデータアイテムをユーザーの既存のデータアイテムと組み合わせる動作をさらに含む（動作３５０）。選択されたデータアイテム４３２が受け取られると、データ組み合わせモジュール４２０が、既存のデータを受け取られたデータと組み合わせて、ユーザーの完全に復元されたデータ４２１を作成する。一部の事例において、復元されたデータアイテムは、データボリューム全体に関するデータファイルを含む。データ回復中、システム障害のために回復が取り消された、またはそれ以外で停止された場合、回復は、障害または取り消しのポイントから再開されることが可能である。さらに、バックアップデータは、ユーザーのコンピューターシステム上の元のロケーション以外の他のロケーションに復元されてもよい。例えば、バックアップデータは、そのデータの最初のバックアップがとられたコンピューターシステムとは異なる他の（場合により、遠隔の）コンピューターシステムに復元されてもよい。
【００４０】
[0043]したがって、バックアップされたアイテムを、カスタム生成されたスキーマを使用して探し出し、復元する方法、システムおよびコンピュータープログラム製品が提供される。さらに、ユーザーのコンピューターシステム上に既存ではないデータだけを転送することによって、回復データを効率的に転送する方法、システム、およびコンピュータープログラム製品が提供される。
【００４１】
[0044]本発明は、本発明の趣旨または本質的な特徴を逸脱することなく、他の特定の形態で具現化されることが可能である。説明される実施形態は、すべての点で例示的であるに過ぎず、限定的ではないものと見なされるべきである。したがって、本発明の範囲は、以上の説明によってではなく、添付の特許請求の範囲によって示される。特許請求の範囲の均等の意図および範囲に含まれるすべての変更が、特許請求の範囲に包含されるものとする。
【図１】
2014526748.tif 000003
【図２】
2014526748.tif 000004
【図３】
2014526748.tif 000005
【図４】
2014526748.tif 000006
【国際調査報告】
2014526748.tif 000007
2014526748.tif 000008