(57)【要約】【課題】ストレージ・システムが要求されたデータへの多数のパスウェイを有する冗長法を使用する時にどのパスウェイを選択するかを決定するシステムおよび方法を提供すること。【解決手段】Ｎ個のストレージ・デバイスおよびＮ個を超えるパスウェイを有するデータ・ストレージ・システムに保管されたデータへの最適パスウェイが、データの読取要求に応答して判定される。ソータが、読取要求を、データ・ストレージ・システムのストレージ・デバイスに送るのに適する適当なセグメント・サイズに分離する。アサイナが、読取要求を満足する読取置換の組を生成する。読取置換が、メトリックに基づいて選択される。コレクタが、選択された読取置換がストレージ・デバイスに送られることに応答して、Ｎ個のストレージ・デバイスから要求されたデータを受け取る。【選択図】図２【特許請求の範囲】
【請求項１】
Ｎ個のストレージ・デバイスおよびデータ・ストレージ・システムから要求されたデータを取り出すＮ個を超えるパスウェイを有する前記データ・ストレージ・システムのパスウェイ判定システムであって、読取要求を受け取り、前記読取要求を前記データ・ストレージ・システムの前記ストレージ・デバイスに送るのに適当なセグメント・サイズに分離するソータと；前記読取要求を満足する読取置換を選択するアサイナであって、前記選択された読取置換が、所定のメトリックに基づき、前記アサイナが、前記選択された読取置換を前記ストレージ・システムの前記ストレージ・デバイスに送る、アサイナと；前記選択された読取置換が前記ストレージ・デバイスに送られることに応答して前記Ｎ個のストレージ・デバイスから前記要求されたデータを受け取るコレクタとを含むシステム。
【請求項２】
前記アサイナが、さらに、前記受け取られた読取要求を満足する前記読取置換を生成する、請求項１に記載のシステム。
【請求項３】
前記読取置換が、前記読取要求が受け取られる前に生成される、請求項２に記載のシステム。
【請求項４】
前記アサイナが、前記読取置換を生成する置換ジェネレータと；前記所定のメトリックに基づいて各置換の費用を計算するコスト・カリキュレータとを含む、請求項１に記載のシステム。
【請求項５】
前記コスト・カリキュレータが、キュー長さ情報および推定された現在のコスト情報を利用し、前記置換ジェネレータが、前記キュー長さ情報および前記推定された現在のコスト情報に基づいて、減らされた数の読取置換を生成する、請求項４に記載のシステム。
【請求項６】
前記コスト・カリキュレータが、さらに前記ストレージ・システムの前記ストレージ・デバイスから受け取った性能情報に基づいて、各置換の前記費用を計算する、請求項５に記載のシステム。
【請求項７】
前記ストレージ・システムが、少なくとも１つの故障したデバイスを含む、請求項１に記載のシステム。
【請求項８】
前記メトリックが、前記ストレージ・システムの動作条件の変化に基づいて動的に変更される、請求項１に記載のシステム。
【請求項９】
前記メトリックが、前記ストレージ・システムの動作条件に基づいて周期的に変更される、請求項８に記載のシステム。
【請求項１０】
前記メトリックが、前記ストレージ・システムの前記ストレージ・デバイスの現在の作業負荷バランスに基づく、請求項１に記載のシステム。
【請求項１１】
前記メトリックが、前記要求されたデータを前記ストレージ・システムの前記ストレージ・デバイスから取り出すことができる前の推定された遅延に基づく、請求項１に記載のシステム。
【請求項１２】
前記メトリックが、前記ストレージ・システムの前記ストレージ・デバイスのキュー内の保留中の要求の個数に基づく、請求項１に記載のシステム。
【請求項１３】
前記メトリックが、前記ストレージ・システムによって受け取られたすべての保留中の要求の総キューに基づく、請求項１に記載のシステム。
【請求項１４】
Ｎ個のストレージ・デバイスおよびデータ・ストレージ・システムから要求されたデータを取り出すＮ個を超えるパスウェイを有する前記データ・ストレージ・システムに保管されたデータを入手するパスウェイを判定する方法であって、要求元から読取要求を受け取るステップと；前記読取要求を前記データ・ストレージ・システムの前記ストレージ・デバイスに送るのに適当なセグメントおよびサイズに分離するステップと；前記受け取られた読取要求を満足する可能な読取置換から読取置換を選択するステップと；前記選択された読取置換を前記ストレージ・システムの前記ストレージ・デバイスに送るステップと；前記選択された読取置換が前記ストレージ・デバイスに送られることに応答して前記Ｎ個のストレージ・デバイスから前記要求されたデータを受け取るステップと；前記満足された読取要求を前記要求元に返すステップとを含む方法。
【請求項１５】
前記受け取られた読取要求を満足する前記読取置換を生成するステップをさらに含む、請求項１４に記載の方法。
【請求項１６】
前記読取置換を生成する前記ステップが、前記読取要求が受け取られる前に実行される、請求項１５に記載の方法。
【請求項１７】
前記所定のメトリックに基づいて各置換の費用を計算するステップをさらに含む、請求項１５に記載の方法。
【請求項１８】
キュー長さ情報および推定された現在のコスト情報を生成するステップと、前記キュー長さ情報および前記推定された現在のコスト情報に基づいて、減らされた数の読取置換を生成するステップとをさらに含む、請求項１７に記載の方法。
【請求項１９】
各置換の前記費用を計算する前記ステップが、さらに、前記ストレージ・システムの前記ストレージ・デバイスから受け取った性能情報に基づく、請求項１８に記載の方法。
【請求項２０】
前記ストレージ・システムが、少なくとも１つの故障したデバイスを含む、請求項１４に記載の方法。
【請求項２１】
前記ストレージ・システムの動作条件の変化に基づいて前記メトリックを動的に変更するステップをさらに含む、請求項１４に記載の方法。
【請求項２２】
前記ストレージ・システムの動作条件に基づいて前記メトリックを周期的に変更するステップをさらに含む、請求項１４に記載の方法。
【請求項２３】
前記メトリックが、前記ストレージ・システムの前記ストレージ・デバイスの現在の作業負荷バランスに基づく、請求項１４に記載の方法。
【請求項２４】
前記メトリックが、前記要求されたデータを前記ストレージ・システムの前記ストレージ・デバイスから取り出すことができる前の推定された遅延に基づく、請求項１４に記載の方法。
【請求項２５】
前記メトリックが、前記ストレージ・システムの前記ストレージ・デバイスのキュー内の保留中の要求の個数に基づく、請求項１４に記載の方法。
【請求項２６】
前記メトリックが、前記ストレージ・システムによって受け取られたすべての保留中の要求の総キューに基づく、請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ・ストレージ・システムの分野に関する。具体的には、本発明は、メトリックに基づいて要求されたデータへの最善パスウェイを判定し、これによって、ストレージ・デバイスのアレイのデバイス故障保護を改善するシステムおよび方法に関する。
【背景技術】
【０００２】
ストレージ・デバイスの従来のアレイは、通常、十分な冗長性を有し、その結果、ストレージ・デバイスが故障した時に、故障したストレージ・デバイスに含まれる情報を、残りのストレージ・デバイスから再構成できるようになっている。たとえば、距離Ｄ＝３を有するアレイの動作を開示した、U.S. Patent No. 5,579,475 to M.M. Blaum et al., entitled “Method andMeans for Encoding and Rebuilding the Data Contents of Up to Two UnavailableDASDs in a DASD Array Using Simple Non-Recursive Diagonal and Row-Parity”を参照されたい。また、故障があり、距離Ｄ＝３を有するアレイからデータを再構成するのに必要な動作を開示した、“Two-LevelDASD Failure Recovery Method,” IBM Technical Disclosure Bulletin Vol. 36, 03Mar 1993を参照されたい。
【０００３】
冗長性は、性能を改善するのにも使用することができる。たとえば、性能のための冗長情報の効率的な位置決めのデータ・レイアウトを開示した、E.J Schwabe et al., “Evaluating Approximately BalancedParity-Declustered Data Layouts for Disk Arrays,” ACM 0-89791-813-4/96/05 1996を参照されたい。また、８ビット有限フィールドを使用する一般的な複数パリティ・アレイのプロパティおよび構成を開示したG.A.Alvarez et al., “Tolerating Multiple Failures in RAID Architectures,” ACM0-89791-901-7/97/0006 1997およびシステム応答を改善するＭＤＳ（マキシマム・ディスタンス・セパレーション）コードの使用を記述した、L.Xu and J. Bruck, “Improving the Performance of Data Servers Using Array Codes,”Paradise ETR027 (CalTech) 1998を参照されたい。
【０００４】
既存のＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）システムは、要求されたデータを読み取る複数のパスウェイまたはルートを有する。しかし、しばしば、少数の使用可能なパスウェイだけがあり、そのうちの１つのパスウェイだけが効率的である。たとえば、ＲＡＩＤ  ５システムは、情報を読み取る２つのパスウェイを提供する。一方のパスウェイは、要求された情報を含むセクタを直接に読み取ることによる。第２のパスウェイは、ＲＡＩＤ  ５アレイ内の各他のストレージ・ユニットから適当なセクタを読み取ることによって、要求された情報を含むデータ・セクタを再構成することによる。もう１つの例として、ＲＡＩＤ  ６システムとして構成されたＮ個のストレージ・ユニット・アレイは、直接にデータ・セクタを読み取るか、１つを除く他のすべてのストレージ・ユニットを読み取ることができる。したがって、ＲＡＩＤ  ６がデータ・セクタを読み取るＮ個のウェイがある。どちらの例でも、１つの効率的なパスウェイと１つまたは複数の非効率的なパスウェイがある。
【特許文献１】U.S. Patent No. 5,579,475
【特許文献２】US Patent Application Serial No.10/619,641
【特許文献３】US Patent Application Serial No.10/619,649
【特許文献４】US Patent Application Serial No.10/619,648
【特許文献５】US Patent Application Serial No.10/600,593
【非特許文献１】“Two-Level DASD Failure RecoveryMethod,” IBM Technical Disclosure Bulletin Vol. 36, 03 Mar 1993
【非特許文献２】E.J Schwabe et al., “EvaluatingApproximately Balanced Parity-Declustered Data Layouts for Disk Arrays,” ACM0-89791-813-4/96/05 1996
【非特許文献３】G.A. Alvarez et al., “ToleratingMultiple Failures in RAID Architectures,” ACM 0-89791-901-7/97/0006 1997
【非特許文献４】L. Xu and J. Bruck, “Improving thePerformance of Data Servers Using Array Codes,” Paradise ETR027 (CalTech) 1998
【発明の開示】
【発明が解決しようとする課題】
【０００５】
したがって、要求されたデータを入手する複数のパスウェイ、たとえばアレイ内のストレージ・デバイスの個数より多くのパスウェイがある時に、どのパスウェイがストレージ・システムの最高の性能をもたらすかは、自明に明瞭ではない。その結果、必要なものは、ストレージ・システムが要求されたデータへの多数のパスウェイを有する冗長法を使用する時にどのパスウェイを選択するかを決定するシステムおよび方法である。
【課題を解決するための手段】
【０００６】
本発明は、ストレージ・システムが要求されたデータへの多数のパスウェイを有する冗長法を使用する時にどのパスウェイを選択するかを決定するシステムおよび方法を提供する。
【０００７】
本発明の利益は、Ｎ個のストレージ・デバイスおよびデータ・ストレージ・システムから要求されたデータを取り出すＮ個を超えるパスウェイを有するデータ・システム用のパスウェイ判定システムによって実現される。本発明は、少なくとも１つのストレージ・デバイスが故障したストレージ・デバイスであることも許容する。パスウェイ判定システムに、ソータ、アサイナ、およびコレクタが含まれる。ソータは、読取要求を受け取り、データ・ストレージ・システムのストレージ・デバイスに送るのに適当なセグメント・サイズに読取要求を分離する。アサイナに、読取要求を満足する読取置換の組を生成する置換（permutation）ジェネレータと、ストレージ・システムのストレージ・デバイスから受け取った性能情報から計算されたメトリックに基づいて各置換の費用を計算するコスト・カリキュレータが含まれる。読取置換は、読取要求を受け取った後に生成することができる。その代わりに、読取置換を、ストレージ・システムのアーキテクチャに基づいて、読取要求を受け取る前に事前計算することができる。コスト・カリキュレータは、キュー長さ情報および推定された現在のコスト情報を使用して、メトリックに基づく値を読取置換に割り当てる。コストに関する追加情報が、置換ジェネレータ用のヒントとして置換ジェネレータに渡されて、それが生成する置換の個数が減らされる。アサイナは、読取置換の組から読取置換を選択する。読取置換の選択は、コスト・カリキュレータがそれに割り当てた値に基づく。コスト・カリキュレータによって使用されるメトリックは、データ・システムのストレージ・デバイスに関する現在の作業負荷バランス、要求されたデータをストレージ・システムのストレージ・デバイスから取り出すことができる前の推定された遅延、ストレージ・システムのストレージ・デバイスのキュー内の保留中の要求の個数、またはストレージ・システムによって受け取られたすべての保留中の要求の総キュー、あるいはこれらの組合せなど、置換の予想されるリソース使用に基づく。アサイナは、選択された読取置換をストレージ・システムのストレージ・デバイスに送る。コレクタは、選択された読取置換がストレージ・デバイスに送られることに応答して、Ｎ個のストレージ・デバイスから要求されたデータを受け取る。メトリックは、ストレージ・システムの動作条件の変化に基づいて動的に変更することができる。その代わりに、メトリックを、ストレージ・システムの動作条件に基づいて周期的に変更することができる。
【０００８】
本発明は、Ｎ個のストレージ・デバイスおよびデータ・ストレージ・システムから要求されたデータを取り出すＮ個を超えるパスウェイを有するデータ・ストレージ・システムに保管されたデータを入手するパスウェイを判定する方法も提供する。ストレージ・システムに、少なくとも１つの故障したストレージ・デバイスを含めることができる。本発明によれば、読取要求が、受け取られ、データ・ストレージ・システムのストレージ・デバイスに送るのに適当なセグメントおよびサイズに分離される。受け取られた読取要求を満足する読取置換の組が、要求が受け取られた時または事前のいずれかに生成される。読取置換は、メトリックに基づいて読取置換の組から選択される。メトリックは、データ・システムのストレージ・デバイスの現在の作業負荷バランス、要求されたデータをストレージ・システムのストレージ・デバイスから取り出すことができる前の推定された遅延、ストレージ・システムのストレージ・デバイスのキュー内の保留中の要求の個数、またはストレージ・システムによって受け取られたすべての保留中の要求の総キュー、あるいはこれらの組合せに基づくものとすることができる。各置換の費用は、メトリックに基づき、ストレージ・システムのストレージ・デバイスから受け取られた性能データに基づいて計算される。キュー長さ情報および推定された現在のコストの情報が、生成され、キュー長さ情報および推定された現在のコストの情報に基づいて、減らされた個数の読取置換を生成するのに使用される。選択された読取置換が、ストレージ・システムのストレージ・デバイスに送られる。要求されたデータが、選択された読取置換がストレージ・デバイスに送られることに応答してＮ個のストレージ・デバイスから受け取られ、満足された読取要求が、要求元に返される。メトリックは、ストレージ・システムの動作条件の変化に基づいて動的に変更することができる。その代わりに、メトリックを、ストレージ・システムの動作条件に基づいて周期的に変更することができる。
【０００９】
本発明を、添付図面に制限ではなく例として示すが、添付図面では、同一の符号が同一の要素を示す。
【発明を実施するための最良の形態】
【００１０】
本願は、US Patent Application Serial No.10/619,641 (Attorney Docket No. ARC920030014US1), entitled “Anamorphic Codes”、USPatent Application Serial No. 10/619,649 (Attorney Docket No.ARC9-2003-0015US1), entitled “Autonomic Parity Exchange,”、およびUS PatentApplication Serial No. 10/619,648 (Attorney Docket No. ARC9-2003-0040US1)entitled “RAID 3 + 3”に関する。本願は、参照により本明細書に組み込まれている、同時係属であり、本願と同一の譲受人に譲渡されたUSPatent Application Serial No. 10/600,593 (Attorney Docket No.YOR9-2003-0069US1)にも関する。
【００１１】
本発明の技法は、要求されたデータ・セクタを返すＮ個を超えるパスウェイがあり、Ｎがシステム内のストレージ・デバイスの個数であるＲＡＩＤタイプのシステムに適用可能である。ホスト・システムから受け取られた任意の読取要求が、システムのデータ・ストレージ・デバイスへのディスパッチに適当なセグメントおよびサイズに分離される。要求されたデータへのさまざまなパスウェイが、評価され、読取要求の最善置換が、選択され、ストレージ・デバイス・アレイに発行される。選択された置換された読取を収集した後に、要求された情報が、判定され、ホスト・コントローラに返される。
【００１２】
要求されたデータへの最善パスウェイは、システムのストレージ・デバイスの現在の作業負荷バランス、要求されたデータを取り出す前の推定された遅延、ストレージ・デバイスのキュー内の保留中の要求の個数、または受け入れられたすべての保留中の要求の総キュー、あるいはこれらの組合せなどのメトリックに基づいて判定される。メトリックは、事前に決定することができ、あるいは、システムのストレージ・デバイスのキューを遡及して変更し、その結果、環境および動作条件が変化した時に最善パスウェイが選択されるようにすることによるなど、継続的に再評価し、動的に変更することができる。システム内の１つまたは複数のストレージ・デバイスが使用不能である時に、本発明は、要求されたデータを入手する残りの使用可能なパスウェイから最善パスウェイを選択する。最善パスウェイを選択するのに使用されるメトリックに関する情報は、保守エンティティによる評価のためにストレージ・システムの外部から使用可能にすることができる。
【００１３】
図１に、本発明による、定義されたメトリックに基づいて要求されたデータを入手する最善パスウェイを判定するシステム１００の例示的実施形態の機能ブロック図を示す。システム１００は、３データ＋３パリティＭＤＳ（マキシマム・ディスタンス・セパレーション）消去コードを使用するストレージ・システム（図示せず）に含まれる。ストレージ・システムの主要な態様は、ホスト・コントローラ（図示せず）からの読取要求を処理し、コマンドをシステムのストレージ・デバイスにディスパッチし、その後、取り出されたデータをホスト・コントローラに返すことである。３＋３ＭＤＳ消去コード構成は、データの消失なしに３つのディスク故障を許容すると同時に、データ・ディスクの任意のセクタからのデータを、他のディスクのうちのいずれか３つからの適当なセクタに含まれるデータを組み合わせることによって再構成できることを提供する。したがって、本発明は、ＲＡＩＤ  ５１、他の製品コード、およびより大きいＭＤＳコードなど、他の冗長システムに合うように適合させることができる。
【００１４】
システム１００に、ソータ１０６、アサイナ１０８、ストレージ・デバイス１１０のアレイ、およびコンバイナ１２２が含まれる。ストレージ・デバイス１１０を、それぞれ、本明細書でディスクＡ、Ｂ、Ｃ（データを含む）およびディスクＰ、Ｑ、Ｒ（パリティ情報を含む）とも称する。ストレージ・デバイス１１０は、それぞれ、図１では例示的にディスク・ドライブＡ、Ｂ、Ｃ、Ｐ、Ｑ、およびＲとして示されているが、ランダム・アクセス・メモリ（ＲＡＭ）ストレージ・デバイス、光ストレージ・デバイス、およびテープ・ストレージ・デバイスなどの他の大容量記憶装置をストレージ・デバイス１１０として使用することができる。
【００１５】
システム１００を含むストレージ・システム（図示せず）から受け取られた読取要求１０２が、ソータ１０６に渡される。ソータ１０６は、周知の形で、各読取要求１０２を、本明細書で集合的に頭字語ＳＯＬＤと称する、セグメント（要求されたデータのブロック・アドレスに対応するストレージ・デバイス１１０のアレイの領域）、セグメント内のオフセット、長さ、およびディスク（すなわち、データ・ディスクＡ、Ｂ、またはＣ）にソートする。次に、各ＳＯＬＤが、ソータ１０６からアサイナ１０８に渡される。アサイナ１０８は、ＳＯＬＤによって識別されるデータの最善パスウェイを選択する。また、アサイナ１０８は、ＳＯＬＤを満足する判定を、状態更新情報１２４としてコンバイナ１２２に渡す。コンバイナ１２２は、ストレージ・デバイス１１０から受け取った結果からＳＯＬＤによって識別されるデータを再構成し、満足された要求１２６が、システム１００の外部のストレージ・システムに渡される。また、コンバイナ１２２は、フィードバック情報１２８をアサイナ１０８に供給する。
【００１６】
図２は、図１に示されたアサイナ１０８のさらなる詳細を示す機能ブロック図である。アサイナ１０８に、データ・ディスク用のＳＯＬＤキュー２０４、ＳＯＬＤギャザラ（ｇａｔｈｅｒｅｒ）２１０、置換ジェネレータ２１２、コスト・カリキュレータ２１６、置換マルチプレクサ２１８、およびストレージ・デバイス・キュー２２０が含まれる。ソータ１０６（図１）から受け取られた、データ・ディスクＡ、Ｂ、およびＣのストレージ・デバイス要求２０２ａは、それぞれ、ランダムアクセスＳＯＬＤキュー２０４に入る。ＳＯＬＤキュー２０４は、周知の入出力キューとして構成され、ウィンドウイングおよびエレベータ・ソートなどの既知のサービス品質（ＱｏＳ）特徴を組み合わせることができる。同一セグメント内のＳＯＬＤは、ＳＯＬＤギャザラ２１０によってキュー２０４から除去され、このＳＯＬＤギャザラ２１０は、除去されたＳＯＬＤを組み合わせて、そのセグメント内のストレージ・デバイス１１０、１１２、および１１４（すなわち、ディスクＡ、Ｂ、およびＣ）の要求のマップを形成する。同一セグメント内の組み合わされたＳＯＬＤを、本明細書では「ＳＯＬＤ３つ組（triple）」と称する。置換ジェネレータ２１２は、各ＳＯＬＤ３つ組を検査し、そのＳＯＬＤ３つ組を満足する、受け取られた読取要求ごとの許容される置換を生成する。生成された置換は、コスト・カリキュレータ２１６に渡され、このコスト・カリキュレータ２１６は、定義されたメトリックに基づいて、各置換の費用を判定する。最も安価な置換が、定義されたメトリックに基づいて置換マルチプレクサ２１８によって選択される。選択された置換は、それぞれストレージ・デバイス１１０のキュー２２０に渡される。選択された置換に関する状態更新情報１２４が、置換マルチプレクサ２１８からコンバイナ１２２（図１）に順方向に渡される。情報２３２は、それぞれ、キュー長さに関し、キュー２２０の推定された現在コストが、ストレージ・デバイス・キュー２２０からコスト・カリキュレータ２１６に渡される。キューのコストは、選択された要求をそのキューに置くことによってコスト・メトリックが増やされる量である（その関係の１つが、キューの長さである）。さらに、キュー長さおよび推定された現在のコスト情報２３２は、コスト・カリキュレータ２１６によってフィルタリングされ、ヒンティング情報２３４として置換ジェネレータ２１２に渡される。ヒンティング情報２３４は、置換ジェネレータ２１２によって、供給されなければならない置換の個数を減らすのに使用される。ストレージ・デバイス１１０（図１）からの性能情報が、コスティング分析を洗練するためにフィードバック情報１２８としてコスト・カリキュレータ２１６に供給される。
【００１７】
図３に、例示的なＳＯＬＤ３つ組３０２に関する、置換ジェネレータ２１２によって生成される許容される置換を示す。ＳＯＬＤ３つ組３０２は、ディスクＡに対する単独の読取要求を示し、ディスクＢおよびＣに対する読取要求を示さない。置換ジェネレータ２１２は、ヒンティング情報２３４が全くないときは、ＳＯＬＤ３つ組３０２を満足する、ディスクＡ、Ｂ、Ｃ、Ｐ、Ｑ、およびＲに対するすべての許容される置換３１０を作る。具体的に言うと、置換３１０は、単一のディスクＡ読取３１０を表す。さらに、ディスクＡに対する要求を再構成する、６つの使用可能なディスクＡ、Ｂ、Ｃ、Ｐ、Ｑ、およびＲの３つのディスク読取のすべての組合せが示されている。具体的に言うと、置換３１２は、ディスクＣ、Ｐ、およびＲのディスク読取を表す。置換３１４は、ディスクＢ、Ｃ、およびＱのディスク読取を表す。置換３１６は、ディスクＢ、Ｐ、およびＲのディスク読取を表す。置換３１８は、ディスクＢ、Ｃ、およびＲのディスク読取を表す。置換３２０は、ディスクＢ、Ｃ、およびＰのディスク読取を表す。置換３２２は、ディスクＢ、Ｑ、およびＲのディスク読取を表す。置換３２４は、ディスクＣ、Ｐ、およびＱのディスク読取を表す。置換３２６は、ディスクＢ、Ｐ、およびＱのディスク読取を表す。置換３２８は、ディスクＰ、Ｑ、およびＲのディスク読取を表す。最後に、置換３３０は、ディスクＣ、Ｑ、およびＲのディスク読取を表す。各要求３１２は、パリティ計算の設計によって、要求されたＳＯＬＤ３０２を再構成することができる。
【００１８】
ヒンティングは、置換ジェネレータ２１２によって、ディスク読取組合せを除去するのに使用される。たとえば、ディスクＡおよびＢが重い負荷を有し、ディスクＲが故障しているので、ディスクＣ、Ｐ、およびＱが好ましいことをヒンティングが示す状況で、置換ジェネレータ２１２は、置換３１０および３２４だけを生成する。ヒンティングの処理は、どのディスクが使用に極端に高価であるかを置換ジェネレータ２１２に知らせる。
【００１９】
図４は、図２に示されたコスト・カリキュレータ２１６のさらなる詳細を示す機能ブロック図である。コスト・カリキュレータ２１６に、固定ディスク・コスト乗算器４０８、重み付け乗算器４２０、およびコスト加算器４３２が含まれる。置換３１０は、それぞれ、固定ディスク・コスト乗算器４０８に入力される。各めいめいの固定ディスク乗算器の値は、フィードバック１２８を介して測定されたディスクの性能に基づいて調整される。各めいめいの固定ディスク乗算器の出力は、２３２ａ〜ｆを介してディスクＡ、Ｂ、Ｃ、Ｐ、Ｑ、およびＲの各対応するディスク・キューの長さによって重みを付けられる。各置換の結果が、加算器４３２によって計算され、置換費用４３６として出力される。加算器４３２は、入力結果を加算することができ、あるいは最大の入力結果を費用にすることができ、あるいは他の適当なアルゴリズムを使用することができる。必要な場合に、ヒンティング情報２３４を置換ジェネレータ２１２（図２および３）に出力する。
【００２０】
図５は、図１に示されたコンバイナ１２２のさらなる詳細を示す機能ブロック図である。コンバイナ１２２に、ディスク・リターン・キュー５０４ａ、置換リターン・バッファ５１６、置換コレクタ５１８、実際コスト・カリキュレータ５２０、および再構成済みデータ・リターン・バッファ５２２が含まれる。各ディスクＡ、Ｂ、Ｃ、Ｐ、Ｑ、およびＲは、それぞれ、データをディスク・リターン・キュー５０４に返し、このディスク・リターン・キュー５０４は、周知の形で動作する。ＳＯＬＤ３つ組の選択された置換が、置換マルチプレクサ２１８から置換リターン・バッファ５１６に、状態更新情報１２４として出力される。置換コレクタ５１８は、ディスク・リターン・キュー５０４内の完了した置換と、置換リターン・バッファ５１６からの選択された置換を受け取る。次に、置換の実際のコストが、実際コスト・カリキュレータ５２０によって計算される。実際コスト情報が、フィードバック情報１２８（図２および３）としてコスト・カリキュレータ２１６に返される。元々のＳＯＬＤのデータが、再構成済みデータ・リターン・バッファ５２２によって再構成され、リターン・データ１２６（図１）として出力される。
【００２１】
たとえば、ディスクＡおよびＢが適度な負荷を有し、ディスクＲが故障している状況で、ＳＯＬＤがディスクＡに１セクタを要求する場合のコストを検討されたい。さらに、この例のメトリックは、コストとして、データを取り出すキュー時間の合計の自明な推定値を使用する。ディスクＡのキュー２２０が、４０個の保留中の要求の長さを有し、ディスクＢのキュー２２２が、３５の長さを有し、ディスクＣのキュー２２４が、５の長さを有し、ディスクＰのキュー２２６が、８の長さを有し、ディスクＱのキュー２２８が、７の長さを有し、ディスクＲのキュー２３０が、不確定の長さを有すると仮定する。これらのキュー長さが、パスウェイ２３２ａ〜ｆを介してコスト・カリキュレータ２１６に渡される。コスト・カリキュレータ２１６は、同一のディスクＡ、Ｂ、Ｃ、Ｐ、およびＱに対する要求が、完了に１０ｍｓを要することを知っており、これらの重みが、固定ディスク・コスト乗算器４０８〜４１６に保管される。故障しているディスクＲは、その要求４１８を完了するのに１０６秒超を要する。ヒンティング・パスウェイ２３４は、ディスクＲが故障していることを置換ジェネレータ２１２に知らせる。したがって、ディスクＡに関するＳＯＬＤ要求が受け取られる３０２時に、置換ジェネレータ２１２は、ディスクＡに対するパスウェイ置換３１０、ディスクＢＣＱに対するパスウェイ置換３１４、ディスクＢＣＰに対するパスウェイ置換３２０、ディスクＣＰＱに対するパスウェイ置換３２４、およびディスクＢＰＱに対するパスウェイ置換３２６を生成する。パスウェイ３１０のメトリックは、４０×１０ｍｓ＋０＋０＋０＋０＋０＝４００ｍｓであり、パスウェイ３１４について、メトリックは、０＋３５×１０ｍｓ＋５×１０ｍｓ＋０＋７×１０ｍｓ＝４７０ｍｓである。同様に、パスウェイ３２０は、４８０ｍｓの合計コストを有し、パスウェイ３２４は、２００ｍｓのコストを有し、パスウェイ３２６は、５００ｍｓのコストを有する。したがって、最低コスト・パスは、ディスクＣ、Ｐ、およびＱに読取を発行するパスウェイ３２４である。選択されたパスウェイが、状態更新情報１２４を介してコンバイナ１２２に伝えられる。コンバイナ１２２は、置換コレクタ５１８でディスクＡの情報を再構成するための関連するデータをディスクＣ、Ｐ、およびＱから受け取る。要求を完了する、測定された時間が、５２０で照合され、その結果が、フィードバック１２８を介してコスト・カリキュレータ２１６を更新するのに使用される。この例では、メトリックが、非常に単純であり、動作するディスクが、性能において同一であり、したがって、フィードバックは不要である。しかし、より洗練されたコスト・カリキュレータは、たとえば、ディスクが要求を完了する時間が、ここで仮定したようにキュー長さに対して線形でないという事実を考慮に入れることができる。フィードバック機構は、コスト・カリキュレータがより正確な推定値を使用することを可能にする。
【００２２】
本発明は、データの要求が受け取られた時に、データ・ストレージ・システムからデータを取り出す最適パスウェイを判定することができる。代替案では、本発明は、ストレージ・システムの現在の動作条件に基づいて、事前に最適パスウェイを判定し、受け取られたデータ要求ごとに所定の最適パスウェイを選択する。さらに、本発明は、機械語命令を実行するストレージ・システム内の処理システムとして、または本発明のめいめいの機能を実行するストレージ・システムに含まれる個々のコンポーネントとして構成することができる。
【００２３】
本発明を、データへの最適パスウェイを選択し、ストレージ・システムのデータ読取の性能を改善する一般的な処理を示す特定の例に関して説明したが、添付請求項に示された本発明の範囲に含まれる、上で説明したシステムおよび技法の多数の変形形態および置換があることを、当業者は諒解するであろう。
【図面の簡単な説明】
【００２４】
【図１】定義されたメトリックに基づいて要求されたデータを入手する最善パスウェイを判定するシステムの例示的実施形態を示す機能ブロック図である。
【図２】図１に示されたアサイナのさらなる詳細を示す機能ブロック図である。
【図３】例示的なＳＯＬＤ３つ組に関する、図２に示された置換ジェネレータによって生成される許容される置換を示す図である。
【図４】図２に示されたコスト・カリキュレータのさらなる詳細を示す機能ブロック図である。
【図５】図１に示されたコンバイナのさらなる詳細を示す機能ブロック図である。
【図１】
2007529060.tif 000002
【図２】
2007529060.tif 000003
【図３】
2007529060.tif 000004
【図４】
2007529060.tif 000005
【図５】
2007529060.tif 000006
【手続補正書】
【提出日】平成19年7月3日(2007.7.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
Ｎ個のストレージ・デバイスおよびデータ・ストレージ・システムから要求されたデータを取り出すＮ個を超えるパスウェイを有する前記データ・ストレージ・システムのパスウェイ判定システムであって、読取要求を受け取り、前記読取要求を前記データ・ストレージ・システムの前記ストレージ・デバイスに送るのに適当なセグメント・サイズに分離するソータと；前記読取要求を満足する読取置換を選択するアサイナであって、前記選択された読取置換が、所定のメトリックに基づき、前記アサイナが、前記選択された読取置換を前記ストレージ・システムの前記ストレージ・デバイスに送る、アサイナと；前記選択された読取置換が前記ストレージ・デバイスに送られることに応答して前記Ｎ個のストレージ・デバイスから前記要求されたデータを受け取るコレクタとを含むシステム。
【請求項２】
前記アサイナが、さらに、前記受け取られた読取要求を満足する前記読取置換を生成する、請求項１に記載のシステム。
【請求項３】
前記読取置換が、前記読取要求が受け取られる前に生成される、請求項２に記載のシステム。
【請求項４】
前記アサイナが、前記読取置換を生成する置換ジェネレータと；前記所定のメトリックに基づいて各置換の費用を計算するコスト・カリキュレータとを含む、請求項１に記載のシステム。
【請求項５】
前記コスト・カリキュレータが、キュー長さ情報および推定された現在のコスト情報を利用し、前記置換ジェネレータが、前記キュー長さ情報および前記推定された現在のコスト情報に基づいて、減らされた数の読取置換を生成する、請求項４に記載のシステム。
【請求項６】
前記コスト・カリキュレータが、さらに前記ストレージ・システムの前記ストレージ・デバイスから受け取った性能情報に基づいて、各置換の前記費用を計算する、請求項５に記載のシステム。
【請求項７】
前記ストレージ・システムが、少なくとも１つの故障したデバイスを含む、請求項１に記載のシステム。
【請求項８】
前記メトリックが、前記ストレージ・システムの動作条件の変化に基づいて動的に変更される、請求項１に記載のシステム。
【請求項９】
前記メトリックが、前記ストレージ・システムの動作条件に基づいて周期的に変更される、請求項８に記載のシステム。
【請求項１０】
前記メトリックが、前記ストレージ・システムの前記ストレージ・デバイスの現在の作業負荷バランスに基づく、請求項１に記載のシステム。
【請求項１１】
前記メトリックが、前記要求されたデータを前記ストレージ・システムの前記ストレージ・デバイスから取り出すことができる前の推定された遅延に基づく、請求項１に記載のシステム。
【請求項１２】
前記メトリックが、前記ストレージ・システムの前記ストレージ・デバイスのキュー内の保留中の要求の個数に基づく、請求項１に記載のシステム。
【請求項１３】
前記メトリックが、前記ストレージ・システムによって受け取られたすべての保留中の要求の総キューに基づく、請求項１に記載のシステム。
【請求項１４】
Ｎ個のストレージ・デバイスおよびデータ・ストレージ・システムから要求されたデータを取り出すＮ個を超えるパスウェイを有する前記データ・ストレージ・システムに保管されたデータを入手するパスウェイを判定する方法であって、要求元から読取要求を受け取るステップと；前記読取要求を前記データ・ストレージ・システムの前記ストレージ・デバイスに送るのに適当なセグメントおよびサイズに分離するステップと；前記受け取られた読取要求を満足する可能な読取置換から読取置換を選択するステップと；前記選択された読取置換を前記ストレージ・システムの前記ストレージ・デバイスに送るステップと；前記選択された読取置換が前記ストレージ・デバイスに送られることに応答して前記Ｎ個のストレージ・デバイスから前記要求されたデータを受け取るステップと；前記満足された読取要求を前記要求元に返すステップとを含む方法。
【請求項１５】
前記ストレージ・システムの動作条件に基づいて前記メトリックを周期的に変更するステップをさらに含む、請求項１４に記載の方法。
【国際調査報告】
2007529060.tif 000007
2007529060.tif 000008
2007529060.tif 000009