(57)【要約】【課題】  ＳＡＳを適用したディスクアレイ装置で、コントローラと記憶装置の接続において複数の物理リンクのレートが異なる場合であっても、データ転送効率を低下させずにデータ転送を行う。【解決手段】  複数のＨＤＤ３０（３０ａ，３０ｂ）と、コントローラ１０とが、エクスパンダ２０を介して接続され、コントローラ１０−エクスパンダ２０−ＨＤＤ３０の接続でデータ転送を行う。この接続で、コントローラ１０及びエクスパンダ２０は、ＨＤＤ３０側の複数の物理リンク５０（５０ａ，５０ｂ）における転送データのセットを対象にして、コントローラ１０側の物理リンク４０では、転送データを統合して多重化して転送し、ＨＤＤ３０側の複数の物理リンク５０では、転送データを分離して並列的に転送する。【選択図】  図５
2006072636.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶装置と、前記記憶装置にデータを記憶する制御を行うコントローラと、前記記憶装置とコントローラを物理リンクで接続するエクスパンダとを有し、
前記コントローラ、エクスパンダ、及び記憶装置は、前記コントローラと記憶装置の接続でＳＡＳプロトコルに従ったデータ転送を行う手段を有し、
前記コントローラと記憶装置の接続におけるデータ転送において、
前記コントローラ側の物理リンクでは、前記コントローラとエクスパンダが、転送データを多重化して転送し、
前記記憶装置側の複数の物理リンクでは、前記エクスパンダと複数の記憶装置が、前記転送データを並列的に転送する、多重化転送を行う手段を有することを特徴とするディスクアレイ装置。
【請求項２】
請求項１記載のディスクアレイ装置において、
前記コントローラは、前記多重化転送のための転送データの分離／統合処理を行う第１の手段を備え、
前記エクスパンダは、前記多重化転送のための転送データの分離／統合処理を行う第２の手段を備え、
前記多重化転送を行う手段は、
前記コントローラと記憶装置の接続におけるデータ転送において、
前記記憶装置へのデータのライト処理では、
前記コントローラ側の物理リンクで、前記コントローラがライトデータを前記第１の手段により統合して多重化データとして前記エクスパンダに転送し、前記エクスパンダが受信データを前記第２の手段により分離し、前記記憶装置側の複数の物理リンクで、前記エクスパンダが前記分離したデータを前記複数の記憶装置に対して分散して転送してライトさせ、
前記記憶装置からのデータのリード処理では、
前記記憶装置側の複数の物理リンクで、前記エクスパンダが前記複数の記憶装置からリードデータを転送させ、受信データを前記第２の手段により統合し、前記コントローラ側の物理リンクで、前記エクスパンダが前記統合したデータを多重化データとして前記コントローラに転送し、前記コントローラが受信データを前記第１の手段により分離することを特徴とするディスクアレイ装置。
【請求項３】
請求項１記載のディスクアレイ装置において、
前記多重化転送を行う手段は、前記コントローラと記憶装置の接続において、前記記憶装置側の物理リンクのデータ転送速度が、前記コントローラ側の物理リンクのデータ転送速度よりも低速となる構成の場合に、前記低速となる複数の物理リンクにおける転送データのセットを対象として前記多重化転送を行うことを特徴とするディスクアレイ装置。
【請求項４】
請求項１記載のディスクアレイ装置において、
前記コントローラは、前記多重化転送を行う際、その指示のために前記エクスパンダに対してコマンドを発行し、前記コマンドでは、その宛先として前記エクスパンダのアドレスと、処理対象となる物理ポートとを指定し、
前記エクスパンダは、前記コントローラ側からのコマンドを解釈する手段を有し、フレームのアドレス変換を行うことにより前記コントローラとターゲットの記憶装置とのデータを仲介することを特徴とするディスクアレイ装置。
【請求項５】
請求項１記載のディスクアレイ装置において、
前記多重化転送として複数台の記憶装置に対する転送データのセットを対象とし、
前記コントローラ側の物理リンクでは、前記コントローラとエクスパンダが、前記複数台の記憶装置に対する転送データのセットを二重化して転送し、
前記記憶装置側の複数の物理リンクでは、前記エクスパンダと複数台の記憶装置が、前記転送データを並列的に転送することを特徴とするディスクアレイ装置。
【請求項６】
請求項１記載のディスクアレイ装置において、
前記コントローラは、前記コントローラ側の物理リンクで転送データをそのまま転送し、
前記エクスパンダは、前記転送データについて、前記複数の記憶装置側の物理リンクで、ワード単位でデータの分散を行うことを特徴とするディスクアレイ装置。
【請求項７】
請求項６記載のディスクアレイ装置において、
前記記憶装置を複数台で１セットにして仮想記憶装置として設定し、
前記仮想記憶装置を単位としてＲＡＩＤグループを設定し、
前記ＲＡＩＤグループを対象としたＲＡＩＤ制御に対応して前記多重化転送を行うことを特徴とするディスクアレイ装置。
【請求項８】
請求項６記載のディスクアレイ装置において、
前記コントローラは、前記多重化転送を用いて前記記憶装置からコピー元データをリードし、前記多重化転送を用いてコピー先の記憶装置にライトすることにより内部データコピーを行うことを特徴とするディスクアレイ装置。
【請求項９】
請求項１記載のディスクアレイ装置において、
前記コントローラは、前記記憶装置側の複数の物理リンクでのデータの並列的な転送に対応した、転送データの整列を行い、前記コントローラ側の物理リンクで前記整列したデータを転送し、
前記エクスパンダは、前記記憶装置側の複数の物理リンクで、前記整列したデータに従ってデータの分散を行うことを特徴とするディスクアレイ装置。
【請求項１０】
請求項１記載のディスクアレイ装置において、
前記エクスパンダにより前記記憶装置の接続有無とデータ転送速度とを含む記憶装置状態を認識して前記コントローラに対し報告する手段を有し、
前記コントローラとエクスパンダは、前記記憶装置状態の認識に応じて、前記多重化転送に関して、その対象となる記憶装置を含む処理属性を決定することを特徴とするディスクアレイ装置。
【請求項１１】
請求項１記載のディスクアレイ装置において、
前記コントローラと記憶装置の接続におけるデータ転送において、転送データについてパリティ処理を行い、
前記コントローラ側の物理リンクでは、前記コントローラとエクスパンダが、転送データを多重化して転送し、
前記記憶装置側の複数の物理リンクでは、前記エクスパンダと複数の記憶装置が、前記パリティ処理された転送データをデータとパリティで分散して並列的に転送することを特徴とするディスクアレイ装置。
【請求項１２】
請求項１１記載のディスクアレイ装置において、
前記パリティ処理付きの多重化転送を行う手段では、
前記コントローラは、転送データについてパリティ処理を行い、
前記コントローラ側の物理リンクでは、前記コントローラとエクスパンダが、パリティ付きデータを多重化して転送し、
前記記憶装置側の複数の物理リンクでは、前記エクスパンダと複数の記憶装置が、前記パリティ付きデータをデータとパリティで分散して並列的に転送することを特徴とするディスクアレイ装置。
【請求項１３】
請求項１１記載のディスクアレイ装置において、
前記パリティ処理付きの多重化転送を行う手段では、
前記コントローラは、前記コントローラ側の物理リンクで転送データをそのまま転送し、
前記エクスパンダは、前記転送データについてパリティ処理を行い、前記記憶装置側の複数の物理リンクで、データとパリティで分散して並列的に転送し、
リード処理では、前記エクスパンダが、前記パリティ処理として前記記憶装置からのリードデータについてエラーの場合に前記パリティを用いたデータ復元処理を行い、前記コントローラが、前記データ復元処理による復元データについて、ホストへの転送や他の記憶装置へライトする処理を行うことを特徴とするディスクアレイ装置。
【請求項１４】
請求項１３記載のディスクアレイ装置において、
前記エクスパンダは、前記記憶装置に対するデータ転送におけるエラー情報と前記エクスパンダでのデータ復元に関する情報とを前記コントローラに対し報告する手段を備えることを特徴とするディスクアレイ装置。
【請求項１５】
請求項１記載のディスクアレイ装置において、
前記コントローラとエクスパンダは、転送データを圧縮／伸張処理する手段を有し、
前記コントローラ側の物理リンクでは、圧縮データを転送し、前記記憶装置側の複数の物理リンクでは、前記圧縮データについての伸張データを転送することを特徴とするディスクアレイ装置。
【請求項１６】
請求項１記載のディスクアレイ装置において、
前記エクスパンダに対して、前記多重化転送のための転送データの分離／統合処理を行うデータ分離／統合エンドデバイスが接続され、
前記コントローラ、エクスパンダ、データ分離／統合エンドデバイス、及び記憶装置は、前記コントローラと記憶装置の接続でＳＡＳプロトコルに従ったデータ転送を行う手段を有し、
前記多重化転送を行う手段は、
前記コントローラと記憶装置の接続におけるデータ転送において、前記エクスパンダとデータ分離／統合エンドデバイスが通信を行いながら、
前記コントローラ側の物理リンクでは、前記コントローラとデータ分離／統合エンドデバイスが、転送データを多重化して転送し、
前記記憶装置側の複数の物理リンクでは、前記データ分離／統合エンドデバイスと複数の記憶装置が、前記転送データを並列的に転送することを特徴とするディスクアレイ装置。
【請求項１７】
複数の記憶装置と、前記記憶装置にデータを記憶する制御を行うコントローラと、前記記憶装置とコントローラを物理リンクで接続するエクスパンダとを有し、
前記コントローラ、エクスパンダ、及び記憶装置は、前記コントローラと記憶装置の間の接続でＳＡＳプロトコルに従ったデータ転送を行う手段を有し、
前記コントローラと記憶装置の接続におけるデータ転送において、
複数の記憶装置をセットで転送データの多重書きの対象とし、
前記コントローラ側の物理リンクでは、前記コントローラとエクスパンダが、前記多重書きの対象となるデータを転送し、
前記エクスパンダは、前記多重書き対象の転送データについて、前記多重書き対象となる記憶装置に対する複数の物理リンクで、ライト処理ではデータ複製して並列的に転送してライトさせ、リード処理では並列的にリードして正常データを得る手段を有することを特徴とするディスクアレイ装置。
【請求項１８】
請求項１７記載のディスクアレイ装置において、
前記記憶装置を複数台のセットで転送データの二重書きの対象とし、
前記コントローラ側の物理リンクでは、前記コントローラとエクスパンダが、前記二重書きの対象となるデータを転送し、
前記エクスパンダは、前記二重書き対象の転送データについて、前記二重書き対象となる記憶装置に対する複数の物理リンクで、ライト処理ではデータ複製して並列的に転送してライトさせ、リード処理では並列的にリードして正常データを得る手段を有することを特徴とするディスクアレイ装置。
【請求項１９】
請求項１７記載のディスクアレイ装置において、
複数の記憶装置のセットをデータ分散の対象とし、かつ前記データ分散での各分離データについて前記記憶装置を複数台のセットでデータの二重書きの対象とし、
前記コントローラ側の物理リンクでは、前記コントローラとエクスパンダが、前記データ分散かつ二重書きの対象のデータを転送し、
前記エクスパンダは、前記転送データについて、対象となる記憶装置に対する複数の物理リンクで、前記データ分散と前記二重書きとを行うことを特徴とするディスクアレイ装置。
【請求項２０】
請求項１７記載のディスクアレイ装置において、
複数の記憶装置のセットをデータ分散の対象とし、かつ前記データ分散での分離データをパリティ処理の対象とし、かつ前記パリティ処理で生成されるパリティを含む各分離データについて前記記憶装置を複数台のセットでデータの二重書きの対象とし、
前記コントローラ側の物理リンクでは、前記コントローラとエクスパンダが、前記データ分散かつパリティ処理かつ二重書きの対象のデータを転送し、
前記エクスパンダは、前記転送データについて、対象となる記憶装置に対する複数の物理リンクで、前記データ分散と前記パリティ処理と前記二重書きとを行うことを特徴とするディスクアレイ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクアレイ装置（ストレージ装置）に関し、特に、ディスクアレイ装置における制御装置（コントローラ）と記憶装置の間でのデータ転送の技術及び記憶装置に対するインタフェースとしてＳＡＳ（Serial Attached SCSI）を用いた技術に関する。
【背景技術】
【０００２】
ハードディスクドライブ（ＨＤＤ）等の記憶装置が提供する記憶領域にユーザデータを記憶してデータ保全等を実現するシステムとしてディスクアレイ装置が存在する。ディスクアレイ装置は、データ記憶の制御を行うコントローラと、これに対して接続される記憶装置とを有する。コントローラは、ホストからの命令に基づき、記憶領域にデータを記憶する制御を行う。またディスクアレイ装置は、複数の記憶装置を用いたＲＡＩＤ制御、データ複製・バックアップなどの各種制御を行う。
【０００３】
一方、コンピュータと記憶装置との間のインタフェースとしてＳＡＳがある。ＳＡＳシステムでは、データ転送を行うデバイスとして、転送元となるコンピュータや転送先（ターゲット）となる記憶装置などのエンドデバイス、エンドデバイス間のデータ転送を中継するエクスパンダデバイスを有する。エクスパンダデバイスには多数のエンドデバイスが接続可能である。各デバイスの有する物理ポート間の物理リンクにおいて、所定のデータ転送速度（レート）が確保される。エクスパンダデバイスを介したエンドデバイス間の接続（コネクション）及びデータパスにおいて、複数の物理リンクにおけるレート・マッチング等により定まる接続レートでデータ転送が行われる。
【０００４】
ＳＡＳシステムでは、異なるレートの物理リンクを含んだ接続において、前記レート・マッチング等の目的で、転送データに対してＡＬＩＧＮプリミティブを挿入する処理を行う。ＳＡＳにおけるＡＬＩＧＮ挿入については、非特許文献１に記載されている。
【非特許文献１】Working Draft American National Standard, Project T10/1562-D Revision 5、“Information technology - Serial Attached SCSI(SAS)”、4.3.2 Transmit data path,ｐ．４５−４９,7.2.5.2 ALIGN,ｐ．１５２−１５３,7.13 Rate matching,ｐ．１９１−１９３、[online]、２００３年７月９日、[平成１６年７月２２日検索]、インターネット＜ＵＲＬ：http://www.t10.org/drafts.htm/sas-r05.pdf＞
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ディスクアレイ装置に対して、性能向上等のために、コントローラ−記憶装置におけるデータ転送のインタフェースとしてＳＡＳを適用することを考える。ディスクアレイ装置に対し単純にＳＡＳを適用した場合、複数の物理リンクでレートに違いがある場合などにおいて、ＳＡＳの規格に従って前記ＡＬＩＧＮプリミティブ挿入が行われることとなる。
【０００６】
しかしながら、前記ＡＬＩＧＮプリミティブ挿入のデメリットは、低速なＳＡＳエンドデバイス（例えば１．５Ｇｂｐｓに対応したＨＤＤ）とのデータ転送を行う接続に関して、たとえ物理リンクレートが高速（例えば３．０Ｇｂｐｓ）であっても、前記レート・マッチング等の結果により接続レートが低速（例えば１．５Ｇｂｐｓ）になるため、当該接続及びデータパスにおけるデータ転送効率及びバス使用効率が低下することである。
【０００７】
本発明は以上のような問題に鑑みてなされたものであり、その目的は、記憶装置とのインタフェースとしてＳＡＳを適用したディスクアレイ装置を構成し、コントローラ−記憶装置の接続において複数の物理リンクのレートが異なる場合であっても、データ転送効率及びバス使用効率を低下させずに効率良くデータ転送が可能となる技術を提供することにある。
【課題を解決するための手段】
【０００８】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。前記目的を達成するために、本発明のディスクアレイ装置は、ＨＤＤなどの複数の記憶装置と、ホストとなる情報処理装置からの命令に基づき前記記憶装置が提供する記憶領域へデータを記憶する制御を行うコントローラ（制御装置）とを有する装置であって、以下に示す技術的手段を備えることを特徴とする。
【０００９】
（１）本発明のディスクアレイ装置は、コントローラと記憶装置とのインタフェースとしてＳＡＳを適用し、コントローラと記憶装置の間に、物理リンクを通じて１つ以上のＳＡＳエクスパンダデバイス（エクスパンダ）が接続される構成で、コントローラ−エクスパンダ−記憶装置の間の接続でＳＡＳあるいはＳＡＴＡ（シリアルＡＴＡ）のプロトコルに従ったデータ転送の通信を行う。コントローラ、エクスパンダ、及び記憶装置の各部は、前記ＳＡＳプロトコルに従ったデータ転送を行う手段（ＳＡＳプロトコルに従った通信を処理する回路など）を有する。物理リンクは、各部の有する物理ポートとその間を接続するポートライン（バス）を有して構成される。コントローラと記憶装置がＳＡＳエンドデバイスに相当する。特にエクスパンダは、コントローラ側との物理ポート、記憶装置側との複数の物理ポートを備える。前記データ転送のために各物理リンクでデータ転送速度（レート）が確保される。そして本装置は、コントローラと記憶装置の接続及びそのデータパスにおけるデータ転送において、エクスパンダと複数の記憶装置との間における複数の物理リンクで転送される入出力データについて、コントローラ側（コントローラ−エクスパンダ）の物理リンクでマルチプレクス（多重化）して転送する多重化転送を行う手段を備える。前記多重化転送を行う手段では、コントローラ側の物理リンクでは、コントローラとエクスパンダが、転送データを多重化して転送し、記憶装置側（エクスパンダ−記憶装置）の複数の物理リンクでは、エクスパンダと複数の記憶装置が、前記転送データを並列的に転送する。この際、ＡＬＩＧＮプリミティブなどの挿入無しで処理される。
【００１０】
また、前記多重化転送を行う手段として、コントローラとエクスパンダに、複数のデータの多重化データへの統合と、多重化データの複数のデータへの分離とを処理するデータ処理手段と、処理対象データを格納するメモリなどを備える。前記データ処理手段として、前記コントローラは、前記多重化転送のための転送データの分離／統合処理を行う第１の手段（データ分離／統合回路）を備え、前記エクスパンダは、前記多重化転送のための転送データの分離／統合処理を行う第２の手段（データ分離／統合回路）を備える。
【００１１】
前記多重化転送を行う手段は、前記コントローラと記憶装置の接続におけるデータ転送において、前記記憶装置へのデータのライト処理では、前記コントローラ側の物理リンクで、前記コントローラがライトデータ（記憶装置にライトする対象のデータ）を前記第１の回路により統合して多重化データとして前記エクスパンダへの物理ポートに送出する。そして、前記エクスパンダが受信データを前記第２の回路により分離し、前記記憶装置側の複数の物理リンクで、前記エクスパンダが前記分離したデータを前記複数の記憶装置への物理ポートに対して送出し、各記憶装置に分散して転送してライトさせる処理を行う。また、前記記憶装置からのデータのリード処理では、前記記憶装置側の複数の物理リンクで、前記エクスパンダが前記複数の記憶装置から対応する物理ポートでリードデータ（記憶装置からリードする対象のデータ）を転送させる。そして、前記コントローラ側の物理リンクで、前記エクスパンダが記憶装置からの受信データを前記第２の回路により統合して多重化データとして前記コントローラへの物理ポートに送出する。そして前記コントローラがエクスパンダからの受信データを前記第１の回路により分離する処理を行う。
【００１２】
また本装置は、前記多重化転送を行う手段により、特に、エクスパンダを介してコントローラ側と記憶装置側との各物理リンクのレートが異なる場合でも、ＡＬＩＧＮプリミティブなどの挿入無しでデータ転送を行う。前記多重化転送を行う手段は、コントローラと記憶装置の接続において、記憶装置側の物理リンクのレートが、コントローラ側の物理リンクのレートよりも低速となる構成で、前記低速となる複数の物理リンクにおける転送データのセットを対象として、前記多重化転送を行う。
【００１３】
また本装置では、コントローラと記憶装置の間で、エクスパンダの処理を介した前記多重化転送などの特殊動作と、エクスパンダの処理を介さずに直接にデータ転送等を行う通常アクセスとを選択的に実行可能とする。コントローラは、前記多重化転送の実行の際、例えば、その指示のためのコマンドをエクスパンダに対して発行し、前記コマンドで、その宛先としてエクスパンダのアドレスと、処理対象となる物理ポートとを指定する。エクスパンダは、コントローラ側からのコマンドを解釈する手段を有し、フレームのアドレス変換を行うことにより前記コントローラとターゲットの記憶装置とのデータを仲介して多重化転送を処理する。エクスパンダは、自装置内に作成・保持しているアドレステーブルの参照により、処理対象の記憶装置のアドレスを認識する。また、前記物理ポートの指定に対応して指定の物理ポートで前記記憶装置に対するコマンド及びデータを送信する。また、前記コントローラ側からのコマンドを複製して記憶装置に対して送信するコマンドとして用いる。また、例えば前記コマンドにおいて、二重化転送や四重化転送などの多重化の度合いなど、特殊動作に関する処理属性を指定する。
【００１４】
本装置では、前記多重化転送として、記憶装置の状態（接続有無や物理リンクレートなど）や処理対象データのタイプなどに応じて、二重化、三重化、四重化、及びそれ以上の多重化を実行する。特に、前記多重化転送として複数台の記憶装置に対する転送データを対象として二重化転送や四重化転送を行う。二重化転送の場合、コントローラ側の物理リンクでは、コントローラとエクスパンダが、例えば２台の記憶装置に対する転送データを多重化して転送し、記憶装置側の２つの物理リンクでは、エクスパンダと２台の記憶装置が、前記転送データを並列的に転送する。同様に四重化転送の場合、コントローラ側の物理リンクでは、コントローラとエクスパンダが、例えば４台の記憶装置に対する転送データを多重化して転送し、記憶装置側の４つの物理リンクでは、エクスパンダと４台の記憶装置が、前記転送データを並列的に転送する。
【００１５】
本装置で、エクスパンダに接続される複数の記憶装置としては、ＳＡＳに対応したＨＤＤ（ＳＡＳ−ＨＤＤ）や、ＳＡＴＡに対応したＨＤＤ（ＳＡＴＡ−ＨＤＤ）などを利用可能である。
【００１６】
また、本発明の他のディスクアレイ装置は、前記構成を前提に更に以下のような特徴を有する。前記多重化転送を行う手段で、コントローラは、コントローラ側の物理リンクで処理対象データをそのまま転送する。すなわち、１つ以上の系統のデータについて順に並べてシリアルに転送する。そしてエクスパンダは、複数の記憶装置側の物理リンクで、複数の記憶装置に対して所定サイズで例えばワード単位でデータの分散を行う。すなわち、エクスパンダは、前記多重化データを複数の記憶装置に対する転送のために分離して、各記憶装置との間で並列的に前記分離したデータの転送を行う。
【００１７】
また本装置で、エクスパンダは、ハードウェア構成として、例えば本装置を構成する１つ以上の筐体に備える１つ以上のディスク制御部、あるいは前記ディスク制御部を実装したボード（電源コントローラボードなど）に対して実装される。前記ディスク制御部は、記憶装置に対するリード／ライト等の入出力を実行する処理部を指す。複数のエクスパンダを有する構成の場合、各エクスパンダ間を物理リンクで接続して相互にデータ転送可能な構成にする。ターゲットとなる記憶装置が複数のエクスパンダに跨る場合でも、複数のエクスパンダ間の物理リンクを介して前記多重化転送を行う。
【００１８】
また、本装置は、前記多重化転送を使用するにあたって、物理リンクレートに関する構成に基づき、物理的な記憶装置を複数台で１セットにして、前記１セットの記憶装置で仮想記憶装置を作成（設定）し、そして１つ以上の仮想記憶装置上に、所定のＲＡＩＤグループ及び論理ユニット等を設定しておく。当該設定により、前記多重化転送を使用して、各種ＲＡＩＤ方式に対応可能となる。
【００１９】
また、本装置は、ホストとなる情報処理装置を介さない内部データコピー動作に対して前記多重化転送を使用する。前記コントローラは、内部データコピー実行の際、前記多重化転送を用いて、前記記憶装置からコピー元データをリードし、前記多重化転送を用いてコピー先の記憶装置にライトする処理を行う。
【００２０】
また、本発明の他のディスクアレイ装置は、前記構成を前提に更に、コントローラは、記憶装置側の複数の物理リンクでのデータの並列的な転送（分散）に対応した、転送データの整列を行い、コントローラ側の物理リンクで整列データを転送する。エクスパンダは、記憶装置側の複数の物理リンクで前記整列に従って転送データを分散する。
【００２１】
また、本発明の他のディスクアレイ装置は、前記構成を前提に更に、エクスパンダにより記憶装置の接続有無とデータ転送速度とを含む記憶装置状態を認識してコントローラに対し報告する手段を有する。コントローラとエクスパンダは、記憶装置状態の認識に応じて、多重化転送などの特殊動作に関して、その対象となる記憶装置を含む処理属性を決定する。
【００２２】
また特殊動作として前記（１）に示す多重化転送は、複数の記憶装置に対し入出力するデータを単純に多重化する以外にも、以下に示すように拡張される。以下の拡張においても、コントローラ側の物理リンクに対応して記憶装置側の複数の物理リンクを用いてデータ転送処理を行うので、前記単純に多重化する場合と同様に効率向上の効果を得る。
【００２３】
（２）本発明の他のディスクアレイ装置は、前記（１）に示す構成を前提に更に以下のような特徴を有する。本装置では、コントローラと記憶装置の接続におけるデータ転送において、転送データについてパリティ処理（パリティの挿入あるいは取り除きなど）を行い、パリティ処理付きの多重化転送を行う手段を有する。当該手段では、コントローラ側の物理リンクでは、コントローラとエクスパンダが、転送データを多重化して転送し、記憶装置側の複数の物理リンクでは、エクスパンダと複数の記憶装置が、前記パリティ処理された転送データをデータとパリティで分散して並列的に転送する。前記パリティ処理では、例えば、転送におけるデータシーケンスとして、一定データ間隔ごとにパリティデータを挿入する。
【００２４】
また、前記パリティ処理付きの多重化転送を行う手段では、例えば、コントローラで転送データについてパリティ処理を行い、コントローラ側の物理リンクでパリティ付きデータを多重化して転送する。そして記憶装置側の複数の物理リンクでは、エクスパンダと複数の記憶装置が、パリティ付きデータをデータとパリティで分散して並列的に転送する。
【００２５】
また、前記パリティ処理付きの多重化転送を行う手段では、例えば、コントローラは、コントローラ側の物理リンクで転送データをそのまま転送し、エクスパンダで、前記転送データについてパリティ処理を行い、記憶装置側の複数の物理リンクで、データとパリティで分散して並列的に転送する。一方、リード処理では、エクスパンダが、前記パリティ処理として記憶装置からのリードデータについてエラーの場合にパリティを用いた自動的なデータ復元処理を行う。当該処理では、データとパリティを用いたＸＯＲ演算によりエラーのチェック及び正常データへの復元を行う。コントローラは、前記データ復元処理による復元データについて、ホストとなる情報処理装置へ送信する処理（リード要求に対する応答）や、スペアＨＤＤや交換後ＨＤＤなどの他の記憶装置へライトする処理（コピーバックに関する処理）を行う。
【００２６】
また、本発明の他のディスクアレイ装置は、前記パリティ処理付きの多重化転送を行う手段を備える場合において、エクスパンダは、記憶装置に対するデータ転送におけるエラー情報と、エクスパンダでの自動的なデータ復元に関する情報（前記パリティあるいは後述の多重書きなどを用いてデータを復元したことを伝える情報など）とをコントローラに対し報告する手段を備える。コントローラは、エラー情報及びデータ復元に関する情報の報告に基づき記憶装置のエラーの状態について認識・判断する。
【００２７】
（３）本発明の他のディスクアレイ装置は、複数の記憶装置と、記憶装置にデータを記憶する制御を行うコントローラと、記憶装置とコントローラを物理リンクで接続するエクスパンダとを有し、コントローラ、エクスパンダ、及び記憶装置は、コントローラと記憶装置の間の接続でＳＡＳプロトコルに従ったデータ転送を行う手段を有し、コントローラと記憶装置の接続におけるデータ転送において、転送データについて複数の記憶装置へ同一データをライトする多重書きを行う手段を有する。本装置では、複数の記憶装置をセットで転送データの多重書きの対象とし、コントローラ側の物理リンクでは、コントローラとエクスパンダが、多重書きの対象となるデータを転送し、エクスパンダは、多重書き対象の転送データについて、多重書き対象となる記憶装置に対する複数の物理リンクで、ライト処理ではデータ複製して並列的に転送してライトさせ、リード処理では並列的にリードして正常データを得る。
【００２８】
また、前記多重書き処理としては、特に２台の記憶装置へ同一データをライトする二重書き処理が有効である。この場合、記憶装置を複数台をセットで転送データの二重書きの対象とする。コントローラ側の物理リンクでは、前記二重書きの対象となるデータを転送し、エクスパンダは、二重書き対象の転送データについて、二重書き対象となる記憶装置に対する複数の物理リンクで、ライト処理ではデータ複製して並列的に転送してライトさせ、リード処理では並列的にリードして正常データを得る。
【００２９】
また、本発明の他のディスクアレイ装置では、前記（１）に示す多重化転送と前記多重書きとを組み合わせた特殊動作を行う。本装置では、例えば、複数の記憶装置のセットをデータ分散の対象とし、かつ前記データ分散での各分離データについて記憶装置を２台１組でデータの二重書きの対象とする。コントローラ側の物理リンクでは、前記データ分散かつ二重書きの対象のデータを転送し、エクスパンダは、前記転送データについて、対象となる記憶装置に対する複数の物理リンクで、前記データ分散と前記二重書きとを行う。
【００３０】
また、本発明の他のディスクアレイ装置では、前記（２）に示すパリティ処理付きの多重化転送と前記多重書きとを組み合わせた特殊動作を行う。本装置では、複数の記憶装置のセットをデータ分散の対象とし、かつ前記データ分散での分離データをパリティ処理の対象とし、かつ前記パリティ処理で生成されるパリティを含む各分離データについて記憶装置を２台１組でデータの二重書きの対象とする。コントローラ側の物理リンクでは、前記データ分散かつパリティ処理かつ二重書きの対象のデータを転送し、エクスパンダは、前記転送データについて、対象となる記憶装置に対する複数の物理リンクで、前記データ分散と前記パリティ処理と前記二重書きとを行う。
【００３１】
（４）本発明の他のディスクアレイ装置は、前記（１）に示す構成を前提に更に以下のような特徴を有する。本装置では、コントローラと記憶装置の接続におけるデータ転送において、転送データについて圧縮／伸張処理し、圧縮／伸張処理付きの多重化転送を行う手段を有する。コントローラとエクスパンダは、転送データを圧縮／伸張処理する手段を有し、コントローラ側の物理リンクでは、転送データについての圧縮データを転送し、記憶装置側の複数の物理リンクでは、前記圧縮データについての伸張データを転送する。
【００３２】
（５）また、本発明の他のディスクアレイ装置は、前記エクスパンダの適用に関する他の構成として、コントローラと記憶装置との間に、物理リンクを通じてエクスパンダが接続され、前記エクスパンダに対してバス等を通じてデータ分離／統合エンドデバイスが外付け接続される構成であることを特徴とする。前記エクスパンダは、前記（１）に示すような多重化転送などの特殊動作に係わる処理以外のＳＡＳプロトコルに従った通信処理を行う。データ分離／統合エンドデバイスは、前記多重化転送などの特殊動作に係わる処理として、特にデータ分離／統合処理、すなわち複数のデータの多重化データへの統合と、多重化データの複数のデータへの分離との処理を行う手段を備えるデバイスである。データ分離／統合エンドデバイスは、エクスパンダとの接続において、コントローラ側との通信用のパスと、記憶装置側との通信用の複数のパスを有する。前記特殊動作の実行の際は、コントローラと記憶装置の接続において、データ分離／統合エンドデバイスでの処理を介在してデータ転送の通信を行う。エクスパンダとデータ分離／統合エンドデバイスとの間で、データ分離／統合処理のための通信が行われる。
【発明の効果】
【００３３】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００３４】
本発明のディスクアレイ装置によれば、記憶装置とのインタフェースとしてＳＡＳを適用したディスクアレイ装置を構成し、コントローラ−記憶装置の接続において複数の物理リンクのレートが異なる場合であっても、データ転送効率及びバス使用効率を低下させずに効率良くデータ転送が可能となる。
【発明を実施するための最良の形態】
【００３５】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００３６】
（実施の形態１）
本発明の実施の形態１におけるディスクアレイ装置について説明する。まず、本発明の各実施の形態で共通となるハードウェア構成を説明し、その後、ハードウェア上で行う特徴的な処理などを説明する。
【００３７】
＜ハードウェア構成＞
図１（ａ），（ｂ）は、本発明の各実施の形態のディスクアレイ装置で共通となるディスクアレイ装置のハードウェア構成においてその外観構成を示す図である。（ａ）は装置正面を、（ｂ）は装置背面を示す。本ディスクアレイ装置１００は、ラックフレーム１１１をベースとして、ラックフレーム１１１の内側の上下方向に複数段にわたってマウントフレーム１１２が形成されており、マウントフレーム１１２に沿って基本筐体１２０（ディスクアレイ制御筐体）及び増設筐体１３０（ＨＤＤ筐体）が引き出し式に装着される構成である。本装置１００では、下段に１つの基本筐体１２０が装着され、上段に複数の増設筐体１３０が装着可能となっている。各筐体には、本装置１００の各種機能を提供するボード（回路基板）やユニットが装備される。基本筐体１２０は、ディスクアレイ装置のコントローラ１０を構成するコントローラボード５９等を収容する筐体である。増設筐体１３０は、ＨＤＤ３０を収容する筐体であり、必要に応じて増設が可能となっている。
【００３８】
本装置１００では、基本筐体１２０と増設筐体１３０との間の接続部分及び増設筐体１３０間の接続部分、すなわち電源コントローラボード（５６）の部分に対して、後述のエクスパンダ（２０）を適用した構成である。このようにエクスパンダを適用することで拡張性の有るディスクアレイ装置が構成できる。
【００３９】
装置正面では、基本筐体１２０及び増設筐体１３０において、ＨＤＤ３０が装填されたユニットが複数台並べて装着可能な領域が配されている。各装着位置において、ＨＤＤ３０の装着／取り外しが可能となっている。また基本筐体正面では、バックアップ電源として機能するバッテリーユニット、装置状態を表示する表示パネル、プログラムロード用のフレキシブルディスクドライブ等が配置されている。
【００４０】
装置背面では、基本筐体１２０及び増設筐体１３０において電源コントローラボード５６や電源ユニット等が配置されている。また基本筐体背面においてコントローラボード５９や冷却ファンユニット等が配置されている。
【００４１】
各筐体内には各部間を接続するバックボードが設けられており、バックボードに対して各ボードやユニットや複数のＨＤＤ３０などが接続される。バックボードでの配線を通じて各部が通信する。
【００４２】
コントローラボード５９は、ホストとなる情報処理装置３００からの命令に基づきＨＤＤ３０に対するデータの記憶の制御を行う。コントローラボード５９には、ホストとの通信インタフェース、キャッシュメモリ、共有メモリ、ＨＤＤ３０との通信インタフェース、例えばＲＡＩＤ方式による制御や、ＨＤＤ３０の状態監視などの機能を有する回路などが実装されている。なお通信インタフェースやキャッシュメモリ等の各機能をコントローラボードとは別のボードとして実装する形態としてもよい。なお、基本筐体１２０のＨＤＤ３０の制御に関するセキュリティを確保するために、２枚のコントローラボード５９を冗長に装着させる形態である。
【００４３】
コントローラの有するホストとの通信インタフェースには、ホストと接続するための外部コネクタとして、ファイバチャネルプロトコルで構築されたＳＡＮ（Storage Area Network）や、Ｅｔｈｅｒｎｅｔ（登録商標）などのプロトコルで構築されたＬＡＮ（Local Area Network）、あるいはＳＣＳＩなどの所定の規格に準拠したものが設けられている。ディスクアレイ装置は、この外部コネクタに接続される通信ケーブルを介して情報処理装置３００と接続される。
【００４４】
電源コントローラボード５６は、各筐体間を接続し、筐体間での電源供給等のシステム制御やＨＤＤ３０に対する制御等を行う。電源コントローラボード５６の有するコネクタに外部ＳＡＳケーブル９１が接続され、電源コントローラボード５６間が外部ＳＡＳケーブル９１を通じて接続される。電源コントローラボード５６は、各筐体における複数のＨＤＤ３０と、内蔵のＳＡＳエクスパンダによりＳＡＳやＳＡＴＡ等のプロトコルで通信を行う通信経路によって、通信可能に接続される。電源コントローラボード５６は、ＳＡＳエクスパンダを構成する回路の他にＡＣ／ＤＣ電源の状態監視やＨＤＤ３０の状態監視、ＨＤＤ３０への電源供給の制御などを行う回路が実装されている。なお、電源コントローラボード５６の有する電源供給制御機能等の各機能をコントローラボード５６側に有する形態としてもよい。
【００４５】
電源ユニットは、ＡＣ／ＤＣ電源等を備え、ＨＤＤ３０やボード等の筐体内各部にＤＣ電源を供給する。電源ユニットは、電源コントローラボード５６と接続され、電源コントローラボード５６からの信号により各ＨＤＤ３０に対し電源を供給する。なお、各筐体の電源供給に関するセキュリティを確保するために、各筐体に対し電源コントローラボード５６と電源ユニットとを各２台ずつ冗長に装着させる形態である。
【００４６】
筐体に装着・接続されるＨＤＤ３０として、２．５インチサイズの磁気ディスクと３．５インチサイズの磁気ディスクとは、通信インタフェースが異なるだけではなく、Ｉ／Ｏ性能、消費電力、寿命の点などで異なっている。２．５インチサイズの磁気ディスクは、３．５インチサイズの磁気ディスクに比べ、Ｉ／Ｏ性能が優れておらず寿命が短いが、消費電力が少ないという点で優れている。
【００４７】
＜システム構成（１）＞
図２は、ディスクアレイ装置１００に関するシステム構成についての全体の機能ブロック図である。ディスクアレイ装置１００を含んで構成される全体のコンピュータシステムは、ディスクアレイ装置１００とそのホストとなる情報処理装置３００とが、ＳＡＮ（ストレージ・エリア・ネットワーク）２００を介してＦＣ（ファイバチャネル）インタフェースで接続される構成である。なおホスト側との接続はＳＡＮ２００及びＦＣに限らず可能である。ディスクアレイ装置１００は、コントローラ１０、エクスパンダ２０、ＨＤＤ３０、及びこれらを接続するバスや物理ポート等の接続部分を有する。コントローラ１０−エクスパンダ２０のＳＡＳの物理リンク（４０）において３．０Ｇｂｐｓのレートを有する。エクスパンダ２０−ＨＤＤ３０のＳＡＳの物理リンク（５０）において１．５Ｇｂｐｓのレートを有する。
【００４８】
情報処理装置３００は、ユーザの使用するパーソナルコンピュータ、ワークステーション、メインフレームコンピュータなどである。情報処理装置３００は、ディスクアレイ装置１００を利用するためのプログラムやＦＣに対応してディスクアレイ装置１００と通信する通信インタフェース等を備える。情報処理装置３００は、ディスクアレイ装置１００に対し、ＨＤＤ３０が提供する記憶領域に対するデータのリードやライト等を行うための命令を発行する。ディスクアレイ装置１００は、情報処理装置３００からの命令の受領に基づきデータのリードやライト等を処理する。
【００４９】
ディスクアレイ装置１００において、コントローラ１０とＨＤＤ３０の間の通信接続においてエクスパンダ２０を介してＳＡＳに従った通信を行う機能を有する。コントローラ１０とＨＤＤ３０がＳＡＳエンドデバイスとなる。基本筐体１２０と増設筐体１３０の間及び複数の増設筐体１３０の間における接続部分である電源コントローラボード５６に対してＳＡＳエクスパンダデバイスを適用した構成である。ディスクアレイ装置１００において、エクスパンダ２０を備えた増設筐体１３０を必要に応じて多段に接続することで性能が拡張される。
【００５０】
コントローラ１０は、基本筐体１２０におけるコントローラボード５９などに実装される。また本図ではわかりやすくするためにコントローラ１０とＨＤＤ３０の部分とを別筐体に分けて示している。コントローラ１０は、エクスパンダ２０側と物理リンク（４０）で接続する物理ポート（ＰＨＹ）を複数有する。
【００５１】
エクスパンダ２０は、コントローラ１０と複数のＨＤＤ３０の間を相互に接続し、データ転送を中継すると共に、多重化転送等の特殊動作を担う。エクスパンダ２０は、各筐体の電源コントローラボード５６のうちディスク制御部の部分にＳＡＳエクスパンダデバイス及び本実施の形態に特徴的な機能が実装されることで構成された装置である。本図に示すのは各増設筐体１３０内のディスク制御部に対してＳＡＳエクスパンダデバイスを実装した場合の形態であるが、コントローラ１０−エクスパンダ２０−ＨＤＤ３０の間の接続構成は当該形態に限定されない。エクスパンダ２０は、コントローラ１０側及び別の増設筐体１３０内の他エクスパンダ２０側と物理リンク（４０）で接続し、ＨＤＤ３０側と物理リンク（５０）で接続するための、複数の物理ポート（ＰＨＹ）を有する。コントローラ１０−エクスパンダ２０−ＨＤＤ３０の間、及び複数のエクスパンダ２０間は、ＳＡＳに基づく通信インタフェースで接続され相互に通信可能である。
【００５２】
ＨＤＤ３０は、ＳＡＳに対応したＨＤＤ（ＳＡＳ−ＨＤＤ）、あるいは、ＳＡＴＡに対応したＨＤＤ（ＳＡＴＡ−ＨＤＤ）である。低速なＳＡＳ−ＨＤＤの場合、エクスパンダ２０−ＨＤＤ３０のＳＡＳの物理リンク（５０）において例えば１．５Ｇｂｐｓのレートであり、コントローラ１０側のレートより低速となる。高速なＳＡＳ−ＨＤＤの場合、エクスパンダ２０−ＨＤＤ３０のＳＡＳの物理リンク（５０）において例えば３．０Ｇｂｐｓのレートであり、コントローラ１０側のレートと同速となる。ＨＤＤ３０は、エクスパンダ２０側の物理ポートに対応した図示しない物理ポートを備え、物理リンク（５０）で受信したコマンドやデータに基づきディスクに対しブロックやセクタ等の単位でデータをリード／ライトする。ＨＤＤ３０は、システム内においてユニークなアドレス、特にＳＡＳ−ＨＤＤの場合にはＳＡＳアドレスが付与されている。なおＳＡＳ−ＨＤＤとの通信ではＳＡＳプロトコルが、ＳＡＴＡ−ＨＤＤとの通信ではＳＡＴＡプロトコルが使用される。
【００５３】
ＳＡＳシステムはＳＡＴＡデバイスとの接続性も有し、エクスパンダ１０は、ＳＡＳ−ＨＤＤ、ＳＡＴＡ−ＨＤＤのいずれの接続にも対応する。ＳＡＳプロトコルは、物理層、リンク層、ポート層、トランスポート層などを有する。各層がＳＡＳポートに含まれる。物理ポート（図中「Ｐｈｙ」で示す）には、物理層、リンク層が含まれる。トランスポート層は、コマンド、データ、ステータス等をＳＡＳフレームにカプセル化しポート層に割り当てる処理などを行う。ポート層は、パケット（フレーム）を送信する物理ポートの選択や、接続が確立後のパケット（フレーム）転送処理などを行う。リンク層は、接続管理のために物理層を制御する。物理層は、ポートライン（バス）上に信号を送出するハードウェアが含まれる。
【００５４】
コントローラ１０は、ＣＰＵ１１、メモリ１２、チャネル制御部１３、データコントローラ１４、キャッシュメモリ１５、ディスク制御部１６、複数の物理ポート（「Ｐｈｙ」）を有する。コントローラ１０は、ＳＡＳアドレス（コントローラアドレス）で識別される。なお、チャネル制御部１３やディスク制御部１６などが多重化された構成も可能である。
【００５５】
ＣＰＵ１１は、メモリ１２を用いて制御プログラムを実行し、コントローラ１０の各種機能を実現する。チャネル制御部１３は、ＳＡＮ２００に対して接続され、ＦＣプロトコルに従った通信機能（ＦＣインタフェース）を提供する通信処理部である。チャネル制御部１３は、ホスト側の通信処理部や他のディスクアレイ装置などとの間で通信を行う。またチャネル制御部１３は、データコントローラ１４に接続され、キャッシュメモリ１５に対してデータをリード／ライトする。
【００５６】
データコントローラ１４は、データ分離／統合回路１７を有するＬＳＩである。データコントローラ１４は、ＣＰＵ１１、チャネル制御部１３、キャッシュメモリ１５、ディスク制御部１６に接続され、各部間でのデータ通信及びデータ処理を行う。データコントローラ１４は、キャッシュメモリ１５に対して処理データ、特にホストとの転送データのリード／ライトを行う。
【００５７】
キャッシュメモリ１５は、ユーザデータやコマンドなどの処理データを記憶するのに使用され、特に多重化転送機能などに係わる転送データが一時的に保持される。例えば、通常アクセス時には、ホストからのリードやライトなどのデータ入出力要求に対応して、チャネル制御部１３によりデータコントローラ１４を介してキャッシュメモリ１５にライトデータ等が格納される。ディスク制御部１６は、ＣＰＵ１１からの指示でデータコントローラ１４を介してキャッシュメモリ１５にコマンドに対応した入出力処理を実行する。
【００５８】
ディスク制御部１６は、データコントローラ１４及び複数の物理ポートにバスで接続され、エクスパンダ２０及びＨＤＤ３０に対するデータの入出力を処理する。またディスク制御部１６は、データコントローラ１４を介してキャッシュメモリ１５に対してデータをリード／ライトする。ディスク制御部１６は、ＳＡＳに従った通信機能を有する。
【００５９】
データ分離／統合回路１７は、多重化転送機能などに係わるデータ分離／統合処理を行う。データ分離／統合回路１７では、特殊動作のタイプに応じて、ホスト側からの転送データを統合し、またエクスパンダ２０側からの転送データを分離する処理を行う。データ分離／統合回路１７による処理については後述する。
【００６０】
コントローラ１０及びエクスパンダ２０において、複数の物理ポートによりポートグループが構成される。例として８つの物理ポートで２つのポートグループＡ，Ｂが構成された形態である。図中、ポートグループＡに含まれるバスを実線で、ポートグループＢに含まれるバスを点線で示す。コントローラ１０側の各物理ポートとエクスパンダ２０側の各物理ポートがポートグループで対応する。コントローラ１０−ＨＤＤ３０の接続において各物理ポートやポートグループを用いてデータ転送等が可能である。データパス中に障害が有る場合などは、他の物理ポートを選択して切り替えることが可能である。また物理ポート間の１つのポートライン（バス）を用いて多重化転送等が可能である。
【００６１】
エクスパンダ２０は、ＨＤＤ３０を制御するディスク制御部としての機能の他、データ分離／統合回路２７を有する。エクスパンダ２０は、コントローラ１０側のディスク制御部１６、増設筐体１３０内に装着・接続されるＨＤＤ３０、及び他のエクスパンダ２０と、それぞれ物理ポート及びバスを通じてＳＡＳの物理リンク（４０，５０）で接続される。例として、前記２系統のポートグループＡ，Ｂに対応した物理ポートを有する。図中、エクスパンダ２０が有するコントローラ１０側との物理ポートは、前記ポートグループに対応した４つの物理ポートをまとめて１つに表わしている。また各物理リンクに関して、細線は１つのポートライン（バス）を、太線は４つのポートラインをまとめたものを表わす。エクスパンダ２０間を接続する物理リンクは、例えばコントローラ１０側と同様に３．０Ｇｂｐｓのレートである。エクスパンダ２０には、エクスパンダ２０の有する２系統のポートグループを通じて増設筐体１３０内の複数のＨＤＤ３０すべてがポートライン（バス）を通じて接続される。各ＨＤＤ３０は、２系統のポートグループに対応した２つの物理ポートに対し接続される。
【００６２】
なお物理ポート数、接続可能ＨＤＤ数などについては本構成に限らず増減可能である。各実施の形態では、コントローラ１０−エクスパンダ２０−ＨＤＤ３０の通信接続において、物理リンクレートとして、高速の３．０Ｇｂｐｓ（コントローラ１０側）と低速の１．５Ｇｂｐｓ（ＨＤＤ３０側）の組み合わせを基本として記載している。これに限らず、６．０Ｇｂｐｓと３．０Ｇｂｐｓの組み合わせや、更にそれらに１．５Ｇｂｐｓを組み合わせた場合等、他のレートの場合も同様である。
【００６３】
＜システム構成（２）＞
図３は、ディスクアレイ装置１００に関する他のシステム構成についての機能ブロック図である。本構成は、コントローラ１０やエクスパンダ２０等、ホストからＨＤＤ３０までのデータパス上の各部を二重化した構成である。一方のパス上で障害が発生した場合等においても他方のパスに切り替えて処理を継続するフェイルオーバや、負荷分散などが可能である。コントローラ１０やエクスパンダ２０内に備える各部は、前記システム構成と略同様である。本構成の場合でも多重化転送機能などを同様に実行可能である。
【００６４】
各コントローラ１０及び各エクスパンダ２０は、複数の物理ポートを備えて２系統のポートグループＡ，Ｂに対応している。コントローラ１０−エクスパンダ２０−ＨＤＤ３０の間で、各物理ポートを組み合わせて冗長性を持つように接続される。基本筐体１２０においてコントローラ＃０、＃１の２つが接続される。各コントローラ１０はチャネル制御部１３でＳＡＮ２００に接続される。各コントローラ１０はディスク制御部１６に２つのポートグループＡ，Ｂが接続される。増設筐体１３０においてエクスパンダ＃０、＃１の２つが接続される。各エクスパンダ２０は、両方のコントローラ１０に接続される。すなわち、コントローラ＃０のポートグループＡと、コントローラ＃１のポートグループＡとが、エクスパンダ＃０に接続される。コントローラ＃０のポートグループＢと、コントローラ＃１のポートグループＢとが、エクスパンダ＃１に接続される。一方のポートグループでの接続が不良な場合でも他方のポートグループでの接続に切り替えて継続可能である。また、各エクスパンダ２０には、エクスパンダ２０の有する複数の物理ポートを通じて増設筐体１３０内の複数のＨＤＤ３０すべてがバスを通じて接続される。またエクスパンダ２０は、別の増設筐体１３０内のエクスパンダ２０に接続する２系統の物理ポートを有する。図中、４つの物理ポート及び４つのポートラインをまとめて１つで示す。
【００６５】
エクスパンダ２０は、エクスパンダ２０内で物理ポート間のパスを切り替えるスイッチを有し、データ転送先に応じて切り替えされる。
【００６６】
＜コントローラ−エクスパンダの接続＞
図４は、ディスクアレイ装置１００においてコントローラ１０−エクスパンダ２０間の接続におけるより詳細な機能ブロック構成を示す。特にデータコントローラ１４、ディスク制御部１６、エクスパンダ２０についての構成を示している。
【００６７】
コントローラ１０中のデータコントローラ１４は、バッファ１４１とデータコントロール回路１４２を有する。データ分離／統合回路１７は、バッファ１４１とデータコントロール回路１４２の持つ機能により構成される。データコントロール回路１４２は、バッファ１４１にデータをバッファリングしながらデータ分離／統合等のデータ処理を行う。
【００６８】
コントローラ１０中のディスク制御部１６は、２系統のポートグループＡ，Ｂに対応したＳＡＳプロトコル制御部１６１と複数の物理ポートとを有する。ＳＡＳプロトコル制御部１６１は、データコントロール回路１４２及びポートグループにバスで接続され、ＳＡＳプロトコルに従った処理を行う。
【００６９】
エクスパンダ２０は、データ分離／統合回路２７と、ダイレクタ回路２８と、複数の物理ポートとを有する。データ分離／統合回路２７は、バッファ２７１と、ＸＯＲ回路２７３を含むデータコントロール回路２７２とを有する。エクスパンダ２０の有する各物理ポートは、ダイレクタ回路２８を通じてバスで接続される。またエクスパンダ２０の有する物理ポートを通じて別のコントローラ（冗長コントローラ）１０または別の増設筐体１３０のエクスパンダ２０に接続される。
【００７０】
ダイレクタ回路２８は、エクスパンダ２０内の物理ポート間のパスを切り替える。多重化転送等の特殊動作を行わない通常アクセスの場合は、一方の物理ポートからダイレクタ回路２８でデータ分離／統合回路２７を経由せずにそのまま他方の物理ポートに繋げるパスにする。多重化転送等の特殊動作を行うアクセスの場合は、一方の物理ポートからダイレクタ回路２８でデータ分離／統合回路２７を経由させてデータ処理を行ってから他方の物理ポートに繋げるパスにする。
【００７１】
データ分離／統合回路２７は、特殊動作のためにコントローラ１０側と対応した処理を行う。データコントロール回路２７２は、バッファ２７１にデータをバッファリングしながらデータ分離／統合等のデータ処理を行う。またデータコントロール回路２７２は、パリティを用いた処理等の場合にＸＯＲ回路２７３を利用して処理を行う。
【００７２】
＜特殊処理＞
図５は、本発明の各実施の形態のディスクアレイ装置で行う特殊処理（多重化転送）についての代表的な処理の概要を示す説明図である。本図に示す代表的な処理は特に後述する実施の形態２での処理に対応している。本図では特に二重化転送の場合を示しているが、それ以上の多重化についても同様である。
【００７３】
エンドデバイスとなるコントローラ１０とＨＤＤ３０の間の接続及びそのデータパスにおいて、エクスパンダ２０が介在し、エクスパンダ２０での処理を通じて特殊動作を実行する。コントローラ１０−ＨＤＤ３０のデータパスにおいて、コントローラ１０とエクスパンダ２０の間の物理リンク４０と、エクスパンダ２０とＨＤＤ３０の間の物理リンク５０（５０ａ，５０ｂ）が存在する。本構成は、コントローラ１０側の物理リンクレート（３．０Ｇｂｐｓ）に比べて低速な物理リンクレート（１．５Ｇｂｐｓ）となるＳＡＳ−ＨＤＤをＨＤＤ３０として使用した場合である。
【００７４】
コントローラ１０とエクスパンダ２０でのデータ分離／統合処理により、特殊動作として多重化転送を行う。多重化転送として、複数のＨＤＤ側物理リンク５０で転送するデータについて対象として、コントローラ側物理リンク４０で多重化して転送を行う。特に二重化転送として、２つのＨＤＤ３０に対するＨＤＤ側物理リンク５０で転送するデータについて、コントローラ側物理リンク４０で二重化して転送を行う。
【００７５】
図中、多重化対象となるＨＤＤ３０のセット（グループ）の例として、ＳＡＳ−ＨＤＤ＃Ａ（３０ａ）、ＳＡＳ−ＨＤＤ＃Ｂ（３０ｂ）の２つのＨＤＤ３０が有る。例えば、ＨＤＤ３０からの読み出し動作により、エクスパンダ２０−ＨＤＤ３０ａの物理リンク５０ａにおいて、ＨＤＤ３０ａに対して入出力するデータＡ｛Ａ０，Ａ１，……｝が転送される。同様にエクスパンダ２０−ＨＤＤ３０ｂの物理リンク５０ｂにおいて、ＨＤＤ３０ｂに対して入出力するデータＢ｛Ｂ０，Ｂ１，……｝が転送される。Ａ０、Ｂ０等を１ワード単位のデータとする。
【００７６】
高速側である物理リンク４０において、コントローラ１０及びエクスパンダ２０は、２つのＨＤＤ３０ａ，３０ｂに対して並列的に転送するデータについて、所定データサイズ例えばワード単位で、多重化して転送する。多重化データにおいて、複数系統のデータ（Ａ，Ｂ）がワード単位で交互に配置される。例えば、物理リンク４０で、多重化データ｛Ａ０，Ｂ０，Ａ１，Ｂ１，……｝が転送される。
【００７７】
ＨＤＤ３０への書き込み動作の場合は、コントローラ１０は、２つのＨＤＤ３０に対して転送する２系統のデータＡ，Ｂについて、データ分離／統合回路１７により統合して、物理リンク４０において二重化データとして転送する。エクスパンダ２０は、物理リンク４０においてコントローラ１０側から受信した二重化データを、データ分離／統合回路２７により分離して、低速側の２つの物理リンク５０において並列的に転送する。
【００７８】
また、エクスパンダ２０は、同様にＨＤＤ３０からコントローラ１０方向へは、低速側の２つの物理リンク５０においてＨＤＤ３０側から受信した２系統のデータＡ，Ｂを、データ分離／統合回路２７により統合して、高速側の物理リンク４０において二重化データとして転送する。コントローラ１０は、高速側の物理リンク４０においてエクスパンダ２０側から受信した二重化データを、データ分離／統合回路１７により分離して、２つのＨＤＤ３０からの２系統のデータＡ，Ｂとして取得する。
【００７９】
本処理例の場合、低速側の２つの物理リンク５０ａ，５０ｂで略同タイミングで転送されるデータＡ，Ｂについて、先頭から１ワード単位で取り出して２つを統合して交互に並べることにより、二重化データは、｛Ａ０，Ｂ０，Ａ１，Ｂ１，……｝のようなデータシーケンスになる。なお多重化転送において複数のＨＤＤ３０との間でデータを並列的に転送するタイミングは、完全に同時である必要はない。
【００８０】
高速側の物理リンク４０のレートが低速側のレートの２倍であるので、物理リンク４０における二重化転送により、２つの物理リンク５０ａ，５０ｂのデータ転送処理とバランスされる。物理リンクレートの調整のためにＡＬＩＧＮ挿入を行わないので、その分、コントローラ１０−ＨＤＤ３０の接続及びデータパスにおけるデータ転送効率及びバス使用効率が向上する。
【００８１】
＜コマンド＞
コントローラ１０とエクスパンダ２０の間でのデータ通信や制御情報通信のために使用されるコマンドの例について説明する。多重化転送等の特殊動作を行わせる場合、コントローラ１０は、エクスパンダ２０に対してＳＡＳに従ったコマンド（以下、特殊コマンドと称する）を送出し、エクスパンダ２０で受領コマンドを解釈して、対応する特殊動作を実行する。各実施の形態では、特殊動作を行わせる場合に、ＨＤＤ３０に対するアクセスに際してエクスパンダアドレスを用いる。エクスパンダアドレスは、システム内でエクスパンダ２０をユニークに識別する情報である。特殊動作を行わせる際、コントローラ１０は、対象のエクスパンダ２０に対して、そのエクスパンダアドレスを宛先アドレスとして用いて、特殊コマンドを送信する。特殊コマンドとしてＳＡＳに従ったコマンドである、ＳＳＰ（Serial SCSI Protocol）コマンドを利用する。エクスパンダ２０はコントローラ１０から特殊コマンドを受領すると、自分宛てのアドレスである場合に特殊動作を実行する。またエクスパンダ２０は、受領コマンドが他のエクスパンダ２０宛てである場合は物理リンクを通じて他のエクスパンダ２０へ転送する。また、コントローラ１０は、エクスパンダ２０及びＨＤＤ３０への通常アクセスは、前記エクスパンダアドレスを用いずにＳＡＳプロトコルに従ってそのまま行う。
【００８２】
エクスパンダ２０では、基本的にコマンド変換すなわちコントローラ１０が実行するようなコマンド処理は行わず、以下の変換動作などを行う。エクスパンダ２０は、第一に、コマンド複製及びＳＡＳアドレス変換を行う。コマンド複製は、複数の転送先（ターゲット）となるＨＤＤ３０に対するコマンドの送信のための処理であり、コントローラ１０側から受信した特殊コマンドを複製することでＨＤＤ３０側に送信するコマンドを作成する。ＳＡＳアドレス変換は、受領コマンド中のエクスパンダアドレスをもとに、エクスパンダ２０の持つアドレステーブルを参照しつつ、転送先となるＨＤＤ３０のＳＡＳアドレス（ＨＤＤアドレス）に変換する処理である。
【００８３】
エクスパンダ２０は、第二に、多重化転送に係わるデータ操作（複製／分離／統合／ＸＯＲ）及びデータ長の変換を行う。データ操作は、複数のＨＤＤ３０に対するデータ転送のための転送データの複製、多重化データの分離、複数のデータの統合、パリティ処理のためのＸＯＲ演算処理などである。
【００８４】
エクスパンダ２０は、第三に、実行時間監視及びエラーコードデータの管理を行う。実行時間監視は、各コマンドに関して設定されている処理制限時間内に、要求されている処理を完了するための管理である。エラーコードデータの管理は、ＨＤＤ３０からのデータリードがエラーの場合などに対応したエラーコードを生成してメモリに保存し、コントローラ１０側に報告する等の処理である。
【００８５】
＜全体の処理手順＞
ディスクアレイ装置１００における全体の処理手順について説明する。基本的に下記手順（１）〜（４）に従って処理を行う。ディスクアレイ装置１００では、コントローラ１０での判断や設定などに基づき、通常アクセスと特殊動作を選択的に実行可能である。
【００８６】
手順（１）：  ディスクアレイ装置１００の起動時に、エクスパンダ２０が、接続状態の個々のＨＤＤ３０及びコントローラ１０に対し、レート交渉（ネゴシエーション）を行う。レート交渉により、各物理リンク（４０，５０）におけるデータ転送速度（物理リンクレート）が確保される。例えば、物理リンク４０が３．０Ｇｂｐｓ、物理リンク５０が１．５Ｇｂｐｓと定まる。なおこのレート交渉は、前記物理リンクレート間の調整のためのレート・マッチングとは異なる処理であることに注意しておく。またレート交渉を含む処理により、エクスパンダ２０内に各部間の相互接続のためのアドレステーブルが作成される。アドレステーブルにおいて、エクスパンダ２０の有する物理ポートに対するコントローラ１０やＨＤＤ３０や他エクスパンダ２０の間での接続構成がマッピングされる。アドレステーブルは接続構成の変化に伴い更新される。
【００８７】
手順（２）：  コントローラ１０が、個々のＨＤＤ３０に対する速度情報を通常アクセスにより調査する。調査により、各物理リンクにおける実データ転送速度が認識される。
【００８８】
手順（３）：  コントローラ１０は、コントローラ１０側とＨＤＤ３０側とのレート比率を計算し、計算した比率に従って、実行対象となる特殊動作のタイプや、多重化転送の対象となるＨＤＤ３０のセット（グループ）化、多重化の度合いなどの処理属性を決定する。コントローラ１０は、最大で前記計算したレート比率までの多重化を行うように決定する。例えば、コントローラ１０と２つのＨＤＤ３０の接続において物理リンクレートが３．０Ｇｂｐｓと１．５Ｇｂｐｓの組み合わせである場合に、レート比率が２倍であることから、前記２つのＨＤＤ３０を対象として二重化転送を行うことを決定する。また例えば、コントローラ１０側とＨＤＤ３０側のレートが同速の場合に、当該ＨＤＤ３０に対して通常アクセスを行うことを決定する。また多重化転送の対象は、ＨＤＤ単位としてもよいし、データ単位としてもよい。
【００８９】
手順（４）：  コントローラ１０は、実行対象となる多重化転送等の特殊動作についての指示を、エクスパンダ２０に対して特殊コマンドにより行う。特殊コマンドの発行は、例えば、図６に示す既存のＳＳＰフレームヘッダ内のＳＡＳアドレス指定領域を加工することで行う。ＳＡＳアドレス指定領域に特殊動作の指示を記述する。エクスパンダ２０に特殊コマンドを解釈させて各種特殊動作を実現する。エクスパンダ２０−ＨＤＤ３０でのコマンド送信では、エクスパンダ２０内に持つアドレステーブルにより変換された通常のＳＡＳアドレス（ハッシュ処理済）が使用される。
【００９０】
図６は、ＳＡＳにおけるＳＳＰフレーム及びＳＡＳアドレスのフォーマットを示す。ＳＳＰフレームヘッダ（２４バイト）で、バイト１〜９におけるＳＡＳアドレス指定領域（９バイト）は、宛先ＳＡＳアドレス領域（Hashed Destination SAS address Fields）、ソースＳＡＳアドレス領域（Hashed Source SAS address Fields）、リザーブ領域（Reserved Field）を有する。また、ＳＡＳアドレスファーマットにおいて、８バイトのＳＡＳアドレスを有するが、ＳＳＰフレームでは、ハッシュ処理により短縮化されたデータ（２４ビットハッシュ値）となる。
【００９１】
特殊コマンドの発行は、前記ＳＡＳアドレス指定領域において、リザーブ領域への値の設定や、本システム内でのみ有効かつユニークなプライベートＳＡＳアドレスの使用などにより可能である。例えば、ＳＡＳの規格に基づいて、実際には通常アクセスで使用されないＳＡＳアドレス（例えば２４ビットハッシュ値「００００００ｈ」など）の中からいくつかを用いて特殊コマンドとして使用することが可能である。ＳＡＳアドレス及びハッシュ処理などについては、前記非特許文献１の項４．２．２などに記載されている。
【００９２】
図７は、各実施の形態で使用する特殊コマンドの形式例を示す。前記ＳＳＰコマンドフレームのＳＡＳアドレス指定領域を加工して特殊コマンド領域とした場合である。例として、前記ＳＡＳアドレス指定領域内のリザーブ領域を使用して、特殊動作の処理属性や物理ポートの指定などを行う。特殊動作及び関連処理としては、各実施の形態で示す、多重化転送、二重書き、パリティ処理、情報報告、データ圧縮／伸張など、及びそれらの組み合わせがある。特殊コマンドでこれら各処理を指定可能とする。
【００９３】
特殊コマンドにおけるバイト１〜３は、前記宛先ＳＡＳアドレス領域であり、当該領域を前記エクスパンダアドレスの指定に用いる。バイト５〜７は、前記ソースＳＡＳアドレス領域である。バイト４における２ビットのフラグ領域は、特殊動作に関するモードやパターンを指定するために用いる。バイト４における６ビットのコマンド領域は、リード／ライト等の動作の指定に用いる。バイト８，９の物理ポート指定領域は、エクスパンダ２０−ＨＤＤ３０の物理リンク５０において使用対象となる物理ポートの指定などに用いる。例として４×４ビットを用いて４つの物理ポート情報（物理ポートＮｏ．１〜Ｎｏ．４）を指定可能な形式である。当該物理ポート情報の指定は、物理ポート番号や物理ポート範囲等により行う。
【００９４】
コントローラ１０は、前記フラグ領域及びコマンド領域を使用して各種特殊動作を指定する。前記フラグ領域の使用に関して、図中右側にフラグ例を示す。例えば、フラグ値“００”で二重化転送処理を指定する。同様に、“０１”で四重化転送処理、“１０”で二重書き処理、“１１”で二重化かつ二重書き処理などのように処理のモードやパターンを指定する。例えば、いくつかの特殊処理の組み合わせをパターンとして設定しておいて使用する。
【００９５】
前記コマンド領域の使用に関しては、例えば、内部データコピー（実施の形態２）、ライト時のパリティ自動生成（実施の形態５）、リード時のパリティによる自動データ復元（実施の形態５）、スペアＨＤＤ（スペアディスク）へのパリティによるデータ復元（実施の形態５）、リード時のミラーＨＤＤによる自動データ復元（実施の形態６、実施の形態７）、スペアＨＤＤへのミラーＨＤＤによるデータ復元（実施の形態６、実施の形態７）、物理ポート組み合わせ可否の問い合わせ（実施の形態９）などの処理も値で指定可能とする。
【００９６】
＜ＡＬＩＧＮプリミティブの挿入を行う場合＞
図８は、本発明の各実施の形態との比較のために、本発明の前提技術として、ディスクアレイ装置に単純にＳＡＳを適用した構成において、ＳＡＳの標準に従ってＡＬＩＧＮプリミティブの挿入を行う場合の処理のモデルを表わす説明図である。コントローラ、エクスパンダ、及びＨＤＤの間における、処理及びデータ（コマンド及び記憶対象データ）の流れを示している。また特に、ホストとなる情報処理装置からのライト命令に応じてディスクアレイ装置においてＨＤＤ｛ドライブＡ，ドライブＢ｝に対するデータのライトを行う場合について示す。
【００９７】
前提技術では、ディスクアレイ装置に対して、コントローラ−ＨＤＤにおけるデータ転送のインタフェースとしてＳＡＳが適用され、物理リンクを介してエクスパンダを接続する形態で、コントローラ−エクスパンダ−ＨＤＤの接続及びそのデータパスにおいて、ＳＡＳの標準に従ってデータのリード／ライト等のためのデータ転送が行われる。また、エクスパンダに対して、コントローラ−エクスパンダの物理リンクレートよりも低速な物理リンクレートで、ＳＡＳに対応した複数のＨＤＤ（ＳＡＳ−ＨＤＤ）が接続される場合が考えられる。本図に示す構成は、コントローラ−エクスパンダの物理リンクのレートは３．０Ｇｂｐｓ、エクスパンダ−ＨＤＤの物理リンクのレートは１．５Ｇｂｐｓであり、レート比率が２倍の場合の例である。
【００９８】
上記のように単純にＳＡＳを適用した構成において、コントローラ側の物理リンクよりもＨＤＤ側の物理リンクの方が低速のレートになる場合では、コントローラ−ＨＤＤの接続でのデータ転送において前記ＳＡＳにおけるＡＬＩＧＮプリミティブの挿入が行われることになる。通常アクセスにおいて、ＳＡＳの標準に従って物理リンク間のレート・マッチング等により、高速側となるコントローラ側の物理リンクにおいて転送データにＡＬＩＧＮプリミティブの挿入が行われる。
【００９９】
図８で、コントローラは、キャッシュメモリに、ホストやＨＤＤからのデータを一時的に保持する。例として、ホストから受領した、２つのＨＤＤ｛ドライブＡ，ドライブＢ｝に対するライトデータ｛データＡ（ドライブＡ用データ）、データＢ（ドライブＢ用データ）｝をそのままの状態でキャッシュメモリに一時的に保持する様子を示す。
【０１００】
コントローラは、処理のターゲットとなるＨＤＤごとにコマンドを発行する。コントローラは、ドライブＡへライトコマンド及びデータＡを、ドライブＢへライトコマンド及びデータＢを、順に発行する。コントローラは、この際、コントローラ側の物理リンクレートとターゲットＨＤＤ側の物理リンクレートが異なる場合に、コントローラ側物理リンクで、１ワードの転送データ（前記ライトコマンドやライトデータなど）ごとにＡＬＩＧＮプリミティブを挿入して転送する。ワード（ｄｗｏｒｄ）はＳＡＳにおけるデータ処理単位である。前記ＡＬＩＧＮプリミティブ挿入により、コントローラ−ＨＤＤの接続におけるレート（接続レート）が調整されることとなる。すなわち、高速側のコントローラ側物理リンクのレートを低速側のＨＤＤ側物理リンクのレートに合わせた接続レートとなる。例えば本構成の場合はレート比率が２倍なので、１ワードの転送データに対し１ワード分に相当するＡＬＩＧＮが挿入される。コントローラは、エクスパンダ側への物理ポートに、前記ライトコマンド及びライトデータを送出する。以下、１ワード単位のデータに対応する転送処理時間をｔとする。コントローラ側物理リンクにおいて、ＡＬＩＧＮプリミティブを含めた２ワード分のデータが２ｔの転送処理時間で転送される。
【０１０１】
エクスパンダは、コントローラからＨＤＤへの前記コマンド及びデータの中継・配信を行う。エクスパンダは、コントローラ側物理リンクを通じて前記転送データを順に受け取り、エクスパンダ内に有するＳＡＳアドレステーブルによりアドレス変換を行って、ターゲットの各ＨＤＤ｛ドライブＡ，ドライブＢ｝に対して対応する各物理ポートを通じて転送データ（ライトコマンド及びライトデータ）を送信する。この際、エクスパンダは、前記ＡＬＩＧＮプリミティブを取り除いたデータを低速側の物理リンクで転送する。このデータ転送では１ワード単位のデータに対応して２ｔの処理時間を要する。エクスパンダは、ドライブＡへライトコマンド及びデータＡを順に転送し、ドライブＢへライトコマンド及びデータＢを順に転送する。各ＨＤＤは、受信したライトコマンドに基づきライトデータをディスクに記憶する。
【０１０２】
ホストからのＨＤＤに対するデータのリード時は、上記ライト時と逆の流れの処理になる。すなわち、エクスパンダは、ＨＤＤからのリードデータにＡＬＩＧＮプリミティブを挿入してコントローラ側に転送する。コントローラは、エクスパンダからの転送データからＡＬＩＧＮプリミティブを取り除いてホストに対するデータとする。
【０１０３】
以上のように、コントローラ−ＨＤＤの接続においてＡＬＩＧＮ挿入を行う場合、その分、コントローラ側物理リンクにおいてデータ転送効率が低下する。例えば本構成の場合、コントローラ側物理リンクにおいてＨＤＤ側のレートに合わせて３．０Ｇｂｐｓから１．５Ｇｂｐｓに低下する。
【０１０４】
＜多重化転送＞
図９は、実施の形態１におけるディスクアレイ装置での特殊処理（多重化転送）のモデルを表わす説明図である。コントローラ１０、エクスパンダ２０、及びＨＤＤ３０の間における、処理及びデータ（コマンド及び記憶対象データ）の流れを示している。コントローラ側物理リンク４０のレートは３．０Ｇｂｐｓ、ＨＤＤ側物理リンク５０のレートは１．５Ｇｂｐｓであり、レート比率が２倍である。また、ホストとなる情報処理装置３００からのライト命令に応じて、ディスクアレイ装置において特に２つのＨＤＤ３０｛ドライブＡ，ドライブＢ｝に対するデータのライトを行う場合について示す。
【０１０５】
実施の形態１では、特殊動作として、コントローラ側物理リンク４０において、複数（特に２台）のＨＤＤ３０に対する転送データを対象として、前記ＡＬＩＧＮプリミティブの挿入は行わずに、多重化して転送し、複数のＨＤＤ側物理リンク５０において分散、すなわち並列的なデータ転送を行う。特に、エクスパンダ２０に接続された、物理リンクレートが同じになるＨＤＤ３０を多重化転送の対象とする。実施の形態１での多重化転送は、コントローラ側物理リンク４０において単純に単一あるいは複数の系統のデータを順に送信するものである。当該特殊動作に関して、コントローラ１０は特別なデータ操作を行わず、エクスパンダ２０はデータ操作として複数（２台）のＨＤＤ３０へのデータの分散のためのデータ分離／統合処理を行う。特にエクスパンダ２０は、複数（２台）のＨＤＤ３０との間で、ストライプ単位でデータを分離して分散する。本図は特に２台のＨＤＤ３０を組にしてそれを対象に二重化転送を行う場合を示すもので、ＨＤＤ３０の組に対しデータをストライピング（分割）して記憶するＲＡＩＤ方式に対応したものである。
【０１０６】
図９で、ホストからのライト要求時、コントローラ１０（特にチャネル制御部１３及びデータコントローラ１４）は、キャッシュメモリ１５に、ホストからのライトデータ｛データＡ、データＢ｝をそのままの状態で一時的に保持する。例えば、データＡ、データＢは、各ＨＤＤ３０へのストライピングデータである。
【０１０７】
コントローラ１０（特にデータコントローラ１４）は、二重化転送対象とする、２台のＨＤＤ３０に対するライトデータ（Ａ，Ｂ）に関して、各ＨＤＤ３０にライトコマンドを発行するのではなく、エクスパンダ２０に対して二重化転送を指示するライトコマンドを特殊コマンドとして発行する。当該特殊コマンドは、ターゲットの各ＨＤＤ３０へ発行されるライトコマンドを作成するための複製元となる。コントローラ１０は、当該特殊コマンドを、その宛先にエクスパンダアドレスを指定して発行する。コントローラ１０は、エクスパンダ２０に対し、物理リンク４０の物理ポートで、前記特殊コマンド、データＡ，Ｂを、順に転送する。例えばデータＡがｎワードからなるとき、その転送処理時間がｎｔである。なおコマンドは複数ワードから成るが、図中では簡単のために１ワードの大きさで略して示す。
【０１０８】
エクスパンダ２０は、コントローラ１０側からの特殊コマンドに基づき、コントローラ１０とＨＤＤ３０との間の接続において特殊動作を行う。エクスパンダ２０は、コントローラ１０側から前記特殊コマンド及びデータＡ，Ｂを順に受信する。この際、エクスパンダ２０は、バッファに前記特殊コマンド及びデータＡ，Ｂをバッファリングする。エクスパンダ２０は、データ分離／統合回路２７での処理を通じて、前記特殊コマンドを複製して、エクスパンダ２０内に有するアドレステーブルにより宛先等のアドレスの変換を行って、ターゲットとなる各ＨＤＤ３０にライトコマンド及びライトデータを配信する。エクスパンダ２０は、前記特殊コマンドを複製して、前記アドレス変換により宛先アドレスをターゲットＨＤＤのＳＡＳアドレスに変えることにより、各ＨＤＤ３０に対するライトコマンドを作成する。エクスパンダ２０は、２つのＨＤＤ側物理リンク５０で、前記ライトコマンド及びライトデータをＨＤＤ３０に対して転送する。ＨＤＤ側物理リンク５０では１ワード単位のデータに対応して２ｔの転送処理時間を要する。各ＨＤＤ３０は、ＨＤＤ側物理リンク５０で受信したライトコマンドに基づきライトデータをディスクに記憶する。
【０１０９】
ホストからのＨＤＤ３０に対するデータのリード時は、上記ライト時と逆の流れの処理になる。すなわち、エクスパンダ２０は、二重化転送対象である２台のＨＤＤ３０から並列的にデータをストライプ単位でリードし、データ分離／統合回路２７での処理を通じて各リードデータを統合して多重化データとしてコントローラ側物理リンク４０で転送する。コントローラ１０は、エクスパンダ２０からの転送データをデータ分離／統合回路１７により分離してホストに対するデータとする。
【０１１０】
なお図中に示すように、上記特殊動作において、エクスパンダ２０は、前記各ＨＤＤ３０にコマンド及びデータを送出する際、前記特殊コマンドの複製により、ドライブＢに対するコマンドの送信については、ドライブＡに対するコマンドの送信と同時に実行できる。しかしながら、エクスパンダ２０において、ドライブＡに対するデータＡの転送が終了するまでの時間（ｎｔ）は、コントローラ１０側からデータＢが到達しないため、ドライブＢへのデータ転送の処理を待たせることとなる。
【０１１１】
また本構成ではコントローラ１０側のレートがＨＤＤ３０側より高速であるため、エクスパンダ２０にデータを一時的に蓄積するための比較的大きな容量のバッファが必要となる。但しコントローラ側物理リンク４０におけるバス占有時間は前提技術に対して単純比較で１／２（半分）となり、トラフィックが軽減され処理効率が向上する。これはライト時だけでなくリード時も同様である。コントローラ１０でディスクのベリファイや読み捨て動作をホストのコマンド要求に対する応答動作と同時に実行しているような場合において、トラフィック軽減が可能なことから、前提技術に比べてホスト要求の実行性能を著しく改善することが可能である。なお前記読み捨て動作は、コントローラ１０がＨＤＤ３０からデータをリードしてチェックし、ホストにはデータを返さない動作である。
【０１１２】
（実施の形態２）
次に、図１０（ａ），（ｂ）は、実施の形態２におけるディスクアレイ装置での特殊処理のモデルを表わす説明図である。（ａ）は、コントローラ１０、エクスパンダ２０、及びＨＤＤ３０の間における、処理及びデータの流れを示している。（ｂ）は、コントローラ１０と各ＨＤＤ３０における入出力データと時間の関係を示している。コントローラ側物理リンク４０のレートは３．０Ｇｂｐｓ、ＨＤＤ側物理リンク５０のレートは１．５Ｇｂｐｓであり、レート比率が２倍の場合である。また、ホストからのライト命令に応じてディスクアレイ装置においてＨＤＤ３０｛ドライブＡ，ドライブＢ｝に対するデータのライトを行う場合について示す。
【０１１３】
実施の形態２は、実施の形態１を変形したものであり、特殊動作として、複数（特に２台）のＨＤＤ３０をセットにしたＲＡＩＤ方式に対応した多重化転送を行う。コントローラ側物理リンク４０で転送データを多重化して転送する。エクスパンダ２０に接続された物理リンクレートが同じになる複数のＨＤＤ３０を多重化転送対象として、エクスパンダ２０により１ワード単位で複数のＨＤＤ側物理リンク５０における分散を行う。実施の形態２での多重化転送は、コントローラ側物理リンク４０において単純にデータを順に送信するものである。当該特殊動作に関して、コントローラ１０は特別なデータ操作を行わず、エクスパンダ２０はデータ操作として複数（２台）のＨＤＤ３０へのワード単位でのデータの分散を行う。本図は特に二重化転送を行う場合を示し、低速側の２台のＨＤＤ３０を組にしてデータを分散して記憶するＲＡＩＤ方式に対応した処理である。
【０１１４】
図１０（ａ）で、ライト要求時、コントローラ１０は、キャッシュメモリ１５に、ホストからのライトデータをそのままの状態で一時的に保持する。当該ライトデータは、ライト先となるＨＤＤ３０のセットに１ワード単位で交互に分散して記録されるもので、どちらか一方のＨＤＤ３０のデータとしては特に定めない。
【０１１５】
コントローラ１０は、多重化（二重化）対象とするライトデータに関して、エクスパンダ２０に対して多重化転送を指示する特殊コマンドを発行する。当該特殊コマンドは、複数のＨＤＤ３０に配信するコマンドを作成するための複製元となる。コントローラ１０は、当該特殊コマンドを、宛先にエクスパンダアドレスを指定して発行する。また、コントローラ１０は、特殊コマンドの物理ポート領域で、多重化転送の対象となる物理ポート番号などを指定する。コントローラ１０は、高速側物理リンク４０で、エクスパンダ２０に対し、前記特殊コマンド及び多重化データを、順に転送する。本図では、多重化データについて、１ワード単位のデータシーケンス｛Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，Ｇ，Ｈ，……，Ｘ，Ｙ，……｝として示す。
【０１１６】
エクスパンダ２０は、コントローラ１０側から前記特殊コマンド及び多重化データを順に受信して、データ分離／統合回路２７により多重化データの分離を行う。エクスパンダ２０は、特殊コマンドを複製し、アドレステーブルによりアドレス変換を行って、ターゲットとなる各ＨＤＤ３０にライトコマンド及び１ワード単位に分離されたライトデータを配信する。また、エクスパンダ２０は、特殊コマンド内に含まれる物理ポート情報に対応して指定の物理ポートで分散を行う。エクスパンダ２０は、複数（２つ）の低速側の物理リンク５０で、前記ライトコマンド及び分離されたライトデータをＨＤＤ３０に対して転送する。例えば、ドライブＡにコマンドデータ、ライトデータ｛Ａ，Ｃ，……｝が順に送信され、ドライブＢにコマンドデータ、ライトデータ｛Ｂ，Ｄ，……｝が順に送信される。各ＨＤＤ３０は、受信したライトコマンドに基づき、前記分離されたライトデータをディスクに記憶する。
【０１１７】
ホストからのＨＤＤ３０に対するデータのリード時は、上記ライト時と逆の流れの処理になる。すなわち、エクスパンダ２０は、多重化対象である複数（２台）のＨＤＤ３０からデータをワード単位でリードし、リードデータを統合して多重化データとしてコントローラ１０側に転送する。コントローラ１０は、エクスパンダ２０からの転送データを分離してホストに対するデータとする。
【０１１８】
図１０（ｂ）に示すように、入出力データと時間の関係は、コントローラ１０側からエクスパンダ２０に対して前記ワード単位のデータ｛Ａ，Ｂ，Ｃ，Ｄ，……｝が順に送信された場合において、転送遅延時間を除いて、同タイミングでドライブＡにデータ｛Ａ，Ｃ，Ｅ，Ｇ，……｝のように対応して記憶される。この処理とｔの時間の遅れのタイミングでドライブＢにデータ｛Ｂ，Ｄ，Ｆ，Ｈ，……｝のように対応して記憶される。
【０１１９】
実施の形態２では、実施の形態１とは異なり、ＨＤＤ３０へのデータ転送に伴う処理待ち時間（前記ｎｔ）が不要となるため、その分効率がよい。また「コントローラ側のデータ転送速度（３．０Ｇｂｐｓ）＝ドライブＡ側のデータ転送速度（１．５Ｇｂｐｓ）＋ドライブＢ側のデータ転送速度（１．５Ｇｂｐｓ）」の関係となり、速度調節用バッファが原理的には不要となるため、必要最小限の構成で済む利点がある。なお対象とする複数のＨＤＤ３０側のレートがそれぞれ異なる場合は、エクスパンダ２０に速度調節用バッファ等が必要になる。また、リード／ライトデータに限らず各ＨＤＤ３０へのコマンドについても本実施の形態２での処理で分離／統合して多重化転送することが可能である。
【０１２０】
また物理リンクレートにおける３．０Ｇｂｐｓと１．５Ｇｂｐｓの組み合わせによる二重化転送に限らず、コントローラ１０側のレートが６．０Ｇｂｐｓの場合にＨＤＤ３０側のレートとして４台の１．５ＧｂｐｓのレートのＨＤＤ３０に対する四重化転送などが同様に可能である。この場合、特殊コマンドの物理ポート指定領域で、四重化転送の対象となる４つの物理ポートを指定する。
【０１２１】
実施の形態２での特殊処理は、すべてのＲＡＩＤタイプに適用可能で、ＲＡＩＤレベルとして特に｛０，３，４，５｝で適用可能である。この各ＲＡＩＤレベルに適用した場合のコントローラ１０の負荷は｛中，小，中，中｝となる。ＲＡＩＤ３のとき特に負荷が小さい。実施の形態２でＨＤＤ３０側のレートが低速（１．５Ｇｂｐｓ）で二重化転送を行う場合において、前提技術（ＡＬＩＧＮ挿入を行う構成）と比較した性能比は、ＨＤＤが高速（３．０Ｇｂｐｓ）の場合と単純比較した場合に１．０（同一性能）、ＨＤＤが同速（１．５Ｇｂｐｓ）の場合と単純比較した場合に２．０（２倍の性能）である。同様に、実施の形態２でＨＤＤ３０側のレートが低速で四重化転送を行う場合において、前提技術との性能比は、ＨＤＤが高速の場合と比較して１．０、ＨＤＤが同速の場合と比較して４．０である。
【０１２２】
次に、図１１（ａ），（ｂ）は、実施の形態２での特殊動作を実際のＲＡＩＤ方式に応用する場合の設定について示す説明図である。（ａ）は、実施の形態２での特殊動作に対応したＲＡＩＤグループについて示す。（ｂ）は、前記ＲＡＩＤグループについての設定画面及び設定例について示す。
【０１２３】
図１１（ａ）で、上側に示すように、ディスクアレイ装置において、まず単純に物理的なＨＤＤ３０を複数台、例えば２台組み合わせて、この物理ＨＤＤセット（組）により、容量およびデータ転送速度が複数倍（２倍）となる仮想ＨＤＤを作成（設定）する。仮想ＨＤＤを構成する物理ＨＤＤセットのＨＤＤ台数は、コントローラ１０側とＨＤＤ３０側との物理リンクのレート比などのシステム構成に基づき決定する。必要に応じて複数の仮想ＨＤＤを作成する。そして、下側に示すように、作成した１つ以上の仮想ＨＤＤ上にＲＡＩＤグループを構築する。例えば複数の仮想ＨＤＤ｛＃０〜＃ｎ｝上に１つのＲＡＩＤグループを設定する。この仮想ＨＤＤを用いた設定方式により、すべてのＲＡＩＤ方式に対応することが可能である。上記設定方式を用いた処理形態はシンプルなため、エクスパンダ２０側のみ回路追加すればよく、小規模回路で実現が可能である。またコントローラ１０側では特別なデータ操作は必要無く、データ位置および対象ＨＤＤ３０の管理をソフトウェア的に行うだけでよい。
【０１２４】
図１１（ｂ）で、ディスクアレイ装置のユーザは、ディスクアレイ装置に接続される情報処理装置３００や保守装置などに備えたソフトウェア上で入力操作を行うことで、前記ＲＡＩＤグループ等についての設定を行う。上側は、エクスパンダ２０に接続されている複数の物理的なＨＤＤ３０により物理ＨＤＤセットを構成した例を示す。下側は、物理ＨＤＤセットの構成に対応して仮想ＨＤＤを構成した例を示す。ＲＡＩＤグループ等についての設定手順は、以下のようになる。ユーザは、まず、利用可能な複数のＨＤＤ３０のうち、物理リンクレート比などに応じて任意の複数台のＨＤＤ３０を選択して仮想ＨＤＤへの割り当てを行う。例えば物理ＨＤＤ＃０と＃１によるセットで１つの仮想ＨＤＤ＃０が構成される。同様に、必要な分だけ仮想ＨＤＤの設定を繰り返して、複数の仮想ＨＤＤを構成する。例えば物理ＨＤＤ＃０〜＃１１の中から任意に用いて同様に仮想ＨＤＤへの割り当てを行い、全部で６つの仮想ＨＤＤ＃０〜＃５が構成される。次に、構成済みの仮想ＨＤＤから任意に組み合わせてその上にＲＡＩＤグループを設定する。またあるいは、構成済みの仮想ＨＤＤから任意をスペア（スペアＨＤＤ）として割り当てる。例えば５つの仮想ＨＤＤ＃０〜＃４を用いてその上にＲＡＩＤグループを作成し、また１つの仮想ＨＤＤ＃５をスペアＨＤＤに割り当てる。次に、上記手順で設定したＲＡＩＤグループを、論理ユニット（ＬＵ）や論理ボリューム等へ割り当てる。例えば前記仮想ＨＤＤ＃０〜＃４上のＲＡＩＤグループについて、ＲＡＩＤレベルをＲＡＩＤ５、ＬＵ番号をＬＵ０として論理ユニットへの割り当てを行う。
【０１２５】
ディスクアレイ装置は、上記設定で作成されたＲＡＩＤグループを対象として実施の形態２の特殊動作を実行する。前記図１０に示すドライブＡ，Ｂに対する多重化転送処理例が１つの仮想ＨＤＤに対する処理に対応する。また例えば、コントローラ１０側の物理リンクレートが６．０Ｇｂｐｓの場合には、ＨＤＤ３０側の物理リンクレートが１．５Ｇｂｐｓの４台を組み合わせて仮想ＨＤＤを構成する。なお、前記ＲＡＩＤグループを構成するＨＤＤ数が奇数の場合など、前記仮想ＨＤＤとなる物理ＨＤＤセットが組めない最後の１台のＨＤＤ３０については、従来方式で処理するか、あるいはダミーデータとの混合を行って仮想ＨＤＤを構成する処理形態などとする。この場合に関しては、前述したような性能向上効果よりは低い効果となる。
【０１２６】
図１２は、実施の形態２での特殊動作を、ディスクアレイ装置の内部でのデータコピー動作へ応用する場合の処理について示す説明図である。データバックアップ等のために行われる、ホストを介さないディスクアレイ装置内部でのデータコピー動作（以下、内部データコピーと称する）に、実施の形態２の特殊動作を使用可能である。
【０１２７】
内部データコピー実行時、コントローラ１０は、前記多重化転送を使用して、エクスパンダ２０を介してコピー元データを有するＨＤＤグループ（例えばＨＤＤグループＡ）からコピー元データである複数のデータ（例えばＡ〜Ｄ）をリードする。そして、コントローラ１０は、前記多重化転送を使用して、エクスパンダ２０を介してコピー先データを格納するＨＤＤグループ（例えばＨＤＤグループＢ）へ、前記リードした複数のデータ（Ａ〜Ｄ）をライトする。コントローラ側物理リンク４０においてコピーデータが多重化転送され、複数のＨＤＤ側物理リンク５０において分散される。これにより、内部データコピーにおいてもそのリード／ライトの動作ごとに高速化が実現される。
【０１２８】
実施の形態２での特殊処理を内部データコピーに使用した処理は、ＲＡＩＤレベルとして｛０，１，３，４，５，０＋１，３＋１，４＋１，５＋１｝で適用可能である。この各ＲＡＩＤレベルに適用した場合のコントローラ１０の負荷は小となる。実施の形態２でＨＤＤ３０側のレートが低速で二重化転送を使用して内部データコピーを行う場合において、前提技術との性能比は、ＨＤＤが高速の場合と比較して１．０、ＨＤＤが同速の場合と比較して２．０である。
【０１２９】
（実施の形態３）
次に、図１３（ａ），（ｂ）は、実施の形態３におけるディスクアレイ装置での特殊処理のモデルを表わす説明図である。（ａ）は、コントローラ１０、エクスパンダ２０、及びＨＤＤ３０の間における、処理及びデータの流れを示している。（ｂ）は、コントローラ１０と各ＨＤＤ３０における入出力データと時間の関係を示している。コントローラ側物理リンク４０のレートは３．０Ｇｂｐｓ、ＨＤＤ側物理リンク５０のレートは１．５Ｇｂｐｓであり、レート比率が２倍の場合である。また、ホストからのライト命令に応じてディスクアレイ装置においてＨＤＤ３０｛ドライブＡ，ドライブＢ｝に対するデータのライトを行う場合について示す。
【０１３０】
実施の形態３は、実施の形態２を応用したものであり、特殊動作として、コントローラ１０側で複数系統のデータをあらかじめ整列・並び替え等することで、物理的なＨＤＤ３０単位でのＲＡＩＤ構成及び制御を行う。同一ＲＡＩＤグループ内の任意のＨＤＤ３０をセットにして多重化転送を行う。コントローラ側物理リンク４０で転送データを多重化して転送する。実施の形態３での多重化転送は、コントローラ側物理リンク４０において整列データを送信するものである。エクスパンダ２０により１ワード単位で複数のＨＤＤ側物理リンク５０における分散を行う。当該特殊動作に関して、コントローラ１０はデータ操作としてＲＡＩＤ構成に対応したデータ整列を行い、エクスパンダ２０はデータ操作として複数（２台）のＨＤＤ３０へのワード単位でのデータの分散を行う。本図は特に二重化転送を行う場合を示す。
【０１３１】
図１３（ａ）で、ライト要求時、コントローラ１０は、キャッシュメモリ１５に、ホストからのライトデータ｛データＡ、データＢ｝をそのままの状態で一時的に保持する。データＡのライト先はドライブＡ、データＢのライト先はドライブＢである。データＡ，Ｂのワード単位のデータシーケンスは、それぞれ｛Ａ０，Ａ１，……，Ａｎ｝、｛Ｂ０，Ｂ１，……，Ｂｎ｝とする。
【０１３２】
コントローラ１０は、データ分離／統合回路１７により、多重化（二重化）対象とする複数（２つ）のライトデータ（Ａ，Ｂ）に関して、対象ＨＤＤ３０のＲＡＩＤグループの構成に対応してワード単位でデータＡ，Ｂを整列する。整列したデータが｛Ａ０，Ｂ０，Ａ１，Ｂ１，……，Ａｎ，Ｂｎ｝となる。コントローラ１０は、前記実施の形態と同様に、エクスパンダ２０に対して多重化転送を指示する特殊コマンドを発行する。コントローラ１０は、高速側物理リンク４０で、エクスパンダ２０に対し、前記特殊コマンド及び多重化データを、順に転送する。多重化データは、整列データ｛Ａ０，Ｂ０，Ａ１，Ｂ１，……，Ａｎ，Ｂｎ，……｝である。
【０１３３】
エクスパンダ２０は、コントローラ１０側から前記特殊コマンド及び多重化データを順に受信して、データ分離／統合回路２７により多重化データの分離を行う。エクスパンダ２０は、特殊コマンドを複製し、アドレステーブルによりアドレス変換を行って、ターゲットとなる各ＨＤＤ３０にライトコマンド及び１ワード単位で分離されたライトデータを配信する。エクスパンダ２０は、複数（２つ）の低速側の物理リンク５０で、前記ライトコマンド及び分離されたライトデータをＨＤＤ３０に対して転送する。エクスパンダ２０での分散時、転送データはコントローラ１０側で整列済みであるので、そのまま指定の物理ポートで順に転送すればよい。ドライブＡに対してデータＡ、ドライブＢに対してデータＢが転送される。各ＨＤＤ３０は、受信したライトコマンドに基づき前記分離されたライトデータをディスクに記憶する。
【０１３４】
ホストからのＨＤＤ３０に対するデータのリード時は、上記ライト時と逆の流れの処理になる。すなわち、エクスパンダ２０は、多重化対象であるＲＡＩＤグループに対応した複数（２台）のＨＤＤ３０からデータをワード単位でリードし、統合してコントローラ１０側に転送する。コントローラ１０は、エクスパンダ２０からの転送データを整列してホストに対するデータとする。
【０１３５】
図１３（ｂ）に示すように、入出力データと時間の関係は、例えばコントローラ１０側から整列データ｛Ａ０，Ｂ０，Ａ１，Ｂ１，……｝が送信された場合において、転送遅延時間を除いて、同タイミングでドライブＡにデータ｛Ａ０，Ａ１，……｝が対応して記憶される。この処理とｔの時間の遅れでドライブＢにデータ｛Ｂ０，Ｂ１，……｝が対応して記憶される。
【０１３６】
実施の形態３では、前記仮想ＨＤＤを用いずに１台のＨＤＤ３０単位でＲＡＩＤ構成を組むことが可能であり、細かな調整が可能である。代わりに、コントローラ１０側にもハードウェア的な回路追加を要する。またＲＡＩＤ１のような二重書きを行う場合については本実施の形態３の処理を利用することでも可能であるが、より効率のよい方式については実施の形態６で述べる。
【０１３７】
次に、実施の形態３での特殊動作を実際のＲＡＩＤ方式に応用する場合について以下に示す。この場合、最初にＲＡＩＤグループに対応して複数のＨＤＤ３０を割り当て、そのうちの任意の２台をセットにして、コントローラ１０が多重化転送を実行する。この処理は、小さなサイズのデータを多く扱う｛ＲＡＩＤ４，５，０｝の方式に向いている。
【０１３８】
図１４（ａ）は、実施の形態３の特殊動作をＲＡＩＤ５に適用した場合の処理手順例を示す。ＨＤＤ３０として５つのＨＤＤ＃０〜＃４があり、これによりＲＡＩＤグループを構成しているとする。ＨＤＤ＃４が、パリティが格納される位置であるとする。まず、ホスト側からＨＤＤ＃０の位置にライト要求が発生したとする（手順１）。コントローラ１０は、ＨＤＤ＃１と＃２をセットにして前記多重化転送を使用して対応データをリードし（手順２）、次に、ＨＤＤ＃３を単体で対応データをリードする（手順３）。次に、コントローラ１０は、ＨＤＤ＃１〜＃３からリードした各データと前記ＨＤＤ＃０へのライト前データとからＸＯＲ演算により新パリティ（データＰ）を生成する（手順４）。次に、コントローラ１０は、ＨＤＤ＃０（データライト位置）と＃４（パリティライト位置）をセットにして前記多重化転送を使用して前記ライト前データとデータＰをライトする。上記手順によりデータ及びパリティのライトが完了する。
【０１３９】
図１４（ｂ）は、実施の形態３の特殊動作をＲＡＩＤ０に適用した場合の処理例を示す。ＨＤＤ３０として５つのＨＤＤ＃０〜＃４が有り、これによりＲＡＩＤグループを構成しているとする。まず、ホスト側からＨＤＤ＃０と＃１に跨ってライト要求が発生したとする（手順１）。コントローラ１０は、ＨＤＤ＃１と＃２をセットにして前記多重化転送を使用して対応データをリードする（手順２）。次に、コントローラ１０は、ＨＤＤ＃０，＃１からリードしたデータと前記ＨＤＤ＃０，＃１へのライトデータとをマージする（手順３）。次に、コントローラ１０は、前記マージしたデータを、ＨＤＤ＃０と＃１をセットにして前記多重化転送を使用してライトする（手順４）。上記手順によりデータのライトが完了する。なお、ライト対象のデータサイズがストライプサイズよりも小さい場合は、多重化転送を用いずに各ＨＤＤ３０に直接ライトする。
【０１４０】
また、図１５は、実施の形態３の特殊動作に対応したＲＡＩＤグループについての設定画面を示す。ディスクアレイ装置において、利用可能な複数の物理的なＨＤＤ３０から任意を組み合わせてＲＡＩＤグループを作成する。必要な分だけＲＡＩＤグループを作成する。そして、設定したＲＡＩＤグループについてＬＵ等への割り当てを行う。例えばＨＤＤ＃０〜＃５のセットでＲＡＩＤグループが構成され、ＲＡＩＤレベルをＲＡＩＤ５、ＬＵ番号をＬＵ０とする。またＨＤＤ＃６〜＃１１のセットでＲＡＩＤグループが構成され、ＲＡＩＤレベルをＲＡＩＤ０、ＬＵ番号をＬＵ１とする。
【０１４１】
実施の形態３で、前記設定に基づきＲＡＩＤ制御を行う場合、ＲＡＩＤ制御に対応して実行される多重化転送処理は、ディスクアレイ装置内部での自動的な処理なので、ユーザによる操作上は通常の利用時と変わらない。
【０１４２】
（実施の形態４）
次に、図１６（ａ），（ｂ）は、実施の形態４におけるディスクアレイ装置での特殊処理のモデルを表わす説明図である。（ａ）は、コントローラ１０、エクスパンダ２０、及びＨＤＤ３０の間における、処理及びデータの流れを示している。（ｂ）は、コントローラ１０と各ＨＤＤ３０における入出力データと時間の関係を示している。コントローラ側物理リンク４０のレートは３．０Ｇｂｐｓ、ＨＤＤ側物理リンク５０のレートは１．５Ｇｂｐｓであり、レート比率が２倍の場合である。また、ホストからのライト命令に応じてディスクアレイ装置において３台のＨＤＤ３０｛ドライブＡ，ドライブＢ，ドライブＣ｝に対するデータのライトを行う場合について示す。
【０１４３】
実施の形態４は、実施の形態２を応用したものであり、実施の形態３の変形である。１台のＨＤＤ３０単位で構成を組むことが可能で、細かな調整が可能であるのは実施の形態３と同様である。実施の形態４では、特殊動作として、ＲＡＩＤ３に特化した方式で、３台以上のＨＤＤ３０をセットにして多重化転送を行い、コントローラ１０側でデータ整列は行わないが一定間隔でのパリティ挿入処理などのパリティ処理を行う。コントローラ側物理リンク４０でパリティデータを含む転送データを多重化して転送する。実施の形態４での多重化転送は、コントローラ側物理リンク４０においてパリティ付きデータを順に送信するものである。エクスパンダ２０により１ワード単位で３つ以上のＨＤＤ側物理リンク５０における分散を行う。当該特殊動作に関して、コントローラ１０はデータ操作としてパリティ処理（ライト時のパリティ生成・挿入、リード時のパリティデータによるベリファイ・自動データ復元やパリティ除去など）を行い、エクスパンダ２０はデータ操作として３台以上のＨＤＤ３０へのワード単位でのデータの分散を行う。本図は特に、「２台のデータ格納用ＨＤＤ＋１台のパリティ格納用ＨＤＤ」を対象として三重化転送を行う場合を示し、低速側のＲＡＩＤグループを構成する３台のＨＤＤ３０をセットにしてデータ及びパリティを分散して記憶する。
【０１４４】
図１６（ａ）で、ライト要求時、コントローラ１０は、キャッシュメモリ１５に、ホストからのライトデータをそのままの状態で一時的に保持する。当該ライトデータは、ライト先となるＨＤＤ３０のセットに分散して記録されるもので、いずれかのＨＤＤ３０のデータとしては特に定めない。
コントローラ１０は、データ分離／統合回路１７の処理を通じて、多重化対象とするライトデータに関して、対象のＲＡＩＤグループの構成に対応してパリティ生成・挿入処理を行う。例えば、対象ライトデータにおいてワード単位のデータシーケンスが｛Ａ，Ｂ，Ｃ，Ｄ，……｝とする。コントローラ１０は、３台のＨＤＤ３０に対するＲＡＩＤ３の制御に対応して、例えば２ワード（データＡ，Ｂ）に対して１ワード（Ｐ０）の間隔でパリティを生成・挿入する演算を行う。
【０１４５】
コントローラ１０は、前記実施の形態と同様に、エクスパンダ２０に対して多重化転送を指示する特殊コマンドを発行する。コントローラ１０は、高速側の物理リンク４０で、エクスパンダ２０に対し、前記特殊コマンド及び多重化データを、順に転送する。多重化データは、パリティ付きデータであり、例えば｛Ａ，Ｂ，Ｐ０，Ｃ，Ｄ，Ｐ１，Ｅ，Ｆ，Ｐ２，……｝のようになる。
【０１４６】
エクスパンダ２０は、コントローラ１０側から前記特殊コマンド及び多重化データを順に受信して、データ分離／統合回路２７により多重化データの分離を行う。エクスパンダ２０は、コントローラ１０側から物理ポートを通じて特殊コマンド及びパリティ付きデータを速度調節用バッファに受信する。エクスパンダ２０は、特殊コマンドを複製し、アドレステーブルによりアドレス変換を行って、ターゲットとなる各ＨＤＤ３０にライトコマンド及び１ワード単位で分離されたライトデータを配信する。エクスパンダ２０は、３つの低速側の物理リンク５０で、前記ライトコマンド及び分離されたライトデータをＨＤＤ３０に対して転送する。エクスパンダ２０での分散時、転送データは分散に対応してコントローラ１０側でパリティ処理済みであるので、そのまま指定の物理ポートで順に転送すればよい。例えばデータ格納用となるドライブＡ，Ｂに対してデータ（非パリティデータ）が、パリティ格納用となるドライブＣに対してパリティデータがそれぞれ転送される。各ＨＤＤ３０は、受信したライトコマンドに基づき前記分離されたライトデータをディスクに記憶する。
【０１４７】
ホストからのＨＤＤ３０に対するデータのリード時は、上記ライト時と逆の流れの処理になる。すなわち、エクスパンダ２０は、多重化対象であるＲＡＩＤグループに対応した３台以上のＨＤＤ３０からデータをワード単位でリードし、統合してコントローラ１０側に転送する。コントローラ１０は、エクスパンダ２０からの転送データについて、パリティデータを用いてベリファイ・自動データ復元やパリティ除去処理などしてからホストに対するデータとする。
【０１４８】
例えばリード時におけるパリティデータを用いた自動データ復元処理では、コントローラ１０は、前記ＲＡＩＤグループ内のＨＤＤ３０において障害データがある場合に、前記ＲＡＩＤグループ内の他ＨＤＤ３０のデータを用いてＸＯＲ演算処理してデータ復元する。また例えば、パリティデータを用いたスペアＨＤＤへの自動データ復元処理では、コントローラ１０は、前記ＲＡＩＤグループ内のＨＤＤ３０において障害データがある場合に、同様に前記ＲＡＩＤグループ内の他データを用いてデータ復元し、復元したデータをエクスパンダ２０を介してスペアＨＤＤにライトする。
【０１４９】
図１６（ｂ）に示すように、入出力データと時間の関係は、コントローラ１０側からエクスパンダ２０に対して前記データ｛Ａ，Ｂ，Ｐ０，Ｃ，Ｄ，Ｐ１，……｝が順に送信された場合において、転送遅延時間を除いて、同タイミングでドライブＡにデータ｛Ａ，Ｃ，Ｅ，……｝のように対応して記憶される。この処理とｔの時間の遅れのタイミングでドライブＢにデータ｛Ｂ，Ｄ，Ｆ，……｝のように対応して記憶される。また更にｔの時間の遅れのタイミングでドライブＣにパリティデータ｛Ｐ０，Ｐ１，Ｐ２，……｝のように対応して記憶される。
【０１５０】
実施の形態４では、コントローラ１０側でパリティの生成を行うので、ＲＡＩＤグループ等の選択の自由度が大きい。またエクスパンダ２０の回路構成が比較的シンプルになる。また、コントローラ１０の負荷を小さくできるが、コントローラ１０側のレートよりも３台以上のＨＤＤ３０側におけるレートの総和の方が大きくなるため、前記速度調節用バッファが必要となる。データ転送効率の観点からは、コントローラ側の物理リンク４０におけるパスを増やす等の構成により、コントローラ１０側のレートと、ＨＤＤ３０側のレートの総和とが同速になるように構成すると、前記速度調節用バッファの容量を小さくできるのでより望ましい。また、「３台のデータ格納用ＨＤＤ＋１台のパリティ格納用ＨＤＤ」を対象として四重化転送を行う場合なども同様に可能である。また、パリティデータを格納するＨＤＤ３０（ドライブＣ）として、高速の３．０Ｇｂｐｓのレートに対応したＨＤＤを混在させる構成も可能である。
【０１５１】
（実施の形態５）
次に、図１７（ａ），（ｂ）は、実施の形態５におけるディスクアレイ装置での特殊処理のモデルを表わす説明図である。（ａ）は、コントローラ１０、エクスパンダ２０、及びＨＤＤ３０の間における、処理及びデータの流れを示している。（ｂ）は、コントローラ１０と各ＨＤＤ３０における入出力データと時間の関係を示している。コントローラ側物理リンク４０のレートは３．０Ｇｂｐｓ、ＨＤＤ側物理リンク５０のレートは１．５Ｇｂｐｓであり、レート比率が２倍の場合である。また、ホストからのライト命令に応じてディスクアレイ装置において３台のＨＤＤ３０｛ドライブＡ，ドライブＢ，ドライブＣ｝に対するデータのライトを行う場合について示す。
【０１５２】
実施の形態５は、実施の形態２の応用で実施の形態４の変形であり、実施の形態４でのコントローラ１０側でのパリティ処理をエクスパンダ２０側で行うようにしたものである。実施の形態５では、特殊動作として、同一ＲＡＩＤグループを構成する３台以上のＨＤＤ３０をセットにして多重化転送を行い、エクスパンダ２０でパリティ処理を行う。コントローラ側物理リンク４０で転送データを多重化して転送する。実施の形態５での多重化転送は、コントローラ側物理リンク４０において単純にデータを順に送信するものである。エクスパンダ２０により１ワード単位で３つ以上のＨＤＤ側物理リンク５０における分散を行う。当該特殊動作に関して、コントローラ１０は特別なデータ操作を行わず、エクスパンダ２０はデータ操作としてパリティ処理（前記ライト時のパリティ生成・挿入など）を行い、３台以上のＨＤＤ３０へのデータの分散を行う。本図は特にコントローラ側物理リンク４０では二重化転送を行い、ＨＤＤ側物理リンク５０で３台のＨＤＤ３０に並列して転送を行う場合を示し、低速側の３台のＨＤＤ３０をセットにしてデータとパリティを分散して記憶する。
【０１５３】
図１７（ａ）で、ライト要求時、コントローラ１０は、キャッシュメモリ１５に、ホストからのライトデータをそのままの状態で一時的に保持する。当該ライトデータは、ライト先となるＨＤＤ３０のセットに分散して記録されるもので、いずれかのＨＤＤ３０のデータとしては特に定めない。コントローラ１０は、多重化対象とするライトデータに関して、前記実施の形態と同様に、エクスパンダ２０に対して多重化転送を指示する特殊コマンドを発行する。コントローラ１０は、高速側の物理リンク４０で、エクスパンダ２０に対し、前記特殊コマンド及び多重化データを、順に転送する。多重化データについて、１ワード単位のデータシーケンス｛Ａ，Ｂ，Ｃ，Ｄ，……｝として示す。
【０１５４】
エクスパンダ２０は、コントローラ１０側から前記特殊コマンド及び多重化データを速度調節用バッファに順に受信して、データ分離／統合回路２７により多重化データの分離を行う。エクスパンダ２０は、特殊コマンドを複製し、アドレステーブルによりアドレス変換を行って、ターゲットとなる各ＨＤＤ３０にライトコマンド及び１ワード単位で分離されたライトデータを配信する。この際、エクスパンダ２０は、データ分離／統合回路２７により、対象ライトデータに関して、対象のＲＡＩＤグループの構成に対応してパリティ生成・挿入処理を行う。エクスパンダ２０は、例えば３台のＨＤＤ３０に対するＲＡＩＤ３の制御に対応して、例えば２ワード（データＡ，Ｂ）に対して１ワード（Ｐ（Ａ−Ｂ））の間隔でパリティを生成・挿入する演算を行う。
【０１５５】
エクスパンダ２０は、３つの低速側の物理リンク５０で、前記ライトコマンド及び分離されたライトデータをＨＤＤ３０に対して転送する。例えばデータ格納用となるドライブＡ，Ｂに対してデータ（非パリティデータ）が、パリティ格納用となるドライブＣに対してパリティデータがそれぞれ転送される。各ＨＤＤ３０は、受信したライトコマンドに基づき前記分離されたライトデータをディスクに記憶する。
【０１５６】
ホストからのＨＤＤ３０に対するデータのリード時は、上記ライト時と逆の流れの処理になる。すなわち、エクスパンダ２０は、多重化対象であるＲＡＩＤグループに対応した３台のＨＤＤ３０からデータをワード単位でリードしてパリティ処理し、統合してコントローラ１０側に転送する。コントローラ１０は、エクスパンダ２０からの転送データをホストに対するデータとする。実施の形態５では、エクスパンダ２０が主体でリード時の自動データ復元などを行う。
【０１５７】
図１７（ｂ）に示すように、入出力データと時間の関係は、コントローラ１０側からエクスパンダ２０に対してワード単位のデータ｛Ａ，Ｂ，Ｃ，Ｄ，……｝が順に送信された場合において、転送遅延時間を除いて、同タイミングでドライブＡにデータ｛Ａ，Ｃ，Ｅ，Ｇ，……｝のように対応して記憶される。この処理とｔの時間の遅れのタイミングでドライブＢにデータ｛Ｂ，Ｄ，Ｆ，……｝のように対応して記憶される。また更にｔの時間の遅れのタイミングでドライブＣにパリティデータ｛Ｐ（Ａ−Ｂ），Ｐ（Ｃ−Ｄ），Ｐ（Ｅ−Ｆ），……｝のように対応して記憶される。
【０１５８】
実施の形態５では、図１７に示すＨＤＤ数とレートの構成例の場合では、「コントローラ側のレート（３．０Ｇｂｐｓ）＝データ格納ＨＤＤのレートの総和（１．５Ｇｂｐｓ＋１．５Ｇｂｐｓ）」となる。ＲＡＩＤ３に対応した多重化転送を行う場合、コントローラ１０側では特別なデータ操作は行わないため、コントローラ１０の負荷は小さい。また、コントローラ１０側でデータ操作を行う方式（実施の形態３）と組み合わせれば、ＲＡＩＤ４を実現可能である。
【０１５９】
更に、エクスパンダ２０側での複数のＨＤＤ３０に対するパリティ分散機能の追加、もしくはコントローラ１０側でパリティディスクを切り替えるごとにライト対象ＨＤＤ３０の指定順を物理ポート指定により変更しながら前記特殊コマンドを発行する機能の追加などにより、その分処理は複雑になるがＲＡＩＤ５も実現可能である。但しＲＡＩＤグループ内のＨＤＤ数などに関する設定の自由度はあまり高くできない。当該設定に関しては構成に応じていくつかのパターンの中から選択して使用する等の形態となる。使用可能なパターンは限定されるが、最適化が容易なため高速となる。
【０１６０】
実施の形態５に関して、コントローラ１０側でのデータ操作との組み合わせによりＲＡＩＤ４やＲＡＩＤ５に対応した処理を行う場合について説明する。エクスパンダ２０の有する４つの物理ポート＃０〜＃３に対応して低速レート（１．５Ｇｂｐｓ）のＨＤＤ＃０〜＃３が接続される場合を例にする。ＨＤＤ３０に対するライト対象データとしてデータＡ，Ｂ，Ｃがあるとする。データＡ，Ｂ，Ｃのワード単位のシーケンスは、それぞれ、｛Ａ０，Ａ１，Ａ２，……｝、｛Ｂ０，Ｂ１，Ｂ２，……｝、｛Ｃ０，Ｃ１，Ｃ２，……｝とする。
【０１６１】
コントローラ１０は、ライト要求時、ターゲットのＨＤＤグループ（ＨＤＤ＃０〜＃３）に接続されるエクスパンダ２０に対し、転送先となる物理ポート番号を含む特殊コマンドを送信する。すなわち、宛先としてエクスパンダアドレス、物理ポート情報としてエクスパンダ２０の物理ポート番号＃０〜＃３の指定を含むライトコマンドを高速側の物理リンク４０に送出する。コントローラ１０は、物理リンク４０において、ターゲットのＨＤＤグループに対するライトデータＡ，Ｂ，Ｃを、｛Ａ０，Ｂ０，Ｃ０，Ａ１，Ｂ１，Ｃ１，Ａ２，Ｂ２，Ｃ２，……｝のような並びに整列して転送する。前記整列では、各データをストライピング単位（ワード単位）で交互に並べる。
【０１６２】
エクスパンダ２０は、前記コントローラ１０側からの転送データについて、受領コマンドにおける物理ポートの指定順に従って、各ＨＤＤ３０に対する物理ポートへとデータ（例えばＡ０，Ｂ０，Ｃ０）を分散する。そして、エクスパンダ２０は、前記受領コマンドで最後に指定された物理ポートに接続されるＨＤＤ３０（パリティディスク）に対しては、前記転送データから生成したパリティデータ（例えばＰ（Ａ０−Ｃ０））を転送する。
【０１６３】
エクスパンダ２０での前記ＨＤＤ３０へのデータ転送の際、各系統のデータ（Ａ，Ｂ，Ｃ）ごとに転送対象となる物理ポート指定順序を変更しなければＲＡＩＤ４方式で、各系統のデータのストライピング単位ごとに物理ポート指定順序を変更（シフト）すればＲＡＩＤ５方式で記録が可能である。ＲＡＩＤ５の場合の処理例としては、最初のタイミングで、４台のＨＤＤ（＃０，＃１，＃２，＃３）に対応してデータ（Ａ０，Ｂ０，Ｃ０，Ｐ（Ａ０−Ｃ０））が分散してライトされる。次のタイミングで、前記物理ポート指定のシフトにより、前記ＨＤＤ（＃０〜＃３）に対応してデータ（Ｐ（Ａ１−Ｃ１），Ａ１，Ｂ１，Ｃ１）が分散してライトされる。同様に次のタイミングでデータ（Ｃ２，Ｐ（Ａ２−Ｃ２），Ａ２，Ｂ２）が分散してライトされる。
【０１６４】
なお実施の形態５でのＲＡＩＤ制御では、ＲＡＩＤグループを構成するすべてのＨＤＤ３０にデータを書き込むようにする必要があるため、ストライプサイズを小さくすることや、ＲＡＩＤグループで余りが生じる部分については一旦データを読み出して新データを上書きした後に書き戻す処理などが必要になる。また、ＲＡＩＤ３方式であれば、前記コントローラ１０でのデータ整列は不要で、かつ前記コマンドにおける物理ポート指定順序を一定にすることで容易に実現可能である。
【０１６５】
また、実施の形態５では、エクスパンダ２０側でパリティ生成することにより、「コントローラ側のレート（３．０Ｇｂｐｓ）＜ＨＤＤ側のレートの和（１．５Ｇｂｐｓ×３＝４．５Ｇｂｐｓ）」となる。よって、ＲＡＩＤグループを構成するＨＤＤ３０（前記ドライブＡ〜Ｃ）として、コントローラ側のレートと同速（３．０Ｇｂｐｓ）のものを使用した場合でも性能向上の効果を得ることができる。
【０１６６】
実施の形態５に関して、リード時における、パリティを利用した自動データ復元について説明する。図１８は、リード時における、パリティを利用した自動データ復元及びスペアＨＤＤ等へのデータ復元についての説明図である。データリード時においては、コントローラ１０からエクスパンダ２０へのコマンドによりパリティディスク（パリティデータを格納する領域）の位置が明示されるので、ＲＡＩＤグループにおける１台のＨＤＤ３０に障害が発生している状態であっても、エクスパンダ２０内で復元したデータをコントローラ１０にリードデータとして送出可能である。このデータ復元には、ホストからのリード要求データの復元と、スペアＨＤＤや交換後ＨＤＤ等のＨＤＤ３０へのコピーバックデータの復元との二通りの使用方法がある。なおコピーバックは、故障等により障害状態となったＨＤＤ３０や交換対象となるＨＤＤ３０のデータを他のＨＤＤ３０へ移動して、その後にスペアＨＤＤや交換後ＨＤＤ等のＨＤＤ３０へとデータを戻す処理である。コントローラ１０は、データのリード／ライトのみ実行するだけでよいため、負荷が非常に小さい。
【０１６７】
例として、元データ（リード対象データ）のシーケンスを｛Ａ０，Ｂ０，Ｃ０，Ａ１，Ｂ１，Ｃ１，Ａ２，Ｂ２，Ｃ２，……｝とする。ライト時の処理により、ＲＡＩＤグループを構成するＨＤＤ３０（＃０〜＃３）に対して、データが｛Ａ０，Ｂ０，Ｃ０，Ｐ０｝のように分散して記憶されている。前記ＲＡＩＤ４の場合で、ＨＤＤ＃０にデータＡ｛Ａ０，Ａ１，Ａ２，……｝が記憶されている。他ＨＤＤ＃１〜＃３にも同様に各データＢ，Ｃ，Ｐ（パリティデータ）が記憶されている。
【０１６８】
ホストからのリード要求の場合、コントローラ１０からエクスパンダ２０に特殊コマンド（リードコマンド）が送信される。エクスパンダ２０は、受領コマンドを解釈して、ＨＤＤ＃０〜＃３からデータを並列的にリードする。このとき例えばＨＤＤ＃１が障害状態でありデータＢ｛Ｂ０，Ｂ１，Ｂ２，……｝がエラーとする。エクスパンダ２０は、障害状態でないＨＤＤ（＃０，＃２，＃３）のデータを用いてＸＯＲ演算することでデータＢ｛Ｂ０，Ｂ１，Ｂ２，……｝を復元する。例えば「Ａ０ｘｏｒＣ０ｘｏｒＰ０＝Ｂ０」である。エクスパンダ２０は、復元したデータ（データＢ）を前記リードしたデータと合わせて正常な元データにしてコントローラ１０に転送し、コントローラ１０はホストに応答として送信する。
【０１６９】
また、コピーバックデータの復元の場合、コントローラ１０は、前記エクスパンダ２０により復元したデータ（データＢ｛Ｂ０，Ｂ１，Ｂ２，……｝）をリードして、スペアＨＤＤや交換後ＨＤＤ等の１台のＨＤＤ＃ｎへコピーバックデータとしてライトする。コピーバックデータのライト先が１台のＨＤＤ＃ｎなので通常アクセスによりライトする。この場合、コントローラ１０側のレートの方がＨＤＤ３０側のレートより大きいため、例えばコマンドの発行間隔をコントローラ１０側で調節してＨＤＤ３０側の性能に合わせた転送処理を行う。コントローラ１０での調節によりホスト要求処理に対する余力を振り分けやすくなる。
【０１７０】
実施の形態５での特殊処理は、ＲＡＩＤレベルとして｛３，４，５｝で適用可能である。この各ＲＡＩＤレベルに適用した場合の、ライト時のパリティ処理におけるコントローラ１０の負荷は｛小，中，中｝となる。本実施の形態でＨＤＤ３０のレートが低速（１．５Ｇｂｐｓ）で「３台のデータ格納用ＨＤＤ＋１台のパリティ格納用ＨＤＤ」を対象として四重化転送を行う場合において、前提技術と比較した性能比は、ＨＤＤが高速の場合と比較して０．７５、ＨＤＤが同速の場合と比較して２．６７程度である。また、前記各ＲＡＩＤレベルに適用した場合の、リード時のパリティ処理におけるコントローラ１０の負荷は極小となる。また、前記四重化転送でリード時のパリティによる自動データ復元を行う場合において、前提技術と比較した性能比は、ＨＤＤが高速の場合と比較して３．０、ＨＤＤが同速の場合と比較して６．０である。また、前記スペアＨＤＤ（１台）へのデータ復元を行う場合は、通常アクセスとなり、前提技術と比較した性能比は、ＨＤＤが高速の場合と比較して０．５、ＨＤＤが同速の場合と比較して１．０である。
【０１７１】
（実施の形態６）
次に、図１９（ａ），（ｂ）は、実施の形態６におけるディスクアレイ装置での特殊処理のモデルを表わす説明図である。（ａ）は、コントローラ１０、エクスパンダ２０、及びＨＤＤ３０の間における、処理及びデータの流れを示している。（ｂ）は、コントローラ１０と各ＨＤＤ３０における入出力データと時間の関係を示している。コントローラ側物理リンク４０のレートは３．０Ｇｂｐｓ、ＨＤＤ側物理リンク５０のレートは１．５Ｇｂｐｓであり、レート比率が２倍の場合である。また、ホストからのライト命令に応じてディスクアレイ装置において２台のＨＤＤ３０｛ドライブＡ，ドライブＢ｝に対するデータのライトを行う場合について示す。
【０１７２】
実施の形態６では、特殊動作として、複数（特に２台）のＨＤＤ３０をセットにしてそれぞれに同一データをライトする多重書き（二重書き）を行う。コントローラ１０から発行する１回のコマンドでエクスパンダ２０により複数のＨＤＤ３０に同一データをライトする。同一ＲＡＩＤグループ内の、任意の２台以上のＨＤＤ３０をセットにして多重書き対象とし、複数の低速側の物理リンク５０で多重書きのためのデータの分散を行う。エクスパンダ２０に接続された物理リンクレートが同じになる複数のＨＤＤ３０を多重書き対象とする。エクスパンダ２０により例えば１ワード単位で複数のＨＤＤ側物理リンク５０における多重書きを行う。実施の形態２での多重化転送は、コントローラ側物理リンク４０において単純にデータを順に送信するものである。当該特殊動作に関して、コントローラ１０は特別なデータ操作を行わず、エクスパンダ２０はデータ操作として複数（２台）のＨＤＤ３０への多重書きのためのデータ複製を行う。本図は特に低速側の２台のＨＤＤ３０を組にして二重書きを行う場合を示す。
【０１７３】
図１９（ａ）で、ライト要求時、コントローラ１０は、キャッシュメモリ１５に、ホストからのライトデータをそのままの状態で一時的に保持する。コントローラ１０は、二重書き対象とするライトデータに関して、エクスパンダ２０に対して二重書きを指示する特殊コマンドを発行する。コントローラ１０は、高速側の物理リンク４０で、エクスパンダ２０に対し、前記特殊コマンド及びライトデータを、順に転送する。本図では、二重書き対象のライトデータについて、１ワード単位のデータシーケンス｛Ａ，Ｂ，Ｃ，Ｄ，……｝として示す。
【０１７４】
エクスパンダ２０は、コントローラ１０側から前記特殊コマンド及びライトデータを速度調節用バッファに順に受信して、データ分離／統合回路２７により二重書きのためのデータの分離を行う。エクスパンダ２０は、受領コマンド及びライトデータを必要な分複製する。エクスパンダ２０は、アドレステーブルによりアドレスの変換を行って、２つの低速側の物理リンク５０で、ターゲットとなる各ＨＤＤ３０にライトコマンド及び１ワード単位のライトデータを配信する。例えば、ドライブＡ，Ｂにそれぞれコマンドデータ、ライトデータ｛Ａ，Ｂ，Ｃ，Ｄ，……｝が順に送信される。各ＨＤＤ３０は、受信したライトコマンドに基づきライトデータをディスクに記憶する。
【０１７５】
ホストからのＨＤＤ３０に対するデータのリード時は、上記ライト時と逆の流れの処理になる。すなわち、エクスパンダ２０は、前記二重書き対象である２台のＨＤＤ３０からデータをリードし、正常なリードデータをコントローラ１０側に転送する。コントローラ１０は、エクスパンダ２０からの転送データをホストに対するデータとする。
【０１７６】
図１９（ｂ）に示すように、入出力データと時間の関係は、コントローラ１０側からエクスパンダ２０に対して前記ワード単位のデータ｛Ａ，Ｂ，Ｃ，Ｄ，……｝が順に送信された場合において、転送遅延時間を除いて、同タイミングでドライブＡ，Ｂにそれぞれデータ｛Ａ，Ｂ，Ｃ，Ｄ，……｝のように対応して記憶される。
【０１７７】
実施の形態６では、自動的にＲＡＩＤ１構成を実現でき、ＲＡＩＤ１方式におけるライト時のオーバヘッドを略ゼロにできるため、コントローラ１０の負担は通常のＲＡＩＤ１構成時よりも低い。コントローラ１０は、データのリード／ライトのみ実行するだけでよいため、負荷を非常に小さくできる。また、「コントローラ側のレート（３．０Ｇｂｐｓ）＝ＨＤＤ側のレートの総和（１．５Ｇｂｐｓ＋１．５Ｇｂｐｓ）」であるが、データ単位で比較すると、コントローラ側のレートの方が大きくなるため、エクスパンダ２０に速度調節用バッファが必要となる。あるいは当該レートの調節のためにコントローラ１０側でＡＬＩＧＮプリミティブを挿入する処理方法を採ってもよい。この場合はエクスパンダ２０に設けるバッファを小さくできるが、コントローラ１０側のデータ転送効率は低下する。また、多重書き対象のＨＤＤ３０としてコントローラ１０側と対応して高速のレート（３．０Ｇｂｐｓ）のものを使用可能である。コントローラ１０側とＨＤＤ３０側が同速になる場合は、エクスパンダ２０に設けるバッファを必要最小限にすることができる。
【０１７８】
また、二重書き対象となる２台のＨＤＤ３０は完全に等価のディスクとなるので、ディスクのセクタ毎にアドレスチェックのための冗長コード（チェックコード）を付加している場合において、どちら側のディスクかを確実に判別したいような場合には、以下の方法で対応可能である。まず、実施の形態２での処理を用いて、各ディスク用のデータを混合する方法がある。もしくは、エクスパンダ２０側で前記二重書き対象のディスク毎のチェックコードを生成し、ディスクへのデータへ一定間隔で挿入を行う方法がある。
【０１７９】
実施の形態６に関して、リード時における、前記多重書きを利用した自動データ復元について説明する。図２０は、リード時における、二重書きを利用した自動データ復元及びスペアＨＤＤ等へのデータ復元についての説明図である。
【０１８０】
データリード時においては、二重書きされているＨＤＤ３０における一方のＨＤＤ３０が障害状態であっても他方のＨＤＤ３０のデータにより、コントローラ１０へ応答のデータ転送が可能である。エクスパンダ２０で２台のＨＤＤ３０に対してアクセスされるため、コントローラ１０側では、ミラーＨＤＤへのアクセスを再実行する必要がなく、効率がよい。また、エクスパンダ２０側で２台のＨＤＤ３０からのデータの比較によるチェックも可能である。このデータ復元には、ホストからのリード要求データの復元と、スペアＨＤＤや交換後ＨＤＤ等のＨＤＤ３０へのコピーバックデータの復元との二通りの使用方法がある。
【０１８１】
例として、元データ（リード対象データ）をＡ｛Ａ０，Ａ１，Ａ２，Ａ３，Ａ４，……｝とする。ライト時の二重書き処理により、ミラーを構成する２台のＨＤＤ３０（＃０，＃１）に対してそれぞれデータＡが記憶されている。
【０１８２】
ホストからのリード要求の場合、コントローラ１０からエクスパンダ２０に特殊コマンド（リードコマンド）が送信される。エクスパンダ２０は、受領コマンドを解釈して、ＨＤＤ＃０，＃１からデータを並列的にリードする。このとき例えばＨＤＤ＃０が障害状態でありそのデータＡがエラーとする。エクスパンダ２０は、障害状態でない他方のＨＤＤ＃１からのリードデータをそのまま復元データとする。エクスパンダ２０は、復元データをコントローラ１０に転送し、コントローラ１０はホストに応答として送信する。
【０１８３】
また、コピーバックデータの復元の場合、コントローラ１０は、前記エクスパンダ２０により復元したデータ（データＡ）をリードして、スペアＨＤＤや交換後ＨＤＤ等の１台のＨＤＤ＃ｎへコピーバックデータとしてライトする。コピーバックデータのライト先が１台のＨＤＤ＃ｎなので通常アクセスによりライトする。前記実施の形態５の場合と同様に、コントローラ１０側で調節してＨＤＤ３０側の性能に合わせた転送処理を行う。
【０１８４】
実施の形態６での特殊処理は、ＲＡＩＤレベルとしてＲＡＩＤ１で適用可能である。ライト時の二重書き処理におけるコントローラ１０の負荷は極小となる。実施の形態６でＨＤＤ３０のレートが低速（１．５Ｇｂｐｓ）で２台のＨＤＤ３０を対象として二重書きを行う場合において、前提技術と比較した性能比は、ＨＤＤが高速の場合と比較して１．０、ＨＤＤが同速の場合と比較して２．０である。また、ミラーＨＤＤによる自動データ復元を行う場合は、コントローラ１０の負荷は通常アクセスと同等であり、前提技術と比較した性能比は、ＨＤＤが高速の場合と比較して０．５、ＨＤＤが同速の場合と比較して１．０である。
【０１８５】
（実施の形態７）
図２１（ａ），（ｂ）は、実施の形態７におけるディスクアレイ装置での特殊処理のモデルを表わす説明図である。（ａ）は、コントローラ１０、エクスパンダ２０、及びＨＤＤ３０の間における、処理及びデータの流れを示している。（ｂ）は、コントローラ１０と各ＨＤＤ３０における入出力データと時間の関係を示している。コントローラ側物理リンク４０のレートは３．０Ｇｂｐｓ、ＨＤＤ側物理リンク５０のレートは１．５Ｇｂｐｓであり、レート比率が２倍の場合である。また、ホストからのライト命令に応じてディスクアレイ装置において４台のＨＤＤ３０｛ドライブＡ，Ｂ，Ｃ，Ｄ｝に対するデータのライトを行う場合について示す。
【０１８６】
実施の形態７は、実施の形態６と実施の形態２を組み合わせた形態であり、それぞれの形態の特長を双方ともに有している。実施の形態７では、特殊動作として、複数のＨＤＤ３０をセットにしてデータを分離、分散して多重化転送を行うと共に、更にこの多重化転送で分散されるデータについて複数（特に２台）のＨＤＤ３０をセットにして多重書きを行う。実施の形態７での多重化転送は、コントローラ側物理リンク４０において単純にデータを順に送信するものである。当該特殊動作に関して、コントローラ１０は特別なデータ操作を行わず、エクスパンダ２０はデータ操作として多重書きのためのデータ複製と複数のＨＤＤ３０へのワード単位でのデータの分散を行う。本図は特に低速側の２台のＨＤＤ３０を組にして二重書きを行い、更に２台ずつのＨＤＤ３０の組に対して二重化転送を行う場合を示す。
【０１８７】
図２１（ａ）で、ライト要求時、コントローラ１０は、キャッシュメモリ１５に、ホストからのライトデータをそのままの状態で一時的に保持する。コントローラ１０は、特殊動作対象とするライトデータに関して、エクスパンダ２０に対して特殊コマンドを発行する。コントローラ１０は、高速側の物理リンク４０で、エクスパンダ２０に対し、前記特殊コマンド及びライトデータを、順に転送する。本図では、処理対象ライトデータについて、１ワード単位のデータシーケンス｛Ａ，Ｂ，Ｃ，Ｄ，……｝として示す。
【０１８８】
エクスパンダ２０は、コントローラ１０側から前記特殊コマンド及びライトデータを速度調節用バッファに順に受信して、データ分離／統合回路２７により二重書き及び二重化転送に対応したデータ分離を行う。エクスパンダ２０は、受領コマンド及びライトデータを必要な分複製する。エクスパンダ２０は、アドレステーブルによりアドレス変換を行って、４つの低速側の物理リンク５０で、ターゲットとなる各ＨＤＤ３０にライトコマンド及び１ワード単位のライトデータを配信する。例えば、ドライブＡ，Ｂにそれぞれコマンドデータ、ライトデータ｛Ａ，Ｃ，Ｅ，Ｇ，……｝が順に送信され、ドライブＣ，Ｄにそれぞれコマンドデータ、ライトデータ｛Ｂ，Ｄ，Ｆ，……｝が順に送信される。各ＨＤＤ３０は、受信したライトコマンドに基づきライトデータをディスクに記憶する。
【０１８９】
ホストからのＨＤＤ３０に対するデータのリード時は、上記ライト時と逆の流れの処理になる。すなわち、エクスパンダ２０は、前記二重書き及び二重化転送の対象である４台のＨＤＤ３０からデータをリードし、正常なリードデータを統合して多重化データとしてコントローラ１０側に転送する。コントローラ１０は、エクスパンダ２０からの転送データをホストに対するデータとする。
【０１９０】
図２１（ｂ）に示すように、入出力データと時間の関係は、コントローラ１０側からエクスパンダ２０に対してワード単位のデータ｛Ａ，Ｂ，Ｃ，Ｄ，……｝が順に送信された場合において、転送遅延時間を除いて、同タイミングでドライブＡ，Ｂにそれぞれデータ｛Ａ，Ｃ，Ｅ，Ｇ，……｝のように対応して記憶され、これとｔの時間の遅れのタイミングでドライブＣ，Ｄにそれぞれデータ｛Ｂ，Ｄ，Ｆ，……｝のように対応して記憶される。
【０１９１】
実施の形態７に関して、リード時における自動データ復元について説明する。図２２は、リード時における自動データ復元及びスペアＨＤＤ等へのデータ復元についての説明図である。
【０１９２】
データリード時においては、二重書きされているＨＤＤ３０における一方のＨＤＤ３０が障害状態であっても他方のＨＤＤ３０のデータにより、コントローラ１０へ応答のデータ転送が可能である。コントローラ１０側では、ミラーＨＤＤ（ミラーディスク）へのアクセスを再実行する必要がなく、効率がよい。また、エクスパンダ２０側で２台のＨＤＤ３０からのデータの比較によるチェックも可能である。このデータ復元には、ホストからのリード要求データの復元と、スペアＨＤＤや交換後ＨＤＤ等のＨＤＤ３０へのコピーバックデータの復元との二通りの使用方法がある。
【０１９３】
例として、元データ（リード対象データ）を、データＡ，Ｂの多重化データであるワード単位のデータシーケンス｛Ａ０，Ｂ０，Ａ１，Ｂ１，Ａ２，Ｂ２，……｝とする。ライト時の二重化転送及び二重書き処理により、２系統のミラーＨＤＤを構成する４台のＨＤＤ３０（＃０〜＃３）に対し、ミラーＨＤＤ（＃０，＃１）にデータＡ、ミラーＨＤＤ（＃２，＃３）にデータＢが記憶されている。
【０１９４】
ホストからのリード要求の場合、コントローラ１０からエクスパンダ２０に特殊コマンド（リードコマンド）が送信される。エクスパンダ２０は、受領コマンドを解釈して、ＨＤＤ（＃０〜＃３）からデータを並列的にリードする。このとき例えばＨＤＤ＃２が障害状態でありそのデータＢがエラーとする。エクスパンダ２０は、データＢに関しては障害状態でない他方のＨＤＤ＃３からのリードデータをそのまま復元データとする。エクスパンダ２０は、復元データをコントローラ１０に転送し、コントローラ１０はホストに応答として送信する。
【０１９５】
また、コピーバックデータの復元の場合、コントローラ１０は、前記エクスパンダ２０により復元したデータ（データＢ）をリードして、スペアＨＤＤや交換後ＨＤＤ等の１台のＨＤＤ＃ｎへコピーバックデータとしてライトする。コピーバックデータのライト先が１台のＨＤＤ＃ｎなので通常アクセスによりライトする。前記実施の形態５の場合と同様に、コントローラ１０側で調節してＨＤＤ３０側の性能に合わせた転送処理を行う。
【０１９６】
実施の形態７での特殊処理は、ＲＡＩＤレベルとして｛０＋１，３＋１，４＋１，５＋１｝で適用可能である。この各ＲＡＩＤレベルに適用した場合の、ライト時の二重化転送かつ二重書き処理におけるコントローラ１０の負荷は小となる。本実施の形態でＨＤＤ３０のレートが低速（１．５Ｇｂｐｓ）で４台のＨＤＤ３０を対象として二重化転送かつ二重書きを行う場合において、前提技術と比較した性能比は、ＨＤＤが高速の場合と比較して２．０、ＨＤＤが同速の場合と比較して４．０である。また、前記各ＲＡＩＤレベルで、リード時における自動データ復元を行う場合は、コントローラ１０の負荷は極小となり、前提技術と比較した性能比は、ＨＤＤが高速の場合と比較して１．０、ＨＤＤが同速の場合と比較して２．０である。また、前記スペアＨＤＤ（１台）へのデータ復元を行う場合、復元データのリード及びライトは通常アクセスと同等で、前記各ＲＡＩＤレベルでコントローラ１０の負荷は小となり、前提技術と比較した性能比は、ＨＤＤが高速の場合と比較して０．５、ＨＤＤが同速の場合と比較して２．０である。
【０１９７】
（実施の形態８）
次に、図２３（ａ），（ｂ）は、実施の形態８におけるディスクアレイ装置での特殊処理のモデルを表わす説明図である。（ａ）は、コントローラ１０、エクスパンダ２０、及びＨＤＤ３０の間における、処理及びデータの流れを示している。（ｂ）は、コントローラ１０と各ＨＤＤ３０における入出力データと時間の関係を示している。コントローラ側物理リンク４０のレートは３．０Ｇｂｐｓ、ＨＤＤ側物理リンク５０のレートは１．５Ｇｂｐｓであり、レート比率が２倍の場合である。また、ホストからのライト命令に応じてディスクアレイ装置において６台のＨＤＤ３０｛ドライブＡ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ｝に対するデータのライトを行う場合について示す。
【０１９８】
実施の形態８は、実施の形態５と実施の形態６を組み合わせた形態であり、それぞれの形態の特長を双方ともに有している。実施の形態８では、特殊動作として、複数のＨＤＤ３０を対象にして、エクスパンダ２０により、実施の形態５で示したパリティ処理と共に、実施の形態６で示した多重書き（特に二重書き）を行う。すなわち、同一ＲＡＩＤグループを構成する物理リンクレートが同一の６台以上のＨＤＤ３０を対象にして多重化転送を行い、データとパリティがそれぞれ多重書きされる。コントローラ１０から発行する１回のコマンドで、エクスパンダ２０により、転送データについて低速側の物理リンク５０で、パリティ処理を含めた複数（例えば３つ）のデータへの分離、分散を行うと共に、分散される各データについて多重書き（特に二重書き）を行う。コントローラ側物理リンク４０で転送データが多重化転送され、エクスパンダ２０により例えば１ワード単位で複数のＨＤＤ側物理リンク５０におけるデータの分散を行う。実施の形態８での多重化転送は、コントローラ側物理リンク４０において単純にデータを順に送信するものである。当該特殊動作に関して、コントローラ１０は特別なデータ操作を行わず、エクスパンダ２０はデータ操作としてデータの分散、パリティ処理、及びデータ複製を行い、合計で６台以上のＨＤＤ３０へのデータの分散を行う。本図は特に、ＨＤＤ側物理リンク５０で転送データを１ワード単位で２つに分離して更にパリティデータの挿入を合わせて３つに分散する三重化転送（二重化転送＋パリティ処理）と、各分散データを二重書きすることとを組み合わせた場合であり、合計で低速側の６台のＨＤＤ３０をセットにしてデータを分散して記憶する。
【０１９９】
実施の形態８では、特殊動作で使用される物理ポートが６つ以上必要となるため、前記図７に示す特殊コマンドの物理ポート指定領域で例えば６つの物理ポートを指定するために例えば以下のような形式を用いて指定を行う。コントローラ１０は、特殊コマンドで、当該「三重化転送＋二重書き」の処理を行うモードを指定すると共に、前記物理ポート指定領域における４つの物理ポート情報（物理ポートＮｏ．）の領域を用いて、特殊動作で使用対象となる６つの物理ポートのうち、３つの物理ポートを物理ポート番号で指定する。１つの物理ポート番号の指定により、その次の物理ポート番号も自動的に指定される形式とする。例えば、エクスパンダ２０において６つのドライブＡ〜Ｆに対応して６つの物理ポート＃０〜＃５を対象として指定したい場合、特殊コマンドで３つの物理ポート番号でドライブＡ，Ｃ，Ｅに対応した物理ポート＃０，＃２，＃４を指定する。物理ポート番号＃０の指定により、その次の物理ポート番号＃１に対応したドライブＢが自動的に指定される。その他にも、設定済みの物理ポートグループの番号を指定する形式や、連続する物理ポート範囲（例えば物理ポート＃０〜＃５）を２つの物理ポート番号で指定する形式などとしてもよい。
【０２００】
図２３（ａ）で、ライト要求時、コントローラ１０は、キャッシュメモリ１５に、ホストからのライトデータをそのままの状態で一時的に保持する。コントローラ１０は、処理対象ライトデータに関して、エクスパンダ２０に対して当該処理の指示に対応した特殊コマンドを発行する。コントローラ１０は、高速側の物理リンク４０で、エクスパンダ２０に対し、前記特殊コマンド及びライトデータを、順に転送する。本図では、処理対象のライトデータについて、１ワード単位のデータシーケンス｛Ａ，Ｂ，Ｃ，Ｄ，……｝として示す。
【０２０１】
エクスパンダ２０は、コントローラ１０側から前記特殊コマンド及びライトデータを速度調節用バッファに順に受信して、データ分離／統合回路２７により、２つのデータ及び１つのパリティデータを単位とした３つのデータへの分離と、それら各データの二重書きのためのデータ複製とで、合わせて６つのデータを単位としたデータの分散を行う。パリティ処理では例えば２ワードのデータＡ，ＢからＸＯＲ演算により１ワードのパリティデータＰ１＝Ｐ（Ａ−Ｂ）が生成される。エクスパンダ２０は、受領コマンド及びライトデータを必要な分複製する。エクスパンダ２０は、アドレステーブルによりアドレス変換を行って、６つの低速側の物理リンク５０で、ターゲットとなる各ＨＤＤ３０にライトコマンド及び１ワード単位のライトデータを配信する。例えば、ドライブＡ，Ｂに、コマンド及びライトデータ｛Ａ，Ｃ，……｝が、ドライブＣ，Ｄに、コマンド及びライトデータ｛Ｂ，Ｄ，……｝が、ドライブＥ，Ｆに、コマンド及びライトデータ｛Ｐ１，Ｐ２，……｝が、それぞれ順に送信される。各ＨＤＤ３０は、受信したライトコマンドに基づきライトデータをディスクに記憶する。
【０２０２】
ホストからのＨＤＤ３０に対するデータのリード時は、上記ライト時と逆の流れの処理になる。すなわち、エクスパンダ２０は、処理対象である６台のＨＤＤ３０からデータをリードしてパリティ処理し、正常なリードデータを統合して多重化データとしてコントローラ１０側に転送する。コントローラ１０は、エクスパンダ２０からの転送データをホストに対するデータとする。
【０２０３】
図２３（ｂ）に示すように、入出力データと時間の関係は、コントローラ１０側からエクスパンダ２０に対して前記データシーケンス｛Ａ，Ｂ，Ｃ，Ｄ，……｝が順に送信された場合において、転送遅延時間を除いて、同タイミングでドライブＡ，Ｂにそれぞれデータ｛Ａ，Ｃ，Ｅ，Ｇ，……｝のように対応して記憶される。これとｔの時間の遅れでドライブＣ，Ｄにそれぞれデータ｛Ｂ，Ｄ，Ｆ，……｝のように対応して記憶される。更にこれとｔの時間の遅れでドライブＥ，Ｆにそれぞれデータ｛Ｐ（Ａ−Ｂ）Ｐ（Ｃ−Ｄ），Ｐ（Ｅ−Ｆ），……｝のように対応して記憶される。なお、パリティを格納するＨＤＤ３０（ドライブＥ，Ｆ）については、コントローラ側物理リンク４０に合わせて高速（３．０Ｇｂｐｓ）に対応したものを使用可能である。
【０２０４】
実施の形態８に関して、リード時における自動データ復元について説明する。図２４（ａ），（ｂ）は、リード時における自動データ復元及びスペアＨＤＤ等へのデータ復元についての説明図である。
【０２０５】
データリード時においては、ＲＡＩＤグループ中の２台のＨＤＤ３０が障害状態等によりデータリードがエラーの場合であってもコントローラ１０側へデータ転送が可能である。コントローラ１０側では、ミラーＨＤＤへの再アクセスやパリティによるデータ復元を処理する必要がなく、効率がよい。このデータ復元には、ホストからのリード要求データの復元と、スペアＨＤＤや交換後ＨＤＤ等のＨＤＤ３０へのコピーバックデータの復元との二通りの使用方法がある。
【０２０６】
例として、元データ（リード対象データ）を、２系統のデータＡ，Ｂの多重化データであるワード単位のデータシーケンス｛Ａ０，Ｂ０，Ａ１，Ｂ１，Ａ２，Ｂ２，……｝とする。ライト時の三重化転送及び二重書き処理により、３系統のミラーＨＤＤを構成する６台のＨＤＤ３０（＃０〜＃５）に対し、ＨＤＤ（＃０，＃１）にデータＡ、ＨＤＤ（＃２，＃３）にデータＢ、ＨＤＤ（＃４，＃５）にパリティデータＰが記憶されている。
【０２０７】
図２４（ａ）に示すように、ホストからのリード要求の場合、前記実施の形態７等と同様に、エクスパンダ２０は、特殊コマンドを基づき、ＨＤＤ（＃０〜＃５）からデータを並列的にリードする。このとき、二重書きされている２台のＨＤＤ３０、例えばＨＤＤ（＃２，＃３）が障害状態でありそのデータＢ｛Ｂ０，Ｂ１，Ｂ２，……｝がエラーとする。この場合、エクスパンダ２０は、データＢに関してミラーデータを利用したデータ復元が不可能なので、ＲＡＩＤグループ中の他のＨＤＤ３０（＃０，＃４）のデータ（Ａ，Ｐ）を用いてＸＯＲ演算によりデータＢを復元する。エクスパンダ２０は、復元したデータＢを合わせた正常なリードデータをコントローラ１０に転送し、コントローラ１０はホストに応答として送信する。
【０２０８】
また、コピーバックデータの復元の場合、コントローラ１０は、前記エクスパンダ２０により復元したデータ（データＢ）をリードして、スペアＨＤＤや交換後ＨＤＤ等の２台のＨＤＤ（＃ｍ，＃ｎ）へ同一データをコピーバックデータとしてライトする。コピーバックデータのライト先が２台のＨＤＤ３０なので実施の形態７等と同様に特殊動作によりライトする。前記実施の形態５の場合と同様に、コントローラ１０側で調節してＨＤＤ３０側の性能に合わせた転送処理を行う。
【０２０９】
また、図２４（ｂ）に示すように、前記ＨＤＤ（＃０〜＃５）からのデータリードの際、前記二重書きされている２台のＨＤＤ３０ではなく、異なるデータを格納している２台のＨＤＤ３０、例えばＨＤＤ（＃１，＃２）が障害状態でありその各データＡ，Ｂがエラーとする。この場合、エクスパンダ２０は、データＡ，Ｂに関してそれぞれのミラーＨＤＤのデータをそのままリードすることでデータ復元が可能である。すなわち、ＨＤＤ（＃０，＃３）からのリードデータ（Ａ，Ｂ）を復元データとする。エクスパンダ２０は、正常なリードデータＡ，Ｂをコントローラ１０に転送し、コントローラ１０はホストに応答として送信する。また、コピーバックデータの復元の場合、コントローラ１０は、前記エクスパンダ２０により復元したデータ（データＡ，Ｂ）をリードして、スペアＨＤＤや交換後ＨＤＤ等の２台のＨＤＤ（＃ｍ，＃ｎ）へ異なるデータをコピーバックデータとしてライトする。コピーバックデータのライト先が２台のＨＤＤ３０なので実施の形態２等と同様に特殊動作によりライトする。前記実施の形態５の場合と同様に、コントローラ１０側で調節してＨＤＤ３０側の性能に合わせた転送処理を行う。また、パリティデータＰがエラーの場合も上記処理と同様に、ＲＡＩＤグループ中の他のＨＤＤ３０を用いてデータの復元が可能である。
【０２１０】
（実施の形態９）
次に、図２５（ａ），（ｂ）は、実施の形態９におけるディスクアレイ装置で備えるＨＤＤ情報報告機能による処理のモデルを表わす説明図である。（ａ）は、コントローラ１０、エクスパンダ２０、及びＨＤＤ３０の間における、ＨＤＤ情報の報告の例を示す説明図である。（ｂ）は、ＨＤＤ情報報告処理における特殊コマンドでの物理ポートの指定例を示す。
【０２１１】
実施の形態９では、前述した各実施の形態の有する機能を効率良く実現するために、前記各実施の形態の構成及び機能に加えて、エクスパンダ２０の配下のＨＤＤ３０に関するＨＤＤ情報を報告する機能（ＨＤＤ情報報告機能）を備える。ＨＤＤ情報報告機能では、ＨＤＤ情報として、ＨＤＤ３０の接続の状態（接続の有無など）、接続済み状態のＨＤＤ３０のデータ転送速度（ＨＤＤ側物理リンク５０における物理リンクレート）を含むＨＤＤ状態を調べてコントローラ１０に報告する。本機能により、前記各特殊動作を実行する際に、指定の物理ポートの物理リンクが目的の動作に使用可能かどうか、あるいは適しているかどうか等を調べることが行われる。主にエクスパンダ２０により、低速側の物理リンク５０でＨＤＤ情報の認識が行われる。認識されたＨＤＤ情報はコントローラ１０側に報告される。
【０２１２】
各物理ポートには、システム内でユニークな識別情報として物理ポート番号が付与されている。ＳＡＳプロトコルに従った処理では、ディスクアレイ装置の起動時、各デバイス間で相互の接続が確立され、各デバイスのＩＤを交換することで、接続デバイス数やタイプが判定される。動作中にデバイスの接続や取り外しが発生した場合も、そのイベントが報告される。コントローラ１０及びエクスパンダ２０は、ＳＡＳプロトコルに従ったレート交渉を含む処理及びＨＤＤ情報報告処理によりＨＤＤ状態を含むシステム構成を把握して、システム構成に合わせて前記各特殊動作を選択して実行する。
【０２１３】
まず、ＨＤＤ情報報告機能によるＨＤＤ情報報告処理について説明する。以下に示す手順（１）〜（５）に従って処理が行われる。
【０２１４】
手順（１）：  まず、ディスクアレイ装置の起動時（電源投入時）に、通常動作として、エクスパンダ２０とＨＤＤ３０とのレート交渉により、ＨＤＤ３０側の物理ポートごとのデータ転送速度（物理リンクレート）を認識する。当該動作は、従来構成に従った動作である。例えば、図２５（ａ）に示すように、ＨＤＤ側物理リンク５０において、物理ポート＃１，＃２の物理リンクでは１．５ＧｂｐｓのＨＤＤ３０（＃Ａ，＃Ｂ）、物理ポート＃３の物理リンクでは３．０ＧｂｐｓのＨＤＤ３０（＃Ｃ）が接続状態であり、物理ポート＃４にはＨＤＤ３０が非接続状態であることが認識される。
【０２１５】
手順（２）：  そしてエクスパンダ２０は、自装置に接続されている各ＨＤＤ３０のＳＡＳアドレス、及び接続されている別のエクスパンダ２０のエクスパンダアドレスを収集して、自装置内部に各部相互接続のルーティングのためのアドレステーブルを作成する。当該動作も従来構成に従った動作である。アドレステーブルにおいて、例えばエクスパンダ２０の有する物理ポート（＃１〜＃３）に対してＨＤＤ３０（＃Ａ〜＃Ｃ）のアドレスがマッピングされる。
【０２１６】
手順（３）：  コントローラ１０は、起動時にエクスパンダ２０との間でコントローラ側物理リンク４０についてのレート交渉を実行する。当該動作も従来構成に従った動作である。例えばコントローラ側物理リンク４０のレートが３．０Ｇｂｐｓと認識される。
【０２１７】
手順（４）：  そしてコントローラ１０は、エクスパンダ２０に対し、ＨＤＤ情報についての報告の要求を行う。エクスパンダ２０は、コントローラ１０からの要求に応じて、前記レート交渉により認識したＨＤＤ状態を報告する。報告によりコントローラ１０は各ＨＤＤ側物理リンク５０の状態を認識する。この報告処理は、ＳＭＰ（Serial Management Protocol）の使用によるプライベートＭＩＢ（Management Information Base）により実行してもよいし、前述した特殊コマンド発行の機能により実行してもよい。
【０２１８】
手順（５）：  コントローラ１０は、接続済み状態のＨＤＤ３０との間でＨＤＤ３０のディスカバリを実行する。当該処理は、エクスパンダ２０が、前記手順（４）に示す報告の機能に対応していれば、接続済み状態であると報告された物理ポートに対応するＨＤＤ３０のみを対象で実行すればよい。
【０２１９】
以上のような手順でコントローラ１０及びエクスパンダ２０は、ＨＤＤ情報を認識する。コントローラ１０やユーザは、ＨＤＤ情報の認識に基づき、前記コントローラ側物理リンク４０とＨＤＤ側物理リンク５０とのレート比率なども考慮して、実行対象となる特殊動作やその処理属性を決定し、設定やコマンド実行などを行う。例えばコントローラ１０は、ＨＤＤ情報報告処理によりＨＤＤ＃Ａ，＃Ｂのレートが１．５Ｇｂｐｓであることを認識し、コントローラ側物理リンクのレートが３．０Ｇｂｐｓでレート比率が２倍であることを考慮して、このＨＤＤ３０の組を対象として前記二重化転送等の特殊動作を実行するように設定や特殊コマンド実行を行う。
【０２２０】
前記手順（４）において、例えば、コントローラ１０からの特殊コマンドの発行によりＨＤＤ情報報告処理を行う場合は、図２５（ｂ）に示すように、前記特殊コマンドのヘッダ内のＳＡＳアドレス領域におけるバイト８，９を使用して物理ポート情報の指定とそれに対するＨＤＤ情報の報告とを行う。図２５（ａ）に示すＨＤＤ状態において、コントローラ１０は、ＨＤＤ情報報告の要求として、エクスパンダ２０に対して、前記ＳＡＳアドレス領域を使用して、調査対象となる物理ポート番号などを指定する。コントローラ１０は、例えば物理ポート＃１，＃２を指定して、この組におけるレートが低速（１．５Ｇｂｐｓ）で、特殊動作で使用可能かどうかを問い合わせる。エクスパンダ２０は、コントローラ１０側からの物理ポートの指定に応じて、対応するＨＤＤ状態を報告する。例えば、物理ポート＃１，＃２は低速（１．５Ｇｂｐｓ）であり、使用可能であることを報告する。
【０２２１】
また図２５（ｂ）に示すように、物理ポートの指定の仕方として、前記物理ポート情報を指定する領域における各ビットを物理ポートと対応させてもよい。図中の形式は、１ビットを１つの物理ポートに対応させた場合であり、バイト８の１６ビットに物理ポート＃３１〜＃１６を、バイト９の１６ビットに物理ポート＃１５〜＃０を対応させている。この場合なら一度に３２個の物理ポートまでは１つのコマンドのみで報告可能となる。
【０２２２】
エクスパンダ２０からコントローラ１０への報告の内容としては、特殊動作のためのＲＡＩＤグループの構成が可能となる低速（１．５Ｇｂｐｓ）のＨＤＤ３０が接続されている物理ポートについてのみ報告することや、またＨＤＤ接続部の物理ポートについて報告することとしてもよい。また使用可能な物理ポートをビット等で報告するのではなく、各物理ポートのレートや状態などを識別できる数値データを報告するようにしてもよい。前記ＳＭＰで報告する場合は、コントローラ１０及びエクスパンダ２０のいずれもコマンドのヘッダに操作は行わない。この時の報告内容は任意に設定できる。
【０２２３】
次に、実施の形態９に関して、上記ＨＤＤ情報報告機能を用いた、ＨＤＤ障害時の場合の報告処理について説明する。コントローラ１０からの各種のコマンド要求に対する応答は、一定時間以内に行う必要がある。そのため、特殊動作の対象となるＨＤＤグループにおいて一方のＨＤＤ３０が障害等によりエラー状態になった場合に、前述した自動データ復元機能（パリティやミラーを利用した復元）の有無により部分的に動作が異なる。ＨＤＤ情報報告機能を用いて、ＨＤＤ障害時における情報の報告をエクスパンダ２０からコントローラ１０に対して行い、エクスパンダ２０で各状態に対応した動作を行う。
【０２２４】
図２６は、２つのＨＤＤ３０｛ドライブＡ，ドライブＢ｝の状態の組み合わせ（ａ〜ｇ）について、各データについてのエクスパンダ２０での自動データ復元の可否と、対応する前述の実施の形態と、エクスパンダ２０で実行する動作との対応を示す表である。ＨＤＤ３０の状態として、「無応答」、「エラー報告」、「正常」がある。「無応答」は、ＨＤＤ３０からコマンドに対する応答が無い状態、「エラー報告」は、ＨＤＤ３０から応答として所定のエラー報告がなされた状態である。
【０２２５】
前記各実施の形態に共通の場合として、ドライブＡ−Ｂの状態の組み合わせで、ａ：「無応答」−「無応答」、ｂ：「無応答」−「エラー報告」、ｃ：「エラー報告」−「エラー報告」、ｄ：「正常」−「無応答」、ｆ：「正常」−「エラー報告」の５つの場合では、データ復元が不可能である。実施の形態５から実施の形態８までの場合で、ドライブＡ−Ｂの状態の組み合わせで、ｅ：「正常」−「無応答」、ｇ：「正常」−「エラー報告」の２つの場合では、自動データ復元が可能な場合がある。以下、ａ〜ｇの各場合に応じて、エクスパンダ２０は、ＨＤＤ情報報告機能を用いて、コントローラ１０側に報告及び関連の動作を行う。
【０２２６】
ａの場合、エクスパンダ２０は、処理時間の閾値まで待った後に、無応答エラーをコントローラ１０に報告する。ｂの場合、エクスパンダ２０は、上記ａと同様に処理時間の閾値まで待った後に、ドライブＢのエラーコードと無応答エラーをコントローラ１０に報告する。ｃの場合、エクスパンダは、ドライブＡ，Ｂのエラーコードをコントローラ１０に報告する。なお、前記ａ〜ｃの場合には、エクスパンダ２０は、報告の際、エラーコード（エラー内容を示す値）を転送データに混合して転送する。無応答エラー情報についてはエクスパンダ２０が生成する。
【０２２７】
ｄの場合、エクスパンダ２０は、処理時間の閾値まで待った後に、正常側のデータと無応答エラーを報告する。なおこの際、エクスパンダ２０は、転送においてデータとエラーコードを混合して、残りの部分はダミーデータでパディングして転送する。またコントローラ２０に対して正常側データのみ単体でアクセスするようにエラー報告するようにしてもよい。ｅの場合、エクスパンダ２０は、処理時間の閾値まで待った後に、エクスパンダ２０での復元データをコントローラ１０に報告する。また、エクスパンダ２０は、データ復元の旨を通知する。
【０２２８】
ｆの場合、エクスパンダ２０は、正常側データとドライブＢのエラーコードをコントローラ１０に報告する。この際、前記ｄの場合と同様に、データとエラーコードの混合などの処理を行う。ｇの場合、エクスパンダ２０は、エクスパンダ２０での復元データをコントローラ１０に報告する。また復元の旨を通知して、エラーコードはエクスパンダ２０で保持する。前記ｇの場合で、自動データ復元時のエラー情報の報告をコントローラ１０に対し行うようにしてもよい。コントローラ１０は、エクスパンダ２０からデータ復元の旨を通知された場合に、対象のＨＤＤ３０のエラーが深刻なものか、あるいは一時的なものかについて分けるために、エラー情報（エラーコード）についての調査を行う。前記エクスパンダ２０での自動データ復元が行われた場合は正常シーケンスとなるのでコントローラ１０に対してエラー情報の報告は行われない。そのため、エクスパンダ２０側でこのエラー情報をメモリに一時的に保持しておき、コントローラ１０からの要求の発生に応じて当該保持しておいたエラー情報について報告（送信）する。
【０２２９】
以上のように、実施の形態９では、ＨＤＤ情報報告機能を使用することで、前述した各実施の形態の有する機能を効率良く実行できる。ＨＤＤ情報報告機能により、ディスクアレイ装置に接続される個々のＨＤＤ３０へ直接アクセスする回数を軽減でき、トラフィックの改善がなされる。
【０２３０】
（実施の形態１０）
次に、図２７は、実施の形態１０におけるディスクアレイ装置での特殊処理のモデルを表わす説明図である。コントローラ１０、エクスパンダ２０、及びＨＤＤ３０の間における、処理及びデータの流れを示している。コントローラ側物理リンク４０のレートは３．０Ｇｂｐｓ、ＨＤＤ側物理リンク５０のレートも３．０Ｇｂｐｓであり、レート比率が１である。また、ホストからのライト命令に応じて、ディスクアレイ装置において特に２台のＨＤＤ３０｛ドライブＡ，ドライブＢ｝に対するデータのライトを行う場合について示す。
【０２３１】
実施の形態１０では、前記各実施の形態の機能に加え、更に、コントローラ１０とエクスパンダ２０の間でのデータの圧縮／伸張機能を有する。実施の形態１０では、特殊動作として、コントローラ側物理リンク４０において、複数のＨＤＤ３０を対象とする転送データを圧縮して多重化転送し、複数のＨＤＤ側物理リンク５０において、前記転送データを伸張して分散を行う。実施の形態１０での多重化転送は、コントローラ側物理リンク４０において複数系統のデータを圧縮して送信するものである。当該特殊動作に関して、コントローラ１０はデータ操作として複数のデータについての圧縮／伸張処理を行い、エクスパンダ２０はデータ操作として複数のデータについての圧縮／伸張処理と複数のＨＤＤ３０へのデータの分散を行う。コントローラ１０とエクスパンダ２０はそれぞれデータ分離／統合回路（１７，２７）内において更にデータ圧縮／伸張回路を備える。本図は特に２台の高速のレート（３．０Ｇｂｐｓ）のＨＤＤ３０を組にしてそれを対象に二重化転送＋圧縮／伸張処理を行う場合を示す。
【０２３２】
図２７（ａ）で、ライト要求時、コントローラ１０は、二重化対象とする２台のＨＤＤ３０に対するライトデータに関して、エクスパンダ２０に対して二重化転送＋圧縮／伸張処理を指示する特殊コマンド（ライトコマンド）を発行する。コントローラ１０は、ライトデータとなるユーザデータ及び冗長コード（チェックコード）を、データ圧縮／伸張回路により圧縮処理する。コントローラ１０は、高速側の物理リンク４０で、エクスパンダ２０に対し、前記特殊コマンド、圧縮データを、順に転送する。例えば元データのシーケンスが｛Ａ，Ａ’，Ｂ，Ｂ’，Ｃ，Ｃ’，……｝で、その圧縮データのシーケンスが｛Ａｃ，Ｂｃ，Ｃｃ，……｝とする。データＡとＡ’が圧縮によりデータＡｃとなる。データ圧縮／伸張処理による圧縮率を例として５０％とする。圧縮データ単位（Ａｃ等）においてその転送処理時間がｔとする。なおここではコマンドについて圧縮対象としない場合を示す。
【０２３３】
エクスパンダ２０は、コントローラ１０側から前記特殊コマンド及び圧縮データを順に受信して、データ圧縮／伸張回路により受信データを伸張処理して複数のＨＤＤ側物理リンク５０へのデータの分散を行う。エクスパンダ２０は、ターゲットとなる各ＨＤＤ３０にライトコマンド及びライトデータ（伸張データ）を配信する。低速側の物理リンク５０では、レート及び前記圧縮率に応じて、１つの圧縮データ単位のデータに対応して２倍のデータに伸張されるため２ｔの転送処理時間を要する。各ＨＤＤ３０は、受信したライトコマンドに基づきライトデータをディスクに記憶する。
【０２３４】
ホストからのＨＤＤ３０に対するデータのリード時は、上記ライト時と逆の流れの処理になる。すなわち、エクスパンダ２０は、二重化対象である２台のＨＤＤ３０からデータをリードし、各リードデータを圧縮処理して統合して多重化データとしてコントローラ１０側に転送する。コントローラ１０は、エクスパンダ２０からの転送データを伸張処理してホストに対するデータとする。
【０２３５】
図（ｂ）に示すように、データと時間の関係は、例えばコントローラ１０側から前記圧縮データのシーケンス｛Ａｃ，Ｂｃ，Ｃｃ，……｝が順に送信された場合において、エクスパンダ２０での各圧縮データについての伸張処理時間分の遅れで、ドライブＡでデータ｛Ａ，Ａ’，Ｃ，Ｃ’，Ｅ，Ｅ’，……｝が、ドライブＢでデータ｛Ｂ，Ｂ’，Ｄ，Ｄ’，Ｆ，Ｆ’，……｝が、それぞれ対応して記憶される。
【０２３６】
実施の形態１０の場合、本図の構成に示すようにコントローラ側物理リンク４０とＨＤＤ側物理リンク５０のレートが同速（３．０Ｇｂｐｓ）であっても、多重化転送による性能向上の効果を得ることができる。例えば、圧縮率が５０％の場合は、実施の形態１と同様の処理で、コントローラ側物理リンク４０のバスにおけるトラフィックを１／２にすることが可能である。また例えば、ディスクアレイ装置のフォーマット処理時は、ユーザデータ部分は同一データパターンとなるため、データ圧縮／伸張機能による大きな圧縮効果を得やすい。従って、コントローラ１０側のトラフィックが改善されることにより、装置のフォーマット時間の短縮が可能である。
【０２３７】
（実施の形態１１）
次に、図２８は、実施の形態１１におけるディスクアレイ装置の構成を示すブロック図である。実施の形態１１のディスクアレイ装置は、基本筐体１２０、増設筐体１３０において、コントローラ１０、エクスパンダ２０Ｂ、データ分離／統合エンドデバイス４００、及びＨＤＤ３０を有する。本図では、ホスト（３００）、コントローラ１０、エクスパンダ２０Ｂ、データ分離／統合エンドデバイス４００、及びＨＤＤ３０の間における、ホストからのライト要求時のデータの流れを示している。
【０２３８】
実施の形態１１では、前述した各実施の形態での特殊動作を含む処理を制御する機能を前記エクスパンダ２０内の回路に実装するのではなく、エクスパンダ２０Ｂに接続される別のエンドデバイスであるデータ分離／統合エンドデバイス４００に実装して同等の機能を持たせた形態である。本図に示すのは、増設筐体１３０内において、前記データ分離／統合回路２７を有さないエクスパンダ２０Ｂに対して、前記データ分離／統合回路２７に相当する機能を有するデータ分離／統合エンドデバイス４００がバス等を介して外付け接続された構成である。ホスト、コントローラ１０、ＨＤＤ３０等は、前記実施の形態と同様の構成である。エクスパンダ２０Ｂは、前記各実施の形態における特殊動作を含む機能以外のＳＡＳに従った処理等を行う。
【０２３９】
データ分離／統合エンドデバイス４００は、前記各実施の形態における特殊動作を含む機能を実現するソフトウェア及びハードウェアを備えるＬＳＩ等のデバイスである。データ分離／統合エンドデバイス４００をエクスパンダ２０Ｂに対して接続／非接続が自由な形態とすることでディスクアレイ装置の拡張性が実現される。
【０２４０】
コントローラ１０は、前記特殊動作等の機能を実行する際、エクスパンダ２０Ｂとの物理リンク４０で、データ分離／統合エンドデバイス４００に対応して設定されるＳＡＳアドレスを指定して特殊コマンドを発行、送信する。これにより、コントローラ１０は、データ分離／統合エンドデバイス４００との間でデータ転送を行う。
【０２４１】
データ分離／統合エンドデバイス４００は、コントローラ１０との最低１本以上の通信用のパス４０１を有する。当該パス４０１は、コントローラ１０−エクスパンダ２０Ｂのレートに対応して高速（３．０Ｇｂｐｓ）とする。また、データ分離／統合エンドデバイス４００は、ＨＤＤ３０との通信用に、別の複数のパス４０２を有する。なおＨＤＤ３０側とのパス４０２のうちの１本をコントローラ１０側とのパス４０１として共有する構成としてもよい。
【０２４２】
データ分離／統合エンドデバイス４００は、自装置と対応して接続されるエクスパンダ２０Ｂに接続されるＨＤＤ３０のＳＡＳアドレスを調査してアドレステーブルを作成して保持する機能を有する。データ分離／統合エンドデバイス４００は、コントローラ１０が自装置宛てに送信したコマンドにおけるＳＡＳアドレス（宛先ＳＡＳアドレス）を、前記アドレステーブルにより、ターゲットとなる各ＨＤＤ３０のＳＡＳアドレスに変換した上で、転送データを分離／統合処理して送信する。また前記受領コマンドにおけるコントローラ１０のＳＡＳアドレス（ソースＳＡＳアドレス）を自装置のＳＡＳアドレスに変換する。データ分離／統合エンドデバイス４００でのデータ分離／統合処理は、前記各実施の形態で示した、多重化転送のためのデータの分散、多重書きのためのデータ複製、パリティ処理等の各種データ操作に対応した処理である。またリード要求時など、ＨＤＤ３０からコントローラ１０へのデータ転送時は、上記と逆の流れで同様にデータ転送される。
【０２４３】
なおデータ分離／統合エンドデバイス４００をエクスパンダ２０Ｂに外付けする形態以外にも、エクスパンダ２０Ｂ内の点線枠（４００Ｂ）に示すようにエクスパンダ２０Ｂ内に必要に応じて接続可能な形態としてもよい。
【０２４４】
次に、本発明の一実施の形態のディスクアレイ装置での処理フローについて説明する。図２９、図３０は、前述した各実施の形態のディスクアレイ装置での処理に対応するフロー図であり、特に、一実施の形態として、前記各実施の形態での機能を総合的に備えた形態のディスクアレイ装置での処理フローを示す。本装置において、ＨＤＤ状態・接続レート状態や処理対象データのタイプや特殊動作実行に関する設定などに応じて、特殊動作が選択的に実行される。
【０２４５】
図２９は、エクスパンダ２０の動作として、コントローラ１０からのコマンドに基づきＨＤＤ３０へデータを転送する処理（データライト等）を行う場合の手順を示すフロー図である。
【０２４６】
エクスパンダ２０は、コントローラ１０側からコントローラ側物理リンク４０によりフレームを受領すると（ステップＳ１０１）、受領フレームのヘッダを参照してその宛先が自装置宛てのアドレス（エクスパンダアドレス）かどうかを確認する（Ｓ１０２）。
【０２４７】
エクスパンダ２０は、前記宛先が自装置宛てのアドレスでない場合は（Ｓ１０２−ＮＯ）、当該フレーム内における指定アドレスに対応した物理ポートへ当該フレームを配信して（Ｓ１０３）、処理を終了する。エクスパンダ２０は、前記宛先が自装置宛てのアドレスである場合は（Ｓ１０２−ＹＥＳ）、前記フレームのヘッダのフラグ領域及びコマンド領域を参照してチェックする（Ｓ１０４）。前記チェックにより、フラグとコマンドの組み合わせが正しいかどうかを判断する（Ｓ１０５）。エクスパンダ２０は、前記組み合わせが正しくない場合（Ｓ１０５−ＮＯ）、エラー処理及び報告をコントローラ１０に行って（Ｓ１０６）、終了する。
【０２４８】
エクスパンダ２０は、前記組み合わせが正しい場合（Ｓ１０５−ＹＥＳ）、前記フレームのヘッダの物理ポート指定領域をチェックする（Ｓ１０７）。エクスパンダ２０は、当該チェックにより、データ転送等の処理の対象となる指定物理ポートを認識する。特に特殊動作の場合は、複数の物理ポートが指定物理ポートとなる。
【０２４９】
次に、エクスパンダ２０は、データ分離／統合回路２７により、前記指定物理ポートごとに、前記受領フレームのヘッダすなわちコマンドを複製する（Ｓ１０８）。当該複製により、処理対象となる複数のＨＤＤ３０に対して送信されるコマンドの元が作成される。
【０２５０】
次に、エクスパンダ２０は、前記複製で作成された複数のフレームについて、そのヘッダのＳＡＳアドレス領域においてアドレス変換を行う（Ｓ１０９）。アドレス変換は前記アドレステーブルの参照により行われる。エクスパンダ２０は、当該領域において、ソースアドレスを自装置アドレス（エクスパンダアドレス）に置き換える。このとき前記リザーブ領域についてはクリアする。また、エクスパンダ２０は、当該領域において、宛先アドレスを前記指定物理ポートに対応したＨＤＤアドレスに置き換える。
【０２５１】
次に、エクスパンダ２０は、対象データ（コントローラ１０側からの転送データ）が、多重化データかどうかを判断する（Ｓ１１０）。対象データが多重化データの場合は、データ分離／統合回路２７で、対象データを前記指定物理ポートごとに分離する処理を行う（Ｓ１１１）。当該分離は前記特殊動作のタイプに応じた処理である。例えば実施の形態１等のように二重化転送の場合は、２つの物理ポートへとデータの分離が行われる。
【０２５２】
次に、エクスパンダ２０は、対象データについてデータフレーム（ＤＡＴＡフレーム）とパリティの自動生成を行うかどうかを判断する（Ｓ１１２）。パリティ生成を行う場合は、実施の形態５等のように、対象データを基にＸＯＲ演算して、指定物理ポート用にパリティデータを生成する（Ｓ１１３）。
【０２５３】
次に、エクスパンダ２０は、対象データについて二重書き（多重書き）を行うかどうかを判断する（Ｓ１１４）。二重書きを行う場合は、二重書き対象となるデータを指定ポートごとに複製する処理を行う（Ｓ１１５）。
【０２５４】
次に、エクスパンダ２０は、上記各処理で変換／生成したフレームを指定ポートに対し発行して（Ｓ１１６）、終了する。
【０２５５】
また図３０は、エクスパンダ２０の動作として、コントローラ１０からのコマンドに基づきＨＤＤ３０からデータを転送する処理（データリード等）を行う場合の手順を示すフロー図である。
【０２５６】
エクスパンダ２０は、ＨＤＤ３０側からＨＤＤ側物理リンク５０によりフレームを受領すると（Ｓ２０１）、当該フレームのヘッダを参照してその宛先アドレスが自装置宛てのアドレス（エクスパンダアドレス）かどうかを確認する（Ｓ２０２）。エクスパンダ２０は、前記宛先が自装置宛てのアドレスでない場合は（Ｓ２０２−ＮＯ）、フレーム内の指定アドレスの物理ポートへ当該フレームを配信して（Ｓ２０３）、処理を終了する。
【０２５７】
前記宛先が自装置宛てのアドレスである場合は（Ｓ２０２−ＹＥＳ）、フレームの送信元のＨＤＤ３０がエラーであるかを判断する（Ｓ２０４）。エクスパンダ２０は、ＨＤＤ３０がエラーでない場合は（Ｓ２０４−ＮＯ）、ＨＤＤ３０から転送されたデータをメモリ（バッファ）上に整列して統合する（Ｓ２０５）。ＨＤＤ３０がエラーである場合は当該処理を行わない。
【０２５８】
次に、エクスパンダ２０は、対象ＨＤＤ３０（前記特殊動作の対象となるＨＤＤグループの場合を含む）の応答が完了かどうかを判断する（Ｓ２０６）。応答が完了していない場合（Ｓ２０６−ＮＯ）、待ち時間が許容時間内であるかどうかを判断し（Ｓ２０７）、許容時間内である場合は（Ｓ２０７−ＹＥＳ）、終了する。許容時間を超える場合（Ｓ２０７−ＮＯ）及び対象ＨＤＤ３０の応答が完了している場合（Ｓ２０６−ＹＥＳ）、次にエクスパンダ２０は、対象ＨＤＤ３０からのすべてのデータは正常かどうかを判断する（Ｓ２０８）。
【０２５９】
ＨＤＤ３０からのすべてのデータが正常の場合は（Ｓ２０８−ＹＥＳ）、データ復元を行う必要はない。データにエラーがある場合は（Ｓ２０８−ＮＯ）、エクスパンダ２０で前記パリティやミラーなどを利用したデータ復元が可能かどうかを判断する（Ｓ２０９）。データ復元可能でない場合は（Ｓ２０９−ＮＯ）、エラー処理及び報告を行って（Ｓ２１０）、終了する。データ復元可能な場合は（Ｓ２０９−ＹＥＳ）、データ復元処理（Ｓ２１１）を行う。
【０２６０】
次に、エクスパンダ２０は、前記受領フレームについて、そのヘッダのＳＡＳアドレス領域においてアドレス変換を行う（Ｓ２１２）。アドレス変換はアドレステーブルの参照により行う。エクスパンダ２０は、当該領域で、ソースアドレスを自装置アドレス（エクスパンダアドレス）に置き換える。また、当該領域で、宛先アドレスをコントローラアドレス（コントローラ１０のＳＡＳアドレス）に置き換える。また、エクスパンダ２０は、当該領域で、前記エラー情報や復元情報（エクスパンダ２０でデータ復元したことを表わす情報など）がある場合は前記リザーブ領域にセットする。
【０２６１】
次に、エクスパンダ２０は、上記処理で変換／生成したフレームをコントローラ１０側への物理ポートに発行して（Ｓ２１３）、終了する。処理フローは以上である。
【０２６２】
以上の他、複数のＨＤＤ３０に対する転送データ長が異なる場合に、データ長の長い方と短い方の差分についてＡＬＩＧＮプリミティブ等を挿入するようにしてもよい。また、ダミーデータでパディングしてもよい。また、前記特殊動作の実行に関して、例えば、トラフィックに影響の大きいデータの転送時のみ前記多重化転送を実行する等の制御を行ってもよい。また、データ（ユーザデータ）のみ多重化転送するようにしてもよいし、コマンドやステータス等もすべてデータと合わせて多重化転送するようにしてもよい。また、状況によって多重化対象となるデータを選択する等の制御を行ってもよい。
【０２６３】
以上のように、本発明の各実施の形態のディスクアレイ装置では、複数のＨＤＤ側物理リンク５０における転送データをセットとして扱ってコントローラ側物理リンク４０で多重化することで、コントローラ１０−ＨＤＤ３０の接続及びデータパスにおける物理リンクレート間の違いがある場合でも、コントローラ側物理リンク４０でＡＬＩＧＮプリミティブの挿入がされず、コントローラ１０側の性能を引き出して効率的なデータ転送が可能である。またコントローラ１０側の性能を引き出すと共にＨＤＤ側物理リンク５０に対してもバス使用効率の向上がなされ、データ転送系全体のトラフィックの改善による性能向上が図れる。
【０２６４】
なお、複数のＨＤＤ３０に対しデータを分散して格納するＲＡＩＤ方式では、その格納処理に際して複数のデータを揃える必要がある。これに対して本発明の実施の形態の場合、低速側の物理リンク５０でのデータ分散のために複数のデータを揃えるためのオーバヘッドは装置全体の特殊動作でのオーバヘッドの内数となるので、性能への影響はほとんど無い。また、多重化転送の対象となるＨＤＤ３０のセットにおける個々のＨＤＤ３０の転送データもコントローラ１０へと集中するため、高速側の物理リンク４０でのバス占有回数及び占有時間が減少することでデータが流れやすくなり、データ転送系のトラフィックが改善される。
【０２６５】
また、データ転送性能を低下させずに記憶装置として安価な低速（１．５Ｇｂｐｓなど）のＨＤＤ３０を使用可能であることによるシステム全体のコスト低減効果もある。ＨＤＤ３０側は、コントローラ１０側のレートに合わせて高速（３．０Ｇｂｐｓなど）のタイプとしなくても良いことから、技術的な安定性が確保できる利点も有している。
【０２６６】
本発明の各実施の形態で説明したディスクアレイ装置の構成及び機能やコマンド等については、エクスパンダ２０を介してコントローラ１０側とＨＤＤ３０（ＳＡＳ−ＨＤＤやＳＡＴＡ−ＨＤＤ）側とのデータ転送速度が異なる場合に限らず同一（同程度）の場合にも同様に適用できる。
【０２６７】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【産業上の利用可能性】
【０２６８】
本発明は、ＳＡＳエクスパンダデバイスを介して接続する方式のＳＡＳやＳＡＴＡに対応の記憶装置を接続するディスクアレイ装置やコンピュータシステムなどに利用可能である。
【図面の簡単な説明】
【０２６９】
【図１】（ａ），（ｂ）は、本発明の各実施の形態のディスクアレイ装置で共通となる一実施の形態のディスクアレイ装置のハードウェア構成においてその外観構成を示す図である。
【図２】一実施の形態のディスクアレイ装置に関するシステム構成についての全体の機能ブロック図である。
【図３】一実施の形態のディスクアレイ装置に関する他のシステム構成についての全体の機能ブロック図である。
【図４】一実施の形態のディスクアレイ装置ディスクアレイ装置においてコントローラ−エクスパンダ間の接続におけるより詳細な機能ブロック構成を示す図である。
【図５】本発明の各実施の形態のディスクアレイ装置で行う特殊処理についての代表的な処理の概要を示す説明図である。
【図６】ＳＡＳにおけるＳＳＰフレーム及びＳＡＳアドレスのフォーマットを示す図である。
【図７】本発明の各実施の形態で使用する特殊コマンドの形式例を示す図である。
【図８】本発明の前提技術として、ディスクアレイ装置に単純にＳＡＳを適用した構成において、ＳＡＳの標準に従ってＡＬＩＧＮプリミティブの挿入を行う場合の処理のモデルを表わす説明図である。
【図９】本発明の実施の形態１におけるディスクアレイ装置での特殊処理（多重化転送）のモデルを表わす説明図である。
【図１０】（ａ），（ｂ）は、本発明の実施の形態２におけるディスクアレイ装置での特殊処理のモデルを表わす説明図である。
【図１１】（ａ），（ｂ）は、本発明の実施の形態２での特殊動作を実際のＲＡＩＤ方式に応用する場合の設定について示す説明図である。
【図１２】本発明の実施の形態２での特殊動作を、ディスクアレイ装置の内部でのデータコピー動作へ応用する場合の処理について示す説明図である。
【図１３】（ａ），（ｂ）は、本発明の実施の形態３におけるディスクアレイ装置での特殊処理のモデルを表わす説明図である。
【図１４】（ａ），（ｂ）は、本発明の実施の形態３の特殊動作をＲＡＩＤ方式に適用した場合の処理手順例を示す図である。
【図１５】本発明の実施の形態３の特殊動作に対応したＲＡＩＤグループについての設定画面を示す図である。
【図１６】（ａ），（ｂ）は、本発明の実施の形態４におけるディスクアレイ装置での特殊処理のモデルを表わす説明図である。
【図１７】（ａ），（ｂ）は、本発明の実施の形態５におけるディスクアレイ装置での特殊処理のモデルを表わす説明図である。
【図１８】本発明の実施の形態５におけるディスクアレイ装置での特殊処理に関して、リード時における、パリティを利用した自動データ復元及びスペアＨＤＤ等へのデータ復元についての説明図である。
【図１９】（ａ），（ｂ）は、本発明の実施の形態６におけるディスクアレイ装置での特殊処理のモデルを表わす説明図である。
【図２０】本発明の実施の形態６におけるディスクアレイ装置での特殊処理に関して、リード時における、多重書きを利用した自動データ復元及びスペアＨＤＤ等へのデータ復元についての説明図である。
【図２１】（ａ），（ｂ）は、本発明の実施の形態７におけるディスクアレイ装置での特殊処理のモデルを表わす説明図である。
【図２２】本発明の実施の形態７におけるディスクアレイ装置での特殊処理に関して、リード時における自動データ復元及びスペアＨＤＤ等へのデータ復元についての説明図である。
【図２３】（ａ），（ｂ）は、本発明の実施の形態８におけるディスクアレイ装置での特殊処理のモデルを表わす説明図である。
【図２４】（ａ），（ｂ）は、本発明の実施の形態８におけるディスクアレイ装置での特殊処理に関して、リード時における自動データ復元及びスペアＨＤＤ等へのデータ復元についての説明図である。
【図２５】（ａ），（ｂ）は、本発明の実施の形態９におけるディスクアレイ装置で備えるＨＤＤ情報報告機能による処理のモデルを表わす説明図である。
【図２６】本発明の実施の形態９に関して、２つのＨＤＤの状態の組み合わせについて、エクスパンダでの自動データ復元の可否と、対応する実施の形態と、エクスパンダで実行する動作との対応を示す表である。
【図２７】（ａ），（ｂ）は、本発明の実施の形態１０におけるディスクアレイ装置での特殊処理のモデルを表わす説明図である。
【図２８】本発明の実施の形態１１におけるディスクアレイ装置の構成を示すブロック図である。
【図２９】本発明の各実施の形態のディスクアレイ装置での処理に対応して、エクスパンダの動作として、コントローラからのコマンドに基づきＨＤＤへデータを転送する処理を行う場合の手順を示すフロー図である。
【図３０】本発明の各実施の形態のディスクアレイ装置での処理に対応して、エクスパンダの動作として、コントローラからのコマンドに基づきＨＤＤからデータを転送する処理を行う場合の手順を示すフロー図である。
【符号の説明】
【０２７０】
１０…コントローラ、１１…ＣＰＵ、１２…メモリ、１３…チャネル制御部、１４…データコントローラ、１５…キャッシュメモリ、１６…ディスク制御部、１７…データ分離／統合回路、２０，２０Ｂ…エクスパンダ、２７…データ分離／統合回路、２８…ダイレクタ回路、３０，３０ａ，３０ｂ…ハードディスクドライブ、４０，５０，５０ａ，５０ｂ…物理リンク、５６…電源コントローラボード、５９…コントローラボード、９１…外部ＳＡＳケーブル、９２…通信ケーブル、１００…ディスクアレイ装置、１１１…ラックフレーム、１１２…マウントフレーム、１２０…基本筐体、１３０…増設筐体、１４１…バッファ、１４２…データコントロール回路、１６１…ＳＡＳプロトコル制御部、２００…ＳＡＮ、２７１…バッファ、２７２…データコントロール回路、２７３…ＸＯＲ回路、３００…情報処理装置、４００，４００Ｂ…データ分離／統合エンドデバイス、４０１，４０２…パス。
【図１】
2006072636.tif 000003
【図２】
2006072636.tif 000004
【図３】
2006072636.tif 000005
【図４】
2006072636.tif 000006
【図５】
2006072636.tif 000007
【図６】
2006072636.tif 000008
【図７】
2006072636.tif 000009
【図８】
2006072636.tif 000010
【図９】
2006072636.tif 000011
【図１０】
2006072636.tif 000012
【図１１】
2006072636.tif 000013
【図１２】
2006072636.tif 000014
【図１３】
2006072636.tif 000015
【図１４】
2006072636.tif 000016
【図１５】
2006072636.tif 000017
【図１６】
2006072636.tif 000018
【図１７】
2006072636.tif 000019
【図１８】
2006072636.tif 000020
【図１９】
2006072636.tif 000021
【図２０】
2006072636.tif 000022
【図２１】
2006072636.tif 000023
【図２２】
2006072636.tif 000024
【図２３】
2006072636.tif 000025
【図２４】
2006072636.tif 000026
【図２５】
2006072636.tif 000027
【図２６】
2006072636.tif 000028
【図２７】
2006072636.tif 000029
【図２８】
2006072636.tif 000030
【図２９】
2006072636.tif 000031
【図３０】
2006072636.tif 000032