(57)【要約】      （修正有）【課題】パリティを用いることなしにＲＡＩＤレベル６よりも優れたレベルの冗長性と耐故障性を確立する。【解決手段】少なくとも３つのドライブの論理的に隣接するグループ、第１のループ、第２のループ、及び圧縮／解凍回路を備える。ドライブのそれぞれは、（ｉ）先のドライブの圧縮データを格納するように構成された第１の領域と、（ｉｉ）ドライブの非圧縮データを格納するように構成された第２の領域と、（ｉｉｉ）次のドライブの圧縮データを格納するように構成された第３の領域と、を備える。第１のループは、論理的に隣接するグループにおける次のドライブに接続される。第２のループは、論理的に隣接するグループの先のドライブに接続される。圧縮／解凍回路は、ドライブのそれぞれに格納されたデータを圧縮及び解凍するように構成される。【選択図】図５
2011243189.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも３つのドライブの論理的に隣接するグループであって、前記ドライブのそれぞれは、（ｉ）先のドライブの圧縮データを格納するように構成された第１の領域と、（ｉｉ）前記ドライブの非圧縮データを格納するように構成された第２の領域と、（ｉｉｉ）次のドライブの圧縮データを格納するように構成された第３の領域と、を有することを特徴とする論理的に隣接するグループと、
前記論理的に隣接するグループの前記次のドライブに接続された第１のループと、
前記論理的に隣接するグループの前記先のドライブに接続された第２のループと、
前記ドライブのそれぞれに格納された前記データを圧縮及び解凍するように構成された圧縮／解凍回路と、
を備える装置。
【請求項２】
前記論理的に隣接するグループにおける前記ドライブの１つの前記第２の領域は、前記次のドライブの前記第１の領域に接続されることを特徴とする請求項１に記載の装置。
【請求項３】
前記論理的に隣接するグループにおける前記ドライブの１つの前記第２の領域は、前記先のドライブの前記第３の領域に接続されることを特徴とする請求項１に記載の装置。
【請求項４】
前記第１のループの一部は、前記先のドライブの前記第１の領域に前記ドライブの１つの前記第２の領域を接続することを特徴とする請求項１に記載の装置。
【請求項５】
前記第２のループの一部は、前記次のドライブの前記第３の領域に前記ドライブの１つの前記第２の領域を接続することを特徴とする請求項１に記載の装置。
【請求項６】
前記ドライブの１つの前記第１の領域の圧縮データは、前記第１のループの一部を通じてアクセス可能であることを特徴とする請求項１に記載の装置。
【請求項７】
前記ドライブの１つの前記第３の領域の圧縮データは、前記第２のループの一部を通じてアクセス可能であることを特徴とする請求項１に記載の装置。
【請求項８】
マッピング情報は、（ｉ）ストレージアレイコントローラに組み込まれ、（ｉｉ）ドライブ故障及び／又はエラー修正の場合に前記ドライブのデータを復元するために用いられるファームウェアによって保存されることを特徴とする請求項１に記載の装置。
【請求項９】
前記圧縮／解凍回路の専用の論理は、コントローラファームウェアＲＡＩＤエンジンコードに埋め込まれることを特徴とする請求項１に記載の装置。
【請求項１０】
前記圧縮／解凍回路の専用の論理は、ＡＳＩＣ周辺装置に転送されることを特徴とする請求項１に記載の装置。
【請求項１１】
前記ドライブのそれぞれは、圧縮データを格納及び検索するために用いられるデュアルドライブポートを備えることを特徴とする請求項１に記載の装置。
【請求項１２】
前記ドライブのそれぞれは、ドライブエンクロージャにおいて用いられる冗長なドライブチャネルを備えることを特徴とする請求項１に記載の装置。
【請求項１３】
前記装置は、パリティを用いることなしにＲＡＩＤレベル６よりも優れた冗長性と耐故障性を確立することを特徴とする請求項１に記載の装置。
【請求項１４】
少なくとも３つのドライブの論理的に隣接するグループを実現するための手段であって、前記ドライブのそれぞれは、（ｉ）先のドライブの圧縮データを格納するように構成された第１の領域と、（ｉｉ）前記ドライブの非圧縮データを格納するように構成された第２の領域と、（ｉｉｉ）次のドライブの圧縮データを格納するように構成された第３の領域と、を有することを特徴とする論理的に隣接するグループを実現するための手段と、
前記論理的に隣接するグループの前記次のドライブに接続された第１のループを実現するための手段と、
前記論理的に隣接するグループの前記先のドライブに接続された第２のループを実現するための手段と、
前記ドライブのそれぞれに格納された前記データを圧縮及び解凍するように構成された圧縮／解凍回路を実現するための手段と、
を備える装置。
【請求項１５】
前記装置は、パリティを用いることなしにＲＡＩＤレベル６よりも優れた冗長性と耐故障性を確立することを特徴とする請求項１４に記載の装置。
【請求項１６】
（Ａ）少なくとも３つのドライブの論理的に隣接するグループを実現し、前記ドライブのそれぞれは、（ｉ）先のドライブの圧縮データを格納するように構成された第１の領域と、（ｉｉ）前記ドライブの非圧縮データを格納するように構成された第２の領域と、（ｉｉｉ）次のドライブの圧縮データを格納するように構成された第３の領域と、を有することを特徴とし、
（Ｂ）前記論理的に隣接するグループの前記次のドライブに接続された第１のループを実現し、
（Ｃ）前記論理的に隣接するグループの前記先のドライブに接続された第２のループを実現し、
（Ｄ）前記ドライブのそれぞれに格納された前記データを圧縮及び解凍するように構成された圧縮／解凍回路を実現する、
ステップを備えるドライブアレイにおいて耐故障性を実現するための方法。
【請求項１７】
前記方法は、パリティを用いることなしにＲＡＩＤレベル６よりも優れた冗長性と耐故障性を確立することを特徴とする請求項１６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、 付けで出願された同時係属出願第 号（代理人整理番号１４９６．００６８１）に関連し、その全体が援用される。
【０００２】
本発明は、一般にストレージデバイス、特にパリティを用いることなしにＲＡＩＤレベル６よりも優れたレベルの冗長性と耐故障性を確立する方法及び／又は装置に関する。
【背景技術】
【０００３】
ＲＡＩＤ（安価なドライブの冗長アレイ）ストレージシステムにおいて用いられる従来のアプローチは、主として排他的論理和機能（パリティ計算）、又は冗長性を獲得し且つ耐故障性を提供するミラー機能のいずれかに基づく。ＲＡＩＤ１とＲＡＩＤ１０の技術では、ドライブは冗長性を獲得するためにミラーされる。新しい書込みがメディアで発生するごとに、データドライブと対応するミラードライブの両方に全データを複製し書込む必要がある。
【０００４】
図１を参照すると、ＲＡＩＤ１０のアプローチが示される。ドライブＤＩＳＫ１にミラーされたドライブＤＩＳＫ０が示される。ドライブＤＩＳＫ３にミラーされたドライブＤＩＳＫ２が示される。ＲＡＩＤ１とＲＡＩＤ１０のアプローチは、別のドライブに、あるドライブの完全な内容をミラーすることを意味する。ＲＡＩＤ１として構成された２つのドライブが存在するならば、それぞれのドライブが容量Ｃギガバイトを有する場合、ＲＡＩＤグループの総容量はＣギガバイト（即ち、両方のドライブの総容量である２Ｃギガバイトではない）になるだろう。従って、ＲＡＩＤ１又はＲＡＩＤ１０の全体のストレージ容量は、ＲＡＩＤ１又はＲＡＩＤ１０の構成における全てのドライブの総容量の５０％である。
【０００５】
図２を参照すると、ＲＡＩＤ４とＲＡＩＤ５のアプローチが示される。複数のドライブＤＩＳＫ０、ＤＩＳＫ１、ＤＩＳＫ２、及びＤＩＳＫ３が示される。ＲＡＩＤ４とＲＡＩＤ５においては、データブロックはＲＡＩＤグループの複数のドライブＤＩＳＫ０〜ＤＩＳＫ３に亘ってストライプされる。示されたＲＡＩＤ４の構成においては、ドライブＤＩＳＫ０、ＤＩＳＫ１、及びＤＩＳＫ２がデータを格納する。パリティブロックは、専用のドライブ（即ち、ドライブＤＩＳＫ３として示される）に格納される。ＲＡＩＤ５においては、パリティはＲＡＩＤグループにおける全てのドライブＤＩＳＫ０〜ＤＩＳＫ４に亘って分散される。示されたＲＡＩＤ５の構成においては、データを保持するドライブＤＩＳＫ３が示される（ＲＡＩＤ４と比較してドライブＤＩＳＫ３のみがパリティを保持する場合）。Ｄパリティ（即ち、データブロックＤのパリティ）は、ディスクＤＩＳＫ０に格納される。Ｃパリティは、ＤＩＳＫ２に格納される。ディスクＤＩＳＫ２に格納されたＢパリティが示される。ディスクＤＩＳＫ３に格納されたＡパリティが示される。
【０００６】
ＲＡＩＤ４とＲＡＩＤ５のアプローチは、排他的論理和機能に基づいたパリティ生成を用いる。ＲＡＩＤ４とＲＡＩＤ５では、データの全てのストライプはパリティを生成するために用いられる。生成されたパリティは、その後、別の専用のドライブに格納されるか、又はＲＡＩＤグループの全てのドライブに亘って分散される。ＲＡＩＤ４とＲＡＩＤ５は、データを失うことなしに一度に１つのドライブ故障のみに耐えることができる。
【０００７】
図３を参照すると、ＲＡＩＤ６のアプローチが示される。ＲＡＩＤ６のアプローチにおいては、データブロックＡ〜ＤはＲＡＩＤグループの複数のドライブ（即ち、ドライブＤＩＳＫ０〜ＤＩＳＫ４として示される）に亘ってストライプされる。２つのパリティが計算される。２つのパリティは、その後、ＲＡＩＤグループにおける全てのドライブに亘って分散される。ドライブＤＩＳＫ０に格納された第１のＤパリティ（即ち、データブロックＤのパリティ）が示される。ドライブＤＩＳＫ１に格納された第２のＤパリティが示される。ドライブＤＩＳＫ１〜ＤＩＳＫ４に同様に分散されたＡ〜Ｃパリティが示される。
【０００８】
ＲＡＩＤ６の構成のパフォーマンスは、デュアルパリティ生成のために、ＲＡＩＤ０、ＲＡＩＤ４、又はＲＡＩＤ５の構成のパフォーマンス未満である。ＲＡＩＤ６の構成のデータ修正とデータ書込み中に必要とされる複雑さもパフォーマンスを遅くする。ＲＡＩＤ６の構成は、データを失うことなしに２つまでのドライブ故障の耐故障性の提供のみができる。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
パリティを実現するプロセッシングオーバヘッドを増加させることなしにＲＡＩＤレベル６よりも高レベルな冗長性と耐故障性を確立する方法を実現することは望ましいだろう。
【課題を解決するための手段】
【００１０】
本発明は、少なくとも３つのドライブの論理的に隣接するグループ、第１のループ、第２のループ、及び圧縮／解凍回路を備える装置に関する。ドライブのそれぞれは、（ｉ）先のドライブの圧縮データを格納するように構成された第１の領域と、（ｉｉ）ドライブの非圧縮データを格納するように構成された第２の領域と、（ｉｉｉ）次のドライブの圧縮データを格納するように構成された第３の領域と、を備える。第１のループは、論理的に隣接するグループにおける次のドライブに接続されるだろう。第２のループは、論理的に隣接するグループの先のドライブに接続されるだろう。圧縮／解凍回路は、ドライブのそれぞれに格納されたデータを圧縮及び解凍するように構成されるだろう。
【００１１】
本発明の目的、特徴、及び利点は、（ｉ）ＲＡＩＤレベル６よりも優れた冗長性と耐故障性のレベルを確立し、（ｉｉ）パリティを用いることなしに実現され、（ｉｉｉ）圧縮／解凍動作のためのＡＳＩＣを実装し、（ｉｖ）ドライブエンクロージャにおいて既存の冗長なドライブチャネルを用い、（ｖ）データを格納するために使用中のドライブポートを用い、（ｖｉ）圧縮／解凍を実現するファームウェアを提供し、（ｖｉｉ）別のドライブに格納された圧縮データブロックと比較して、ドライブのそれぞれのデータブロック間のマッピングを格納するファームウェアを実現し、及び／又は（ｖｉｉｉ）コスト効率が良いドライブストレージの構成を提供することを含む。
【００１２】
これらと他の本発明の目的、特徴、及び利点は、以下の明細書と添付された特許請求の範囲と図面とから明らかになるだろう。
【図面の簡単な説明】
【００１３】
【図１】ＲＡＩＤ１とＲＡＩＤ１０のアプローチを示す図である。
【図２】ＲＡＩＤ４とＲＡＩＤ５のアプローチを示す図である。
【図３】ＲＡＩＤ６のアプローチを示す図である。
【図４】本発明のドライブの一例を示す図である。
【図５】二鎖型の２つの論理的なループ構成における複数のドライブを示す図である。
【図６】圧縮／解凍動作のための専用の論理を示す図である。
【図７】ドライブエンクロージャを示す図である。
【図８】ドライブへのデータフローの一例を示す図である。
【図９】３つのドライブ故障の一例を示す図である。
【発明を実施するための形態】
【００１４】
最大限のストレージ効率とパフォーマンスを有する高レベルな冗長性の達成は、データストレージが増大する現代世界における共通の目標である。本発明は、ＲＡＩＤ構成においてデータの冗長なコピーを圧縮する圧縮方式を実現するだろう。冗長データは、二鎖型の方式において分散されるだろう。２つの論理的なループは、パリティ及び／又はミラーリング技法を必要とすることなしにＲＡＩＤ構成において高レベルな冗長性とパフォーマンスを達成するために実装されるだろう。圧縮方式を冗長性のために用いることは、更なる冗長性、優れた耐故障性、ストレージ効率、及び／又は向上されたパフォーマンスを提供する。ドライブのセットは、ＲＡＩＤグループに分類されるだろう。ドライブのそれぞれのデータ内容は、ＲＡＩＤグループにおける２つの個別のドライブに圧縮及び格納されるだろう。二鎖型の論理構成が実現されるだろう。ドライブの冗長なポートとドライブエンクロージャにおける冗長なドライブチャネルは、論理構成を提供するために用いられるだろう。
【００１５】
データで５０％の圧縮が達成されるシナリオにおいては、本発明は５０％のストレージ使用率を提供するだろう。このストレージ使用率は、ＲＡＩＤ１と同等であるだろう。しかしながら、より高レベルな圧縮によって、本発明はＲＡＩＤ１のドライブグループよりも優れたストレージ効率を提供するだろう。例えば、本発明のストレージ効率は、データに適用される圧縮の量に依存して向上するだろう。５０％の圧縮に関しては、本発明のストレージ効率は、一般にＲＡＩＤ１の構成のストレージ効率と同等である。５０％を超える圧縮に関しては、本発明によって達成可能なストレージ効率は、耐故障性に如何なる妥協をもすることなしに、ＲＡＩＤ４、ＲＡＩＤ５、及び／又はＲＡＩＤ６のストレージ効率よりも更に上昇し、一般に性能が優れる。
【００１６】
本発明は、２ｎ／３のドライブ故障の床関数までの耐故障性を提供するだろう、ここでｎはシステムにおけるドライブの数である。ＲＡＩＤ４、ＲＡＩＤ５、ＲＡＩＤ６（及び同様の変形）よりも優れた耐故障性は、３つの論理的に隣接するドライブが故障しないことにより達成されるだろう（図９に関連してより詳細に説明される）。一般に、本発明においては非付加的な読取り、修正、及び／又は書込み操作が有効なドライブから必要とされ（ＲＡＩＤ５とＲＡＩＤ６としての−パリティ再計算のために）、その結果、システムが落ちた状態（例えば、１つ以上のドライブ故障を有する）のときにパフォーマンスを向上させる。
【００１７】
ストレージサブシステムのためのパフォーマンスの指定レベルを保証すべく、圧縮及び／又は解凍動作のためにＡＳＩＣ（特定用途向けＩＣ）が実装されるだろう。ドライブエンクロージャにおけるデュアルポートドライブ及び／又は冗長なドライブチャネルの使用は、ドライブのために指定されたパフォーマンスを保証するだろう。本発明の二鎖型の圧縮ソリューションは、ＲＡＩＤシステムに対して向上された耐故障性、冗長性、及び／又はアベイラビリティを提供するだろう。
【００１８】
本発明のＲＡＩＤグループは、ドライブの集合を含むだろう。データのブロックの一例は、単一ドライブに格納されるだろう。あるドライブからのデータの一例の圧縮形は、同一のＲＡＩＤグループにおける２つの他のドライブに格納されるだろう。これらの３つのドライブは「論理的に隣接する」ドライブと呼称されるだろう。パリティ及び／又はミラーリングのいずれかを用いる必要性は、圧縮を導入することによって回避されるだろう。特定のドライブの圧縮データは二鎖型の方式における２つのドライブに格納されるだろう。例えば、２つのループが構成されるだろう。高レベルな冗長性、耐故障性、及び／又はパフォーマンスが達成されるだろう。
【００１９】
図４を参照すると、本発明のドライブ１００が示される。ドライブ１００は、一般に領域１０２、領域１０４、及び領域１０６を備える。領域１０４は、非圧縮データを格納するために用いられるだろう。領域１０２は、ある論理的に隣接するドライブの圧縮データ（例えば、ドライブｎ−１からの圧縮データ）を格納するために用いられるだろう。領域１０６は、別の論理的に隣接するドライブの圧縮データ（例えば、ドライブｎ＋１からの圧縮データ）を格納するために用いられるだろう。
【００２０】
実装された特定の圧縮機構は、ドライブ１００の現在の内容のワンツー（ｏｎｅ−ｔｏ−ｔｗｏ）マッピングを必要とするだろう（図５に関連してより詳細に説明される）。例えば、あるドライブのデータの圧縮されたバージョンは、２つの他の論理的に隣接するドライブに格納されるだろう。マッピング情報は、コントローラに組み込まれたファームウェアによって保存されるだろう。マッピング情報は、論理的に隣接するドライブの１つから圧縮データブロックを解凍することによって、ドライブ故障及び／又はエラー修正の場合にドライブのデータを復元するために用いられるだろう。故障したドライブを新規の適切に動作するドライブに交換するとき、論理的に隣接するドライブの１つから圧縮データブロックを解凍することによって、故障したドライブのデータを新規のドライブに復元することができる。マッピング情報は、冗長なストレージアレイコントローラ（図６に関連してより詳細に説明される）のそれぞれに組み込まれたコントローラファームウェアによって実現されるだろう。
【００２１】
図５を参照すると、ドライブシステム（又は構成）１５０のブロック図が示される。システム１５０は、一般に複数のドライブ１００ａ〜１００ｎを備える。ドライブ１００ａ〜１００ｎの特定の数は、特定の実施の形態の設計基準を満たすように変更されるだろう。ドライブ１００ａ〜１００ｎのそれぞれは、データセクション（例えば、Ｄ１〜Ｄ５）、圧縮セクション（例えば、Ｃ１〜Ｃ５）、及び圧縮セクション（例えば、Ｃ１〜Ｃ５）を有するだろう。例えば、ドライブ１００ａは、非圧縮データＤ１を格納するように構成されたデータセクションを有するだろう。データブロックＤ１の圧縮形は、データＣ１として２つの論理的に隣接するドライブに格納されるだろう。例えば、圧縮データＣ１は、ドライブ１００ｂとドライブ１００ｎに格納されるだろう。ドライブ１００ａ〜１００ｎは、ループ１６０ａ〜１６０ｎとループ１６２ａ〜１６２ｎを形成するだろう。ループ１６０ａ〜１６０ｎとループ１６２ａ〜１６２ｎは、２つの二鎖型の論理的なループを形成するだろう。一般に、ループ１６０ａ〜１６０ｎは、ドライブ１００ａ〜１００ｎの間の複数の論理接続として実現されるだろう。例えば、部分１６０ａは、ドライブ１００ｂの圧縮データＣ１にドライブ１００ａのデータＤ１を論理的に接続するだろう。一般にレフトツーライト方式のループ１６０ａ〜１６０ｎが示される。ループ１６２ａ〜１６２ｎは、一般にライトツーレフトの形態と同様の形態を有する。例えば、部分１６２ｄは、ドライブ１００ｄの圧縮データＣ５にドライブ１００ｎのデータＤ５を論理的に接続するだろう。ループ１６０ａ〜１６０ｎとループ１６２ａ〜１６２ｎの特定の形態は、特定の実施の形態の設計基準を満たすように変更されるだろう。
【００２２】
示された一例においては、ドライブ１００ｂはデータＤ２を格納するだろう。データＤ２の圧縮されたバージョンは、データＣ２としてドライブ１００ｃに格納され、論理的なループ１６０ａ〜１６０ｎの部分１６０ｂを通じてアクセス可能となるだろう。データＣ２も、ドライブ１００ａに格納され、論理的なループ１６２ａ〜１６２ｎの部分１６２ａを通じてアクセス可能となるだろう。同様に、ドライブ１００ａのデータＤ１は、ドライブ１００ｎとドライブ１００ｂにデータＣ１として格納されたデータＤ１の圧縮されたバージョンを有するだろう。ドライブ１００ｎの圧縮データＣ５は、ドライブ１００ａとドライブ１００ｄに格納されるだろう。一般に、３つのドライブ１００ａ〜１００ｎの全てが論理的に隣接するグループを形成するだろう。一例においては、ドライブ１００ｂ、１００ｃ、及び１００ｄは、論理的に隣接するグループであるだろう。論理的に隣接するグループは、互いに隣接して示されないドライブによって形成されても良い。圧縮データＣ３としてドライブ１００ｂとドライブ１００ｄの両方に格納されたドライブ１００ｃのデータＤ３が示される。
【００２３】
図６を参照すると、ストレージサブシステム２００の図が示される。サブシステム２００は、一般に複数のブロック（又は回路）２０２ａ〜２０２ｂを備える。回路２０２ａ〜２０２ｂは、それぞれ圧縮／解凍回路として実現されるだろう。ミドルプレーン２０４は、回路２０２ａと回路２０２ｂとの間に実装されるだろう。圧縮回路２０２ａは、一般にブロック（又は回路）２１０、ブロック（又は回路）２１２、ブロック（又は回路）２１４、及びブロック（又は回路）２１６を備える。回路２１０は、ホストインタフェースとして実現されるだろう。回路２１２は、データキャッシュとプロセッサとして実現されるだろう。回路２１４は、圧縮／解凍エンジンとして実現されるだろう。回路２１６は、ドライブインタフェースとして実現されるだろう。回路２１２は、一般にキャッシュ回路２１８とプロセッサ回路２２０を備える。ホストインタフェース２１０は、信号（例えば、ＤＡＴＡ）を受信する入力２３０を有するだろう。信号ＤＡＴＡは、一般に図５に記載されたデータＤ１〜Ｄ５を意味する１つ以上のデータブロック（又はパケット）を意味する。ホストインタフェースは、回路２１２の入力２３４に信号ＤＡＴＡを送信する出力２３２を有するだろう。回路２１２は、回路２１４の入力２３８に信号ＤＡＴＡを送信する出力２３６を有するだろう。回路２１２は、同様に回路２１６の入力２４２に信号ＤＡＴＡを送信する出力２４０を有するだろう。回路２１４は、回路２１６の入力２４６に信号（例えば、Ｃ＿ＤＡＴＡ）を送信する出力２４４を有するだろう。信号Ｃ＿ＤＡＴＡは、信号ＤＡＴＡの圧縮されたバージョンであるだろう。信号Ｃ＿ＤＡＴＡは、一般に図５に記載された圧縮データＣ１〜Ｃ５を意味する１つ以上のデータブロック（又はパケット）を意味する。回路２０２ｂは、同様の形態を有するだろう。回路２１４は、圧縮及び／又は解凍動作を実現する専用の論理を提供するだろう。
【００２４】
回路２０２ａ及び／又は回路２０２ｂの論理は、ＲＡＩＤエンジンのためのコードとコントローラファームウェアの一部として実行するコードに埋め込まれるか、又はコントローラファームウェアコードによって制御及び操作されるＡＳＩＣにオフロードされるだろう。コードをオフロードすることは、追加の回路類を代償としてパフォーマンスを向上させるだろう。回路２１４によって実現された圧縮／解凍の特定のタイプは、特定の実施の形態の設計基準を満たすように変更されるだろう。回路２０２ａ及び／又は回路２０２ｂは、冗長性、耐故障性、及び／又はＲＡＩＤグループのフェイルオーバー機構のために用いられるだろう。
【００２５】
図７を参照すると、ドライブエンクロージャ３００が示される。複数のドライブ１００ａ〜１００ｎを含むドライブエンクロージャ３００が示される。ポート（例えば、Ｐ１）と別のポート（例えば、Ｐ２）を有するドライブ１００ａ〜１００ｎのそれぞれが示される。エンクロージャは、一般に回路３０２、回路３０４、ミドルプレーン２０４、回路３０８、及び回路３１０を備える。回路３０２は、第１のＥＳＭとして実現されるだろう。回路３０８は、別のＥＳＭとして実現されるだろう。ドライブ１００ａ〜１００ｎのそれぞれのポートＰ１とＰ２の１つは、プライマリポートであるだろう。ドライブ１００ａ〜１００ｎのそれぞれの別のポートＰ１とＰ２の１つは、セカンダリポートであるだろう。ドライブへの非圧縮データＤ１〜Ｄ５と圧縮データＣ１〜Ｃ５の入出力パスは、別々に保たれるだろう。非圧縮データＤ１〜Ｄ５と圧縮データＣ１〜Ｃ５の両方は、同一のコントローラによって処理される。ドライブ１００ａ〜１００ｎは、冗長性を実現する（例えば、ドライブ１００ａ〜１００ｎの圧縮データＣ１〜Ｃ５を格納及び検索する）デュアルポートドライブとして実現されるだろう。ＳＯＣ３０４（又は３１０）は、ＥＳＭ３０２（又は３０８）において存在し、ドライブ１００ａ〜１００ｎへのデータのスイッチング／ルーティングを実行するだろう。ドライブエンクロージャ３００のミドルプレーン２０４は、ドライブエンクロージャ３００の冗長なＥＳＭ３０２（又は３０８）に圧縮データを送信するために用いられるだろう。ミドルプレーン２０４も、セカンダリポートＰ２を用いてドライブ１００ａ〜１００ｎに圧縮データを送信するために用いられるだろう。
【００２６】
信号ＤＡＴＡの圧縮データＣ＿ＤＡＴＡは、ドライブエンクロージャ３００のミドルプレーン回路２０４を通じて別のＥＳＭ３０８にルートされ、同一のＥＳＭによりデータＤ１〜Ｄ５を維持するだろう。コントローラ２０２ａによって所有されるＲＡＩＤ論理ドライブに関しては、ドライブ１００ａ〜１００ｎのそれぞれのプライマリポートＰ１は、ＥＳＭ３０２によって処理されるプライマリチャネルを通じて非圧縮データを転送するために用いられるだろう。ドライブ１００ａ〜１００ｎのそれぞれのセカンダリポートＰ２は、ＥＳＭ３０８によって処理されるセカンダリチャネルを通じて圧縮データを転送するために用いられるだろう。コントローラ２０２ｂによって所有されるＲＡＩＤ論理ドライブ１００ａ〜１００ｎに関しては、ポートＰ２は、ＥＳＭ  Ｂ  ３０８によって処理されるプライマリチャネルを通じて非圧縮データを転送するプライマリポートとして用いられるだろう。ポートＰ１は、ＥＳＭ３０２によって処理されるセカンダリチャネルを通じて圧縮データを転送するセカンダリポートとして用いられるだろう。
【００２７】
本発明を用いて実現されたＲＡＩＤグループは、ドライブ１００ａ〜１００ｎの１つに格納された実（圧縮されていない）データＤ１〜Ｄｎと、２つの他の論理的に隣接するドライブ１００ａ〜１００ｎに格納された圧縮データＣ１〜Ｃｎとを有するだろう。ホストからのそれぞれのデータセグメントの到着と同時に、データＤ１〜Ｄ５は、ドライブインタフェース２１６に送信される複数のストライプに分割される。この処理と並列して、ストライプされたデータは、ドライブインタフェースに送信された圧縮エンジンによって圧縮される。圧縮データＣ１〜Ｃｎと共に実データＤ１〜Ｄｎは、ドライブエンクロージャ３００に送信される。
【００２８】
図８を参照すると、ドライブ１００ａ〜１００ｎへのデータフローの一例が示される。データは、データチャネル３２０で送信されるだろう。ドライブ１００ａ〜１００ｎのそれぞれは、データチャネル３２０からプライマリポートＰ１でデータを受信するだろう。データチャネル３２０からのデータは、圧縮／解凍エンジン２１４によって圧縮されるだろう。ドライブ１００ａ〜１００ｎのそれぞれは、圧縮／解凍エンジン２１４からセカンダポートＰ２で圧縮データを受信するだろう。これは、ドライブパフォーマンスの損失なしにドライブ１００ａ〜１００ｎの全てによりＲＡＩＤグループが動作することを保証する。３つの論理的に隣接するドライブ故障がなければ、ｎがＲＡＩＤグループにおけるドライブの総数である場合、本発明は通常２ｎ／３のドライブの耐故障性を提供する。
【００２９】
本発明で５０％のデータ圧縮を用いることは、ＲＡＩＤ１の形態と比較して、同一のストレージ効率とより大きなパフォーマンスを保証するだろう。４つのドライブの一例を考慮する。ドライブ１００ａ〜１００ｎのそれぞれが容量Ｃギガバイトを有する場合、ＲＡＩＤ１が占める最大領域は２Ｃギガバイトである。しかしながら、本発明では、ドライブ１００ａ〜１００ｎのそれぞれにおけるデータ領域は０．５Ｃギガバイトを占め、２つの圧縮領域は０．５Ｃギガバイトを占める（５０％の圧縮）。従って、４つのドライブにおいてはＲＡＩＤグループが格納することができる実データの総容量は２Ｃギガバイトである。パフォーマンスは、両方のドライブに亘ってストライプされたデータを有するＲＡＩＤ０のグループのようにドライブ１００ａ〜１００ｎがアクセスされるのでより優れる。従って、本発明は、５０％と等しい圧縮によりＲＡＩＤ１と等しいストレージ効率を提供するだろう。同様に、本発明は、５０％を超える圧縮によりＲＡＩＤ１よりも優れたパフォーマンスとストレージ効率を提供するだろう。しかしながら、５０％を超える圧縮を実現することによって、ドライブ１００１〜１００ｎのストレージ容量効率は更に向上するだろう。
【００３０】
２つを超えるドライブが故障しても（２ｎ／３までのドライブが３つの論理的に隣接するドライブの故障を提供しない場合）、本発明はデータ損失なしに動作し続けるので、本発明はＲＡＩＤ４、ＲＡＩＤ５、及びＲＡＩＤ６の形態よりも一般に耐故障性に優れる。ＲＡＩＤ３、ＲＡＩＤ５、及びＲＡＩＤ６のグループと比較して、更なる耐故障性が実現されるだろう。ＲＡＩＤ３、ＲＡＩＤ５、及びＲＡＩＤ６のグループの場合には、修正動作がグループで実行されるときは常に、パリティを再計算し、修正済のデータとパリティを更新するために全てのドライブが読取られる必要がある。本発明では、修正動作ごとに、データがそれぞれのドライブ１００ａ〜１００ｎにストライプされ書込まれる。そのとき、ストライプの圧縮は、ＲＡＩＤグループにおける論理的に隣接するドライブに独立して生成され書込まれる。パリティ生成方法と比較して、少ない読取り及び／又は更新が必要とされる。
【００３１】
図９を参照すると、３つのドライブ故障を有するドライブシステム１５０を示す図が示される。故障する全てのドライブが不連続である限り、ドライブシステム１５０は多重ドライブ損失シナリオを処理するだろう。ドライブ１００ａ、ドライブ１００ｂ、及びドライブ１００ｄは、故障して×で印を付けられる。３つのドライブが故障したとしても、全ては引き続き使用可能である。以下の表は、それぞれのドライブの状態とデータアベイラビリティを示す。
【００３２】
【表１】
2011243189.tif 000003
【００３３】
ＲＡＩＤ６のアプローチを用いる同様の故障は、ＲＡＩＤグループ全体の故障をもたらすだろう。従って、本発明はＲＡＩＤ６のアプローチよりも優れた耐故障性を提供する。
【００３４】
本発明は、特にその好適な実施の形態に関して示され説明されたが、本発明の範囲から逸脱することなく、形式と細部の様々な変更がなされるであろうことが当業者によって理解されるだろう。
【図１】
2011243189.tif 000004
【図２】
2011243189.tif 000005
【図３】
2011243189.tif 000006
【図４】
2011243189.tif 000007
【図５】
2011243189.tif 000008
【図６】
2011243189.tif 000009
【図８】
2011243189.tif 000010
【図９】
2011243189.tif 000011
【図７】
2011243189.tif 000012
【外国語明細書】
2011243189000001.pdf