(57)【要約】【課題】  ストレージシステムの制御部が扱うデータの単位と、記録媒体が扱うデータの単位とが異なる際にも、制御部が記録媒体へのデータの入出力処理を行えるようにするための技術が求められている。【解決手段】  ストレージシステムは、計算機からライトコマンドを受信するディスクコントローラと、ディスクコントローラの制御に基づいてデータが書き込まれる複数のディスク装置とを有する。ディスクコントローラがライトコマンドに従ってデータの入出力処理を実行する際にデータを扱う単位である第一のブロックのサイズと、複数のディスク装置各々がデータの入出力処理を実行する際にデータを扱う単位である第二のブロックのサイズとは異なる。そして、ディスクコントローラは、第一のブロックのサイズと第二のブロックのサイズの公倍数分のサイズを有する第三のブロック単位で、ディスク装置にデータの書き込みを指示する。【選択図】  図２
2006195851.tif 000002
【特許請求の範囲】
【請求項１】
計算機からリードコマンド及びライトコマンドを受信するディスクコントローラと、
前記ディスクコントローラに接続され、該ディスクコントローラの制御に基づいてデータが読み出されたり若しくは書き込まれたりする複数のディスク装置とを有し、
前記ディスクコントローラが前記リードコマンド若しくは前記ライトコマンドに従ってデータの入出力処理を実行する際にデータを扱う単位である第一のブロックのサイズと、前記複数のディスク装置各々がデータの入出力処理を実行する際にデータを扱う単位である第二のブロックのサイズとは異なっており、
前記ディスクコントローラは、前記第一のブロックのサイズと、前記第二のブロックのサイズの公倍数分のサイズを有する第三のブロック単位で、ディスク装置にデータの書き込みを指示することを特徴とするストレージシステム。
【請求項２】
請求項１記載のストレージシステムであって、
前記ディスクコントローラは、キャッシュメモリを有しており、
前記計算機からのライトコマンドに従って前記ディスクコントローラが受信するライトデータには、一定サイズごとにデータの保証コードが付与され、該一定サイズのライトデータとこれに付与された保証コードとは前記キャッシュメモリに格納され、
前記第一のブロックには、前記一定サイズのライトデータと保証コードとが含まれており、
前記第一のブロックのサイズのN倍が前記第三のブロックのサイズであり、
前記ディスクコントローラは、前記キャッシュメモリに格納されているN個の第一のブロックのデータを、まとめて１つのコマンドでディスク装置に書き込むよう、該ディスク装置に指示することを特徴とするストレージシステム。
【請求項３】
請求項２記載のストレージシステムであって、
前記ストレージシステムは、前記計算機から受信したライトデータを前記キャッシュメモリに転送するキャッシュコントローラを有しており、
前記キャッシュコントローラが、前記一定サイズごとにライトデータに保証コードを付与することを特徴とするストレージシステム。
【請求項４】
請求項２記載のストレージシステムであって、
前記ディスクコントローラは、データの入出力処理を制御するプロセッサを有しており、該プロセッサが前記一定サイズごとにライトデータに保証コードを付与することを特徴とするストレージシステム。
【請求項５】
請求項２記載のストレージシステムであって、
前記保証コードには、前記一定サイズのデータの誤りを検出するための誤り検出符号が含まれていることを特徴とするストレージシステム。
【請求項６】
請求項２記載のストレージシステムであって、
前記保証コードには、前記一定サイズのデータが書き込まれる記憶領域のアドレスの誤りを検出するためのアドレス情報が含まれていることを特徴とするストレージシステム。
【請求項７】
請求項１記載のストレージシステムであって、
前記第一のブロックのサイズのN倍が前記第三のブロックのサイズであり、
前記ディスクコントローラは、キャッシュメモリを有しており、
前記計算機からのライトコマンドに従って前記ディスクコントローラが受信するライトデータは、前記キャッシュメモリに格納され、
前記ディスクコントローラは、前記キャッシュメモリ内にディスク装置に書き込まれるべきN個以上の前記第一のブロック分のデータが存在する場合には、そのうちN個の第一のブロック分のデータについて、まとめて１つのコマンドで該ディスク装置にデータを書き込むよう、該ディスク装置に指示することを特徴とするストレージシステム。
【請求項８】
請求項１記載のストレージシステムであって、
前記第一のブロックのサイズのN倍が第三のブロックのサイズであり、
前記ディスクコントローラはキャッシュメモリを有しており、
前記計算機からのライトコマンドに従って前記ディスクコントローラが受信するライトデータは、前記キャッシュメモリに格納され、
前記ディスクコントローラは、前記キャッシュメモリ内にディスク装置に書き込まれるべきN個より少ないM個の第一のブロック分のデータが存在する場合には、不足しているN−M個の第一のブロック分のデータをディスク装置から読み出し、前記キャッシュメモリ内に格納されているM個の第一のブロック分のデータと読み出したN−M個の第一のブロック分のデータとをまとめて１つのコマンドで該ディスク装置に書き込むよう、該ディスク装置に指示することを特徴とするストレージシステム。
【請求項９】
請求項１記載のストレージシステムであって、
前記第一のブロックのサイズのN倍が前記第三のブロックのサイズであり、
前記ディスクコントローラは、キャッシュメモリを有しており、
前記計算機からのライトコマンドに従って前記ディスクコントローラが受信するライトデータは、前記キャッシュメモリに格納され、
前記ディスクコントローラは、前記ライトコマンドに含まれるブロック数の値に基づいて、前記キャッシュメモリ内にディスク装置に書き込まれるべきN個以上の前記第一のブロック分のデータが存在するか否かを判断し、
前記キャッシュメモリ内にN個以上の前記第一のブロック分のデータが存在する場合には、そのうちN個の第一のブロック分のデータについて、まとめて１つのコマンドで前記ディスク装置にデータを書き込むよう、該ディスク装置に指示し、
前記キャッシュメモリ内のN個より少ないM個の第一のブロック分のデータが存在する場合には、不足しているN−M個の第一のブロック分のデータをディスク装置から読み出して、前記キャッシュメモリ内に格納されているM個の第一のブロック分のデータと読み出したN−M個の第一のブロック分のデータをまとめて１つのコマンドで前記ディスク装置に書き込むよう、該ディスク装置に指示することを特徴とするストレージシステム。
【請求項１０】
請求項９記載のストレージシステムであって、
前記ディスクコントローラは前記計算機からリードコマンドを受信した場合に、リードデータが含まれる第一のブロックに対応する複数の第二のブロックのデータをディスク装置から読み出すよう指示することを特徴とするストレージシステム。
【請求項１１】
請求項１０記載のストレージシステムであって、
前記第一のブロックには、計算機から前記ディスクコントローラが受信したデータと該データに一定サイズごとに付与される保証コードとが含まれており、
前記ディスクコントローラは、前記計算機からリードコマンドを受信した場合に、リード対象のデータが含まれる第二のブロックのデータと、該リード対象のデータに付与されている保証コードが含まれる第二のブロックのデータとをディスク装置から読み出すよう指示することを特徴とするストレージシステム。
【請求項１２】
計算機からライトコマンドを受信するディスクコントローラと、
該ディスクコントローラからの指示に従ってデータの入出力処理を実行するｍ＋ｎ台のディスク装置とを有し、
ｍ個のデータブロックと該ｍ個のデータブロックから生成されるｎ個の冗長データブロックとが各々前記ｍ＋ｎ台のディスク装置のいずれかに格納されており、
前記ディスクコントローラが前記ライトコマンドに従って前記ｍ＋ｎ台のディスク装置へのデータの書き込み処理を実行する際に用いる第一のブロックのサイズと、前記ｍ＋ｎ台のディスク装置の各々がデータの書き込み処理を実行する際に用いる第二のブロックのサイズとは異なっており、
前記第一のブロックのサイズのN倍は、前記第一のブロックのサイズと前記第二のブロックのサイズの公倍数であり、
前記ディスクコントローラは、前記ライトコマンドに従って前記計算機から受信したライトデータがN個の第一のブロック分のサイズに満たない場合に、不足分のデータを該ライトデータが書き込まれるディスク装置から読み出して、受信した前記ライトデータと該ディスク装置から読み出されたデータとを合わせたN個の第一のブロック分のデータをまとめて該ディスク装置に書き込み、
前記ディスクコントローラは前記ライトデータを用いて冗長データを生成するために、前記ライトデータによって更新される旧データが含まれる第二のブロックのデータをディスク装置から読み出し、生成される冗長データによって更新される旧冗長データが含まれる第二のブロックのデータをディスク装置から読み出し、前記ライトデータと、読み出された旧データと旧冗長データとを用いて冗長データを生成し、
更に前記ディスクコントローラは、生成された冗長データが格納されるディスク装置から、N個の第一のブロック分のサイズに満たない分の冗長データを読み出して、生成された冗長データと該ディスク装置から読み出された冗長データとを合わせたN個の第一ブロック分の冗長データをまとめて該ディスク装置に書き込むことを特徴とするディスクアレイシステム。
【請求項１３】
請求項１２記載のディスクアレイシステムであって、
前記第一のブロックのサイズのN倍は、前記第二のブロックのサイズのM倍に等しく、
前記N個の第一のブロック分のデータが書き込まれるディスク装置は、該N個の第一のブロック分のデータを、M個の第二のブロック分のデータとして該ディスク装置内の記憶領域に書き込み、
前記N個の第一のブロック分の冗長データが書き込まれるディスク装置は、該N個の第一のブロック分の冗長データを、M個の第二のブロック分のデータとして該ディスク装置内の記憶領域に書き込むことを特徴とするディスクアレイシステム。
【請求項１４】
計算機からライトコマンドを受信するディスクコントローラと、
該ディスクコントローラからの指示に従ってデータの入出力処理を実行するｍ＋ｎ台のディスク装置とを有し、
ｍ個のデータブロックと該ｍ個のデータブロックから生成されるｎ個の冗長データブロックとが各々前記ｍ＋ｎ台のディスク装置のいずれかに格納されており、
前記ディスクコントローラが前記ライトコマンドに従って前記ｍ＋ｎ台のディスク装置へのデータの書き込み処理を実行する際に用いる第一のブロックのサイズと、前記ｍ＋ｎ台のディスク装置の各々がデータの書き込み処理を実行する際に用いる第二のブロックのサイズとは異なっており、
前記第一のブロックのサイズのN倍は、前記第二のブロックのサイズのM倍と等しく、
前記ディスクコントローラは、前記ライトコマンドに従って前記計算機から受信したライトデータがN個の第一のブロック分のサイズに満たない場合に、該ライトデータによって更新される旧データを含むN個の第一のブロック分のデータを、該ライトデータが書き込まれるディスク装置から読み出して、該旧データを該ライトデータを用いて更新し、更新後に該ライトデータを含むN個の第一のブロック分のデータを該ディスク装置に書き込み、
前記ディスクコントローラは前記ライトデータを用いて冗長データを生成するために、生成される冗長データによって更新される旧冗長データを含むN個の第一のブロック分の冗長データを、生成される冗長データが格納されるディスク装置から読み出し、前記ライトデータと、読み出された冗長データに含まれる前記旧冗長データと、前記旧データとを用いて冗長データを生成し、生成された冗長データを用いて前記旧冗長データを更新して、更新後に生成された冗長データを含むN個の第一のブロック分の冗長データをディスク装置に書き込むことを特徴とするディスクアレイシステム。
【請求項１５】
請求項１４記載のディスクアレイシステムであって、
前記N個の第一のブロック分のデータが書き込まれるディスク装置は、該N個の第一のブロック分のデータを、M個の第二のブロック分のデータとして該ディスク装置内の記憶領域に書き込み、
前記N個の第一のブロック分の冗長データが書き込まれるディスク装置は、該N個の第一のブロック分の冗長データを、M個の第二のブロック分のデータとして該ディスク装置内の記憶領域に書き込むことを特徴とするディスクアレイシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータが使用するデータを記憶する記憶装置システム（以下、ストレージシステムと呼ぶ）に関し、特に制御部と制御部に制御される記録媒体とを有するストレージシステムにおいて、制御部が扱うデータのブロックサイズと記録媒体が扱うデータのブロックサイズが異なるストレージシステムに関する。
【背景技術】
【０００２】
計算機に接続されるストレージシステムの一種に、ディスクアレイシステムがある。ディスクアレイシステムは、ＲＡＩＤ（Redundant Array of Inexpensive Disks）システムとも呼ばれ、アレイ状に配置された複数のディスク装置及びそれらを制御する制御部を有するストレージシステムである。ディスクアレイシステムでは、データの読み出し要求（以下、リード要求と呼ぶ）およびデータの書き込み要求（以下、ライト要求と呼ぶ）を、複数のディスク装置の並列動作によって高速に処理することができ、またデータに冗長性を付加することもできる。ディスクアレイシステムは、非特許文献１に開示されているように、付加される冗長データの種類やその構成により５つのレベルに分類されている。
【０００３】
ディスクアレイシステムにおいては、ディスク装置の障害時にもデータを復元できるように冗長データを作成し、この冗長データをデータとは異なるディスク装置に保存している。しかし、更にディスクアレイシステム全体の信頼性を高める目的で、各ディスク装置に保存される論理ブロックに保証コードを付加する場合がある。保証コードについては例えば特許文献１や特許文献２に記載がある。特許文献１では、保証コードとして、論理ブロックにアクセスする際に計算機が指定する当該論理ブロックの論理アドレス（以下ＬＡ（Logical Address）と呼ぶ）、及び論理ブロックのデータについて排他的論理和演算を実施して求めたＬＲＣ（Longitudinal Redundancy Check）が論理ブロックに付加され、保証コードと論理ブロックがディスク装置に保存される。LAは論理ブロックのデータが書き込まれる記憶領域のアドレスの誤りを検出するために、LRCは論理ブロックのデータの誤りを検出するための誤り検出符号として、それぞれ用いられる。
【０００４】
【特許文献１】米国特許第５,８１９,０５４号広報
【特許文献２】米国特許第５,７０６,２９８号広報
【非特許文献１】ディー・パターソン（D.Patterson）、外2名、「ケース・フォー・リダンダント・アレイ・オブ・インエクスペンシブ・ディスク（A Case for Redundant Arrays of Inexpensive Disks(RAID)）」、エー．シー．エム．シグモッド  コンファレンスプロシーディング(ACM SIGMOD Conference Proceeding)、1988年6月、p.109-116
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ストレージシステムに用いられる記録媒体の一つとして、パーソナルコンピュータ用に設計された低コストなＡＴＡ（AT Attachment）ディスク装置が挙げられる。開発コスト、部品コストの低減のため、ＡＴＡディスク装置の構造は簡略化されるケースがあり、ＡＴＡディスク装置ではデータを扱う単位であるブロック（セクタ）のサイズが固定長である場合が多い。
【０００６】
ＡＴＡディスク装置の様なブロック長（セクタ長）固定の記録媒体をストレージシステムに用いる場合、ストレージシステムの制御部が記録媒体に対してデータの入出力処理を行う際のデータの単位が、記録媒体がデータの入出力処理を行う際のデータの単位と異なるケースがあり得る。そして係る場合には、記録媒体へデータの入出力処理ができなくなるという問題がある。また、記録媒体が扱うデータの単位が固定でなくても、制御部が記録媒体に対してデータの入出力処理を行う際のデータの単位と、記録媒体が扱うデータの単位とを同じサイズにできない事情がある場合には、同様の問題が生じ得る。
【０００７】
係る問題が生じ得る具体的な一例として、例えばディスクアレイシステムの制御部が、特許文献１等に開示されている技術等を用いて、計算機から受信したデータに保証コードを付加して記録媒体にデータを書き込む場合を考えることができる。即ち、計算機がディスクアレイシステム内のデータにアクセスする際にデータを扱う単位である論理ブロックのサイズと、ＡＴＡディスク装置のセクタ長とが同じサイズであっても、ディスクアレイシステムの制御部は計算機から受信した論理ブロックに更に保証コードを付与してデータをＡＴＡディスク装置に書き込むため、制御部がデータをＡＴＡディスク装置に書き込む際に扱うデータの単位と、ＡＴＡディスク装置のセクタ長とは異なるケースがある。係る場合には、制御部は保証コード付きのデータをセクタ長固定のＡＴＡディスク装置に書き込めないケースがある。
【０００８】
従って、ストレージシステムの制御部が記録媒体に対してデータの入出力を行う際に扱うデータの単位と、記録媒体が扱うデータの単位とが異なる際にも、制御部が記録媒体へのデータの入出力処理を行えるようにするための技術が求められている。
【課題を解決するための手段】
【０００９】
ストレージシステムは、計算機からリードコマンド及びライトコマンドを受信するディスクコントローラと、ディスクコントローラに接続され、該ディスクコントローラの制御に基づいてデータが読み出されたり若しくは書き込まれたりする複数のディスク装置とを有する。ディスクコントローラがリードコマンド若しくはライトコマンドに従ってデータの入出力処理を実行する際にデータを扱う単位である第一のブロックのサイズと、複数のディスク装置各々がデータの入出力処理を実行する際にデータを扱う単位である第二のブロックのサイズとは異なっている。そして、ディスクコントローラは、第一のブロックのサイズと第二のブロックのサイズの公倍数分のサイズを有する第三のブロック単位で、ディスク装置にデータの書き込みを指示する。
【発明の効果】
【００１０】
ストレージシステムの制御部が記録媒体に対してデータの入出力を行う際に扱うデータの単位と、記録媒体が扱うデータの単位とが異なる場合にも、記録媒体に対するデータの入出力処理が可能となる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施形態の一例を示す。尚本発明は以下に示す実施形態によって限定されるものではない。
【実施例１】
【００１２】
実施例１には、ストレージシステムの制御部が記録媒体に対してデータの入出力を行う際に扱うデータの単位と、記録媒体が扱うデータの単位とが異なる場合の、制御部から記録媒体へのデータの入出力処理の一例を示す。尚、実施例1ではストレージシステムの一例としてディスクアレイシステムを用いて本発明の一実施形態を説明するが、実施例１におけるストレージシステムは非特許文献１に記載されたディスクアレイシステムの様に冗長データを有するストレージシステムのみならず、冗長データを有していないストレージシステムにも適用可能である。
（１）システム構成の説明
図１は本実施形態におけるディスクアレイシステムの構成の一例を示す図である。ディスクアレイシステム110はホスト計算機（以下、ホストと呼ぶ）100に接続され、ホスト100が使用するデータを格納しているストレージシステムである。ディスクアレイシステム110はディスクアレイコントローラ200とこれに接続されるディスク群300とを有しており、ディスクアレイコントローラ200にはディスクアレイシステム110に管理情報を入力したりディスクアレイシステム110の状態を出力したりする管理端末400が接続されている。
【００１３】
ディスクアレイコントローラ200は、ディスクアレイシステム110の制御処理を実行するＣＰＵ201、メモリ202、ホスト100からアクセスされるデータをバッファリングするキャッシュ203、キャッシュ203を制御するキャッシュコントローラ204、ホスト100との間でデータの送受信を行うホストインターフェース制御部(以下、ホストＦＣ  Ｉ／Ｆ)205、ディスク群300を構成するディスク装置との間でデータの送受信を行うディスクインタフェース制御部（以下、ディスクＩ／Ｆ）206、管理端末400との間で制御情報の送受信を行う管理インタフェース制御部（以下、管理Ｉ／Ｆ）207を有し、それぞれが通信線によって結線されている。
【００１４】
尚、キャッシュコントローラ204は、データに対して保証コードを付加したりデータから保証コードを削除する保証コード付加／削除回路240、保証コードを用いたデータのチェックを行う保証コードチェック回路260、冗長データの生成処理を行う冗長データ生成回路250を有する。また本実施形態ではホストインタフェース制御部205の一例としてＦＣ（Fibre Channel）プロトコルに従うＦＣインタフェース制御部を示したが、ホストインタフェース制御部205はiSCSIインタフェース等他のプロトコルに従うインタフェース制御部であっても良い。
【００１５】
メモリ202は、ディスクアレイシステム110を制御するためにＣＰＵ201によって実行されるＲＡＩＤ制御プログラム210、管理端末400と通信を行うためにＣＰＵ201によって実行される管理端末通信プログラム220を記録している。
【００１６】
ディスク群300は、ディスク装置301、302、303、304を有する。ディスク装置301〜304内の記憶領域によって、ホスト１００からのアクセス対象となる論理的な記憶領域（論理ボリューム）であるＬＵ（Logical Unit）310が構成される。ディスクＩ／Ｆ206は、ディスク装置301〜304と接続する。尚、図１に示すディスクＩ／Ｆ206に接続されるディスク装置301〜304の台数、およびディスクＩ／Ｆ206とディスク装置301〜304の接続形態は一例であり、図１の構成に限られるものではない。
【００１７】
管理端末400は、ディスクアレイシステム110のユーザ若しくは保守員が、ディスクアレイコントローラ200に対する設定を行う際に、ディスクアレイコントローラ200に情報を入力するのに用いられる入力部401と、ディスクアレイコントローラ200から取得したディスクアレイシステム110の情報を出力する出力部402とを有する。入力部はキーボードやマウス等であり、出力部はディスプレイ等である。
（２）ブロックサイズの対応関係
図２は、ディスクアレイコントローラ200が扱うデータの単位と、ディスク装置301〜304が扱うデータの単位との対応関係の一例を示す図である。
【００１８】
図２の上段は、ディスクアレイコントローラ200がディスク装置に対してデータを入出力する際に扱うデータの単位を表したものであり、このデータの単位を「拡張論理ブロック500」と定義する。拡張論理ブロック500は520バイト長のサイズを有するブロックである。拡張論理ブロック500は、ホスト100がディスクアレイシステム110に対してデータを入出力する際の単位である、512バイト長のデータから構成される論理ブロックと、この論理ブロックに対して保証コード付加/削除回路240によって付加されるＬＡ及びＬＲＣから構成される8バイト長の保証コードから構成される。
【００１９】
下段は、ディスク装置301〜304がデータの入出力の際に扱うデータの単位を表したものであり、「物理ブロック510」と定義する。物理ブロック510は512バイト長のサイズを有するブロックである。
【００２０】
尚、拡張論理ブロック500のサイズと物理ブロック510のサイズが異なれば各ブロックの実際のサイズは図２に示す例には限られない。また拡張論理ブロック500のサイズと物理ブロック510のサイズが異なれば、拡張論理ブロック500が保証コードを有していなくても（即ち拡張論理ブロックがホスト100から入出力されるデータから構成されている場合にも）本発明は適用可能である。
【００２１】
図２に示す例では、拡張論理ブロック500は物理ブロック510と比較してサイズが8バイト大きいが、両ブロックを複数並べていった場合、拡張論理ブロックを６４個、物理ブロックを６５個並べると、両ブロックのサイズの差分の合計がちょうど物理ブロックのサイズと等しい５１２バイトとなるため、拡張論理ブロック500  6４個分と物理ブロック510  ６５個分の各々の合計サイズが一致する。この様に、両ブロックの合計サイズが一致した状態、つまり拡張論理ブロック500のサイズと物理ブロック510のサイズの公倍数分、複数の拡張論理ブロック500若しくは複数の物理ブロック510を並べた状態を、「バウンダリ一致」と定義する。また、拡張論理ブロック500のサイズと物理ブロック510のサイズの公倍数分のサイズのデータ単位を、以降「大サイズブロック」と呼ぶ。
【００２２】
ディスク装置301〜304への書き込み対象となる複数の拡張論理ブロック500がバウンダリ一致の状態にある場合、これらの拡張論理ブロック500は複数の物理ブロック510としてディスク装置301〜304に書き込むことができる。即ち図２の例では、ディスク装置301〜304への書き込み対象となる拡張論理ブロック500が６４×Ｎ（Ｎは１以上の整数）個集まれば、これらの拡張論理ブロック500は６５×Ｎ個分の物理ブロック510としてディスク装置301〜304に書き込むことができる。従って拡張論理ブロック500と物理ブロック510との間のデータブロックのサイズの違いを吸収することができる。そこで本実施形態では、ディスクアレイコントローラ200から各ディスク装置301〜304にデータを書き込む場合には、大サイズブロック単位でデータを書き込むこととする。
（３）ブロックサイズの対応関係の他の一例
図２には、拡張論理ブロック500を並べて大サイズブロックを構成する例を示したが、大サイズブロックの構成は図２に示す例には限られない。そこで、図３及び図４に、大サイズブロックの他の例を示す。
【００２３】
図３は大サイズブロックの第2の例を示す図である。図３に示す例では、ホスト100がディスクアレイシステム200にアクセスする際に用いられるデータの単位である、512バイト長のサイズを有する論理ブロック520と、当該論理ブロック520に付与される8バイト長の保証コードとは、大サイズブロックの離れた位置に配置される。即ち、大サイズブロック内には、512バイト長の論理ブロック520がまず64個配置され、その後に64個分の論理ブロック520に対する64個分の保証コードをまとめた保証コードブロック（保証コードブロックは、1論理ブロック520当たりに付与される保証コードのサイズが8バイトであるので、8バイト×64個=512バイト長のサイズを有する）が配置される。尚、大サイズブロックを構成する論理ブロック520と同じ配置順で、各論理ブロック520に対応する保証コードが保証コードブロック内に配置される。但し、論理ブロック520とこれに対応する保証コードとの対応関係をキャッシュコントローラ204等で管理しておけば、保証コードブロック内での保証コードの配置はこれに限られるものではない。
【００２４】
図３の例では、64個分の論理ブロック520とその後に配置された保証コードブロックとを併せて、65個分の物理ブロック510として扱うことができ、この状態でバウンダリ一致の条件に合わせることができる。
【００２５】
図４は大サイズブロックの第3の例を示す図である。図４に示す例では、図２に示した例と同様、520バイト長の拡張論理ブロックを64個並べて大サイズブロックを構成している。しかし、拡張論理ブロックの構成が図2の例と図4の例とでは異なる。即ち、図2に示す拡張論理ブロック500では、512バイト長の論理ブロックの後ろに8バイト長の保証コードが付与されていたが、図4に示す拡張論理ブロック530では、保証コードが論理ブロックの後ろに付与されるとは限らない。
【００２６】
図4に示す拡張論理ブロック530では、物理ブロック510に１つずつ保証コードが格納されるように、拡張論理ブロック530内での保証コードの位置が調整される。この結果、保証コードは全部で64個存在するので、大サイズブロックを構成する65個分の物理ブロック510の内、65番目の物理ブロック510には保証コードは格納されないが、その他の物理ブロック510には１つずつ保証コードが格納される。従って、図4に示す例では、大サイズブロック中64番目の拡張論理ブロック530に関しては、論理ブロックの直前に当該論理ブロックに対する保証コードが付与されるが、その他の拡張論理ブロック530については、論理ブロックのデータ512バイトを2つのデータに分割し、分割された２つのデータの間に当該論理ブロックに対する保証コードが挿入される。
【００２７】
尚、図4では、大サイズブロックを構成する物理ブロック510のうち1番目から64番目までの物理ブロックについては、物理ブロック510の末尾に保証コードが格納されるように拡張論理ブロック530内の保証コードの位置が調整される例を示したが、拡張論理ブロック530内での保証コードの位置を決める方法は、図4に示す方法に限られるものではない。
【００２８】
以降、実施例1及び実施例２では、図２に示す大サイズブロックの構成、即ち図２に示す拡張論理ブロック500及び物理ブロック510の対応関係に基づき、本発明の実施例を説明する。しかし、バウンダリ一致の状態にできる組み合わせであれば、大サイズブロックの構成は図２から図４に示す例以外の構成であっても良い。例えば、拡張論理ブロック500、拡張論理ブロック530、論理ブロック520、保証コードブロック、物理ブロック510のサイズは任意のサイズで良い。また以降バウンダリ一致の状態も、ディスクアレイコントローラ200がディスク装置にデータを書き込む際のデータの単位と物理ブロック510とのサイズの差分の合計が、物理ブロック510のＮ(Ｎは１以上の整数)倍となる状態であれば良い。また拡張論理ブロック500、拡張論理ブロック530、論理ブロック520、保障コードブロック等が、物理ブロック510よりサイズが小さい場合であっても良い。
【００２９】
以上をまとめると、バウンダリが一致する状態であれば、拡張論理ブロック500、拡張論ブロック530、論理ブロック520、若しくは保証コードブロック等と物理ブロック510のサイズの組み合わせは任意であり、バウンダリ一致となる拡張論理ブロック500、拡張論ブロック530、論理ブロック520、若しくは保証コードブロック等の個数と、物理ブロック510の個数の組み合わせも任意である。
（４）ライト処理
次に、本実施形態におけるディスクアレイコントローラ200から各ディスク装置へのデータのライト処理について説明する。
【００３０】
図５は本実施形態におけるディスクアレイコントローラ200のライト処理時の動作の一例を示すフローチャートである。
【００３１】
ホスト100がディスクアレイシステム110へライトコマンドを発行すると、ディスクアレイコントローラ200はホストＦＣ  Ｉ／Ｆ205にてこのライトコマンドを受領する（ステップ1001）。尚、ホスト100は512バイト長の論理ブロックを１単位として、論理ブロックのＮ倍（Ｎは１以上の整数）分のデータのライトコマンドを発行し、ライトコマンドにはライトコマンドによって書き込まれるデータの先頭のＬＡと、ライトデータのサイズ（何論理ブロック分のデータであるかを示す論理ブロック数）が含まれる。
【００３２】
ＣＰＵ201は、ＲＡＩＤ制御プログラム210を実行して、ライトコマンドに含まれるＬＡに基づいて、ライトデータの書き込み先のディスク装置を決定し（ステップ1002）、更にライトコマンドに応じて受信するライトデータのバッファリング先とこのライトデータについて生成される冗長データの格納先をキャッシュ203内に確保する（ステップ1003）。尚この際ＣＰＵ201は、ライトデータに付加される保証コード分の格納先もキャッシュ203内に確保する。
【００３３】
次にＣＰＵ201は、ホストＦＣ  Ｉ／Ｆ205を介して、ホスト100にデータの受信準備が出来たことを通知する（ステップ1004）。ホスト100は、ライトコマンドで指定した論理ブロック数分のライトデータをホストＦＣ  Ｉ／Ｆ205に送信する。ホストＦＣ  Ｉ／Ｆ205で受信されたライトデータは、キャッシュコントローラ204に送られ、保証コード付加／削除回路240において512バイト長の論理ブロックごとに保証コード（即ち、当該論理ブロックの先頭ＬＡとＬＲＣ）が生成されて、論理ブロックと保証コードとがステップ1003で確保されたキャッシュ203内の格納領域に格納される（ステップ1005）。尚、ＬＡとＬＲＣの生成方法の詳細は特許文献１に詳述されている。
【００３４】
更に、ホストＦＣ  Ｉ／Ｆ205はＣＰＵ201にライトデータを受信したことを通知する。ＣＰＵ201はホストＦＣ  Ｉ／Ｆ205からの通知を受けて、ライトデータを受信したことを検知すると（ステップ1006）、ＲＡＩＤ制御プログラム210を用いて受信したライトデータに対応する冗長データを生成するよう冗長データ生成回路250を制御し、冗長データ生成回路250は冗長データを生成する（ステップ1007）。生成された冗長データは、ステップ1003にて確保されたキャッシュ203内の領域に格納される。
【００３５】
次にＣＰＵ201は、ディスクＩ／Ｆ206に指示し、ディスクＩ／Ｆ206はＣＰＵ201からの指示に従って、キャッシュ203に格納されているライトデータ及び保証コード、若しくは冗長データを、ディスク装置301から304のいずれかに書き込む（ステップ1008）。
【００３６】
次に、図６を用いて、図５のステップ1008において、ディスク装置にデータが書き込まれる際の処理の例を詳細に説明する。
【００３７】
ディスクアレイコントローラ200は、各ディスク装置にデータを書き込む際、大サイズブロックを単位としてライト処理を実行する。そこでまずＣＰＵ201は、キャッシュ203に格納されている、ディスク装置へ書き込まれるべきデータが、物理ブロック510との対応関係においてバウンダリ一致の状態となる分存在するかどうかを判定する（ステップ2001）。即ち、図5のステップ1005にてキャッシュ203に書き込まれた論理ブロックと保証コードとが、大サイズブロックを構成する分だけ存在するかを判定する。この判断は図５のステップ1001でCPU201がホスト100から受信するライトコマンドに基づいて行われる。即ち、ライトコマンドにはホストから書き込まれるライトデータのサイズが論理ブロック520の何個分に相当するかを示す論理ブロック数が含まれるので、この論理ブロック数が64以上であれば、キャッシュ203には拡張論理ブロック500がバウンダリ一致状態となる分存在することがわかる。ライトコマンドに含まれる論理ブロック数が63以下であればキャッシュ203には拡張論理ブロック500がバウンダリ一致状態となる分は存在しないことがわかる。
【００３８】
尚、本実施形態では、ホスト100から受信した論理ブロックのデータも、図5のステップ1007でディスクアレイコントローラ200によって生成された冗長データも、同様の方法でディスク装置に書き込まれる。従って、図6に示す処理によってディスク装置に書き込まれるのは冗長データであってもよく、係る場合にはステップ2001にて、冗長データが大サイズブロックを構成する分だけキャッシュに書き込まれているかを判定する。
【００３９】
キャッシュ203に格納されておりディスク装置へ書き込まれるべきデータが、バウンダリ一致の状態となっている場合には、ディスクアレイコントローラ200は大サイズブロック分のデータを、ディスクＩ／Ｆ206を介して、いずれかのディスク装置へ書き込む（ステップ2003）。
【００４０】
一方、キャッシュ203に格納されておりディスク装置へ書き込まれるべきデータが、バウンダリ一致の状態となっていない場合、つまり大サイズブロックを構成するデータの一部がキャッシュ203内に揃っていない場合には、ディスクアレイコントローラ200は大サイズブロックを構成するデータのうち不足している分（つまりキャッシュ203に格納されていない分）のデータをディスク装置から読み出し、キャッシュ203に格納されていたデータと新たに読み出したデータとで、大サイズブロックを構成して（ステップ2002）、大サイズブロック分のデータを、ディスクＩ／Ｆ206を介して、いずれかのディスク装置に書き込む（ステップ2003）。
【００４１】
以上が図5のステップ1008におけるディスク装置への書き込み処理の一例である。
【００４２】
次に、図6のステップ2001において、キャッシュ203に書き込まれた論理ブロックと保証コードとが、大サイズブロックを構成するサイズ分存在すると判断された場合の、図6のステップ2003におけるディスク装置への書き込み処理について、大サイズライトと称して、図７を用いて説明する。
ディスク装置301〜304は各々、図7の下段に示すの物理ブロック510を一単位としてデータを扱う。一方ＣＰＵ２０１は、ディスク装置301〜304のいずれかに書き込むデータを、図7の上段に示す拡張論理ブロック500として管理している。そこでCPU２０１は、キャッシュ203に格納されている拡張論理ブロック500を６４個まとめたデータのセットを、物理ブロック510を６５個をまとめたデータのセットとしてディスク装置に書き込むよう、ディスクＩ／Ｆ２０６に指示する。指示を受けたディスクＩ／Ｆ２０６は、ディスク装置301〜304が扱う１個の書き込みコマンドを用いて、物理ブロック510  ６５個分のデータ（これは拡張論理ブロック500  ６４個分のデータに相当する）を、ディスク装置301〜304のいずれかに書き込む。すなわち、ＣＰＵ２０１は、ディスク装置301〜304の物理ブロック510のバウンダリに一致する単位を最小単位として、ディスク装置301〜304に拡張論理ブロック５００を書き込む。
【００４３】
一方、図６のステップ2001において、キャッシュ203に書き込まれた論理ブロックと保証コードとが、大サイズブロックを構成するサイズ分存在しないと判断された場合の、図6のステップ2003におけるディスク装置への書き込み処理について、小サイズライトと称して図８を用いて説明する。小サイズライトは、図６のステップ２００２、ステップ２００３に相当する処理と、ホスト１００からのライトを併記した図である。
【００４４】
ホスト１００からのライトデータを受領したディスクアレイコントローラ200は（Step 1）、このライトデータとこのライトデータについて生成された保証コードとをキャッシュ203に格納すると共に（図5ステップ1005）、このライトデータに対応する冗長データを生成してこれもキャッシュ203に格納する（図5ステップ1007）。
【００４５】
図６のステップ2001にてCPU201が、ディスク装置に書き込むべきデータが大サイズブロックのサイズ分キャッシュ203に存在しないと判断した場合、CPU201はディスク  I/F206に指示して、データの書き込み先となるディスク装置から、不足サイズ分のデータ（即ち、論理ブロックのデータと保証コード）をリードする（Step 2）。そしてCPU201は、キャッシュ203内に格納されているデータと、Step 2にてディスク装置からリードした不足サイズ分のデータをマージして、大サイズブロック分のデータセットを用意する（Step 3）。そしてCPU201はディスクI/F206に指示して、Step3にて用意した大サイズブロック分のデータセットを、大サイズブロック単位でディスク装置に書き込む。
（５）リード処理
次に、図9を用いて、本実施形態のリード処理について説明する。
【００４６】
ホスト100からリードコマンドを受信したディスクアレイコントローラ200のCPU201は(ステップ3001)、リードコマンドで指定されるリード対象データの先頭LAとリード対象データのサイズを示す論理ブロック数をチェックする。そして、CPU201はこの先頭LAおよび論理ブロック数より、ディスク装置から読み出すべき論理ブロック520とこの論理ブロックに付与されている保証コードを特定する。さらにCPU201は特定された論理ブロックおよび保証コードが格納されている物理ブロック510を特定して、どのディスク装置からデータを読み出すかを決定する（ステップ3002）。CPU201は、拡張論理ブロック500と物理ブロック510の対応関係を把握しているので、この対応関係に基づいてデータを読み出すべき物理ブロック510を決定することができる。
【００４７】
例えば、大サイズブロックが図２や図４に示す構成を有する場合であって、リードコマンドで指定された論理ブロック数が１であれば、指定された論理ブロックを含む拡張論理ブロックに対応する物理ブロック510  2つ分（この2つの物理ブロックは図２や図４の例では連続する物理ブロックである）が、データの読み出し元物理ブロック510となる。また大サイズブロックが図３に示す構成を有する場合には、リードコマンドで指定されるリード対象論理ブロック520に対応する物理ブロック510と、保証コードブロックに対応する物理ブロック510が、データの読み出し元物理ブロック510となる。
【００４８】
なお、ディスクアレイコントローラ200からディスク装置へのコマンド発行回数を減らすために、リードコマンドで指定される論理ブロックおよびこれに付与された保証コードに対応する物理ブロック以外の物理ブロックについても、データを１コマンドで一緒に読み出しておき、読み出したデータの内必要な情報だけを使用してもよい。例えば読み出すべきデータが飛び飛びの論理ブロック520に格納されている場合には、当該飛び飛びの論理ブロック520を含む連続する複数の物理ブロックから、１コマンドでデータを読み出すようにしても良い。かかる場合には、ステップ3002でCPU２０１は、多めの物理ブロックを読み出し読み出し元の物理ブロック510として特定しておく。
【００４９】
次にCPU２０１は読み出される論理ブロックのデータおよび保証コードが格納される格納領域をキャッシュ203に確保する（ステップ3003）。
【００５０】
そしてCPU２０１はディスクI／F206に指示を出して、この指示を受けたディスクI/FはCPU２０１から指定されたディスク装置に対して、CPU２０１から指定された物理ブロックのデータを読み出すようにリードコマンドを発行する。そしてディスクI/F206はディスク装置から読み出したデータをステップ3003で確保したキャッシュ203内の格納領域に保存する（ステップ3004）。
【００５１】
ディスク装置からデータがキャッシュ203に読み出されると、保証コードチェック回路260が、特許文献１に記載されている方法で保証コードをチェックする。そして読み出したデータにエラーがないことが確認されると、キャッシュ203に格納されているデータのうち、保証コードを除いた論理ブロックのデータが、ホスト100に送信される（ステップ3005）。
（６）効果
本実施形態によれば、ディスク装置が扱うデータブロック（即ち物理ブロック510）のバウンダリと、ディスクアレイコントローラ200が扱うデータブロック（即ち拡張論理ブロック520）のバウンダリとが一致する単位（即ち大サイズブロック）で、ディスクアレイコントローラ200がディスク装置へデータを書き込む。この結果、ディスクアレイコントローラ200がデータを扱う際のデータの単位と、ディスク装置がデータを扱う際のデータの単位とが異なっていても、ディスクアレイコントローラ200からディスク装置にデータを書き込むことができる。
【００５２】
また、データブロックのサイズが固定化されたディスク装置に対して、データの保証コードを付加してデータを書き込むことが可能となり、ディスクアレイシステム110を高信頼化できる。
【実施例２】
【００５３】
第2の実施形態では、ディスクアレイシステム110に対して冗長データを大サイズブロック単位で書き込む方法を説明する。尚ディスクアレイシステム110の構成は図１に示す例と同様でよい。但し実施例2ではLU310がRAID５構成のLUであるものと過程する。勿論LU310は冗長データを有するLUであればRAID３やRAID６等RAID５以外の構成であっても良い。
（１）RAID５構成のLUに対するライト処理
図１０には、ホスト100からのライトコマンドに基づいて、RAID５構成のLU310に対してデータをライトする際の処理の一例を示す。図１０の例では、データA、データB、およびデータCを用いて排他的論理和を計算した結果が冗長データDとなっている。ここで、ホスト100からのライトコマンドに基づいてデータA、データB、データCがすべて更新されるのであれば、ディスクアレイコントローラ200はライトデータを用いて（即ち、新データA、新データB、新データCを用いて）新しい新冗長データDを生成することができる。しかし、ホスト100から受信するライトデータのみでは新冗長データを生成できない場合、例えば図10に示すように新データAのみがディスクアレイコントローラ200に送信され、新データAによってデータAのみが更新される場合には、非特許文献１に開示されているように、ディスク装置に対するリード／モディファイ／ライト処理が発生する。
【００５４】
即ちこの様な場合には、ディスクアレイコントローラ200がホスト100から新データAを受信すると（Step１）、ディスクアレイコントローラは新冗長データDを生成するためにデータA（旧データ）をリードし（Step2）、さらに新冗長データDを生成するために冗長データD（旧冗長データ）もリードする（Step3）。そしてディスクアレイコントローラ200は新データA、データA、冗長データDを用いて排他的論理和を計算し、新冗長データDを生成する（Step4）。この後、ディスクアレイコントローラは新データAをディスク装置に書き込むと共に（Step5）、新冗長データDもディスク装置に書き込む(Step6)。
【００５５】
なお、新データAについて、実施例１で述べた保証コードが生成され、保証コード付の新データAがディスク装置に書き込まれても良い。これは、以下に示す図１１及び図１２の処理でも同様である。
（２）大サイズブロック単位でのリード／モディファイ／ライト処理の一例
第一の実施形態でも説明した様に、ディスクアレイコントローラ200からディスク装置へは大サイズブロック単位でデータの書き込みが行われる。これは、ホスト100から受信したライトデータの書き込みだけでなく、RAID５構成のLUが有する冗長データについても同じである。そこで、図１１を用いて、大サイズブロック単位で冗長データを書き込むための、冗長データの生成処理および書き込み処理の一例を示す。
【００５６】
ディスクアレイコントローラ200はホスト100からライトコマンドを受信すると、ライトコマンド内に含まれる論理ブロック数に基づいて、ホスト100から受信する新データ（ライトデータ）のサイズを認識することができる。そこでディスクアレイコントローラ200がホスト100から新データを受信した際に、新データのみでは新冗長データを生成できないと判断した場合には、旧データと、旧冗長データと、新データとから新冗長データを生成するために、リード／モディファイ／ライト処理が実行される。
【００５７】
具体的には、ディスクアレイコントローラ200は新冗長データを生成するために、旧データ及びその保証コードが含まれる物理ブロックと（Step1）、旧冗長データが含まれる物理ブロックとを（Step2）、キャッシュ203に読み出す。この旧データと保証コード、及び旧冗長データの読み出し処理は各々、図９に示す処理の通りである。次にディスクアレイコントローラ200は読み出した旧データと旧冗長データ、及びホスト100から受信した新データから新冗長データを生成する。
【００５８】
次にディスクアレイコントローラ200からディスク装置に新データと新冗長データとを各々書き込むことになる。ここで新データとその保証コードや、新冗長データのサイズが、大サイズブロックのサイズより小さい場合には、図８を用いて説明した小サイズライトが新データ、新冗長データの各々について実行されることとなる。
【００５９】
まず新データをディスク装置に書き込むために、ディスクコントローラ200は新データの書き込み先ディスク装置から、不足分のデータを読み出す（Step3）。そしてディスクアレイコントローラ200は読み出したデータに新データとその保証コードをマージして大サイズブロックを構成し、この大サイズブロックをディスク装置にライトする（Step4）。
【００６０】
次に新冗長データも同様にしてディスク装置に書き込まれる。即ちディスクコントローラ200は新冗長データの書き込み先ディスク装置から、不足分のデータを読み出す(Step5)。そしてディスクアレイコントローラ200は読み出したデータに新冗長データをマージして大サイズブロックを構成し、この大サイズブロックをディスク装置にライトする（Step6）。
【００６１】
以上の処理により、ディスクアレイコントローラ200は、RAIDを構成する複数のディスク装置に対して、大サイズブロック単位でライトデータ及び冗長データを書き込むことができる。
（３）大サイズブロック単位でのリード／モディファイ／ライト処理の他の一例
図１１に示すライト処理では、新データと新冗長データとをディスク装置に書き込むために、ディスクアレイコントローラ200からディスク装置へのアクセスが合計で６回発生する。そこで、ディスク装置へのアクセス回数をより低減可能なライト処理の例を図１２を用いて説明する。
【００６２】
図１２の例では、リード／モディファイ／ライト処理において旧データや旧冗長データをリードする際、旧データや旧冗長データを大サイズブロック単位で読み出すようにする。
【００６３】
つまりリード／モディファイ／ライト処理の際ディスクアレイコントローラ200はまず、旧データを含む大サイズブロックのデータをディスク装置からキャッシュ203に読み出し（Step1）、次に旧冗長データを含む大サイズブロックのデータをディスク装置からキャッシュ203に読み出す(Step2)。次にディスクアレイコントローラ200は読み出した旧データと旧冗長データ、及びホスト100から受信した新データとから排他的論理和計算をして新冗長データを生成する。
【００６４】
次にディスクアレイコントローラ200はStep1で読み出した大サイズブロックのデータのうち、新データ及びその保証コードに相当する部分をこれらのデータを用いて更新し、更新後の大サイズブロックのデータをディスク装置にライトする（Step3）。
【００６５】
新冗長データについても同様に、ディスクアレイコントローラ200は、Step2で読み出した大サイズブロックのデータのうち、新冗長データに相当する部分をこの新冗長データを用いて更新し、更新後の大サイズブロックのデータをディスク装置にライトする(Step4)。
【００６６】
図１２に示すリード／モディファイ／ライト処理の例では、図１１に示す例と比べて、新データや新冗長データを大サイズブロック単位で書き込むために、不足分のデータを事前に読み出す必要がなくなる。即ちかかるリード処理は、冗長データ生成に必要な旧データや旧冗長データのリード処理の際に一緒に実行してしまう（Step1及びStep2）。従って図１２に示す例は図１１に示す例と比べて、リード／モディファイ／ライト処理に要するディスクアレイコントローラ200からディスク装置へのアクセス回数を4回に低減することができる。
【００６７】
この結果、ホスト100から受信した1つのライトコマンドを処理するのに要するディスク装置へのアクセス回数を削減できるので、ディスク装置が有するアクセス性能に比して単位時間当たりに処理できるライトコマンドの数が増える。このためディスクアレイシステム110の性能を向上させることができる。
（３）効果
本実施形態によれば、大サイズブロック単位で新データや新冗長データをディスク装置に書き込むことができる。またこのために必要なディスク装置へのアクセス回数を低減することができ、１つのライトコマンドを処理するために要するディスク装置へのアクセス回数を削減することができる。この結果ディスクアレイシステム110のライト性能を向上させることができる。
【００６８】
なお、本実施形態では、新データや新冗長データを大サイズブロック単位でディスク装置に書きむこととしたが、実際にライトすべきデータ（新データと保証コードの組、若しくは新冗長データ）のサイズが大サイズブロックのサイズ以下の場合は、物理ブロックの倍数単位でデータをディスク装置に書き込むようにしてもよい。
【００６９】
この場合、ディスクコントローラ200は上書きされる予定のデータ及び保証コード（もしくは冗長データ）が格納されている物理ブロックのデータをディスク装置から読み出し、読み出した物理ブロックのデータの一部を新データおよび保証コード（もしくは新冗長データ）で更新し、更新後のデータを物理ブロックの倍数単位でディスク装置に書き込む。
【００７０】
更にリード／モディファイ／ライト処理が必要な場合には、新冗長データを生成するための旧データリードまたは旧冗長データリードの際に、「上書きされる予定のデータ及び保証コード（もしくは冗長データ）が格納されている物理ブロックのデータをディスクから読み出す」という処理を行うことで、第２の実施形態と同様にディスク装置へのアクセス回数を削減することができる。
【００７１】
尚、実施例２では冗長構成をとるディスクアレイシステム110が有するRAID構成の例としてＲＡＩＤ５を挙げたが、ＲＡＩＤ３や、２種類の冗長コードを付加するＲＡＩＤ６など、他の構成であってもよい。これは実施例１も同様である。
【００７２】
また実施例１及び実施例２ではキャッシュコントローラ204にて、データに対する保証コードの付加／削除／チェック、および、冗長データ生成を実施するとしたが、他の部位で実施してもよく、例えば、ＣＰＵ201がメモリ202上にあるプログラムを用いてこれらの処理を実施してもよい。
【００７３】
更に実施例１及び実施例２では、ディスク装置３０１〜３０４の一例としてデータブロックのサイズが固定化されたＡＴＡディスク装置を挙げているが、その他の種類のディスク装置であってもよい。また、ディスク装置が扱うデータブロックサイズが可変であっても、ディスク装置とディスクアレイコントローラ200が扱うデータブロックのサイズが同一にできない場合であれば、実施例１、実施例２は有効である。
【図面の簡単な説明】
【００７４】
【図１】ディスクアレイシステムの構成の一例を示す図である。
【図２】拡張論理ブロックと物理ブロックの対応関係の一例を示す図である。
【図３】大サイズブロックの他の一例を示す図である。
【図４】大サイズブロックの他の一例を示す図である。
【図５】データのライト処理の一例を示す図である。
【図６】ディスク装置にデータがライトされる際の処理の詳細例を示す図である。
【図７】大サイズライト処理の一例を示す図である。
【図８】小サイズライト処理の一例を示す図である。
【図９】リード処理の一例を示す図である。
【図１０】RAID５構成のLUに対するライト処理の一例を示す図である。
【図１１】大サイズブロック単位で冗長データを書き込む際の冗長データの生成処理および書き込み処理の一例を示す図である。
【図１２】大サイズブロック単位で冗長データを書き込む際の冗長データの生成処理および書き込み処理の他の一例を示す図である。
【符号の説明】
【００７５】
１００：ホスト
１１０：ディスクアレイシステム
２００：ディスクアレイコントローラ
３００：ディスク群
４００：管理端末
５００：拡張論理ブロック
５１０：物理ブロック
５２０：論理ブロック
５３０：拡張論理ブロック
【図１】
2006195851.tif 000003
【図２】
2006195851.tif 000004
【図３】
2006195851.tif 000005
【図４】
2006195851.tif 000006
【図５】
2006195851.tif 000007
【図６】
2006195851.tif 000008
【図７】
2006195851.tif 000009
【図８】
2006195851.tif 000010
【図９】
2006195851.tif 000011
【図１０】
2006195851.tif 000012
【図１１】
2006195851.tif 000013
【図１２】
2006195851.tif 000014