(57)【特許請求の範囲】
【請求項１】
データリード要求時複数のデータ保持用記憶装置及びパリティ保持用記憶装置のすべてに対してデータリード要求を発行するデータリード要求発行部と、
当該データリード要求発行部によるデータリード要求の発行後、データリード動作が最も遅い１台を除いたすべての記憶装置のデータリード動作が完了した時点で、まだその動作が完了していない記憶装置がデータ保持用記憶装置かパリティ保持用記憶装置かを判定する判定部と、
当該判定部の判定結果に応じて、前記パリティ保持用記憶装置の動作が遅れている場合は、前記複数のデータ保持用記憶装置からのデータを合成して転送する一方、前記データ保持用記憶装置の動作が遅れている場合は、データリード動作が完了した他の複数のデータ保持用記憶装置からのデータ及び前記パリティ保持用記憶装置からのパリティにより遅れて欠落しているデータを再生しつつ各データを合成して転送するデータ転送部とから成ることを特徴とするディスクアレイ装置。
【請求項２】
複数のデータ保持用記憶装置及びパリティ保持用記憶装置に対応してそれぞれ設けられたデータバッファと、
データライト要求時に前記複数のデータ保持用記憶装置及びパリティ保持用記憶装置のすべてに対してデータライト要求を発行するデータライト要求発行部と、
当該データライト要求発行部によるデータライト要求の発行直後、前記複数のデータ保持用記憶装置及びパリティ保持用記憶装置に分割されたデータ及びパリティを転送するとともに、これらを前記データバッファにも転送するデータ転送部と、
当該データ転送部によるデータ転送後、データライト動作が最も遅い１台を除いたすべての記憶装置のデータライト動作が完了した時点で、ライト動作が完了した旨を上位装置に報告すると共に前記除いた１台の記憶装置の少なくとも識別子を不揮発性メモリに格納するライト報告部と、
当該ライト報告部によるデータライトの完了報告後、既にデータライト動作が完了した記憶装置に対応するデータバッファ中のデータを破棄し、その後残りの１台の記憶装置もデータライト動作が完了した時はそれに対応するデータバッファ中のデータも破棄する後処理部とを含み、
前記残りの１台の記憶装置に対応するデータバッファ中のデータが失われた場合に、残り１台の記憶装置を除く記憶装置からのデータにより失われたデータを回復し、前記不揮発性メモリを参照して該残りの１台の記憶装置に前記回復したデータのライト動作を行うことを特徴とするディスクアレイ装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、冗長構造並列分散型ディスクアレイにおいて、アクセス時間を短縮するようにしたディスクアレイ装置に関するものである。
【０００２】
【従来の技術】
近年における半導体技術の躍進、パイプライン方式等の計算機アーキテクチャの採用により、コンピュータシステムの各構成要素の性能、信頼性は飛躍的に向上している。一方、機構デバイスを中心とする二次記憶装置の性能・信頼性向上は他の構成要素には及ばず、コンピュータシステム全体の処理能力のボトルネックとなっている。
ところで、二次記憶の性能と信頼性を、現実的なコストの元に改善するため、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ  ）アーキテクチャのディスクアレイが提唱されている。このようなディスクアレイは複数の二次記憶装置により構成され、データを複数の装置に分割して保存する。そして、アクセスを並列に行なうことによりデータ転送を高速化する。一方、１つの二次記憶装置にパリティを格納し、いずれか１つの二次記憶装置の障害に対応できるようにしている。
【０００３】
【発明が解決しようとする課題】
しかしながら、上述した従来の技術には、次のような課題があった。
即ち、二次記憶装置として一般に採用されているものはハードディスクドライブであり、アクセスの際は回転待ち時間を伴なう。例えば、４台の装置を使用する場合は４台分の回転待ち時間が生じる。この場合、高価なシステムではスピンドル同期機能により各ディスクの回転を同期させて待ち時間を短縮することができるが、小型で安価な普及品にはこのようなスピンドル同期機能を持たないものが多い。
従って、例えば、リード時には４台のデータディスクの回転待ちのため、単一のハードディスクへのアクセスに比較して回転待ち時間が増加する。また、ライト時にはデータディスクが４台であるとすると、パリティディスクにもパリティをライトする必要があるので、５台のディスクの回転待ちを行なう必要があり、回転待ち時間が更に増加する。これらの増加時間の割合は、シミュレーションを使った実験等の結果、リード時は約６０％、ライト時は約６６％であることがわかっている。
【０００４】
【課題を解決するための手段】
本発明のディスクアレイ装置は、上述した課題を解決するため、以下の点を特徴とするものである。
（１）
１）データリード要求時に複数のデータ保持用記憶装置及びパリティ保持用記憶装置のすべてに対してデータリード要求を発行するデータリード要求発行部を備える。
２）当該データリード要求発行部によるデータリード要求の発行後、データリード動作が最も遅い１台を除いたすべての記憶装置のデータリード動作が完了した時点で、まだその動作が完了していない記憶装置がデータ保持用記憶装置かパリティ保持用記憶装置かを判定する判定部を備える。
３）当該判定部の判定結果に応じて、パリティ保持用記憶装置の動作が遅れている場合は、複数のデータ保持用記憶装置からのデータを合成して転送する一方、データ保持用記憶装置の動作が遅れている場合は、データリード動作が完了している他の複数のデータ保持用記憶装置からのデータ及びパリティ保持用記憶装置からのパリティにより遅れて欠落しているデータを再生しつつ各データを合成して転送するデータ転送部を備える。
【０００５】
（２）
１）複数のデータ保持用記憶装置及びパリティ保持用記憶装置に対応してそれぞれ設けられたデータバッファを備える。
２）データライト要求時に複数のデータ保持用記憶装置及びパリティ保持用記憶装置のすべてに対してデータライト要求を発行するデータライト要求発行部を備える。
３）当該データライト要求発行部によるデータライト要求の発行直後、複数のデータ保持用記憶装置及びパリティ保持用記憶装置に分割されたデータ及びパリティを転送するとともに、これらをデータバッファにも転送するデータ転送部を備える。
４）当該データ転送部によるデータ転送後、データライト動作が最も遅い１台を除いたすべての記憶装置のデータライト動作が完了した時点で、ライト動作が完了した旨を上位装置に報告すると共に前記除いた１台の記憶装置の少なくとも識別子を不揮発性メモリに格納するライト報告部を備える。
５）当該ライト報告部によるデータライトの完了報告後、既にデータライト動作が完了した記憶装置に対応するデータバッファ中のデータを破棄し、その後残りの１台の記憶装置もデータライト動作が完了した時はそれに対応するデータバッファ中のデータも破棄する後処理部を備える。
６）前記残りの１台の記憶装置に対応するデータバッファ中のデータが失われた場合に、残り１台の記憶装置を除く記憶装置からのデータにより失われたデータを回復し、前記不揮発性メモリを参照して該残りの１台の記憶装置に回復したデータのライト動作を行う。
【０００６】
【作用】
（１）
リード時に、例えば、５台の記憶装置のうち任意の４台に対してアクセスが完了すれば、判定部によりこれが判定され、データに欠損があればデータ転送部で欠損したデータがパリティにより復元され、結合されて転送される。この結果、データリードに際し、なるべく動作の速い記憶装置が使用でき、アクセス速度を向上させることができる。
【０００７】
（２）
ライト時にも、リード時と同様に、例えば５台の記憶装置のうち任意の４台に対してアクセスが完了すれば、その４台の記憶装置に格納されたデータを読み出すことにより他の１台の記憶装置に格納されるべきデータを再生することができる。従って、その時点でライト動作を完了できる。この結果、データリードの場合と同様に、なるべく動作の速い記憶装置を使用してアクセス速度を向上させることができる。
【０００８】
【実施例】
以下、本発明の実施例を図面を参照して詳細に説明する。
図１は、本発明のディスクアレイ装置の一実施例のブロック図である。
図示の装置は、データリード要求発行部１、データライト要求発行部２、判定部３、データ転送部４、データバッファ５１〜５５、ライト報告部６、後処理部７を備えている。
データリード要求発行部１、データライト要求発行部２は、主制御部１０に設けられている。主制御部１０は、ディスクアレイ装置１１の全体を制御する。この主制御部１０には、不揮発性メモリ１２が設けられている。
【０００９】
データリード要求発行部１は、ホスト計算機２０からのデータリード要求時にデータ制御部１３を介してデータ保持用記憶装置２１〜２４及びパリティ保持用記憶装置２５のすべてに対してデータリード要求を発行する。
データライト要求発行部２は、データリード要求発行部１と同様に、ホスト計算機２０からのデータライト要求時にデータ制御部１３を介してデータ保持用記憶装置２１〜２４及びパリティ保持用記憶装置２５のすべてに対してデータライト要求を発行する
判定部３、データ転送部４、ライト報告部６、後処理部７は、データ制御部１３に備えられている。データ制御部１３は、データをＲＡＩＤレベル３に合せて処理し、データ保持用記憶装置２１〜２４及びパリティ保持用記憶装置２５に対するアクセスを制御する。
【００１０】
判定部３は、データリード要求発行部１によるデータリード要求の発行後、データ保持用記憶装置２１〜２４及びパリティ保持用記憶装置２５からのデータリード動作の完了報告を監視する。そして、動作が最も遅い１台を除いたすべての記憶装置のデータリード動作が完了した時点で、まだその動作が完了していない記憶装置がデータ保持用記憶装置かパリティ保持用記憶装置かを判定する。即ち、５台の記憶装置からの完了報告を順次記憶していき、４台までの完了報告があった時点でまだ完了報告のない記憶装置を検出する。
【００１１】
データ転送部４は、判定部３の判定結果に応じて、パリティ保持用記憶装置２５の動作が遅れている場合は、データ保持用記憶装置２１〜２４からのデータを合成して主制御部１０を介してホスト計算機２０に転送する。一方、データ保持用記憶装置２１〜２４のいずれかの動作が遅れている場合は、パリティ保持用記憶装置２５からのパリティにより遅れて欠落しているデータを再生する。そして、再生したデータを含めた各データを合成してホスト計算機２０に転送する。
データバッファ５１〜５５は、不揮発性メモリ等から成り、複数のデータ保持用記憶装置２１〜２４及びパリティ保持用記憶装置２５に対応してそれぞれ設けられている。これらのデータバッファ５１〜５５には、データライト要求発行部２によるデータライト要求の発行直後、データ転送部４により複数のデータ保持用記憶装置２１〜２４及びパリティ保持用記憶装置２５に分割されたデータ及びパリティが転送されるとともに、それと同一のデータ及びパリティが転送される。
【００１２】
ライト報告部６は、データ転送部４によるデータ転送後、データライト動作が最も遅い１台を除いたすべての記憶装置のデータライト動作が完了した時点で、ライト動作が完了した旨を上位装置であるホスト計算機２０に報告する。即ち、５台の記憶装置からの完了報告を順次記憶していき、４台までの完了報告があった時点でまだ完了報告のない記憶装置を検出する。この検出時点でホスト計算機２０への完了報告を行ない、検出結果は後処理部７へ渡す。
後処理部７は、ライト報告部６によるデータライトの完了報告後、既にデータライト動作が完了した記憶装置に対応するデータバッファ５１〜５５中のデータを破棄する。そして、その後残りの１台の記憶装置もデータライト動作が完了した時はそれに対応するデータバッファ中のデータも破棄する。
【００１３】
データ保持用記憶装置２１〜２４は、ハードディスク等から成る二次記憶デバイスであり、データをバイト単位に分散して格納する。
パリティ保持用記憶装置２５も、データ保持用記憶装置２１〜２４と同様に、ハードディスク等から成る二次記憶デバイスであり、分割データＡ〜Ｄに分散したデータに対するパリティを格納する。
【００１４】
次に、上述したディスクアレイ装置の動作を説明する。
まず、ＲＡＩＤレベル３のディスクアレイ装置の一般的な動作を詳細に説明する。
図２は、ＲＡＩＤレベル３のディスクアレイ装置のデータ及びパリティの分散形式を示した図である。
ホスト計算機２０からのデータは複数のデータ保持用記憶装置２１〜２４に、バイト単位でｄ０〜ｄ３、ｄ４〜ｄ７の順に格納される。これらの記憶装置のバイト単位のデータに対して、データライト時にそのパリティｐ１、ｐ２が生成されてパリティ保持用記憶装置２５に格納される。一般に、ＲＡＩＤレベル３のディスクアレイ装置では、このようにデータをバイト単位で複数の記憶装置に分散して格納するため、データを高速にリード／ライト可能であり、またパリティ保持用記憶装置２５を有しているため、複数の記憶装置のうちの１台が故障してもディスクアレイ装置１１としてはデータが失われることがなく、高速性と信頼性が発揮される。
【００１５】
次に、図１、図２を用いてＲＡＩＤレベル３のディスクアレイ装置のデータライト動作、データリード動作、単一ディスクドライブ、障害時のデータライト動作を説明する。
ホスト計算機２０からのデータライト要求に対して、主制御部１０のデータライト要求発行部２はデータ保持用記憶装置２１〜２４及びパリティ保持用記憶装置２５にデータライト要求を発行する。そして、これらの記憶装置のデータ受理準備ができた時点でホスト計算機２０からのライトデータをデータ転送部４により各記憶装置に転送する。このとき、ライトデータはデータ保持用記憶装置２１〜２４に対し、バイト単位でインタリーブし、同時にこれらの記憶装置のデータバイトに対するパリティバイトを図２中の式に従って生成し、パリティ保持用記憶装置２５に転送する。
【００１６】
次に、このようにして書き込まれたデータを本発明に係る手順で読み出す動作を説明する。
図３は、本発明に係るデータリード手順の説明図である。
図示のａ，ｂ，ｃ，ｄ，ｐは、データ保持用記憶装置２１〜２４及びパリティ保持用記憶装置２５から得られるデータバイト及びパリティバイトである。ホスト計算機２０からのデータリード要求に対して、主制御部１０のデータリード要求発行部１はデータ保持用記憶装置２１〜２４及びパリティ保持用記憶装置２５のすべてにデータリード要求を発行する。このデータリード要求を受けてデータ保持用記憶装置２１〜２４及びパリティ保持用記憶装置２５の各ディスクドライブはシーク及びスピンドルの位置付けの完了後、データ転送を実行できる状態となる。
【００１７】
ここで、スピンドルの位置付けの一番遅かった、又はシークエラー、セレクタ交代を発生させたディスクドライブをデータ保持用記憶装置２４とする。この場合、図３（ａ）に示すように、データ保持用記憶装置２１〜２３及びパリティ保持用記憶装置２５のディスクドライブの転送準備が整った時点でデータ制御部１３のデータ転送部４はバス上のデータバイトａ，ｂ，ｃ，ｐの取込みを行なう。そして、データ転送部４内のパリティ生成器は得られたデータバイトａ，ｂ，ｃ，ｐにより欠落しているデータバイトｄを生成し、データバイトａ，ｂ，ｃ，ｄを主制御部１０を介してリードの要求元であるホスト計算機２０に転送する。
このようにして、スピンドルの位置付けの遅れ、又はシークエラー、セレクタ交代等により、動作が最も遅いディスクドライブの影響を除去することができ、データリード動作を高速化することができる。
【００１８】
次に、本発明に係る手順でデータを書き込む動作を説明する。
図４は、本発明に係るデータの同期ライト手順の説明図である。
図示のａ，ｂ，ｃ，ｄ，ｐは、データ保持用記憶装置２１〜２４及びパリティ保持用記憶装置２５に転送されるべきデータバイト及びパリティバイトである。ホスト計算機２０からのデータの同期ライト要求に対して主制御部１０のデータライト要求発行部２はデータ保持用記憶装置２１〜２４及びパリティ保持用記憶装置２５のすべてのディスクドライブに対してデータライト要求を発行する。このデータライト要求を受けて各ディスクドライブはライトデータの取込みを開始する。そして、データバイトａ〜ｄ、パリティバイトｐを各ディスクドライブに転送すると同時にこれらのバイトを対応する各データバッファ５１〜５５にも書き込む。
【００１９】
すべてのデータバイトａ〜ｄ及びパリティバイトｐの転送後、各ディスクドライブはシーク、スピンドルの位置付けを経て媒体への書き込みを行ない、データライトとの完了報告を行なう。この完了報告のタイミングはスピンドルの位置付けの差、又はシークエラー、セクタ交代の影響により各ディスクドライブで差異がある。このため、例えば、データ保持用記憶装置２４のディスクドライブの完了報告が遅れた場合、ライト報告部６は残りのデータ保持用記憶装置２１〜２３及びパリティ保持用記憶装置２５のディスクドライブから完了報告を受けた時点でホスト計算機２０に対して完了報告を行なう。
【００２０】
この段階でデータバッファ５１〜５３、５５中のデータは必要なくなるため、破棄、若しくはその領域を再利用できるようにする。このとき、不揮発性メモリ１２に完了報告を行なっていないディスクドライブの識別子、要求アドレス、データ長、完了報告の無いことを示すフラグを記憶する。その後、後処理部７がディスクドライブからの完了報告を受けてバッファのデータを破棄、若しくはその領域を再利用できるようにし、かつ不揮発性メモリ１２の内容を無効にする。これにより、ホスト計算機２０からのライト要求に対する一連の処理を終える。
このようにして、スピンドルの位置付けの遅れ、又はシークエラー、セレクタ交代等により、動作が最も遅いディスクドライブの影響を除去することができ、データライト動作を高速化することができる。
【００２１】
尚、ホスト計算機２０へのデータライトの完了報告後、アクセスの遅れているディスクドライブからの完了報告を受ける前にディスクアレイ装置１１が電源断等によりダウンした場合は、データバッファ５４中の書き込みデータが失われる。このため、この後のディスクアレイ装置１１の電源の立ち上げ後、不揮発性メモリ１２に残されている情報を元にしてアクセスの遅れているディスクドライブ中の欠落データの回復を行なう。これは、以下の手順で行なう。
【００２２】
まず、不揮発性メモリ１２上の情報を読み出し、どのディスクドライブのどの部分に欠落データが存在するかを識別する。そして、欠落データの存在するディスクドライブにライト要求を発行し、その他のディスクドライブにリード要求を発行する。データの欠落していないディスクドライブからのデータにより、データ制御部１３内のパリティ生成器において図３に示す処理手順に従って欠落データを回復し、欠落データの存在するディスクドライブに転送する。そして、欠落データの転送を終えて、欠落データの存在したディスクドライブからのライトの完了報告を受理した後、不揮発性メモリ１２中の情報を無効化し欠落データの回復処理を終える。
このようにして、電源断による障害にも対応することができる。
【００２３】
尚、本発明は上述した実施例に限定されるものではなく、種々の変形が可能であることはもちろんである。例えば、二次記憶装置の例としてハードディスク装置について説明したが、フロッピディスク装置等でも同様である。また、データバッファを各二次記憶装置に対応して設けるように説明したが、物理的には１つのデータバッファを論理的に分割して使用することも可能である。
【００２４】
【発明の効果】
以上説明したように、本発明のディスクアレイ装置によれば、すべてのディスクドライブに対してアクセス要求を発行して動作の最も遅い１台を除いた他のディスクドライブのみのアクセス動作の完了により上位装置に対する完了報告を行なうようにしたので、リード時及びライト時の双方において、ディスクの回転待ち等のための待ち時間が減少させることができ、アクセス速度の向上を図ることができる。
【図面の簡単な説明】
【図１】本発明のディスクアレイ装置の一実施例のブロック図である。
【図２】ＲＡＩＤレベル３のディスクアレイ装置のデータ及びパリティの分散形式の説明図である。
【図３】本発明に係るデータリード手順の説明図である。
【図４】本発明に係るデータの同期ライト手順の説明図である。
【符号の説明】
１  データリード要求発行部
２  データライト要求発行部
３  判定部
４  データ転送部
６  ライト報告部
７  後処理部
【図１】
0003615250.tif 000002
【図２】
0003615250.tif 000003
【図３】
0003615250.tif 000004
【図４】
0003615250.tif 000005