(57)【特許請求の範囲】
【請求項１】
他のストレージシステムに接続されたストレージシステムであって、
第１のコンテンツデータと第１のメタデータとを有する第１のオブジェクトのデータを保存する１つ以上のストレージデバイスと、
プロセッサと
を備え、
前記プロセッサは、
前記第１のオブジェクトを前記他のストレージシステムに複製し、
前記第１のオブジェクトを複製することにより複製された第１のオブジェクトの複製された第１のコンテンツデータが前記他のストレージシステムに保存されていることと、前記他のストレージシステムは前記複製された第１のコンテンツデータを伴うことなく複製された第１のメタデータを保存するための設定を有していないこととを確認した後に、前記第１のオブジェクトの前記第１のコンテンツデータを、前記１つ以上のストレージデバイスから削除するためにマークする、
ストレージシステム。
【請求項２】
前記プロセッサは、更に、前記第１のコンテンツデータをマークして、前記他のストレージシステムにおける前記複製された第１のコンテンツデータの位置を記録する、
請求項１記載のストレージシステム。
【請求項３】
前記ストレージシステムへの前記第１のオブジェクトの取得から第１の時間量が経過した後に、前記プロセッサは、前記複製された第１コンテンツデータが前記他のストレージシステムに保存されていることと、前記他のストレージシステムは前記複製された第１のコンテンツデータを伴うことなく前記複製された第１のメタデータを保存するための設定を有していないこととの前記確認をする、
請求項１又は２記載のストレージシステム。
【請求項４】
前記プロセッサは、前記マークした第１のコンテンツデータを、前記１つ以上のストレージデバイスから削除する、
請求項１乃至３のうちのいずれか１項に記載のストレージシステム。
【請求項５】
前記プロセッサは、前記第１のコンテンツデータの読み出し要求を受け取ると、前記複製された第１のコンテンツデータを前記他のストレージシステムから取得し、第２の時間量の間、取得した前記複製された第１のコンテンツデータを保持する、
請求項４記載のストレージシステム。
【請求項６】
前記プロセッサは、前記第２の時間量が経過した後に、取得した前記複製された第１のコンテンツデータを前記１つ以上のストレージデバイスから削除する、
請求項５記載のストレージシステム。
【請求項７】
前記プロセッサは、前記第１のメタデータの読み出し要求を受け取った場合、前記他のストレージシステムにアクセスすることなく、前記１つ以上のストレージデバイスに保存されている前記第１のメタデータを返す
請求項４乃至６のうちのいずれか１項に記載のストレージシステム。
【請求項８】
前記１つ以上のストレージデバイスは、第２のコンテンツデータと第２のメタデータとを有する第２のオブジェクトのデータを保存し、
前記プロセッサは、前記他のストレージシステムは前記第２のコンテンツデータを伴うことなく複製された第２のメタデータを保存するための設定を有していることと、前記ストレージシステムは前記第２のコンテンツデータを伴うことなく前記第２のメタデータを保存するための設定を有していないこととを確認した後に、前記第２のコンテンツデータを送信することなく、前記第２のメタデータを前記他のストレージシステムに送信する
請求項１乃至７のうちのいずれか１項に記載のストレージシステム。
【請求項９】
前記プロセッサは、前記第２のメタデータを、前記ストレージシステムにおける前記第２のコンテンツデータの位置情報と共に送信する
請求項８記載のストレージシステム。
【請求項１０】
他のストレージシステムに接続されたストレージシステムのための方法であって、
前記ストレージシステムのプロセッサが、第１のコンテンツデータと第１のメタデータとを有する第１のオブジェクトのデータを管理することと、
前記ストレージシステムの前記プロセッサが、前記第１のオブジェクトを前記他のストレージシステムに複製することと、
前記ストレージシステムの前記プロセッサが、前記第１のオブジェクトを複製することにより複製された第１のオブジェクトの複製された第１のコンテンツデータが前記他のストレージシステムに保存されていること、及び前記他のストレージシステムは前記複製された第１のコンテンツデータを伴うことなく複製された第１のメタデータを保存するための設定を有していないことを確認した後に、前記第１のオブジェクトの前記第１のコンテンツデータを、１つ以上のストレージデバイスから削除するためにマークすることと、
を含む方法。
【請求項１１】
前記ストレージシステムの前記プロセッサが、前記第１のコンテンツデータをマークして、前記他のストレージシステムにおける前記複製された第１のコンテンツデータの位置を記録すること、を含む
請求項１０記載の方法。
【請求項１２】
前記ストレージシステムの前記プロセッサが、前記ストレージシステムへの前記第１のオブジェクトの取得から第１の時間量が経過した後に、前記複製された第１コンテンツデータが前記他のストレージシステムに保存されていることと、前記他のストレージシステムは前記複製された第１のコンテンツデータを伴うことなく前記複製された第１のメタデータを保存するための設定を有していないこととの前記確認をする
請求項１０又は１１記載の方法。
【請求項１３】
前記ストレージシステムの前記プロセッサが、前記マークした第１のコンテンツデータを、前記１つ以上のストレージデバイスから削除すること、をさらに含む
請求項１０乃至１２のうちのいずれか１項に記載の方法。
【請求項１４】
前記ストレージシステムの前記プロセッサが、前記第１のコンテンツデータの読み出し要求を受け取ると、前記複製された第１のコンテンツデータを前記他のストレージシステムから取得し、第２の時間量の間、取得した前記複製された第１のコンテンツデータを保持すること、をさらに含む
請求項１３記載の方法。
【請求項１５】
前記ストレージシステムの前記プロセッサが、前記第２の時間量が経過した後に、取得した前記複製された第１のコンテンツデータを前記１つ以上のストレージデバイスから削除すること、をさらに含む
請求項１４記載の方法。
【請求項１６】
前記ストレージシステムの前記プロセッサが、前記第１のメタデータの読み出し要求を受け取ると、前記他のストレージシステムにアクセスすることなく、前記１つ以上のストレージデバイスに保存されている前記第１のメタデータを返すこと、をさらに含む
請求項１３又は１４記載の方法。
【請求項１７】
前記ストレージシステムの前記プロセッサが、第２のコンテンツデータと第２のメタデータとを有する第２のオブジェクトのデータを管理することと、
前記ストレージシステムの前記プロセッサが、前記他のストレージシステムは前記第２のコンテンツデータを伴うことなく複製された第２のメタデータを保存するための設定を有していることと、前記ストレージシステムは前記第２のコンテンツデータを伴うことなく前記第２のメタデータを保存するための設定を有していないこととを確認した後に、前記第２のコンテンツデータを送信することなく、前記第２のメタデータを前記他のストレージシステムに送信すること
を含む請求項１０乃至１６のうちのいずれか１項に記載の方法。
【請求項１８】
前記ストレージシステムの前記プロセッサが、前記第２のメタデータを、前記ストレージシステムにおける前記第２のコンテンツデータの位置情報と共に送信すること、を含む
請求項１７記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、広くは、ストレージシステムに関し、より具体的には、分散オブジェクトストレージエコシステムにおける保存用のコンテンツとメタデータの分離に関するものである。
【背景技術】
【０００２】
非構造化・非可変デジタルコンテンツの増加に伴って、関連デジタルコンテンツの管理および検索は、ますます難しくなりつつある。関連コンテンツを見つけるためには、デジタルコンテンツ自体よりも、デジタルコンテンツに関するデータ（すなわち、メタデータ）が重要となっている。分散環境における従来のオブジェクトストレージシステム（分散オブジェクトストレージエコシステム）では、障害復旧とローカル参照をともに実現するために、デジタルコンテンツとメタデータの両方が一緒に複数の場所に保存される。これは、複製技術を利用して、コピーがリモートサイトに分散されることを確保することにより達成される。従来のシステムのもう１つの欠点は、データとメタデータの両方に同じ保存規則を適用していることである。例えば、あるオブジェクトが、低レイテンシ・ストレージシステムにおいてＮ個のコピーに保存される場合、一部の場所／用途ではデータ部分は全く必要ない可能性があるにもかかわらず、Ｎ個すべてのコピーに、データとメタデータの両方が格納される。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
企業は、多くの独立したオフィスと、さらにはデータセンタを備えて、より地理的に分散されるようになりつつあるので、すべてのデジタルコンテンツについてローカル参照を提供するために必要となる複製トポロジはより複雑となり、デジタルコンテンツのためのストレージ所要量は、必要なローカル参照の数を乗じた量となる。主要な目的が、メタデータのみについてローカル参照を有することである場合、これは、メタデータのデジタルコンテンツが必要以上に複数の場所に保存されることを意味する。また、データ複製は、非常に時間のかかる手続きでもあって、データとメタデータの両方の複製により、かなりの時間遅延と、複製バックログ、及び不要な帯域幅消費が発生する。
【課題を解決するための手段】
【０００４】
本発明の例示的な実施形態により、インテリジェント・オブジェクトを提供し、これは、ユーザ定義可能な規則及びその知能を利用することで、分散オブジェクトストレージシステムにおいて、どのオブジェクトは、非可変デジタルコンテンツとメタデータのコピーを保持するべきであるかを特定し、さらに、環境全体にわたり、デジタルコンテンツへのアクセス可能性、データ保護、及び障害復旧機能を依然として維持しつつ、メタデータのみを格納すべきであるのはどれであるかを特定する。メタデータのみをホストしているオブジェクトストレージシステムで、デジタルコンテンツが必要である場合は、ローカルコピーが常に利用可能であるかのように、他のオブジェクトストレージシステムから取得されることになる。このソリューションによれば、リモートロケーションでは、より小容量のオブジェクトストレージシステムをホストすることができ、これにより、メタデータのみを保存する一方で、中央データセンタでホストされたより大規模なオブジェクトストレージシステムに保存されたデジタルコンテンツとメタデータのセットへのフルアクセスを提供する。このソリューションにより、データアクセスは同じままで、より良い容量利用が提供される。コンテンツ取得は、リモートロケーションまたは中央データセンタのいずれかを介して実施することができるものの、中央データセンタにデジタルコンテンツを保存したのであれば、リモートロケーションは、やはりコンテンツのメタデータのみのビューを保持するだけである。留意すべきことは、本発明では、メタデータオンリーの構成が可能となる場所を限定していないということである。それは、コンテンツがインジェストされたシステム上、またはそれに複製されたコンテンツを有し得る他の何らかのシステム上とすることができる。本発明により、エコシステム内のいずれかの場所に少なくとも１つのコピーがあることが確保される。
【０００５】
オブジェクトストレージシステムにおいてデジタルコンテンツの管理ライフサイクルをメタデータから分離する方法を、非複製環境で使用することもできる。メタデータは、オブジェクトストレージシステムにより管理されるストレージに、アクティブに常駐されたままとなる一方で、デジタルコンテンツまたはコンテンツの追加コピーは、ストレージ階層化ポリシーに基づいて、他のネットワークストレージデバイスに保存することができる。デジタルコンテンツは、オブジェクトストレージシステムに保存されているか、または別のネットワークストレージシステムに保存されているかに関わりなく、そのオブジェクト（複数の場合もある）のメタデータを格納しているいかなるオブジェクトストレージシステムにより、依然として管理されるとともに、そのオブジェクトを、常駐している場合には該システム自体から取得するか、または他のネットワークストレージデバイスから取得するか、いずれかよるアクセスが可能である。
【０００６】
この機構により、オブジェクトストレージシステムのデータ保護レベル、効率的な更新、オブジェクトのシステムメタデータ及びカスタムメタデータのインデキシングを供与するインテリジェントなコンテンツ階層を作成するとともに、ネットワークストレージデバイスに移動させるデータの圧縮及び暗号化オプションを提供する。
【０００７】
本発明の一態様によれば、ストレージシステムは、コントローラと、メモリと、各オブジェクトがコンテンツデータとシステムメタデータを含むメタデータとを有する１つ以上のオブジェクトと、ストレージシステムから外部ストレージへの１つ以上のオブジェクトのコンテンツデータ及びメタデータの書き込みを管理するポリシーと、を備える。ポリシーは、所与のオブジェクトのコンテンツデータとメタデータを分離するための設定可能な基準と、オブジェクトのコンテンツデータとメタデータが分離される場合にストレージシステムと外部ストレージとの間に分離した状態でコンテンツデータとメタデータの保存場所を決定するための規則と、を含む。設定可能な基準は、そのオブジェクトのメタデータの属性に基づくものである。コントローラは、ストレージシステムの１つ以上のオブジェクトに対してポリシーを実行するように機能し、それは、設定可能な基準に基づき分離した状態で書き込まれる候補オブジェクトとして各オブジェクトのメタデータを評価することと、分離オブジェクトとしてコンテンツデータとメタデータが分離される場合に、その分離オブジェクトのコンテンツデータとメタデータの保存場所を決定するために規則を適用することと、を含む。
【０００８】
一部の実施形態では、設定可能な基準は、オブジェクトのシステムメタデータの属性に基づくものである。ポリシーを実行することは、設定可能な基準に基づき分離した状態で書き込まれる候補オブジェクトとして各オブジェクトのシステムメタデータを評価することを含む。コントローラは、分離した状態で書き込まれる候補オブジェクトとしてのオブジェクトをストレージシステムから特定するとともに、特定されたオブジェクトに対してポリシーを実行するために、スケジュール可能なサービスを定期的に実行するように機能する。
【０００９】
具体的な実施形態では、コントローラは、ポリシーの規則によってコンテンツデータの保存場所が外部ストレージであると決定された場合には、そのオブジェクトが外部ストレージに書き込まれたことを確認するとともに、コンテンツデータが外部ストレージに保存されたことを確認し、両方が確認された場合に、そのコンテンツデータをストレージシステムから削除するとともに、その外部ストレージがオブジェクトのコンテンツデータの書き込まれた場所であることをストレージシステムに記録し、また、ポリシーの規則によってコンテンツデータの保存場所がストレージシステムであると決定された場合には、そのオブジェクトがメタデータのみとして外部ストレージに書き込まれるべきであることを確認するとともに、オブジェクトのコンテンツデータがストレージシステムに保存されたことを確認し、両方が確認された場合に、そのオブジェクトのメタデータを外部ストレージに書き込むとともに、ストレージシステムにおけるオブジェクトのコンテンツデータの場所を指すポインタを外部ストレージへ送信する、ように機能する。
【００１０】
一部の実施形態では、ポリシーの規則によってコンテンツデータの保存場所が外部ストレージであると決定された場合に、コントローラは、ポリシーの規則で規定された第１の既定時間量であって、ゼロ以上である第１の既定時間量の後に、そのコンテンツデータをストレージシステムから削除し、また、そのコンテンツデータを外部ストレージから取得した後には、ポリシーの規則で規定された第２の既定時間量であって、ゼロ以上である第２の既定時間量の間、取得したコンテンツデータをストレージシステムに保持する、ように機能する。
【００１１】
具体的な実施形態では、外部ストレージは、他のストレージシステムに配置される。本ストレージシステム及びこの他のストレージシステムは、複製環境においてストレージシステム間でオブジェクトを複製する目的で相互にネットワーク接続された複数のストレージシステムの一部である。
【００１２】
本発明の他の態様は、ストレージシステム間でのオブジェクトの書き込みを管理するための装置に関し、この場合、各オブジェクトは、コンテンツデータとシステムメタデータを含むメタデータとを有する。装置は、コントローラとメモリとを備える。コントローラは、ソースストレージシステムからターゲットストレージシステムへの１つ以上のオブジェクトのコンテンツデータ及びメタデータの書き込みを管理するポリシーを、そのソースストレージシステムの１つ以上のオブジェクトに対して実行するように機能し、ポリシーは、所与のオブジェクトのコンテンツデータとメタデータを分離するための設定可能な基準と、オブジェクトのコンテンツデータとメタデータが分離される場合にソースストレージシステムとターゲットストレージシステムとの間に分離した状態でコンテンツデータとメタデータの保存場所を決定するための規則と、を含み、設定可能な基準は、そのオブジェクトのメタデータの属性に基づくものであり、また、１つ以上のオブジェクトに対してポリシーを実行することは、設定可能な基準に基づき分離した状態で書き込まれる候補オブジェクトとして各オブジェクトのメタデータを評価することと、分離オブジェクトとしてコンテンツデータとメタデータが分離される場合に、その分離オブジェクトのコンテンツデータとメタデータの保存場所を決定するために規則を適用することと、を含む。
【００１３】
本発明の他の態様は、オブジェクトの書き込みを管理する方法に関し、この場合、各オブジェクトは、コンテンツデータとシステムメタデータを含むメタデータとを有する。本方法は、ストレージシステムから外部ストレージへの１つ以上のオブジェクトのコンテンツデータ及びメタデータの書き込みを管理するポリシーを、そのストレージシステムの１つ以上のオブジェクトに対して実行することを含み、ポリシーは、所与のオブジェクトのコンテンツデータとメタデータを分離するための設定可能な基準と、オブジェクトのコンテンツデータとメタデータが分離される場合にストレージシステムと外部ストレージとの間に分離した状態でコンテンツデータとメタデータの保存場所を決定するための規則と、を含み、設定可能な基準は、そのオブジェクトのメタデータの属性に基づくものであり、また、１つ以上のオブジェクトに対してポリシーを実行することは、設定可能な基準に基づき分離した状態で書き込まれる候補オブジェクトとして各オブジェクトのメタデータを評価することと、分離オブジェクトとしてコンテンツデータとメタデータが分離される場合に、その分離オブジェクトのコンテンツデータとメタデータの保存場所を決定するために規則を適用することと、を含む。
【００１４】
本発明のこれらおよび他の特徴ならびに効果は、以下の具体的な実施形態についての詳細な説明を参照することで、当業者に明らかになるであろう。
【図面の簡単な説明】
【００１５】
【図１】本発明の方法および装置を適用することができる固定コンテンツストレージアーカイブの簡略ブロック図である。
【００１６】
【図２】独立ノードの冗長アレイの簡略図であり、それぞれノードは、対称であって、アーカイブクラスタアプリケーションをサポートしている。
【００１７】
【図３】所与のノードで実行されるアーカイブクラスタアプリケーションの各種コンポーネントの上位図である。
【００１８】
【図４】クラスタの所与のノードにおけるメタデータ管理システムのコンポーネントの一例を示している。
【００１９】
【図５】複製トポロジにおけるソースシステム上のオブジェクトに対して、メタデータオンリー機能によるユースケース１で定義された階層化サービスプロセスを示すフロー図の一例を示している。
【００２０】
【図６】メタデータのみをローカルに保存し、固定デジタルコンテンツを外部ボリュームに保存する外部階層化のための階層化サービスプロセスを示すフロー図の一例を示している。
【００２１】
【図７】階層化サービスを実施するための装置の一例を示している。
【発明を実施するための形態】
【００２２】
本発明の以下の詳細な説明では、開示の一部を形成する添付の図面に参照がなされ、および本発明が実施されることができる例示的な実施形態を例証としてかつ限定でなく示す。図において、同様な数字がいくつかの図の全体にわたって実質的に類似したコンポーネントを記述する。更に、後述するようにかつ図面内に図示するように、詳細な説明により種々の例示的な実施形態を提供するが、本発明は、本願明細書に図と共に説明される実施形態に限定されるものではなく、当業者に周知のような、または周知となるような他の実施形態に拡張することができる。「一実施形態」、「この実施形態」、または「これらの実施形態」への明細書における参照は、実施形態と関連して記述される特定の特徴、構造または特性が本発明の少なくとも１つの実施形態内に含まれることを意味し、および、明細書内の種々の場所におけるこれらの句の出現が、必ずしも全て同じ実施形態を参照するというわけではない。加えて、以下の詳細な説明において、数多くの具体的な詳細が本発明の徹底的な理解を提供するために記載される。しかしながら、これらの具体的な詳細が、本発明を実践するために全てが必要であるというわけではないことは、当業者に明白である。他の状況では、本発明を不必要に不明瞭にしないために、周知の構造、材料、回路、プロセスおよびインタフェースは詳述せず、および／またはブロック図形式で例示され得る。
【００２３】
また、以下の詳細な説明の一部は、コンピュータにおける演算アルゴリズムおよび記号表現によって提示される。これらのアルゴリズム的記述および記号表現は、データ処理技術の当業者によってそれらの革新の本質を最も効果的に他の当業者に伝えるために使用される手段である。アルゴリズムは、所望の終了状態または結果に至る一連の規定されたステップである。本発明において、実施されるステップは、具体的な結果を達成するための具体的な数量の物理操作を必要とする。通常、必ずしもではないが、これらの数量は、記憶され、伝達され、組み合わせられ、比較され、その他の操作されることが可能な電気もしくは磁気信号または命令の形式をとる。これらの信号をビット、値、要素、シンボル、文字、用語、数、命令、などとして参照することは、主に一般的に使用されているという理由で、折に触れて都合がいいと立証されている。しかしながら、これらおよび類似の用語の全てが適切な物理量と関連しているべきであり、かつこれらの数量に適用される単に都合がいいラベルであるだけであることが念頭に置かれるべきである。とりわけ別の方法で述べられない限り、以下の説明から明白に認識されることは、記述の全体にわたって、「処理」、「計算」、「算出」、「判定」、「表示」などのような用語を利用する考察は、コンピュータシステムのレジスタおよびメモリ内で物理（電子）数量として表されるデータを、コンピュータシステムのメモリまたはレジスタまたは他の情報記憶、送信もしくはディスプレイ装置内で物理量として同じように表される他のデータに、操作してかつ変換するコンピュータシステムまたは他の情報処理装置のアクションおよびプロセスを含み得るということである。
【００２４】
本発明は、さらに、本明細書に記載のオペレーションを実行するための装置に関する。この装置は、所要の目的のために専用に構築することができ、または１つ以上のコンピュータプログラムにより選択的にアクティブ化または再構成される１つ以上の汎用コンピュータを備えることができる。かかるコンピュータプログラムは、限定するものではないが、光ディスク、磁気ディスク、読み取り専用メモリ、ランダムアクセスメモリ、ソリッドステートデバイス及びドライブ、または電子情報を保存するのに適した他の任意のタイプの媒体など、非一時的媒体を含むコンピュータ可読記憶媒体に保存することができる。本明細書で提示するアルゴリズムならびに表示は、本来、特定のコンピュータまたは他の装置に関連したものではない。種々の汎用システムを、本明細書に記載の教示によるプログラム及びモジュールと共に用いることができ、または所望の方法ステップを実行するために、より特化した装置を構築するほうが適当であることが実証される場合がある。また、本発明は、いずれかの特定のプログラミング言語に準拠して説明されるものではない。当然のことながら、本明細書に記載の発明の教示を実施するために、様々なプログラミング言語を用いることができる。プログラミング言語（複数の場合もある）による命令は、例えば中央処理装置（ＣＰＵ）、プロセッサ、またはコントローラである１つ以上の処理装置で実行することができる。
【００２５】
本発明の例示的な実施形態により、より詳細は後述するように、分散オブジェクトストレージエコシステムにおいて保存用にコンテンツとメタデータを分離するための装置、方法、及びコンピュータプログラムを提供する。
【００２６】
Ｉ．固定コンテンツ分散データストレージ
【００２７】
従来のテープおよび光学ストレージ・ソリューションに取って代わるかまたはそれを補う、高可用性かつ高信頼性の永続的な「固定コンテンツ」のアーカイブストレージに対する必要性が高まっている。「固定コンテンツ」という用語は、一般に、参照または他の目的のために変更なく保持されると予想される任意のタイプのデジタル情報を指す。このような固定コンテンツの例として、数ある中でも、電子メール、文書、診断画像、チェック画像、音声録音、フィルムおよびビデオなどが挙げられる。従来の独立ノード冗長アレイ（ＲＡＩＮ：Ｒｅｄｕｎｄａｎｔ Ａｒｒａｙ ｏｆ Ｉｎｄｅｐｅｎｄｅｎｔ Ｎｏｄｅｓ）ストレージ方式は、このような固定コンテンツ情報資産の保存用の大規模なオンラインアーカイブを作成するために選択されるアーキテクチャとして出現した。ＲＡＩＮアーキテクチャは、ノードを必要に応じてクラスタに加えたり外したりすることを可能とすることによって、１つ以上のノードの障害からストレージクラスタを遮断する。複数ノード上にデータを複製することによって、ＲＡＩＮ型アーカイブはノード障害または削除を自動的に補償することができる。一般に、ＲＡＩＮシステムは、多くは、閉システム内の同一のコンポーネントから設計されたハードウェア装置として供給される。
【００２８】
図１は、そのようなスケーラブルなディスクベースのアーカイブストレージ管理システムの一例を示している。それらのノードは、異なるハードウェアを備えることができ、その場合、「異種」とみなすことができる。ストレージエリアネットワーク（ＳＡＮ）におけるように、各ノードは、一般に、実際の物理ストレージディスクまたは仮想ストレージディスクとすることができる１つ以上のストレージディスクへのアクセスを有する。各ノードでサポートされるアーカイブクラスタアプリケーション（さらに、オプションとして、そのアプリケーションが実行される基礎となるオペレーティングシステム）は、同じであるか、または略同じとすることができる。各ノード上のソフトウェアスタック（オペレーティングシステムを含み得る）は対称であるが、一方、ハードウェアは異種とすることができる。図１に示すようなシステムを使用して、企業は、とりわけ文書、電子メール、衛星画像、診断画像、チェック画像、音声録音、ビデオなど、多くの異なるタイプの固定コンテンツ情報用のパーマネントストレージを作成することができる。当然のことながら、これらのタイプは単なる例示にすぎない。独立サーバまたはいわゆるストレージノード上でデータを複製することにより、高レベルの信頼性が達成される。好ましくは、各ノードは、そのピアと対称である。従って、好ましくは所与のノードはいずれも全ての機能を実行することができるので、いずれか１つのノードの障害がアーカイブの可用性に及ぼす影響はほとんどない。
【００２９】
本出願と同一の所有者による米国特許第７１５５４６６号に記載されているように、ＲＡＩＮベースのアーカイブシステムにおいて、デジタル資産を収集、保存、管理、及び検索する各ノード上で実行される分散ソフトウェアアプリケーションを導入することが知られている。図２は、そのようなシステムを示している。個々のアーカイブの物理的境界は、クラスタ（またはシステム）と呼ばれる。典型的には、クラスタは単一の装置ではなく、装置の集まりである。装置は、同種または異種のものとすることができる。典型的な装置は、Ｌｉｎｕｘなどのオペレーティングシステムが作動するコンピュータまたはマシンである。汎用ハードウェアでホストされるＬｉｎｕｘベースのシステムのクラスタにより、数台のストレージノードサーバから、数千テラバイトのデータを保存する多数のノードまでの、スケーラブルなアーカイブが提供される。このアーキテクチャにより、組織の増大するアーカイブ要求に常にストレージ容量を合わせ得ることが確保される。
【００３０】
上述のようなストレージシステムでは、一般に、アーカイブが装置障害から常に保護されるように、データはクラスタ全体にランダムに分散される。ディスクまたはノードが故障すると、クラスタは、そのクラスタ内の同データの複製を保持している他のノードに自動的にフェイルオーバする。このアプローチは、データ保護の観点からは十分に機能するが、クラスタについて計算された平均データ損失時間（ＭＴＤＬ：Ｍｅａｎ Ｔｉｍｅ ｔｏ Ｄａｔａ Ｌｏｓｓ）は、要求に応えるほどには高くない場合がある。具体的には、ＭＴＤＬは、一般に、アーカイブがデータを損失するまでの算出された時間を表す。デジタルアーカイブでは、いかなるデータ損失も望ましくはないが、ハードウェアコンポーネント及びソフトウェアコンポーネントの性質上、その発生の可能性は（わずかではあるが）常にある。オブジェクト及びそれらのコピーがアーカイブクラスタ内にランダムに分散されていることから、例えば、あるノード内の（ミラーコピーが保存されている）あるディスクが予想外に故障すると、オブジェクトの必要なコピーが利用できない場合があることにより、ＭＴＤＬは、結局は要求よりも低くなり得る。
【００３１】
本発明が実施される例示的なクラスタは、図２に示すように、好ましくは、以下の大別カテゴリのコンポーネントを含む：ノード２０２、一対のネットワークスイッチ２０４、電力配分装置（ＰＤＵ）２０６、及び無停電電源装置（ＵＰＳ）２０８。ノード２０２は、典型的には１つ以上の汎用サーバを備え、ＣＰＵ、適切なランダムアクセスメモリ（ＲＡＭ）、１つ以上のハードドライブ（例えば、標準ＩＤＥ／ＳＡＴＡ、ＳＣＳＩなど）、及び２つ以上のネットワークインタフェースカード（ＮＩＣ）を収容している。典型的なノードは、２．４ＧＨｚチップ、５１２ＭＢ ＲＡＭ、及び６つの２００ＧＢハードドライブを備えた２Ｕラックマウントユニットである。ただし、これに限定されない。ネットワークスイッチ２０４は、典型的には、ノード間のピアツーピア通信を可能にする内部スイッチ２０５と、各ノードへの追加クラスタアクセスを可能にする外部スイッチ２０７と、を備える。各スイッチは、クラスタ内の全てのあり得るノードを扱うのに十分なポートが必要である。この目的で、イーサネットまたはＧｉｇＥスイッチを使用することができる。ＰＤＵ ２０６は、全てのノード及びスイッチへの通電のために使用され、また、全てのノードおよびスイッチを保護するＵＰＳ２０８が使用される。限定するものではないが、クラスタは、一般に、公衆インターネット、企業イントラネット、または他の広域もしくはローカルエリアネットワークのようなネットワークに接続可能である。例示的な一実施形態では、クラスタは企業環境において実現される。それには、例えばサイトの企業ドメインネームシステム（ＤＮＳ）ネームサーバを通してナビゲートすることより、到達できる。この場合、例えば、クラスタのドメインは、既存のドメインの新規のサブドメインとすることができる。典型的な実現形態では、サブドメインは、企業ＤＮＳサーバにおいて、そのクラスタ自体のネームサーバにデリゲートされる。エンドユーザは、一般的なインタフェースまたはアクセスツールを用いてクラスタにアクセスする。この場合、例えば、クラスタへのアクセスは、任意のＩＰベースのプロトコル（ＨＴＴＰ、ＦＴＰ、ＮＦＳ、ＡＦＳ、ＳＭＢ、Ｗｅｂサービスなど）で、ＡＰＩ（アプリケーションプログラムインタフェース）を介して、または他の周知もしくは後に開発されるアクセス方式、サービス、プログラム、もしくはツールで、実施することができる。
【００３２】
クライアントアプリケーションは、標準的ＵＮＩＸファイルプロトコルまたはＨＴＴＰ ＡＰＩなどの１つ以上のタイプの外部ゲートウェイを介してクラスタにアクセスする。アーカイブは、好ましくは、任意の標準ＵＮＩＸファイルプロトコル向きファシリティの下に任意選択的に配置することができる仮想ファイルシステムを通して、公開される。これらには、ＮＦＳ、ＦＴＰ、ＳＭＢ／ＣＩＦＳなどが含まれる。
【００３３】
一実施形態において、アーカイブクラスタアプリケーションは、クラスタとして（例えばイーサネットで）相互にネットワーク接続された独立ノードからなる冗長アレイ（Ｈ−ＲＡＩＮ）上で動作する。それらのノードのハードウェアは、異種のものとすることができる。しかしながら、最大限の信頼性を得るためには、各ノードは、以下で図３に示すように、いくつかのランタイムコンポーネントを含む分散アプリケーションのインスタンス３００（同じインスタンスまたは略同じインスタンスとすることができる）を実行することが好ましい。このように、ハードウェアは異種のものであってもよいが、ノード上のソフトウェアスタックは、（少なくとも本発明に関連する限りにおいて）同じものである。これらのソフトウェアコンポーネントは、ゲートウェイプロトコル層３０２、アクセス層３０４、ファイルトランザクション／管理層３０６、及びコアコンポーネント層３０８を構成している。「層」という呼称は説明のためのものであって、当業者であれば理解できるように、それらの機能を他の有意義な方法で特徴付けてもよい。これらの層（またはその中のコンポーネント）の１つ以上を、統合することができ、またはその逆も可能である。一部のコンポーネントを、層間で共有することができる。
【００３４】
ゲートウェイプロトコル層３０２内のゲートウェイプロトコルは、既存のアプリケーションへの透過性を提供する。具体的には、ゲートウェイは、ＮＦＳ ３１０及びＳＭＢ／ＣＩＦＳ ３１２のようなネイティブファイルサービスを提供するとともに、カスタムアプリケーションを構築するためのＷｅｂサービスＡＰＩを提供する。さらに、ＨＴＴＰサポート３１４を提供する。アクセス層３０４は、アーカイブへのアクセスを提供する。具体的には、本発明によれば、固定コンテンツファイルシステム（ＦＣＦＳ）３１６がネイティブファイルシステムをエミュレートすることで、アーカイブオブジェクトへのフルアクセスを提供する。ＦＣＦＳは、アーカイブコンテンツがまるで通常のファイルであるかのように、それらへの直接アクセスをアプリケーションに与える。好ましくは、アーカイブされたコンテンツは、そのオリジナルフォーマットでレンダリングされ、メタデータはファイルとして公開される。ＦＣＦＳ ３１６は、ディレクトリおよびパーミッションの通常のビューと、ルーチンファイルレベルコールとを提供し、これにより、管理者は、自身が熟知している方法で固定コンテンツデータをプロビジョニングすることができる。ファイルアクセスコールは、好ましくは、ユーザ空間デーモンによりインタセプトされて、（層３０８の）適切なコアコンポーネントにルーティングされ、このコアコンポーネントは、呼出し側アプリケーションに対して適切なビューを動的に生成する。ＦＣＦＳコールは、好ましくは、自律的なアーカイブ管理を容易にするためにアーカイブポリシーによって制約される。従って、一例では、管理者またはアプリケーションは、保存期間（所与のポリシー）がまだ有効であるアーカイブオブジェクトを削除することはできない。
【００３５】
アクセス層３０４は、さらに、Ｗｅｂユーザインタフェース（ＵＩ）３１８及びＳＮＭＰゲートウェイ３２０を含むことが好ましい。Ｗｅｂユーザインタフェース３１８は、好ましくは、ファイルトランザクション／管理層３０６の管理エンジン３２２への対話型アクセスを提供する管理コンソールとして実現される。管理コンソール３１８は、好ましくは、パスワード保護されたＷｅｂベースのＧＵＩであって、アーカイブオブジェクト及び個々のノードを含むアーカイブの動的ビューを提供するものである。ＳＮＭＰゲートウェイ３２０は、管理エンジン３２２への容易なアクセスをストレージ管理アプリケーションに提供して、それらがクラスタアクティビティを安全に監視および制御することを可能とする。管理エンジンは、システムイベント及びポリシーイベントを含むクラスタアクティビティを監視する。さらに、ファイルトランザクション／管理層３０６は、要求マネージャプロセス３２４を含む。要求マネージャ３２４は、（アクセス層３０４を通した）外界からの全ての要求、ならびにコアコンポーネント層３０８のポリシーマネージャ３２６からの内部要求をオーケストレートする。
【００３６】
コアコンポーネントには、ポリシーマネージャ３２６に加えて、さらに、メタデータマネージャ３２８、及びストレージマネージャ３３０の１つ以上のインスタンスが含まれる。メタデータマネージャ３２８は、好ましくは、各ノード上にインストールされる。クラスタ内のメタデータマネージャは、共同で分散データベースとして機能して、全てのアーカイブオブジェクトを管理する。所与のノードにおいて、メタデータマネージャ３２８は、アーカイブオブジェクトのサブセットを管理し、その場合、好ましくは、各オブジェクトは、外部ファイル（「ＥＦ」、保存用のアーカイブに加えられたデータ）と、アーカイブデータが物理的に配置された内部ファイル（それぞれ「ＩＦ」）のセットとの間でマッピングする。同じメタデータマネージャ３２８が、さらに、他のノードから複製されたアーカイブオブジェクトのセットも管理する。従って、すべての外部ファイルの現在の状態を、いくつかのノード上の複数のメタデータマネージャで常に利用することができる。ノード障害の場合には、他のノード上のメタデータマネージャが、障害ノードでそれまで管理されていたデータへのアクセスを引き続き提供する。ストレージマネージャ３３０は、分散アプリケーションの他の全てのコンポーネントで利用できるファイルシステム層を提供する。これにより、好ましくは、データオブジェクトは、ノードのローカルファイルシステムに保存される。所与のノードにおける各ドライブは、好ましくは、それに専用のストレージマネージャを有する。これにより、そのノードは、ドライブを個別に削除することが可能となり、スループットを最適化することができる。ストレージマネージャ３３０は、さらに、システム情報、データの完全性チェックを提供するとともに、ローカル構造をトラバースすることを可能とする。
【００３７】
同じく図３に示すように、クラスタは、通信ミドルウェア層３３２及びＤＮＳマネージャ３３４を介して、内部通信および外部通信を管理する。インフラストラクチャ３３２は、アーカイブコンポーネント間の通信を可能にする効率的かつ高信頼性のメッセージベースのミドルウェア層である。例示的な一実施形態では、この層は、マルチキャスト通信及びポイントツーポイント通信をサポートする。ＤＮＳマネージャ３３４は、全てのノードを企業サーバに接続する分散ネームサービスを実行する。好ましくは、ＤＮＳマネージャは（単独で、またはＤＮＳサービスと共に）、全てのノード間に要求の負荷を分散することで、最大限のクラスタスループット及び可用性を確保する。
【００３８】
例示的な一実施形態では、アプリケーションインスタンスは、Ｌｉｎｕｘなどの基本オペレーティングシステム３３６上で実行される。通信ミドルウェアは、任意の適当な分散通信機構である。他のコンポーネントには、固定コンテンツファイルシステム（ＦＣＦＳ）３１６のために使用できるＦＵＳＥ（Ｆｉｌｅｓｙｓｔｅｍ ｉｎ ＵＳＥｒｓｐａｃｅ）を含むことができる。ＮＦＳゲートウェイ３１０は、標準ｎｆｓｄ ＬｉｎｕｘカーネルＮＦＳドライバによって実現することができる。各ノードのデータベースは、オブジェクトリレーショナルデータベース管理システム（ＯＲＤＢＭＳ）によって実現することができる。ノードは、Ｊａｖａ ＨＴＴＰサーバ／サーブレットコンテナであるＪｅｔｔｙなどのＷｅｂサーバを含むことができる。当然のことながら、上記の機構は単なる例示にすぎない。
【００３９】
所与のノードのストレージマネージャ３３０は、物理ストレージデバイスを管理することを担う。好ましくは、各ストレージマネージャインスタンスは１つのルートディレクトリを担当し、そこに、その配置アルゴリズムに従って全てのファイルが配置される。１つのノードで複数のストレージマネージャインスタンスを同時に実行することができ、それぞれは、通常、システムにおける異なる物理ディスクを表す。ストレージマネージャは、システムの他の部分から使用されるドライブ及びインタフェース技術を要約する。ストレージマネージャインスタンスは、ファイルの書き込みを依頼されると、担当することになる表現のフルパス及びファイル名を生成する。典型的な一実施形態では、ストレージマネージャに保存される各オブジェクトは、保存されるべき生データとして受け取られ、そしてそれを保存する際に、ストレージマネージャにより、それ自身のメタデータが、種々のタイプの情報を追跡するためにファイルに追加される。例として、このメタデータには、ＥＦ長（バイトで表された外部ファイルの長さ）、ＩＦセグメントサイズ（内部ファイルの当該部分のサイズ）、ＥＦ保護表示（ＥＦ保護モード）、ＩＦ保護ロール（当該内部ファイルの表現）、ＥＦ作成タイムスタンプ（外部ファイルのタイムスタンプ）、シグネチャ（シグネチャタイプを含む、書き込み（ＰＵＴ）時の内部ファイルのシグネチャ）、及びＥＦファイル名（外部ファイルのファイル名）が含まれる。内部ファイルデータと共にこの追加メタデータを保存することにより、追加的な保護レベルが提供される。具体的には、スキャベンジングによって、内部ファイルに保存されたメタデータから、データベース内に外部ファイルレコードを作成することができる。他のポリシーにより、内部ファイルに対して内部ファイルハッシュを検証することで、内部ファイルに損傷がないことを確認することができる。
【００４０】
内部ファイルは、アーカイブオブジェクトにおけるオリジナル「ファイル」の一部を表すデータの「チャンク」とすることができ、それらを、ストライピング及び保護ブロックを実現するように、いくつかの異なるノードに配置することができる。ただし、このように外部ファイルをより小さいチャンク単位に分割することは必要条件ではなく、代替案では、内部ファイルは、外部ファイルの完全コピーとすることができる。一般に、メタデータマネージャには、各アーカイブオブジェクトに対して１つの外部ファイルエントリが存在し、それぞれの外部ファイルエントリに対して多くの内部ファイルエントリが存在し得る。一般に、内部ファイルレイアウトは、そのシステムに依存する。特定の実現形態において、ディスク上のそのデータの実際の物理フォーマットは、一連の可変長レコードに格納される。
【００４１】
要求マネージャ３２４は、システム内の他のコンポーネントと対話することによって、アーカイブアクションを実施するのに必要な一連のオペレーションを実行することを担う。要求マネージャは、種々のタイプの多くの同時アクションをサポートし、失敗したトランザクションがあればそれをロールバックすることができ、また、実行に長時間を要し得るトランザクションをサポートする。要求マネージャは、さらに、アーカイブにおいて読み出し／書き込みオペレーションが適切に処理されることを確保するとともに、全ての要求が常に既知の状態にあることを保証する。さらに、それは、所与のクライアント要求に応えるために、複数の読み出し／書き込みオペレーションをノード間で調整するためのトランザクション制御を提供する。加えて、要求マネージャは、最近使用されたファイルのメタデータマネージャエントリをキャッシュするとともに、セッションならびにデータブロックのバッファリングを提供する。
【００４２】
クラスタの主要な役割は、無制限の数のファイルを高信頼度でディスクに保存することである。所与のノードが、何らかの理由で到達不可能であるか、それ以外にも利用できない場合があると、その意味で「信頼性に欠ける」ものと評価されることがある。このように低信頼性の可能性があるノードの集まりの協働によって、高信頼性かつ高可用性のストレージを形成する。一般に、保存する必要のある情報には、ファイル自体と、ファイルに関するメタデータという２つのタイプがある。固定コンテンツ分散データストレージについての更なる詳細は、参照により本明細書に組み込まれる米国特許出願公開第２００７／０１８９１５３号及び米国特許第７６５７５８１号に記載されている。
【００４３】
ＩＩ．メタデータ管理
【００４４】
メタデータ管理システムは、システムメタデータなどの所定のメタデータを編成し、それへのアクセスを提供することを担う。このシステムメタデータは、アーカイブに配置されるファイルに関する情報を含むとともに、構成情報、管理ＵＩに表示される情報、メトリクス、回復不能なポリシー違反に関する情報などを含む。詳細には例示していないが、さらに他のタイプのメタデータ（例えば、アーカイブされたファイルに関連付けられたユーザメタデータ）も、以下で説明するメタデータ管理システムを用いて管理することができる。
【００４５】
クラスタの典型的な一実施形態では、メタデータ管理システムは、（単なる例示にすぎない）以下のオブジェクトタイプのうちの１つ以上を含み得るメタデータオブジェクトのセットに対して永続性を提供する。
【００４６】
ＥｘｔｅｒｎａｌＦｉｌｅ：アーカイブのユーザによって知覚されるファイル。
【００４７】
ＩｎｔｅｒｎａｌＦｉｌｅ：ストレージマネージャによって保存されたファイル。典型的には、外部ファイルと内部ファイルとの間に１対多の関係があり得る。
【００４８】
ＣｏｎｆｉｇＯｂｊｅｃｔ：クラスタを構成するために使用される名前／値ペア。
【００４９】
ＡｄｍｉｎＬｏｇＥｎｔｒｙ：管理ＵＩに表示されるメッセージ。
【００５０】
ＭｅｔｒｉｃｓＯｂｊｅｃｔ：ある時点におけるアーカイブの何らかの測度（例えば、ファイル数）を表すタイムスタンプ付きのキー／値ペア。
【００５１】
ＰｏｌｉｃｙＳｔａｔｅ：何らかのポリシー違反。
【００５２】
各メタデータオブジェクトは、好ましくは変更されない固有の名前を有し得る。メタデータオブジェクトは、リージョンに編成されている。各リージョンは、正式なリージョンコピーと、「許容障害」（ＴＰＯＦ：Ｔｏｌｅｒａｂｌｅ Ｐｏｉｎｔｓ Ｏｆ Ｆａｉｌｕｒｅ）数のバックアップリージョンコピー（ゼロ個以上からなるセット）と、を含む。ゼロ個のコピーの場合、メタデータ管理システムは、スケーラブルであるが、高可用性ではない可能性がある。リージョンは、１つ以上のオブジェクト属性（例えば、完全修飾パス名などのオブジェクト名、またはその一部）をハッシュ化して、そのハッシュ値から所定数のビットを抽出することにより、選択される。これらのビットは、リージョン番号を構成する。選択されるビットは、下位ビット、上位ビット、中位ビット、または個々のビットの任意の組み合わせとすることができる。典型的な一実施形態では、所定のビットは、ハッシュ値の下位ビットである。オブジェクトの属性またはいくつかの属性は、任意の適当なハッシュ関数を用いてハッシュ化することができる。これらには、限定するものではないが、ｊａｖａ．ｌａｎｇ．ｓｔｒｉｎｇ．ｈａｓｈＣｏｄｅのようなＪａｖａベースのハッシュ関数などが含まれる。好ましくは、リージョン番号を構成するビット数は、本明細書においてｒｅｇｉｏｎＭａｐＬｅｖｅｌと呼ばれる構成パラメータにより制御される。この構成パラメータが、例えば６に設定されると、その結果、２６＝６４のリージョンが得られる。当然のことながら、さらに多くのリージョン数も許容され、リージョン数は、名前空間パーティション構成を用いて自動的に調整することができる。
【００５３】
各リージョンは、重複して保存することができる。上述のように、リージョンには、１つの正式コピーと、ゼロ個以上のバックアップコピーがある。前述のように、バックアップコピーの数は、メタデータＴＰＯＦ構成パラメータによって制御される。好ましくは、ノードあたりの正式リージョンコピー数のバランスをとるとともに、ノードあたりのリージョンコピー総数のバランスをとるように、リージョンコピーは、クラスタの全てのノード間に分散される。
【００５４】
メタデータ管理システムは、各ノードで作動するデータベースにメタデータオブジェクトを保存する。このデータベースは、リージョンマップをサポートするために用いられる。典型的なデータベースは、オープンソースとして入手可能なＰｏｓｔｇｒｅＳＱＬを用いて実現される。好ましくは、リージョンコピーごとにスキーマがあり、各スキーマには、メタデータオブジェクトのタイプごとにテーブルがある。スキーマは、簡単には、テーブル、インデックス、プロシージャ、及びその他のデータベースオブジェクトを所有し得る名前空間である。各リージョンは、好ましくは、それに専用のスキーマを有する。各スキーマは、各メタデータオブジェクトに対して１つのテーブルからなる、テーブルの完全なセットを有する。これらのテーブルのうちの１つにおける１つの行が、１つのメタデータオブジェクトに対応する。
【００５５】
本明細書で使用する場合の名前空間とは、クラスタの論理パーティションであって、基本的に、少なくとも１つの規定されたアプリケーションに固有のオブジェクトの集まりとしての役割を果たす。それぞれの名前空間は、他の名前空間に対してプライベートなファイルシステムを有する。また、１つの名前空間にアクセスすると、別の名前空間へのユーザアクセスは認められない。ノードからなるクラスタ／システムは、物理的なアーカイブインスタンスである。テナントは、名前空間（複数の場合もある）及び場合によっては他のサブテナントをグループ化したものである。最上位テナント（ＴＬＴ：Ｔｏｐ−Ｌｅｖel Ｔｅｎａｎｔ）は、親テナントを持たないテナント、例えば企業である。サブテナントは、その親が別のテナントであるテナントであり、例えば企業の財務部である。デフォルトのテナントは、デフォルトの名前空間のみを含む最上位テナントである。各クラスタ／システムは、物理的なアーカイブインスタンスである。その全体が参照により本明細書に組み込まれる米国特許出願公開第２０１１／０１０６８０２号を参照する。
【００５６】
図４に示すように、各ノード４００は、プロセスまたはコンポーネントのセットを有し、すなわち、１つ以上のリージョンマネージャ（ＲＧＭ）４０２ａ〜ｎと、メタデータマネージャ（ＭＭ）４０４と、少なくとも１つのメタデータマネージャクライアント（ＭＭＣ）４０６と、１つ以上のスキーマ４１０ａ〜ｎを含むデータベース４０８と、を有する。ＲＧＭ（複数の場合もある）、ＭＭ、及びＭＭＣコンポーネントは、Ｊａｖａ仮想マシンのような仮想マシン４１２で実行される。リージョンコピーごとに１つのＲＧＭがある。従って、正式リージョンコピー用のＲＧＭ、各バックアップリージョンコピー用のＲＧＭ、及びそれぞれの不完全リージョンコピー用のＲＧＭがある。さらに、ＲＧＭ ４０２ごとに、そのＲＧＭを管理するデータベーススキーマ４１０がある。データベースは、さらにリージョンマップ４０５を格納している。各ノードは、好ましくは、同期方式により強制される要件を備えた、リージョンマップの同じグローバルビューを有する。リージョンマネージャＲＧＭ ４０２は、（場合によって、正式、バックアップ、または不完全のものである）リージョンコピーに対するオペレーション、ならびにメタデータマネージャクライアント４０６及び他のリージョンマネージャ４０２により出された要求の実行を担う。要求は、図３に示す通信ミドルウェアまたは他のメッセージング層などの任意の適当な手段を通して所定のＲＧＭに供給される。リージョンマネージャは、例えばデータベースへの接続を提供することによって、そのＲＧＭが管理しているスキーマで動作するように構成された、それらの要求を実行する実行環境を提供する。各リージョンマネージャは、そのデータをデータベース４０８に保存する。メタデータマネージャ４０４は、そのノードにおけるメタデータ管理を担う最上位コンポーネントである。それは、リージョンマネージャ（ＲＧＭ）の作成及び破棄と、ＲＧＭが必要とするリソースである例えばクラスタ構成情報及びデータベース接続プールの編成を担う。好ましくは、（所定のノードにおける）所定のメタデータマネージャが、リーダーとしての役目を果たして、（ノードのセットまたはサブセットのうちの）どのメタデータマネージャがどのリージョンコピーを担当するのかを決定することを担う。ブリーアルゴリズムまたはその変形などのリーダー選出アルゴリズムを用いて、メタデータマネージャリーダーを選出することができる。ノードごとに複数のＭＭを作動させることは可能であるが、好ましくは、各ノードは、単一のメタデータマネージャを有する。（後述するように）名前空間パーティション構成によって、リージョン所有権が確立されると、これにより、各メタデータマネージャは、その１つ以上のリージョンマネージャからなるセットの調整を担う。システムコンポーネント（例えば、管理エンジン、ポリシーマネージャなど）は、メタデータマネージャクライアントを通して、メタデータマネージャＭＭと対話する。ＭＭＣは、（リージョンマップを用いて）所与の要求を実行するためのＲＧＭを見つけること、選択されたＲＧＭに要求を発行すること、及び選択されたＲＧＭが（例えば、そのノードが故障したことにより）利用できない場合に���求を再試行すること、を担う。後者の場合は、そのノードで新たなリージョンマップを受け取ると、再試行要求は成功することになる。
【００５７】
上述のように、リージョンマップは、各リージョンの各コピーを担当するノードを特定している。仮想マシン４１２（及び、その中の各ＲＧＭ、ＭＭ、ＭＭＣコンポーネント）は、リージョンマップ４０５へのアクセスを有し、さらに図４には、ＪＶＭにコピーされた後のリージョンマップのコピー４２０を示している。リージョンマップは、このように、所与のノードにおいてＪＶＭとデータベースの両方で利用できる。この例示的な実施形態では、各メタデータオブジェクトは、ハッシュ化されることで０ｘ０〜０ｘ３ｆｆｆｆｆｆｆの間に含まれる整数すなわち３０ビットの値が生成される属性（例えば名前）を有する。これらの値は、（例えば、範囲の上限に１を加えたときに）オーバーフロー問題を引き起こす心配なく符号付き３２ビット整数で表すことができる。３０ビットによって、大規模なクラスタの場合であっても十分な約１０億個までのリージョンが可能である。各リージョンは、ハッシュ値のセットを表し、全てのリージョンからなるセットによって、すべての可能なハッシュ値を網羅する。各リージョン用として異なるビット位置があり、それらの異なるビット位置は、固定順序であることが好ましい。これにより、各リージョンは、好ましくはハッシュ値のＲｅｇｉｏｎＬｅｖｅｌＭａｐビットを抽出することにより導出される番号によって、識別される。６４個のリージョンを可能とするように、構成パラメータが６に設定されている場合、その結果得られるハッシュ値は、０ｘ０〜０ｘ３ｆの番号となる。
【００５８】
前述のように、リージョンコピーは、「正式」、「バックアップ」、「不完全」という３つの状態のいずれかにある。リージョンコピーが正式のものである場合は、そのリージョンへの全ての要求はこのコピーに送られ、また、リージョンごとに１つの正式コピーがある。リージョンコピーがバックアップである場合、このコピーは、（正式リージョンマネージャプロセスから）バックアップ要求を受け取る。リージョンコピーは、メタデータはロードされているが、そのコピーが（典型的には、他のバックアップコピーに関して）まだ同期されない場合には、不完全である。不完全なリージョンコピーは、同期が完了するまでは、他の状態に進む資格がなく、同期が完了した時点で、そのコピーはバックアップコピーとなる。各リージョンは、１つの正式コピーと、（メタデータＴＰＯＦ構成パラメータによって設定される）所定の数のバックアップコピーまたは不完全コピーと、を有する。
【００５９】
バックアップリージョンコピーは、正式リージョンコピーとそのＴＰＯＦバックアップコピーとの間で所定のプロトコル（または「コントラクト」）を実施することにより、正式リージョンコピーとの同期が維持される。このプロトコルについて以下で説明する。
【００６０】
簡単な背景として、更新要求をＭＭＣで受け取ると、ＭＭＣは、正式リージョンコピーの場所を見つけるためにローカルリージョンマップをルックアップする。ＭＭＣは、更新要求を、正式リージョンコピーに関連付けられたＲＧＭに送り、そしてこれが、それを完遂する。さらに、更新は、（正式リージョンコピーに関連付けられたＲＧＭによって）ＴＰＯＦバックアップコピーの各々のＲＧＭにも送られる。ただし、正式ＲＧＭは、成功を表明するために、バックアップリージョンコピーに関連付けられた各ＲＧＭが更新を完遂するのを待つ必要はなく、むしろ、バックアップリージョンコピーに関連付けられたＲＧＭは、更新を受け取ると、直ちに確認応答を（正式ＲＧＭに）返すか、または返すことを試みる。バックアップ要求が受け取られたときに、それが実行される前に、この確認応答が発行される。何の障害も発生しない場合には、正式ＲＧＭは、確認応答をすべて受け取るとＭＭＣに通知し、そしてこれが、呼び出し元に成功を返す。一方、特定の障害イベントが発生した場合、影響を受けたＲＧＭが（バックアップであるか、正式のものであるかに関わらず）、それ自身を（さらに、場合によっては、影響を受けるノードを）サービスから削除することがプロトコルによって確保され、ＭＭリーダーによって新たなリージョンマップが発行される。好ましくは、ＲＧＭは、ＪＶＭを停止させることにより、自身をサービスから削除するが、任意の適当な方法を用いることができる。新たなマップは、失われたリージョンコピーに代わるものを規定する。このように、各バックアップリージョンコピーは、正式リージョンコピーのための「ホットスタンバイ」であり、従って、（正式ＲＧＭの障害か、またはロードバランシングのためなど、いずれかの理由で）もし必要なときには正式なものに昇格する資格を有する。
【００６１】
更新プロセスが失敗し得るいくつかの状況がある。それは、例えば、正式リージョンマネージャが（確認応答を待っているときに）バックアップマネージャプロセスが停止したことを示す例外が発生する場合があり、またはバックアップマネージャプロセスが確認応答を発行したにもかかわらずローカルに更新要求の処理に失敗する場合があり、またはバックアップリージョンマネージャプロセスが確認応答を発行している間に正式リージョンマネージャプロセスが停止したことを示す例外が発生する場合などがある。上述のように、あるバックアップＲＧＭが、更新を処理できない場合には、自身をサービスから削除する。また、バックアップＲＧＭまたは正式ＲＧＭのいずれかが停止したときには、新たなリージョンマップが発行される。
【００６２】
メタデータ管理システムは、リージョンのコピーの同期を維持する。正式リージョンコピーにおいてオブジェクトに対して実施される更新は、バックアップリージョンコピーにおいて再現される。更新が正式ＲＧＭによって完遂されると、同じ更新が全てのバックアップリージョンコピーに適用される。それらで障害が（ノードレベルであるか、リージョンマネージャレベルなどであるかに関わらず）発生すれば、メタデータ管理システムによって、障害が発生したノードにおけるリージョンコピーの再割当てが行われることが確保され、これにより、残りのリージョンコピーの完全性が保証される。正式ＲＧＭを含むノードが故障する場合、バックアップＲＧＭは、（現在実行中の更新の有無に関わらず）同期しているか、または更新が中断されたことのみによって同期していないか、いずれかである。後者の場合、再同期させることは容易である。バックアップリージョンは、正式リージョンとの同期が維持されているので、（バックアップから正式なものに）昇格させることは即時的である。
【００６３】
また、ノード障害によって、バックアップリージョンを失う可能性もある。バックアップリージョンは、他のいずれかのノードに、新たに不完全なリージョンを作成することによって復元される。不完全なリージョンが作成されたら、直ちに更新の記録を開始するとともに、正式リージョンからのデータのコピーを開始する。コピーが完了したら、蓄積された更新を適用することで、最新状態のバックアップを得る。そして新たなバックアップリージョンは、自身が最新状態であることをＭＭリーダーに通知し、これにより、ＭＭリーダーは、そのリージョンの（不完全からバックアップへの）昇格を含むマップを送信する。
【００６４】
なお、リージョンの数はノードの数に対応している必要はないということに留意すべきである。より一般的には、リージョンの数は、独立ノードのアレイにおけるノード数に相関してない。メタデータ管理についての更なる詳細は、米国特許第７６５７５８１号に記載されている。
【００６５】
ＩＩＩ．コンテンツとメタデータが分離されたインテリジェントなコンテンツ階層化
【００６６】
静的デジタルコンテンツ（すなわち、固定コンテンツデータ）とそのメタデータの管理ライフサイクルを分離する方法は、このインテリジェントなコンテンツ階層化の機能の核となる部分である。本方法により、分散ストレージシステムは、静的デジタルコンテンツをそのメタデータと共に格納するべき個々のストレージシステムはどれであるか、また、デジタルコンテンツのメタデータのみを格納するべき個々のストレージシステムはどれであるかを、インテリジェントに決定することが可能となる。
【００６７】
この実現形態の２つの主要な要素がある。第一に、システムのユーザは、静的デジタルコンテンツ及びそのメタデータの保存場所に関連したオブジェクトの挙動を管理する規則のセットを作成する機能を与えられる。この機能は、「サービスプラン」またはポリシーを作成して、それにオブジェクトの集まりを割り当てることにより、提供される。第二に、スケジュール可能なサービス（例えば、ストレージ階層化サービス）を定期的に実行することで、候補オブジェクトを特定し、構成されたサービスプランを選択された候補の集まりに対して実行し、ユーザにより定義された規則を適用する。
【００６８】
サービスプランまたはポリシーにおいて、オブジェクトのメタデータからコンテンツを分離するための設定可能な基準は、そのオブジェクトのメタデータの、より具体的には特定の実施形態においてシステムメタデータの、何らかの属性に基づくものである。システムメタデータは、作成日付、サイズ、コピー数、それは複製されているかどうか、など、そのオブジェクトに関するコア情報である。基準の例としては、そのオブジェクトが他のシステムに複製されているかどうか、所与のコンテンツプラットフォームシステム内にそのオブジェクトの別のコピーがあるかどうか、そのコンテンツに所定の時間アクセスがなかったこと、などが含まれる。従って、ポリシーは、複製されるオブジェクトのシステムメタデータの属性に少なくとも部分的に基づいて設定することができる。候補オブジェクトに対してポリシーを実行するために、ストレージ階層化サービスは、設定可能な基準に基づいて、その候補オブジェクトのシステムメタデータを評価する。
【００６９】
この実現形態の利用には、システムにおいて使用されるデータとメタデータのライフサイクルを分離するためにサービスプランを用いる２つの主なユースケース、すなわち、（１）複数のストレージシステムを含む複製環境と、（２）外部ストレージボリュームを備えた単独のストレージシステムと、がある。
【００７０】
ＩＩＩ．Ａ  複製環境
【００７１】
複製環境では、複数のシステムを利用してデータ保護を提供する目的で、複数のシステムを備えることができる。複製環境は、データコンテンツのソースシステムとターゲットシステムとを含む。簡単な複製トポロジでは、ソースは１つであるが、ターゲットシステムは複数の可能性がある。より完全な、連鎖した複製トポロジでは、どれがソースであり、どれがターゲットであるかは、トポロジにおけるコンテキストに依存する。例えば、システムが直列に構成されている３システム連鎖トポロジでは、連鎖の終点のシステムは、連鎖の中間のシステムを、そのソースとみなす。また、連鎖の中間のシステムは、連鎖の始めのシステムを、そのソースとみなす。
【００７２】
複製環境における本発明の１つの目的は、（ａ）データストレージにおける冗長を最小限に抑えるため、及び（ｂ）不要なデータ転送を最小限に抑えるための、オブジェクトの静的デジタルコンテンツ部分とメタデータ部分のインテリジェントなライフサイクル管理である。ソースシステムまたはターゲットシステム（複数の場合もある）のいずれかにおいて、サービスプランを定義することで、以下の挙動を規定することができる：（ａ）取得から時間量Ｔ１の経過後はメタデータのみを保持する、（ｂ）読み出しの際に、オブジェクトをリハイドレートして、時間量Ｔ２の間、保持する。
【００７３】
オブジェクトが要求されたときに、ユーザによるオブジェクトの読み出し要求に対してサービス提供することは、以下のことを含む。
１．ユーザがオブジェクトのメタデータ部分のみを要求している場合は、リモートシステムにアクセスすることなく、それをローカルに取得して、ユーザに提供する。
２．ローカルに有していないシステム上にあるオブジェクトの固定デジタルコンテンツが要求されている場合は、そのデジタルコンテンツを、ソースまたはターゲットから透過的に取得して、ユーザに返す。
３．値Ｔ２（例えば、リハイドレートの際に、Ｔ２日間、保持する）が定義されており、これが０より大きい場合、デジタルデータコンテンツを有していなかったシステムは、このコンテンツを、時間量Ｔ２の間、ローカルに保存する。これにより、ユーザは、時間Ｔ２が経過するまでは、この静的デジタルコンテンツをローカルに取得することが可能となる。時間Ｔ２の経過後に発生するサービス実行によって、ローカルな静的デジタルコンテンツは削除される。リモートコンテンツは、全く変更する必要はない。
【００７４】
以下は、異なる複製トポロジ・コンテキストの場合の２つのユースケースである。
【００７５】
ユースケース１では、複製トポロジにおけるソースシステム上のオブジェクトに対して、メタデータオンリー機能を有するサービスプランが定義される。オブジェクトの取得から時間Ｔ１が経過した後の最初のサービス実行において、階層化サービスは、
１．複製トポロジにおいてターゲットシステムにそのオブジェクトが複製されていることを確認する。
２．ターゲットシステムにおいて、オブジェクトのデータ部分が安全に保存されているとともに、メタデータオンリーとしてターゲットシステムに保存されるように要求されていないことを確認する。
３．両方の条件を満たしている場合に、オブジェクトのデータ部分を削除用にマークするとともに、ターゲットシステムにおけるデータ部分の位置をソースシステムに記録する。
【００７６】
サービスプランの完了後には、ソースシステムは、ローカルに保存されたメタデータのみを有し、複製システムにはデータ部分とメタデータが保存されている。
【００７７】
図５は、複製トポロジにおけるソースシステム上のオブジェクトに対して、メタデータオンリー機能によるユースケース１で定義された階層化サービスプロセスを示すフロー図の一例を示している。階層化基準を満たしているソースオブジェクトを、読み込みのために階層化サービスによって開く（ステップ５０２）ことにより、プロセスは開始する。ステップ５０４で、階層化サービスは、そのオブジェクトが複製トポロジ内に存在するかどうか判断する。ＮＯである場合は、プロセスは中止して、オブジェクトを閉じる（ステップ５０６）。ＹＥＳである場合は、ステップ５０８で、そのオブジェクトを現在所有している複製トポロジにおけるクラスタのＵＵＩＤ（Ｕｎｉｖｅｒｓａｌｌｙ Ｕｎｉｑｕｅ ＩＤｅｎｔｉｆｉｅｒ：ユニバーサルユニーク識別子）を用いて、開いたスタブＩＦ（Ｉｎｔｅｒｎａｌ Ｆｉｌｅ：内部ファイル）ポインタを追加し、さらにプルーニング（枝刈り）追跡のためのフラグを追加する。ステップ５１０で、スタブＩＦをフラッシュして、システムメタデータ及びカスタムメタデータをソースオブジェクトから転送する。ステップ５１２で、そのデータを有しているクラスタのＵＵＩＤへのポインタ、プルーニング情報を有するフラグ、システムメタデータ、及びカスタムメタデータを格納しているスタブＩＦを閉じる。ステップ５１４で、ソースオブジェクトを閉じて、削除用にマークし、そして階層化サービスによって削除する。
【００７８】
ユースケース２では、複製トポロジにおけるターゲットシステム上のオブジェクトに対して、メタデータオンリー機能を有するサービスプランが定義される。ソースシステム上の複製キューにおけるオブジェクトの処理中に、複製サービスは、
１．そのオブジェクトは、ターゲットシステムにおいてメタデータオンリーの候補となるかどうか判断する。
２．ソースシステムにおいて、オブジェクトのデータ部分が安全に保存されているとともに、メタデータオンリーとするように要求されていないことを確認する。
３．両方の条件を満たしている場合には、完全なデータを複製するのではなく、オブジェクトのメタデータ部分のみを、ソースシステム上のデータ部分の位置へのポインタと共に、ターゲットシステムに送る。
【００７９】
サービスプランの完了後には、ターゲットシステムは、ローカルに保存されたメタデータのみを有する。データ部分は、ソースシステムに保存されている。
【００８０】
ＩＩＩ．Ｂ  外部ストレージボリュームを備えた単独のストレージシステム
【００８１】
典型的なストレージシステムは、そのシステムの内部にのみ、ストレージボリュームを包含および管理している。本発明によれば、一次ストレージシステムのコンテキストで利用できるストレージにも、他のネットワーク技術（例えば、ＮＦＳ）を通して公開されるストレージボリュームが含まれる。外部ストレージボリューム上で、いつ、どの場所にコンテンツを保存すべきかを決定するための、ポリシー及びプロセスを構築する必要がある。
【００８２】
外部ストレージボリュームを備えた単独のストレージシステムのコンテキストでは、オブジェクトの静的デジタルコンテンツ部分とメタデータ部分のインテリジェントなライフサイクル管理を用いることにより、（ａ）低レイテンシ／高コストの内部データストレージの利用を最適化し、（ｂ）コンテンツプラットフォーム（例えば、ＨＣＰ）管理下のまま、外部媒体へのデータ保存を可能とする。サービスプランによって、以下の挙動を規定することができる：（ａ）取得から時間Ｔ１の経過後は、静的デジタルコンテンツの１コピーを外部ストレージプールに移す、（ｂ）読み出しの際に、静的デジタルコンテンツをリハイドレートして、時間Ｔ２が経過するまではローカルに保持する。サービスプラン定義には、以下の設定が含まれる。
１．ネットワークプロトコル仕様を規定する保存用の外部ボリューム定義（例えば、ＮＦＳサーバにより提供されるＮＦＳ共有）。
２．コンテンツが外部ボリュームに保存されなければならなくなるまでの時間量Ｔ１。
３．外部ストレージに書き込まれる際のデータのオプション圧縮。
４．外部ストレージに書き込まれる際のデータのオプション暗号化。
【００８３】
階層化サービスが、サービスプラン定義に基づいて、あるオブジェクトが外部ストレージに書き込まれる候補であると判断する場合、その処理には、以下のことが含まれる。
１．そのオブジェクトが、（必要な場合に）複製され、（必要な場合に）インデキシングされていることを確認する。
２．外部ボリュームに送るデータを、圧縮が要求されている場合は、圧縮する。
３．外部ボリュームに送るデータを、暗号化が要求されている場合は、暗号化する。
４．オブジェクトの静的デジタルコンテンツを外部ボリュームに移す。
５．オブジェクトの静的デジタルコンテンツ部分のローカルコピーを削除用にマークするとともに、外部ボリューム上のデータ部分の位置を記録する。
【００８４】
この実行後には、ソースシステムは、ローカルに保存されたメタデータのみを有する。固定デジタルコンテンツ部分は外部ボリュームに保存されている。
【００８５】
外部ボリュームに保存されているオブジェクトに対するユーザによる読み出し要求に対してサービス提供することは、以下のことを含む。
１．ユーザがオブジェクトのメタデータ部分のみを要求している場合は、外部ボリュームにアクセスすることなく、それをローカルに取得して、ユーザに返す。
２．システムがローカルに有していないオブジェクトの静的デジタルコンテンツ部分が要求されている場合は、そのデジタルコンテンツを、外部ボリュームから透過的に取得し、圧縮解除、暗号化解除して、ユーザに提示する。
３．リハイドレート時間の値Ｔ２が定義されており、それが０より大きい場合、システムは、そのコンテンツを、時間量Ｔ２の間、ローカルに保存する。これにより、ユーザは、経過時間Ｔ２の間は、このデータコンテンツをローカルに取得することが可能となる。経過時間Ｔ２の後に発生するサービス実行によって、ローカルな静的デジタルコンテンツ部分は削除される。外部ボリュームに保存されているリモートコンテンツは、全く変更する必要はない。
【００８６】
図６は、メタデータのみをローカルに保存し、固定デジタルコンテンツを外部ボリュームに保存する外部階層化のための階層化サービスプロセスを示すフロー図の一例を示している。階層化基準を満たしているソースオブジェクトを、読み込みのために階層化サービスによって開く（ステップ６０２）ことにより、プロセスは開始する。ステップ６０４で、スタブＩＦを作成する。ステップ６０６で、外部のデータＩＦの位置を用いて、開いたスタブＩＦにポインタを追加する。さらに、外部ストレージ階層において、外部ターゲット上に外部ＩＦを作成する（ステップ６２２）。データを、開いた外部ＩＦデータペイロードに転送し、オプションとして、暗号化または圧縮する（ステップ６２４）。オリジナルオブジェクトのデータ部分を格納している外部ＩＦをフラッシュして、閉じる（ステップ６２６）。
【００８７】
次に、ステップ６０８で、スタブＩＦをフラッシュして、システムメタデータ及びカスタムメタデータをソースオブジェクトから転送する。ステップ６１０で、外部ＩＦへのポインタ、圧縮または暗号化されている場合のフラグ、暗号化キーに関する情報、システムメタデータ、及びカスタムメタデータを格納しているスタブＩＦを閉じる。ステップ６１２で、ソースオブジェクトを閉じて、削除用にマークし、そして階層化サービスによって削除する。
【００８８】
コンテンツとメタデータを分離した、このインテリジェントなコンテンツ階層化機構によって、オブジェクトストレージシステムのデータ保護レベル、効率的な更新、オブジェクトのシステムメタデータ及びカスタムメタデータのインデキシングを供与するインテリジェントなコンテンツ階層を作成するとともに、ネットワークストレージデバイスに移動させるデータの圧縮及び暗号化オプション提供する。
【００８９】
図７は、階層化サービスを実施するための装置の一例を示している。装置７００は、オブジェクト（破線で示す７１２）が保存されるオブジェクトシステム（破線で示す７１０）の一部、またはオブジェクト７２２を保存するための（オブジェクトシステム及び外部ストレージを含む）システム７２０から分離した管理コンピュータの一部、または上述のような独立ノード冗長アレイ（図１〜４を参照）のシステムの一部、などであり得る。装置７００は、プロセッサまたはコントローラ７０２と、メモリ７０４とを備え、オブジェクトに対して階層化サービスオペレーションを実行するように機能する。
【００９０】
ユーザエクスペリエンス
【００９１】
これらのコンテンツ階層化機能を実現したシステムにおけるユーザエクスペリエンスは変更しない。ユーザは、システムにおいてオブジェクトを保存し、すべての熟知しているオブジェクトパラメータ（オブジェクトの寿命期間、オブジェクトの所望のコピー数など）を定義する。その後、オブジェクトの寿命期間の間は、それをユーザが利用できる状態が継続する。オブジェクトの追加プロパティを、システム管理者が定義することができる。それらのプロパティには、２つの項目、すなわちオブジェクトのデータ部分のストレージ階層、またはトポロジ内の他のシステム上にデータ部分を保存する許可、が含まれる。
【００９２】
ケース１：複製環境におけるデータ共有を伴うメタデータオンリー・オブジェクト
【００９３】
データ保存／検索システムは、様々な複製トポロジを有する環境で頻繁に使用される。この実現形態により、オブジェクトのデータ部分についてユーザが要求するデータ保護レベル（ＤＰＬ）が、関与するシステムごとではなく複製トポロジ全体において維持されることが可能となる。これによって、各システムで同じデータの利用可能性及び安全性が提供される一方で、複製トポロジ全体ではストレージ使用量が大幅に節約される。
【００９４】
オブジェクトのライフサイクルは、従来通りに開始する。ユーザは、システムでデータを保存し、必要かつ多用されるメタデータをいずれも作成する。システムは、そのオブジェクト用に定義された規則に従って複製するためのキューに、オブジェクトを入れる。オブジェクトは、どの部分が複製リンク先で必要とされるのかに関する新たな知識を有しているので、その部分のみが複製に送られることになる。複製システムが、保存ポリシーにおいてメタデータオンリーとして規定されている場合は、オブジェクトのメタデータ部分のみが送られることになる。これによって、帯域幅と、ターゲットシステムのストレージ容量が共に節約される可能性がある。複製システムのユーザは、オブジェクトのデータ部分とメタデータ部分の両方へのフルアクセスを有するが、メタデータは複製にローカルに保存されることになっており、データは複製リンクを介してアクセス可能にされることになっている。多くの場合、利用にはメタデータで十分であるため、追加的なデータ転送を行うことなく、ユーザ要求が満たされる。
【００９５】
ケース２：ストレージ階層がＮＦＳ共有として定義される
【００９６】
オブジェクトのライフサイクルは、システムでオブジェクトが保存されたときに開始する。次に、ユーザは、ユーザにより必要かつ常用される何らかのメタデータを作成することができる。ユーザはメタデータのみに関心があるので、メタデータが作成された後には、オブジェクトデータは冗長となる。
【００９７】
システム管理者により、オブジェクトのデータ部分をＮＦＳ共有に移行させることが許可されると、システムは、データ部分を、コンテンツプラットフォーム（例えば、ＨＣＰ）の低レイテンシ・ハードウェアから、より高レイテンシかつより安価なＮＦＳ共有に移す。これによって、ユーザエクスペリエンスまたはデータの保護及び安全性に影響を及ぼすことなく、高価かつ貴重なストレージのより良い利用が可能となる。ユーザは、引き続き、同じ速度でのオブジェクトメタデータへのアクセスを有する。ユーザがオブジェクトのデータ部分を要求する場合、システムは、それを取得して、わずかな遅延を伴って要求に対してサービス提供するが、ただし、そのプロセスは、ユーザに対して完全に透過的である。同じデータ保護レベル（ＤＰＬ）及びデータ完全性が、オブジェクトのライフサイクル全体にわたって維持される。
【００９８】
当然のことながら、図１及び４に示すシステム構成は、本発明を実施することができるコンテンツプラットフォームまたは複製オブジェクトストレージシステムを含むシステムの単なる例示であり、本発明は特定のハードウェア構成に限定されない。本発明を実施するコンピュータ及びストレージシステムは、さらに、周知のＩ／Ｏデバイス（例えば、ＣＤ及びＤＶＤドライブ、フロッピーディスクドライブ、ハードドライブなど）を備えることもでき、これらにより、上記発明の実施に使用されるモジュール、プログラム、及びデータ構造を保存し、読み出すことができる。これらのモジュール、プログラム、及びデータ構造は、コンピュータ可読媒体上に符号化することができる。例えば、本発明のデータ構造は、発明で使用するプログラムが常駐する１つ以上のコンピュータ可読媒体とは独立のコンピュータ可読媒体に保存することができる。システムのコンポーネントは、例えば通信ネットワークであるデジタルデータ通信の任意の形式または媒体によって、相互接続することができる。通信ネットワークの例として、ローカルエリアネットワーク、例えばインターネットである広域ネットワーク、無線ネットワーク、ストレージエリアネットワークなどが含まれる。
【００９９】
本明細書では、発明についての完全な理解を与えるため、説明の目的で様々な詳細について記載している。しかしながら、本発明を実施するために、これら特定の詳細のすべてが必要とされるわけではないことは、当業者には明らかであろう。また、本発明は、通常はフローチャート、フロー図、構造図、またはブロック図として表されるプロセスとして記述できるということに留意すべきである。フローチャートでは、オペレーションが逐次プロセスとして記述され得るが、それらのオペレーションの多くは、並列または同時に実行することができる。さらに、オペレーションの順序は並べ替えることができる。
【０１００】
当該技術分野で知られているように、上記オペレーションは、ハードウェア、ソフトウェア、またはソフトウェアとハードウェアの何らかの組み合わせによって実行することができる。本発明の実施形態のいくつかの態様は、回路及び論理デバイス（ハードウェア）を用いて実装することができる一方、他の態様は、機械可読媒体（ソフトウェア）に格納された命令を用いて実装することができ、それらの命令は、プロセッサで実行される場合、本発明の実施形態を実施する方法をプロセッサに実行させるものである。また、本発明のいくつかの実施形態は、ハードウェアのみで実行することができる一方、他の実施形態は、ソフトウェアのみで実行することができる。さらに、記載された種々の機能は、単一のユニットで実行することができ、または、あらゆる方法で多くのコンポーネントに分散させることができる。ソフトウェアで実行する場合、本方法は、コンピュータ可読媒体に格納された命令に基づいて、汎用コンピュータなどのプロセッサで実行することができる。命令は、所望であれば圧縮および／または暗号化形式で媒体に保存することができる。
【０１０１】
上記のことから、本発明は、オブジェクトの非構造化コンテンツ及びそのメタデータ用の構造を構築する青写真を定義するため、ならびに効率的なインデキシング及び検索を容易にするための、コンテンツクラスと呼ばれる機構を提供する方法、装置、及びコンピュータ可読媒体に格納されたプログラムを提供するものであることは明らかであろう。また、本明細書では具体的な実施形態を例示及び記載しているが、当業者であれば理解できるように、同じ目的を達成すると予測される任意の構成を、開示された特定の実施形態の代用とすることができる。本開示は、本発明のあらゆる改良または変形を包括するものであり、また、当然のことながら、以下の請求項において使用される用語は、本明細書に開示の特定の実施形態に発明を限定するものと解釈されるべきではない。むしろ、本発明の範囲は、かかる請求項によって権利が認められる均等物の全範囲と共に、確立されたクレーム解釈論に従って解釈されるべき以下の請求項によって、完全に決定されるべきである。
【図１】
0006009097.tif 000002
【図２】
0006009097.tif 000003
【図３】
0006009097.tif 000004
【図４】
0006009097.tif 000005
【図５】
0006009097.tif 000006
【図６】
0006009097.tif 000007
【図７】
0006009097.tif 000008