少なくとも2つのドライブの論理的に隣接するグループであって、前記ドライブのそれぞれは、i先のドライブの圧縮データを格納するように構成された第1の領域と、ii前記ドライブの非圧縮データを格納するように構成された第2の領域と、を有することを特徴とする論理的に隣接するグループと、前記論理的に隣接するグループの次のドライブに接続されたループと、前記ドライブのそれぞれに格納された前記データを圧縮及び解凍するように構成された圧縮/解凍回路と、を備える装置。前記論理的に隣接するグループにおける前記ドライブの1つの前記第2の領域は、前記次のドライブの前記第1の領域に接続されることを特徴とする請求項1に記載の装置。前記ループの一部は、前記次のドライブの前記第1の領域に前記ドライブの1つの前記第2の領域を接続することを特徴とする請求項1に記載の装置。前記ドライブの1つの前記第1の領域の圧縮データは、前記ループの一部を通じてアクセス可能であることを特徴とする請求項1に記載の装置。マッピング情報は、iストレージアレイコントローラに組み込まれ、iiドライブ故障及び/又はエラー修正の場合に前記ドライブのデータを復元するために用いられるファームウェアによって保存されることを特徴とする請求項1に記載の装置。前記圧縮/解凍回路の専用の論理は、コントローラファームウェアRAIDエンジンコードに埋め込まれることを特徴とする請求項1に記載の装置。前記圧縮/解凍回路の専用の論理は、ASIC周辺装置に転送されることを特徴とする請求項1に記載の装置。前記ドライブのそれぞれは、圧縮データを格納及び検索するために用いられるドライブポートを備えることを特徴とする請求項1に記載の装置。前記ドライブのそれぞれは、ドライブエンクロージャにおいて用いられる冗長なドライブチャネルを備えることを特徴とする請求項1に記載の装置。前記装置は、パリティを用いることなしにRAIDレベル5よりも優れた冗長性と耐故障性を確立することを特徴とする請求項1に記載の装置。少なくとも2つのドライブの論理的に隣接するグループを実現するための手段であって、前記ドライブのそれぞれは、i先のドライブの圧縮データを格納するように構成された第1の領域と、ii前記ドライブの非圧縮データを格納するように構成された第2の領域と、を有することを特徴とする論理的に隣接するグループを実現するための手段と、前記論理的に隣接するグループの次のドライブに接続されたループを実現するための手段と、前記ドライブのそれぞれに格納された前記データを圧縮及び解凍するように構成された圧縮/解凍回路を実現するための手段と、を備える装置。前記装置は、パリティを用いることなしにRAIDレベル5よりも優れた冗長性と耐故障性を確立することを特徴とする請求項11に記載の装置。A少なくとも2つのドライブの論理的に隣接するグループを実現し、前記ドライブのそれぞれは、i先のドライブの圧縮データを格納するように構成された第1の領域と、ii前記ドライブの非圧縮データを格納するように構成された第2の領域と、を有することを特徴とし、B前記論理的に隣接するグループの次のドライブに接続されたループを実現し、C前記ドライブのそれぞれに格納された前記データを圧縮及び解凍するように構成された圧縮/解凍回路を実現する、ステップを備えるドライブアレイにおいて耐故障性を実現するための方法。前記方法は、パリティを用いることなしにRAIDレベル5よりも優れた冗長性と耐故障性を確立することを特徴とする請求項13に記載の方法。図4を参照すると、分散された圧縮データのアプローチが示される。複数のドライブDRIVE1、DRIVE2、DRIVE3、DRIVE4が示される。圧縮データは、パリティがRAID5のアプローチにおいて分散される方法と同様にドライブに亘って分散される。ドライブDRIVE1~4のそれぞれは、他の3つのドライブのそれぞれからのデータのストライプの圧縮されたバージョンを含む。分散された圧縮データのアプローチは、専用の圧縮データの方法よりも優れたパフォーマンスを提供する。しかしながら、分散された圧縮データの方法における1つ以上のドライブの故障はデータ損失をもたらすだろう。本発明は、少なくとも2つのドライブの論理的に隣接するグループ、ループ、及び圧縮/解凍回路を備える装置に関する。ドライブのそれぞれは、i先のドライブの圧縮データを格納するように構成された第1の領域と、iiドライブの非圧縮データを格納するように構成された第2の領域と、を備える。ループは、論理的に隣接するグループにおける次のドライブに接続されるだろう。圧縮/解凍回路は、ドライブのそれぞれに格納されたデータを圧縮及び解凍するように構成されるだろう。本発明の目的、特徴、及び利点は、i冗長性と耐故障性のレベルを確立し、iiパリティを用いることなしに実現され、iii圧縮/解凍動作のためのASICを実装し、ivドライブエンクロージャにおいて既存の冗長なドライブチャネルを用い、vデータを格納するために使用中のドライブポートを用い、vi圧縮/解凍を実現するファームウェアを提供し、vii別のドライブに格納された圧縮データブロックと比較して、ドライブのそれぞれのデータブロック間のマッピングを格納するファームウェアを実現し、及び/又はviiiコスト効率が良いドライブストレージの構成を提供することを含む。これらと他の本発明の目的、特徴、及び利点は、以下の明細書と添付された特許請求の範囲と図面とから明らかになるだろう。最大限のストレージ効率及び/又はパフォーマンスを有する高レベルな冗長性の達成は、データストレージが増大する現代世界における共通の目標である。本発明は、RAID構成においてデータの冗長なコピーを圧縮する圧縮方式を実現するだろう。冗長データは、一鎖型の方式において分散されるだろう。論理的なループは、パリティ及び/又はミラーリング技法を必要とすることなしにRAID構成において高レベルな冗長性及び/又はパフォーマンスを達成するために実装されるだろう。圧縮方式を冗長性のために用いることは、更なる冗長性、優れた耐故障性、及び/又は向上されたパフォーマンスを提供する。ドライブのセットは、RAIDグループに分類されるだろう。ドライブのそれぞれのデータ内容は、RAIDグループにおける別のドライブに圧縮及び格納されるだろう。一鎖型の論理構成が実現されるだろう。ドライブの冗長なポートとドライブエンクロージャにおける冗長なドライブチャネルは、論理構成を提供するために用いられるだろう。データで50の圧縮が達成されるシナリオにおいては、RAID1のドライブグループと比較して、本発明はストレージ使用率を33.33増加させるだろう。本発明のストレージ効率は、データに適用される圧縮の量に依存して向上するだろう。50を超える圧縮に関しては、本発明のストレージ効率は更に増加し、耐故障性に如何なる妥協をもすることなしに、RAID4及び/又はRAID5のストレージ効率よりも一般に性能が優れる。ストレージサブシステムのために指定されたパフォーマンスを保証すべく、圧縮及び/又は解凍動作のためにASIC特定用途向けICが実装されるだろう。ドライブエンクロージャにおける冗長なドライブポート及び/又は冗長なドライブチャネルの使用は、ドライブのために指定されたパフォーマンスを保証するだろう。本発明の一鎖型の圧縮ソリューションは、RAIDシステムに対して向上された耐故障性、冗長性、及び/又はアベイラビリティを提供するだろう。本発明のRAIDグループは、ドライブの集合を含むだろう。データのブロックの一例は、単一ドライブに格納されるだろう。あるドライブからのデータの一例の圧縮形は、同一のRAIDグループにおける別の他のドライブに格納されるだろう。2つのドライブは論理的に隣接するドライブと呼称されるだろう。パリティ及び/又はミラーリングのいずれかを用いる必要性は、圧縮を導入することによって回避されるだろう。特定のドライブの圧縮データは一鎖型の方式におけるドライブに格納されるだろう。例えば、ループが構成されるだろう。高レベルな冗長性、耐故障性、及び/又はパフォーマンスが達成されるだろう。図5を参照すると、本発明のドライブ100が示される。ドライブ100は、一般に領域102と領域104を備える。領域104は、非圧縮データを格納するために用いられるだろう。領域102は、ある論理的に隣接するドライブの圧縮データ例えば、ドライブn-1からの圧縮データを格納するために用いられるだろう。実装された特定の圧縮機構は、ドライブ100の現在の内容のワンツーone-to-twoマッピングを必要とするだろう図6に関連してより詳細に説明される。例えば、あるドライブのデータの圧縮されたバージョンは、論理的に隣接するドライブに格納されるだろう。マッピング情報は、ストレージアレイコントローラに組み込まれたファームウェアによって保存されるだろう。マッピング情報は、論理的に隣接するドライブから圧縮データブロックを解凍することによって、ドライブ故障及び/又はエラー修正の場合にドライブのデータを復元するために用いられるだろう。故障したドライブを新規の代替ドライブに交換するとき、論理的に隣接するドライブから圧縮データブロックを解凍することによって、故障したドライブのデータを新規のドライブに復元することができる。マッピング情報は、冗長なストレージアレイコントローラ図7に関連してより詳細に説明されるのそれぞれに組み込まれたコントローラファームウェアによって実現されるだろう。図6を参照すると、ドライブシステム又は構成150のブロック図が示される。システム150は、一般に複数のドライブ100a~100nを備える。ドライブ100a~100nの特定の数は、特定の実施の形態の設計基準を満たすように変更されるだろう。ドライブ100a~100nのそれぞれは、データセクション例えば、D1~D5と圧縮セクション例えば、C1~C5を有するだろう。例えば、ドライブ100aは、非圧縮データD1を格納するように構成されたデータセクションを有するだろう。データブロックD1の圧縮形は、データC1として論理的に隣接するドライブに格納されるだろう。例えば、圧縮データC1は、ドライブ100bに格納されるだろう。ドライブ100a~100nは、ループ160a~160nを形成するだろう。ループ160a~160nは、一鎖型の論理的なループを形成するだろう。一般に、ループ160a~160nは、ドライブ100a~100nの間の複数の論理接続として実現されるだろう。例えば、部分160aは、ドライブ100bの圧縮データC1にドライブ100aのデータD1を論理的に接続するだろう。一般にレフトツーライト方式のループ160a~160nが示される。しかしながら、ループ160a~160nは、一般にライトツーレフト方式で実現されても良い。例えば、部分160dは、ドライブ100dの圧縮データC5にドライブ100nのデータD5を論理的に接続するだろう。ループ160a~160nの特定の形態は、特定の実施の形態の設計基準を満たすように変更されるだろう。示された一例においては、ドライブ100bはデータD2を格納するだろう。データD2の圧縮されたバージョンは、データC2としてドライブ100cに格納され、論理的なループ160a~160nの部分160bを通じてアクセス可能となるだろう。同様に、ドライブ100aのデータD1は、ドライブ100bにデータC1として格納されたデータD1の圧縮されたバージョンを有するだろう。ドライブ100nの圧縮データC5は、ドライブ100aに格納されるだろう。一般に、2つのドライブ100a~100nの全てが論理的に隣接するグループを形成するだろう。一例においては、ドライブ100b及び100cは、論理的に隣接するグループであるだろう。論理的に隣接するグループは、互いに隣接して示されないドライブによって形成されても良い。圧縮データC3としてドライブ100dに格納されたドライブ100cのデータD3が示される。図7を参照すると、ストレージサブシステム200の図が示される。サブシステム200は、一般に複数のブロック又は回路202a~202bを備える。回路202a~202bは、それぞれ圧縮/解凍回路として実現されるだろう。ミドルプレーン204は、回路202aと回路202bとの間に実装されるだろう。圧縮回路202aは、一般にブロック又は回路210、ブロック又は回路212、ブロック又は回路214、及びブロック又は回路216を備える。回路210は、ホストインタフェースとして実現されるだろう。回路212は、データキャッシュとプロセッサとして実現されるだろう。回路214は、圧縮/解凍エンジンとして実現されるだろう。回路216は、ドライブインタフェースとして実現されるだろう。回路212は、一般にキャッシュ回路218とプロセッサ回路220を備える。ホストインタフェース210は、信号例えば、DATAを受信する入力230を有するだろう。信号DATAは、一般に図5に記載されたデータD1~D5を意味する1つ以上のデータブロック又はパケットを意味する。ホストインタフェースは、回路212の入力234に信号DATAを送信する出力232を有するだろう。回路212は、回路214の入力238に信号DATAを送信する出力236を有するだろう。回路212は、同様に回路216の入力242に信号DATAを送信する出力240を有するだろう。回路214は、回路216の入力246に信号例えば、C_DATAを送信する出力244を有するだろう。信号C_DATAは、信号DATAの圧縮されたバージョンであるだろう。信号C_DATAは、一般に図5に記載された圧縮データC1~C5を意味する1つ以上のデータブロック又はパケットを意味する。回路202bは、同様の形態を有するだろう。回路214は、圧縮及び/又は解凍動作を実現する専用の論理を提供するだろう。回路202a及び/又は回路202bの論理は、RAIDエンジンのためのコードとコントローラファームウェアの一部として実行するコードに埋め込まれるか、又はコントローラファームウェアコードによって制御及び操作されるASICにオフロードされるだろう。コードをオフロードすることは、追加の回路類を代償としてパフォーマンスを向上させるだろう。回路214によって実現された圧縮/解凍の特定のタイプは、特定の実施の形態の設計基準を満たすように変更されるだろう。回路202a及び/又は回路202bは、冗長性、耐故障性、及び/又はRAIDグループのフェイルオーバー機構のために用いられるだろう。図8を参照すると、ドライブエンクロージャ300が示される。複数のドライブ100a~100nを含むドライブエンクロージャ300が示される。ポート例えば、P1と別のポート例えば、P2を有するドライブ100a~100nのそれぞれが示される。エンクロージャは、一般に回路302、回路304、ミドルプレーン204、回路308、及び回路310を備える。回路302は、第1のESMとして実現されるだろう。回路308は、別のESMとして実現されるだろう。ドライブ100a~100nのそれぞれのポートP1とP2の1つは、プライマリポートであるだろう。ドライブ100a~100nのそれぞれの別のポートP1とP2の1つは、セカンダリポートであるだろう。ドライブへの非圧縮データD1~D5と圧縮データC1~C5の入出力パスは、別々に保たれるだろう。非圧縮データD1~D5と圧縮データC1~C5の両方は、同一のコントローラによって処理される。ドライブ100a~100nは、冗長性を実現する例えば、ドライブ100a~100nの圧縮データC1~C5を格納及び検索するデュアルポートドライブとして実現されるだろう。SOC304又は310は、ESM302又は308において存在し、ドライブ100a~100nへのデータのスイッチング/ルーティングを実行するだろう。ドライブエンクロージャ300のミドルプレーン204は、ドライブエンクロージャ300の冗長なESM302又は308に圧縮データを送信するために用いられるだろう。ミドルプレーン204も、セカンダリポートP2を用いてドライブ100a~100nに圧縮データを送信するために用いられるだろう。信号DATAの圧縮データC_DATAは、ドライブエンクロージャ300のミドルプレーン回路204を通じて別のESM308にルートされ、同一のESMによりデータD1~D5を維持するだろう。コントローラ202aによって所有されるRAID論理ドライブに関しては、ドライブ100a~100nのそれぞれのプライマリポートP1は、ESM302によって処理されるプライマリチャネルを通じて非圧縮データを転送するために用いられるだろう。ドライブ100a~100nのそれぞれのセカンダリポートP2は、ESM308によって処理されるセカンダリチャネルを通じて圧縮データを転送するために用いられるだろう。コントローラ202bによって所有されるRAID論理ドライブ100a~100nに関しては、ポートP2は、ESMB308によって処理されるプライマリチャネルを通じて非圧縮データを転送するプライマリポートとして用いられるだろう。ポートP1は、ESM302によって処理されるセカンダリチャネルを通じて圧縮データを転送するセカンダリポートとして用いられるだろう。本発明を用いて実現されたRAIDグループは、ドライブ100a~100nの1つに格納された実圧縮されていないデータD1~Dnと、2つの他の論理的に隣接するドライブ100a~100nに格納された圧縮データC1~Cnとを有するだろう。ホストからのそれぞれのデータセグメントの到着と同時に、データD1~D5は、ドライブインタフェース216に送信される複数のストライプに分割される。この処理と並列して、ストライプされたデータは、ドライブインタフェースに送信された圧縮エンジンによって圧縮される。圧縮データC1~Cnと共に実データD1~Dnは、ドライブエンクロージャ300に送信される。図9を参照すると、ドライブ100a~100nへのデータフローの一例が示される。データは、データチャネル320で送信されるだろう。ドライブ100a~100nのそれぞれは、データチャネル320からプライマリポートP1でデータを受信するだろう。データチャネル320からのデータは、圧縮/解凍エンジン214によって圧縮されるだろう。ドライブ100a~100nのそれぞれは、圧縮/解凍エンジン214からセカンダポートP2で圧縮データを受信するだろう。これは、ドライブパフォーマンスの損失なしにドライブ100a~100nの全てによりRAIDグループが動作することを保証する。論理的に隣接するドライブ故障がなければ、nがRAIDグループにおけるドライブの総数である場合、本発明は通常n/2のドライブの耐故障性を提供する。本発明で50のデータ圧縮を用いることは、RAID1の形態と比較して、同一のストレージ効率とより大きなパフォーマンスを保証するだろう。2つのドライブの一例を考慮する。ドライブ100a~100nのそれぞれが容量Cギガバイトを有する場合、RAID1が占める最大領域はCギガバイトである。しかしながら、本発明では、ドライブ100a~100nのそれぞれにおけるデータ領域は0.666Cギガバイトを占め、圧縮領域は0.333Cギガバイトを占める50の圧縮。2つのドライブにおいては、RAIDグループが格納する実データの総容量は約1.33Cギガバイトである。パフォーマンスは、両方のドライブに亘ってストライプされたデータを有するRAID0のグループのようにドライブ100a~100nがアクセスされるのでより優れる。従って、本発明は50以上の圧縮によりRAID1よりも優れたパフォーマンスを提供するだろう。しかしながら、50を超える圧縮を実現することによって、ドライブ1001~100nのストレージ容量効率は更に向上するだろう。1つを超えるドライブが故障してもn/2までのドライブが論理的に隣接するドライブの故障を提供しない場合、本発明はデータ損失なしに動作し続けるので、本発明はRAID3及びRAID5の形態よりも一般に耐故障性に優れる。RAID3及びRAID5のグループと比較して、更なる耐故障性が実現されるだろう。RAID3及びRAID5のグループの場合には、修正動作がグループで実行されるときは常に、パリティを再計算し、修正済のデータとパリティを更新するために全てのドライブが読取られる必要がある。本発明では、修正動作ごとに、データがそれぞれのドライブ100a~100nにストライプされ書込まれる。そのとき、ストライプの圧縮は、RAIDグループにおける論理的に隣接するドライブに独立して生成され書込まれる。パリティ生成方法と比較して、少ない読取り及び/又は更新が必要とされる。図10を参照すると、2つのドライブ故障を有するドライブシステム150を示す図が示される。故障する全てのドライブが不連続である限り、ドライブシステム150は多重ドライブ損失シナリオを処理するだろう。ドライブ100aとドライブ100cは、故障して×で印を付けられる。2つのドライブが故障したとしても、全ては引き続き使用可能である。以下の表は、それぞれのドライブの状態とデータアベイラビリティを示す。図11を参照すると、2つのドライブ故障を有する分散された圧縮データの方法を示す図が示される。分散された圧縮データの方法を用いる任意の2つのドライブの故障はデータ損失をもたらす。DRIVE2とDRIVE4は、ドライブ故障を示すために×で印を付けられる。その結果、データD1とD8は失われる。図12を参照すると、2つのドライブ故障を有する専用の圧縮データの方法を示す図が示される。専用の圧縮データの方法を用いる専用のドライブとRAIDシステムにおける他のドライブの故障はデータ損失をもたらす。DRIVE2と専用のドライブDRIVE4は、ドライブ故障を示すために×で印を付けられる。その結果、データブロックD1、D4、及びD7は失われる。本発明は、分散された圧縮データの方法及び専門の圧縮データの方法と比較して、より高レベルな冗長性と耐故障性と共にパフォーマンスとの間の優れたトレードオフを提供する。本発明は、特にその好適な実施の形態に関して示され説明されたが、本発明の範囲から逸脱することなく、形式と細部の様々な変更がなされるであろうことが当業者によって理解されるだろう。