(57)【特許請求の範囲】
【請求項１】
バックアップ環境においてストレージ位置の組の間でのバックアップデータのインテリジェントな割り当てを容易にするシステムであって、
コンピューター実行可能命令を保持するメモリーに結合されるプロセッサーを具備し、前記プロセッサーは、
１つ以上のストレージ位置によって格納されるバックアップデータの特性及び前記１つ以上のストレージ位置の特性を識別する監視コンポーネントであって、前記１つ以上のストレージ位置の特性は、ストレージ位置の帯域幅の利用又はそれぞれのストレージ位置間でのデータの送信のための予測される待ち時間のうちの少なくとも１つを含む、監視コンポーネントと、
前記バックアップデータの特性及び前記ストレージ位置の特性に従って前記１つ以上のストレージ位置にわたってバックアップデータの仮想的な層を実施する階層コンポーネントであって、復元の際の記憶装置の利用及び待ち時間を低減しつつ利用可能性を保証するために前記１つ以上のストレージ位置間でバックアップデータを分配し、前記バックアップデータへのアクセスの頻度及び前記１つ以上のストレージ位置の予測される待ち時間の各々は、前記１つ以上のストレージ位置間でバックアップデータを分配するために利用される、階層コンポーネントと
を実行し、
前記階層コンポーネントは、ファイルを複数のセグメントに分割して前記複数のセグメントのうちの第１の部分をクラウドストレージ位置に分配し前記複数のセグメントのうちの第２の部分を前記クラウドストレージ位置とは別のピア・ツー・ピアストレージ位置に分配することによって、前記クラウドストレージ位置及び前記ピア・ツー・ピアストレージ位置の各々の間でバックアップデータを分配し、
前記監視コンポーネントは、前記バックアップデータの特性を確認するためにバックアップデータを分析するデータ評価コンポーネントを含み、前記バックアップデータの特性は前記１つ以上のストレージ位置間で分配されるバックアップデータのそれぞれのブロックの複製コピーの数を含むシステム。
【請求項２】
前記監視コンポーネントは、前記１つ以上のストレージ位置の特性を決定するために前記１つ以上のストレージ位置を観察するマシン評価コンポーネントを含む請求項１に記載のシステム。
【請求項３】
前記階層コンポーネントは、前記バックアップデータ又は前記ストレージ位置の特性に少なくとも部分的に基づいて、１つ以上のストレージノードに対してバックアップデータのブロックを複製する分配コンポーネントを含む請求項１に記載のシステム。
【請求項４】
前記階層コンポーネントはインデックスを保持するインデックスコンポーネントを含み、前記インデックスコンポーネントは、分配の決定が前記階層コンポーネントによって与えられる場合に前記インデックスにおいてエントリーを追加すること、削除すること、又は修正することのうち少なくとも１つを行う請求項１に記載のシステム。
【請求項５】
前記インデックスは、バックアップバージョンと前記バックアップバージョンが分配されたストレージ位置との間の関係のリストを含む請求項４に記載のシステム。
【請求項６】
前記バックアップデータの特性は、前記バックアップデータへのアクセスの頻度、前記バックアップデータの複製コピーの数、又は前記バックアップデータの作成以来の時間のうちの少なくとも１つを含む請求項１に記載のシステム。
【請求項７】
頻繁にアクセスされるバックアップデータは復元される可能性が最も高いと推論され、バックアップデータは、特定の期間内に所定の回数アクセスされる場合に、頻繁にアクセスされたとされる請求項６に記載のシステム。
【請求項８】
前記階層コンポーネントは、頻繁にアクセスされるデータを、最小の待ち時間及び最大の利用可能性を有するストレージ位置へ分配する請求項７に記載のシステム。
【請求項９】
前記階層コンポーネントは、頻繁にアクセスされるバックアップデータのコピーを、１つ以上のストレージ位置に対して複製する請求項７に記載のシステム。
【請求項１０】
まれにアクセスされるバックアップデータは復元される可能性が最も低いと推論され、バックアップデータは、特定の期間内に所定の回数よりも少ない回数アクセスされる場合に、まれにアクセスされるとされる請求項６に記載のシステム。
【請求項１１】
前記階層コンポーネントはまれにアクセスされるバックアップデータを遠隔ストレージ位置に割り当てる請求項１０に記載のシステム。
【請求項１２】
前記ストレージ位置の特性は、それぞれのストレージ位置の健全さ、ストレージ位置の記憶容量、又はストレージ位置の利用可能性を含む請求項１に記載のシステム。
【請求項１３】
前記階層コンポーネントは、前記１つ以上のストレージ位置の特性に基づいてストレージ位置又はクライアントマシンのうちの少なくとも１つについての故障の可能性を検出する請求項１に記載のシステム。
【請求項１４】
前記階層コンポーネントは、故障の発生の前にバックアップデータを積極的に割り当てる請求項１３に記載のシステム。
【請求項１５】
前記１つ以上のストレージ位置は１つ以上のピアストレージ位置及びクラウドストレージ位置の両方を含む請求項１に記載のシステム。
【請求項１６】
前記階層コンポーネントは、クラウドストレージ位置に対応するストレージ位置よりもピアに対応するストレージ位置に対してより高いレベルの優先権を適用することを通じて、前記バックアップデータの仮想的な層を作成する請求項１５に記載のシステム。
【請求項１７】
分散されたハイブリッドバックアップ環境においてバックアップ情報をインテリジェントに階層化する方法であって、
ハイブリッドバックアップ環境に含まれるストレージ位置の組にわたってバックアップ情報の仮想的な層を作成する動作であって、前記ハイブリッドバックアップ環境はピア・ツー・ピアストレージ位置及びクラウドストレージ位置の両方を含む、動作と、
バックアップ情報の特性並びに前記ピア・ツー・ピアストレージ位置及び前記クラウドストレージ位置の特性を確認するために前記バックアップ情報並びに前記ピア・ツー・ピアストレージ位置及び前記クラウドストレージ位置を監視する動作であって、前記バックアップ情報の特性は、前記バックアップ情報のアクセス頻度、利用可能性及び作成以来の時間の各々を含み、前記ピア・ツー・ピアストレージ位置及び前記クラウドストレージ位置の特性は、ストレージ位置の帯域幅の利用又はそれぞれのストレージ位置間でのデータの送信のための予測される待ち時間のうちの少なくとも１つを含む、監視する動作と、
前記バックアップ情報の復元の際のストレージコスト及び待ち時間を最小化しつつ前記バックアップ情報の利用可能性を保証するために、前記バックアップ情報の特性並びに前記ピア・ツー・ピアストレージ位置及び前記クラウドストレージ位置の特性に基づいて前記仮想的な層にわたってバックアップ情報を動的に再割り当てする動作であって、前記再割り当ては、オフピーク中に、特定の期間内に所定の回数より少ない回数アクセスされるバックアック情報を、ピア・ツー・ピアバックアップシステム内のストレージ位置からクラウドバックアップシステム内のストレージ位置へ移動することを含む、動作と
を含む動作を実行するために、コンピューター読み取り可能な記憶媒体に格納されたコンピューター実行可能命令を実行するプロセッサーを使用するステップ
を含み、
前記バックアップ情報は、ファイルを複数のセグメントに分割して前記複数のセグメントのうちの第１の部分をクラウドストレージ位置に分配し前記複数のセグメントのうちの第２の部分を前記クラウドストレージ位置とは別のピア・ツー・ピアストレージ位置に分配することによって、前記クラウドストレージ位置及び前記ピア・ツー・ピアストレージ位置の各々の間で再割り当てされ、
前記バックアップ情報の特性は前記ピア・ツー・ピアストレージ位置及び前記クラウドストレージ位置の間で分配されるバックアップ情報のそれぞれのブロックの複製コピーの数を含む方法。
【請求項１８】
前記バックアップ情報の特性に基づいて、前記バックアップ情報を、ホットなデータ又はコールドなデータのうちの少なくとも１つとして指定するステップであって、ホットなデータは特定の期間内に所定の回数アクセスされるバックアップ情報であり、コールドなデータは特定の期間内に所定の回数より少ない回数アクセスされるバックアップ情報である、ステップと、
復元クライアントにとって最適な場所を提供するストレージ位置へホットなデータを割り当てるステップであって、最適な場所は、前記復元クライアントに近いネットワーク上のストレージ位置に前記ホットなデータを格納することによって提供される、ステップと、
最小のコストで記憶を提供する遠隔ストレージ位置へコールドなデータを割り当てるステップと
をさらに含む請求項１７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バックアップデータのインテリジェント階層に関する。
【背景技術】
【０００２】
[0001]計算装置がより普及して一般の人々の間で広く使用されるようになるにつれて、そのような装置によって生成され利用されるデータの量は急速に増加してきている。例えば、コンピューティング技術及びデータストレージ技術における最近の進歩は、最も制限のあるフォームファクターの装置でさえ、文書の編集、メディア処理などのデータの不足した様々なアプリケーションのために大量の情報を格納し処理することを可能にした。さらに、通信技術の最近の進歩によって、計算装置は、高速でデータを通信することができることができる。これらの進歩は、他の技術の中でも、例えば、ネットワーク上の複数の位置における計算装置を使用して行うことができる分散コンピューティングサービスの実施につながった。また、そのような進歩はネットワークベースのバックアップなどのサービスの実施を可能にしてきており、それは、計算装置のユーザーがネットワーク上の離れた位置における計算装置に関連付けられるデータの１つ以上のバックアップコピーを維持することを可能にする。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
[0002]既存のシステム及び／又はデータバックアップソリューションによって、ユーザーは、元のソースから離れた位置及び／又は媒体にバックアップ情報を格納することができる。したがって、例えば、計算装置からのデータは、ハードドライブから、テープドライブ、外部のハードドライブなどの外部の媒体にバックアップすることができる。しかし、ネットワークベースのバックアップ及び／又はバックアップデータを格納するために物理的に離れた位置を提供するために利用することができる他のソリューションの実施においては、ユーザーのマシンとリモートストレージ位置との間でのユーザーデータの送信及び復元に関連付けられるコストと複雑さは、バックアップシステムの有用性を大幅に制限し得る。例えば、バックアップデータが遠隔ネットワーク位置において格納される場合、ファイル及び／又はシステムイメージの元のコピーのそれぞれのバージョンに関連したデータはリモートストレージに送信することができ、それぞれのバージョンは、後に復元のために検索する（取り出す）ことができる。しかし、かなり大きな量のデータは、一般に、そのような例においてはネットワークを介して送信され、それによって、多くの帯域幅を消費する。前述のことを考慮すると、改善された効率を備えたネットワークベースのバックアップ技術を実施することが望ましい。
【課題を解決するための手段】
【０００４】
[0003]以下は、本明細書に記載されたいくつかの態様についての基本的な理解を提供するために、本発明の単純化された概要を示す。この概要は特許請求された主題の広範囲にわたる概観ではない。特許請求された主題の重要な要素又は重大な要素を識別するようには意図されず、本発明の範囲を表現するようにも意図されない。その唯一の目的は、特許請求された主題についてのいくつかの概念を、後に示されるより詳細な説明に対する前置きとして、単純化された形式で示すことである。
【０００５】
[0004]本発明は、ネットワークベースのバックアップアーキテクチャーにおける記憶位置にわたってバックアップ情報のインテリジェントな分配を容易にするシステム及び／又は方法論に関連する。バックアップアーキテクチャーにおける記憶位置にわたるバックアップ情報の仮想階層化（virtual layering）を実施することができる。記憶位置及び／又は層間でバックアップ情報を動的に再割り当てするために統計的モデルが利用されて、データの利用可能性、復元の際の最小の待ち時間、及び復元の際の最小の帯域幅利用を保証する。バックアップ情報は、アクセス傾向を時間にわたって発見するために監視することができる。さらに、記憶位置は、健康、記憶容量、帯域幅などを識別するために監視することができる。モニタリングによって集められた情報は、分配の決定へとデータ寿命を分解するためにアクセスパターン及び／又は機械学習機構に関連するヒューリスティックス（発見的問題解決）に適用することができる。別の例において、機械学習技術は、故障又は他の出来事に先立ってバックアップ情報を再割り当てすることができるように、記憶位置における故障又は他の変化を積極的に検出するために適用することができる。
【０００６】
[0005]１つの態様によれば、バックアップデータがネットワーク内又はインターネットワーク（例えば、「クラウド」）内のグローバルな位置のほか１つ以上のピアに保持することができる場合、ハイブリッドバックアップアーキテクチャーを使用することができる。従って、いくらか又はすべてのバックアップデータはクラウド又は近くのピアのいずれかから得ることができ、それにより、復元動作に関連した待ち時間及び帯域幅の消費を低減することができる。１つの例において、バックアップ情報の格納及び／又は取り出し（検索）のために利用されるべき位置の選択は、ネットワーク位置の利用可能性、ネットワークトポロジー、位置リソースなどであるがこれらに限定されないファクターに基づく、インテリジェントで自動化された方法で選択することができる。
【０００７】
[0006]以下の記載及び添付の図面は、特許請求された主題についてのある実例となる態様を詳細に述べる。しかし、これらの態様は、本発明の原理が使用され得る様々な方法のうちのほんのいくつかを示すものであり、特許請求された主題は、すべてのそのような態様及びそれらの均等物を含むように意図される。図面とともに考慮すると、特許請求された主題の他の利点及び新規な特徴が、本発明についての以下の詳細な説明から明らかとなる。
【図面の簡単な説明】
【０００８】
【図１】[0007]様々な態様による、記憶位置にわたるデータのインテリジェントな再分配（re-distribution）を使用することを容易にする例示的なシステムのブロック図を示す。
【図２】[0008]様々な態様による、バックアップ情報を生成することを容易にする例示的なシステムのブロック図を示す。
【図３】[0009]１つ以上の態様による、バックアップ情報と記憶位置についての観察及び分析を容易にする例示的なシステムのブロック図を示す。
【図４】[0010]様々な態様による、記憶位置へのバックアップ情報のインテリジェントな分配を容易にする例示的なシステムのブロック図を示す。
【図５】[0011]本明細書に記載された様々な態様に関して利用することができる例示的なネットワークアーキテクチャーのブロック図を示す。
【図６】[0012]様々な態様による、ハイブリッドクラウドベース及びピア・ツー・ピアのバックアップアーキテクチャーにおいて復元を行うことを容易にする例示的なシステムのブロック図を示す。
【図７】[0013]様々な態様による、１つ以上のストレージノード上で実施されるデータの層間でデータを再割り当てする例示的な方法論を示す。
【図８】[0014]様々な態様による、データの使用情報に基づいてバックアップデータを再割り当てする例示的な方法論を示す。
【図９】[0015]特許請求された主題の新規な態様は使用することができる例示的なネットワーキング環境を示す。
【図１０】[0016]特許請求された主題に従って使用することができる例示的な動作環境を示す。
【発明を実施するための形態】
【０００９】
[0017]特許請求された主題は図面に関して記載され、全体にわたって、同様の要素を指すために同様の参照数字が使用される。以下の記載においては、説明の目的のために、多数の特定の詳細が、本発明についての完全な理解を提供するために述べられる。しかし、特許請求された主題がこれらの特定の詳細なしに実施され得ることは明白であろう。他の例では、周知の構造及び装置が、本発明について記述することを容易にするために、ブロック図の形式で示される。
【００１０】
[0018]本出願において使用されるとき、「コンポーネント」、「システム」、「データストア」、「クラウド」、「ピア」、「スーパーピア」、「クライアント」などの用語は、コンピューター関連のエンティティー、ハードウェア、ハードウェア上で実行されるソフトウェア、及び／又はファームウェアを指すように意図される。例えば、コンポーネントは、プロセッサー上で実行するプロセス、オブジェクト、実行ファイル、プログラム、関数、ライブラリー、サブルーチン、及び／又はコンピューターもしくはソフトウェアとハードウェアとの組み合わせであってもよい。例として、サーバー上で実行するアプリケーションとサーバーの両方がコンポーネントであってもよい。１つ以上のコンポーネントがプロセス内に存在してもよく、コンポーネントは、１つのコンピューターに局在化され及び／又は２つ以上のコンピューター間に分散されてもよい。
【００１１】
[0019]様々な態様は、多くのコンポーネント、モジュールなどを含んでもよいシステムの観点から示される。様々なシステムが、追加のコンポーネント、モジュールなどを含んでもよく、及び／又は図に関して議論される、コンポーネント、モジュールなどのすべてを必ずしも含まなくともよいことが理解され認識されるべきである。これらの手法の組み合わせもまた使用されてもよい。本明細書において開示された様々な態様は、タッチスクリーン表示装置技術及び／又はマウス−キーボードタイプのインターフェースを利用するデバイスを含む電気装置上で行うことができる。そのような装置の例は、コンピューター（デスクトップ及びモバイル）、スマートフォン、携帯情報端末（ＰＤＡ）、及び有線及び無線の両方の他の電子装置を含む。
【００１２】
[0020]さらに、特許請求された主題は、開示された主題を実施するコンピューターを制御するソフトウェア、ファームウェア、ハードウェア又はそれらの任意の組み合わせを生成する標準的なプログラミング及び／又はエンジニアリング技術を使用して、方法、装置又は製品として実施されてもよい。本明細書において使用されるとき、「製品」という用語は、任意のコンピューター読み取り可能な装置、キャリア又は媒体からアクセス可能なコンピュータープログラムを包含するように意図される。例えば、コンピューター読み取り可能な媒体は、磁気記憶装置（例えば、ハードディスク、フロッピーディスク、磁気ストリップ．．．）、光ディスク（例えば、コンパクトディスク（ＣＤ）、デジタル・バーサタイル・ディスク（ＤＶＤ）．．．）、スマートカード及びフラッシュメモリー装置（例えば、カード、スティック、キードライブ．．．）を含んでいてもよいが、これらに限定されない。また、電子メールを送受信したりインターネット又はローカルエリアネットワーク（ＬＡＮ）などのネットワークにアクセスしたりする際に使用されるものなどの、コンピューター読み取り可能な電子データを運ぶために、搬送波を使用することができることが認識されるべきである。もちろん、当業者であれば、特許請求された主題の範囲又は趣旨から逸脱することなく、この構成に対して多くの修正がなされてもよいことを認識するであろう。
【００１３】
[0021]さらに、本明細書において、「例示的」という語は、例えば、例又は実例として役立つことを意味するように使用される。「例示的」なものとして本明細書に記載されたいかなる態様又は設計も、他の態様又は設計に対して好ましいものであるとか有利であるとは、必ずしも解釈すべきでない。より正確に言えば、例示的という語の使用は、具体的な方法で概念を示すように意図される。本出願の中で使用されるとき、「又は」という語は、排他的な「又は」ではなく、包括的な「又は」を意味するように意図される。すなわち、他の方法で指定されないか又は文脈から明らかでない限り、「ＸはＡ又はＢを使用する」とは、自然な包括的な置換のうちの任意のものを意味するように意図される。すなわち、ＸがＡを使用するか、ＸがＢを使用するか、又はＸがＡとＢの両方を使用する場合、「ＸはＡ又はＢを使用する」ということは、前述の例のうちのいずれにおいても満たされる。さらに、「１つの」という冠詞は、本出願及び添付の特許請求の範囲において使用されるとき、他の方法で指定されないか又は単数形を示すことが文脈から明らかでない限り、一般に、「１つ以上」を意味するように解釈されるべきである。
【００１４】
[0022]ここで図面に移ると、図１は、様々な態様による、記憶位置にわたってデータのインテリジェントな再分配を使用することを容易にするシステム１００を示す。１つの例において、システム１００は、システム１００を実施する及び／又はそうでなければシステム１００に関連付けられるクライアントマシン上で、ファイル、システムイメージ及び／又は他のデータをバックアップするのに利用することができる。ある態様では、クライアントマシンは、パーソナルコンピューター、ラップトップコンピューター、サーバー、携帯デジタルアシスタント（ＰＤＡ）、モバイル装置、スマートフォン、携帯電話、携帯ゲーム装置、メディアプレイヤー、又はデータを格納し、操作し及び／もしくは転送することができる任意の他の適切な計算装置であってもよい。
【００１５】
[0023]１つの態様によれば、システム１００は、クライアントマシンが関連付けられるネットワーク又はインターネットワーク上の１つ以上の遠隔ストレージ位置においてクライアントマシンからのバックアップ情報を格納するネットワークベース又はオンラインのバックアップソリューション（例えば、さらに詳細に以下に記載されるようなクラウドバックアップシステム）に関して利用することができる。従来のオンラインバックアップソリューションは、遠隔ストレージ位置において様々な時点でバックアップクライアントから得られたファイルの組を保持することにより動作する。続いて、復元は、要求されるように記憶位置から１つ以上のファイルを取り出すことにより行われる。データとシステムサイズが成長するにつれて、バックアップデータの送信における空間の節約及び帯域幅の節約の必要性は同様に増す。
【００１６】
[0024]データのブロック及び／又は単一のインスタンスファイル（instancing files）を非複製化（非重複化、de-duplication）することはより効率的な記憶装置の利用を可能にするが、さらなる最適化を実施することができる。例えば、ストレージコストを下げ、位置のネットワークのまわりでの送信データに関連した帯域幅コストを下げ、データの復元に関連した待ち時間を低減する、最適化を実施することができる。仮想的な層又はデータの階層の構築及び維持を容易にする、適応的及び／又は積極的な機構を使用することができる。データの階層は、インテリジェントに分配することができるほか、最適な配置を保証するために継続して調整することができる。例えば、データ及び／又は記憶位置は、ストレージコスト、復元の際の待ち時間、及び復元のための帯域幅を同時に低減しつつ、データの利用可能性を保証するべくデータの動的な再割り当てを可能にするために監視することができる。
【００１７】
[0025]従って、利用可能性を増加させるほか、復元についてより低い資源利用及びコストを提供するために、システム１００は、分配されたバックアップソリューションにおいてデータをインテリジェントに階層化することができる。特に、ユーザーがクライアントマシン上で、バックアップされるべきデータ（例えば、ファイル、システムイメージなど）の一部を選択する場合、監視コンポーネント１０２はデータの一部の評価を開始することができる。さらに、監視コンポーネント１０２は、記憶位置１０６において格納された他のバックアップデータの特性（プロパティ）を継続的に評価し追跡する。１つの例において、監視コンポーネント１０２は、バックアップデータが生成されたときから、バックアップデータ及び／又は時間のアクセス頻度を観察する。別の例において、監視コンポーネント１０２は、バックアップデータの利用可能性を追跡することができる。例えば、監視コンポーネント１０２は、記憶位置１０６にわたって分散したバックアップデータの一部の複製（レプリカ）の数を観察することができる。
【００１８】
[0026]別の態様によれば、監視コンポーネント１０２は、特性を追跡するために記憶位置１０６を監視することができる。例えば、特性は、それぞれの記憶位置の健全さ、記憶位置の記憶容量（例えば、全体及び／又は利用可能な容量）、記憶位置の利用可能性（例えば、休止時間（ダウンタイム）、アップタイムなど）、記憶位置の帯域幅利用、又はそれぞれの記憶位置間のデータの送信のための予測される待ち時間をを含み得る。記憶位置に関するそのような情報は、記憶位置に対する変化に基づく、バックアップデータ及び／又は適応性のある分配の積極的な再割り当てを容易にすることができる。
【００１９】
[0027]別の態様によれば、階層コンポーネント１０４は、記憶位置１０６にわたるバックアップデータの仮想的な層を実施するために利用することができる。１つの例において、階層コンポーネント１０４は、バックアップデータを階層化するために、ヒューリスティックス、機械学習、及び／又は他の適切な人工知能技術を使用することができる。別の例において、仮想的な層は、バックアップデータの場所（locality）が優先されるように、起源位置（origin location）（例えば、復元クライアントマシン）に関連して構築することができる。例えば、（例えば、監視コンポーネント１０２によって決定されるような）頻繁にアクセスされるより新しいバックアップデータは、復元に関連した待ち時間を低減するために、復元クライアントマシンに近い近隣のネットワークにおける記憶位置に格納することができる。より古い及び／又はまれにアクセスされるバックアップデータは、より遠隔にあるがより安価な又は記憶容量がより豊富な（例えば、クラウド）記憶位置に格納することができる。別の態様では、階層コンポーネント１０４は、アクセス又は復元される可能性が最も高いデータ（例えば、最近アクセスされたか又は頻繁に生成されるバックアップデータ）の利用可能性を強調することができることが認識されるべきである。例えば、待ち時間及び帯域幅の低減に加えて、階層コンポーネント１０４は、豊富な記憶を備えた遠隔地において復元されるであろうデータのコピーを格納することができる。したがって、最適な場所を備えた記憶位置が利用不能になる場合でさえ、バックアップデータは利用可能なままであり得る。階層コンポーネント１０４が、ストレージコストを利用可能性とバランスさせるためにより最適でない位置に格納されたコピーの数を制御することができることが認識されるべきである。
【００２０】
[0028]別の態様では、階層コンポーネント１０４はバックアップデータを積極的に再割り当てすることができる。例えば、クライアントマシンが致命的な故障又は致命的な故障のか差し迫った脅威を経験していることを検出するための、監視コンポーネント１０２による記憶位置の監視。これに応答して、階層コンポーネント１０４は、最適な場所を提供し、クライアントマシンの復元に際しての待ち時間を低減するために、仮想的な層内の記憶位置へとクライアントマシンを復元するのに必要なデータを再割り当てすることができる。
【００２１】
[0029]別の例において、階層コンポーネント１０４は、監視コンポーネント１０２によって集められた情報を利用することができる。階層コンポーネント１０４は、ホットなデータ又はコールドな（cold）データとしてバックアップデータを指定することができる。ホットなデータとは、頻繁にアクセスされ及び／又は最近生成されたバックアップデータ（例えば、最近バックアップされたデータ）を指す。階層コンポーネント１０４は、ホットなデータが復元される可能性がより高いと推論し、したがって、最も近い場所、復元するための最小の待ち時間及び／又は最も高い利用可能性に対応する層にそのようなデータを割り当てることができる。コールドなデータは、対照的に、まれにアクセスされ及び／又はより古いバックアップ情報を指してもよい。階層コンポーネント１０４は、コールドなデータが復元される可能性が最も低いと推論し、場所の観点からあまり最適でない位置にそのようなデータを分配し安価な記憶を提供することができる。
【００２２】
[0030]システム１００が任意の適切な及び／又は必要なインターフェースコンポーネント（図示せず）を含んでもよく、監視コンポーネント１０２及び階層コンポーネント１０４を実質的に任意のアプリケーション、オペレーティングシステム及び／もしくはデータベースシステムへと並びに／又は互いと統合するために、様々なアダプター、コネクター、チャンネル、通信パスなどを提供することが理解されるべきである。さらに、インターフェースコンポーネントは、システム１００に関連付けられる監視コンポーネント１０２、階層コンポーネント１０４、記憶位置１０６及び／又は任意の他のコンポーネントとのインタラクション及びそれらの間でのインタラクションを提供する、様々なアダプター、コネクター、チャンネル、通信パスなどを提供することができる。
【００２３】
[0031]ここで図２を参照すると、様々な態様によるバックアップ情報を生成するシステム２００が示される。図２が示すように、システム２００はバックアップコンポーネント２０２を含んでもよく、それは、バックアップクライアントマシンに関連付けられるファイル、システムスナップショット、及び／又は他の情報のバックアップコピーの記憶を生成し容易にすることができる。１つの例において、バックアップコンポーネント２０２は、バックアップされるべきクライアント情報が配置されるマシン上に存在することができ、及び／又はそのようなマシンから動作することができる。加えて又は代替的に、バックアップコンポーネント２０２は、（例えば、リモートに実行されるコンポーネントのような）異種の計算装置上に存在することができる。１つの例において、バックアップコンポーネント２０２は、１つ以上のイベント（例えば、ファイルの修正）が引き起こされる際、及び／又は任意の他の適切な起動基準（activating criteria）に基づいて、一定の時間間隔で、ファイルの組及び／又は他の情報をバックアップするために利用することができる。
【００２４】
[0032]１つの態様によれば、ファイルのバックアップは、システム２００を実施するのに必要な帯域幅及び／又は記憶空間（storage space）の量を減らすために、バックアップコンポーネント２０２によって付加的な（incremental）やり方で行うことができる。これは、例えば、最初に、セグメンテーションコンポーネント２０４を使用して、バックアップされるべきファイルをそれぞれのファイルセグメント（例えば、ブロック、塊（chunks）など）へ分割することにより、達成することができる。１つの例において、ファイルのセグメンテーション又は塊にすること（chunking）は、それぞれのファイルセグメントの非複製化（非重複化、de-duplication）を容易にする方法でセグメンテーションコンポーネント２１２によって行うことができる。例えば、特定の限定的でない例において、セグメンテーションコンポーネント２０４は、ファイルの第１のバージョンを、一様な及び／又は一様でないブロックの組へと分割することができる。別の例において、ファイルのバージョンは、バージョン間の固有のブロックを識別するために同様に分割することができる。例えば、ファイルに対する修正を検出すると、セグメンテーションコンポーネント２０４は、第１のバージョンから第２のバージョンへ状態において異なる、ファイル中の任意のブロックが容易に識別可能であるように、第１のバージョンのセグメンテーションと一致する方法で、ファイルを再分割することができる。ファイルの更新されたバージョンにおいて固有のブロックが検出されると、セグメンテーションコンポーネント２０４は、ファイルに対応する新たな及び／又は変更されたブロックのほか、ファイルのそれぞれのバージョン間の変化に関連する他の情報の付加的な記憶を容易にすることができる。
【００２５】
[0033]ファイルに対応するブロック又はセグメントが生成されると、それぞれのファイル及び／又はファイル更新に対応する様々なブロックは、セグメント分配（distribution）コンポーネント２０６に提供することができる。セグメント分配コンポーネント２０６は、次に、１つ以上の記憶位置１０６間でブロックを分配することができる。記憶位置１０６は、例えば、ローカルネットワーク中のピアマシン、クラウドストレージサービス及び／もしくは別の適切なインターネットベースのストレージ位置、並びに／又は任意の他のストレージサイトに対応するか関連付けることができる。ネットワークストレージ位置間で情報を分配する技術はさらに詳細に以下に記載される。特定の限定的でない例として、ブロックは、均等なサイズ（例えば、４キロバイト（ｋｂ））に再構成することができる。しかし、任意の適切なブロックサイズを利用することができることが認識されるべきである。
【００２６】
[0034]図３は、１つ以上の態様による、バックアップ情報と記憶位置についての観察及び分析を容易にするシステム３００を示す。図３が示すように、システム３００は、記憶位置に関連した特性、特徴又は傾向に関連するデータを得るためにバックアップ情報及び／又は記憶位置を観察することができる、監視コンポーネント３０２を含んでもよい。取得されたデータは、記憶位置間でのバックアップデータのインテリジェントな分配を容易にするために使用することができる。さらに、データは、バックアップデータ又は記憶位置の変化に応答して、データについての適応性のある再割り当て及び積極的な移動（shifting）を容易にすることができる。
【００２７】
[0035]１つの態様によれば、監視コンポーネント１０２は、記憶位置１０６によって保持されたバックアップデータを分析するデータ評価コンポーネント３０２を含んでもよい。１つの例において、データ評価コンポーネント３０２は、個々のブロックへのアクセスを追跡するためにバックアップデータ（例えば、データのブロック）を監視することができる。アクセス追跡によって、データ評価コンポーネント３０２は、それぞれのデータのブロックについてのアクセス頻度を確認することができる。アクセス頻度が様々な期間にわたる場合があることが認識されるべきである。例えば、アクセス頻度は、１時間、１日、１週間、１か月などにわたって特徴づけることができる。さらに、アクセス頻度はデータのブロックの生成以来の総頻度（total frequency）として提供することができる。別の例において、データ評価コンポーネント３０２は、データのブロックの作成の時間を維持することができる。別の態様では、データ評価コンポーネント３０２は、バックアップデータのブロックの利用可能性を監視することができる。例えば、データ評価コンポーネント３０２は、記憶位置１０６間で分配されるバックアップデータのそれぞれのブロックの複製コピーの数を数えることができる。
【００２８】
[0036]別の態様によれば、監視コンポーネント１０２は、記憶位置１０６を分析するマシン評価コンポーネント３０４を含んでもよい。１つの例において、マシン評価コンポーネント３０４は、記憶位置１０６の特性を確認することができる。さらに、記憶位置１０６の特性は、時間にわたる変化を監視するために追跡することができる。特性は、それぞれの記憶位置の健全さ、記憶位置の記憶容量（例えば、全体の及び／又は利用可能な容量）、記憶位置の利用可能性（例えば、休止時間、アップタイムなど）、記憶位置の帯域幅利用、又はそれぞれの記憶位置間でのデータ送信のための予測される待ち時間を含んでもよい。記憶位置１０６の監視によって集められた情報は、故障の予測、及び低い待ち時間を備えた効率的な回復を有効にするために故障したマシンにとって最適な場所へバックアップデータを積極的に移動させることを容易にすることができる。さらに、情報は、待ち時間、ストレージコスト及び帯域幅コストを低減しつつ利用可能性を最大限にするバックアップデータの最適な配置を容易にすることができる。
【００２９】
[0037]ここで図４を参照すると、様々な態様による、記憶位置へのバックアップ情報のインテリジェントな分配を容易にするシステム４００が示される。１つの態様によれば、ハイブリッド・ピア・ツー・ピア（Ｐ２Ｐ）及びクラウドベースのアーキテクチャーはシステム４００によって利用することができる。例えば、階層コンポーネント１０４は記憶位置１０６にわたってバックアップ情報を広めるか又は再割り当てすることができる。記憶位置１０６は、ピア４０２及び／又はスーパーピア４０４などの信頼されるピアのほかクラウド記憶位置４０６を含んでもよい。さらにシステム４００に示されるように、ピア４０２、スーパーピア４０４、及び／又はクラウドストレージ４０６は、互いの間で、バックアップデータのブロック及び／又は他のバックアップ情報を通信するようにさらに動作可能であってもよい。さらに、階層コンポーネント１０４、システム４００の任意の他のコンポーネント及び／又は以前の図に関して記載された監視コンポーネント１０２が、さらに、１つ以上のピア４０２、スーパーピア４０４、又はクラウドストレージ４０６に関連したエンティティーに関連付けることができることが認識され得る。ピア４０２、スーパーピア４０４、及びクラウドストレージ４０６を利用することができる技術に関するさらなる詳細のほか、ハイブリッドアーキテクチャー内のそのようなエンティティーの機能に関するさらなる詳細が以下に提供される。
【００３０】
[0038]ある態様において、階層コンポーネント１０４は、記憶位置１０６にわたってバックアップデータの仮想的な層又は階層を作成する。バックアップデータは、復元の際のストレージコスト、帯域幅コスト及び待ち時間を低減しつつ利用可能性及び最適な場所が維持されるように、層間で分配される。階層コンポーネント１０４は、１つ以上のピア４０２、スーパーピア４０４、又はクラウドストレージ４０６へのブロック（例えば、バックアップデータ）の分配を通じて、仮想的な層を生成することができる．階層コンポーネント１０４は、仮想的な層の生成及び維持を容易にするために、上記の監視コンポーネント１０２からの監視結果を使用することができる。
【００３１】
[0039]別の態様によれば、階層コンポーネント４０４は、監視結果に従って記憶位置１０６にバックアップデータ（例えば、ブロック、塊など）の一部を割り当てる分配コンポーネント４０８を含んでもよい。１つの例において、分配コンポーネント４０８は、ホット又はコールドとしてブロックを指定するために、バックアップデータのブロックのアクセス頻度及び年齢を利用することができる。コールドなデータがまれにアクセスされる及び／／又はずっと前に作成されたデータを指す一方、ホットなデータは、頻繁にアクセスされ及び／又は最近作成された（例えば、最近バックアップされた）バックアップデータのブロックを指す。分配コンポーネント４０８は、ピア４０２及び／又はスーパーピア４０４などの可能な復元マシンに最適な場所を提供する記憶位置にホットなデータを割り当てることができる。コールドなデータは、スーパーピア４０４及びクラウドストレージ４０６などの、あまり最適な場所ではないがより安価で豊富な記憶を備えた記憶位置に配置することができる。
【００３２】
[0040]別の例において、分配コンポーネント４０８は、監視結果に提供されるようなバックアップデータの利用可能性に基づいて、分配の決定を行うことができる。例えば、ホットなデータはピア４０２の間に分散させることができ、バックアップデータの固有の非複製化された（de-duplicated）ブロック（例えば、ほとんど重複しないブロック）は、高い信頼性をもつ位置（例えば、スーパーピア４０４又はクラウド４０６）において生成され格納された追加のレプリカントを有し、利用可能性を増大させることができる。コールドなデータは、オフピーク時又は間隔の空いた時間（spaced out times）中、クラウドストレージ４０６などの信頼できる記憶位置へと徐々に移すことができる。従って、コールドなデータの利用可能性は、ストレージコストを下げるためにピア４０２又はスーパーピア４０４の間で低下させることができる。さらに、コールドなデータは、さらに記憶装置のフットプリント（footprint）を低減するために、圧縮技術にさらすことができる。
【００３３】
[0041]分配コンポーネント４０８は、記憶位置１０６の監視から集められた情報に基づいてデータを再割り当てすることができる。例えば、記憶位置の故障を予測することができ、バックアップデータはしたがって再割り当てすることができる。例えば、復元の待ち時間が最小化されるように、故障したマシンを復元するために必要とされるバックアップデータを、故障したマシンにとって最適な場所内の位置に再割り当てすることができる。別の例において、分配コンポーネント４０８は、致命的な故障の指示を示す記憶位置からバックアップデータを再割り当て又は再分配することができる。
【００３４】
[0042]別の態様によれば、階層コンポーネント１０４は、インデックスコンポーネント（indexing component）４１２を含み、及び／又は、そうでなければ、それに関連付けることができ、インデックスコンポーネントは、バックアップデータのブロックとブロックが分配された記憶位置との間の関係をリストするインデックスを保持することができる。１つの例において、階層コンポーネント１０４がバックアップデータのブロックに関して分配及び／又は複製の決定を提供する場合、インデックスコンポーネント４１０は、インデックス中のエントリを加え、削除し及び／又は修正することができる。別の例において、インデックスは、そこに表されたバックアップデータと共に、ピア４０２、スーパーピア４０４又はクラウドストレージ４０６に対して、分配することができる．全インデックスを複製して１つ以上の位置に格納することができること、又はインデックスを複数の位置間で塊（chunks）に分割し分配することができることは、制限なしに又は一般性の喪失なしに留意すべきである。
【００３５】
[0043]システム４００がさらに示すように、機械学習及び推論（ＭＬＲ）コンポーネント４１２は、それぞれの情報について記憶位置のインテリジェントで自動化された選択を容易にするために、使用することができる。１つの例において、ＭＬＲコンポーネント４１２は、任意の適切な人工知能（ＡＩ）、機械学習、及び／又は当技術において一般に知られた他のアルゴリズムを利用することができる。本明細書において使用されるとき、「知能」という用語は、例えば、推論、システムに関する既存の情報に基づくシステムの現在又は将来の状態に関する結論を推論するか又は引き出すための能力を指す。人工知能は、人間の介在なしに、特定のコンテキスト又はアクションを識別するか又はシステムの特定の状態の確率分布を生成するために使用することができる。人工知能は、システム上の利用可能なデータ（情報）の組に対して高度な数学的なアルゴリズム（例えば、決定木、ニューラルネットワーク、回帰分析、クラスター分析、遺伝的アルゴリズム及び強化された学習）を適用することに依存する。例えば、多数の方法論のうちの１つ以上は、データから学習し、次に、例えば、隠れマルコフモデル（ＨＭＭ）及び関連する原型の依存性モデルなどのそのように構築されたモデル、例えば、ベイジアンモデルのスコア又は近似を使用して構造探索によって作成される、ベイジアンネットワークなどのより一般的な確率的グラフィカルモデル、サポートベクトルマシン（ＳＶＭ）などの線形分類器、「ニューラルネットワーク」方法論と呼ばれる方法などの非線形分類器、ファジー論理方法論、及び本明細書に記載された様々な自動化された態様の実施に関連付けられる（データ融合を実行する）他の手法から、推論を引き出すのに使用することができる。
【００３６】
[0044]次に図５を参照すると、本明細書に記載された様々な態様に関して利用することができる例示的なネットワークの実施を示す図５００が提供される。図５００が示すように、ネットワークの実施例はハイブリッド・ピア・ツー・ピア及びクラウドベースの構造を利用することができ、クラウドサービスプロバイダー５１０は１つ以上のスーパーピア５２０及び１つ以上のピア５３０−５４０とインタラクトする。
【００３７】
[0045]１つの態様によれば、クラウドサービスプロバイダー５１０は、スーパーピア５２０及び／又はピア５３０−５４０に関連付けられるネットワーク／インターネットワーク（例えば、インターネット）上の所与の位置からの１つ以上のコンピューターサービスを遠隔に実施するために利用することができる。クラウドサービスプロバイダー５１０は１つの位置から生じ得るものであり、又は、代替的に、クラウドサービスプロバイダー５１０は分散されたインターネットベースのサービスプロバイダーとして実施することができる。１つの例において、クラウドサービスプロバイダー５１０は、クラウドサービスプロバイダー５１０に関連付けられる１つ以上のピア５２０−５４０にバックアップ機能を提供するために利用することができる。従って、クラウドサービスプロバイダー５１０は、バックアップ・サービス５１２を実施し及び／又は関連するデータストア５１４を提供することができる。
【００３８】
[0046]１つの例において、データストレージ５１４は、スーパーピア５２０におけるバックアップクライアント５２２及び／又はそれぞれのピア５３０もしくは５４０におけるバックアップクライアント５３２もしくは５４２とインタラクトして、それぞれのピアエンティティー５２０−５４０に存在するデータの中央記憶位置として役立つことができる。このように、クラウドサービスプロバイダー５１０は、データストレージ５１４を介して、ピア５２０−５４０に配置されたデータのオンラインの「貸金庫（safe-deposit box）」として有効に役立つことができる。ファイル（例えば、ドキュメント、写真、音声、動画など）、システム情報などの任意の適切な種類の情報についてバックアップを行うことができることが認識され得る。加えて又は代替的に、分散ネットワーク記憶装置を実施することができ、その結果、スーパーピア５２０又はピア５３０−５４０もまた、関連するローカルネットワーク上の１つ以上のマシンに関連付けられるバックアップデータのためにそれぞれのデータストレージ５２４、５３４及び／又は５４４を含むように構成される。別の例で、非複製化（de-duplication）、付加的な記憶及び／又は他の適切な技術などの技術は、クラウドベースのバックアップサービスの実施のために図５００によって表されたネットワーク中の１つ以上の対応するエンティティーにおけるデータストレージ５１４、５２４、５３４及び／又は５４４によって要求されるストレージ空間の量を減らすために利用することができる。
【００３９】
[0047]別の態様によれば、クラウドサービスプロバイダー５１０は、１つ以上のピアマシン５２０、５３０及び／又は５４０とインタラクトすることができる。図５００に示されるように、１つ以上のピア５２０はスーパーピアとして指定することができ、クラウドサービスプロバイダー５１０と関連するローカルネットワークにおける１つ以上の他のピア５３０−５４０との間の連絡（リエゾン、liaison）として役立つことができる。図５に示されないが、任意の適切なピア５３０及び／又は５４０のほか、指定されたスーパーピア５２０は、適切であると考えられるようなクラウドサービスプロバイダー５１０と直接的にインタラクトすることができることが認識されるべきである。したがって、クラウドサービスプロバイダー５１０、スーパーピア５２０、及び／又はピア５３０もしくは５４０が、図５００によって示されたそれぞれのエンティティー間でファイル又は他の情報を同期させるために任意の適切な時において互いに通信することができることが認識され得る。
【００４０】
[0048]１つの例において、スーパーピア５２０は、本明細書に記載されたようにしてスーパーピアとして動作する能力を有すると決定された、コンテンツ分配ネットワーク（ＣＤＮ）、企業サーバー、ホームサーバー及び／又は他の適切な計算装置などの、ピア５２０−５４０と関連付けられるネットワーク上の中央のエンティティーであってもよい。標準的なピア機能に加えて、スーパーピア５２０は、ローカルネットワーク中のピア５２０−５４０間でデータを収集し、分配し、及び／又はデータにインデックスを付けることに責任をもつことができる。例えば、スーパーピア５２０はストレージインデックス（storage index）５２６を保持することができ、それは、ピア５２０−５４０に対応するそれぞれのファイル及び／又はファイルセグメントのほかそれらのファイル又はセグメントを見つけることができるネットワーク及び／又はクラウドデータストレージ５１４におけるそれぞれの位置に対するポインターの同一性を含んでもよい。さらに又は代替的に、スーパーピア５２０は、例えば、クラウドアップロードコンポーネント５２８を介して指定されたオフピーク時においてクラウドサービスプロバイダー５１０へそれぞれのデータをアップロードすることによって、他のピア５３０−５４０とクラウドサービスプロバイダー５１０との間のゲートウェイとして動作することができる。
【００４１】
[0049]システム５００に示されるデータストア（例えば、データストア５１４、５２４、５３４及び５４４）が、例えば、揮発性メモリーか不揮発性メモリーのいずれかであってもよく、又は、揮発性及び不揮発性メモリーの両方を含んでもよいことが認識されるべきである。制限ではなく例として、不揮発性メモリーは、読み取り専用メモリー（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、ＥＰＲＯＭ（ＥＰＲＯＭ）、電気的に消去可能なプログラマブルＲＯＭ（ＥＥＰＲＯＭ）又はフラッシュメモリーを含んでもよい。揮発性メモリーは外部キャッシュメモリーとして働くランダム・アクセス・メモリー（ＲＡＭ）を含んでもよい。制限ではなく例として、ＲＡＭは、固体ＲＡＭ（ＳＲＡＭ）、動的ＲＡＭ（ＤＲＡＭ）、同時性の（synchronous）ＤＲＡＭ（ＳＤＲＡＭ）、ダブルデータレートＳＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ）、エンハンストＳＤＲＡＭ（ＥＳＤＲＡＭ）、シンクリンク（Synchlink）ＤＲＡＭ（ＳＬＤＲＡＭ）、ラムバスダイレクトＲＡＭ（ＲＤＲＡＭ）、ダイレクトラムバス動的ＲＡＭ（ＤＲＤＲＡＭ）、及びラムバス動的ＲＡＭ（ＲＤＲＡＭ）などの多くの形で利用可能である。本システム及び方法のデータストアは、限定されることなく、これら及び任意の他の適切な種類のメモリーを含むように意図される。さらに、データストアが、サーバー、データベース、ハードドライブ、ペンドライブ、外部ハードドライブ、ポータブルハードドライブなどであってもよいことが認識されるべきである。
【００４２】
[0050]ここで図６を参照すると、様々な態様による、ハイブリッドクラウドベース及びピア・ツー・ピアのバックアップアーキテクチャーにおいて復元を行うことを容易にするシステム６００が示される。システム６００が示すように、ハイブリッドＰ２Ｐ／クラウドバックアップアーキテクチャーを利用することができ、１つ以上の計算装置に対応するバックアップ情報は、１つ以上のピアマシン６１０もしくは６２０及び／又は１つ以上のスーパーピアマシン６３０のほか、１つ以上のクラウド記憶位置６４０間で分散される。
【００４３】
[0051]１つの例において、ピアマシン６２０はそれぞれのデータストア６２２を含んでもよく、それは、１つ以上のファイル又はそれぞれのファイルに対するデルタ更新に対応するバックアップ情報を受け取り維持するために利用することができる。データストア６２２に格納されたファイル及び／又は更新（例えば、バックアップバージョン）は、例えば、復元ピア６１０に関連付けることができる（例えば、バージョニング（versioning）コンポーネント１０２によって作成され、分配コンポーネント１０４によって分配されるように）。さらに、復元ピア６１０は、復元ピア６１０にローカルに存在するファイル及び／又はファイルのバージョンに対応するバックアップ情報をローカルに格納するために、さらに又は代替的にデータストア６１６を含んでもよい。
【００４４】
[0052]別の例において、システム６００における１つ以上のスーパーピア６３０は、さらに、データストア６３２のほかカタログ６３４を含んでもよく、それは、（例えば、カタログ（cataloguing）コンポーネント３１２によって作成されるような）システム６００内に格納されたファイルバージョン及びそれらのそれぞれの位置のマスターリストを提供することができる。カタログ６３４はシステム６００内のスーパーピア６３０において配置されるように示されるが、カタログ６３４のうちのいくらか又はすべてが１つ以上のピア６１０及び／又は６４０においてのほか、クラウドストレージ６４０において、さらに又は代替的に配置され得ることが認識されるべきである。
【００４５】
[0053]１つの態様によれば、復元ピア６１０は、復元要求を出すことができる復元コンポーネント６１４を含んでもよい。復元要求は、復元ピア６１０によって保持されるファイルのバージョンをシステム６００において分配された以前のバージョンによって戻す要求であってもよい。別の例において、復元要求は、バージョン（例えば、最も最近のバージョン、元のバージョン及び／又はそれらの間の任意のバージョン）を取り戻すためのコマンドであってもよい。カタログルックアップコンポーネント６１２は、カタログ６３４及び／又は復元されるべきファイルバージョンのそれぞれの位置を指す任意の他の適切なソースからメタデータを得ることができる。
【００４６】
[0054]カタログルックアップコンポーネント６１２によって得られた位置に基づいて、復元コンポーネント６１４は、データストア６２２、６３２、６４２内のそれらの対応する位置及び／又はシステム６００内の任意の他の適切な記憶位置からファイルバージョンを取り出すことができる。ファイルバージョンは、あるバージョンと直前のバージョンとの間の変化を反映するファイル及び／又は付加的なデルタ塊（delta chunks）の完全な全体であってもよい。従って、１つの例において、復元は、所望のバージョンを再作成するのに必要な付加的なデルタ塊を取り出すことにより行うことができる。別の例において、所望のバージョンの完全な表現を配置し取得することができる。
【００４７】
[0055]別の例によれば、システム６００のハイブリッドＰ２Ｐ／クラウドバックアップアーキテクチャーを、復元ピア６１０において１つ以上のファイルを復元するのに必要な待ち時間及び／又は帯域幅を最小化するために開発することができる。例えば、復元コンポーネント６１４は、システム６００を分析して、システム６００を通じた最小の抵抗のパスからそれぞれのファイルバージョンを取り出すことを容易にすることができる。したがって、例えば、所与のファイルバージョンがピア６２０又はスーパーピア６３０におけるデータストア６２２又は６３２のほかクラウドストレージ６４０に存在する場合、最も近いネットワークノードからブロックを最初に取り出すことに優先順位を与えることができる。その結果、ピア６２０及び／又はスーパーピア６３０は、クラウドストレージ６４０と通信することに関連した待ち時間及び帯域幅の使用を最小化するためにクラウドストレージ６４０に対して優先させることができる。さらに、復元コンポーネント６１４は、システム６００内のそれぞれのノードの利用可能性、相対的なネットワークローディング及び／又は他のファクターを分析して、ファイルバージョンを得るためのノードのインテリジェントな選択を容易にすることができる。従って、復元ピア６１０は、要求されるファイルバージョンを備えたピア６２０及び／又は６３０が利用可能でない場合にのみ、ピアマシン６２０又はスーパーピア６３０からファイルバージョンを得て、クラウドストレージ６４０に戻ることを最初に試みるように構成することができる。代替的な例において、復元ピア６１０がカタログ６３４にアクセスするスーパーピア６３０及び／又は別のエンティティーは、複数の位置の中から、カタログ６３４によって示されるようなファイルバージョンを保持する最適な位置を選択するために、同様のネットワーク分析を利用することができる。一旦選択されると、そのような位置は、続いて、復元ピア６１０に提供することができる。
【００４８】
[0056]図７−８は、特許請求された主題による方法論及び／又はフロー図を示す。説明を単純にするために、方法論は一連の動作として描かれ記載される。本発明が示された動作及び／又は動作の順序によって限定されないことが理解され認識されるべきである。例えば、動作は、様々な順序で及び／又は同時に、並びに、本明細書に示されず記載されない他の動作とともに生じてもよい。さらに、示されたすべての動作が特許請求された主題による方法論を実施するために要求されなくてもよい。さらに、当業者であれば、状態図又はイベントを介した一連の相互に関連する状態として、方法論を代替的に表すことができると理解し認識するであろう。さらに、コンピューターに対してそのような方法論をトランスポートし転送することを容易にするために、以下に及び本明細書の全体にわたって開示された方法論が、製品に格納されることができることはさらに認識されるべきである。製品という用語は、本明細書において使用されるとき、任意のコンピューター読み取り可能な装置、キャリア又は媒体からアクセス可能なコンピュータープログラムを包含するように意図される。
【００４９】
[0057]図７を参照すると、１つ以上のストレージノード上で実施されるデータの層間にデータを再割り当てする方法７００が示される。参照数字７０２において、バックアップデータの仮想的な層はストレージノードにわたって作成することができる。バックアップデータは、バックアップシステムによって管理される、ファイル、システムイメージ又は他の情報であってもよい。１つの例において、バックアップシステムはハイブリッド・ピア・ツー・ピア／クラウドバックアップシステムであってもよい。別の例において、仮想的な層は、バックアップデータの場所が優先されるように、起源位置（例えば、復元クライアントマシン）に関連して構築することができる。参照数字７０４において、記憶位置が分析される。一例において、記憶位置は特性を発見するために監視することができる。特性は、それぞれの記憶位置の健全さ、記憶位置の記憶容量（例えば、全体及び／又は利用可能な容量）、記憶位置の利用可能性（例えば、休止時間、アップタイムなど）、記憶位置の帯域幅利用、又はそれぞれの記憶位置間でのデータの送信のための予測される待ち時間を含んでもよい。参照数字７０６において、バックアップデータの特性が評価される。特性は、アクセス頻度、年齢又は利用可能性（例えば、複製の数）を含んでもよい。参照数字７０８において、バックアップデータは記憶位置間で再割り当てすることができる。１つの例において、再割り当ては、記憶位置及び／又はバックアップデータの特性に少なくとも部分的に基づいてもよい。例えば、バックアップデータは、記憶位置又は他のクライアントマシンにおける致命的な故障の検出に応答して最適な場所へ移すことができ、そのような移されたデータは故障したマシンを回復させるために利用することができる。
【００５０】
[0058]ここで図８を参照すると、データの使用情報に基づいてバックアップデータを再割り当てする方法８００が示される。参照数字８０２において、バックアップデータは、ホットなデータ又はコールドなデータとして指定される。ホットなデータとは、頻繁にアクセスされ及び／又は最近生成されたバックアップデータ（例えば、最近バックアップされたデータ）を指す。ホットなデータが復元されそうであることが推論され得る。コールドなデータとは、まれにアクセスされ及び／又はより古いバックアップ情報を指す。コールドなデータが復元される可能性が最もありそうではないことが推論され得る。参照数字８０４において、ホットなデータの利用可能性は増加する。さらに、ホットなデータは、ホットなデータを復元する可能性の最も高いピアに最適な場所を提供するために分配される。１つの例において、ホットなデータは、ハイブリッド・ピア・ツー・ピア／クラウドバックアップシステム中のピアに保持することができる。さらに、可能性のある復元点に近いネットワークにおけるピアはホットなデータを格納するために選択することができる。さらに、ホットなデータの複製コピーは、利用可能性を増大させるために、スーパーピア又はクラウドストレージなどの信頼できる記憶位置に格納することができる。参照数字８０６において、コールドなデータのストレージコストは減少させることができる。ある例によれば、コールドなデータは、ピアからスーパーピアへ転送することができる。さらに、スーパーピアにおいて格納されるコールドなデータは、帯域幅の利用を最小化させることができるオフピーク時又は他の期間中、クラウドストレージへ移動させることができる。参照数字８０８において、さらに記憶フットプリントを低減するために、圧縮技術をコールドなデータに適用することができる。
【００５１】
[0059]特許請求された主題の様々な態様を実施するための追加のコンテキストを提供するために、図９−１０及び以下の説明は、本発明の様々な態様が実施され得る適切なコンピューター環境の簡潔な概説を提供するように意図される。例えば、ピア及びスーパーピアなどのクライアントマシンのほかクラウドストレージ位置は、そのような適切なコンピューター環境において実施することができる。特許請求された主題がローカルコンピューター及び／又はリモートコンピューター上で実行するコンピュータープログラムのコンピューター実行可能な命令の一般的なコンテキストにおいて上で述べられてきたが、当業者であれば、本発明がまた他のプログラムモジュールと結合して実施されてもよいことを認識するであろう。一般に、プログラムモジュールは、特定のタスクを実行し及び／又は特定の抽象データ型を実施する、ルーチン、プログラム、コンポーネント、データ構造などを含む。
【００５２】
[0060]一般に、プログラムモジュールは、特定のタスクを実行し又は特定の抽象データ型を実施する、ルーチン、プログラム、コンポーネント、データ構造などを含む。さらに、当業者であれば、１つ以上の関連する装置に動作可能に結合され得る、単一のプロセッサーもしくはマルチプロセッサーコンピューターシステム、ミニコンピューター、メインフレームコンピューターのほか、パーソナルコンピューター、携帯型の計算装置、マイクロプロセッサーベースもしくはプログラム可能な家電などを含む、他のコンピューターシステム構成によって、特許請求された主題を実施することができることを認識するであろう。
【００５３】
[0061]図示された態様はまた、通信ネットワークを介してリンクされる遠隔処理装置によってあるタスクが行われる分散コンピューティング環境で実施されてもよい。分散コンピューティング環境において、プログラムモジュールはローカルのメモリー記憶装置と遠隔のメモリー記憶装置の両方に配置することができる。
【００５４】
[0062]コンピューターは、通常、様々なコンピューター読み取り可能な媒体を含む。コンピューター読み取り可能な媒体は、コンピューターによってアクセスすることができる任意の利用可能な媒体であってもよく、揮発性及び不揮発性の媒体、取り外し可能な及び取り外し不能な媒体の両方を含む。限定ではなく例として、コンピューター読み取り可能な媒体はコンピューター記憶媒体及び通信媒体を含むことができる。コンピューター記憶媒体は、コンピューター読み取り可能な命令、データ構造、プログラムモジュール又は他のデータなどの情報の格納のための任意の方法又は技術において実施される、揮発性及び不揮発性、取り外し可能な及び取り外し不能な媒体を含んでもよい。コンピューター記憶媒体は、所望の情報を格納するために使用することができ、コンピューターによってアクセスすることができる、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリーもしくは他のメモリー技術、ＣＤ−ＲＯＭ、デジタル・バーサタイル・ディスク（ＤＶＤ）もしくは他の光学ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、又は任意の他の媒体を含むが、これらに限定されない。
【００５５】
[0063]通信媒体は、通常、搬送波又は他の移送機構などの変調されたデータ信号に、コンピューター読み取り可能な命令、データ構造、プログラムモジュール又は他のデータを具体化し、任意の情報配信媒体を含む。「変調されたデータ信号」という用語は、情報を信号中に符号化するような方法で設定又は変化されたその特徴の組のうち１つ以上の特徴を有する信号を意味する。限定でない例として、通信媒体は、有線ネットワーク又は直接的な有線接続などの有線の媒体、及び音響、ＲＦ、赤外線及び他の無線媒体などの無線媒体を含む。上記のもののうちの任意のものの組み合わせは、コンピューター読み取り可能な媒体の範囲内に含まれるべきである。
【００５６】
[0064]ここで図９を参照すると、開示されたアーキテクチャーを実行するように動作可能な例示的なコンピューター編集システムの概略ブロック図が示される。システム９００は１つ以上のクライアント９０２を含む。クライアント９０２は、ハードウェア及び／又はソフトウェア（例えば、スレッド、プロセス、計算装置）であってもよい。１つの例において、クライアント９０２は、本明細書に記載された１つ以上の特徴を使用することにより、クッキー及び／又は関連する文脈情報を収容することができる。
【００５７】
[0065]システム９００はまた、１つ以上のサーバー９０４を含む。サーバー９０４はまた、ハードウェア及び／又はソフトウェア（例えば、スレッド、プロセス、計算装置）であってもよい。１つの例において、サーバー９０４は、本明細書に記載された１つ以上の特徴の使用により変換を行うためにスレッドを収容することができる。クライアント９０２とサーバー９０４との間の可能な１つの通信は、２つ以上のコンピュータープロセス間で送信されるように構成されたデータパケットの形とすることができる。例えば、データパケットはクッキー及び／又は関連する文脈情報を含んでもよい。システム９００は、クライアント９０２とサーバー９０４との間の通信を容易にするために使用することができる通信フレームワーク９０６（例えば、インターネットなどのグローバル通信ネットワーク）を含む。
【００５８】
[0066]通信は、（光ファイバを含む）有線及び／又は無線技術によって容易にすることができる。クライアント９０２は、クライアント９０２にとってローカルな情報（例えば、クッキー及び／又は関連する文脈情報）を格納するために使用することができる１つ以上のクライアントデータストア９０８に動作可能に接続される。同様に、サーバー９０４は、サーバー９０４にとってローカルな情報を格納するために使用することができる１つ以上のサーバーデータストア９１０に動作可能に接続される。
【００５９】
[0067]図１０に関して、本明細書に記載された様々な態様を実施する例示的な環境１０００は、演算処理装置１００４、システムメモリー１００６及びシステムバス１００８を含むコンピューター１００２を含む。システムバス１００８は、システムメモリー１００６を含むがこれに限定されないシステムコンポーネントを、演算処理装置１００４へ結合する。演算処理装置１００４は、様々な市販のプロセッサーのうちの任意のものであり得る。デュアルマイクロプロセッサー及び他のマルチプロセッサー構成もまた演算処理装置１００４として使用されてもよい。
【００６０】
[0068]システムバス１００８は、様々な市販のバスアーキテクチャーのうちの任意のものを使用して、（メモリーコントローラーの有無に関わらず）メモリーバス、周辺バス及びローカルバスへさらに相互接続し得る、いくつかの種類のバス構造のいずれかであってもよい。システムメモリー１００６は、読み取り専用メモリー（ＲＯＭ）１０１０及びランダムアクセスメモリー（ＲＡＭ）１０１２を含む。基本入出力システム（ＢＩＯＳ）は、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭなどの不揮発性メモリー１０１０に格納され、ＢＩＯＳは、起動中などにコンピューター１００２内の要素間で情報を転送するのを支援する基本ルーチンを含む。ＲＡＭ１０１２はまた、データをキャッシュに入れるための固体ＲＡＭなどの高速ＲＡＭを含んでもよい。
【００６１】
[0069]コンピューター１００２はさらに内蔵ハードディスクドライブ（ＨＤＤ）１０１４（例えば、ＥＩＤＥ、ＳＡＴＡ）を含み、内蔵ハードディスクドライブ１０１４はまた、適切なシャーシ（図示せず）、磁気フロッピーディスクドライブ（ＦＤＤ）１０１６（例えば、取り外し可能なディスク１０１８から読み書きする）及び光ディスクドライブ１０２０（例えば、ＣＤ−ＲＯＭディスク１０２２を読み、又はＤＶＤなどの他の大容量の光学媒体から読み書きする）における外部使用のために構成されてもよい。ハードディスクドライブ１０１４、磁気ディスクドライブ１０１６及び光ディスクドライブ１０２０は、それぞれ、ハードディスクドライブインターフェース１０２４、磁気ディスクドライブインターフェース１０２６及び光ドライブインターフェース１０２８によってシステムバス１００８に接続することができる。外付け型ドライブの実施のためのインターフェース１０２４は、ユニバーサル・シリアル・バス（ＵＳＢ）及びＩＥＥＥ−１３９４インターフェース技術の少なくとも１つ又は両方を含む。他の外付け型ドライブ接続技術は開示される主題の意図した中にある。
【００６２】
[0070]ドライブ及びそれらの関連するコンピューター読み取り可能な媒体は、データ、データ構造、コンピューター実行可能命令などの不揮発性の記憶装置を提供する。コンピューター１００２については、ドライブ及び媒体は、適切なデジタル形式での任意のデータの記憶を提供する。上記のコンピューター読み取り可能な媒体についての記載は、ＨＤＤ、取り外し可能な磁気ディスク、及びＣＤ又はＤＶＤなどの取り外し可能な光学媒体を指すが、当業者によれば、ジップドライブ、磁気カセット、フラッシュメモリーカード、カートリッジなどのコンピューターによって読み取り可能な他の種類の媒体もまた例示的な動作環境において使用することができ、さらに、任意のそのような媒体は、本明細書に記載の方法を行うためのコンピューター実行可能命令を含んでもよいことが理解されるべきである。
【００６３】
[0071]オペレーティングシステム１０３０、１つ以上のアプリケーションプログラム１０３２、他のプログラムモジュール１０３４及びプログラムデータ１０３６を含む多くのプログラムモジュールは、ドライブ及びＲＡＭ１０１２に格納することができる。オペレーティングシステム、アプリケーション、モジュール及び／又はデータのすべて又は一部はまた、ＲＡＭ１０１２にキャッシュすることができる。様々な市販のオペレーティングシステム又はオペレーティングシステムの組み合わせによって、特許請求された主題を実施することができることが認識される。
【００６４】
[0072]ユーザーは、例えば、キーボード１０３８、マウス１０４０などのポインティングデバイスなどの１つ以上の有線／無線入力装置を介して、コンピューター１００２へコマンド及び情報を入力することができる。他の入力装置（図示せず）は、マイクロホン、ＩＲリモートコントロール、ジョイスティック、ゲームパッド、スタイラスペン、タッチスクリーンなどを含んでもよい。これら及び他の入力装置はシステムバス１００８に結合される入力装置インターフェース１０４２を介して演算処理装置１００４にしばしば接続されるが、パラレルポート、シリアルポート、ＩＥＥＥ−１３９４ポート、ゲームポート、ＵＳＢポート、ＩＲインターフェースなどの他のインターフェースを介して接続することができる。
【００６５】
[0073]モニター１０４４又は他の種類の表示装置もまた、ビデオアダプター１０４６などのインターフェースを介してシステムバス１００８に接続される。モニター１０４４に加えて、コンピューターは、通常、スピーカー、プリンターなどの他の周辺の出力装置（図示せず）を含む。
【００６６】
[0074]コンピューター１００２は、リモートコンピューター１０４８などの１つ以上のリモートコンピューターへの有線／無線の通信を介した論理接続を使用して、ネットワーク化された環境において動作してもよい。リモートコンピューター１０４８は、ワークステーション、サーバーコンピューター、ルーター、パーソナルコンピューター、ポータブルコンピューター、マイクロプロセッサーベースの娯楽装置、ピア装置又は他の共通ネットワークノードであってもよく、簡潔さの目的のためにメモリー／ストレージ装置１０５０のみが示されているが、通常、コンピューター１００２に関連して記載される要素の多く又はすべてを含む。示された論理接続は、ローカルエリアネットワーク（ＬＡＮ）１０５２及び／又は例えば広域ネットワーク（ＷＡＮ）１０５４などのより大きなネットワークへの有線／無線接続を含む。そのようなＬＡＮ及びＷＡＮネットワーキング環境は、オフィス及び会社においてありふれたものであり、イントラネットなどの企業規模のコンピューターネットワークを容易にし、それらのすべては例えばインターネットなどのグローバル通信ネットワークに接続してもよい。
【００６７】
[0075]ＬＡＮネットワーキング環境の中で使用される場合、コンピューター１００２は、有線及び／又は無線の通信ネットワークインターフェース又はアダプター１０５６を介してローカルネットワーク１０５２に接続される。アダプター１０５６は、ＬＡＮ１０５２への有線又は無線通信を容易にしてもよく、それはまた、無線アダプター１０５６との通信のための、その上に配置されたワイヤレスアクセスポイントを含んでもよい。
【００６８】
[0076]ＷＡＮネットワーキング環境の中で使用される場合、コンピューター１００２はモデム１０５８を含んでもよいし、ＷＡＮ１０５４の上の通信サーバーに接続されるか、又はインターネット経由でなど、ＷＡＮ１０５４を介して通信を確立するための他の手段を有する。モデム１０５８は、内蔵型又は外付け型の有線又は無線装置であってもよく、シリアルポート・インターフェース１０４２を介してシステムバス１００８に接続される。ネットワーク化された環境では、コンピューター１００２又はその一部に関連して示されるプログラムモジュールは、遠隔メモリー／記憶装置１０５０に格納することができる。示されたネットワーク接続が例示的なものであり、コンピューター間で通信リンクを確立する他の手段を使用できることが認識される。
【００６９】
[0077]コンピューター１００２は、例えば、プリンター、スキャナー、デスクトップ及び／もしくはポータブルコンピューター、ポータブルデータアシスタント、通信衛星、無線で検出できるタグと関連付けられる装置又は位置（例えば、キオスク、ニューススタンド、洗面所）、並びに電話などの、無線通信において動作可能に配置される任意の無線装置又はエンティティと通信するように動作可能である。これは、少なくともＷｉ−Ｆｉ及びＢｌｕｅｔｏｏｔｈ（商標）の無線技術を含む。したがって、通信は、少なくとも２つの装置間の従来のネットワーク又は単にアドホック通信と同様に、所定の構造であってもよい。
【００７０】
[0078]Ｗｉ−Ｆｉ、すなわちワイヤレス・フィデリティーは、基地局の範囲内のいかなる場所でも装置がデータを送受信することを可能にする携帯電話の中で使用されるものに似た無線技術である。Ｗｉ−Ｆｉネットワークは、安全で、信頼でき、高速な無線接続を提供するためにＩＥＥＥ−８０２．１１（ａ、ｂ、ｇなど）無線技術を使用する。Ｗｉ−Ｆｉネットワークは、コンピューターを、互いに、インターネットに、及び（ＩＥＥＥ−８０２．３又はイーサネット（商標）を使用する）有線ネットワークに接続するために使用することができる。Ｗｉ−Ｆｉネットワークは、例えば、無認可の２．４及び５ＧＨｚの無線帯域で、１３Ｍｂｐｓ（８０２．１１ａ）又は５４Ｍｂｐｓ（８０２．１１ｂ）のデータレートで動作し、又は、両方の帯域（デュアルバンド）を含む製品によって動作する。したがって、Ｗｉ−Ｆｉ無線技術を使用するネットワークは、１０ＢａｓｅＴの有線イーサネットネットワークに似た現実世界の性能を提供することができる。
【００７１】
[0079]上述されたものは、特許請求された主題の例を含む。当然のことながら、特許請求された主題について記述する目的のためのコンポーネント又は方法論のすべての考えられる組み合わせについて記載することはできないが、当業者であれば、多くのさらなる組み合わせ及び置換が可能であることを認識できる。従って、詳細な説明は、添付の特許請求の範囲の趣旨及び範囲内にあるすべてのそのような変更、修正及び変化を包含するように意図される。
【００７２】
[0080]特に上述のコンポーネント、装置、回路、システムなどによって実行される様々な機能に関して、そのようなコンポーネントについて記述するために使用される用語（「手段」への言及を含む）は、その他の方法で示されない限り、本明細書において示された例示的な態様における機能を実行する開示された構造と構造的に等価でなくても、記載されたコンポーネント（例えば、機能的な均等物）の指定された機能を実行する任意のコンポーネントに対応するよう意図される。この点において、記載された態様は、システムのほか、様々な方法の動作及び／又はイベントを行うためのコンピューター実行可能な命令を有するコンピューター読み取り可能な媒体を含むこともまた認識される。
【００７３】
[0081]さらに、特定の特徴がいくつかの実施例のうちのほんの１つに関して開示されてきたが、そのような特徴は、任意の所与の又は特定のアプリケーションについて所望され有利であるような、他の実施例のうちの１つ以上の他の特徴と組み合わせられてもよい。さらに、「含む」、「含み」という語及びそれらの変形が詳細な説明又は請求項のいずれかにおいて使用される程度において、これらの語は、「具備する」という語と同様にして包括的であるように意図される。
【図１】
0005639640.tif 000002
【図２】
0005639640.tif 000003
【図３】
0005639640.tif 000004
【図４】
0005639640.tif 000005
【図５】
0005639640.tif 000006
【図６】
0005639640.tif 000007
【図７】
0005639640.tif 000008
【図８】
0005639640.tif 000009
【図９】
0005639640.tif 000010
【図１０】
0005639640.tif 000011