(57)【特許請求の範囲】
【請求項１】
第１ループと第２ループを含む複数のループが接続された制御装置と、前記ループに接続された複数のディスク装置と、複数のスペアディスクと、を備えたディスクアレイ装置であって、
前記複数のディスク装置は、異なる前記ループに接続された前記ディスク装置でパリティグループを構成し、
前記第１ループには、前記複数のスペアディスクのうち第１スペアディスクが接続され、
前記第２ループには、前記複数のスペアディスクのうち第２スペアディスクが接続され、
前記制御装置は、規定の閾値を越える回数のエラーが前記複数のディスク装置のうち前記第１ループに接続された第１ディスク装置から検出された場合、前記第１ディスク装置内のデータのコピー先として前記第１ループに接続された前記第１スペアディスクを選択し、前記第１ディスク装置からデータの読み出しを行い、
前記読み出しが成功したとき、
前記第１ディスク装置から読み出されたデータが前記第１スペアディスクに書き込まれ、
前記読み出しが失敗したとき、
前記第１ディスク装置と同じパリティグループを構成する前記ディスク装置内のデータを用いて前記第１ディスク装置内のデータが再生され、前記再生されたデータが、前記第１スペアディスクに書き込まれることを特徴とするディスクアレイ装置。
【請求項２】
請求項１に記載のディスクアレイ装置であって、
規定の閾値を越える回数のエラーが検出された前記第１ディスク装置が記憶するデータに対する書き込み要求を受領した場合、
前記第１ディスク装置に対する前記データの書き込みと、前記第１スペアディスクに対する前記データの書き込みと、の両方を行うことを特徴とするディスクアレイ装置。
【請求項３】
請求項１に記載のディスクアレイ装置であって、
前記制御装置は、前記第１ループを制御する第１ループ制御部と、前記第２ループを制御する第２ループ制御部とを備え、
前記第１ループと、前記第２ループと、スイッチに接続され、
前記第１ループ制御部が故障した場合、
前記第１ループと前記第２ループとの間の接続を前記スイッチを介して確立し、
前記第２ループ制御部は前記第１ループに接続される第２ディスク装置に対する読み出し処理を、前記第２ループ、前記スイッチ、及び前記第１ループを介して行うことを特徴とするディスクアレイ装置。
【請求項４】
複数のスペアディスク装置と、複数のディスク装置と、第１ループと第２ループを含む複数のループに接続された制御装置と、を備えるディスクアレイ制御装置における制御方法であって、
前記複数のディスク装置は、異なる前記ループに接続された前記ディスク装置でパリティグループを構成するものであり、
前記第１ループに前記複数のスペアディスクのうち第１スペアディスクが接続されるものであり、
前記第２ループには前記複数のスペアディスクのうち第２スペアディスクが接続されるものであり、
前記制御方法は、
前記複数のディスク装置のいずれかのディスク装置において、規定の閾値を超える回数のエラーが発生したか否かを検出するステップと、
規定の閾値を越える回数のエラーが、前記複数のディスク装置のうち前記第１ループに接続された第１ディスク装置から検出された場合、
前記第１ディスク装置内のデータのコピー先として、前記第１ループに接続された第１スペアディスクを選択するステップと、
前記第１ディスク装置からデータの読み出しを行うステップと、
前記第１ディスク装置からのデータの読み出しが成功したとき、
前記第１ディスク装置から読み出されたデータを前記第１スペアディスクに書き込むステップと、
前記第１ディスク装置からのデータの読み出しが失敗したとき、
前記第１ディスク装置と同じパリティグループを構成する前記ディスク装置内のデータを用いて前記第１ディスク装置内のデータを再生し、前記再生されたデータを、前記第１スペアディスクに書き込むステップと、
を備えること特徴とする制御方法。
【請求項５】
請求項４に記載の制御方法であって、
規定の閾値を越える回数のエラーを検出した前記第１ディスク装置に対するデータの書き込み要求を受領した場合、
前記第１ディスク装置に前記データを書き込むステップと、
前記第１スペアディスクに前記データを書き込むステップと、
を備えることを特徴とするディスクアレイ装置の制御方法。
【請求項６】
請求項４に記載のディスクアレイ装置の制御方法であって、
前記、第１ループ制御部が故障した場合、
前記第１ループと前記第２ループとの間の接続を前記スイッチを介して確立するステップと、
前記第２ループ制御部は前記第１ループに接続される第２ディスク装置に対する読み出し処理を、前記第２ループ、前記スイッチ、及び前記第１ループを介して行うステップと、
を備えることを特徴とするディスクアレイ装置の制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディスクアレイ装置の制御に関して、ディスクアレイ装置を構成しているディスク装置が閉塞したとき、或いはディスク装置で所定のしきい値を超える回数のエラーが検出がされたときに、そのディスク装置が記憶しているデータをスペアディスクに複写する方式に関する。
【０００２】
【従来の技術】
スペアディスクに関しては、例えば、特開平７−２１０３３３号公報に記載の発明がある。
【０００３】
この公報に記載のように従来は、ある所定のしきい値を超える回数のエラーが検出がされたディスク装置や障害を起こして閉塞したディスク装置中のデータをスペアディスクに再生或いは複写する場合、再生・複写を制御装置が管理していたため、閉塞或いはしきい値を超える回数のエラーが検出がされたディスク中のデータを、一旦制御装置に読み込み、その後スペアディスクに対して書き出さざるを得なかった。
【０００４】
このためこの処理が始まると、制御装置上にあるマイクロプロセッサやメモリ等の資源が、この読み込みと書き込み処理のために使われてしまい、同時に行われているホストコンピュータからの要求に基づく読み出し／書き込み処理に割当てるべき資源が少なくなり、ディスクアレイ装置としての読み出し／書き込み性能が下がってしまっていた。またスペアディスクへのデータの書き込み自体も時間がかかっていた。
【０００５】
【発明が解決しようとする課題】
ディスクアレイ装置を構成するディスク装置が閉塞してしまったとき、或いはディスク装置でしきい値を超える回数のエラーが検出がされたとき、そのディスク装置中のデータをスペアディスク中に再生或いは複写しなくてはならない。
【０００６】
これらのデータの演算再生処理や複写処理は、制御装置がホストコンピュータからの要求に基づく読み出し／書き込み処理と並列に行われる必要がある。しかし制御装置上にあるマイクロプロセッサやメモリ等の資源が、この複写処理のために使われてしまい、同時に行われるべき読み出し／書き込み処理に割当てるべき資源が少なくなり、ディスクアレイ装置としての読み出し／書き込み性能が下がってしまう。
【０００７】
本発明は、これらの処理に割かれる制御装置の資源を減らし（データ転送に関しては無くし）、ホストコンピュータからの要求に基づく読み出し／書き込み処理に充てることで、ディスクアレイ装置の読み出し／書き込み性能を向上させることにある。
【０００８】
【課題を解決するための手段】
上記の課題を解決するために、制御装置の同一制御部配下の転送媒体としての通信路（バス等）にディスク装置とスペアディスクとを備え、制御装置を通さずにしきい値を超える回数のエラーが検出がされたディスク装置中のデータをスペアディスクに対して複写する。
【０００９】
また、スペアディスクに対してデータの演算再生処理や複写処理は、制御装置がホストコンピュータからの要求に基づく読み出し／書き込み処理と並列に行われる必要がある。単純に同一制御部配下の転送媒体にディスク装置とスペアディスクとを備えたのみでは、演算再生処理や複写処理と読み出し／書き込み処理とを同時に行うことはできない場合が有る。
【００１０】
また、制御装置上にあるマイクロプロセッサやメモリ等の資源が、この複写処理のために使われてしまい、同時に行われるべき読み出し／書き込み処理に割当てるべき資源が少なくなり、ディスクアレイ装置としての読み出し／書き込み性能が下がってしまう。
【００１１】
そこで、通信路を多重通信を行うことが出来る媒体（例えば時分割多重通信可能なファイバチャネルによるループ）とする。
【００１２】
そして、制御装置がスペアディスクにコマンドを送ることで、閉塞しているディスク装置と同じＥＣＣグループに属する他のディスク装置からデータを読み込み、演算を行い閉塞したディスク装置中のデータを再生してスペアディスクに書き込む処理を、スペアディスク自身に行わせる。
【００１３】
このとき複数のループを接続するスイッチを通してデータ転送を行うことで、制御装置の資源の使用を最低限にする。このようにすることにより制御装置が、スペアディスクへの複写処理から解放される。ファイバチャネルによるループのデータ転送速度は、１台のディスク装置のデータ転送速度よりも高速なので、ループが持つ時分割多重機能と合わせて、制御装置とディスク装置でのデータ転送、あるしきい値を超える回数のエラーが検出がされたディスク装置とスペアディスクとの間のデータ転送を同時に行える。
【００１４】
【発明の実施の形態】
本発明の実施の形態を図面を用いて説明する。
【００１５】
まず一つ目の実施形態のディスクアレイ装置の構成例を図１に示す。１１がディスクアレイ装置で、１２はディスクアレイ装置１１がつながれるホストコンピュータである。ディスクアレイ装置１１のホストコンピュータ１２に対する入出力は、ディスクアレイ装置１１に装備されるホストコンピュータ１２側の制御装置１３を介して行われる。制御装置１３は、ホストコンピュータ１２及びディスクアレイ装置１１への入出力データを一時的に格納するキャッシュメモリ１４を介して、ディスクアレイ装置１１を構成する複数のディスク装置１５を制御するディスク装置側の制御装置１６に接続される。この制御装置１６とディスク装置１５及びこの間における接続部分（１７で示す範囲）の構成例を図２に詳細に示す。
【００１６】
ディスクアレイ装置を構成するディスク装置２０（ディスク（１１）〜ディスク（ｉ１））及びスペアディスク装置２１（スペア（１））は、通信路たるループ２２（ループ（1）)を通して後述するループ制御部２４(ループ制御部（1）)から発信されたコマンドによって制御される。ディスク（１２）〜ディスク（ｉｊ）及びスペア（２）〜スペア（ｊ）も同様にループ２２を通して各ループの制御部２４によって制御される。また、ディスク装置２０は障害に対する信頼性の向上のために冗長性を持たせてある。
【００１７】
尚、図２のディスク装置２０とスペアディスク装置２１とは同じ構成のディスク装置を使用している。また、ディスク装置とループ制御部は、図１のディスク装置１５及び制御装置１６と同じ構成の装置である。また以下の説明において、特定のディスクを示す場合にはディスク（ｎｍ）とディスクナンバーを付した形で表記し、ディスク装置一般を示す場合にはディスク装置２０と表記する。スペアディスク、ループ、ＥＣＣグループ及びループ制御部等に付いても同様とする。
【００１８】
ループ制御部２４が発信するコマンドの例としては、ループ２２上で動作可能なＳＣＳＩのコマンドなどがある。以下ではループ２２上で動作可能なＳＣＳＩプロトコルを例に取り説明を行う。コマンドを受信したときディスク装置２０は、ターゲットとして動作し、コマンドの種類（例えばコピー・コマンド）によって、ディスク装置２０はイニシエータとしても動作する構成の装置を使用する。
【００１９】
このようなディスク装置２０が複数台（図２の例ではｉ＋１個）組になって、一つのループ２２により制御装置２３中のループ制御部２４に接続される。このループ２２のデータ転送速度は、１台のディスク装置２０のデータ転送速度よりも高速である。加えてループ２２は、フレームという単位でデータを転送して時分割多重を行うことで、同時にディスク装置−ループ制御部対間、およびディスク装置−ディスク装置対間での複数同時通信を可能にする。このような通信を可能とするために、ループ２２としては例えばファイバチャネルを用いる。
【００２０】
制御装置２３中には複数個のループ制御部２４（図２の例ではｊ個）がある。よって、一つの制御装置２３に対して複数個のループ２２が接続されている形となる。そしてこの複数個のループ制御部２４同士は互いに通信を行うことができる。これは例えば、複数個のループ制御部２４が、共有するバス（図示せず）を使ってデータを送り合うことによって可能になる。
【００２１】
各ループ２２には、それぞれ最低一つの予備のディスク装置２１（以下スペアディスクと呼ぶ。）が接続される。スペアディスク２１は同じループ２２に接続されるその他のディスク装置２０とは異なり、通常はホストコンピュータ（図１参照）からのデータは記憶されていない。同じループ２２中のディスク装置２０で、あるしきい値を超える回数のエラーが検出されたとき、或いは同じループ２２中のディスク装置２０が障害を起こし閉塞したときに、そのディスク装置２０中のデータの複製がスペアディスク２１に書き込まれる。そして以下に説明する処理によって、スペアディスク２１はディスク装置２０と置き換えられる。
【００２２】
【表１】
0004461511.tif 000002
【００２３】
制御装置２３が持つ各ループ制御部２４の共有メモリ（図示せず）上には、表１に例示するようなディスク装置管理テーブルがある。このテーブルにはディスク装置２０毎のエントリがある。各エントリにはディスク装置２０が接続されるループ２２の識別子（ループＩＤ）、そのディスク装置２０の識別子（ディスク装置ＩＤ）、そのディスク装置２０が起こしているエラーの数（エラーカウント）、そのディスク装置２０のステータスのフィールドがある。そしてこのテーブルは制御装置２３上の各ループ制御部からのアクセスが可能になっている。
【００２４】
各ループ制御部２４では、次の二つの種類のジョブが動いている。一つは図３のフローに基づいて動くもので、あるしきい値を超える回数のエラーが検出がされているディスク装置２０から同じループ２２に接続されているスペアディスク２１へ、データの複写を行うジョブである。そしてもう一つは、図４のフローに基づいて動くもので、あるループ制御部２４とループ２２を通してそのループ制御部２４と接続されるディスク装置２０との間での、データの読み込み／書き込み処理するジョブである。一つのループ制御部２４中では、一つの前者のジョブと複数個の後者のジョブが同時に（並行して）動いている。
【００２５】
前述のように、１台のディスク装置２０のデータ転送速度に比べて、ループ２２のデータ転送速度が十分に高速であり、ループは時分割多重でデータの転送を行うことができる。これにより同時に複数のディスク装置２０−制御装置２３対、およびディスク装置２０−ディスク装置２０対でのデータ転送が可能になり、複数個のジョブが同時に動作できる。
【００２６】
スペアディスク２１に対するデータの書き込みのジョブを図３で示すフローチャート及び図２により説明する。
【００２７】
このジョブにより、ディスク（２２）あるしきい値を超える回数のエラーが検出がされたとする。すると後で説明するように、ディスク装置管理テーブルのエントリで、ディスク（２２）に割り当てられているステータス・フィールドにフラグが立つ。そして同じループ（２）に接続されているスペア（２）へのデータの複写が行われる。ディスクアレイ装置１１が起動すると、ディスク（２２）に対してイニシエータとなるループ制御部（２）は、ジョブを起動し、処理を始める（ステップ３−１）。
【００２８】
次にジョブは、表１に示すディスク装置管理テーブルを検索して、スペアディスク２１への複写対象になるディスク装置２０があるかを探す（ステップ３−２）。これはディスク装置管理テーブルのエントリ中にあるディスク装置２０のステータス・フィールドを参照することで行われる。もしあるしきい値を超える回数のエラーが検出がされたディスク装置２０があれば、後で説明するように、ディスク装置管理テーブルのエントリで、ディスク（２２）に割り当てられているステータス・フィールドに、スペアディスク２１へのデータの複写を指示するフラグが立っている。そして複写の対象となるディスク装置２０があれば次のステップに進み、なければジョブはステップ３−１からの処理を繰り返し続ける（ステップ３−３）。
【００２９】
複写の対象となるディスク装置が有る場合（この場合ディスク（２２））、ループ制御部（２）は、ループ（２）を通してループ（２）に接続されているスペアディスク（２）に対して、ディスク（２２）内のデータの複写を行うためのコマンドを送信する（ステップ３−４）。このコマンドとして、ＳＣＳＩのコピー・コマンドを用いることが出来る。ＳＣＳＩのコマンドについては一般の規格書等にあるので詳細は記載しないが、例えば「ＳＣＳＩ−２詳細解説（最新ＳＣＳＩ規格とコマンド・リファレンス） 菅谷誠一著 ＣＱ出版」等に説明されている。
【００３０】
このときループ制御部（２）とディスク（２）は、イニシエータとターゲットの関係にある。送信されるコマンドのパラメータとしては、ディスク（２２）の識別子、データ転送を開始する論理ブロック先頭のアドレス、一回に転送されるデータの長さがある。そしてループ（２）制御部を通さずに、コマンドによって指定されたデータが、直接ループ（２）を通してディスク（２２）からスペアディスク（２）に送信される。（▲３▼で示す）
次にディスク（２２）中の残りのデータを転送するために、ループ制御部（２）はデータ転送の開始論理ブロック・アドレスを保持する変数を更新する（ステップ３−５）。そしてあるしきい値を超える回数のエラーが検出がされたディスク装置中の全てのデータが複写されるまで処理が繰り返される（ステップ３−６）。ディスク（２２）中の全てのデータが転送され終わると、ジョブはディスク（２２）に割当てられていた識別子を、スペア（２）に割当て、ディスク（２２）を閉塞させる（ステップ３−７）。
【００３１】
これによってスペア（２）は、あるしきい値を超える回数のエラーが検出がされたディスク（２２）に置き換わって働き始める。すなわちディスク（２２）からスペア（２）にディスク装置自体は入れ代わっているが、ディスク装置に割り当てられる識別子を同じにすることで、スペア（２）は元あったディスク（２２）としてイニシエータ（ループ制御部（２））から扱われる。以上でループ制御部（２）はジョブを終了させる（ステップ３−８）。
【００３２】
次にディスク装置に対するデータの読み出し／書き込みのジョブを図４で示すフローチャート及び図２により説明する。このジョブにより、ループ制御部２４はループ２２を通して接続されるディスク装置２０との間での、データの読み出し／書き込みを行う。
【００３３】
ディスク装置２０に対してイニシエータとなるループ制御部２４中で、このジョブは複数動作している。
【００３４】
始めに、ジョブに対しホストコンピュータ１２からの要求等に起因して、ディスク装置２０に対してデータの読み出し／書き込み要求が発生する（ステップ４−１）。するとその要求が正常なディスク装置２０に対するものなのか、それともあるしきい値を超える回数のエラーが検出されているディスク装置２０（この場合はスペア（２）にデータを複写中のディスク（２２））に対するものなのかを、ジョブは判定する（ステップ４−２）。
【００３５】
これは制御部２３が持つディスク装置管理テーブル（表１）を、ディスク装置２０の識別子をキーに、ステータスのフィールドを検索することによって行われる。あるしきい値を超える回数のエラーが検出されているディスク（２２）のステータスを示すフィールドには、スペア（２）へのデータの複写を指示するフラグが立っている。
【００３６】
最初に要求の対象となるディスク装置２０が正常だった場合（ディスク（ｉ１））を説明する。
【００３７】
ジョブは、要求がデータの読み出しなのか書き込みかを判定する（ステップ４−３）。要求がデータの読み出しだった場合、ジョブは通常の読み出し処理を行う（ステップ４−４）。要求がディスク（ｉ１）からデータを読み出すものだった場合は、ループ（１）を通してジョブはディスク（ｉ１）に対してデータ読み出しコマンド送信する。するとディスク（ｉ１）からループ（１）を通してデータが、ループ制御部２４のバッファ２６まで▲１▼で示すように転送される。
【００３８】
また要求がデータの書き込みだった場合、ジョブは通常の書き込み処理を行う（ステップ４−５）。要求がディスク（１２）にデータを書き込む要求だった場合、ループ（２）を通してジョブはディスク（１２）に対してデータ書き込みコマンドを送信する。するとループ制御部（２）のバッファ（２）からループ（２）を介してデータがディスク（１２）に転送される（▲２▼で示す）。読み出しと書き込みのどちらの場合も、ループ制御部（１）とディスク（ｉ１）、ループ制御部（２）と（１２）は、イニシエータとターゲットの関係にある。
【００３９】
次に要求の対象となるディスク装置２０であるしきい値を超える回数のエラーが検出されていた場合を説明する（ディスク（２２））。
【００４０】
この場合もジョブは、その要求がデータの読み出しなのか書き込みかをまず判定する（ステップ４−６）。要求がデータの読み出しだった場合、ジョブはエラー検出時読み出し処理を行う（ステップ４−７）。
【００４１】
次に要求がデータの書き込みだった場合、ジョブはエラー検出時書き込み処理を行う（ステップ４−８）。
【００４２】
続いてジョブは、読み出し要求や書き込み要求を処理した後の実行結果を、ディスク装置から受信し、成功したかエラーが発生したかを確認する（ステップ４−９）。エラーがなかった場合は、先に説明したように次の要求を受けるためステップ４−１に戻る。エラーがあった場合は、表１に示すディスク装置管理テーブルのディスク識別子を持つエントリ中のエラーカウントの値をインクリメントする（ステップ４−１０）。
【００４３】
そして次にインクリメントした結果が、決められているしきい値を超えていないかを確認する（ステップ４−１１）。しきい値を超えていない場合は、そのまま次の要求を受けるためにステップ４−１に戻る。
【００４４】
しきい値を超えていた場合は、そのディスク（２２）の識別子を持つディスク装置管理テーブル中のエントリのステータスを示す項目にスペア（２）へのデータの複写を指示するフラグを立てる（ステップ４−１２）。そしてステップ４−１に戻る。
【００４５】
ディスク装置管理テーブル（表１）により、データを読み出す先のディスク（２２）で、あるしきい値を超える回数のエラーが検出されていることを、ジョブは知ることができる。このときジョブは、ディスク（２２）に対してコマンドを送信することはしない。代わりにループ制御部２４同士の通信機能を利用して、ジョブはＥＣＣ演算によって要求されたデータが得られるように、ループ制御部（２）を除いたループ制御部（１）から（ｊ）に対してデータ読出しの指示を出す。
【００４６】
ジョブのこの指示を受けたループ制御部は、ディスク（２２）が属するＥＣＣグループ（２）に属する他のディスク（２１）等に対して、ジョブがディスク（２２）から読み出そうとしたデータを、ＥＣＣ演算し再生するために必要なデータを読み出すためのコマンドを送信する。そしてそれぞれのループにおいて、このコマンドを受信したディスク（２１）は、要求されたデータをループ制御部（１）に転送する。そしてループ制御部（１）はこのデータを、データ再生回路（２）に転送する。
【００４７】
同様に他のループ制御部からもＥＣＣグループ（２）に属するディスク中のデータが、データ再生回路（２）に送られる（▲４▼で示す）。データ再生回路（２）では、これらの集められたデータから、最初にループ制御部（２）がディスク（２２）から読み出そうとしたデータをＥＣＣにより演算し再生して、バッファ（２）へ送り出す。
【００４８】
次に要求がデータの書き込みだった場合、ジョブはエラー検出時書き込み処理を行う。あるしきい値を超える回数のエラーが検出され、それが記憶しているデータをスペア（２）に複写中であるディスク（２２）に対して、データの書き込み要求が出された場合を説明する。
【００４９】
ディスク（２２）からスペア（２）へのデータの複写は、ループ制御部（２）上で動作している図３に示したフローを実行するジョブにより、ディスク（２２）中の先頭の論理アドレスから順に行われる。そしてこのジョブが使用するする変数により、ディスク（２２）のどのアドレスまでの複写が完了しているかを知ることができる。データの書き込み要求によってディスク（２２）へ書き込まれる先のアドレス上のデータが、まだスペアディスク（２）に複写されていない場合は、この書き込み要求を処理するジョブは、ディスク（２２）に対してデータ書き込みコマンドを送信する。続いてループ制御部（２）のバッファ（２）から、ループ（２）を介してデータがディスク（２２）に転送される（▲５▼で示す）。
【００５０】
ここで書きこまれたデータは、この後で図３に示したフローを実行するジョブにより、ディスク（２２）からスペア（２）に複写される。一方、データの書き込み要求によってディスク（２２）へ書き込まれる先のアドレス上のデータが、既にスペア（２）に複写されてしまっている場合、この書き込み要求を処理するジョブは、スペアディスク（２）に対してデータ書き込みコマンドを送信する。続いてループ制御部（２）のバッファ（２）から、ループ（２）を介してデータがスペア（２）に転送される（▲６▼で示す）。
【００５１】
あるしきい値を超える回数のエラーが検出がされたディスク（２２）からスペア（２）へのデータ転送を開始する際に、図３に示したフローで動くジョブは、図５に示す論理を表１のようなテーブルと後で示す（数１）のような式と共に使用ことができる。
【００５２】
すなわち、ステップ３−４の前にステップ５−１とステップ５−２を入れることができる。（ステップ５−３がステップ３−４とステップ３−５に相当。）表１に示すテーブルの各エントリは、あるしきい値を超える回数のエラーが検出がされたディスク（２２）からスペア（２）へのデータ転送を除くあるループ２２上で実行中のデータ転送処理と、これから実行されるデータ転送処理である。各エントリには、制御装置２３とディスク装置２０との間でデータ転送を行うために必要なパラメータが設定される。まずジョブは表２のディスク装置識別子の項目を検索して、ループ制御部（２）としきい値を超える回数のエラーが検出がされたディスク（２２）との間でのデータ転送要求があるかを確認する（ステップ５−１）。
【００５３】
【表２】
0004461511.tif 000003
【００５４】
もし要求があれば真となり、スペア（２）へのデータ転送は行わずに、ループ制御部（２）とディスク（２２）との間のデータ転送を優先する。要求がない場合は偽となり、ループ（２）のデータ転送能力に余裕があるかを確認する（ステップ５−２）。
【００５５】
ディスク（２２）とスペア（２）との間でデータ転送を行うとループ（２）に負荷がかかることになる。これは、その他のデータ転送に影響を与えるかを調べるためである。ジョブは表１の実行状態の項目を検索して現在実行中のデータ転送数を調べる。現在実行中のデータ転送処理数が分かったら、次に（数１）に示す式を使う。
【００５６】
【数１】
0004461511.tif 000004
【００５７】
これはループ２２のデータ転送速度に対して現在行われているデータ転送数から、更にデータ転送、すなわちディスク（２２）からスペア（２）へのデータ転送行えるだけ、ループ（２）のデータ転送能力に余裕があるを判断する。もし（数１）の値が正であれば（ステップ５−２が偽）、ループ（２）のデータ転送能力が十分にあると判断してディスク（２２）からスペア（２）へのデータ転送を開始する（ステップ５−３）。
【００５８】
逆に（数１）が負の場合はループに余裕がないと（ステップ５−２が真）、ディスク（２２）からスペア（２）へのデータ転送は行わない。ジョブは、スペアディスク（２）に対してデータ転送のコマンドを送信する前にこの論理を繰り返し実行する。これを行うのは、スペア（２）へのデータの複写よりも、ホストコンピュータ１２からの要求等に起因するディスク装置２０に対するデータの読み出し／書き込み要求を優先させたいからである。
【００５９】
続いて二つ目の実施形態を説明する。この実施例では、図１の枠１７の部分として図６に示すようなディスク装置の接続構成例をとる。図２で示したディスク装置２０の接続構成例との差異は、スイッチ６１の追加と、各ディスク装置２０の機能拡張である。
【００６０】
スイッチ６１は、複数個のループ２２を相互に接続する働きをする。これによりあるループ２２に接続されているループ制御部２４、或いはディスク装置２０が、他のループ２２に接続されているループ制御部２４或いはディスク装置２０と通信することができるようになる。スイッチ６１の構成例を説明する前に、ループ制御部２４やディスク装置２０が、ループ２２を通して他と通信するときに送信するフレームについて説明する。
【００６１】
フレームの構成例を図７に示す。フレームは、ヘッダ部７１、データ部７２、フッタ部７３の三つの部分からなる。このうちヘッダ部７１にはフレームの行き先に関する情報が含まれる。これは、ループ識別子７４（Ｌ＿ＩＤ）とディスク装置識別子７５（Ｄ＿ＩＤ）の二つから成る。ループ識別子７４は、そのフレームの行き先になるディスク装置２０が接続されているループ２２の識別子を示し、ディスク装置識別子７５はその行き先のループ内でのディスク装置の識別子を示す。
【００６２】
分割多重通信であるので、データは所定の容量毎に分割される。また、ファイバチャネルはその転送速度が十分に速いため、ループ２２内のデータ転送は、上位装置とディスク装置２０（スペアディスク２１を含む）との通信専用のスロットと、ディスク装置２０同士（主にディスク装置２０とスペアディスク２１との間）の通信専用のスロットとを決めておいて転送する。しかし、専用スロットを設定せず、ループ内ループ２２上のトラフィックを監視して、正常なディスク装置２０と制御装置２３の間でのデータ転送の速度を落とさないように、あるしきい値を超える回数のエラーが検出がされたディスク装置２０からスペアディスク２１へのデータ転送量を自動的に調整できるような設定としておいても良い。
【００６３】
次にスイッチ６１の構成例を図８に示す。スイッチ６１内には、接続できるループ（例えばループ（１））の数だけ（図６ではｊ本）ループ接続部８１がある。そしてループ接続部８１同士は、互いにデータを送り合い通信ができるように相互に接続されている。
【００６４】
図９はループ接続部８１のブロック図の例である。ループ接続部８１と接続されているループ（自ループ）からフレームの入力があると、そのフレームはまずフレーム解析部９１に送られる。ここで図７に示したヘッダ部７１の情報が参照される。そしてヘッダ部７１中のループ識別子７４の値によって、そのフレームの行き先が出力先指示部９２により指示され、スイッチングが行われれる。その結果、行き先となるループに対して、その当該フレームが出力される。これにより、ループ２２をまたがった通信が可能になる。
【００６５】
次に後者のディスク装置２０の機能拡張について説明する。最初の実施形態で想定したディスクアレイ装置１１を構成するディスク装置２０は、ループ上で動作可能なＳＣＳＩプロトコルを扱えるもので、通常はＳＣＳＩのターゲットとして、場合によってはイニシエータとしても動作できるものとしてきた。
【００６６】
この実施の形態で想定するディスク装置２０は、第一の実施形態で想定した機能に加えて、あるＥＣＣグループに属する他の複数のディスク装置２０に関する情報を与えることで、それら複数のディスク装置２０からデータを読み出し、ＥＣＣを演算してデータの再生を行える機能を持つようなディスク装置２０である。動作の詳細は以下で順に説明する。
【００６７】
第一の実施例と同様に、各ループ制御部２４では次の二つの種類のジョブが動いている。一つは図１０のフローチャートに基づいて動くもので、スペアディスク２１に閉塞したディスク装置２０中のデータの再生をさせたり、或いはスペアディスク２１にあるしきい値を超える回数のエラーが検出がされているディスク装置２０中のデータの複製を行わせるジョブである。
【００６８】
そしてもう一つは、図１２のフローチャートに基づいて動くもので、あるループ制御部２４と、そのループ制御部２４とループ２２を通して接続されるディスク装置２０との間での、データの読み込み／書き込み処理するジョブである。そしてまた第一の実施例と同様に、一つのループ制御部２４中では、一つの前者のジョブと複数個の後者のジョブが同時に動いている。
【００６９】
まず前者のジョブを図１０で示すフローにより説明する。ディスクアレイ装置１１の起動と共に、ジョブは処理を始める（ステップ１０−１）。まず表１に示したディスク装置管理テーブルを検索する（ステップ１０−２）。
【００７０】
そしてスペアディスク２１へのデータの書き込みが必要であるかをステータス・フィールドの値により判断する（ステップ１０−３）。この実施例でもステータス・フィールドには、ディスク装置２０の状態を示す値が設定される。例えば、ディスク装置２０が閉塞したとき、或いはディスク装置２０であるしきい値を超える回数のエラーが検出がされたときに、それぞれを意味するフラグが立つ。
【００７１】
対象となるディスク装置２０があり、スペアディスク２１へのデータの書き込みが必要になるのは、（１）あるディスク装置が閉塞している場合、または（２）あるディスク装置においてあるしきい値を超える回数のエラーが検出がされている場合である。
【００７２】
表１に示すディスク装置管理テーブルを検索した結果、ディスク装置２０の状態が前記の二つの条件のいずれにも当てはまらなければ、ジョブは、ステップ１０−１からの処理を繰り返し行い、条件に当てはまる場合（複写すべきディスク装置が存在する場合）は次のステップへ進む（ステップ１０−３）。
【００７３】
ディスク装置の状態が前記の二つの条件のどちらかに当てはまる場合、ジョブはそれがディスクが閉塞しているのか否かを判断し何故複写をするのかを判定する（ステップ１０−４）。
【００７４】
ディスク装置２０が閉塞している場合は、そのディスク装置２０が属しているＥＣＣグループ２５の他の正常なディスク装置２０からデータを集めＥＣＣ演算を行い、閉塞しているディスク装置２０中のデータを再生するように、ジョブはスペアディスクにコマンドを送信する。そしてこれを受信したスペアディスク２１が複写に必要な処理を行う（ステップ１０−５）。
【００７５】
ディスク装置２０においてあるしきい値を超える回数のエラーが検出されている場合は、そのあるしきい値を超える回数のエラーが検出がされているディスク装置２０中のデータをスペアディスク２１中に複写するように、ジョブはスペアディスク２１にコマンドを送信する。そしてこれを受信したスペアディスク２１が複写に必要な処理を行う（ステップ１０−６）。
【００７６】
スペアディスク２１がコマンドを受信するとき、ジョブが起動しているループ制御部２４がイニシエータとして機能し、スペアディスク２１はターゲットとして機能する。そしてコマンドの受信後に、上記処理をスペアディスク２１が行うときには、スペアディスク２１がイニシエータとなり、スペアディスク２１と通信を行うディスク装置２０がターゲットとなる。そして、ＥＣＣ演算を行うことで閉塞しているディスク装置２０中のデータをスペアディスク２１内へ再生すること、或いはあるしきい値を超える回数のエラーが検出がされているディスク装置中のデータをスペアディスク中に複写することを完了したら、最初の実施の形態で説明したように、ジョブはスペアディスク対する識別子の更新処理を行う（ステップ１０−７）。
【００７７】
これ以降スペアディスク２１は、閉塞してしまったディスク装置２０、或いはあるしきい値を超える回数のエラーが検出がされたディスク装置２０として振舞うことになる。これでこのジョブは終了する（ステップ１０−８）。
【００７８】
ディスク装置２０が閉塞している場合についての処理の詳細な流れを、図６及び図１１のフローチャートを用いて説明する。図６は閉塞したディスク装置中のデータをＥＣＣ演算し再生する際のデータの流れを、図１１はループ制御部２４からのコマンドを受信したスペアディスク２１が、このとき行う処理の流れを示している。
【００７９】
ディスク（２２）が閉塞すると、ループ制御部（２）はその閉塞したディスク（２２）が接続されているループ（２）に接続されているスペアディスク（２）に対して、閉塞したディスク（２２）中のデータをＥＣＣ演算して再生し、その再生したデータをスペア（２）に書き込むようにループ（２）を通してコマンドを送信する（▲７▼で示す）。このコマンドを受信してスペア（２）が、図１１に示される処理を開始する（ステップ１１−１）。
【００８０】
スペア（２）は、ループ制御部（２）中のジョブからコマンドを受信する際に、閉塞したディスク（２２）が属するＥＣＣグループ（２）に属する他の正常な複数のディスク（２１）に関する情報もパラメータとして受信する（ステップ１１−２）。この情報には、正常なディスク（２１）の識別子、およびこのディスク装置（２１）が属するループ（１）の識別子が含まれる。
【００８１】
コマンドを受信するとき、ループ制御部（２）とスペア（２）は、イニシエータとターゲットの関係にある。そしてこのコマンドを受信した後、スペア（２）はそのコマンドの実行を開始する前に、正常なディスク（２１）に対してイニシエータとなる。他方、正常なディスク（２１）…（２ｊ）は、スペア（２）に対してターゲットとなる。そしてスペア（２）は、ＥＣＣ演算して再生後に記憶する論理ブロックのアドレスの値を初期化する（ステップ１２−３）。
【００８２】
次にスペア（２）は、ＥＣＣグループ（２）に属する他のディスク（２１）、ディスク（２ｊ）等に対して読み出しコマンドを送信し、閉塞したディスク（２２）上の論理ブロックをＥＣＣ演算し再生するために必要なデータを読み出す（ステップ１１−４）。その際、ディスク（２１）のデータ転送は、ループ制御部（１）及びループ制御部（２）を通すことなく、スイッチ６１を通すことで二つのループ（１）及びループ（２）に跨って、直接スペア（２）に対して行われる（▲８▼で示す）。このとき、スペア（２）とＥＣＣグループ（２）に属する正常なディスク（２１）等とは、イニシエータとターゲットの関係にある。ディスク（２ｊ）のデータ転送も同様である。
【００８３】
スペア（２）は、ステップ１１−２で取得しているループ識別子とディスク装置識別子によって、ＥＣＣ演算し論理ブロックを再生するために必要なデータを読み出すために指定すべき正常なディスク（２１）を特定する。そして、ＥＣＣグループ（２）に属する正常なディスク（２１）、ディスク（２ｊ）等から、同様に読み出したデータから、スペア（２）はＥＣＣ演算を行い、閉塞したディスク（２２）上の論理ブロックに記憶されていたデータを再生する（ステップ１１−５）。
【００８４】
そしてスペア（２）は、再生したデータを自身の論理ブロックに書き込む（ステップ１１−６）。次にスペア（２）は、次の論理ブロックを再生するために、当該論理ブロックのアドレスを更新する（ステップ１１−７）。
【００８５】
最後にスペア（２）は、閉塞しているディスク（２２）中の再生対象となる論理ブロックが、全て再生されたかを確認する（ステップ１１−８）。再生すべき論理ブロックが残っていれば、スペア（２）は、ステップ１１−４からステップ１１−８までの処理を繰り返す。論理ブロックの再生が完了していれば、スペア（２）は処理を終了する（ステップ１１−９）。
【００８６】
次に、あるディスク装置においてしきい値を超える回数のエラーが検出がされている場合のコピー処理の詳細な流れを、図６及び図１２のフローチャートを用いて説明する。図６はしきい値を超える回数のエラーが検出がされているディスク装置２０中のデータがスペアディスク２１に複写される際のデータの流れを、図１２はループ制御部２４の指示を受けたスペアディスク２１が、このとき行う処理の流れを示している。
【００８７】
ディスク（２２）で、ある設定したしきい値を超える回数のエラーが検出されると、ループ制御部（２）はディスク（２２）が接続されているループ（２）に接続されているスペア（２）に対して、ディスク（２２）中のデータを、スペア（２）自身に複写するようにループ（２）を介してコマンド（▲７▼で示す）を送信する。このコマンドを受信してスペア（２）が、図１６に示される処理を開始する（ステップ１２−１）。
【００８８】
スペア（２）がコマンドを受信するとき、ループ制御部（２）とスペア（２）は、イニシエータとターゲットの関係にある。そしてこのコマンドを受信した後、スペア（２）はそのコマンドの実行を開始する前に、ディスク（２２）に対してイニシエータとなる。スペア（２）は、ループ制御部（２）からコマンドを受信する際に、ディスク（２２）の情報の他に、ディスク（２２）が属するＥＣＣグループ（２）に属する他のディスク（２１），ディスク（２ｊ）等に関する情報も受け取る（ステップ１２−２）。この情報には、ディスク装置２０の識別子、およびディスク装置２０が属するループ２４の識別子が含まれる。
【００８９】
次にスペア（２）は、ディスク（２２）からデータを複写するために、スペアディスク（２）自身が記憶する論理ブロックのアドレスの値を初期化する（ステップ１２−３）。
【００９０】
そして、スペア（２）は、ディスク（２２）に対して読み出しコマンドを送信し、ディスク（２２）上の論理アドレスからデータを読み出す（ステップ１２−４）。
【００９１】
これによりループ制御部（２）を通すことなく、ループ（２）を通して直接ディスク（２２）からスペア（２）へのデータの転送が行われる。このとき、スペア（２）とディスク（２２）とは、イニシエータとターゲットの関係にある。
【００９２】
次にスペア（２）は、このデータの読み出しの成否を判定する（ステップ１２−５）。
【００９３】
データの読み出しが成功すれば、スペア（２）は読み出したデータを、スペアディスク（２）自身の論理ブロックに書き込む（▲３▼で示す）（ステップ１２−８）。
【００９４】
読み出しに失敗した場合は、スペア（２）は書き込むべきデータを、図１１で説明した方式により再生し、スペア（２）自身に書き込む。すなわち、ディスク（２２）が属するＥＣＣグループ（２）から論理ブロックのＥＣＣ演算に必要なデータを取得し（ステップ１２−６）、これからスペア（２）の論理ブロックに書き込むデータを再生する（ステップ１２−７）。
【００９５】
そしてスペア（２）は、得られたデータをスペア（２）自身の論理ブロックに書き込む（▲８▼で示す）（ステップ１２−８）。
【００９６】
次にスペア（２）は、次の論理ブロックを複写するために、当該論理ブロックのアドレスを更新する（ステップ１２−９）。
【００９７】
そしてスペア（２）は、ディスク（２２）中で複写の対象となる論理ブロックの複写が全て完了したかを確認する（ステップ１２−１０）。
【００９８】
まだ複写すべき論理ブロックが残っていれば、スペア（２）は、ステップ１６−４からステップ１６−１０までの処理を繰り返す。また複写すべき論理ブロックの複写が完了していれば、スペア（２）は処理を終了する（ステップ１２−１１）。
【００９９】
次に後者のジョブを図１３で示すフローチャートにより説明する。このジョブにより、あるループ制御部２４とループ２２を通してそのループ制御部２４と接続されるディスク装置２０との間での、データの読み込み／書き込みが行われる。前述のように、ディスク装置２０に対してイニシエータとなるループ制御部２４中で、このジョブは複数動作している。以下では、このうちの一つを例にとって動作を説明する。
【０１００】
まず始めにジョブに対し、ホストコンピュータ１２からの要求等に起因して、ディスク装置２０に対してデータの読み出し／書き込み要求が発生する（ステップ１３−１）。
【０１０１】
その要求が正常なディスク装置２０に対するものなのか、それとも閉塞しているディスク装置２０、或いはあるしきい値を超える回数のエラーが検出されているディスク装置２０（スペアディスク２１にデータを複写中のディスク装置２０を含む）に対するものなのかを、ジョブは判定する（ステップ１３−２）。
【０１０２】
これは制御装置２３が持つディスク装置管理テーブル（表１）を、ディスク装置２０の識別子をキーに、ステータスのフィールドを検索することによって行われる。閉塞しているディスク装置、或いはあるしきい値を超える回数のエラーが検出がされているディスク装置のステータスフィールドには、スペアディスク２１へのデータの書きこみを指示するフラグが立っている。
【０１０３】
要求の対象となるディスク装置２０が正常だった場合を図６を参照して説明する。制御装置２３から出されたジョブは、要求がデータの読み出しなのか書き込みかを判定する（ステップ１３−３）。
【０１０４】
要求がデータの読み出しだった場合、ジョブは通常の読み出し処理を行う（ステップ１３−４）。例えば要求がディスク（ｉ１）からデータを読み出すものだった場合、ループ２２を通してジョブはディスク（ｉ１）に対してデータ読み出しコマンド送信する。するとディスク（ｉ１）からループ（２）を通してデータがループ制御部（１）のバッファ（１）まで転送される。（▲１▼で示す）
また要求がデータの書き込みだった場合、ジョブは通常の書き込み処理を行う（ステップ１３−５）。
【０１０５】
例えば要求がディスク（１２）にデータを書き込むものだった場合、ループ（２）を通して、制御装置２３はディスク（１２）に対してデータ書き込みコマンドを送信する。するとループ制御部（２）のバッファ（２）からループ（２）を介してデータがディスク装置（１２）に転送される（▲２▼で示す）。読み出しと書き込みどちらの場合も、ループ制御部（１）、（２）とディスク装置（ｉ１），（２２）とは、イニシエータとターゲットの関係にある。
【０１０６】
次に、受け付けられた要求の対象となるディスク装置２０が閉塞しているか、或いはそのディスク装置２０であるしきい値を超える回数のエラーが検出された場合を図１４を参照し説明する。この場合もジョブは、その要求がデータの読み出しなのか書き込みかをまず判定する（ステップ１３−６）。
【０１０７】
要求がデータの読み出しだった場合、ジョブはエラー検出時読み出し処理を行う（ステップ１３−７）。この処理は、最初の実施の形態で説明したエラー検出時読み出し処理のステップ４−７と同じ処理である。またこの処理は、ディスク装置２０が閉塞している場合でも。ディスク装置２０であるしきい値を超える回数のエラーが検出されている場合でも同じである。
【０１０８】
次に要求がデータの書き込みだった場合、ジョブはエラー検出時書き込み処理を行う（ステップ１３−８）。まずディスク装置２０が閉塞している場合について説明する。例えばディスク（２１）が閉塞しているとする。ディスク（２１）に書き込まれるデータは、そのディスク（２１）が属するループ（１）に接続されるスペアディスク（１）に直接書き込まれる（▲９▼で示す）。
【０１０９】
これと同時にディスク（２１）が属するＥＣＣグループ（２）に属する複数の正常なディスク装置２０（ディスク（２ｊ）等）に対して、スペア（１）に書き込まれたデータをＥＣＣ演算し再生できるようにしておくためのＥＣＣが書き込まれる（○付きの10で示す）。
【０１１０】
次にディスク装置２０で規定のしきい値を超える回数のエラーが検出されいる場合について説明する。例えばディスク（２２）で規定のしきい値を超える回数のエラーが検出されいるとする。ディスク（２２）に書き込まれるデータは、まずディスク（２２）に書き込まれ（○付きの11で示す）、直後にスペア（２）にも書き込まれる（○付きの12で示す）。このように二つのディスク装置に対して順に書き込むのは、次のような理由による。ディスク（２２）にデータが書きこまれるとき、スペア（２）が、規定のしきい値を超える回数のエラーが検出されいるディスク（２２）からスペア（２）にデータの複写を行っている可能性がある。データの複写は前述の通り、スペア（２）によって行われるため、ループ制御部（２）上のジョブが、複写処理の進行状況を知ることができない。このためディスク（２２）及びスペア（２）の双方に対して書き込みを行わないと、ジョブがデータを書き込んだタイミングによっては、最終的に書き込んだデータが保持されて欲しいスペアディスク（２）上に、書き込んだデータが記録されないことになってしまう。二つのディスク装置に対して書き込むことにより、このようなデータの不整合を防ぐことができる。
【０１１１】
続いてジョブは、読み込み要求や書き込み要求を処理した後の実行結果を、ディスク装置から受信し、成功したかエラーが発生したかを確認する（ステップ１３−９）。エラーがなかった場合は、そのまま次の要求を受けるためにステップ１３−１から処理を繰り返す。エラーがあった場合には、表１で例示したディスク装置管理テーブルの当該のディスク識別子を持つエントリ中のエラーカウントの値をインクリメントする（ステップ１３−１０）。そして次にインクリメントした結果が、決められているしきい値を超えているか否を確認する（ステップ１３−１１）。しきい値を超えていない場合は、次の要求を受けるためにステップ１３−１から処理を繰り返す。しきい値を超えている場合は、そのディスク装置２０の識別子を持つディスク装置管理テーブル中のエントリのステータスを示す項目にスペアディスクへのデータの複写を指示するフラグを立てる（ステップ１３−１２）。
【０１１２】
またスイッチ６１によって複数のループが相互に接続されることによって、異なるループに接続されるディスク装置２０間での通信が可能になる。その実施例を図１５及び図１６に示すフローチャートを用いて説明する。
【０１１３】
【表３】
0004461511.tif 000005
【０１１４】
制御装置２３は、表３に示す状態管理テーブルを用い、制御装置２３の中にある各ループ制御部２４の状態を管理している。ループ（２）は正常に動作できるが、ループ制御部（２）が障害を起こしてこれに接続されるループに対してアクセスできなくなった場合、表３に示すテーブルの各フィールドの値により、対応する各ループ制御部が正常か或いは障害を起こしているかが分かる。この表３のテーブルを参照して、制御装置２３は、読み出し或いは書き込みの要求を受ける（ステップ１６−１）。
【０１１５】
次に制御装置２３は、表３のテーブルを参照する（ステップ１６−２）。そして読み出し或いは書き込みを行うディスク装置２０が接続されているループ２２がつながっているループ制御部２４が正常に動作しているかを調べる（ステップ１６−３）。当該ループ制御部２４が正常に動作していれば、制御装置２３はその正常に動いているループ制御部２４に対して読み出し或いは書き込みの要求を出す（ステップ１６−４）。当該ループ制御部２４が障害を起こしていれば（ループ制御部（２））、制御装置２３は表４に示す処理待ち要求数を表すテーブルを参照する（ステップ１６−５）。
【０１１６】
【表４】
0004461511.tif 000006
【０１１７】
このテーブルの各フィールドには、各ループ制御部２４が実行待ちとして保持している読み出しと書き込み要求の数が保持される。そして最も空いていて正常に動作中のループ制御部（１）に対して、障害を起こしているループ制御部（２）で処理されるはずだった読み出し或いは書き込み要求を処理させる（ステップ１６−６）。
【０１１８】
図１５ではループ（１）のループ制御部（１）に対する読み出し或いは書き込み要求が少なかったとする。このため、制御装置２３は、障害を起こしているループ制御部（２）で処理される読み出し或いは書き込み要求を、ループ制御部（１）に送る。そしてこの要求は、ループ（１）、スイッチ６１、ループ（２）を経由して、読み出し或いは書き込み要求の対象となるディスク（２２）に送られる（○付きの13で示す）。
【０１１９】
この際、要求を送りたいディスク（２２）は、図７に示したループ２２に割り当てられているループ識別子７４とディスク装置２０に割り当てられているディスク装置識別子７５により識別される。このようにして、あるループ制御部２４が障害を起こしても、他のループ制御部２４とスイッチ６１を介することにより、障害を起こしているループ制御部２４に接続されるループ２２につながるディスク装置２０にアクセスできる
【０１２０】
【発明の効果】
規定のしきい値を超える回数のエラーが検出がされたディスク装置、或いは閉塞してしまったディスク装置からスペアディスクにデータを複写する際に、制御装置上にあるマイクロプロセッサやメモリ等の資源をこの処理のために割当ことを最低限に留めて、この複写処理中のディスクアレイ装置の性能低下を防ぐことが出来る。
【図面の簡単な説明】
【図１】ディスクアレイ装置の構成を示す図である。
【図２】ディスク装置の接続構成を示す図である。
【図３】スペアディスクに対するデータの書き込みを示すフローチャートである。
【図４】ディスク装置に対するデータの読み込み／書き込みを示すフローチャートである。
【図５】ループ制御部上のジョブによるデータ転送開始論理を示すフローチャートである。
【図６】ディスク装置の接続構成を示す図である。
【図７】フレームの構成を示す図である。
【図８】スイッチの構成を示す図である。
【図９】ループ接続部のブロック図である。
【図１０】複写開始指示を表すフローチャートである。
【図１１】ＥＣＣグループからデータ再生時のスペアディスク処理を示すフローチャートである。
【図１２】ディスク装置からのコピー処理を示すフローチャートである。
【図１３】ディスク装置に対するデータの読み込み／書き込みを示すフローチャートである。
【図１４】エラー検出時の書き込みを示す図である。
【図１５】交代ループによるアクセスを示す図である。
【図１６】交代ループによるアクセスを示すフローチャートである。
【符号の説明】
１１…ディスクアレイ装置、１２…ホストコンピュータ、１３，１６…制御装置、１４…キャッシュメモリ、１５…ディスク装置、２０…ディスク装置、２１…スペアディスク装置、２２…ループ、２３…制御装置、２４…ループ制御部、２５…ＥＣＣグループ、２６…バッファ、２７…データ再生回路、６１…スイッチ、７１…ヘッダ部、７２…データ部、７３…フッタ部、７４…ループ識別子、７５…ディスク装置識別子、８１…ループ接続部、９１…フレーム解析部、９２…出力先指示、９３…スイッチ。
【図１】
0004461511.tif 000007
【図２】
0004461511.tif 000008
【図３】
0004461511.tif 000009
【図４】
0004461511.tif 000010
【図５】
0004461511.tif 000011
【図６】
0004461511.tif 000012
【図７】
0004461511.tif 000013
【図８】
0004461511.tif 000014
【図９】
0004461511.tif 000015
【図１０】
0004461511.tif 000016
【図１１】
0004461511.tif 000017
【図１２】
0004461511.tif 000018
【図１３】
0004461511.tif 000019
【図１４】
0004461511.tif 000020
【図１５】
0004461511.tif 000021
【図１６】
0004461511.tif 000022