(57)【要約】【課題】グリッド・ベース記憶容量を用いるデータ記憶システムのアーキテクチャと方法。【解決手段】他の軸に沿った複数の記憶ストライプの行に対する軸に沿った複数の記憶領域を各グリッドが定義し、グリッドのグループであるシートが記憶容量を定義する。メタデータは記憶容量内のシートの割り当て状態を特徴とするメモリ・スペースに記憶された識別情報を含む。既存論理デバイスに割り当てが関連していれば割り当てテーブルにより、選択された記憶ユニットへメモリを割り当て、関連していなければ、シート割り当てデスクリプタとシート割り当てマップにより、選択された記憶ユニットへメモリを割り当てる。論理デバイス割り当てマップおよびドライブ組織テーブルにより選択された記憶ユニットへ（から）データを転送する。【選択図】図６
2006120118.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶ストライプの１つまたはそれ以上の行に対する１つの軸に沿った複数の記憶領域で、前記複数の記憶ストライプは他の軸に沿っていて、該複数の記憶領域で定められた記憶ユニットを含むグリッド・ベース記憶容量を使用したデータ記憶システムのためのメタデータであって、２つまたはそれ以上の記憶ユニットをグループ化する１つの記憶ユニットが、データ記憶容量のシートを定めて、前記記憶システム内の前記シートの割り当てステータスを特徴づけるメモリ内記憶識別情報を含む前記メタデータ。
【請求項２】
前記シートの各々の割り当て可能性を示すアレイを特徴とするシート割り当てマップを含む、請求項１記載のメタデータ。
【請求項３】
前記記憶容量内の前記割り当て可能なシートの数を示すシート割り当てデスクリプタを含む、請求項２記載のメタデータ。
【請求項４】
前記記憶容量が複数のゾーンへ配置され、また前記シート割り当てデスクリプタが１つのゾーン内の前記割り当て可能なシートの数を示す、請求項３記載のメタデータ。
【請求項５】
選択された記憶ユニットについて、前記記憶容量の基準（リファレンス）論理ブロック・アドレスを識別する記憶ユニット・デスクリプタを含む、請求項１記載のメタデータ。
【請求項６】
前記グリッドの記憶領域を識別するブック識別を前記記憶ユニット・デスクリプタが含む、請求項５記載のメタデータ。
【請求項７】
前記ブック内の各記憶ユニットについて固有の記憶ユニット番号を前記記憶ユニット・デスクリプタが含む、請求項６記載のメタデータ。
【請求項８】
前記選択された記憶ユニットの前記基準論理ブロック・アドレスを、前記記憶ユニット番号が定める、請求項７記載のメタデータ。
【請求項９】
前記記憶ユニット・デスクリプタが、フォールト・トレランス情報を含む、請求項８記載のメタデータ。
【請求項１０】
スペア記憶領域を実施する順序付き方式を定めるドライブ組織インジケータを、前記フォールト・トレランス情報が含む、請求項９記載のメタデータ。
【請求項１１】
前記記憶ユニット・デスクリプタが、独立のドライブの冗長アレイ（ＲＡＩＤ）レベルを含む、請求項９記載のメタデータ。
【請求項１２】
前記アレイ内の各論理デバイスについての記憶ユニット・デスクリプタのアレイを特徴とする論理デバイス割り当てマップを含む、請求項８記載のメタデータ。
【請求項１３】
前記論理デバイスの各々へ割り当てられた前記シートの数を示す論理デバイス・インデックスのアレイを特徴とする記憶ユニット割り当てデスクリプタを含む、請求項１２記載のメタデータ。
【請求項１４】
前記論理デバイスの各々へ割り当てられた前記記憶ユニットの数を前記記憶ユニット割り当てデスクリプタが示す、請求項１３記載のメタデータ。
【請求項１５】
各シートが割り当てられる論理デバイスを示すシート番号により索引付け可能なアレイを特徴とするシート割り当てテーブルを含む、請求項１２記載のメタデータ。
【請求項１６】
前記シート割り当てテーブルがフォールト・トレランス情報を含む、請求項１５記載のメタデータ。
【請求項１７】
どの記憶領域がスペアとして割り当てられるかをシート組織が定め、ブック識別、ドライブ組織およびシート・バージョンの全ての順列のアレイとして特徴付けられるドライブ組織テーブルを含む、請求項１０記載の前記メタデータ。
【請求項１８】
前記データ記憶容量内の前記記憶ユニットのシステム構成を管理するステップにより、データ記憶システム・コマンドに応答して、１つまたはそれ以上のターゲット記憶ユニットを識別するように適合された、請求項１５記載のメタデータ。
【請求項１９】
前記データ記憶システムからの割り当て要求に応答して、前記シート割り当てマップおよび前記シート割り当てデスクリプタにアクセスすることにより、前記１つまたはそれ以上のターゲット記憶ユニットを識別することを前記システム構成を管理する前記ステップが含む請求項１８記載のメタデータ。
【請求項２０】
論理デバイスに関連する前記データ記憶システムからの割り当て要求に応答して、前記論理デバイス割り当てマップおよび前記シート割り当てテーブルへアクセスすることにより、前記論理デバイスに関連する前記１つまたはそれ以上のターゲット記憶ユニットを識別することを前記システム構成を管理する前記ステップが含む、請求項１８記載のメタデータ。
【請求項２１】
前記論理デバイスへあらかじめ割り当てられた前記シート内に不十分な割り当て可能な記憶ユニットがあるならば、前記シート割り当てマップおよび前記シート割り当てデスクリプタへアクセスすることにより前記１つまたはそれ以上のターゲット記憶ユニットを識別することを、前記システム構成を管理する前記ステップが含む、請求項２０記載のメタデータ。
【請求項２２】
１つの軸に沿った複数の記憶領域であって、他の軸に沿った複数の記憶ストライプの１つまたはそれ以上の行に対する前記１つの軸に沿った複数の記憶領域に関して定められる記憶ユニットを含み、２つまたはそれ以上の記憶ユニットのグループ化がデータ記憶容量のシートを定めるグリッド・ベース記憶容量を採用するデータ記憶システムのためのメモリ割り当て方法であって、
前記メモリ割り当てが既存の論理デバイスに関連するかどうかを決定するステップと、
前記決定するステップがイエスであれば、そのときは論理デバイス割り当てマップおよびシート割り当てテーブルにアクセスして、選択された記憶ユニットを割り当てるステップと、
前記決定するステップがノーであれば、そのときはシート割り当てデスクリプタおよびシート割り当てマップにアクセスして、選択した記憶ユニットを割り当てるステップとを含む前記方法。
【請求項２３】
１つの軸に沿った複数の記憶領域であって、他の軸に沿った複数の記憶ストライプの１つまたはそれ以上の行に対する前記１つの軸に沿った複数の記憶領域に関して定められる記憶ユニットを含み、２つまたはそれ以上の記憶ユニットのグループ化がデータ記憶容量のシートを定めるグリッド・ベース記憶容量を採用するデータ記憶システムのためにデータを転送する方法であって、論理デバイス割り当てマップおよびドライブ組織テーブルにアクセスして、選択された記憶ユニットから又は記憶ユニットへデータを転送する前記方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の諸実施例は、一般にコンピュータ・システム記憶容量（ｓｔｏｒａｇｅ  ｃａｐａｃｉｔｙ）に関し、特に、記憶容量若しくはストレージ・キャパシティ内に割り当てられるメモリの構成（ｃｏｎｆｉｇｕｒａｔｉｏｎ）を記述するメタデータ・アーキテクチャに関するが、これに限定されない。
【背景技術】
【０００２】
コンピュータ・システムは入力装置、出力装置、１つまたはそれ以上の中央処理装置（ＣＰＵ）および記憶容量若しくはストレージ・キャパシティを含む。この記憶容量は、半導体メモリ、ディスク・ドライブおよび光ドライブのような多くのデータ記憶装置の形を取る。オペレーティング・システムは、アプリケーション環境および諸ファイルが生成され修正されまたは削除される記憶容量を、割り当てまたは解除するファイル・システムを供給する。サーバなどのデータ記憶システムはまた、ネットワークまたは他の接続を通じてアクセスされる記憶容量を割り当てるためのファイル・システムを使用する。サーバおよび記憶アレイは、複数のデータ記憶装置を横切って記憶される情報を分配する独立ドライブの冗長アレイ若しくはレイド（ｒｅｄｕｎｄａｎｔ  ａｒｒａｙ  ｏｆ  ｉｎｄｅｐｅｎｄｅｎｔ  ｄｒｉｖｅ）（ＲＡＩＤ）などのデータ記憶フォーマットを、サポートする。メモリへデータがマップされる方法を記述する情報を含むデータ構造は、メタデータ（ｍｅｔａｄａｔａ）と名付けられる。ファイルが生成され修正されまたは削除されるときメタデータが更新されて、記憶容量の割り当てまたは解除（時々集合的に「割り当て」と、呼ばれる）を反映する。
【０００３】
メタデータの構造は、記憶システムの性能に著しく影響する可能性がある。システムの記憶容量が増大するにつれて、このシステムを管理するために使用されるメタデータの量も増大する。メタデータを使用するデータ構造が大きくなるにつれて、この構造からの情報を解析し、これらの構造を更新するために必要な時間の量が著しいものになる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本書に実施例を示し特許請求の範囲に後述するように、本発明の実施例は、一般にコンピュータ・システム構成情報を記述する装置と、関連の方法に向けられている。
【課題を解決するための手段】
【０００５】
本発明のいくつかの実施例は、グリッド・ベース（ｇｒｉｄ  ｂａｓｅｄ）記憶容量を採用するデータ記憶システムのためのメタデータへ向けられており、他の軸に沿った複数の記憶ストライプの１つまたはそれ以上の行に対する1つの軸に沿った複数の記憶領域に関する記憶ユニットを各グリッドが定義し、また２つまたはそれ以上のグリッドのグリッド・グルーピングが、データ記憶容量の１シートを定義する。このメタデータは、記憶システム（ｓｔｏｒａｇｅ  ｓｙｓｔｅｍ）内の諸シートの割り当て状態を特徴とするメモリ・スペース内に記憶された識別情報を含む。
【０００６】
本発明の他の諸実施例において、既存の論理デバイスに関連するかどうかを決定することを含むグリッド・ベース・データ記憶システムのためにメモリの割り当てる方法が供給される。この決定するステップが既存の論理デバイスに関連するならば、そのときは論理デバイス割り当てマップおよびシート割り当てテーブルがアクセスされて、選択された記憶ユニット（ｓｔｏｒａｇｅ  ｕｎｉｔ）が割り当てられる。さもなければ、シート割り当てデスクリプタおよびシート割り当てマップがアクセスされて、選択された記憶ユニットが割り当てられる。
【０００７】
本発明の他の諸実施例において、グリッド・ベース・データ記憶システムのためにデータを転送する方法が供給され、それは論理デバイス割り当てマップおよびドライブ組織テーブルにアクセスして、選択された記憶ユニットへデータを転送し、またはそこからデータを転送することを含む。
【実施例】
【０００８】
図１は、実施例の例示的なオペレーティング・システムを図示し、コンピュータ１００Ａ、または内部的または付加的なデータ記憶装置１０１を有するサーバ１００Ｂ、またはインテリジェント記憶システム１００Ｃにおいて、本発明を採用できる。インテリジェント記憶システム１００Ｃは、インテリジェント・コントローラおよびインターフェイスを有し、また、１つまたはそれ以上のデータ記憶アレイを有し得る記憶システムを表現する。
【０００９】
オペレーティング・システム１００は、それぞれ少なくとも１つの中央処理装置（ＣＰＵ）、データ記憶容量を定義する複数のデータ記憶装置１０１およびデータ記憶容量の構成を記述するメタデータを含む。「構成（ｃｏｎｆｉｇｕｒａｔｉｏｎ）」の意味は、記憶容量の特定部分がデータを記憶するために使用されているかどうか、すなわちデータを記憶するのに利用可能な部分すなわち「割り当て可能な（ａｌｌｏｃａｔａｂｌｅ）」スペースに対して、「割り当て済みの（ａｌｌｏｃａｔｅｄ）」スペースであるかどうかの記述が供給されていることである。
【００１０】
本発明の種々な実施例と共に使用するのに適した他のオペレーティング・システムには、追加のデータ記憶装置１０１、追加のデータ記憶アレイ、追加のデータ記憶装置コントローラまたはネットワーク・インターフェイス・コントローラなど図１に図示されていないものが含まれる。たとえば本発明の諸実施例は、少なくとも２つのデータ記憶装置１０１および１つのコントローラを含むシステム１００に使用できる。本発明の諸実施例は、故障許容冗長度（ｆａｕｌｔ  ｔｏｌｅｒａｎｃｅ  ｒｅｄｕｎｄａｎｃｙ）が少ないかまたは全くない単純なシステムから、障害点が全くない高度に冗長なシステムに至るまで、採用できる。
【００１１】
本発明の好ましい実施例を有利に実行できる例示的な環境を図示するために、図２は大容量記憶装置を採用した広域通信ネットワーク（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）（ＷＡＮ）を特徴とするコンピュータ・ベースのシステム１００Ｃを示す。
【００１２】
システム１００Ｃは、それぞれホストＡ、Ｂ、およびＣとして識別される複数のホストコンピュータ１０２を含む。ホスト・コンピュータ１０２は、生地、若しくはファブリック（ｆａｂｒｉｃ）１０６を介して、データ記憶アレイ１０４のペア（それぞれＡおよびＢと示されている）と互いに作用している。ファブリック１０６は、好ましくはファイバ・チャネル・ベースのスイッチング・ネットワークを特徴とするが、インターネットを含む他の構成も同様に使用できる。
【００１３】
各アレイ１０４は、一対のコントローラ１０８（Ａ１、Ａ２およびＢ１、Ｂ２で示す）および、好ましくはＲＡＩＤとして動作することを特徴とするディスクドライブであることを特徴とする一組のデータ記憶装置１０１を含む。コントローラ１０８およびデータ記憶装置１０１は好ましくはフォールト・トレラント配置を採用して、それにより種々のコントローラ１０８が並列の冗長リンクを採用するようになっており、また少なくともシステム１００Ｃにより記憶されるユーザ・データのいくつかは、データ記憶装置１０１の少なくとも一組の中に、冗長フォーマットで記憶されている。
【００１４】
さらにＡホスト・コンピュータ１０２およびＡデータ記憶アレイ１０４が第１サイトに物理的に配置され、Ｂホスト・コンピュータ１０２およびＢ記憶アレイ１０４が第２サイトに物理的に配置され、Ｃホスト・コンピュータ１０２も第３サイトに配置されるように考えられるが、これらは単に例示的なものであって限定的なものではない。
【００１５】
図３は、コントローラ１０８の選択された１つを一層詳細に示す。コントローラ１０８を単一の集積回路に実施し、または希望により複数の離散回路の間に分散することができる。好ましくはプログラム可能で、コンピュータ・プロセッサであることを特徴とするメイン・プロセッサ１１２が、好ましくは非揮発性メモリ１１４（フラッシュ・メモリまたは類似のもの）およびダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）１１６に記憶されたプログラミング・ステップおよび処理データに従って、制御を供給する。
【００１６】
ファブリック・インターフェイス（Ｉ／Ｆ）回路１１８が、ファブリック１０６を介して他のコントローラ１０８およびホスト・コンピュータと連絡し、またデバイスＩ／Ｆ回路１２０が記憶装置１０１と連絡する。Ｉ／Ｆ回路１１８、１２０およびパス・コントローラ１２２が、キャッシュ・メモリ１２４を使用するなどにより、記憶アレイ１０４とホスト１０２の間に命令とデータを通すために通信回路を形成する。通信経路１２２およびＩ／Ｆ回路１１８、１２０は離散的に図示されているが、単一に構築できることを理解すべきである。
【００１７】
所与のアレイ１０４内のデータ記憶装置１０１のエクステントにより定義されるアレイ１０４のデータ記憶容量は、アレイ１０４に書き込まれ読み出すことが可能な論理ユニット（ｌｏｇｉｃａｌ  ｕｎｉｔ）（「ＬＵＮ」）へ組織される。システム構成情報が、それぞれの記憶位置により、関連のパリティおよびミラー・データを含むユーザ・データの間の関係を定義する。このシステム構成はさらに、ユーザ・データおよび論理ブロック・アドレス（ｌｏｇｉｃａｌ  ｂｌｏｃｋ  ａｄｄｒｅｓｓ）（ＬＢＡ）などのメモリ記憶位置に対して割り当てられた記憶容量のブロックの間の関係を識別する。システム構成は、さらに論理ブロック・アドレスへマップされたバーチャル・ブロック・アドレスを定義することによる、仮想化を含むことができる。
【００１８】
新しいファイルを保存したり既存ファイルを拡張するときなど、または既存ファイルのサイズを削減するときなど記憶容量を解除した後に、システム構成情報が変更される。システム・メタデータは、ファイル割り当て情報および割り当て情報をサポートする他のデータ構造を定義する。
【００１９】
図４は、記憶マップ１３０に関する概略の図式的表現であって、データ記憶装置１０１（図１）に含まれる記憶容量の一部分を示す。以下の説明において「ストライプ（ｓｔｒｉｐｅ）」は総称的な意味に使用され、ＲＡＩＤ審議会（ＲＡＩＤ  Ａｄｖｉｓｏｒｙ  Ｂｏａｒｄ）（ＲＡＢ）により定義されたＲＡＩＤストライプにのみ関するものではない。記憶マップ１３０は、ストライプ１３２（時には本書では、「サブ・パーティション」１３２と呼ばれる）を図示し、ストライプ１３２は各々記憶容量の所定部分を含む。ストライプ１３２内の記憶容量の大きさは、システムの記憶アプリケーションのタイプを反映できる。各ストライプ１３２はＬＢＡで開始する。説明のために、ストライプ１はＬＢＡ１３４で始まり、ストライプ２はＬＢＡ１３６で始まり、ストライプ３はＬＢＡ１３８で始まる。複数の他のストライプ１３２を、ＬＢＡ１４０で始まるストライプＮまで定義することができる。好ましくは１つのストライプ１３２の終了が次のストライプ１３２に直接に隣接して、これにより隣接するストライプ１３２の間に、使用されない記憶容量がないようにする。
【００２０】
図５は、システム１００Ｃのためのグリッド１５０ベースの記憶容量アレンジメント若しくは配置を図示する。グリッド１５０内の各カラム（ｃｏｌｕｍｎ）は、１つのデータ記憶装置１０１または記憶領域（ｓｔｏｒａｇｅ  ｄｏｍａｉｎ）に対応し、またグリッド１５０の各行（ＲＯＷ）は複数のストライプ１３２に対応し、各データ記憶装置ドライブ１０１内に１つのストライプ１３２がある。一行の中のストライプ１３２は、同一または異なったＬＢＡで開始できる。
【００２１】
スペアの容量が、データ記憶装置１０１パーティションのサブ・パーティションを横切って配置される。従って、ストライプ１３２はデータを記憶するために割り当てられるし、またはスペアでもあり得る。データを含むストライプ１３２は、ユーザ情報、ミラー・データ、またはパリティ・データなどの事柄を記憶する。スペア・ストライプ１３２は、特定のデータ記憶装置１０１上にのみ存在するように構成でき、または所定の方法で一部または全てのデータ記憶装置１０１を横切って分配することができる。スペア・ストライプ１３２の指定は、１つのグリッドから次のグリッドへと変化し得る。一群の連続したグリッド１５０はシートと名付けられ、しばしばグリッド・グループと呼ばれる。サブ・パーティションはシートと並んでいて、「シート・セル」（「ｓｃｅｌｌ」）と名付けられる。グリッド１５０を形成するために採用されたデータ記憶装置１０１は、ブック（ｂｏｏｋ）と名付けられる。
【００２２】
図６は、シート・バージョン１６２、１６４、１６６、１６８および１７０を有するシート組織（ｓｈｅｅｔ  ｏｒｇａｎｉｚａｔｉｏｎ）テーブル１６０を図示し、これらのシートが採用するグリッド１５０が、１０個のデータ記憶装置１０１（連続的にＡ、Ｃ、Ｅ、Ｇ、Ｉ、Ｂ、Ｄ、Ｆ、ＨおよびＪと示される）およびデータ記憶装置１０１全体にわたり配分された２つのデータ記憶装置１０１のスペア容量を有することを図示する。シート組織テーブル１６０はシート組織バージョン１７２を定義し、どのデータ記憶装置１０１がスペアである（文字「ｓ」で示す）かを示し、また、どのデータ記憶装置１０１がデータを含む（文字「ｄ」で示される）かを図示する。注意すべきは、好ましくはデータ・セルとスペア・セルの配置が、異なったシート・バージョンごとに変ることである。これにより、データ・ストライプ１３２およびスペア・ストライプ１３２がブック内の全てのデータ記憶装置１０１を横切って配分されることができ、それによりマルチスレッドの環境において全てのデータ記憶装置１０１に同時的にアクセスすることができる。そうしたスペアリング配置は、全てのスペア・ストライプ１３２が全てのデータ記憶装置１０１よりも少ないものの中に含まれるシステム１００よりも、高い性能を提供する。
【００２３】
バージョン１７２の各々について、２つまたはそれ以上の記憶装置１０１がスペア容量を供給する例示的な実施例において、データ記憶装置１０１はグループおよびペアに構成される。たとえば表１６０において、ドライブＡ＆Ｂ、Ｃ＆Ｄ、Ｅ＆Ｆ、Ｇ＆ＨおよびＨ＆Ｊはペアを構成し、ペア内に含まれるデータ・ストライプ１３２が、各シート・バージョン１７２についてスペアまたはデータの同一の宛て先を有するように、スペアリングを配分できる。データ記憶装置１０１もまたグループに組織できる。たとえば表１６０において、第１グループ１７４はドライブＡ、Ｃ、Ｅ、ＧおよびＩを含み、第２グループ１７６はドライブＢ、Ｄ、Ｆ、ＨおよびＪを含む。ＲＡＩＤ１データ・フォーマットについてペアリングを採用することにより、ペアの１つのメンバがユーザ・データ（一次データ）を含み、ペアのもう１つのメンバがミラー・データ（二次データ）の形で同一データを含み、またはその逆にすることができる。ＲＡＩＤ５データ・フォーマットについてもグルーピングを採用でき、それによりユーザ・データは１つのグループ１７４、１７６に含まれ、パリティ・データが他のグループ１７６、１７４に記憶されるようにできる。そのようにして、障害許容データ記憶フォーマットを構成するときに、データ記憶装置１０１内のペアリングとグルーピングが有利に採用される。図６のペアリングとグルーピングは例示的なものであって、どのデータ記憶装置１０１がペアまたはグループを形成するかについては何の制限もなく、所与のデータ記憶装置１０１（そこの全てのパーティション）が常に１つのみの特定の他のデータ記憶装置１０１とペアになって、最大フォールト・トレランスを形成する。
【００２４】
あるデータ記憶装置１０１が失敗すれば、作用中のデータ記憶装置１０１からのデータはコピーされまたは再構成されて、シート組織テーブル１６０により規定された通りに、スペア・ストライプ１３２へ書き込まれる。図６の例示的な実施例において、シート組織テーブル１６０は循環テーブルであって、一組のスペア・バージョン（ドライブ組織）１７２を通じて、繰り返し循環する。たとえば６番目のシート（図示なし）が第１シートとして同一シート・バージョン１６２により参照されるが、しかし異なったスペア・バージョン１７２（ドライブ組織）により参照されるかも知れない。異なった番号のバージョン１７２、データ記憶装置１０１およびスペア構成をサポートするために、シート組織テーブル１６０が修正され得る。
【００２５】
グリット１５０（図５）へシート組織テーブル１６０を適用すると、スペア・ストライプ１３２として設計された指定サブ・パーティション内のストライプ１３２の第１セット、およびユーザ・データ、ミラー・データまたはパリティ・データを記憶できるサブ・パーティション内のストライプ１３２の第２セットが供給される。シート組織テーブル１６０（ＳＶ１  １６２）およびグリッド１５０のこの組み合わせは、割り当て可能な記憶グリッドであって、ときには本書で「記憶ユニット」（ＳＵ）１８０と呼ぶものを、図７に図示するように定義する。各長方形はデータ・ストライプ１３２を表現し、各長方形内の文字は関連データ記憶装置１０１を指示する。ＳＵ１８０は、８個のデータ記憶装置１０１にまたがる８つの行を含む。たとえば１２８ＫＢのサイズのストライプ１３２が規定されれば、ＳＵ１８０は８ＭＢの記憶容量を供給する。あるブック内のそうしたＳＵ１８０は一連番号を付けられるか、さもなければ各々１つの番号または独自の識別子を割り当てられる。
【００２６】
前記のように、複数のグリッド１５０を１つのシート内に組織できる。シートは典型的にただ１つの記憶フォーマットに構成されるが、ＲＡＩＤレベル変換のようなあるオペレーションの最中には、１つよりも多い記憶フォーマットが１つのシート内に存在し得る。
【００２７】
図８はＳＵ１８０に類似した記憶ユニット（ｓｔｏｒａｇｅ  ｕｎｉｔ）（ＳＵ）１８５を図示するが、しかし全てのストライプ１３２がユーザ・データを含んでおり、これらはＤａｔａ  Ａ−１、Ｄａｔａ  Ａ−２、Ｄａｔａ  Ａ−３、Ｄａｔａ  Ａ−４、Ｄａｔａ  Ｂ−１などで、Ｄａｔａ  Ｐ−４までを示す。他のＳＵ１８０内に記憶されたパリティ・データまたはミラー・データなどの冗長情報を通じて、ＳＵ１８５内に記憶されるデータにフォールト・トレランスが供給される。１つまたはそれ以上の他のＳＵ１８０内に収納されたフォールト・トレランス情報に関連するＳＵ１８５は、「高信頼記憶ユニット」（ＲＳＵ）と名付けられる。本明細書と添付特許請求の範囲のために、用語「ＳＵ」は、関連のフォールト・トレランス情報付きまたはなしの、あらかじめ選択されたユーザ・データ記憶容量を意図している。すなわち用語「ＳＵ」は関連のフォールト・トレランス情報なしのユーザ・データを含むＳＵ１８５を意味し、また用語「ＳＵ」は均等の代替実施例において１つのＲＳＵを意味し得る。
【００２８】
図９は、図８のＳＵ１８５の例示的なＲＡＩＤ１ミラー・データ・グリッド１９０を図示する。ＳＵ１８５の左側からのデータが、ミラー・データ・グリッド１９０の右側にミラーされＲＡＩＤ１のペアを生成する。つまりＳＵ１８５内の各ストライプ１３２について、ミラー・データ・グリッド１９０内に対応する１つのストライプ１３２がある。たとえばミラー・データ・グリッド１９０内のストライプＡ−１は、ＳＵ１８５内にストライプＡ−１に関してミラーされる。注意すべきは、データ・フォールト・トレランスの要求に応じて、異なったデータ記憶装置１０１内にミラー・データが記憶されることである。
【００２９】
図１０は、１つのＳＵ１８５およびカラム（ｃｏｌｕｍｎ）と行（ｒｏｗ）のパリティ値２０４、２０６を計算し配置する方法を示す。ＳＵ１８５は、図８のそれと同様に、文字インデックスと数字インデックスによりラベルされたＳＵ１８５内の各ストライプ１３２を有する。文字インデックスは、行パリティ・ストライプ２０６を発生するために使用されるＲＡＩＤ５のための、行パリティ・ストライプ・セットを規定する。たとえば、ユーザ・データ・ストライプＡ−１、Ａ−２、Ａ−３およびＡ−４はＸＯＲされて（論理的に排他的ＯＲされて）、行パリティ値２０６内にストライプ「ＡＰ」を生成する。数字インデックスは、ＲＡＩＤ６データ記憶フォーマットのために対角パリティ（ｄｉａｇｏｎａｌ  ｐａｒｉｔｙ）を発生するために使用される、カラム・パリティ・ストライプ・セットを規制する。たとえばユーザ・データ・ストライプＡ−１、Ｂ−１、Ｃ−１およびＤ−１はＸＯＲされて、カラム・パリティ値２０４内に「１Ｐ」を生成する。ＳＵ１８５の８個の行とカラムは、２行の行パリティ・データ２０６および２行のカラム・パリティ・データ２０４を発生するために、使用される。最適性能のために、フォールト・トレランス情報はＳＵ１８５内に含まれず、むしろ１つまたはそれ以上の他のＳＵ１８０内に含まれる。好ましくはＲＡＩＤフォーマット変形を容易にするために、パリティ値２０４、２０６が２つの異なったＳＵ１８０内に含まれている。
【００３０】
図１１はシート２１２、２１４、２１６、２１８および２２０のグリッドの利用チャートを図示し、各シートはＳＵ１８５およびグリッド１８０からなる全部で３０個のグリッドを採用し、それぞれＲＡＩＤ  ０、ＲＡＩＤ  １ｘ２、ＲＡＩＤ  １ｘ３、ＲＡＩＤ  ５およびＲＡＩＤ  ６により構成されている。ＲＡＩＤ  ０（２１２）について、シートは３０個のＳＵ１８５を含み、これらはＤａｔａ  １−３０とラベルされている。ＲＡＩＤ  １ｘ２（２１４）について１５個のＳＵ１８５が、データ１−１５とラベルされたユーザ・データを含み、１５個のグリッド１８０が、ＭＤａｔａ  １−１５とラベルされたミラー・データを含む。ＲＡＩＤ  １ｘ３（２１６）について、１０個のＳＵ１８５がＤａｔａ  １−１０とラベルされたユーザ・データを含み、１０個のグリッド１８０がＭｄａｔａ  １−１０とラベルされたミラー・データを含み、１０個のグリッド１８０がＭｄａｔａ  １’−１０’とラベルされた代替ミラー・データを含む。代替ミラー・データは、ミラー・データと異なったグリッド利用チャート２１０内のストライプの順序付けを採用するが、一方ユーザ・データ、ミラー・データおよび代替ミラーデータを、異なったデータ記憶装置１０１内に記憶されている通りに維持する。ＲＡＩＤ  ５（２１８）について、２４個のＳＵ１８５がＤａｔａ  １−４とラベルされたユーザ・データを含み、６個のグリッド１８０がＲＰ１−４ないしＲＰ２１−２４とラベルされた行パリティを含む。ＲＡＩＤ  ６（２２０）について、２０個のＳＵ１８０がＤａｔａ１−２０とラベルされたユーザ・データを含み、５個のグリッド１８０がＲＰ１−４ないしＲＰ１７−２０とラベルされた行パリティを含み、５個のグリッド１８０がＣＰ１−４ないしＣＰ１７−２０とラベルされたカラム・パリティを含む。
【００３１】
これらの構成は「パック・パリティ（ｐａｃｋｅｄ  ｐａｒｉｔｙ）」フォーマットを例示し、そこでユーザ・データがシートの一部分に排他的に記憶され、またミラーまたは（あるとすれば）パリティ・チェックがそのシートの他の部分に排他的に記憶される。これは連続的な読取性能を増大させる。シートあたり３０個のＳＵ１８５またはグリッド１８０の組み合わせ全体配置（ｃｏｍｂｉｎｅｄ  ｔｏｔａｌ  ａｒｒａｎｇｅｍｅｎｔ）を有する図１１の例示的な構成について、異なったＲＡＩＤレベルは異なった数のＳＵ１８５の結果を生じる。
2006120118.tif 000003
【００３２】
図１２は、本発明の実施例により記憶容量をマップするために良く適合したグリッド・ベース・アーキテクチャの略図的なブロック図である。図１２に示したのは、番号を付けられた複数のシートのマップ２３０、それらシート２３２の中の１つ、およびグリッド１８０である。前述のように、グリッド１８０はＳＵ１８５として働き、すなわちミラー・データまたはパリティ・データを収納できる。
【００３３】
ふたたび用語「メタデータ」は、データの効率的な管理と操作のために記憶容量の現在の配置を記述するのに有用なシステム１００の構成を記述するのに使用される。メタデータはディスク上および／またはディスクでないメモリ、たとえばキャッシュ・メモリに記憶できる。ディスク上に記憶されるメタデータの部分は、非ディスク・メモリ内にも記憶できる。メタデータは、さらに論理ディスクなどの論理デバイスと組み合わせることができる。
【００３４】
図１３は、本発明の実施例によるメタデータを図示する。シート割り当てマップ（ｓｈｅｅｔ  ａｌｌｏｃａｔｉｏｎ  ｍａｐ）（ＳＡＭ）２４０は、ブック内の各シートについて１ビットを有するビット・アレイである。ＳＡＭ２４０内のビットは、対応するシートが割り当て済みであれば第１の値へセットされ、対応するシートが割り当て可能であれば第２の値へセットされる。従ってＳＡＭ２４０は、割り当て可能なシートを識別するために使用できる。ＳＡＭ２４０は、ゾーンごとのシートのあらかじめ選択された数により、複数のゾーン２４２、２４４、２４６および２４８へ組織されて示されている。つまり図１３の例示的な実施例において、シート２１２、２１４は、ゾーン１（２４２）内にあり、シート２１６はゾーン２（２４４）内にあり、シート２１８、２２０はゾーン３（２４６）内にある。
【００３５】
このメタデータは、さらにシート割り当てデスクリプタ（ｓｈｅｅｔ  ａｌｌｏｃａｔｉｏｎ  ｄｅｓｃｒｉｐｔｏｒ）（ＳＡＤ）２６０を含み、これはＳＡＭ２４０の状態について要約情報を供給する。ＳＡＤ２６０は、シート２６２の全数、番号割り当て可能シート２６４およびＳＡＭ２４０のゾーン内の割り当て可能シートの数を含むアレイを含む。たとえばＳＡＤ２６０のゾーン１割り当て可能シート２６６は、ＳＡＭ２４０のゾーン１（２４２）内の割り当て可能シートの数を含む。本発明のいくつかの実施例は、各ブックについて１つのＳＡＭ２４０およびＳＡＤ２６０を採用する。本発明の代わりの実施例は、複数のブックについて単一のＳＡＭ２４０を採用し、または各ＳＡＭ２４０が単数または複数のブックの一部分をカバーすることにより、複数のＳＡＭ２４０を含むことができる。ＳＡＤ２６０は割り当て可能なシートを有し、または割り当て可能なシートのあらかじめ決定された数を有することにより、記憶領域の識別を単純化する。
【００３６】
前に議論したように、シートを論理デバイス（ｌｏｇｉｃａｌ  ｄｅｖｉｃｅ）（ＬＤ）へ割り当てることができる。図１４は、本発明のメタデータを論理デバイス割り当てマップ（ｌｏｇｉｃａｌ  ｄｅｖｉｃｅ  ａｌｌｏｃａｔｉｏｎ  ｍａｐ）（ＬＤＡＭ）２８０の形式でさらに図示し、これはポインタ・ペアのアレイ２８２を有する。第１ポインタがＳＵデスクリプタ・アレイ２８４を指定し、第２ポインタがＲビット・アレイ（Ｒ−ｂｉｔ  Ａｒｒａｙ）（ＲＢＡ）２８６を指定する。入力２８８は、ＳＵデスクリプタ２９０、拡張ＳＵデスクリプタ２９２およびＸビット２９４を含む。Ｘビット２９４は、ＳＵ１８５の一部分が書き込み済みであるかどうかを指示するために使用できる。ＳＵデスクリプタ２９０は、ＳＵ番号２９８を含むフィールド２９６、ＲＡＩＤレベル３００、ブックＩＤ  ３０２、ドライブ組織３０４、Ｄビット３０６および予備ビット３０８を含む。
【００３７】
ＳＵ番号２９８およびブックＩＤ  ３０２は、記憶容量内の特定のＳＵ１８５を定義する。特定のＳＵ１８５を含むシートのシート・バージョン１７２（図６）は、シート内のグリッドの数により（図１１の例における３０などにより）ＳＵ番号２９８を割り算して、それからその結果をシート組織バージョン（図６の例では、５）で割り算して、その剰余がシート・バージョンであることにより定義される。Ｄビット３０６が、メディアの有効性を指示するために使用される。大容量データ記憶装置１０１のために必要な場合は、拡張ＳＵデスクリプタ２９２が追加ＳＵ１８５番号ビットを供給する。各ＲＢＡ入力２８７は、ＳＵ１８５のサブ・セットのための状態情報を指示するために使用されるＲビットを含む。これらのＲビットは、たとえば、データ・カレンシー（ｄａｔａ  ｃｕｒｒｅｎｃｙ）を指示するために使用される。
【００３８】
シートおよびＳＵ１８５をＬＤへ割り当てることを通じて、ストライプ１３２の論理ブロック・アドレス（ｌｏｇｉｃａｌ  ｂｌｏｃｋ  ａｄｄｒｅｓｓ）（ＬＢＡ）は、各ＬＤ内に仮想ブロック・アドレス（ｖｉｒｔｕａｌ  ｂｌｏｃｋ  ａｄｄｒｅｓｓ）（ＶＢＡ）として仮想化される。言い換えれば、ＳＵデスクリプタ２９０（および適用可能な所では拡張ＳＵデスクリプタ２９２）は、所与のＬＤへ割り当てできる記憶域の最少ユニットをマップする。ＳＵ１８５内のブロックのＬＢＡは、さらに後述するようにＳＵ番号２９８を通じて一部決定される。図１４に図示されたＬＤＡＭ２８０構造は、好ましくはＬＤまたは他の階層構造によりインデックスされるが、これは特定ＬＤについてＳＵデスクリプタ・アレイ２８４およびＲＢＡ２８６またはその一部分にアクセスするためである。これによりＳＵ１８５の最少番号からＳＵ１８５の大きな番号までにわたるＬＤを割り当てるときに、メモリ使用効率の柔軟性が提供される。代わりに本発明のある実施例では、「フラット」構造を採用しそこでは各ＬＤについてのＳＵデスクリプタ２８４およびＲＢＡ２８６は、単一のアレイ内に連続的に記憶される。
【００３９】
図１５は、リンク・データ３２０、３２２を含む例示的なリンク・リステッド（ｌｉｎｋ  ｌｉｓｔｅｄ）ＬＤＡＭ２８０’構造を図示し、リンク・データ３２０、３２２は、ＳＵデスクリプタ・アレイ２８４’およびＲＢＡ２８６’のリンケージを供給する。
【００４０】
図１６は、さらにＬＤにより索引付け（インデックス）可能なアレイ３３２を供給するＳＵ割り当てデスクリプタ・アレイ３３０の形式における本実施例のメタデータを図示する。各ＳＵ割り当てデスクリプタ入力３３４は、ＬＤへ割り当てられたシート３３６の総数、ＬＤへ割り当てられたＳＵ１８５の総数、オールド・シート・ポインタ３４０、ニュー・シート・ポインタ３４２および予備ビット３４４を含む。オールド・シート・ポインタ３４０およびニュー・シート・ポインタ３４２は、追加記憶容量が利用可能な時に追加ブックを横切って、ＬＤを再マップするために使用できる。この割り当て処理は複数ブック割り当てを採用することができ、その場合あるＬＤへ割り当てられる第１シートは、第１ブックからであり、そのＬＤへ割り当てられる第２シートは第２ブックからであり、以下同様である。あるＬＤの第１割り当てシートのための開始ブックは、ＬＤ番号モジューロ・ブックの数（ＬＤ  ｎｕｍｂｅｒ  ｍｏｄｕｌｏ  ｔｈｅ  ｎｕｍｂｅｒ  ｏｆ  ｂｏｏｋｓ）により決定される。
【００４１】
図１７は、さらに記憶容量内のほぼ全てのシートにデータの索引付け可能なアレイ３６２であるシート割り当てテーブル（ｓｈｅｅｔ  ａｌｌｏｃａｔｉｏｎ  ｔａｂｌｅ）（ＳＨＡＴ）３６０の形式における本発明の実施例のメタデータを図示する。ＳＨＡＴ入力（エントリ）３６４は、それぞれのシートが割り当てられるＬＤ番号３６６、シートのＲＡＩＤレベル３６８、シート内のどちらのＳＵ１８５が論理デバイスへ割り当てられるかを示し、またどちらのＳＵ１８５が割り当て可能であるかを示すビットを有するＳＵマップ３７０を含んでなり、予備ビット３７２を含み得る。ＲＡＩＤレベル３６８は、１つのＲＡＩＤレベルからもう１つのＲＡＩＤレベルへの変換が進行中であることを示す値を含み得る。ＳＨＡＴ３６０は、ＬＤマップが具体化された時にメモリ内に設立される。ＳＨＡＴ３６０は、ＳＵ１８５が１つのＬＤへ割り当てられ（アロケート）、またはそこから解除（デ・アロケート）される時に更新される。ＳＨＡＴ３６０は、ＬＤへの割り当て要求への応答において、特定のＬＤ内に充分な幾つかの割り当て可能ＳＵ１８５が存在するかどうかを決定するのに有効な資源として役立つ。ＳＨＡＴ３６０は、さらに多重（マルチプライ）割り当て（割り当てミス）されたシートおよびマップ具体化の最中のＳＵ１８５の可能性についてのメタデータのチェックとして役立ち、シート及びＳＵ１８５の割り当ておよび解除中に特別なクロス・チェックを供給できる。ＳＨＡＴ３６０は、また、オペレーション類似のＲＡＩＤレベル変換およびまばらな（ｓｐａｒｓｅ）解除の結果として残された、ＬＤ内の部分的に割り当てられたシートの単純な（ストレートフォワード）がらくた状の（ガーベージ）コレクションのための計算を供給できる。
【００４２】
図１８は、さらにカレント・アレイ・テーブル（ｃｕｒｒｅｎｔ  ａｒｒａｙ  ｔａｂｌｅ）（ＣＡＴ）入力３８４のインデックス可能アレイ３８２を供給するドライブ組織テーブル（ｄｒｉｖｅ  ｏｒｇａｎｉｚａｔｉｏｎ  ｔａｂｌｅ）（ＤＯＴ）３８０の形式における本発明の実施例のメタデータを図示する。ＤＯＴ３８０内のＣＡＴ３８４の数は、ブックの数、ドライブ組織３０４（図１４）の数およびシート・バージョン１７２（図６）の数を反映する。各ＣＡＴ３８４は、シートへストライプ１３２を供給するデータ記憶デバイス１０１の順序付きセットを規定する。図１０のＳＵ１８５から連想できるように、図１８の例示的な実施例において、ＣＡＴ入力３８４により規定された８個のデータ記憶装置１０１がある。各入力３８４は、ドライブ・ステータス３８６、オフセット・インデックス３８８およびドライブＩＤ３９０を含む。
【００４３】
ドライブ・ステータス３８６はドライブ・コンデション情報を含み、これにはリポーティング技術（ＳＭＡＲＴ）からの情報が含まれる。ＳＭＡＲＴは、故障警告についての業界で採用された標準仕様である。ＳＭＡＲＴは、ビット読み取りエラーおよびトラック・シーク・エラーなどの多過ぎる内部データ記憶装置１０１のエラーを監視することに基づいている。ＳＭＡＲＴは、データ記憶装置１０１マイクロ・プロセッサ内で走る故障警告アルゴリズムを採用して、エラー率が閾値を越えるかどうかをチェックし、そうした状態が存在すればデータ記憶装置インターフェイス１２０上でホスト１０２へ警告を送る。
【００４４】
オフセット・インデックス３８８をＬＢＡオフセット・テーブルに付加して、データ記憶装置１０１の領域をスキップしたり、アクセスされる領域をオフセットしたりできる。オフセット・インデックス３８８は、テーブルにアクセスして、特定のデータ記憶装置１０１上のパーティションの開始ＬＢＡを獲得する。そのパーティションは、所与のデータ記憶装置１０１からそれぞれのブックへのデータ・キャパシティのコントリビューション全体である。ブックは、連続するＬＢＡのパーティションから形成される。前記のように、ＤＯＴ３８２内のＣＡＴ３８４の数はブックの数、ドライブ組織３０４の数およびシート・バージョン１７２の数を反映する。データ記憶装置１０１が故障すれば除去され、さもなければ仕事から外され、スペア・ストライプ１３２を含むと指定されたスペアのデータ記憶装置１０１によって、機能的にとって変わられる。下記の表２は、図６のシート・バージョン５（ＳＶ５）に対応するＣＡＴ入力（エントリ）３８４を指示する。ドライブ・ステータス３８６は０の値として示され、問題がないことを示すが、ドライブ・ステータス３８６の他の値および表現を使用することができる。ドライブＩＤ３９０は、図６のデータ記憶装置１０１表記に対応する文字の値として示される。
2006120118.tif 000004
【００４５】
下記の表３は、データ記憶装置「Ｅ」が故障した後に除去されたか、さもなければ作業をやめているシート・バージョン５についてのＣＡＴ３８４を示す。図６から認められることは、ドライブＡおよびＢがシート・バージョン５（ＳＶ５）のために、スペアとして働くことである。スペアは、ドライブＡが選択されてドライブＥに置き換わるように、グループ１７４、１７６に関して選択される。
【００４６】
ＣＡＴ３８４は、１つの異なったドライブ組織であって、ＳＵ１８５が再配置済みになって、新組織に一致した後にＳＵデスクリプタ２９０から参照される。変更に先立って、ＳＵデスクリプタ２９０は、失敗したドライブが失われたことを示すために修正されたＣＡＴ３８４を参照する。変更の後にＳＵデスクリプタが修正されて、この新しいＣＡＴ３８４を参照する。
2006120118.tif 000005
【００４７】
表３に示すＣＡＴ３８４は、たとえばＣＡＴ１０などＤＯＴ３８０内の他の索引付け可能な入力３８２として記憶され得る。ドライブＥはまた、３つの他のシート・バージョン１７２に影響するので、ＳＶ１、ＳＶ２およびＳＶ４内にスペアがあることを反映するために追加のＣＡＴ３８４が生成される。ドライブＥを採用するＳＵ１８５内のデータはコピーされ再構成されて、図４のシート・バージョン１７２に指定されるスペアのデータ記憶装置へ記憶され得る。データをコピーし再構成するのに先立って、ドライブ組織３０４はスペアがある以前のＣＡＴ３８５を規定することができる。コピーまたは再構成の後に、ドライブ組織３０４は、スペアがある後のＣＡＴ３８４を規定することができる。データ記憶装置１０１故障後のＳＵ１８５の配置は、新しいドライブ組織３０４を採用する。ドライブ組織３０４は、故障または除去されたデータ記憶装置１０１の下記の置き換えを更新することができる。ＤＯＴ３８０のためのＣＡＴ３８４値は、表４に示すように図４のシート組織表１６０について図示できる。
2006120118.tif 000006
【００４８】
番号０−９は、各シート・バージョン１７２のためにストライプ１３２を供給するデータ記憶装置１０１の順序を表現し、第１グループ１７４を表現する４つの番号、第２グループ１７６を表現する４つの番号およびスペア・データ記憶装置１０１を指示する２つの番号としてリストされる。表４の中のドライブ組織２（Ｄｒｉｖｅ  Ｏｒｇ  ２）は、データ記憶装置３が故障した場合に実施できるドライブ組織３０４を表現する。シート・バージョン１において、ドライブ組織２、データ記憶装置４は、グループ１内のデータ記憶装置３に取って代わり、データ記憶装置３は、故障（またはアクセス不可能）を指示するために打ち消し線で示されている。さらに、シート・バージョン１において、ドライブ組織３、データ記憶装置９は、故障したデータ記憶装置４に置き換わる。表４は、さらにＳＶ２、ＳＶ３およびＳＶ４のための種々のドライブ再組織方式を図示し、そこで同一のデータ記憶装置１０１が含まれる。
【００４９】
前記のように、図６および上記の諸表に図示した文字はブック内のデータ記憶装置１０１の分担を指示する。ブックＩＤ３０２およびＣＡＴ３８４からの関連のドライブ位置が組み合わされて、他の表にアクセスするために使用されるメンバ記憶域プール順序タグ（ｍｅｍｂｅｒ  ｓｔｏｒａｇｅ  ｐｏｏｌ  ｏｒｄｉｎａｌ  ｔａｇ）（ＭＳＰＯＴ）を形成し、それは物理ドライブ・アドレスを得るためのファイバ・チャネル裁定若しくは調停ループ物理アドレス（ａｒｂｉｔｒａｔｅｄ  ｌｏｏｐ  ｐｈｙｓｉｃａｌ  ａｄｄｒｅｓｓ）（ＡＬＰＡ）のようなものである。ある実施例においては、ＭＳＰＯＴはブック内のデータ記憶装置１０１の最大数に等しいかまたはそれ以上の数（たとえば１０個のデータ記憶装置１０１システムにおいて１６のように）によりブックＩＤ３０２を乗算して、それからシステム・テーブル内に１つのインデックスを生成するために、ＳＵ１８５へ記憶容量を供給するデータ記憶装置のメンバ・インデックスを規定するＣＡＴ３８４の値を加えることにより、生成される。使用されるデータ記憶装置１０１のタイプによって、テーブルはＳＣＳＩ  ＩＤ、ファイバ・チャネルＩＤ、または、データ記憶装置１０１を物理的にアドレスするための、いずれか他のアドレスまたはＩＤを含むように構成することができる。代わりに、前記のようにＣＡＴ３８４内のドライブ文字は、たとえばＡＬＰＡまたはＳＣＳＩ  ＩＤなどのドライブＩＤ３９０に対応することができ、それにより、ＭＳＰＯＴテーブルおよびＭＳＰＯＴ／物理ドライブ・アドレス・テーブルは、使用されないようにされる。
【００５０】
上記に例示したように、本発明の諸実施例はデータ記憶装置１０１の除去、故障または追加を容易に受け入れることができるメタデータ構造を提供する。その上、ＳＵデスクリプタ入力２９０内に規定されたドライブ組織３０４は、ＳＵ１８５の管理を簡単にする。たとえば、たとえデータ記憶装置１０１が除去され、故障し、さもなければサービスを止めたとしても、第２のドライブ組織３０４を定義することができる。データ記憶装置１０１故障の後に新しいＳＵ１８５があるＬＤへ割り当てられれば、次に続くドライブ組織３０４がＳＵデスクリプタ２９０内に規定される。前もって割り当てられたＳＵ１８５についてデータが再構成でき、ドライブ組織３０４は第１の値から第２の値へ変更される。そういうわけで、ドライブ組織３０４はどちらの既存ＳＵ１８５が再構成済みであることの指示を供給し、また、後続のデータ記憶装置１０１の除去または故障を継続するための割り当てを可能にする。言い換えれば、本発明のドライブ組織３０４の実施例は、単一の高レベル構造を通じて種々の故障順列を可能にする。
【００５１】
図１９は、本発明の実施例による記憶容量割り当て方法４００を実行するステップを図示する。方法４００は、記憶容量の割り当てについてシステム１００Ｃからの割り当て要求４０２により開始する。好ましくは、割り当て要求４０２は、ＬＤ番号、ＲＡＩＤレベルおよび記憶容量に関連する。記憶容量は、ＳＵ１８５の番号へ変換できる。割り当てるべきシートの数は、割り当て要求内のＳＵ１８５の数を、規定されたＲＡＩＤレベルについてシートごとのＳＵ１８５の数により、割り算することにより決定できる。
【００５２】
決定ブロック４０４は、割り当て要求４０２のＬＤが既存ＬＤに関連するかどうかを決定する。ブロック４０４の決定がノーであれば、そのときはこのブックのためにＳＡＤ２６０がアクセスされたブロックへ制御が通過して、割り当て可能なシートを含む記憶容量が識別される。ブロック４０８において、ＳＡＭ２０４がアクセスされて、１つまたはそれ以上の個別シートが選択される。
【００５３】
それから制御はブロック４１０へ通過して、そこでシートがＬＤへ割り当てられる。新しいＬＤへ割り当てられる最初のシートのためのブックは、ＬＤ番号から決定できる。たとえば、このブックは、ＬＤ番号モジューロ・ブック番号として計算される。複数のシートが割り当てられた場合は、ラウンド・ロビン（ｒｏｕｎｄ−ｒｏｂｉｎ）または循環テーブル（ｃｉｒｃｕｌａｒ  ｔａｂｌｅ）法のように、種々のブックの間からシートを選択できる。新しく割り当てられたＳＵ１８５のためのドライブ組織３０４は、その特定のブックのために最近に定義されたものである。ドライブ組織３０４、ブックＩＤ３０２、ＲＡＩＤレベル３００およびＳＵ番号２９８は、ＳＵデスクリプタ入力２８８として記憶される。ブック内のデータ記憶装置１０１が大容量であれば、追加ＳＵ１８５番号ビットは、拡張ＳＵデスクリプタ入力２９２として記憶できる。ＳＵデスクリプタ・アレイ入力２８４は、それからフラット・アレイ配列のためのＬＤに対応するオフセットにおいてか、またはインデック付きアレイ配列のためにＬＤＡＭ２８０内にインデックスがそれから記憶されるもう１つの位置において、ＬＤＡＭ２８０内に記憶される。
【００５４】
ブロック４１２でＳＵ１８５が、ＬＤへ割り当てられ、ブロック４１４でＳＡＤ２６０およびＳＡＭ２４０が、更新されて割り当て要求４０２の完了を反映する。
【００５５】
決定ブロック４０４の決定がイエスであれば、そのときは制御がブロック４１８へ渡されそこで割り当て要求４０２に関連するＬＤに割り当てられた最後のＳＵ１８５を問い合わせるためにＳＡＤ３３０がアクセスされると共に、ＳＵ１８５が常駐するそれぞれのシート番号も問い合わせられる。それから、制御はブロック４２０へ渡され、そこでＳＵアレイ・デスクリプタ３３０のニューシート３４２内のＳＵマップ３７０を問い合わせるためにシート番号が使用される。それから、制御は決定ブロック４２４へ渡され、そこで割り当て要求４０２を満足させるのに充分な数のＳＵ１８５がＬＤへ割り当てられたシート内にあるかどうかが決定される。決定ブロック４０４の決定がノーであれば、そのときはあらゆる割り当て可能なＳＵがブロック４２６でＬＤへ割り当てられ、割り当て要求４０２は、ブロック４２８で調節されて、ブロック４２６でＬＤへ割り当てられた割り当て可能なＳＵ１８５の数を反映し、それから制御はブロック４０６へ通過する。処理はそれから上記のように継続する。決定ブロック４２４の決定がイエスであれば、そのときはＳＵ１８５はブロック４１２内のＬＤに割り当てられ、ブロック４１４でＳＨＡＴ３６０が更新される。
【００５６】
割り当てられたＳＵ１８５の数が１枚のシート内に割り当て可能なＳＵ１８５の数を超える場合は、同一ブックまたは別のブックから追加のシートが割り当てられる。（既存ＬＤへ、ＳＵ１８５が割り当てられて）ＬＤが拡張された時は、ＳＵアレイ・デスクリプタ３３０がアクセスされて、既に割り当てられたシート内に充分な割り当て可能なＳＵ１８５が存在するかどうか、または新しいシートを割り当てなければならないかが決定される。追加の幾つかのシートを含むブックは、ＬＤ番号およびそのＬＤへ既に割り当てられたシートの数によって、ＳＵアレイ・デスクリプタ３３０により指示される通りに決定される。ＳＵ１８５をＬＤへ割り当てることを通じて、各ＬＤ内のＶＢＡと同様にストライプ１３２のＬＢＡが仮想化される。ＬＤおよびＶＢＡを参照して、それからデータを記憶したり、または記憶されたデータを読み取ることができる。
【００５７】
図２０は、本発明の実施例によりデータの転送方法４５０を実行するステップを示す。方法４５０は、記憶容量へデータを記憶しまたはそこからデータを読み取るために、メタデータ・アーキテクチャを使用する。方法４５０は、ブロック４５２の入出力（Ｉ／Ｏ）要求により開始し、これは１つのＬＤ、少なくとも１つのＶＢＡおよびデータ読み取りまたは書き込み動作などのＩ／Ｏ動作を規定する。
【００５８】
それから制御はブロック４５４へ行き、そこでデータ転送要求４５２に関連するＬＤへ割り当てられた入力２８８のために、ＳＵデスクリプタ・アレイ２８４を索引付けするのに、ＬＤＡＭ２８０がアクセスされる。それからＳＵデスクリプタ２９０を決定するために、入力２８８がＶＢＡに関して解析されるが、ＳＵデスクリプタ２９０は、他の情報と共にドライブ組織３０４、ブックＩＤ３０２およびＳＵ番号２９８を含むフィールド２９６を識別する。上記から想起されるのは、所望のＳＵ１８５を含むシートのシート・バージョン１７２（図６）が、ＳＵ番号２９８をシート内のＳＵ１８５の数で割り、（図１１の例では３０により）それからその結果をシート組織バージョンの数（図６の例では５）で割り、その剰余がシート・バージョンであることにより決定されることである。
【００５９】
それから制御は４５６へ行き、そこで所望のＳＵ１８５に関連するＣＡＴ３８４を決定するために、ドライブ組織３０４、ブックＩＤ３０２およびシート・バージョン１７２により索引付け可能なアレイ３８２を解析するために、ＤＯＴ３８０がアクセスされる。ブックＩＤ３０２と選択されたＣＡＴ３８４から得られる相対メンバ位置が組み合わされて、ＭＳＰＯＴを形成する。前述のように、個別のドライブ・アドレスを得るために、ＭＳＰＯＴをＭＳＰＯＴ／ＡＬＰＡテーブルまたは類似の構造へ付加することができる。ドライブ・アドレスを指示するためにＳＵ番号２９８を直接に使用できるし、または、それをスケールしマスクしオフセットおよび他のように調節して、データＬＢＡを生成することができる。データＬＢＡは、また、ＣＡＴ３８４のオフセット・インデックス３８８により、規定されるオフセットにより修飾することができる。追加的に、オフセット・インデックス３８８をオフセット・テーブルへ付加して各データ記憶装置１０１のための特定のオフセット値を得ることができる。代わりに、ＤＯＴ３８０、ＣＡＴ３８４、ＭＳＰＯＴおよびＭＳＰＯＴ／ＡＬＰＡアレイを組み合わせる単一のテーブルを採用することができる。最後に、ブロック４５８においてデータ転送コマンドが実行される。
【００６０】
本発明の実施例のディスク・ベースのメタデータは、ユーザ・データのそれに似た方法でシートおよびＳＵ１８５を割り当てられる。ディスク・ベース、メタデータを記憶するために、たとえば、ＲＡＩＤ−１ｘ３のような高信頼データ記憶フォーマットを使用できる。
【００６１】
図１３ないし図１８の例示的な実施例は、グリッド・ベース記憶システム１００Ｃを管理するためにデータ記憶装置１０１に記憶されるメタデータ構造を図示する。メタデータに基づく記憶装置１０１に加えて、メモリ好ましくは非揮発性メモリ内にメタデータ構造を実施して記憶システム１００Ｃを管理することができる。
【００６２】
これまでの説明から注意すべきは、本発明の割り当て／アクセス・メタデータ構造は、ユーザ・データ・グリッド２０２のみを取り扱い、ミラーまたはパリティ・データ・グリッド２０４、２０６の処理に煩わされないことである。つまり、ユーザ・データ・グリッド２０２の割り当ては、関連するミラーまたはパリティ・データ・グリッド２０４、２０６の割り当てに対して暗示的に原因になる。これは、能率の増大と性能の向上を提供する。ミラーまたはパリティ・データの処理は、割り当ておよびアクセス処理に対してトランスペアレントな方法により遂行でき、コンピュータ・プログラム・コード、テーブルまたはデータおよびパリティ・マッピングを反映する他の構造を採用できる。
【００６３】
本書に記述した種々の構造は本発明の実施例内で組み合わせることができる。たとえばＬＤＭＡ２８０のＳＵデスクリプタ・アレイ入力２８８およびＲｂｉｔ入力２８８は、別々のアレイとして実施でき、単一アレイとして実施でき、または、各ＳＵ１８５について組み合わせおよび索引付けし、またはリンクすることができる。さらなる例として、ＳＵ割り当てデスクリプタ入力３３４をＬＤＡＭ２８０のポインタ・ペア２８２の一部分として実施でき、各ＬＤへ索引付けすることができる。他のデータ構造を、本発明の実施例内で同様に組み合わせることができる。
【００６４】
本発明の実施例のこれまでの説明は、例示と説明のために提供されてきた。それは、網羅的であることや本発明の実施例を開示された通りの形式に限定することを意図するものではなく、上記の教示に照らして他の修正や変形が可能である。メタデータ・アーキテクチャの例示的な組み合わせと使用は、必要な機能性を提供し、これにより本発明の実施例の範囲を当業者が理解するために、全ての可能な配置のエミュレーションが必要でないようにしてある。選択され説明された実施例は本発明の諸原則を説明し、その実際的な応用により当業者が種々の実施例と考えられる特定の使用に適した種々の修正において、本発明を使用することを可能にする。添付の特許請求の範囲は、本発明の他の代わりの実施例を含むことを含むものと考えられる。
【図面の簡単な説明】
【００６５】
【図１】本発明の種々の実施例が採用できる例示的なオペレーティング・システムの略図である。
【図２】大容量記憶装置を使用した広域通信ネットワークを特徴とするコンピュータに基づくシステムの最上位レベルの機能ブロック図である。
【図３】図２のコントローラの選択された１つを例示する機能的なブロック図を供給する。
【図４】データ記憶装置メモリの略図である。
【図５】グリッド・ベース・データ記憶容量の略図である。
【図６】グリッド内に１０個のドライブを使用するデータ記憶シートのシート組織テーブルの略図である。
【図７】データ容量グリッドの略図である。
【図８】ユーザ・データ・グリッドの略図である。
【図９】図８のユーザ・データ・グリッドのためのＲＡＩＤ１ミラー・データ・グリッドの略図である。
【図１０】ＲＡＩＤ５レベルおよびＲＡＩＤ６レベルに適合した、ユーザ／パリティ・グリッドの略図である。
【図１１】種々のＲＡＩＤレベルのためのグリッド使用の略図である。
【図１２】データ・シート容量階層の略図である。
【図１３】シート割り当てマップおよびシート割り当て記述子若しくはデスクリプタの略図である。
【図１４】論理デバイス割り当てマップの略図である。
【図１５】リンク・リステッド論理デバイス割り当てマップの略図である。
【図１６】高信頼記憶ユニット割り当てデスクリプタ・アレイの略図である。
【図１７】シート割り当てテーブルの略図である。
【図１８】ドライブ組織テーブルの略図である。
【図１９】本発明の実施例による記憶容量割り当てのためのステップを図示する処理フローチャートである。
【図２０】本発明の実施例によるデータ転送のためのステップを図示する処理フロー・チャートである。
【符号の説明】
【００６６】
１００  オペレーティング・システム
１０１  データ記憶装置
１０２  ホスト・コンピュータ
１０４  データ記憶アレイ
１０６  ファブリック
１０８  コントローラ
１１２  メイン・プロセッサ
１１４  非揮発性メモリ
１１６  ダイナミック・ランダム・アクセス・メモリ
１１８  ファブリック・インターフェイス回路
１２０  インターフェイス回路
１２２  パス・コントローラ
１２４  キャッシュ・メモリ
１３０  記憶マップ
１３２  ストライプ
１５０  グリッド
１６０  シート組織テーブル
１６２，１６４，１６６，１６８  シート・バージョン
１７４，１７６  グループ
１８０  記憶ユニット
１８５  記憶ユニット
１９０  ミラー・データ・グリッド
２０４，２０６  パリティ値
２１２，２１４，２１６，２１８  シート
２３０  マップ
２４０  シート割り当てマップ
２６０  シート割り当てデスクリプタ
２８０  論理デバイス割り当てマップ
２９０  記憶ユニット・デスクリプタ
３００  ＲＡＩＤレベル
３０２  ブックＩＤ
３０４  ドライブ組織
３２０，３２２  リンク・データ
３３０  記憶ユニット割り当てデスクリプタ・アレイ
３４０  オールド・シート・ポインタ
３４２  ニュー・シート・ポインタ
３６０  シート割り当てテーブル
３８０  ドライブ組織テーブル
３９０  ドライブＩＤ
４００  記憶容量割り当て方法
４５０  データの転送方法
【図１】
2006120118.tif 000007
【図２】
2006120118.tif 000008
【図３】
2006120118.tif 000009
【図４】
2006120118.tif 000010
【図６】
2006120118.tif 000011
【図７】
2006120118.tif 000012
【図８】
2006120118.tif 000013
【図９】
2006120118.tif 000014
【図１０】
2006120118.tif 000015
【図１１】
2006120118.tif 000016
【図１２】
2006120118.tif 000017
【図１３】
2006120118.tif 000018
【図１４】
2006120118.tif 000019
【図１５】
2006120118.tif 000020
【図１６】
2006120118.tif 000021
【図１７】
2006120118.tif 000022
【図１８】
2006120118.tif 000023
【図１９】
2006120118.tif 000024
【図２０】
2006120118.tif 000025
【図５】
2006120118.tif 000026