(57)【要約】【課題】旧論理ディスクのデータを新論理ディスクに高速に復元する。【解決手段】第１の論理ディスク（旧論理ディスク）のデータを第２の論理ディスク（新論理ディスク）に復元するために、当該第１及び第２の論理ディスクを構成する複数の第１及び第２の物理ディスクの間で、それぞれ対応する第１及び第２の物理ディスクごとに、第１の物理ディスクからデータをリードして当該データを第２の物理ディスクの対応する領域へライトするディスクコピー処理を並列に実行する（Ｓ１）。この各第１の物理ディスクから第２の物理ディスクへのディスクコピー処理がすべて終了したことをもって、第１の論理ディスクから第２の論理ディスクへのデータコピーが完了し、第１の論理ディスクのデータが第２の論理ディスクに復元されたと判定する（Ｓ２）。【選択図】　　図２
2004102815.tif 000002
【特許請求の範囲】
【請求項１】
複数の第１の物理ディスクにより構成される冗長性を有する第１の論理ディスクのデータを、当該第１の論理ディスクを構成する前記複数の第１の物理ディスクとそれぞれ対応付けられる同数の第２の物理ディスクから構成される第２の論理ディスクに復元するために、ディスクコントローラにより前記第１の論理ディスクのデータを前記第２の論理ディスクにコピーする論理ディスク間データコピー方法であって、
前記第１及び第２の論理ディスク中の対応する前記第１及び第２の物理ディスクごとに、それぞれ前記第１の物理ディスクからデータをリードして当該データを前記第２の物理ディスクの対応する領域へライトするディスクコピー処理を並列に実行するステップと、
前記各第１の物理ディスクから前記第２の物理ディスクへのディスクコピー処理がすべて終了したことをもって、前記第１の論理ディスクから前記第２の論理ディスクへのデータコピーが完了し、前記第１の論理ディスクのデータが前記第２の論理ディスクに復元されたと判定するステップと
を具備することを特徴とする論理ディスク間データコピー方法。
【請求項２】
前記第１の論理ディスクから前記第２の論理ディスクへのデータコピーの期間に、前記第１の論理ディスク中の前記第１の物理ディスクからのデータリードで正しいデータが得られなかった場合、当該第１の論理ディスクの冗長性を利用して正しいデータを復元するステップと、
前記復元されたデータを、データリードの対象となった前記第１の物理ディスクの領域に対応する、前記第２の物理ディスクの領域にコピーするステップと
を更に具備することを特徴とする請求項１記載の論理ディスク間データコピー方法。
【請求項３】
前記第１の論理ディスクから前記第２の論理ディスクへのデータコピーの期間に、ホストから前記ディスクコントローラに与えられたライト要求に応じて前記第１の論理ディスクへのデータライトを実行する場合、当該第１の論理ディスク中の実際にデータがライトされる前記第１の物理ディスクの領域に対応する前記第２の物理ディスクの領域にも同一のデータをライトするステップを更に具備することを特徴とする請求項１記載の論理ディスク間データコピー方法。
【請求項４】
前記ディスクコントローラに対して、当該ディスクコントローラにより管理されている論理ディスクの１つがデータコピー元となる前記第１の論理ディスクとして指定された場合、メモリに保持されている論理ディスク構成情報により示される、当該第１の論理ディスクを構成する第１の物理ディスクごとに、当該第１の物理ディスクに対応付けるべき物理ディスクを、前記ディスクコントローラに接続された未使用の物理ディスクの中から前記第２の物理ディスクとして選択するステップと、
前記選択された第２の物理ディスクから構成される論理ディスクをデータコピー先となる前記第２の論理ディスクとして、当該第２の論理ディスクの少なくとも構成及び当該第２の論理ディスクを構成する前記第２の物理ディスクの状態を前記論理ディスク構成情報に追加登録するステップと
を更に具備し、
前記ディスクコピー処理を実行するステップでは、前記指定された第１の論理ディスクから、前記選択された第２の物理ディスクにより構成される前記第２の論理ディスクへのデータコピーを実行する
ことを特徴とする請求項１記載の論理ディスク間データコピー方法。
【請求項５】
前記ディスクコピー処理の実行に際し、前記ディスクコントローラにより管理されている論理ディスクごとに、少なくとも当該論理ディスクの構成及び当該論理ディスクを構成する物理ディスクの状態を示す論理ディスク構成情報を参照するステップと、
前記論理ディスク構成情報の参照結果により、前記第１の論理ディスクを構成する前記第１の物理ディスクの中に故障状態にある物理ディスクが存在するかを判定するステップと
を更に具備し、
前記ディスクコピー処理を実行するステップでは、前記判定ステップでの判定結果をもとに、故障状態にある物理ディスクを除いて、前記第１及び第２の論理ディスク中の対応する前記第１及び第２の物理ディスクごとに、それぞれ前記第１の物理ディスクから前記第２の物理ディスクへのディスクコピー処理を並列に実行する
ことを特徴とする請求項１記載の論理ディスク間データコピー方法。
【請求項６】
前記第１の論理ディスクを構成する前記複数の第１の物理ディスクの１つが交換された場合に、前記第１の論理ディスクの冗長性を利用して前記交換後の新たな第１の物理ディスクに対してデータを回復する処理を実行するステップを更に具備し、
前記ディスクコピー処理を実行するステップでは、前記回復処理の実行中に前記第１の論理ディスクから前記第２の論理ディスクへのデータコピーを実行する場合、前記回復処理中の前記第１の物理ディスクから前記第２の論理ディスク中の対応する前記第２の物理ディスクへのディスクコピー処理を、前記第１の物理ディスクの回復されたデータを用いて実行する
ことを特徴とする請求項１記載の論理ディスク間データコピー方法。
【請求項７】
前記第１の論理ディスクを構成する前記複数の第１の物理ディスクの１つが交換された場合に、前記第１の論理ディスクの冗長性を利用して前記交換後の新たな第１の物理ディスクに対してデータを回復する処理を実行するステップと、
前記回復処理の実行中に前記第１の論理ディスクから前記第２の論理ディスクへのデータコピーが実行される場合、前記回復処理で回復された前記第１の物理ディスクのデータを、当該第１の物理ディスクと対応付けられている前記第２の論理ディスク中の前記第２の物理ディスクにもライトするステップと
を更に具備することを特徴とする請求項１記載の論理ディスク間データコピー方法。
【請求項８】
前記ディスクコントローラと前記第１の論理ディスクを構成する前記複数の第１の物理ディスクとが、第１のディスクインタフェースバスにより接続された状態で第１のディスクアレイ装置に実装されると共に、前記第２の論理ディスクを構成する前記複数の第２の物理ディスクと当該第２の論理ディスクを管理・制御するディスクコントローラとが、第２のディスクインタフェースバスにより接続された状態で第２のディスクアレイ装置に実装され、前記第２のディスクアレイ装置内の前記ディスクコントローラが前記第１のディスクインタフェースバスにも接続されている状態で、前記第１の装置内の前記ディスクコントローラに対して前記第１の論理ディスクから前記第２の論理ディスクへのデータコピーが指示された場合に、前記第１のディスクインタフェースバスに接続されるノードに割り当て可能な識別子の空きを探索するステップと、
前記空き識別子が探索できた場合、その空き識別子を前記第２のディスクアレイ装置内の前記ディスクコントローラに割り当てるステップと
を更に具備し、
前記第１の論理ディスクから前記第２の論理ディスクへのデータコピーを、前記第１の装置内のディスクコントローラに代えて前記第２の装置内のディスクコントローラにより実行させる
ことを特徴とする請求項１記載の論理ディスク間データコピー方法。
【請求項９】
前記空き識別子が探索できなかった場合に、前記第１のディスクインタフェースバスに接続されていて現在使用されていない物理ディスクに割り当てられている識別子を探索するステップと、
現在使用されていない物理ディスクに割り当てられている識別子が探索できた場合、当該物理ディスクを前記第１のディスクインタフェースバスから切り離すステップと、
前記第１のディスクインタフェースバスから切り離された物理ディスクに割り当てられていた識別子を前記第２のディスクアレイ装置内の前記ディスクコントローラに割り当てるステップと
を更に具備することを特徴とする請求項８記載の論理ディスク間データコピー方法。
【請求項１０】
複数の第１の物理ディスクにより構成される冗長性を有する第１の論理ディスクのデータを、当該第１の論理ディスクを構成する前記複数の第１の物理ディスクとそれぞれ対応付けられる同数の第２の物理ディスクから構成される第２の論理ディスクに復元するために、ディスクコントローラにより前記第１の論理ディスクのデータを前記第２の論理ディスクにコピーする論理ディスク間データコピー用プログラムであって、
前記ディスクコントローラに、
前記第１及び第２の論理ディスク中の対応する前記第１及び第２の物理ディスクごとに、それぞれ前記第１の物理ディスクからデータをリードして当該データを前記第２の物理ディスクの対応する領域へライトするディスクコピー処理を並列に実行するステップと、
前記各第１の物理ディスクから前記第２の物理ディスクへのディスクコピー処理がすべて終了したことをもって、前記第１の論理ディスクから前記第２の論理ディスクへのデータコピーが完了し、前記第１の論理ディスクのデータが前記第２の論理ディスクに復元されたと判定するステップと
を実行させるための論理ディスク間データコピー用プログラム。
【請求項１１】
複数の物理ディスクにより構成される冗長性を有する論理ディスクを管理・制御するディスクコントローラにおいて、
前記ディスクコントローラにより管理される、複数の第１の物理ディスクにより構成される冗長性を有する第１の論理ディスクのデータを、前記ディスクコントローラにより管理され、前記第１の論理ディスクを構成する前記複数の第１の物理ディスクとそれぞれ対応付けられる同数の第２の物理ディスクから構成される第２の論理ディスクに復元することが指示された場合に、前記第１及び第２の論理ディスク中の対応する前記第１及び第２の物理ディスクごとに、それぞれ前記第１の物理ディスクからデータをリードして当該データを前記第２の物理ディスクの対応する領域へライトするディスクコピー処理を並列に実行する手段と、前記各第１の物理ディスクから前記第２の物理ディスクへのディスクコピー処理がすべて終了したことをもって、前記第１の論理ディスクから前記第２の論理ディスクへのデータコピーが完了し、前記第１の論理ディスクのデータが前記第２の論理ディスクに復元されたと判定する手段と
を具備することを特徴とするディスクコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の物理ディスクにより構成される冗長性を有する論理ディスクを管理・制御するディスクコントローラに係り、特に第１の論理ディスクのデータを第２の論理ディスクに復元するために、ディスクコントローラにより当該第１の論理ディスクのデータを第２の論理ディスクにコピーする論理ディスク間データコピー方法、論理ディスク間データコピー用プログラム、及びディスクコントローラに関する。
【０００２】
【従来の技術】
従来から、複数のディスク（物理ディスク）を束ねて、仮想的に１つの冗長性を持ったディスク（冗長化論理ディスク）を構成することにより、信頼性の向上、高速性を実現したＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ　Ａｒｒａｙ　ｏｆ　Ｉｎｅｘｐｅｎｓｉｖｅ　ＤｉｓｋｓまたはＲｅｄｕｎｄａｎｔ　Ａｒｒａｙ　ｏｆ　Ｉｎｄｅｐｅｎｄｅｎｔ　Ｄｉｓｋｓ）技術が提案、実用化されている。
【０００３】
このＲＡＩＤ技術により実現される論理ディスクは、コントローラ（ＲＡＩＤコントローラ）を介して接続されるホスト（ホストコンピュータ）から利用されるのが一般的である。ＲＡＩＤコントローラは、論理ディスクを含むＲＡＩＤ装置に実装して用いられるタイプと、カード上に実装された状態で、ホストのカードスロットに装着して使用されるタイプとに大別される。
【０００４】
さて、ホストからのアクセス要求に従うＲＡＩＤコントローラの制御のもとで、複数のディスクから構成された冗長化論理ディスクが運用に供されているものとする。この運用状態にある論理ディスクの高速化あるいは大容量化を図るために、当該論理ディスクを構成している物理ディスクを、すべて高速あるいは大容量の物理ディスクに置き換えたい場合がある。
【０００５】
このような場合、論理ディスクを構成している物理ディスクを新たな物理ディスクに１台ずつ置き換えるのが一般的である。この置き換えは、ホストが稼動している状態、つまりホスト上でＯＳ（オペレーティングシステム）が動作している状態で行われる。そして、物理ディスクを１台置き換える都度、他の物理ディスクのデータを用いて、ＲＡＩＤ特有の処理により、置き換え前の元の物理ディスク（旧物理ディスク）のデータを復元し、その復元されたデータを新たな物理ディスクに書き込む。この方法は、物理ディスクをすべて交換して新たな論理ディスクにデータを復元し終えるまでに多大な時間を要するという問題がある。
【０００６】
また、運用状態にある論理ディスクを構成する物理ディスクの１つに障害が発生した場合、障害ディスクを新たな物理ディスクに置き換えて、新たに論理ディスクを構築するのが一般的である。ここでは、障害が発生していない残りの物理ディスクのデータを用いて、障害ディスクのデータを復元し、新たな物理ディスクに書き込むことで、新論理ディスクが構築される。このように、物理ディスクが１台だけ障害となった場合には、回復処理を容易に行うことができる。
【０００７】
論理ディスクを構成する物理ディスクに対し、その物理ディスクが寿命を迎えた、あるいは、物理ディスクの品質が悪い等の理由で、同時に複数の物理ディスクを交換したい場合がある。この場合、物理ディスクを１台ずつ交換したのでは、物理ディスクをすべて交換して新たな論理ディスクにデータを復元し終えるまでに多大な時間を要する。
【０００８】
そこで、従来は、論理ディスクを構成する物理ディスクをすべて新たな物理ディスクに交換する場合には、次の手順、即ち
（１）論理ディスク（旧論理ディスク）上のデータを大容量の記憶媒体、例えば磁気テープにバックアップする
（２）旧論理ディスクを構成している物理ディスクをすべて交換して、新たに論理ディスク（新論理ディスク）を構築する
（３）磁気テープから新論理ディスクにバックアップデータを復元する
という手順を適用するのが一般的である。
【０００９】
しかし、この方法は、旧論理ディスクから新論理ディスクに直接データを復元するものではないため、磁気テープへのバックアップを開始してから新論理ディスクで運用を再開するまでに要する時間を大幅に短縮するものではなかった。
【００１０】
【発明が解決しようとする課題】
そこで、磁気テープ利用によるバックアップを避けて、旧論理ディスクのデータを新論理ディスクに復元するために、次の方法が考えられる。
まず、旧論理ディスクを構成する、交換対象となる物理ディスクがＲＡＩＤコントローラ（またはＲＡＩＤ装置）に接続されている状態で、当該ＲＡＩＤコントローラ（またはＲＡＩＤ装置）に新しい物理ディスクも接続して、新論理ディスクを構築する。
【００１１】
そして、ホストからＲＡＩＤコントローラに対し、リード要求とライト要求とを繰り返し発行する。ＲＡＩＤコントローラは、ホストからのリード要求に応じて旧論理ディスクの対応するストライプからデータを読み出すリード処理を実行し、そのデータリードで読み出されたデータをホストからのライト要求に応じて新論理ディスクの対応するストライプに書き込むライト処理を実行する。
【００１２】
これにより、磁気テープ利用によるバックアップを行うことなく、旧論理ディスクのデータを新論理ディスクに直接復元できる。
【００１３】
しかし、新論理ディスクにデータを書き込むライト処理では、ＲＡＩＤ固有の処理である冗長データの計算が発生する。また、上記ライト処理では、ストライプ上の、新論理ディスクを構成する複数の物理ディスクの領域（相対位置が同一の領域）に並行してデータが書き込まれ、全物理ディスクへの書き込みが完了しなければ、次の処理に移行できない。つまり、ライト処理では、物理ディスク間の同期待ちが必要となる。この冗長データの計算と物理ディスク間の同期待ちのために、旧論理ディスクのデータを新論理ディスクに復元するのに時間を要しており、一層の時間短縮が要求されている。
【００１４】
本発明は上記事情を考慮してなされたものでその目的は、第１の論理ディスク（旧論理ディスク）のデータを第２の論理ディスク（新論理ディスク）に高速に復元できる、論理ディスク間データコピー方法、論理ディスク間データコピー用プログラム、及びディスクコントローラを提供することにある。
【００１５】
【課題を解決するための手段】
本発明の１つの観点によれば、複数の第１の物理ディスクにより構成される冗長性を有する第１の論理ディスクのデータを、当該第１の論理ディスクを構成する上記複数の第１の物理ディスクとそれぞれ対応付けられる同数の第２の物理ディスクから構成される第２の論理ディスクに復元するために、ディスクコントローラにより上記第１の論理ディスクのデータを上記第２の論理ディスクにコピーする論理ディスク間データコピー方法が提供される。この方法は、上記第１及び第２の論理ディスク中の対応する上記第１及び第２の物理ディスクごとに、それぞれ上記第１の物理ディスクからデータをリードして当該データを上記第２の物理ディスクの対応する領域へライトするディスクコピー処理を並列に実行するステップと、上記各第１の物理ディスクから上記第２の物理ディスクへのディスクコピー処理がすべて終了したことをもって、上記第１の論理ディスクから上記第２の論理ディスクへのデータコピーが完了し、上記第１の論理ディスクのデータが上記第２の論理ディスクに復元されたと判定するステップとから構成される。
【００１６】
このように上記の構成においては、第１の論理ディスクのデータを第２の論理ディスクに復元するために、第１及び第２の論理ディスク中の対応する上記第１及び第２の物理ディスクごとに、それぞれ上記第１の物理ディスクからデータをリードして当該データを上記第２の物理ディスクの対応する領域へライトするディスクコピー処理を並列に実行している。これにより、第１の論理ディスクからデータをリードして、そのリードデータを第２の論理ディスクにライトする方法とは異なって、第１及び第２の論理ディスク中の対応する物理ディスク間の単純なコピー処理（ディスクコピー処理）でのデータ復元となるため、冗長データ計算、更にはデータをライトする際のディスク間の同期待ちが必要なくなり、第１の論理ディスクのデータを第２の論理ディスクに高速に復元することができる。
【００１７】
ここで、上記の構成に、以下のステップ、即ち、第１の論理ディスクから第２の論理ディスクへのデータコピーの期間に、第１の論理ディスク中の第１の物理ディスクからのデータリードで正しいデータが得られなかった場合、当該第１の論理ディスクの冗長性を利用して正しいデータを復元するステップと、この復元されたデータを、上記データリードの対象となった第１の物理ディスクの領域に対応する、上記第２の物理ディスクの領域にコピーするステップとを追加するとよい。
【００１８】
このように、物理ディスク間のデータコピーを行っている際に、コピー元の物理ディスクにデータの破損や、リードエラーが発生した結果、コピーすべきデータが得られない場合に、コピー元の第１の論理ディスクの冗長性を利用して、即ち第１の論理ディスクの冗長データ、あるいは当該第１の論理ディスクを構成する他の物理ディスクのデータをもとに、コピーすべきデータを生成し、コピー先の物理ディスクへデータをライトすることで、第１の論理ディスクのデータを第２の論理ディスクに高速に復元するために、論理ディスクの冗長制御を行わずに、データコピーだけを実施しているにも拘わらず、データ欠損を回避することができる。
【００１９】
また、上記の構成に、以下のステップ、即ち、上記第１の論理ディスクから上記第２の論理ディスクへのデータコピーの期間に、ホストから上記ディスクコントローラに与えられたライト要求に応じて上記第１の論理ディスクへのデータライトを実行する場合、当該第１の論理ディスク中の実際にデータがライトされる上記第１の物理ディスクの領域に対応する上記第２の物理ディスクの領域にも同一のデータをライトするステップを追加するとよい。
【００２０】
このようにすると、コピー元の論理ディスクに対し、ホストから要求されたライトを実行しながら、論理ディスク間のデータコピーをオンラインで行うことができる。
【００２１】
また、上記の構成に、以下のステップ、即ち、ディスクコントローラに対して、当該ディスクコントローラにより管理されている論理ディスクの１つがデータコピー元となる上記第１の論理ディスクとして指定された場合、論理ディスク構成情報により示される、当該第１の論理ディスクを構成する第１の物理ディスクごとに、当該第１の物理ディスクに対応付けるべき物理ディスクを、上記ディスクコントローラに接続された未使用の物理ディスクの中から上記第２の物理ディスクとして選択するステップと、この選択された第２の物理ディスクから構成される論理ディスクをデータコピー先となる上記第２の論理ディスクとして、当該第２の論理ディスクの少なくとも構成及び当該第２の論理ディスクを構成する上記第２の物理ディスクの状態を上記論理ディスク構成情報に追加登録するステップとを追加し、上記ディスクコピー処理を実行するステップでは、上記指定された第１の論理ディスクから、上記選択された第２の物理ディスクにより構成される上記第２の論理ディスクへのデータコピーを実行するとよい。
【００２２】
このようにすると、コピー先となる第２の論理ディスクの構築作業の自動化が図れるため、コピー先論理ディスクを構築する際の人為的ミスを回避できる。
【００２３】
また、上記の構成に、以下のステップ、即ち、上記ディスクコピー処理の実行に際し、上記ディスクコントローラにより管理されている論理ディスクごとに、少なくとも当該論理ディスクの構成及び当該論理ディスクを構成する物理ディスクの状態を示す、メモリに保持されている論理ディスク構成情報を参照するステップと、この論理ディスク構成情報の参照結果により、上記第１の論理ディスクを構成する上記第１の物理ディスクの中に故障状態にある物理ディスクが存在するかを判定するステップとを追加し、上記ディスクコピー処理を実行するステップでは、上記判定ステップでの判定結果をもとに、故障状態にある物理ディスクを除いて、上記第１及び第２の論理ディスク中の対応する第１及び第２の物理ディスクごとに、それぞれ第１の物理ディスクから第２の物理ディスクへのディスクコピー処理を並列に実行するとよい。
【００２４】
このようにすると、コピー元の論理ディスク中に故障状態にある物理ディスクが存在しても、つまりコピー元の論理ディスクが縮退状態となっていても、コピー先の論理ディスクに同じ状態のコピーを作成できる。
【００２５】
なお、以上の論理ディスク間データコピー方法に係る本発明は、ディスクコントローラ（コンピュータ）に当該方法に相当する手順を実行させるためのプログラムに係る発明としても成立する。また、上記論理ディスク間データコピー方法に係る本発明は、当該方法を適用し、冗長性を有する論理ディスクを管理・制御するコントローラ（ディスクコントローラ）に係る発明としても成立する。
【００２６】
【発明の実施の形態】
以下、本発明の実施の形態につき図面を参照して説明する。
［第１の実施形態］
図１は、本発明の第１の実施形態に係るディスクコントローラを備えたコンピュータシステムの構成を示すブロック図である。
【００２７】
図１において、ＲＡＩＤ装置（ディスクアレイ装置）１１は、当該ＲＡＩＤ装置１１を利用するホスト（ホストコンピュータ）１２と、ホストインタフェースバス１３を介して接続されている。ＲＡＩＤ装置１１は、ＲＡＩＤコントローラ（ディスクコントローラ）１４と、論理ディスク１５Ｓとから構成される。ＲＡＩＤコントローラ１４は、論理ディスク１５Ｓの状態、更に具体的に述べるならば当該論理ディスク１５Ｓを構成する物理ディスクの状態を管理する。ＲＡＩＤコントローラ１４はまた、ホスト１２からのリードまたはライト要求を受けて、論理ディスク１５Ｓに対するアクセスを制御する。このアクセス制御では、ＲＡＩＤコントローラ１４は、ホスト１２からの要求に応じて、論理ディスク１５Ｓ内のアクセス先となる物理ディスクを決定する。そしてＲＡＩＤコントローラ１４は、決定した物理ディスクに対してリードまたはライト要求を発行し、その要求に対する応答をホスト１２に返す。
【００２８】
論理ディスク１５Ｓは複数、例えば３台の物理ディスク１５１ａ（Ｓａ），１５１ｂ（Ｓｂ），１５１ｃ（Ｓｃ）から構成され、信頼性、耐障害性を向上させるために、冗長データを保持する。このため、論理ディスク１５Ｓは冗長化論理ディスクと呼ばれる。冗長性のレベル（ＲＡＩＤレベル）としては、ＲＡＩＤ０，１，３，５などが知られている。物理ディスク１５１ａ〜１５１ｃは、ディスクインタフェースバス１６を介してＲＡＩＤコントローラ１４と接続されている。ディスクインタフェースバス１６は、例えばＳＣＳＩ（Ｓｍａｌｌ　Ｃｏｍｐｕｔｅｒ　Ｓｙｓｔｅｍ　Ｉｎｔｅｒｆａｃｅ）バスである。なお、ディスクインタフェースバス１６には、ＳＣＳＩバス以外に、例えばファイバチャネルを用いることも可能である。
【００２９】
本実施形態では、論理ディスク１５Ｓを構成する物理ディスク１５１ａ，１５１ｂ，１５１ｃをすべて新たな物理ディスクに交換する必要がある場合、その新たな物理ディスクをディスクインタフェースバス１６に接続する。つまり、新たな物理ディスクをディスクインタフェースバス１６を介してＲＡＩＤコントローラ１４に接続する。図１の例では、論理ディスク１５Ｓが３台の物理ディスク１５１ａ，１５１ｂ，１５１ｃから構成されていることから、当該物理ディスク１５１ａ，１５１ｂ，１５１ｃを交換するには、新たに３台の物理ディスクが必要となる。図１には、物理ディスク１５１ａ，１５１ｂ，１５１ｃと交換するために、新たに３台の物理ディスク１５２ａ（Ｄａ），１５２ｂ（Ｄｂ），１５２ｃ（Ｄｃ）がディスクインタフェースバス１６に接続されている状態が示されている。本実施形態では、この物理ディスク１５２ａ，１５２ｂ，１５２ｃにより新たな論理ディスク１５Ｄを構築した場合、論理ディスク１５Ｓから論理ディスク１５Ｄへ、それぞれ対応する物理ディスクごとにデータをコピーするようにしている。そこで、論理ディスク１５Ｓをコピー元論理ディスク１５Ｓとも呼び、論理ディスク１５Ｄをコピー先論理ディスク１５Ｄとも呼ぶ。
【００３０】
ＲＡＩＤコントローラ１４は、ＣＰＵ１４１と、制御プログラムが格納されているＲＯＭ１４２とから構成される。ＣＰＵ１４１は、ＲＯＭ１４２に格納されている制御プログラムを実行することで、ＲＡＩＤコントローラ１４が有する管理・制御機能、特にコピー元論理ディスク１５Ｓからコピー先論理ディスク１５Ｄへの対応する物理ディスクごとのデータコピーを制御する機能を実現する。
【００３１】
次に、図１の構成のＲＡＩＤ装置１１においてＲＡＩＤコントローラ１４の制御により実行される、コピー元論理ディスク１５Ｓからコピー先論理ディスク１５Ｄへのデータコピーについて、図２のフローチャートを参照して説明する。
【００３２】
今、コピー元となる論理ディスク１５Ｓを構成する物理ディスク１５１ａ（Ｓａ），１５１ｂ（Ｓｂ），１５１ｃ（Ｓｃ）をすべて交換するために、新たな物理ディスク１５２ａ（Ｄａ），１５２ｂ（Ｄｂ），１５２ｃ（Ｄｃ）をＲＡＩＤ装置１１に装着して、当該ＲＡＩＤ装置１１内のディスクインタフェースバス１６に接続することにより、コピー先となる論理ディスク１５Ｄを構築したものとする。ここで、ディスク１５２ａ（Ｄａ）はディスク１５１ａ（Ｓａ）に、ディスク１５２ｂ（Ｄｂ）はディスク１５１ｂ（Ｓｂ）に、ディスク１５２ｃ（Ｄｃ）はディスク１５１ｃ（Ｓｃ）に、それぞれ対応する。コピー先論理ディスク１５Ｄを構成する物理ディスクＤａ，Ｄｂ，Ｄｃの容量は、対応する論理ディスク１５Ｓを構成する物理ディスクＳａ，Ｓｂ，Ｓｃの容量と同等か、それ以上必要である。
【００３３】
コピー先論理ディスク１５Ｄの構成情報（ＲＡＩＤ構成情報）は、ホスト１２の入力部を用いて保守員が入力操作をすることにより、例えば当該ホスト１２上で動作する保守用のＯＳにより当該ホスト１２内に設定されると共に、当該ホスト１２からＲＡＩＤ装置１１のＲＡＩＤコントローラ１４に通知される。この状態で、保守員がホスト１２を操作してデータコピーを指示すると、ホスト１２からＲＡＩＤコントローラ１４にデータコピー要求が発行される。なお、ＲＡＩＤ装置１１に入力部を設けるならば、上記構成情報の設定及びデータコピーの起動を、ホスト１２から独立にＲＡＩＤ装置１１側で行うことも可能である。
【００３４】
ＲＡＩＤコントローラ１４は、ホスト１２からのデータコピー要求に応じて、コピー元論理ディスク１５Ｓ及びコピー先論理ディスク１５Ｄ中の対応する物理ディスクごとに、ディスクコピー処理を並列に実行する（ステップＳ１）。ここでは、それぞれ、物理ディスク１５１ａ（Ｓａ）から物理ディスク１５２ａ（Ｄａ）、物理ディスク１５１ｂ（Ｓｂ）から物理ディスク１５２ｂ（Ｄｂ）、そして物理ディスク１５１ｃ（Ｓｃ）から物理ディスク１５２ｃ（Ｄｃ）へのディスクコピー処理を実行する。このＤａ→Ｓａ，Ｄｂ→Ｓｂ，Ｄｃ→Ｓｃへのディスクコピー処理では、各ディスクの性能、回転待ちのタイミング、容量などにより、進捗状況が異なる。そのため、ＲＡＩＤコントローラ１４は、対応する物理ディスクごとのディスクコピー処理がすべて終了した時点で、コピー元論理ディスク１５Ｓからコピー先論理ディスク１５Ｄへのデータコピーが完了したものと判定する（ステップＳ２）。このデータコピーが完了した時点で、コピー元論理ディスク１５Ｓのデータがコピー先論理ディスク１５Ｄに復元されたことになる。
【００３５】
このように本実施形態においては、コピー元論理ディスク１５Ｓのデータをコピー先論理ディスク１５Ｄに復元する処理を、コピー元論理ディスク１５Ｓからコピー先論理ディスク１５Ｄに対して、対応する物理ディスクごとのディスクコピー処理により直接データをコピーすることで実現している。もし、ディスク間の直接のコピー処理ではなく、コピー元論理ディスク１５Ｓからデータをリードして、そのデータをコピー先論理ディスク１５Ｄにライトする動作を繰り返すことで、コピー元論理ディスク１５Ｓのデータをコピー先論理ディスク１５Ｄに復元するならば、次のような問題が生じる。
【００３６】
例えば、ＲＡＩＤ１（ミラーリング）では、ライトすべきデータを２つの物理ディスクにライトする必要がある。ここでは、２つのディスクへの同一データのライトが終了するまで、ライト処理全体を完了させることができず、次の処理に進めない。そのため、２つのディスクのうちの遅い方の処理時間に影響を受けてしまい、先にライトを完了した一方のディスクを効率よく使うことができないことになる。また、ＲＡＩＤ５では、ライトすべきデータに対し、冗長データとしてのパリティ（パリティデータ）を計算し、データとパリティの両方をディスクにライトしなければならない。
【００３７】
これに対し、本実施形態では、データを単純にディスクからディスク（Ｄａ→Ｓａ，Ｄｂ→Ｓｂ，Ｄｃ→Ｓｃ）へコピーするだけであり、上述のコピー元論理ディスク１５Ｓからデータをリードして、そのデータをコピー先論理ディスク１５Ｄにライトする方法に比較して、高速で且つ効率良くデータのコピーを行うことができる。
【００３８】
さて、コピー元論理ディスク１５Ｓを構成する物理ディスクからのデータのリード時に、当該物理ディスクの部分的な障害のために正しいデータがリードできない場合がある。もし、論理ディスクが冗長性のあるＲＡＩＤ構成（つまり冗長化論理ディスク）であると、冗長データによりデータを復元することができる。そこで本実施形態ではディスクコピー処理で、データがリードできない場合には、コピー元論理ディスク１５Ｓ上の冗長データよりデータを復元し、コピー先論理ディスク１５Ｄの対応する物理ディスクにデータをライトすることで、データコピーを行う。
【００３９】
以下、ディスクコピー処理の詳細な手順について、コピー元論理ディスク１５Ｓ中の物理ディスクＳｉ（ｉ＝１〜３）からコピー先論理ディスク１５Ｄ中の物理ディスクＤｉへのディスクコピー処理を例に、図３のフローチャートを参照して説明する。
【００４０】
まずＲＡＩＤコントローラ１４は、物理ディスクＳｉ，Ｄｉ内の相対アドレスを示すオフセットを０に初期設定する（ステップＳ１１）。
次にＲＡＩＤコントローラ１４は、物理ディスクＳｉのオフセットで指定された領域からデータをリードする（ステップＳ１２）。
【００４１】
もし、物理ディスクＳｉのオフセットで指定された領域のデータの破損、またはリードエラーが発生したために、正しいデータが得られないならば（ステップＳ１３）、ＲＡＩＤコントローラ１４は、コピー元論理ディスク１５Ｓ中の他の物理ディスクのオフセットで指定された領域からデータ（またはパリティ）をリードして、そのデータ（またはパリティ）により物理ディスクＳｉのオフセットで指定された領域のデータを復元する（ステップＳ１４）。つまりＲＡＩＤコントローラ１４は、コピー元論理ディスク１５Ｓの冗長性を利用して正しくリードできなかったデータを復元する。
【００４２】
次にＲＡＩＤコントローラ１４は、ステップＳ１２で正しいデータがリードできたならば、そのデータを、正しいデータがリードできなかったならば、ステップＳ１４で復元したデータを、コピー先論理ディスク１５Ｄ中の物理ディスクＤｉのオフセットで指定された領域にコピー（ライト）する（ステップＳ１５）。
【００４３】
次にＲＡＩＤコントローラ１４は、コピー元の物理ディスクＳｉのデータを最後までリードしたか否かを調べる（ステップＳ１６）。もし、リードすべきデータが残っているなら、ＲＡＩＤコントローラ１４はオフセットをステップＳ１２でリードした分だけ進めて（ステップＳ１７）、ステップＳ１２のリード処理に戻る。これに対し、コピー元の物理ディスクＳｉのデータを最後までリードしたならば、ＲＡＩＤコントローラ１４は、コピー元のディスクＳｉからコピー先のディスクＤｉへのディスクコピー処理を終了する。
【００４４】
次に、コピー元論理ディスク１５Ｓからコピー先論理ディスク１５Ｄへのデータコピーを行っている間に、ホスト１２からのライト要求に応じて、コピー元論理ディスク１５Ｓへのデータライトを実行する場合について、図４のフローチャートを参照して説明する。
【００４５】
コピー元論理ディスク１５Ｓからコピー先論理ディスク１５Ｄへのデータコピー中に、ホスト１２から当該コピー元論理ディスク１５Ｓへのライト要求が発行された場合、当該コピー元論理ディスク１５Ｓへのデータのライトは、コピー先論理ディスク１５Ｄにも反映されなければならない。そこでＲＡＩＤコントローラ１４は、以下の処理を行う。
【００４６】
まずＲＡＩＤコントローラ１４は、通常のライト処理と同様に、コピー元論理ディスク１５Ｓを構成する各物理ディスクごとにライト処理を細分化する（ステップＳ２１）。どのようなライト処理になるかは、適用するＲＡＩＤレベル、ライトデータのサイズ、物理ディスクの個数によって異なる。
【００４７】
次にＲＡＩＤコントローラ１４は、ライト処理を細分化した結果に応じて、コピー元論理ディスク１５Ｓ中の実際にライトする物理ディスクのライト先の領域を指定するライト要求と、コピー先論理ディスク１５Ｄ中の対応する物理ディスクの相対位置が同一の領域を指定するライト要求とを、それぞれ該当する物理ディスクに発行する（ステップＳ２２）。
【００４８】
ＲＡＩＤコントローラ１４は、ステップＳ２２で発行したライト要求で指定されたライト処理がすべて完了するのを待って（ステップＳ２３）、ホスト１２から指定された全ライトデータについてライト完了したか否かを判定する（ステップＳ２４）。ＲＡＩＤコントローラ１４は、以上のステップＳ２１〜Ｓ２４の処理を、全ライトデータについてライト完了するまで繰り返す。
【００４９】
このように、ライト処理を実行することで、ホスト１２から要求されたコピー元論理ディスク１５Ｓは勿論、コピー先論理ディスク１５Ｄへも最新のライトデータが反映されることになり、コピー元論理ディスク１５Ｓからコピー先論理ディスク１５Ｄへのデータコピー中でも、ホスト１２からのデータのライト処理を行うことができる。
【００５０】
［第２の実施形態］
次に、本発明の第２の実施形態について説明する。
前記第１の実施形態で述べたように、コピー元論理ディスクからコピー先論理ディスクへのデータコピーを行うには、コピー先となる論理ディスクを構成する物理ディスクをディスクインタフェースバスを介してディスクコントローラに接続する必要がある。このとき保守員は、コピー先論理ディスクをコピー元の論理ディスクと同じＲＡＩＤレベルに設定し、更にコピー元とコピー先とを間違いないよう指定する、などの論理ディスク構築作業が必要となる。しかし、この作業で設定ミス等が発生すると、データコピーが正しく行われず、場合によっては、コピー元の論理ディスクのデータの破壊につながる可能性がある。
【００５１】
そこで、本発明の第２の実施形態の特徴は、ＲＡＩＤ装置内に保持されている、論理ディスクの構成及びその状態等を管理するためのＲＡＩＤ構成情報を利用することで、コピー元論理データからコピー先論理ディスクのデータコピーのための作業を容易にして設定ミスを防止するようにしたことにある。
【００５２】
図５は、本発明の第２の実施形態に係るディスクコントローラを備えたコンピュータシステムの構成を示すブロック図である。なお、図１と同一部分には同一参照符号を付してある。
【００５３】
図５において、ＲＡＩＤ装置２１は、ホスト１２と、ホストインタフェースバス１３を介して接続されている。ＲＡＩＤ装置２１は、ＲＡＩＤコントローラ２４と、論理ディスク２５Ｓと、メモリ２７と、入力部２８とから構成される。論理ディスク２５Ｓは、複数、例えば３台の物理ディスク２５１ａ（Ｓａ），２５１ｂ（Ｓｂ），２５１ｃ（Ｓｃ）から構成されている。物理ディスク２５１ａ（Ｓａ），２５１ｂ（Ｓｂ），２５１ｃ（Ｓｃ）は、ディスクインタフェースバス２６を介してＲＡＩＤコントローラ２４と接続されている。
【００５４】
ＲＡＩＤコントローラ２４は、図１中のＣＰＵ１４１及びＲＯＭ１４２に相当する、ＣＰＵ２４１及びＲＯＭ２４２を備えている。ＣＰＵ２４１及びＲＯＭ２４２は内部バス２４３により接続されている。この内部バス２４３には、メモリ２７及び入力部２８も接続されている。
【００５５】
メモリ２７には、ＲＡＩＤ構成情報２７０が保持されている。メモリ２７には、ＲＡＩＤ装置２１の電源がオフされていても、ＲＡＩＤ構成情報２７０を含む記憶内容が消失しないように、書き換え可能な不揮発性メモリが用いられる。なお、メモリ２７に、バッテリバックアップされた揮発性メモリを用いることも可能である。また、ＲＡＩＤ構成情報２７０が、メモリ以外の記憶手段、例えばディスクに格納される構成とすることも可能である。
【００５６】
ＲＡＩＤ構成情報（論理ディスク構成情報）２７０は、例えば図６に示すように、論理ディスクの構成を示す情報、つまり論理ディスクを構成する物理ディスク（メンバーディスク）の情報、その物理ディスクの状態を示す情報、及び当該論理ディスクに関する設定情報（ＲＡＩＤレベル、その他の情報）を含むテーブル形式の情報である。図６の例では、ＲＡＩＤ構成情報（ＲＡＩＤ構成情報テーブル）２７０は、コピー元論理ディスク１が、物理ディスクＳａ，Ｓｂ，Ｓｃからなり、ＲＡＩＤ５で構成されていることを示している。ここでは、図５中の論理ディスク２５Ｓがコピー元論理ディスク１であるものとする。
【００５７】
次に、図５の構成のＲＡＩＤ装置２１においてＲＡＩＤコントローラ２４の制御により実行される、ＲＡＩＤ構成情報２７０を利用してのデータコピーについて説明する。
【００５８】
今、保守員が、データコピー先となる、図５に示す３台の物理ディスク２５２ａ（Ｄａ），２５２ｂ（Ｄｂ），２５２ｃ（Ｄｃ）をＲＡＩＤ装置２１に装着したものとする。この物理ディスク２５２ａ（Ｄａ），２５２ｂ（Ｄｂ），２５２ｃ（Ｄｃ）は、ＲＡＩＤ装置２１内のディスクインタフェースバス２６に接続されている。
【００５９】
この状態で、保守員は、ＲＡＩＤ装置２１の入力部２８を操作して、データコピー元の論理ディスクをＲＡＩＤコントローラ２４に対して指定する。ここでは、コピー元論理ディスク１、即ち論理ディスク２５Ｓがコピー元論理ディスクとして指定されたものとする。
【００６０】
ＲＡＩＤコントローラ２４は、入力部２８からのコピー元論理ディスクの指定に応じて、メモリ２７に保持されている図６に示したデータ構造のＲＡＩＤ構成情報２７０を参照する。そしてＲＡＩＤコントローラ２４は、指定された論理ディスク番号で示される論理ディスクを構成するすべての物理ディスクを認識する。ここでは、コピー元論理ディスク１、即ちコピー元論理ディスク２５Ｓが、物理ディスクＳａ（２５１ａ），Ｓｂ（２５１ｂ），Ｓｃ（２５１ｃ）から構成されていることが認識される。
【００６１】
次にＲＡＩＤコントローラ２４は、物理ディスクＳａ，Ｓｂ，Ｓｃに対応させるコピー先の物理ディスクを順に選択する。このコピー先のディスクを選択する手順について、図７のフローチャートを参照して説明する。
【００６２】
まずＲＡＩＤコントローラ２４は、コピー元論理ディスク（ここではコピー元論理ディスク２５Ｓ）を構成する物理ディスクの中から、未選択の物理ディスク（Ａ）を１つ選ぶ（ステップＳ３１）。次にＲＡＩＤコントローラ２４は、ディスクインタフェースバス２６に接続されている未選択の空き物理ディスク（Ｂ）を１つ選ぶ（ステップＳ３２，Ｓ３３）。
【００６３】
次にＲＡＩＤコントローラ２４は、選択した物理ディスク（Ａ）及び物理ディスク（Ｂ）の記憶容量を比較し、物理ディスク（Ｂ）の容量が物理ディスク（Ａ）の容量以上であるか否かを判定する（ステップＳ３４）。
【００６４】
もし、物理ディスク（Ｂ）の容量が物理ディスク（Ａ）の容量より少ないならば、当該物理ディスク（Ｂ）をコピー先とすることはできないため、ＲＡＩＤコントローラ２４は別の未選択の空き物理ディスクを選ぶ（ステップＳ３２，Ｓ３３）。これに対し、選択した物理ディスク（Ｂ）の容量がステップＳ３１で選択した物理ディスク（Ａ）の容量以上ならば、当該物理ディスク（Ｂ）を、コピー先論理ディスクを構成する物理ディスクの１つとして確定する（ステップＳ３５）。
【００６５】
ＲＡＩＤコントローラ２４は、コピー先論理ディスクを構成する物理ディスクの１つを確定すると、コピー元論理ディスク中の物理ディスクをすべて選んだか否かを判定する（ステップＳ３６）。もし、未選択の物理ディスクが残っているならば、ＲＡＩＤコントローラ２４はステップＳ３１に戻って、未選択の物理ディスク（Ａ）を１つ選び、しかる後にステップＳ３２以降の処理を再度実行する。これに対し、コピー元論理ディスク中の物理ディスクをすべて選んだならば、ＲＡＩＤコントローラ２４はコピー先の物理ディスクを選択する処理を終了する。
【００６６】
このようにして、コピー元として指定されたコピー元論理ディスク２５Ｓを構成する物理ディスクＳａ（２５１ａ），Ｓｂ（２５１ｂ），Ｓｃ（２５１ｃ）に対応させるコピー先の物理ディスクとして、それぞれ、物理ディスクＤａ（２５２ａ），Ｄｂ（２５２ｂ），Ｄｃ（２５２ｃ）が選択されたものとする。この場合、ＲＡＩＤコントローラ２４は、選択された物理ディスクＤａ，Ｄｂ，Ｄｃから構成される論理ディスクを、コピー先論理ディスクとして、その構成情報をＲＡＩＤ構成情報２７０に追加登録する。この際、コピー先論理ディスクに関するＲＡＩＤレベルを含む設定情報は、コピー元論理ディスクに関するそれと同等にする。
【００６７】
ＲＡＩＤコントローラ２４は、コピー先論理ディスクに関する構成情報を自動設定すると、前記第１の実施形態と同様にして、コピー元論理ディスクからコピー先論理ディスクへのデータコピーを実行する。
【００６８】
［第２の実施形態の第１の変形例］
次に、上記第２の実施形態の第１の変形例について説明する。
周知のように、論理ディスクが冗長性を持つ論理ディスク（冗長化論理ディスク）では、当該論理ディスクを構成する物理ディスクの１つが故障しても（例えばパリティ生成が必要なＲＡＩＤ４またはＲＡＩＤ５の論理ディスクの場合）、あるいは複数が故障しても（例えばパリティ生成が不要なＲＡＩＤ１０の論理ディスクの場合）、その故障をホストに見せず、ホストからのリードまたはライト要求で指定されたデータのリードまたはライトを行うことができる。
【００６９】
このように、論理ディスクを構成する物理ディスクの１つまたは複数が故障しているような場合でも、ＲＡＩＤコントローラ２４は、その物理ディスクに対応させるコピー先物理ディスクを選択する処理を、上記第２の実施形態と同様に図７のフローチャートの示す手順で実行する。そしてＲＡＩＤコントローラ２４は、コピー先論理ディスクの構成情報をＲＡＩＤ構成情報２７０に追加登録する際に、図８（ａ）に示すように、コピー元論理ディスクの各ディスクと同じ状態を設定する。この図８（ａ）の例では、コピー元論理ディスク１中の物理ディスクＳａが故障中のため、コピー先論理ディスク１中の対応する物理ディスクＤａも故障状態に設定され、ディスクＳａからディスクＤａへのデータコピーが行われないようにする。このようにしても、何ら不都合はない。その理由は、運用する論理ディスクをコピー元論理ディスクからコピー先論理ディスクに切り替えた後に、上記障害ディスクＳａに対応する論理ディスク中の物理ディスクＤａに対するリード要求があった場合、その要求先と相対位置が同一の論理ディスク中の他の物理ディスクＤｂ及びＤｃのデータを用いて、その要求先のデータが復元されるためである（例えばＲＡＩＤ４またはＲＡＩＤ５の場合）。
【００７０】
以下、コピー元論理ディスク中に故障状態にある物理ディスクが存在する場合の、コピー元論理ディスクからコピー先論理ディスクへのデータコピーについて、図９のフローチャートを参照して説明する。
【００７１】
まずＲＡＩＤコントローラ２４は、ＲＡＩＤ構成情報２７０を参照して（ステップＳ４１）、コピー元論理ディスクを構成している物理ディスクの中に故障している物理ディスクが存在するかを調べる（ステップＳ４２）。
【００７２】
図８（ａ）のＲＡＩＤ構成情報２７０の例のように、故障している物理ディスクが存在する場合（ここではＳａ）には、ＲＡＩＤコントローラ２４は、その故障している物理ディスク（と当該故障している物理ディスクに対応する、コピー先論理ディスク中の物理ディスクと）を除き、コピー元論理ディスク及びコピー先論理ディスク中の対応する物理ディスクごとに、ディスクコピー処理を並列に実行する（ステップＳ４３）。
【００７３】
これに対し、故障している物理ディスクが存在しない場合には、前記第１の実施形態におけるステップＳ１と同様に、コピー元論理ディスク及びコピー先論理ディスク中の対応する物理ディスクごとに、ディスクコピー処理が実行される（ステップＳ４４）。
【００７４】
［第２の実施形態の第２の変形例］
次に、上記第２の実施形態の第２の変形例について説明する。
図５のＲＡＩＤ装置２１において、コピー元論理ディスク２５Ｓ中の物理ディスクＳａが上記したように故障したために、そのディスクＳａが交換されて、そのディスクに対し、コピー元論理ディスク２５Ｓの冗長性を利用して（例えば他のディスクＳｂ及びＳｃのデータをもとに）データの回復処理が行われているものとする。この場合には、以下に述べる処理を行うことで、回復中のディスクＳａからコピー先論理ディスク中の対応するディスクＤａへのデータコピーを行わせることができる。
【００７５】
一般に、ディスクの回復処理を行う場合には、どこまで回復したかを示すオフセット（回復オフセット）が用いられる。この第２の実施形態の第２の変形例では、ＲＡＩＤ構成情報２７０中に回復オフセットが含まれている。
【００７６】
今、図７のフローチャートに示す手順で選択された物理ディスクＤａ，Ｄｂ，Ｄｃから構成されるコピー先論理ディスクに関する構成情報が、上記第２の実施形態と同様にしてＲＡＩＤ構成情報２７０に追加登録されたものとする。このときのＲＡＩＤ構成情報２７０の内容を図８（ｂ）に示す。ここでは、コピー元論理ディスク１（＝コピー元論理ディスク２５Ｓ）中の物理ディスクＳａの状態が回復中に設定されている。このため、ディスクＳａに対応する、コピー先論理ディスク中の物理ディスクＤａの状態も、当該ディスクＳａと同一の状態、即ち回復中に設定されている。
【００７７】
ＲＡＩＤコントローラ２４は、コピー先論理ディスクに関する構成情報を自動設定すると、コピー元論理ディスクからコピー先論理ディスクへのデータコピーを実行する。ここでは、回復中の物理ディスクＳａ及びＤａについても、物理ディスクＳａ中の回復済みのデータ、即ち回復オフセットで示される位置までのデータを物理ディスクＤａへコピーするディスクコピーを行う。また、Ｓａに対するデータ回復処理、即ちＳｂ，ＳｃからＳａにあるべきデータを復元する処理で発生する、Ｓａに対するデータのライトは、前記第１の実施形態におけるデータコピー中のホストからのライト要求の実行の場合と同様に、ＳａとＤａの両方に行う。
【００７８】
以下、コピー元論理ディスク中の物理ディスクＳｉ（ここではｉ＝ａ）に対するデータ回復処理について、図１０（ａ）のフローチャートを参照して説明する。
【００７９】
まずＲＡＩＤコントローラ２４は、コピー元論理ディスク中の物理ディスクＳｉの回復処理の開始時に、回復オフセットを０に初期設定する（ステップＳ５１）。次にＲＡＩＤコントローラ２４は、物理ディスクＳｉ中の、回復オフセットで指定された領域のデータを、コピー元論理ディスク中の他の物理ディスクの回復オフセットで指定された領域のデータをもとに復元する（ステップＳ５２）。図８（ｂ）ＲＡＩＤ構成情報２７０の例では、ＳａのデータがＳｂ及びＳｃのデータから復元される。次に、ＲＡＩＤコントローラ２４は、回復オフセットを回復した分だけ進める（ステップＳ５３）。ＲＡＩＤコントローラ２４は、以上の回復処理を、物理ディスクＳｉ（＝Ｓａ）の全領域について繰り返し実行する。
【００８０】
なお、ステップＳ５２で、物理ディスクＳｉ（＝Ｓａ）のデータを復元した際に、図１０中のステップＳ５２ａのように、そのデータを、当該物理ディスクＳｉ（＝Ｓａ）に対応する、コピー先論理ディスク中の物理ディスクＤｉ（＝Ｄａ）の回復オフセットで指定される領域に書き込むようにしてもよい。この場合、以下に述べる物理ディスクＳｉから物理ディスクＤｉへのディスクコピー処理は不要となる。
【００８１】
次に、物理ディスクＳｉに対するデータ回復処理中での当該物理ディスクＳｉから物理ディスクＤｉへのディスクコピー処理について、図１０（ｂ）のフローチャートを参照して説明する。ここでのディスクコピー処理の特徴は、図３のフローチャート中のステップＳ１１及びＳ１７とステップＳ１２との間に、判定ステップＳ６０を挿入したことにある。
【００８２】
ＲＡＩＤコントローラ２４は、図３中のステップＳ１１またはステップＳ１７を実行すると、（物理ディスクＳｉに対するデータ回復処理の進捗状況を示す）回復オフセットが、（物理ディスクＳｉから物理ディスクＤｉへのディスクコピー処理の進捗状況を示す）オフセットを超えているか否かを判定する（ステップＳ６０）。そしてＲＡＩＤコントローラ２４は、回復オフセットがオフセットを超えているならば直ちに、超えていないならば超えるのを待って、図３中のステップＳ１２に進む。ＲＡＩＤコントローラ２４は、このステップＳ１２で、回復処理中の物理ディスクＳｉの、オフセットで指定された領域から、回復（復元）されたデータをリードする。そしてＲＡＩＤコントローラ２４は、リードしたデータを、図３中のステップＳ１５で、コピー先論理ディスク中の物理ディスクＤｉの、オフセットで指定された領域にライトする。
【００８３】
［第３の実施形態］
次に、本発明の第３の実施形態について説明する。
ＲＡＩＤ装置の実際の運用環境においては、コピー先の論理ディスク（を構成する複数の物理ディスク）を、前記第１または第２の実施形態のように、同一のＲＡＩＤ装置内に装着することが困難な場合がある。特に、物理ディスクを最大数搭載している場合には、同一のＲＡＩＤ装置内での増設が困難となる。
【００８４】
そこで、本発明の第３の実施形態の特徴は、同一のＲＡＩＤ装置内でのディスクの増設が困難な場合に対応可能としたことにある。
【００８５】
図１１は、本発明の第３の実施形態に係るディスクコントローラを備えたコンピュータシステムの構成を示すブロック図である。なお、図５と同一部分には同一参照符号を付してある。
【００８６】
図１１において、ＲＡＩＤ装置３１は、ホスト１２と、ホストインタフェースバス１３を介して接続されている。このホスト１２及びＲＡＩＤ装置３１から構成されるコンピュータシステムが、実際に運用されているシステムである。
【００８７】
ＲＡＩＤ装置３１は、図５中のＲＡＩＤコントローラ２４と同様の構造のＲＡＩＤコントローラ３４と、論理ディスク３５Ｓと、ＲＡＩＤ構成情報３７０が保持されているメモリ３７と、入力部３８とから構成される。論理ディスク３５Ｓは、３台の物理ディスク３５１ａ（Ｓａ），３５１ｂ（Ｓｂ），３５１ｃ（Ｓｃ）から構成されている。物理ディスク３５１ａ（Ｓａ），３５１ｂ（Ｓｂ），３５１ｃ（Ｓｃ）は、ディスクインタフェースバス３６を介してＲＡＩＤコントローラ３４と接続されている。本実施形態では、このＲＡＩＤ装置３１に装着されている論理ディスク３５Ｓがコピー元論理ディスクとなる。
【００８８】
ＲＡＩＤ装置３１の筐体には、コピー元論理ディスク３５Ｓに対するコピー先となる論理ディスク（を構成する物理ディスク）を装着する余裕がないものとする。この場合、本実施形態では、図１１に示すように、ＲＡＩＤ装置３１に、当該ＲＡＩＤ装置３１のディスクインタフェースバス３６を介して別のＲＡＩＤ装置４１を新たに接続する。
【００８９】
ＲＡＩＤ装置４１は、ＲＡＩＤコントローラ４４と、論理ディスク４５Ｄとから構成される。図１１の状態では、ＲＡＩＤコントローラ４４はＲＡＩＤ装置３１のディスクインタフェースバス３６と接続されている。また図１１の状態では、論理ディスク４５Ｄがコピー元論理ディスク３５Ｓに対するコピー先の論理ディスクとして用いられる。コピー先論理ディスク４５Ｄは、３台の物理ディスク４５２ａ（Ｄａ），４５２ｂ（Ｄｂ），４５２ｃ（Ｄｃ）から構成されている。物理ディスク４５２ａ（Ｄａ），４５２ｂ（Ｄｂ），４５２ｃ（Ｄｃ）は、ディスクインタフェースバス４６を介してＲＡＩＤコントローラ４４と接続されている。ディスクインタフェースバス３６及び４６は例えばＳＣＳＩバスである。
【００９０】
さて、ＲＡＩＤ装置４１をＲＡＩＤ装置３１に物理的に接続した状態で、当該ＲＡＩＤ装置４１内のＲＡＩＤコントローラ４４を、ＲＡＩＤ装置３１のディスクインタフェースバス３６に論理的にも接続することができるならば、ＲＡＩＤコントローラ４４はＲＡＩＤ装置３１内のコピー元論理ディスク３５Ｓを構成する物理ディスク３５１ａ（Ｓａ），３５１ｂ（Ｓｂ），３５１ｃ（Ｓｃ）に対してリード処理を行うことができる。この場合、前記第１または第２のの実施形態と同様に、コピー元論理ディスク３５Ｓからコピー先論理ディスク４５Ｄへのデータコピーを行うことができる。
【００９１】
この例のように、ＲＡＩＤコントローラ３４と、コピー元論理ディスク３５Ｓを構成する物理ディスク３５１ａ（Ｓａ），３５１ｂ（Ｓｂ），３５１ｃ（Ｓｃ）とを接続するディスクインタフェースバス３６にＳＣＳＩバスが用いられている場合、ＳＣＳＩ　ＩＤ（ＳＣＳＩ識別子）をＲＡＩＤ装置４１内のＲＡＩＤコントローラ４４に割り当てる必要がある。
【００９２】
以下、ＲＡＩＤコントローラ４４へのＳＣＳＩ　ＩＤ割り当てについて、図１２のフローチャートを参照して説明する。
ＳＣＳＩバスでは、利用可能なＳＣＳＩ　ＩＤが、０−１５のように限られた個数しかない。そのため運用中のＲＡＩＤ装置３１内のＲＡＩＤコントローラ３４は、図１２のフローチャートに示す手順で未使用のＳＣＳＩ　ＩＤ（空きＩＤ）、または未使用と等価なＳＣＳＩ　ＩＤを探索する。
【００９３】
まずＲＡＩＤコントローラ３４は、ＲＡＩＤ装置３１のディスクインタフェースバス３６の空きＳＣＳＩ　ＩＤを探索し、ＳＣＳＩ　ＩＤの空きがあるかを調べる（ステップＳ７１，Ｓ７２）。もし、空きＩＤがある場合、ＲＡＩＤコントローラ３４は、空きＩＤを１つ選択して、そのＩＤを、当該ＲＡＩＤコントローラ３４（を備えたＲＡＩＤ装置３１）とディスクインタフェースバス３６を介して接続されたＲＡＩＤ装置４１内のＲＡＩＤコントローラ４４に割り当てる（ステップＳ７３）。これにより、ＲＡＩＤコントローラ４４は、ＲＡＩＤ装置３１のディスクインタフェースバス３６に論理的にも接続され、当該割り当てられたＩＤを用いてイニシエータとして動作し、コピー元論理ディスク３５Ｓからコピー先論理ディスク４５ＤへのデータコピーをＲＡＩＤコントローラ３４に代わって実行する。
【００９４】
これに対し、ディスクインタフェースバス３６のＳＣＳＩ　ＩＤに空きがない場合には、ＲＡＩＤコントローラ３４はＲＡＩＤ構成情報３７０を参照し、使用されていない物理ディスクに割り当てられているＩＤを探索する（ステップＳ７４）。使用されていない物理ディスクとは、例えば、ディスクインタフェースバス３６に接続されているが、論理ディスクとしては構成されていない物理ディスク、あるいは使用されていないホットスペアディスクである。ホットスペアディスクとは、論理ディスクを構成する物理ディスクに障害が発生した場合に当該障害ディスクに代えて用いられる物理ディスクである。
【００９５】
ＲＡＩＤコントローラ３４は、使用されていない物理ディスクに割り当てられているＩＤが見つかった場合、当該物理ディスクをディスクインタフェースバス３６から切り離す（ステップＳ７６）。このディスクインタフェースバス３６からの物理ディスクの切り離しは、次の第１または第２の方法により実現される。第１の方法は、ＲＡＩＤ装置３１が切り離しの対象となる物理ディスクへの電源供給を制御できる筐体構造を有している場合に適用されるもので、当該ディスクへの電源供給を遮断して、当該ディスクが使用できないようにすることで、当該ディスクを等価的にディスクインタフェースバス３６から切り離す。第２の方法は、切り離しの対象となる物理ディスクが、当該ディスクへのＳＣＳＩ　ＩＤ設定を変更可能な機構を持つＲＡＩＤ装置３１の筐体に装着されている場合に適用されるもので、この機構により、当該ディスクにＳＣＳＩ　ＩＤを割り当てないように変更する。
【００９６】
ＲＡＩＤコントローラ３４は、使用されていない物理ディスクをディスクインタフェースバス３６から切り離すと、当該物理ディスクに割り当てられていたＳＣＳＩ　ＩＤを、当該ＲＡＩＤコントローラ３４（を備えたＲＡＩＤ装置３１）とディスクインタフェースバス３６を介して接続されたＲＡＩＤ装置４１内のＲＡＩＤコントローラ４４に割り当てる（ステップＳ７７）。これにより、ＲＡＩＤコントローラ４４は、ＲＡＩＤ装置３１のディスクインタフェースバス３６に論理的にも接続され、当該割り当てられたＩＤを用いてイニシエータとして動作する。
【００９７】
以上に述べた各実施形態では、ＲＡＩＤコントローラがＲＡＩＤ装置内に実装されているものとして説明した。しかし、ＲＡＩＤコントローラが、カード上に実装された状態で、ホストのカードスロットに装着して使用されるものであっても構わない。
【００９８】
なお、本発明は、上記各実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【００９９】
【発明の効果】
以上詳述したように本発明によれば、複数の物理ディスク（第１の物理ディスク）により構成される冗長性を有する旧論理ディスク（第１の論理ディスク）のデータを、当該旧論理ディスクを構成する上記複数の物理ディスクとそれぞれ対応付けられる同数の物理ディスク（第２の物理ディスク）から構成される新論理ディスク（第２の論理ディスク）に復元するために、これら両論理ディスク中の対応する物理ディスクごとに、それぞれ旧論理ディスク中の物理ディスクからデータをリードして当該データを新論理ディスク中の物理ディスクの対応する領域へライトするディスクコピー処理を並列に実行する構成とした。
【０１００】
このように本発明においては、旧論理ディスクからデータをリードして、そのリードデータを新論理ディスクにライトするのではなく、これら両論理ディスク中の対応する物理ディスク間の単純なコピー処理（ディスクコピー処理）によりデータ復元を行う構成としたため、冗長データ計算、更にはデータをライトする際のディスク間の同期待ちが必要なくなり、旧論理ディスクのデータを新論理ディスクに高速に復元することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係るディスクコントローラを備えたコンピュータシステムの構成を示すブロック図。
【図２】図１中のＲＡＩＤコントローラ１４の制御により実行される、コピー元論理ディスク１５Ｓからコピー先論理ディスク１５Ｄへのデータコピーを説明するためのフローチャート。
【図３】上記データコピーで適用されるディスクコピー処理の詳細な手順を説明するためのフローチャート。
【図４】図１中のコピー元論理ディスク１５Ｓからコピー先論理ディスク１５Ｄへのデータコピーを行っている間に、ホスト１２からのライト要求に応じて、コピー元論理ディスク１５Ｓへのデータライトを実行する場合の動作を説明するためのフローチャート。
【図５】本発明の第２の実施形態に係るディスクコントローラを備えたコンピュータシステムの構成を示すブロック図。
【図６】同第２の実施形態で適用されるＲＡＩＤ構成情報２７０のデータ構造例を示す図。
【図７】同第２の実施形態で適用されるコピー先ディスクを選択する手順を説明するためのフローチャート。
【図８】コピー元論理ディスク中に故障物理ディスクを含む場合に、コピー先論理ディスクの構成情報が追加登録された際のＲＡＩＤ構成情報２７０の一例と、コピー元論理ディスク中に回復処理状態にある物理ディスクを含む場合に、コピー先論理ディスクの構成情報が追加登録された際のＲＡＩＤ構成情報２７０の一例とを示す図。
【図９】同第２の実施形態の第１の変形例で適用される、コピー元論理ディスク中に故障状態にある物理ディスクが存在する場合の、コピー元論理ディスクからコピー先論理ディスクへのデータコピーを説明するためのフローチャート。
【図１０】同第２の実施形態の第２の変形例で適用される、コピー元論理ディスク中の物理ディスクＳｉに対するデータ回復処理と、物理ディスクＳｉに対するデータ回復処理中での当該物理ディスクＳｉから物理ディスクＤｉへのディスクコピー処理とを説明するためのフローチャート。
【図１１】本発明の第３の実施形態に係るディスクコントローラを備えたコンピュータシステムの構成を示すブロック図。
【図１２】同実施形態において、運用中のＲＡＩＤ装置３１にＲＡＩＤ装置４１が接続された場合における、当該ＲＡＩＤ装置４１内のＲＡＩＤコントローラ４４へのＳＣＳＩ　ＩＤ割り当てを説明するためのフローチャート。
【符号の説明】
１１，２１，３１，４１…ＲＡＩＤ装置（ディスクアレイ装置）
１２…ホスト
１４，２４，３４，４４…ＲＡＩＤコントローラ（ディスクコントローラ）
１５Ｓ，２５Ｓ，３５Ｓ…コピー元論理ディスク
１５Ｄ，４５Ｄ…コピー先論理ディスク
１６，２６，３６，４６…ディスクインタフェースバス
２７，３７…メモリ
２８，３８…入力部
１５１ａ〜１５１ｃ，１５２ａ〜１５２ｃ，２５１ａ〜２５１ｃ，２５２ａ〜２５２ｃ，３５１ａ〜３５１ｃ，４５２ａ〜４５２ｃ…物理ディスク
２７０…ＲＡＩＤ構成情報（論理ディスク構成情報）
【図１】
2004102815.tif 000003
【図２】
2004102815.tif 000004
【図３】
2004102815.tif 000005
【図４】
2004102815.tif 000006
【図５】
2004102815.tif 000007
【図６】
2004102815.tif 000008
【図７】
2004102815.tif 000009
【図８】
2004102815.tif 000010
【図９】
2004102815.tif 000011
【図１０】
2004102815.tif 000012
【図１１】
2004102815.tif 000013
【図１２】
2004102815.tif 000014