(57)【要約】【課題】  共有記憶を持つ対称的マルチコンピュータ・アーキテクチャにより容量及び性能の観点でファイル記憶（３００）のスケーラビリテイを可能にするシステム及び方法を提供する。【解決手段】  システム内に記憶されたデータの明瞭な移動及び／又は認識を必要とせずに記憶及びプロトコル処理資源をシステムへ追加できる（又は削除できる）。本発明は、クライアント（３０２、３０４、３０６、３０８）がいずれかの他の外部プロトコル処理ノードから検索される複数の外部プロトコル処理ノードに記憶されたファイルをアクセスすることを可能にする。アクセスはいずれかのゲートウェイ・サービス・ノード（３１２ａ、３１２ｂ、３１２ｃ）により配達される。
2005530280.tif 000002
【特許請求の範囲】
【請求項１】
ファイル記憶システムであって、
それぞれのファイル識別子を持つファイルへアクセスするためにクライアントからの要求をサービスするように構成されたゲートウェイ・サービスと、
ファイルに対応したファイルデータの永続的記憶を与えるように構成された記憶サービスと、
ファイルに対応したメタデータを維持するように構成されたメタデータ・サービスとを備え、メタデータの部分は記憶サービス中のファイルのそれぞれの位置をそれぞれのファイル識別子と相互に関係付け、
ゲートウェイ・サービスは、ファイル識別子に従い記憶サービス中のビットファイル・データの位置を決定するためにメタデータ・サービスと通信し、そして決定された位置に従いクライアントへビットファイル・データへのアクセスを提供するために記憶サービスと通信し、これによりクライアントは決定された位置のファイルへアクセスするためにはファイル識別子を与えることだけが必要とされるファイル記憶システム。
【請求項２】
記憶サービスは、複数の記憶装置を含み、ビットファイル・データの位置は複数の記憶装置と関連付けられている請求項１に記載のファイル記憶システム。
【請求項３】
記憶サービスは、記憶装置の数がスケーラブルであるように構成されている請求項２に記載のファイル記憶システム。
【請求項４】
記憶サービス及びメタデータ・サービスは、ある１つのファイルに対応するビットファイル・データの位置が複数の記憶装置の２以上と関連付けられように構成されている請求項２に記載のファイル記憶システム。
【請求項５】
２以上の複数の記憶装置は冗長性スキームにより決定される請求項４に記載のファイル記憶システム。
【請求項６】
ゲートウェイ・サービスは、ある１つのファイルと関連したクライアント要求及びメタデータ・サービスから決定された位置に従い、２以上の複数の記憶装置の内の故障した装置からではなく２以上の複数の記憶装置の内の動作可能な装置へのアクセスを提供するように構成されている請求項５に記載のファイル記憶システム。
【請求項７】
２以上の複数の記憶装置は、ストリッピング・スキームに従い決定される請求項４に記載のファイル記憶システム。
【請求項８】
ゲートウェイ・サービスは、複数のゲートウェイ・サービス・ノードを含み、ゲートウェイ・サービス・ノードはメタデータ・サービス、記憶サービス及びクライアントと均一に通信するように構成されている請求項１に記載のファイル記憶システム。
【請求項９】
クライアントからの要求を複数のゲートウェイ・サービス・ノードへ分配するように構成された負荷平衡をさらに含む請求項８に記載のファイル記憶システム。
【請求項１０】
ゲートウェイ・サービス・ノードは、クライアント・ファイル要求に実質的に同じ性能を提供する請求項８に記載のファイル記憶システム。
【請求項１１】
ゲートウェイ・サービスは、ゲートウェイ・サービス・ノードの数がスケーラブルであるように構成されている請求項８に記載のファイル記憶システム。
【請求項１２】
メタデータ・サービスは、複数のメタデータ・ノードを含み、メタデータ・ノードは、メタデータを維持しそしてゲートウェイ・サービスと実質的に均一に通信するように構成された請求項１に記載のファイル記憶システム。
【請求項１３】
メタデータ・サービスは、階層的記憶管理スキームを実現するように構成されている請求項１に記載のファイル記憶システム。
【請求項１４】
メタデータ・サービスは階層的記憶管理スキームを実現するように構成されていて、複数の記憶装置の第１組は第１容量と性能特性を持ち、複数の記憶装置の第２組は第１容量と性能特性とは異なる第２容量と性能特性を持ち、メタデータ・サービスは記憶装置の第１組から第２組へのビットファイル・データの移動を管理するために記憶サービスと協力し、これによりクライアントが移動されたビットファイル・データに対応する移動されたファイルへのアクセスを要求する時に移動されたファイルに対応するファイル識別子を供給することのみが必要な請求項２に記載のファイル記憶システム。
【請求項１５】
クライアントが、ＮＦＳクライアント、ＣＩＦＳクライアント、ＨＴＴＰクライアント、及びＦＴＰクライアントの内の少なくとも１つを含み、ゲートウェイ・サービスはクライアントにより使用されるそれぞれのプロトコルに従いクライアント要求をサービスするようにさらに構成されている請求項１に記載のファイル記憶システム。
【請求項１６】
ファイル記憶システムであって、
ファイル識別子をそれぞれ持つファイルへアクセスするクライアントからの要求をサービスするように各々が構成されたスケーラブルな数のゲートウェイ・サーバーと、
ファイルに対応したビットファイル・データの永続的な記憶を提供するように各々が構成されたスケーラブルな数の記憶サーバーと、
ファイルに対応したメタデータを維持するように構成されたメタデータ・サービスとを備え、メタデータの部分は記憶サービス中のファイルのそれぞれの位置をそれぞれのファイル識別子と相互に関係付け、
ゲートウェイ・サーバーの各々は、ファイル識別子に従い記憶サービス中のビットファイル・データの位置を決定するためにメタデータ・サービスと通信し、そして決定された位置に従いクライアントへビットファイル・データへのアクセスを提供するためにビットファイル記憶サーバーと通信し、これによりスケーラブルな数が第１の値を持つ時にファイルにアクセスしたクライアントはスケーラブルな数が第１の値と異なる第２の値を持つ時にファイルにアクセスするのに同じファイル識別子を与えることだけが必要とされるファイル記憶システム。
【請求項１７】
記憶されたファイルへの共有アクセスを提供する方法であって、
それぞれのファイル識別子を持つファイルへアクセスするためにクライアントからの要求をサービスし、
第１記憶装置中にファイルに対応したファイルデータの永続的記憶を与え、
第１記憶装置と異なる第２記憶装置内にファイルに対応したメタデータを維持し、メタデータの部分は第１記憶装置中のファイルのそれぞれの位置をそれぞれのファイル識別子と相互に関係付け、
第２記憶装置内に維持されているメタデータからのファイル識別子に従い第１記憶装置中のビットファイル・データの位置を決定し、そして
決定された位置に従い第１記憶装置のビットファイル・データへのアクセスをクライアントに提供し、これによりクライアントは決定された位置のファイルへアクセスするためにファイル識別子を与えることのみが必要とされる方法。
【請求項１８】
第１記憶装置がいくつかの記憶装置を含み、ビットファイル・データの位置がいくつかの記憶装置に関連付けられている請求項１７に記載の方法。
【請求項１９】
維持するステップが、いくつかの記憶装置のスケーリングを説明することを含む請求項１８に記載の方法。
【請求項２０】
維持するステップが、関係するファイルのある１つに対応するビットファイル・データの位置をいくつかの記憶装置の内の複数に相互に関連付けることを含む請求項１８に記載の方法。
【請求項２１】
冗長性スキームに従い、いくつかの記憶装置の内の複数を決定することをさらに含む請求項２０に記載の方法。
【請求項２２】
ある１つのファイルと関連したクライアント要求及び決定された位置に従い、いくつかの記憶装置の内の複数の中から故障した装置ではなくいくつかの記憶装置の内の複数の中から動作可能な装置へのアクセスを提供することをさらに含む請求項２１に記載の方法。
【請求項２３】
ストリッピング・スキームに従い、いくつかの記憶装置の内の複数を決定することをさらに含む請求項２０に記載の方法。
【請求項２４】
サービスするステップが、複数のゲートウェイ・サービス・ノードにより均一な態様で要求をサービスすることを含む請求項１７に記載の方法。
【請求項２５】
クライアントからの要求を複数のゲートウェイ・サービス・ノードに分配することをさらに含む請求項２４に記載の方法。
【請求項２６】
ゲートウェイ・サービス・ノードは、クライアントのファイル要求に実質的に同じ性能を与える請求項２４に記載の方法。
【請求項２７】
サービスするステップが、ＮＦＳプロトコル、ＣＩＦＳプロトコル、ＨＴＴＰプロトコル、及びＦＴＰプロトコルの内の少なくとも１つに従い要求をサービスすることを含む請求項１７に記載の方法。
【請求項２８】
あるビットファイル・データを第１記憶装置から第１及び第２記憶装置と異なる第３記憶装置へ移動し、
移動されたビットファイル・データの移動された位置を反映するために移動されたビットファイル・データに対応するメタデータを更新することをさらに含み、
これにより、クライアントは移動された位置のファイルにアクセスするために移動されたビットファイルと関連したファイル識別子を与えることのみが必要とされる請求項１７に記載の方法。
【請求項２９】
第１記憶装置内の古い位置からビットファイル・データを削除することをさらに含む請求項２８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、本出願人に共通に所有された同時係属のデイビット・ラッカ氏等による２０００年１１月１０日出願の発明の名称「スケーラブル記憶システム」の米国特許出願（Ａｔｔｙ．Ｄｋｔ．ＺＡＭ−０００１）、２０００年９月１１日出願の発明の名称「区画化された移動可能なメタデータを持つ記憶システム」の米国特許出願シリアル番号０９／６５９，１０７（Ａｔｔｙ．Ｄｋｔ．ＺＡＭ−０００３）、及び、２０００年９月１９日出願の発明の名称「コンポーネントの分離を持つファイル記憶システム」の米国特許出願シリアル番号０９／６５９，１０７（Ａｔｔｙ．Ｄｋｔ．ＺＡＭ−０００４）に関連する。
【０００２】
本発明は、一般に、複数コンピュータ記憶アーキテクチャに関し、より詳細には、共有されたファイル記憶内の性能及び容量の高度のスケーラビリテイを支援するシステム及び方法に関する。
【背景技術】
【０００３】
従来、あるファイル・サーバーに記憶されたファイルは、同じファイル・サーバーから検索されなければならない。大変大きな数のファイル・サーバーを持つ巨大にスケーラブルなシステムでは、あるファイル・サーバーがスペースを消費し又は処理資源を消費する時、ファイルデータ及びメタデータの一部は、別のファイル・サーバーへ明確に移動されなければならず、そして遠隔ノードはこの変化を認めるために明確に再構成されなければならない。
【０００４】
図１を最初に参照すると、従来のネットワーク付属記憶（ＮＡＳ）１００の構成が示されている。ＮＡＳ１００では、限定的ではなく、ネットワーク・ファイル・システム（ＮＦＳ）クライアント１０２、共通インターネット・ファイル・システム（ＣＩＦＳ）クライアント１０４、ハイパーテキスト転送プロトコル（ＨＴＴＰ）クライアント１０６、及びファイル転送プロトコル（ＦＴＰ）クライアント１０８などのネットワーク・プロトコルが、複数のファイル・サーバー１１２ａ、１１２ｂ及び１１２ｃへアクセス・ネットワーク１１０を介して接続されている。各ファイル・サーバー１１２は、専用記憶アレイ１１４に接続されていて、各記憶アレイ１１４は専用のディスク１１６をサービスする。すなわち、ファイル・サーバー１１２ａは、記憶アレイ１１４ａに接続されていて、記憶アレイ１１４ａはディスク１１６ａに接続されている。代替的な実施の形態では、ネットワーク管理者は、ファイル・サーバー１１２ａが記憶アレイ１１４ｂに接続され、ファイル・サーバー１１２ｂが記憶アレイ１１４ｃに接続され、そしてファイル・サーバー１１２ｃが記憶アレイ１１４ａに接続されるようにネットワークを再構成する。このアーキテクチャの特性は、ネットワークの再構成がネットワーク管理者の介入を必要とすることである。
【０００５】
図２を参照すると、従来の記憶エリア・ネットワーク（ＳＡＮ）２００が示されている。ＳＡＮ２００では、限定的ではなく、ネットワーク・ファイル・システム（ＮＦＳ）クライアント２０２、共通インターネット・ファイル・システム（ＣＩＦＳ）クライアント２０４、ハイパーテキスト転送プロトコル（ＨＴＴＰ）クライアント２０６、及びファイル転送プロトコル（ＦＴＰ）クライアント２０８などのネットワーク・プロトコルが、複数のファイル・サーバー２１２ａ、２１２ｂ及び２１２ｃへアクセス・ネットワーク２１０を介して接続されている。各ファイル・サーバー２１２は、ブロック・レベル・プロトコルを使用して記憶アレイと通信する。そして、各ファイル・サーバー２１２が１つ又は複数のディスク・ボリューム２１６へ割当てられる。例えば、限定することなく、ファイル・サーバー２１２ａはディスク・ボリューム２１６ａ１に割当てられ、ファイル・サーバー２１２ｂはディスク・ボリューム２１６ａ２及び２１６ｃ１に割当てられ、ファイル・サーバー２１２ｃは２１６ｂの全てに割当てられ、そして、ディスク・ボリューム２１６ｃ２は、後の割当てに利用可能な割当てない予備ディスク・ボリュームである。ＳＡＮのファイル・サーバーは全てのディスク・ボリュームへ完全に接続することができるが、すなわち、ファイル・サーバーは記憶エリア・ネットワーク上のどんなディスク・ボリュームにアクセスできるが、ファイル・サーバーはこのファイル・サーバーに割当てられたディスク・ボリュームを使用でき、他のファイル・サーバーに割当てられたディスク・ボリューム直接使用してはならない。このアーキテクチャの特性は、ディスク資源が物理的ではなく論理的にファイル・サーバーへ割当てられていることである。しかし、一旦、資源が割当てられると、別のファイル・サーバーはそれらの資源を公式な再割当てが発生するまで使用できない。従来の手法を、記憶エリア・ネットワーク（ＳＡＮ）を利用した既存のクラスターに基づいたファイル記憶ソリューションと明確に異なる態様で、ファイル・サーバー、専用「ファイラー」、及び階層的大量記憶システムに拡張するための努力はなされていない。
【０００６】
複数のファイル・サーバーから構築されるファイル記憶システムへのこれらの従来の手法では、各ファイル・サーバーはグローバル・ファイル・システムの一部を「所有」する（すなわち、名前空間のこの部分に属する全てのファイルのメタデータ及びファイル・システムの名前空間の一部）。従って、あるファイル・サーバーに記憶されたファイルは後でこの特定のファイル・サーバーを介してのみアクセスできる。階層的記憶システムの場合、ファイル・サーバーは物理的ファイルデータ貯蔵（例えば、テープ又は光ディスク・ジュークボックス）を共有するが、ファイルはファイル・システム名前空間及びメタデータ（属性）中にファイルのエントリイを保持するファイル・サーバーを介してのみアクセスできる（読取・書込みモードで）。
【０００７】
一方、ＳＡＮに基づいたクラスター・ファイル・システムは、クラスター・ノード間でブロック指向装置の共有を可能にする。しかし、この機能性は、ＳＣＳＩロック等、記憶装置中に構築された特定のサポートに依存する。従って、ＳＡＮに基づくクラスター・ファイル・システム・ソリューションは、記憶装置中に構築された追加の機能性に依存するため限定される。
【発明の開示】
【０００８】
本発明は、記憶サーバー上の外部プロトコル処理ノードの１つにより記憶されたファイル及び関連した記憶装置がどんな他のノードを通じても検索できる対称的共有記憶アーキテクチャである。従って、システムの性能をスケールするために新しい外部プロトコル処理ノードを追加するだけで十分である。又は、外部のクライアント・アプリケーションに透明な方法でシステムの容量をスケールするために空の記憶ノードを追加するだけで十分である。
【０００９】
また、この手法は、記憶アーキテクチャの透明で「垂直」なスケーラビリテイを可能にする。「古い」データに対する記憶容量を提供するために大量の安価な記憶（低性能、安価ファイル・サーバー、テープ・ロボット、光ディスクを持つジュークボックス等）をも持ち、データの「作業組」を保持する限定された数の高価で高性能のファイル・サーバーを使用できる。データの移動は完全に透明且つ自動的である（ファイルを書込む又は読出す要求に応じて、又は、ファイルが三次記憶へ移動される時には非同期的に）。また、あるビットファイル記憶サービス（ＢＳＳ）ノード上に最初に記憶されたファイルデータは後でいずれの他のノードに移動できる。
【００１０】
本発明による対照的共有記憶アーキテクチャは、従来の記憶アレイ（ディスクの組）内のディスクの代わりに、ゲートウェイ又は記憶サーバーなどのシステム内のノードの冗長な組の構成を可能にする。従来の記憶アレイ（ＲＡＩＤ）では、ディスクがクラッシュした時、データは利用可能なままであるが、記憶アレイに取り付けられているファイル・サーバーが停止した時は利用不可能である。対称的共有記憶アーキテクチャでは、どのコンポーネント（特に、いずれのプロトコル処理ノード又は記憶ノード）がクラッシュしてもデータの利用可能性に影響しない。
【００１１】
本発明のこれら及び他の観点と特徴は、添付図面を参照して本発明の特定の実施の形態を説明する以下の記述より当業者に明らかとなる。
【００１２】
〔本発明の好適な実施の形態の詳細な説明〕
本発明を、当業者が本発明を実施できるようにするため本発明の例を示す添付図面を参照して詳細に説明する。本発明のある要素の実現は、当業者に明らかなように、ソフトウェア、ハードウェア、又はそれらの組合わせを使用して達成できる。図面及び以下の例は本発明の範囲を限定するものではない。さらに、本発明のある要素は部分的に又は完全に既知のコンポーネントを使用して実現できる場合、本発明の理解のために必要なこのような既知のコンポーネントの部分のみが説明される。このような既知のコンポーネントの他の部分の詳細な説明は本発明を明確にするために省略される。さらに、本発明は、説明のためにここに言及される既知のコンポーネントの現在及び将来に知られる均等物を含む。
【００１３】
図３に、本発明の１つの実施の形態による対称的共有記憶システム３００の例が示されている。図３に示すように、対称的共有記憶システム３００のクライアントは、ＮＦＳクライアント３０２、ＣＩＦＳクライアント３０４、ＨＴＴＰクライアント３０６、又は、ＦＴＰクライアント３０８などのさまざまなアプリケーション・プログラムを介してファイラーのデータ・ネットワークにアクセスする。アプリケーションのこれらのタイプは説明目的のためにのみに与えられており、これに限定するものではない。クライアント・アプリケーションは、負荷平衡ノード（例えば、パブリック・ネットワーク３０９を経由して）を介してデータ・ネットワークに接続する。負荷平衡ノードは、性能の利用可能性、冗長性、及びスケーラビリテイのレベルの増加を提供するプライベート負荷平衡ネットワーク３１０から構成される１つ又は複数の負荷平衡ノードであることができる。例えば、２つの負荷平衡ノードは、１つの負荷平衡ノードよりも大きい性能の利用可能性、冗長性、及びスケーラビリテイを提供する。３つの負荷平衡ノードは２つよりも大きいものを提供できる。図３に示される単一の負荷平衡ノードは説明目的のためのみであり、これに限定されるものではない。
【００１４】
そして、負荷平衡ノード・ネットワーク３１０は、１つ又は複数のゲートウェイ・サービス・ノード３１２（例えば、ノード３１２ａ−ｃ）に接続する。ゲートウェイ・サービス・ノード３１２は、内部ネットワーク３１４に接続されている。１つの実施の形態では、内部ネットワーク３１４は、スイッチド・インターネット・プロトコル（ＩＰ）に基づいたネットワークであるが、本発明はこれに限定されない。内部ネットワーク３１４は、１つ又は複数のビットファイル記憶サーバー３２４ａ−ｄ、及び、記憶装置３２６ａ−ｄを構成する分散ビットファイル記憶サービス（ＢＳＳ）３２４への接続を提供する１つ又は複数のネットワーク・サービスからなる。また、内部ネットワーク３１４は、１つ又は複数のメタデータ・サーバー３１６ａ−ｂ及び記憶装置３１８ａ−ｂから構成される分散メタデータ・サービス（ＭＤＳ）３１５、ビットファイル記憶サービス・マネージャ（ＢＳＳマネージャ）３２０、システム管理サービス（ＳＭＳ）３２８、及び主３３１及びバックアップ・サーバー３３２から構成されるライフ支援サービス（ＬＳＳ）３３０、及び、１つ又は複数のＣＤＢサーバー３２５ａ−ｂから構成される構成データベース・サーバー（ＣＤＢ）３２９、及びデータベース３２７ａ−ｂに接続されている。ファイラー３００は、４つのビットファイル記憶サービス３２４ａ−ｄから構成される分散ＢＳＳ３２４、２つのメタデータ・サーバー３１６ａ及び３１６ｂから構成される分散ＭＤＳ３１５、主サーバー３３１及びバックアップ・サーバー３３２から構成されるＬＳＳ３３０、２つのＣＤＢサーバー３２５ａ−ｂから構成されるＣＤＢサーバー３２９、ＢＳＳマネージャ・サーバー３２０の１つのインスタンス、及び、ＳＭＳ３２８の１つのインスタンスを含むものとして示されているが、当業者は、ここでの教示に基づいて、追加のビットファイル記憶サーバー３２４、メタデータ・サーバー３１６、ＢＳＳマネージャ・サーバー、ＳＭＳインスタンス３２８、及びＬＳＳインスタンスがネットワークに追加でき、それでも、なお、本発明の範囲と精神の中に入ることが理解できる。大部分のサービスは冗長性を提供する。すなわち、それらは一対のサーバーを持つ。しかし、ＢＳＳマネージャ及びＳＭＳなどのいくつかのサービスは、状態が無く、自動的に再スタートされる。この一対の構成及び状態無しの特徴により、システムは完全に冗長性を持ち、一点の故障も持たない。
【００１５】
ゲートウェイ・サービス（ＧＳ）ノード３１２ａ乃至３１２ｃは、外部のアクセスを全体システムへ与え、そしてユーザによりアクセスできる唯一のサービスである。ＧＳ３１２は、内部プライベート・ネットワーク３１４と外行き負荷平衡ネットワーク３１０の両方へ接続されている。しかし、ＧＳは内部クライアント及び外部クライアントと通信するが、内部プライベート・ネットワーク３１４及び外行き負荷平衡ネットワーク３１０は単に例であり、物理的及び仮想ネットワーク・レイアウトはこれら又はいずれの特定のレイアウトに限定されないことが、当業者に認識される。このように、ＧＳノード３１２の各々は、ＮＦＳ、ＣＩＦＳ、ＨＴＴＰ、ＩＭＡＰ、ＰＯＰ等の標準ファイル・アクセス・プロトコルを使用してネットワークを介して通信する遠隔外行きノードと同様に、ＧＳノード上で実行されているアプリケーションのためにシステム中に記憶されている全てのファイルへのアクセスを提供する。システム中に記憶されているファイルはＧＳノードのいずれかで実行されているアプリケーションから同一の方法でアクセスでき、そしてＧＳノードはネットワークがファイル貯蔵庫にアクセスすることを可能にする。従って、ファイル・アクセスのためのクライアント要求がいかなる性能ペナルティ無しにいずれのゲートウェイ・ノードによりサービスできるように、各ゲートウェイ・ノードはＭＤＳ３１５中に記憶されたメタデータ及びＢＳＳ中に記憶されたファイルデータへの均一なアクセスを持つ点で、システム３００は「対称的」である。さらに、ファイル・アクセスについてのクライアント要求をサービスするために負荷バランサー３１０により指示される特定のゲートウェイ・ノードは、クライアントに対して透明である。
【００１６】
ＧＳノードは、ファイルデータ又はメタデータのいずれも永続的に保持しないが、アプリケーション又は遠隔ネットワークと永続的なファイルデータ（ＢＳＳ）及びメタデータ（ＭＤＳ）を保持するサービスとの間の通信を仲介する。すなわち、ＧＳは永続性（不揮発性）状態を保持する必要はないが、揮発性状態を維持できる。例えば、それはより良い性能を与えるためにファイルデータ及びメタデータの両方をキャッシュできる。
【００１７】
ＧＳノード３１２ａ−ｃは、ファイルデータについてＩ／Ｏ操作を実行するためにＢＳＳノード３２４ａ−ｄと直接に通信する。しかし、ＢＳＳ３２４ａ−ｄと何を通信するかを決めるために、ＭＤＳ３１５により与えられたファイルデータ位置を使用する。ＭＤＳ３１５は、ＮＦＳ、ＣＩＦＳ、ＨＴＴＰ、ＩＭＡＰ、ＰＯＰ等のファイル・アクセス・アプリケーションを実行するＧＳノードとの通信から、全てのファイル・システム名前空間及び属性操作（例えば、名前によるファイルのルックアップ、デイレクトリィ・エントリイの読出し、ファイル属性の獲得及び設定）を得る。メタデータ・サービス（ＭＤＳ）３１５は、ファイル・システム名前空間及びファイル・メタデータ（属性）を保持する。
ＭＤＳにファイル・システム名前空間及びファイル・メタデータ（属性）を保持することにより、ＧＳノードがファイル・システム名前空間及びファイル・メタデータ（属性）を保持する必要性を無くする。しかし、ＧＳノードはより良い性能のためにこの情報をキャッシュできる。
【００１８】
ビットファイル記憶サービス（ＢＳＳ）３２４は、システム内に記憶されたファイルデータについて永続的な記憶を提供する。ノード３２４ａ−ｄの各々は、それが直接に制御できる記憶装置３２６ａ−ｄへの共有ネットワーク・アクセスを提供する。
【００１９】
ＢＳＳマネージャ３２０は、図７及び図８を参照してより詳細に後で説明する態様で、ＢＳＳ３２４中のクラッシュ回復、及び、異なるノード間でのファイルデータ移動と複製を管理する。ＢＳＳマネージャ３２０は、このプロセスをゲートウェイ・サービス３１２及びこれを介してシステムにアクセスするクライアントに対して透明にする。
【００２０】
ライフ・サポート・サービス（ＬＳＳ）３３０は、システムを管理するための人的相互作用を最小にするために、資源の不足及び故障を監視し、そして予定された及び予定されない資源の停電を回避するためにルートする。これは専用の物理的資源を必要とせずに、むしろ、ＧＳ、ＭＤＳ、及びＢＳＳの物理的資源を使用する論理的サービスである。
【００２１】
システム管理サービス（ＳＭＳ）３２８は、対称的共有記憶システムと関連した物理的及び論理的資源を構成し、監視し、そして制御する。このサービスの大部分は、専用の物理資源を必要とせず、むしろ、ＧＳ、ＭＤＳ、及びＢＳＳの物理的資源を使用する論理的サービスである。しかし、ＳＭＳ３２８は記憶された情報のためにＣＤＢ３２９をアクセスする。ＣＤＢ３２９は、別途にホストされなければならず、それ自身の物理的資源を必要とする。
【００２２】
一般に、各ＧＳノード３１２ａ−ｃは他のＧＳノードを知る必要が無く、他のノードについてどんな状態も維持する必要が無い。そして、各ＢＳＳノード３２４は他のＢＳＳノードを知る必要が無く、他のノードについてどんな状態も維持する必要が無い。しかし、ＧＳノードの各々は他のノードと通信でき（例えば、キャッシュ一貫性を保証するために）、そして全ＢＳＳノードは互いに通信できる（例えば、ノード間でファイルデータを移動するために）。他のノードに関するいかなる状態も保持しない１つの利点は、ＧＳ３１２及びＢＳＳ３２４へ透明にノードを追加でき又は削除できることである。図４を参照してより詳細に説明されるように、ＧＳノードを追加することは、ゲートウェイ・サービス処理資源を増加することにより、システムの性能を改善する。一方、ＢＳＳノードの追加はファイルデータ又はメタデータの明確な移動を必要とせずにシステムの容量を増大する。従来のファイル・サーバーの場合とは異なり、システム性能と容量は、たとえ全てのユーザがファイル・システムの同じ部分のデータをアクセス又は記憶することを試みても、どんな単一サーバーの性能又は容量により制限されない。
【００２３】
例えば、ネットワーク１００（図１）では、記憶アレイ１１４とディスク１１６の組合わせは、そしてネットワーク２００（図２）では、記憶アレイ２１４とディスク２１６の組合わせは、記憶されたデータとそのデータに関連したメタデータとを共に含む。しかし、本発明では、ビットファイル記憶サーバー３２４ａ−ｄ及びそれらのそれぞれのディスク記憶は３２６ａ−ｄは記憶されたビットファイルを含む。一方、全てのビットファイル記憶サーバー３２４ａ−ｄからの記憶されたビットファイルと関連したメタデータはメタデータ・サーバー３１６ａ−ｄ及びそれらの関連しディスク記憶３１８ａ−ｂ内に記憶される。ビットファイル及びファイルデータの用語は等価であり、例えば、限定的ではなく、ファイルのファイル内容（データ）、ファイル・エクステント（ファイルの可変サイズ部分）、データのブロックの組（ブロック指向記憶では）等であることができる。ビットファイル及びファイルデータの用語は本発明を特定の意味に限定するものとして解すべきではない。
【００２４】
以下に、従来技術と比較した本発明でのデータのファイリング及び検索の例が示される。図１を参照すると、ＮＦＳクライアント１０２などのクライアント上で実行されるアプリケーション・プログラムを使用して、そしてＮＦＳなどのネットワーク・プロトコルを使用することにより、アプリケーションがＮＡＳ１００にアクセスする。アプリケーションからのデータを記憶するための命令は、アクセス・ネットワーク１１０を経由して選択されたファイル・サーバー１１２（例えば、ファイル・サーバー１１２ａ）に送られる。そして、データはそれぞれの記憶アレイ（例えば、記憶アレイ１１４ａ）により対応するディスク１１６（例えば、ディスク１１６ａ）上に記憶される。そのデータと関連したメタデータがこの記憶プロセスの一部として生成されて、また同じディスク（例えば、ディスク１１６ａ）上に記憶される。クライアントがデータの読出し又は修正のいずれかのためにデータにアクセスすることを望む時、クライアントは同じファイル・サーバー（例えば、ファイル・サーバー１１２ａ）を経由して同じ記憶アレイとディスク（例えば、記憶アレイ１１４ａとディスク１１６ａ）にデータをアクセスしなければならない。もし、クライアントがファイル・サーバー１１２ｂにアクセスする場合、クライアントはデータにアクセスすることができないであろう。
【００２５】
図２を参照して、データの記憶及び検索の例が説明される。例えば、ＮＦＳクライアント２０２などのクライアント上で実行されるアプリケーションを使用して、そしてＮＦＳなどのネットワーク・プロトコルを使用することにより、アプリケーションがＳＡＮ２００にアクセスする。アプリケーションからのデータを記憶するための命令は、アクセス・ネットワーク２１０を経由して選択されたファイル・サーバー２１２（例えば、ファイル・サーバー２１２ｂ）に送られる。そして、データは割当てられた記憶アレイ（例えば、記憶アレイ２１４ａ）により対応する割当てられたディスク・ボリューム２１６（例えば、ディスク・ボリューム２１６ａ１）上に記憶される。割当てられたディスク・ボリュームはネットワークのいずれでよい。そのデータと関連したメタデータがこの記憶プロセスの一部として生成されて、また同じディスク・ホリューム（例えば、ディスク・ボリューム２１６ａ１）上に記憶される。クライアントがデータの読出し又は修正のいずれかのためにデータにアクセスすることを望む時、クライアントは同じ記憶アレイに割当てられた同じファイル・サーバー（例えば、ファイル・サーバー２１２ｂ）を経由して、ディスク・ボリューム（例えば、記憶アレイ２１４ａとディスク・ボリューム２１６ａ１）にデータをアクセスしなければならない。もし、クライアントがファイル・サーバー２１２ａにアクセスする場合、クライアントはデータにアクセスすることができないであろう。しかし、ネットワーク管理者は記憶アレイ２１４ａとディスク・ボリューム２１６ａ１をサーバー２１２ａに再割当てすることができる。
【００２６】
本発明（図３）では、例えば、限定するのでなく、ＮＦＳクライアント３０２上で実行されているアプリケーションを使用して、例えば、限定するのではなく、ＮＦＳなどのネットワーク・プロトコルを使用して、アプリケーションがデータ記憶ネットワーク３００にアクセスする。そして、データを記憶するための命令が負荷平衡ノード３１０を介して送られる。そして、負荷平衡ノード３１０は、データを記憶するために、ゲートウェイ・サービス・ノード３１２の１つ（例えば、ゲートウェイ・サービス・ノード３１２ａ）に命令を送る。データは、ビットファイル記憶サービス・マネージャ３２０により指示されたポリシーに従い、財産的ファイル／ブロック指向プロトコルを用いて選択されたビットファイル記憶サーバー３２４及び対応するディスク３２６（例えば、ビットファイル記憶サーバー３２４ａ及びディスク３２６ａ）へ、内部ネットワーク３１４を経由して送られる。このポリシーは、例えば、限定的ではなく、最大の利用可能な記憶容量を持つディスク上にデータを記憶するものである。データがディスク３２６上に記憶される時、その記憶されたデータに対応する生成されたメタデータ（例えば、ＢＳＭ３２０と通信するゲートウェイ・サービス・ノード３１２ａにより）は、ＭＤＳ３１５により記憶される。例えば、限定的ではなく、ディスク３１８の１つ（例えば、ディスク３１８ａ上）にメタデータ・サーバー３１６の１つ（例えば、メタデータ・サーバー３１６ａ）により記憶される。すなわち、ファイルデータ（ビットファイル記憶サーバー３２４及びディスク３２６上）及びファイルデータに関連したメタデータ（メタデータ・サーバー３１６及びディスク３１８上）は、２つの分離した位置に記憶される。データ記憶ネットワーク３００中に記憶されたデータと関連した全てのメタデータは、例えば限定的ではなく、ＭＤＳ３１５によりメタデータ・サーバー３１６及びディスク２１８上に記憶される。
【００２７】
元のクライアント、又は、別のクライアントが後でこの記憶されたデータをアクセスすることを試みる時、データをアクセスするための命令がクライアント・アプリケーション（例えば、ＮＦＳ３０２又はＣＩＦＳ３０４）から負荷平衡ノード３１０を経由してゲートウェイ・サービス・ノード３１２へ送られる。このゲートウェイ・サービス・ノードは、最初にデータを記憶するために使用された同じノードである必要が無い。そして、データをアクセスするための命令がゲートウェイ・サービス・ノード３１２（例えば、ゲートウェイ・サービス・ノード３１２ｂ）から内部ネットワーク３１４を経由してメタデータ・サーバー３１６（例えば、サーバー３１６ａ）へ送られる。メタデータ・サーバー３１６は、ディスク３１８（例えば、サーバー３１８ａ）から要求されたデータについてのメタデータを得て、データに対する要求を適当なビットファイル記憶サーバー３２４及び対応するディスク３２６（例えば、ビットファイル記憶サーバー３２４ａ及びディスク３２６ａ）へ指示する。もし、データがアクセスの結果として修正される場合（例えば、より多くのデータが追加される）、メタデータは対応して更新される。
【００２８】
すなわち、本発明によると、クライアントはデータへのアクセス要求がなされた時、そのデータがどこに記憶されているか知る必要がなく、そのデータへのアクセス要求はゲートウェイ・サービス・ノード３１２ａ−ｃのいずれかを経由して送られることができる。
【００２９】
図６Ａ乃至図６Ｄには、クライアントにより知られているファイル識別子とクライアントには透明なファイル位置との間の一致を維持して、この透明性と対称性を可能にするために使用される例示的なデータ構造が示されている。これらのデータ構造はサーバー３１６によりディスク３１８中にＭＤＳ３１５内に維持されて、本発明の１つの例ではメタデータの一部として使用される。当業者には、ここに開示された教示に基づいて、他のデータ構造が使用でき且つ本発明の範囲と精神の中にあることが理解できる。例えば、他のデータ構造が、システム３００中のファイル位置を含まない他の情報及びファイル属性を維持するために使用できる。
【００３０】
図６Ａに示すように、ビットファイル記憶ロケーター（ＢＳＬ）６０２は、フィールド６０４中に特定されたファイル識別子（例えば、ファイル名及び／又はデイレクトリィ・パス）を持つ単一のファイルを、記憶サービス３２４中のファイルのビットファイル・データについての位置を与えるフィールド６０６中に特定された物理的識別子（例えば、記憶サーバー３２４ａ−ｄ及び記憶装置３２６ａ−ｄの１つ）に対応させるメタデータ・エントリイである。ファイル及びＢＳＳ３２４内のその位置の対応は、例えば、ＢＳＭ３２０との通信及びＢＳＭ３２０により実現されるあるポリシー（例えば、最大の空間を持つ装置中にファイルを記憶する）に従い、生成される。すなわち、ファイルへのアクセスを要求するクライアントは、ゲートウェイ・サービスへファイルの識別子を供給することだけが必要である。そして、受信したゲートウェイ・サービス・ノード３１２ａ−ｃは、与えられたファイル名に対応したファイルのＢＳＳ３４２中の位置を検索するためにＭＤＳ３１５と通信する。
【００３１】
図６Ｂは、ＭＤＳ３１５により維持されるメタデータの部分を実現するために使用できるデータ構造の別の例を示す。この例では、物理的ファイル位置は、論理的（シンボリック）位置及び論理的から物理的位置へのマッピング（例えば、ＢＳＭ３２０により設定されるような）として表すことができる。したがって、ＢＳＬ６１２は、論理的記憶識別子（例えば、ボリューム識別子）を、フィールド６１６中に特定されたクライアントに知られたファイル識別子と対応させるフィールド６１４を含む。データ構造はさらに、論理的記憶識別子を、ＢＳＳ３２４内の対応する論理的記憶の物理的位置を反映した物理的記憶識別子に対応させるテーブル６２３を含む。すなわち、ファイルへのアクセスを要求するクライアントは、ゲートウェイ・サービスへファイルの識別子を供給することだけが必要とされる。そして、受信したゲートウェイ・サービス・ノード３１２ａ−ｃは、与えられたファイル名に対応したファイルのＢＳＳ３２４中の位置を検索するためにＭＤＳ３１５と通信し、プロセス中で、ＭＤＳ３１５は与えられたファイル名と関連する論理的識別子から物理的位置を調べる。
【００３２】
図６Ｃは、ＭＤＳ３１５により維持されたメタデータの部分を実現するために使用されるデータ構造の別の例を示す。ここでは、ミラーリングが冗長性を与えるために使用される（例えば、ＢＳＭ３２０により設定されるように）。データ構造は、ＢＳＬ６１２及びテーブル６３２、６３３を含む。図６Ｃに示すように、テーブル６３２は、第１論理的識別子（例えば、ｖｏｌ．０）を、同じファイルの２つのコピーが記憶されている場所を識別するために第２論理的識別子（例えば、ｖｏｌ．１及びｖｏｌ．２）と対応させるエントリイを含む。この例では、もし、サーバーの１つ又は記憶装置の１つがアクセス不可能になった場合、ミラーされたデータを使用してデータは利用可能のままに維持される。データをミラーリングする技術はデータの利用可能性を増加するために使用される。さらに、データ構造は、論理的記憶識別子を、ＢＳＳ３２４内の対応する論理的記憶の物理的位置を反映する物理的記憶識別子と対応させるテーブル６３３を含む。すなわち、ファイルへのアクセスを要求するクライアントは、ゲートウェイ・サービスへファイルの識別子を供給することだけが必要とされる。そして、受信したゲートウェイ・サービス・ノード３１２ａ−ｃは、与えられたファイル名に対応したファイルのＢＳＳ３２４中の位置を検索するためにＭＤＳ３１５と通信する。位置情報を与えるプロセス中で、ＭＤＳ３１５は、対応する論理的識別子のためにミラーが指定されているかどうかを決定するために、テーブル６３２中で与えられたファイル名に対応する論理的識別子を調べる。いずれの場合も、ＭＤＳ３１５はテーブル６３３を調べて、与えられたファイル名に関連した論理的識別子から物理的位置をゲートウェイ・サービスへ戻す。
【００３３】
図６Ｄは、ＭＤＳ３１５により維持されるメタデータの一部を実現するために使用されるデータ構造の別の例を示す。ここでは、単一ファイルが、物理的記憶装置（例えば、ＢＳＭ３２０により設定されるような、独立ディスクの冗長性アレイ（ＲＡＩＤ）、ディスク装置のクラスター等）のグループ中の１つ又は複数の記憶装置にわたって記憶できる。この例では、ＢＳＬ６４２は、論理的識別子フィールド６４４、ファイル識別子フィールド６４８、及び、データの開始を記憶した記憶装置を識別するために使用されるインデックス・フィールド６４６を含む。「ストリッピング」を使用する実施の形態では、ディスク装置６５０のアレイが使用できる。図６Ｄに示される例では、４つの記憶装置６５１−６５４が示される。１つのファイルは装置のアレイ６５０にわたって記憶される。ファイルの開始が位置する記憶装置（６５１−６５４）は、インデックス・フィールド６４６中の値により識別される。そして、ファイル中のデータは、インデックス・フィールド６４６値により識別される開始記憶装置で始まり、順次の態様により記憶装置アレイにわたったブロックで記憶される。ブロックの大きさは普通、所定のあるブロック大きさを越えないように制限される。例えば、もし、ファイルの大きさが４０ＫＢで、インデックス・フィールド６４６が記憶装置６５１を指す場合、ファイル中のデータの最初の１６ＫＢが記憶装置６５１中に記憶され、ファイル中のデータの二番目の１６ＫＢが記憶装置６５２中に記憶され、そして、残りのデータ（８ＫＢ）が記憶装置６５３中に記憶される。より小さいファイル（ブロックの大きさよりも小さい）は、記憶装置６５１−６５４のいずれの１つに記憶することができる。より大きいファイルは、記憶装置アレイ６５０を横断して順次に回る。ストリッピング技術が、性能を改良するために複数の記憶サーバー及び記憶装置を並列にアクセスするのに使用できる。
【００３４】
図３に示される記憶システム・アーキテクチャ及び図６Ａ−Ｄに示されるデータ構造により可能となる本発明の透明性と対称性の特徴が、ある長所のためにどのようにしてさまざまなファイル記憶スキームにより利用されるかを、以下に説明する。
【００３５】
図４は、本発明の実施の形態によるスケーラブル及び冗長性ファイル記憶システム４００のブロック図である。スケーラブルは、いずれのシステム資源はノードをさらに追加することにより増大できることを意味する。冗長性は、いずれのシステム資源はたとえそのコンポーネントが故障しても利用可能のままであることを意味する。スケーラブル及び冗長性ファイル記憶システム４００は、スケーラブル及び冗長性ゲートウェイ・サービス４１０と、ネットワーク４８０を介してゲートウェイ・サービス４１０に接続されたスケーラブル及び冗長性メタデータ・サービス４２０を含む。スケーラブル及び冗長性記憶サービス４４０は、ネットワーク４８０を介してゲートウェイ・サービス４１０に接続される。システム管理サービス（ＳＭＳ）４５０、ライフ・サポート・サービス（ＬＳＳ）４６０、及び記憶サービス・マネージャ４７０もネットワーク４８０に接続される。ＳＭＳ４５０、ＬＳＳ４６０、及び記憶サービス・マネージャ４７０は、専用のサーバーを持たずに、代りに、システム中の他のサーバー、例えば、限定的ではなく、メタデータ・サーバー４２１、上で実行される。ＳＭＳ４５０及び記憶サービス・マネージャ４７０は、ネットワーク４８０を経由して構成データベース（ＣＤＢ）４２９へのアクセスを仲介する。ＣＤＢ４２９は、それ自身の物理的資源を必要とするＳＭＳ及び記憶サービス・マネージャとは分離されてホストされるサービスである。当業者には明らかなように、ＧＳ４１０、ＭＤＳ４２０及び記憶サービス４４０が全てスケーラブルとして示されているが、それらのうちのある１つだけがスケーラブルであってよい。
【００３６】
ＣＤＢ４２９は、ＧＳ４１０、ＭＤＳ４２０及びＢＳ４４０の各々の中の資源の現在の状態についての情報を提供する。ＳＭＳはこの情報をさまざまなサーバーを開始して可能化するために使用する。サーバーが動作のため準備ができると、それらはＬＳＳ４６０に登録される。ＬＳＳ４６０は、資源が追加及び削除される時に互いに通信してそれが可能化されるように、さまざまなノードにサービス配送及び接続性情報を配達する責任を持つ。ＬＳＳ４６０での登録及びサービス配送と接続情報のその後の配達は、本実施の形態のスケーラビリテイと冗長性を可能にする。スケーラブル及び冗長性ゲートウェイ・サービス４１０は、冗長性負荷平衡ネットワーク４０５に接続される複数の外部プロトコル処理ノード４１１−４１３を含む。スケーラブル及び冗長性記憶サービス４４０は、複数の記憶サーバー４４１−４４３及び記憶装置４９１−４９３を含む。１つの実施の形態のメタデータ・サービス４２０は、スケーラブルで且つ冗長性であり、メタデータ・サーバー４２１及び４２２、及びＭＤＳデータベース４３１及び４３２を含む。１つの実施の形態では、ＳＭＳ４５０はスケーラブルである。１つの実施の形態では、ＬＳＳ４６０はスケーラブルであり、主サーバー４６１及びバックアップ・サーバー４６２を含む。ＣＤＢサービス４２９は１つの実施の形態ではスケーラブルで且つ冗長性であり、ＣＤＢサーバー４２５ａ−ｂ及びＣＤＢデータベース４２７ａ−ｂを含む。１つの実施の形態では、ＢＳＳマネージャ４７０はスケーラブルである。
【００３７】
図５は、本発明の１つの例によるスケーラブル且つ冗長性のファイル記憶システム中に階層的記憶管理（ＨＳＭ）スキームを実現するメタデータ及びデータ記憶システム５００を示す図。この例では、ＭＤＳ５２０は１つ又は複数のメタデータ・ノードを含む。メタデータ・ノード５２０ａは、記憶装置５２３に接続されたメタデータ・サーバー５２１を含む。同様に、メタデータ・ノード５２０ｂは、記憶装置５２４に接続されたメタデータ・サーバー５２２を含む。記憶装置５２３と５２４は、限定的ではなく、ディスク装置などのＨＳＭスキーム中で使用される装置を含むどんなタイプの記憶装置である。メタデータ・サーバー５２１、５２２は、それぞれの記憶装置５２３、５２４へのアクセスの管理と制御のためのどんなタイプの制御論理である。このような制御論理は、どんなタイプのプロセッサ・ユニット中のソフトウェア、ファームウェア、ハードウェア、又はこれらの組合わせである。記憶装置５２３、５２４は、限定的ではなく、ディスク装置（磁気又は光学）、メモリ等を含むどんなタイプの媒体上に記憶するどんなタイプのデータ記憶装置である。構成データベース・サービス５２９は、構成データベース５２７ａに接続されたＣＤＢサーバー５２５ａ及び構成データベース５２７ｂに接続されたＣＤＢサーバー５２５ｂを含む。構成データベース５２７ａは、論理的／物理的マッピング５４１を含み、そして構成データベース５２７ｂは、論理的／物理的マッピング５４２を含む。論理的／物理的マッピング５４１と５４２は、図６Ａ−Ｄに示されるようなデータ構造に関して説明されたマッピングと実質的に同様である。
【００３８】
ＢＳＳ５５０は、１つ又は複数の記憶ノードを含む。記憶ノード５５０ａは記憶装置５５２に接続された記憶サーバー５５１を含む。記憶ノード５５０ｂは記憶装置５５４に接続された記憶サーバー５５３を含む。記憶ノード５５０は記憶装置５５６に接続された記憶サーバー５５５を含む。同様にして、記憶ノード５５０ｄは記憶装置５５８に接続された記憶サーバー５５７を含む。記憶装置５５２、５５４、５５６及び５５８は、限定的ではなく、ディスク装置及びテープ・ドライブ・ユニットなどのＨＳＭスキームで使用される装置を含む、どんなタイプの記憶装置である。頻繁にアクセスされるデータはディスク上に記憶され、頻繁にアクセスされないデータはテープ上に記憶されることを可能にする記憶装置の論理的階層を作るために、さまざまな記憶装置が使用できる。また、必要に応じてデータが記憶ノード間で移動できる。
【００３９】
記憶装置５２３及び５２４は、メタデータを記憶する。メタデータ・エントリイは、例えば、限定的ではなく、ファイル・システム名前空間、ファイル・メタデータ属性を保持して、スケーラブル記憶システム３００内のファイルデータの論理的又は物理的（１つ又は複数）位置を識別する。記憶装置５５２、５５４、５５６及び５５８は、どんなタイプのフォーマット及びコンテントのファイルなど（例えば、テキスト、オーディオ、ビデオを表すデジタル・データ、又は、どんな他のタイプのマルチメディア・コンテント又は他の情報）のデータを記憶する。例えば、図５に示され、そして、図６Ａ−Ｄを参照してより詳細に説明されたように、スケーラブル・ファイル記憶装置５００では、メタデータ・エントリイ（メタデータ１）は記憶装置５２３内に記憶できる。「メタデータ１」は、記憶装置５２２内に「データ１」として記憶されたファイルの位置を識別する。「メタデータ２」は、記憶装置５２４内に記憶される。「メタデータ２」は、記憶装置５２８内に「データ２」として記憶されたファイルの位置を識別する。「メタデータ３」は、記憶装置５２３内に記憶される。「メタデータ３」は、記憶装置５２６内に「データ３」として記憶されたファイルの位置を識別する。また、「メタデータ１」は、第３記憶へ（すなわち、記憶装置５５４へ又は他のどんな記憶ノード又は装置へ）移動された「データ１」のコピーを識別できる。データ移動が、図７及び図８に関して、さらに詳細に説明される。
【００４０】
ファイルデータからファイル・メタデータを分離することは、ＢＢＳ層内のノード間でファイルデータの透明な移動を可能にする。しかし、また、ＢＳＳ内の１つの場所から別の場所への透明なデータ移動を達成するためには、ＭＤＳ内のファイルデータ位置の絶え間のない更新及び外部のプロトコル処理ノード中にキャッシュされた古い位置の無効化を必要とする。データを透明に移動する能力はさらに、本発明による対称的共有ファイル記憶システムを階層記憶管理（ＨＳＭ）システムとして使用することを可能にし、伝統的なＨＳＭシステムの機能性と長所の全てを提供する。例えば、限定的ではなく、ＢＳＳサーバーは、異なる費用と性能特性により記憶装置を制御できる。ＢＳＳは、ファイル記憶システム内に記憶されたファイルデータについて永続的な記憶を提供する。一方、ＢＳＭは異なるノード間のファイルデータ移動を管理する。
【００４１】
図７は、本発明の１つの例によるファイル記憶システム内の変化する費用と性能特性により記憶装置を制御するフレキシブルＢＳＳ７４０を含むファイル・システム７００の図である。ＢＳＳ７４０は、スイッチド・ネットワーク７８０を介してシステム７００に接続される。また、ファイル・システム７００は、ＢＳＳマネージャ７７０、ＳＭＳ７５０、ＬＳＳ７６０、ＭＤＳ７２０、及び全てがスイッチド・ネットワーク７８０により相互接続されたノード７１１−７１４を含むゲートウェイ・サービス７１０を含む。当業者には理解されるように、ここに開示された教示に基づいて、他の記憶装置及び組合わせも使用でき、本発明の範囲と精神の中に入る。
【００４２】
各記憶サーバーは、それが直接に制御できるいくつかの記憶について共有ネットワーク・アクセスを提供する。この例では、ＢＳＳ７４０は、ディスク記憶装置、テープ記憶装置、及び、共有記憶装置を含む。記憶ノード７４１は、ディスク記憶装置７５１に接続されている。記憶ノード７４２は、テープ記憶装置７５２に接続される。記憶ノード７４３はディスク記憶装置７５３及びテープ記憶装置７５４に接続されている。記憶ノード７４４と７４５はそれぞれディスク記憶装置７５５と７５６に接続されて、そして共有テープ・ライブラリイ記憶装置７６５（例えば、テープ・ドライブ７６６ａ及び７６６ｂ）に接続されている。ＢＳＳ層内での異なる位置間のファイルデータ移動の動作プロセスが、高レベルで説明される。動作プロセスはしばしばフローチャートで表される。ここに表示されるフローチャートは説明目的のために提供されるもので、限定するものではない。実際には、当業者は、ここに開示された教示に基づいて、本発明をいくつかの方法により達成できることを理解できるであろう。さらに、また、フローチャートにより表された制御のフローは説明目的のために提供されるもので、限定するものではない。当業者は、他の操作制御フローが本発明の範囲及び精神の中にあることを理解できるであろう。
【００４３】
図８は、本発明の１つの実施の形態によるデータ移動８００のルーチンのフローチャートである（ステップ８１０−８４０）。ステップ８１０で、ファイルはターゲット宛先にコピーされる。例えば、データ１は、記憶装置７５３から第３記憶７５４へコピーできる。このコピー操作は、例えば、頻繁にアクセスされないデータをテープ記憶など安価な記憶媒体へ移動することが望まれる階層的記憶管理の一部として実行できる。このコピー操作は、ＢＳＳマネージャ７７０によりどんな理由により手動又は自動的に開始できる。
【００４４】
ステップ８２０では、移動されたデータに対応するメタデータ・エントリイが、ステップ８１０において決定されたファイルデータの新しい位置を反映するために更新される。例えば、図６Ａ−Ｄに示されたデータ構造中のＢＳＬエントリイは、移動されたファイルに対応する各ファイル名に対する新しい位置を反映するために更新される。
【００４５】
ステップ８３０では、古い位置のデータが選択的に削除される。データが別の位置にコピーされると、ＭＤＳは例えばミラーにより古い位置のデータ及び新しい位置のデータの両方を指すエントリイを維持できる。しかし、古い位置からのデータはどんな理由により削除できる。古いデータの除去はユーザに透明になされる。
【００４６】
ステップ８４０では、外部プロトコル処理ノードが更新されたメタデータをアクセスして、その位置にかかわらずファイルデータに引き続きアクセスする。さらに、このデータ移動及び新しい位置へのアクセスは外部のクライアントには透明である。ゲートウェイ・サービス処理ノード間の対称性は、いずれのゲートウェイ・サービス処理ノード７１１−７１４（そして、スケーリング・タイル・システム７００に追加されるどんな将来の外部プロトコル処理ノード）は、更新されたメタデータを使用することにより、移動されたデータをアクセスできる。
【００４７】
本発明は、その好適な実施の形態を参照して詳細に説明されたが、当業者には形式及び詳細中の変更と修正が本発明の精神と範囲から逸脱することなくできることが明らかである。請求項はこのような変更と修正を包含することを意図している。さらに、当業者にはさまざまな実施の形態が必ずしも排他的ではなく、いくつかの実施の形態の特徴は他の実施の形態の特徴と組合わせることができ、そして本発明の精神と範囲の中に留まることが理解できる。
【図面の簡単な説明】
【００４８】
【図１】ネットワークに取り付けられた記憶を使用する従来のファイル記憶システムを示す図。
【図２】記憶エリア・ネットワーク技術を使用する従来のファイル記憶システムを示す図。
【図３】本発明によるファイル記憶システムの例を示す図。
【図４】本発明の１つの実施の形態によるスケーラブルなファイル記憶システムのブロック図。
【図５】本発明の１つの例による階層的記憶マネージメントを含むメタデータ及びデータ記憶を示す図。
【図６Ａ】本発明のさまざまな例に使用されるデータ構造を示す図。
【図６Ｂ】本発明のさまざまな例に使用されるデータ構造を示す図。
【図６Ｃ】本発明のさまざまな例に使用されるデータ構造を示す図。
【図６Ｄ】本発明のさまざまな例に使用されるデータ構造を示す図。
【図７】本発明の１つの実施の形態による可変のコスト及び性能特性を持つ記憶装置のブロック図。
【図８】本発明の１つの実施の形態によるデータ移動を示す単純化されたルーチンを示す図。
【図１】
2005530280.tif 000003
【図２】
2005530280.tif 000004
【図３】
2005530280.tif 000005
【図４】
2005530280.tif 000006
【図５】
2005530280.tif 000007
【図６Ａ】
2005530280.tif 000008
【図６Ｂ】
2005530280.tif 000009
【図６Ｃ】
2005530280.tif 000010
【図６Ｄ】
2005530280.tif 000011
【図７】
2005530280.tif 000012
【図８】
2005530280.tif 000013
【国際調査報告】
2005530280.tif 000014
2005530280.tif 000015