(57)【要約】【課題】入出力コマンドの遅延を最小限に留めながら、記憶データの再構築処理の進行が早い再構築技術を実現する。【解決手段】複数の記憶媒体が同時に故障した場合にも、処理データの入出力処理の実行が可能なデータ記憶装置を制御する再構築制御方法として、記憶データの再構築要求の検出時、処理データの入出力に使用可能な記憶媒体の数が、処理データの入出力に必要な数＋１以上存在するか否か判定する処理と、肯定結果が得られた場合、使用可能な記憶媒体のうち稼働させる記憶媒体を特定する処理と、稼働する記憶媒体のうち１つを再構築用に、残りを処理データの入出力用に指定すると共に、再構築用の記憶媒体の指定をコマンドサイクル毎にシフトする処理と、記憶媒体の指定に従い、処理データの入出力と再構築用の処理単位の読み出しとを並行して実行し、記憶データの再構築に必要な数の処理単位が全て揃った段階で、記憶データを再構築して再構築先の記憶媒体に記録する処理を有するものを提案する。【選択図】図８
2006285889.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶媒体が同時に故障した場合にも、処理データの入出力処理の実行が可能なデータ記憶装置において、
記憶データの再構築要求の検出時、処理データの入出力に使用可能な記憶媒体の数が、処理データの入出力に必要な数＋１以上存在するか否か判定する使用可能台数判定部と、
処理データの入出力に使用可能な記憶媒体の数が、処理データの入出力に必要な数＋１以上の場合、使用可能な記憶媒体のうち稼働させる記憶媒体を特定する稼働媒体特定部と、
稼働する記憶媒体のうち１つを再構築用に、残りを処理データの入出力用に指定すると共に、再構築用の記憶媒体の指定をコマンドサイクル毎にシフトする用途別媒体指定部と、
前記記憶媒体の指定に従い、処理データの入出力と再構築用の処理単位の読み出しとを並行して実行し、記憶データの再構築に必要な数の処理単位が全て揃った段階で、記憶データを再構築して再構築先の記憶媒体に記録する再構築処理実行部と
を有することを特徴とするデータ記憶装置。
【請求項２】
請求項１に記載のデータ記憶装置は、
パリティデータの記憶媒体を二重化した構造を有する
ことを特徴とするデータ記憶装置。
【請求項３】
請求項１に記載のデータ記憶装置において、
前記処理データは、データサイズの大きいデータである
ことを特徴とするデータ記憶装置。
【請求項４】
請求項１に記載のデータ記憶装置において、
前記処理データは、実時間性の高いデータである
ことを特徴とするデータ記憶装置。
【請求項５】
複数の記憶媒体が同時に故障した場合にも、処理データの入出力処理の実行が可能なデータ記憶装置における記憶データの再構築動作を制御する再構築制御装置において、
記憶データの再構築要求の検出時、処理データの入出力に使用可能な記憶媒体の数が、処理データの入出力に必要な数＋１以上存在するか否か判定する使用可能台数判定部と、
処理データの入出力に使用可能な記憶媒体の数が、処理データの入出力に必要な数＋１以上の場合、使用可能な記憶媒体のうち稼働させる記憶媒体を特定する稼働媒体特定部と、
稼働する記憶媒体のうち１つを再構築用に、残りを処理データの入出力用に指定すると共に、再構築用の記憶媒体の指定をコマンドサイクル毎にシフトする用途別媒体指定部と、
前記記憶媒体の指定に従い、処理データの入出力と再構築用の処理単位の読み出しとを並行して実行し、記憶データの再構築に必要な数の処理単位が全て揃った段階で、記憶データを再構築して再構築先の記憶媒体に記録する再構築処理実行部と
を有することを特徴とする再構築制御装置。
【請求項６】
複数の記憶媒体が同時に故障した場合にも、処理データの入出力処理の実行が可能なデータ記憶装置における記憶データの再構築動作を制御する再構築制御方法において、
記憶データの再構築要求の検出時、処理データの入出力に使用可能な記憶媒体の数が、処理データの入出力に必要な数＋１以上存在するか否か判定する処理と、
処理データの入出力に使用可能な記憶媒体の数が、処理データの入出力に必要な数＋１以上の場合、使用可能な記憶媒体のうち稼働させる記憶媒体を特定する処理と、
稼働する記憶媒体のうち１つを再構築用に、残りを処理データの入出力用に指定する処理と、
前記記憶媒体の指定に従い、処理データの入出力と再構築用の処理単位の読み出しとを並行して実行する処理と、
記憶データの再構築に必要な数の処理単位が全て揃うまで、再構築用の記憶媒体の指定をコマンドサイクル毎にシフトする処理と、
シフト後の前記記憶媒体の指定に従い、処理データの入出力と再構築用の処理単位の読み出しとを並行して実行する処理と、
記憶データの再構築に必要な数の処理単位が全て揃った段階で、記憶データを再構築して再構築先の記憶媒体に記録する処理と
を有することを特徴とする再構築制御方法。
【請求項７】
複数の記憶媒体が同時に故障した場合にも、処理データの入出力処理の実行が可能なデータ記憶装置における記憶データの再構築動作を制御するコンピュータに、
記憶データの再構築要求の検出時、処理データの入出力に使用可能な記憶媒体の数が、処理データの入出力に必要な数＋１以上存在するか否か判定する処理と、
処理データの入出力に使用可能な記憶媒体の数が、処理データの入出力に必要な数＋１以上の場合、使用可能な記憶媒体のうち稼働させる記憶媒体を特定する処理と、
稼働する記憶媒体のうち１つを再構築用に、残りを処理データの入出力用に指定する処理と、
前記記憶媒体の指定に従い、処理データの入出力と再構築用の処理単位の読み出しとを並行して実行する処理と、
記憶データの再構築に必要な数の処理単位が全て揃うまで、再構築用の記憶媒体の指定をコマンドサイクル毎にシフトする処理と、
シフト後の前記記憶媒体の指定に従い、処理データの入出力と再構築用の処理単位の読み出しとを並行して実行する処理と、
記憶データの再構築に必要な数の処理単位が全て揃った段階で、記憶データを再構築して再構築先の記憶媒体に記録する処理と
を実行させることを特徴とするプログラム。
【請求項８】
複数の記憶媒体が同時に故障した場合にも、処理データの入出力処理の実行が可能なデータ記憶装置における記憶データの再構築動作を制御するコンピュータに、
記憶データの再構築要求の検出時、処理データの入出力に使用可能な記憶媒体の数が、処理データの入出力に必要な数＋１以上存在するか否か判定する処理と、
処理データの入出力に使用可能な記憶媒体の数が、処理データの入出力に必要な数＋１以上の場合、使用可能な記憶媒体のうち稼働させる記憶媒体を特定する処理と、
稼働する記憶媒体のうち１つを再構築用に、残りを処理データの入出力用に指定する処理と、
前記記憶媒体の指定に従い、処理データの入出力と再構築用の処理単位の読み出しとを並行して実行する処理と、
記憶データの再構築に必要な数の処理単位が全て揃うまで、再構築用の記憶媒体の指定をコマンドサイクル毎にシフトする処理と、
シフト後の前記記憶媒体の指定に従い、処理データの入出力と再構築用の処理単位の読み出しとを並行して実行する処理と、
記憶データの再構築に必要な数の処理単位が全て揃った段階で、記憶データを再構築して再構築先の記憶媒体に記録する処理と
を実行させることを特徴とするプログラムを記録した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の一つの形態は、複数の記憶媒体が同時に故障した場合にも、処理データの入出力処理の実行が可能なデータ記憶装置に関する。
また発明の一つの形態は、前述したデータ記憶装置における記憶データの再構築動作を制御する再構築制御装置に関する。
また発明の一つの形態は、前述したデータ記憶装置における記憶データの再構築動作を制御する再構築制御方法に関する。
また発明の一つの形態は、前述したデータ記憶装置における記憶データの再構築動作を実現するプログラム及び当該プログラムを格納する記憶媒体に関する。
【背景技術】
【０００２】
大量のディジタルデータを日常的に取り扱うデータ記憶装置には、処理データを高速に読み書きできる処理技術と可用性を実現する処理技術が採用されている。
例えば、処理データを高速に読み書きする処理技術には、ストライピング方式が採用されている。ストライピング方式とは、１つの処理データを複数の処理単位に分割し、これらを並列に配置した複数の記憶媒体に同時に読み書きする技術手法をいう。
また例えば、可用性を実現する処理技術には、冗長データの保存法式が採用されている。一例に、処理データの誤り訂正又は復旧に使用する誤り訂正符号（パリティコード）を保存する方法がある。他の一例に、ミラーリングと呼ばれる方法がある。
【０００３】
現在、大容量記憶装置の記憶媒体は、磁気記憶媒体（ハードディスク）が主流である。このため、前述したデータ記憶装置は、ディスクアレイ装置とも呼ばれている。なお、ディスクアレイ技術の可用性を高めたものをＲＡＩＤ（Redundant Arrays of Inexpensive Disks）という。出願人によるディスクアレイ装置の出願例を以下に示す。
【特許文献１】特開２０００−６６８４５号公報
【特許文献２】特開平１１−４５１５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、ディスクアレイ装置の稼働中には、処理データや冗長データを記憶する記憶媒体に何らかの障害が発生することがある。この場合、障害が発生した記憶媒体をシステムから切り離し、他の記憶媒体に交換する必要がある。この交換には、障害の発生した記憶媒体を物理的にディスクアレイ装置から切り離し、新たな記憶媒体を物理的に接続する方式と、障害の発生した記憶媒体を論理的にディスクアレイ装置から切り離し、予め搭載しておいた予備の記憶媒体を論理的に接続する方式とがある。
いずれの方式を採用する場合にも、交換前の記憶媒体に記憶されていた記憶データを、交換後の記憶媒体に再構築する必要がある。
【０００５】
図１に、既存の再構築処理イメージを示す。図１は、４台のデータディスク装置と２台のパリティディスク装置で構成されるディスクアレイ装置における１つのディスク装置（ドライブ装置）に交換要因が発生した場合の再構築処理イメージを示す。
再構築コマンドの実行手法には、幾つかの方式が存在する。図１は、処理データの入出力コマンド（読み出しコマンド／書き込みコマンド）が連続する場合にも、再構築コマンドが強制的に実行される場合の処理イメージを示している。図１は、再構築コマンドが実行されるタイミングを網掛け表示で示す。
【０００６】
再構築コマンドの実行時には、図１に示すように、交換対象以外の４台のディスク装置から処理データを構成する処理単位が読み出され、交換前のディスク装置に記憶されていた記憶データ（処理単位）が再構築される。再構築後の記憶データ（処理単位）は、同じコマンドサイクルに交換後のディスク装置に記憶される。
図１では、再構築に必要な処理単位が読み出されるコマンドサイクルを“Ｒ”の記号で示す。また、再構築後の記憶データ（処理単位）が書き込まれるコマンドサイクルを“Ｗ”の記号で示す。
このように、従来の再構築処理は、１つのコマンドサイクル中に、再構築に必要な数の処理単位の読み出し、記憶データの再構築、再構築された記憶データの書き込みの全てが実行される。
【０００７】
しかし、この処理手法は、入出力コマンドの実行と排他的にしか実行できない。従って、図２に示すように、入出力コマンドが連続している最中に、再構築コマンドが強制的に実行されると、入出力処理の実行が本来のタイミングから遅延する問題があった。図２では、処理タイミングの遅延を時間軸に対して斜めに引いた矢印で示す。
特に、実時間性の高い処理データを扱う場合やデータサイズの大きい処理データを扱う場合には、本来の入出力処理が遅延する問題がある。
その一方で、本来の入出力処理を優先して、再構築コマンドの実行割合を小さくしたり、再構築コマンドの実行間隔を長くすると、記憶データの再構築処理の進行速度が非常に遅くなる問題がある。
【課題を解決するための手段】
【０００８】
発明者は、以上の技術的課題に着目し、以下の処理機能を有する技術を提案する。
（１）記憶データの再構築要求の検出時、処理データの入出力に使用可能な記憶媒体の数が、処理データの入出力に必要な数＋１以上存在するか否か判定する処理
（２）処理データの入出力に使用可能な記憶媒体の数が、処理データの入出力に必要な数＋１以上の場合、使用可能な記憶媒体のうち稼働させる記憶媒体を特定する処理
（３）稼働する記憶媒体のうち１つを再構築用に、残りを処理データの入出力用に指定すると共に、再構築用の記憶媒体の指定をコマンドサイクル毎にシフトする処理
（４）記憶媒体の指定に従い、処理データの入出力と再構築用の処理単位の読み出しとを並行して実行し、記憶データの再構築に必要な数の処理単位が全て揃った段階で、記憶データを再構築して再構築先の記憶媒体に記録する処理
なお、これらの処理機能は、ソフトウェア処理として実現しても良いし、ハードウェア処理として実現しても良い。また、これらの処理の一部をソフトウェア処理で実現し、残る一部をハードウェア処理で実現しても良い。
【発明の効果】
【０００９】
発明に係る技術の採用により、再構築処理は複数のコマンドサイクルに分散して実行される。すなわち、処理データの入出力と同時並行的に、再構築用の処理単位の読み出しが複数のコマンドサイクルに分散して実行される。そして、記憶データの再構築に必要な数の処理単位が全て揃った段階で記憶データの再構築と再構築先への書き込みが処理データの入出力と同時並行的に実行される。
従って、実時間性の高い処理データやデータサイズの大きい処理データの入出力時にも、これらの入出力にはいかなる遅延も発生させないで、再構築処理を同時並行的に実行できる。
【発明を実施するための最良の形態】
【００１０】
以下、発明に係る技術手法を採用するデータ記憶装置の実施形態例を説明する。
なお、本明細書で特に図示又は記載していない部分には、当該技術分野の周知又は公知技術を適用する。
また以下に説明する実施形態は、発明の一つの実施形態であって、これらに限定されない。
【００１１】
（Ａ）サーバーシステム
（Ａ−１）システム構成
図３に、サーバーシステム１の構成例を示す。サーバーシステム１は、ファイルサーバー３と制御端末５とで構成する。
ファイルサーバー３は、自身の管理するデータ記憶装置（データストレージ）をシステム上の他の端末と共有し、外部から利用できるようにするコンピュータをいう。もっとも、ファイルサーバー３の詳細な内部構成は、適用する業務内容や用途に応じて異なる。図３のファイルサーバー３は、２種類の入出力インターフェースを有するものとして表している。入出力データＳＩ、ＳＯを扱うインターフェースと、入出力データＳＮを扱うインターフェースの２つである。
制御端末５は、ファイルサーバー３の内部動作を制御するコンピュータである。
【００１２】
（Ａ−２）ファイルサーバー
図４に、ファイルサーバー３の内部構成例を示す。なお、図４は、システムが扱う処理データが、映像データや音響データ（音声データ、楽音データその他の音データ）の場合を表している。すなわち、ファイルサーバー３が、いわゆるＡＶサーバーの場合を表している。図４の場合、個別の外部機器とのＡＶデータの入出力はシリアルデータインターフェースＳＩ、ＳＯとファイバーチャネルインターフェースＦＣを通じて実行される。
このファイルサーバー３は、ファイルマネジャー１１、処理ユニット１３、転送マネジャー１５、ファイバーチャネルスイッチ１７、データストレージ１９で構成される。
ファイルマネジャー１１は、サーバー内におけるＡＶデータの入出力を管理するコンピュータである。
【００１３】
処理ユニット１３は、ＡＶデータの符号化処理と復号化処理を実行するデバイスである。例えば、既存の処理ボードやカードで構成する。処理ユニット１３には、シリアルデータインターフェースＳＩだけでなく、ファイバーチャネルインターフェースＦＣからのＡＶデータも入力される。同様に、処理済みのＡＶデータは、シリアルデータインターフェースＳＯだけでなく、ファイバーチャネルインターフェースＦＣからも出力される。なお、処理ユニット１３における処理動作は、制御端末５から与えられる制御信号ＣＮＴによって制御される。
転送マネジャー１５は、外部ネットワークとしてのファイバーチャネルＦＣとの間でＡＶデータの入出力を管理するコンピュータである。
【００１４】
ファイバーチャネルスイッチ１７は、内部ネットワークとしてのファイバーチャネルを通じて伝送されるＡＶデータの中継装置である。因みに、内部ネットワークとしてのファイバーチャネルには、処理ユニット１３、転送マネジャー１５、データストレージ１９が接続されている。
データストレージ１９は、ＡＶデータの蓄積に使用されるデータ記憶装置である。データストレージ１９が、特許請求の範囲におけるデータ記憶装置に対応する。データストレージ１９は、誤り訂正機能付きのディスクアレイ装置を使用する。この形態例では、冗長データとして誤り訂正符号を使用する場合について説明する。
【００１５】
（Ａ−３）データストレージ
データストレージ１９の詳細構成を説明する。図５に、４台のデータディスク装置と２台のパリティディスク装置で構成されるデータストレージ１９の概念構成を示す。この概念構成の場合、データストレージ１９は、アレイコントローラ２１と、６台のハードディスク装置（ドライブ装置）で構成される。
アレイコントローラ２１は、入力データ（処理データ）を複数の処理単位Ｄ０、Ｄ１…ＤＮに分割し、４台のデータディスクに並列的に書き込む処理と、これら４台のデータディスクから対応する処理単位Ｄ０、Ｄ１…ＤＮを読み出して結合し、出力データ（処理データ）として出力する処理とを実行する。
【００１６】
この分割処理は、ストライピングと呼ばれる。なお、アレイコントローラ２１は、分割処理の際に誤り訂正符号（パリティデータ）Ｐを生成する。
誤り訂正符号Ｐは、処理データの読み出し時に参照され、出力データの誤り訂正に使用される他、障害ディスクの交換時に記憶データを再構築するのにも使用される。なお、誤り訂正符号（パリティデータ）Ｐは、全てのハードディスク装置（ドライブ装置）に分散されるように一度に２台づつ記録される。
すなわち、各コマンドサイクルにおいて、６台のうち４台が処理データの入出力に直接寄与する稼働ドライブ装置、残る２台が処理データの誤り訂正や再構築用のパリティドライブ装置として機能する。
図６に、データストレージ１９のハードウェア構成例を示す。データストレージ１９は、入出力インターフェース３１、ＣＰＵ３３、ＲＡＭ３５、誤り訂正部３７、ＲＡＭ３９、ＳＣＳＩインターフェース４１で構成する。
【００１７】
入出力インターフェース３１は、データストレージ１９をファイバーチャネルに接続するインターフェースである。
ＣＰＵ３３は、データストレージ１９の動作を制御するコンピュータである。ＣＰＵ３３が提供する機能は、プログラムを通じて実現される。例えば、処理データの書き込み処理や読み出し処理、障害ディスクの交換に伴う記憶データの再構築処理が実現される。
ＲＡＭ３５は、ファイルマネジャー１１から与えられる処理データの入出力に伴うコマンド（入出力コマンド）を格納する記憶領域である。すなわち、ＲＡＭ３５は、コマンドキューとして機能する。
【００１８】
誤り訂正部３７は、処理データのスイッチング処理、誤り訂正符号の生成と誤り訂正処理を実行する処理デバイスである。なお、処理データ（処理単位）の出力先は、誤り訂正部３７に内蔵されたマトリクススイッチで切り替えられる。
例えば、入力データの書き込み時、マトリクススイッチは、入出力インターフェース３１から入力された処理データに誤り訂正符号を付してＲＡＭ３９に出力する。この後、マトリクススイッチは、ＲＡＭ３９から読み出した処理データをＳＣＳＩインターフェース４１に出力する。
また例えば、出力データの読み出し時、マトリクススイッチは、ＳＣＳＩインターフェース４１から入力された処理データを誤り訂正してＲＡＭ３９に出力する。この後、マトリクススイッチは、ＲＡＭ３９から読み出した処理データを入出力インターフェース３１に出力する。
【００１９】
また例えば、記憶データの再構築時、マトリクススイッチは、ＳＣＳＩインターフェース４１から入力された処理データをＲＡＭ３９に出力する。次に、マトリクススイッチは、ＲＡＭ３９から読み出した処理データから記憶データを再構築し、再構築された記憶データをＲＡＭ３９に出力する。この後、マトリクススイッチは、ＲＡＭ３９から読み出した処理データをＳＣＳＩインターフェース４１に出力する。
ＲＡＭ３９は、この誤り訂正処理の作業領域として使用される。
ＳＣＳＩインターフェース４１は、処理データの分割処理と結合処理を複数のディスク装置との間で実行するインターフェースである。例えば、ＳＡＳ（シリアルアタッチドＳＣＳＩ）を使用する。
ここでの誤り訂正部３７、ＲＡＭ３９、ＳＣＳＩインターフェース４１が図５のアレイコントローラ２１に対応する。
【００２０】
（Ｂ）再構築処理機能
図７に、ＣＰＵ３３によって実現される再構築制御装置５１の機能構成例を示す。この機能構成は、プログラム処理を通じて実現される。
再構築制御装置５１は、使用可能台数判定部５３、稼働媒体特定部５５、用途別媒体指定部５７、再構築処理実行部５９で構成される。
使用可能台数判定部５３は、処理データの入出力に使用可能なディスク装置（記憶媒体）の数が、処理データの入出力に必要な数＋１以上存在するか否か判定する処理デバイスである。この判定では、入出力処理と再構築処理を同時並行して実行する上での前提条件が判定される。この判定には、動作可能であることも含まれる。
【００２１】
この形態例の場合、パリティドライブ装置を含めて５台以上のディスク装置が使用可能か否かを判定することと同じである。これは、６台全てのディスク装置に、処理データを分割した部分データ（処理単位）とパリティデータ（処理単位）Ｐとが分散されて記録されているためである。
なお、予備ディスク装置（障害発生に備えて不稼働の状態で配置されたディスク装置）が搭載されていても、このディスク装置には何らのデータが記録されていないため、処理データの入出力には使用できない。従って、物理的に５台のディスク装置があるだけでは足りず、前述したように、入出力に使用可能なディスク装置という条件が必要となる。
【００２２】
稼働媒体特定部５５は、処理データの入出力に使用可能なディスク装置（記憶媒体）の数が５台以上の場合、使用可能なディスク装置のうち稼働させるディスク装置を特定する処理デバイスである。ここでは、５台のディスク装置を可動ディスク装置に特定する。
用途別媒体指定部５７は、稼働するディスク装置（記憶媒体）のうち１つを再構築用に、残りを処理データの入出力用に指定すると共に、再構築用のディスク装置の指定をコマンドサイクル毎にシフトする処理デバイスである。
すなわち、５台のうち４台のディスク装置を処理データの入出力用に、１台のディスク装置を記憶データの再構築に必要な部分データ（処理単位）の読出用に指定する。
【００２３】
図８に処理イメージを示す。図８は、障害の発生したドライブ０を交換する場合の処理イメージを示す。勿論、記憶データの再構築にも４つのディスク装置から４つの処理単位を収集する必要がある。しかし、この形態例では、処理データの入出力と同時並行して再構築処理を実行するため（バックグラウンド処理のため）、再構築に必要な処理単位の読み出しを４つのコマンドサイクルに分散する。
図８の場合、４つのコマンドサイクル中に、再構築用に指定するディスク装置を、ドライブ１→ドライブ２→ドライブ３→ドライブ４の順にシフトする。なお、次の４つのコマンドサイクルでは、再構築用に指定するディスク装置を、ドライブ５→ドライブ１→ドライブ２→ドライブ３の順にシフトする。
なお、再構築用に読み出された部分データ（処理単位）は、４つ全ての部分データ（処理単位）が揃うまでＲＡＭ３９に保存される。
【００２４】
再構築処理実行部５９は、用途に応じたディスク装置の指定に従い、処理データの入出力と再構築用の処理単位の読み出しとを並行して実行し、記憶データの再構築に必要な数の処理単位が全て揃った段階で、記憶データを再構築して再構築先のディスク装置（記憶媒体）に記録する処理デバイスである。
例えば、図８の場合、最初のコマンドサイクルで、ドライブ２〜５を用いた処理データの入出力と、ドライブ１を用いた再構築用の処理単位の読み出しとを同時並行的に実行する。次のコマンドサイクルでは、ドライブ１、３〜５を用いた処理データの入出力と、ドライブ２を用いた再構築用の処理単位の読み出しとを同時並行的に実行する。続く２つのコマンドサイクルについても同様である。
【００２５】
そして、ある記憶データの再構築用の処理単位がドライブ１〜４から読み出されると、それらをＲＡＭ３９から誤り訂正部３７に読み出して、ドライブ０の記憶データを再構築し、ＲＡＭ３９に保存する。そして、再構築された記憶データ（処理単位）をＲＡＭ３９から誤り訂正部３７、ＳＣＳＩインターフェース４１を経てドライブ０に書き込む。
このドライブ０への書き込み処理も、処理データの入出力と同時並行して実行される。図８の場合、ドライブ０への記憶データ（処理単位）の書き込みは、次の記憶データの再構築に必要な部分データ（処理単位）の読み出し開始と同時に実行される。
【００２６】
図９、図１０に、ディスクアレイ装置の再構築処理機能に関する処理手順例を示す。この再構築処理機能は、ＣＰＵ３３に常駐するプログラムにより実現される。
このプログラムは、まずキューテーブル（ＲＡＭ３５）に入出力コマンドが存在するか否かを判定する（Ｐ１）。入出力コマンドが存在することは、入出力コマンドの実行中又は処理待ち中を意味する。ここで、キューテーブルが空か否かを判定するのは、空の場合には既存の処理手法で記憶データの再構築処理を実行できるためである。すなわち、１つのコマンドサイクル中に１つの記憶データを再構築できるためである。従って、この判定ステップで否定結果が得られた場合、このプログラムを終了する。
【００２７】
入出力コマンドが一つ以上存在した場合（肯定結果が得られた場合）、プログラムは、処理データの入出力に使用可能なディスク装置（記憶媒体）の数が、処理データの入出力に必要なディスク装置の数＋１以上存在するか否か判定する（Ｐ２）。処理データの入出力と同時並行して記憶データを再構築するには、処理データの入出力に使用可能なディスク装置の数が、処理データの入出力に必要なディスク装置の数＋１以上必要となるためである。この形態例の場合、５台以上のディスク装置が処理データの入出力に使用可能な否か判定する。
【００２８】
ここで、否定結果が得られた場合（例えば、故障したディスク装置が２台以上の場合）、プログラムは終了する。この形態例の場合、２台のディスク装置が故障しても、処理データの入出力に使用できるディスク装置を４台確保できる。従って、処理データの入出力又は記憶データの再構築のいずれか一方のみを実行できるが、２つの処理を１コマンドサイクル中に同時並行して実行することはできない。このため、処理データの入出力に必要なディスク装置が５台以上ない場合には、プログラムを終了する。
【００２９】
一方、処理データの入出力に必要なディスク装置が５台以上あった場合（肯定結果が得られた場合）、プログラムは、使用可能な記憶媒体のうち稼働させるディスク装置（記憶媒体）を決定する（Ｐ３）。
この処理は、パリティディスク装置が２台以上ある場合に有効な処理である。この処理により、処理データの入出力と記憶データの再構築に使用する５台の稼働ディスク装置が決定される。
【００３０】
次に、プログラムは、稼働ディスク装置（記憶媒体）のうち１つを再構築用に、残りを処理データの入出力用に指定する（Ｐ４、Ｐ５）。これは、図８を用いて説明したように、５台のディスク装置のうち１台を再構築用に、４台を入出力用に指定する処理である。
ディスク装置が指定されると、プログラムは、処理データの入出力と再構築用の処理単位の読み出しとを並行して実行する（Ｐ６）。なお、入出力コマンドが書き込みコマンドの場合には、ファイバーチャネルＦＣから入力された処理データが稼働ディスク装置に記録される。また、入出力コマンドが読み出しコマンドの場合には、稼働ディスク装置から読み出した処理データがファイバーチャネルＦＣへ出力される。
【００３１】
次に、プログラムは、記憶データの再構築に必要な数の処理単位が全て揃ったか否かを判定する（Ｐ７）。記憶データの再構築には異なる４台のディスク装置から処理単位を集める必要があるためである。
揃っていない場合（否定結果が得られた場合）、プログラムは処理Ｐ４に戻る。すなわち、プログラムは、再構築用に使用する新たなディスク装置を１つ指定し、残り４台のディスク装置を処理データの入出力用に指定する（Ｐ４、Ｐ５）。
やがて、処理Ｐ７において肯定結果が得られると（記憶データの再構築に必要な４つの処理単位が読み出されると）、プログラムは、読み出された４つの処理単位を用いて記憶データを再構築し、交換後のディスク装置に出力する（Ｐ８）。
【００３２】
この処理が繰り返し実行されることにより、記憶データの再構築処理が確実に実行される。図８の場合、４つのコマンドサイクルに１回の割合で記憶データの再構築が実行される。
図１１に、このプログラムによって実現される再構築処理のイメージを示す。
図１１に示すように、入出力コマンドの実行遅延は原理的に発生しない。すなわち、記憶データの再構築処理中も、処理データの入出力処理を遅延無く実行できる。勿論、記憶データの再構築も４つのコマンドサイクルに１回の割合で確実に実行されるため、再構築処理に要する時間が短縮される。
【００３３】
（Ｃ）効果
以上のように、この形態例に係る再構築技術を用いれば、入出力コマンドの実行遅延を最小限に抑制しつつ、記憶データの再構築処理の進行を促進できる。
従って、データサイズの大きい処理データや実時間性の要求が高い処理データを取り扱うデータストレージに好適である。例えばＡＶデータを扱うデータストレージに好適である。
【００３４】
（Ｄ）他の実施形態
（ａ）前述の形態例では、４台のデータディスク装置に対して２台のパリティディスク装置を用意する構成のディスクアレイ装置について説明した。
しかし、データディスク装置の台数に対して２台以上のパリティディスク装置を用意する構成のディスクアレイ装置であれば、形態例で説明した技術を同様に適用できる。例えば、データディスク装置を２台、パリティディスク装置を２台とする構成でも良い。また例えば、データディスク装置を２台、パリティディスク装置を３台とする構成でも良い。
【００３５】
（ｂ）前述の形態例では、記憶データの再構築に使用するディスク装置を、稼働ディスク装置の全てに順番に割り当てる場合について説明した。すなわち、図８に示すように、ドライブ１〜ドライブ５の５台全てを使用した。
しかし、図１２に示すように、稼働ディスク装置のうち一部のみを再構築用に使用する手法を適用しても良い。図１２の場合、ドライブ１〜ドライブ４の４台のみを再構築用の読み出しに使用する。
【００３６】
（ｃ）前述の形態例では、記憶データの再構築に必要な４つの処理単位が全て揃った次のコマンドサイクルに再構築された記憶データを書き込む手法について説明した。すなわち、図８に示すように、４つ目の処理単位が読み出された次のコマンドサイクルに再構築された記憶データを書き込む場合について説明した。図８では、書き込み対にミングを“Ｗ”の記号で示す。
しかし、図１２に示すように、記憶データの再構築に必要な４つの処理単位が全て揃った同じコマンドサイクルに再構築された記憶データを書き込む手法を適用しても良い。
【００３７】
（ｄ）前述の形態例では、処理データの送受信に、ファイバーチャネルインターフェースＦＣを用いる場合について説明した。
しかし、他のＬＡＮインターフェースを用いても良い。
（ｅ）前述の形態例では、データ記憶装置を構成する記憶媒体に磁気ディスク装置（いわゆるハードディスク装置）を用いる場合について説明した。
しかし、データ記憶装置を構成する記憶媒体には他の種類の記憶媒体を適用しても良い。例えば、半導体メモリをアレイ状に配列して使用しても良い。この構成を採用すれば、より高速なデータの入出力が可能となる。
【００３８】
（ｆ）前述の形態例では、ファイバーチャネルに接続されるファイルサーバーについて説明した。すなわち、図４に示すように複数台のデータストレージを内蔵するような大型のストレージシステムについて説明した。
しかし、１台のデータストレージで構成されるストレージシステムにも同様に適用できる。なお、ストレージシステムは、放送サービス、データ配信サービス、通信サービス、医療データサーバ、行政機関、研究所、企業その他のデータ蓄積サーバー等の業務用システムのみならず、個人や家庭で用いられるシステムにも適用できる。
（ｇ）前述の実施形態には、発明の趣旨の範囲内で様々な変形例が考えられる。また、本明細書の記載に基づいて創作される各種の変形例及び応用例も考えられる。
【図面の簡単な説明】
【００３９】
【図１】記憶データの再構築処理イメージの従来例を示す図である。
【図２】再構築コマンドの実行による入出力コマンドの遅延を説明する図である。
【図３】サーバーシステムの構成例を示す図である。
【図４】ファイルサーバーの内部構成例を示す図である。
【図５】データストレージの概念構成を示す図である。
【図６】データストレージのハードウェア構成例を示す図である。
【図７】再構築制御装置の機能構成例を示す図である。
【図８】形態例に係る記憶データの再構築処理イメージを示す図である。
【図９】再構築処理機能の処理手順例を示す図である。
【図１０】再構築処理機能の処理手順例を示す図である。
【図１１】入出力処理と再構築処理の実行イメージを示す図である。
【図１２】記憶データの他の再構築処理イメージ例を示す図である。
【符号の説明】
【００４０】
３      ファイルサーバー
１９    データストレージ
５１    再構築制御装置
５３    使用可能台数判定部
５５    稼働媒体特定部
５７    用途別媒体指定部
５９    再構築処理実行部
【図１】
2006285889.tif 000003
【図２】
2006285889.tif 000004
【図３】
2006285889.tif 000005
【図４】
2006285889.tif 000006
【図５】
2006285889.tif 000007
【図６】
2006285889.tif 000008
【図７】
2006285889.tif 000009
【図８】
2006285889.tif 000010
【図９】
2006285889.tif 000011
【図１０】
2006285889.tif 000012
【図１１】
2006285889.tif 000013
【図１２】
2006285889.tif 000014