(57)【要約】【課題】ＲＡＩＤレベル１のファイル制御装置において、ディスクが故障したと判断した場合、ミラーリングされている２台目のディスクに処理を移行する。処理を移行させた直後に１台目のディスクから応答があった場合、その応答を破棄せずにホストへのデータ転送を行い、ホストへの応答を高速化させる装置及び方法を提供する。【解決手段】複数個の転送用バッファを有し、通常時は単一ディスクへの単一処理を行い、ディスク障害発生時には時間監視付で複数ディスクへの並列処理に切り替え、ディスク障害発生時においても遅滞なくホストに応答する。【選択図】図１
2005071100.tif 000002
【特許請求の範囲】
【請求項１】
ホストからのデータアクセス要求に応じてストレージ装置にアクセスするストレージ制御装置において、
ミラー化されたストレージ装置が接続され、
前記ストレージ装置の転送用バッファメモリを複数個有し、
前記ホストからのリード要求に対して前記ストレージ装置のうち第１のストレージ装置に第１のリード指示を行った後、
前記第１のストレージ装置から所定時間内に前記リード指示に対する応答があった場合
、
第１の転送用バッファメモリを経由して前記応答を前記ホストに転送し、
前記所定時間内に前記第１のストレージ装置からの応答がなかった場合、
前記第１のストレージ装置とミラー化されている第２のストレージ装置に第２のリード指示を行い、前記第２のストレージ装置からの応答を第２の転送用バッファメモリを経由して前記ホストに転送するようにし、
前記第２のリード指示後の所定時間内に先ず前記第１のストレージ装置から前記第１のリード指示に対する応答があったときは前記第１の転送用バッファメモリを経由して前記応答を前記ホストに転送し、その後、前記第２のストレージ装置からの前記第２のリード指示に対する応答があったときは前記応答を破棄し、
前記第２のリード指示後の所定時間内に先ず前記第２のストレージ装置から前記第２のリード指示に対する応答があったときは前記第２の転送用バッファメモリを経由して前記応答を前記ホストに転送し、その後、前記第１のストレージ装置からの前記第１のリード指示に対する応答があったときは前記応答を破棄することを特徴とするストレージ制御装置。
【請求項２】
前記第２のリード指示後、前記ホストからのリード要求に対して前記ストレージ装置のうち前記第１のストレージ装置以外のストレージ装置であって前記第１のストレージ装置と同じデータを保有するストレージ装置の１つに次の第１のリード指示を行うことを特徴とする請求項１に記載のストレージ制御装置。
【請求項３】
ミラー化されたストレージ装置が接続され、複数個の転送用バッファメモリを有し、ホストからのデータアクセス要求に応じて前記ストレージ装置を制御するストレージ制御装置のストレージ制御方法であって、
前記ホストからのリード要求に対して前記ストレージ装置のうち第１のストレージ装置に第１のリード指示を行うステップと、
前記第１のリード指示後の所定時間内に前記第１のストレージ装置から前記第１のリード指示に対する応答があった場合、前記複数個の転送用バッファメモリのうち第１の転送用バッファメモリを経由して前記応答を前記ホストに転送するステップと、
前記所定時間内に前記第１のストレージ装置から前記第１のリード指示に対する応答がなかった場合、前記第１のストレージ装置とミラー化された前記第２のストレージ装置に第２のリード指示をするステップと、
前記第２のストレージ装置に第２のリード指示後の所定時間内に先ず前記第１のストレージ装置から前記第１のリード指示に対する応答があったときは前記第１の転送用バッファメモリを経由して前記応答を前記ホストに転送するステップと、その後、前記第２のストレージ装置からの前記第２のリード指示に対する応答があったときは前記データを破棄するステップと、
前記第２のストレージ装置に第２のリード指示後の所定時間内に先ず前記第２のストレージ装置から前記第２のリード指示に対する応答があったときは第２の転送用バッファメモリを経由して前記応答を前記ホストに転送するステップと、その後、前記第１のストレージ装置からの前記第１のリード指示に対する応答があったときは前記応答を破棄するステップとを、
有するストレージ制御方法。
【請求項４】
前記第２のリード指示後、前記ホストからのリード要求に対して前記ストレージ装置のうち前記第１のストレージ装置以外のストレージ装置であって前記第１のストレージ装置と同じデータを保有するストレージ装置の１つに次の第１のリード指示を行うステップを有することを特徴とする請求項３に記載のストレージ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＲＡＩＤ（Redundant Array of Inexpensive (or Independent) Disks）のうちＲＡＩＤレベル１の制御装置及びその制御方法に関する。
【背景技術】
【０００２】
磁気デイスク、光磁気デイスク、光デイスク等の記憶媒体を利用したストレージ機器を用いて、ホストからの大容量のデータを高速に処理する場合、複数のストレージ機器と制御装置とを備えたストレージ装置を利用する。
【０００３】
このようなストレージ装置では、保存データの信頼性や、装置の信頼性を向上するため、冗長構成を採用している。そのうち、ディスクにデータを書き込むときに、2つのディスクに同時に同じものを書き込み、同じ内容を２つのディスクが保持するミラー化方式（ＲＡＩＤレベル１）を用いて、データを二重化し、ディスクに障害が発生しても、ホストの要求する処理を行えるようにしている。
【０００４】
図４及び図５は、ＲＡＩＤレベル１によるデータの二重化の例として、従来技術の例１及び従来技術の例２を示す図である。
【０００５】
図４において、ディスク１とディスク２は、例えば、仕様の同じ２台のディスク１とディスク２がストレージ制御装置８に接続され、ディスク１及びディスク２に対してデータをライト／リードする際に必要な１個の転送用バッファメモリ４を共用している。ここで、ディスク１及びディスク２は、ストレージ制御装置８によってＲＡＩＤレベル１のミラー化がされている。
【０００６】
ストレージ制御装置８は、ホスト７からのライト／リード要求を受け付け、ディスク１および／またはディスク２に対し、ライト／リードの指示をし、ホスト７に要求されたデータの転送を行う。
【０００７】
ホスト７からリード要求を受けたストレージ制御装置８は、例えば、ディスク１に対してリード指示をし、同時にディスク１からの応答（リード指示に対するデータの転送。以下同じ意味に使用する）を待つ制御を行う。ここで、ディスク１が所定時間内にストレージ制御装置８に応答が無い場合、ストレージ制御装置８は、タイマ監視により、ディスク１から所定時間内に応答が無いことをもってディスク１に障害が発生したと判定し、ディスク２に対してリードを指示する。
【０００８】
同時に、ストレージ制御装置８は、ディスク１からの応答を待つことをやめ、以降、ディスク１からの応答があった場合は、ディスク１から転送されたデータを転送用バッファメモリ４に格納しないで破棄する。すなわち、ストレージ制御装置８はディスク２に対してリードを指示すると共に、転送用バッファメモリ４へのデータ格納をディスク１のデータからディスク２からのデータへと切り替える制御を行う。
【０００９】
ディスク２から正常にデータがリードされストレージ制御装置８に転送されたデータは、一旦転送用バッファメモリ４に格納され、ストレージ制御装置８は転送用バッファメモリ４に格納されたデータをホストに転送する。
【００１０】
また、図５においては、１台のストレージ制御装置８がディスク１とディスク２をミラー化し、さらに、ディスク９とディスク１０とをミラー化して、４台のディスクは同じデータを保持する構成の例を示す。ホスト７からリード要求を受けたストレージ制御装置８は、ＲＡＩＤレベル１で構成されたディスク１に対してリードを指示し、同時にディスク１からの応答を待つ制御を行う。
【００１１】
ここで、ディスク１がリード指示のあったデータをリードしてストレージ制御装置８に所定時間内に応答することができない場合、ストレージ制御装置８はディスク１に障害が発生したと判定し、ディスク２に対してリードを指示する。更に、ストレージ制御装置８はディスク２から所定時間内にリード指示に対するデータの転送が無いときはディスク２に障害が発生したと判定し、同じデータをもつ、ミラー化されたディスク９に対してリードを指示する。同時に、ディスク１およびディスク２からの応答を破棄する制御を行う。
【００１２】
ディスク９から所定時間内に応答があった場合には、ディスク９から転送されたデータを一旦転送用バッファメモリ４に格納し、転送用バッファメモリ４上のデータをホスト７に転送する。
【００１３】
以上のように、データの多重化を特徴とするＲＡＩＤレベル１のミラー化方式において、ストレージ制御装置８は、所定時間内に１台目のディスクからリード指示に対する応答が無く、ディスクに障害が発生したと判定した場合、１台目を諦めてミラー化されている２台目以降のディスクに処理を移行させるが、処理を移行させた直後に１台目のディスクから応答があった場合、１台目のディスクからの応答は破棄され、２台目以降のディスクから所定時間内に応答があるまでホスト７への応答が行われない。
【００１４】
図６は、これを図示した、従来例の説明図である。図６に沿って説明すると、ディスク1に対してリード指示を行う（１）。ある時点で、監視時間内におけるディスク1からの応答がなくなった（２）。そこで、ストレージ制御装置８は、ディスク１に障害が発生したと判定し、ディスク２へのリード指示を開始する（３）。監視時間内にディスク1からの応答があっても（４）、ストレージ制御装置８はディスク１からの応答を破棄する。その後、ディスク２からの応答があった場合に（５）、これをホスト７に転送する（６）。以後のホスト７からのリード要求に対し、ストレージ制御装置８は、ディスク１へのリード指示を行う（７）。 
【００１５】
従来の方式では、転送用バッファメモリを1つ確保しており、ディスク１からディスク２へ処理を移行する場合は、ディスク1からのデータについては、確保したバッファに格納しないで破棄する制御をしていた。
【００１６】
一方、ストレージ制御装置がミラー化されているディスク複数台に対し共にリード指示を行う方法の場合には全体として性能が劣化する。つまり、１回の読出要求で２系列のディスクを同時に占有するため、上位プログラムから見た読出要求１件あたりの応答時間は短くなるが、逆に、単位時間当りの上位プログラムからのミラー化ディスクに対するスループットを高くすることができない。
【００１７】
また、ミラー化されている1台目のディスクからの読み出しを通常行いホストへのデータ転送をしている場合には、1台目のディスクからの読み出しの処理が失敗した後に２台目のディスクからの読み出しを行っていると、ホストへの応答が遅くなってしまうため、タイマ監視時間を短くせざるを得ないといった問題があった。
【００１８】
全体として、データの読出のスピード、システムのスループット、ディスクが障害を起こした場合の対応等を考えてシステムの運用を行う必要があるが、これらの点の１つに対する解決策として、例えば、下記の特許文献１に示されているような方法が知られている。特許文献１においては、同じデータを重複して記録した２台のディスクからデータを読み出す際に、先に読み出される方のディスクを選択して読み出して平均アクセスタイムの短縮により、処理能力の向上を図っている。
【００１９】
特許文献１による方法によっても、システムのスループットを上げられない点、そして、ディスクの障害発生時にホストへのデータ転送に遅延が生ずるといった問題の解決は難しい。
【特許文献１】特開昭５５―１１５１５２号公報
【発明の開示】
【発明が解決しようとする課題】
【００２０】
本発明は、ＲＡＩＤレベル１のミラー化方式において、全体のスループットを下げずに、かつ、ディスクの障害時においてホストへのデータ転送を遅滞なく行う制御装置及び制御方法を提供することを目的とする。
【課題を解決するための手段】
【００２１】
本願の請求項１に記載の発明は、ホストからのデータアクセス要求に応じてストレージ装置にアクセスするストレージ制御装置において、ミラー化されたストレージ装置が接続され、前記ストレージ装置の転送用バッファメモリを複数個有し、前記ホストからのリード要求に対して前記ストレージ装置のうち第１のストレージ装置に第１のリード指示を行った後、前記第１のストレージ装置から所定時間内に前記リード指示に対する応答があった場合、第１の転送用バッファメモリを経由して前記応答を前記ホストに転送し、前記所定時間内に前記第１のストレージ装置からの応答がなかった場合、前記第１のストレージ装置とミラー化されている第２のストレージ装置に第２のリード指示を行い、前記第２のストレージ装置からの応答を第２の転送用バッファメモリを経由して前記ホストに転送するようにし、前記第２のリード指示後の所定時間内に先ず前記第１のストレージ装置から前記第１のリード指示に対する応答があったときは前記第１の転送用バッファメモリを経由して前記応答を前記ホストに転送し、その後、前記第２のストレージ装置からの前記第２のリード指示に対する応答があったときは前記応答を破棄し、前記第２のリード指示後の所定時間内に先ず前記第２のストレージ装置から前記第２のリード指示に対する応答があったときは前記第２の転送用バッファメモリを経由して前記応答を前記ホストに転送し、その後、前記第１のストレージ装置からの前記第１のリード指示に対する応答があったときは前記応答を破棄することを特徴とするストレージ制御装置である。
【００２２】
本願の請求項１の発明によれば、ホストからのリード要求に対して、ストレージ制御装置はミラー化されている第１のストレージ装置と第２のストレージ装置のうち、第１のストレージ装置に対して第１のリード指示を行い、所定時間内にあった応答（ストレージ制御装置のリード指示に対しストレージ制御装置がストレージから受け取る受取データ。以下同じ意味に使用する）をもとにリード要求のあったデータを第１の転送用バッファメモリを経由してホストへ転送する（以下、単一処理と呼ぶ）。本発明では、ホストへ転送されるデータのエラー訂正は、例えば、ストレージ制御装置が有するエラー訂正回路が行っている。
【００２３】
ここで、ストレージ制御装置は、前記所定時間内に第１のストレージ装置から第１のリード指示に対する応答がなく、第１のストレージ装置に障害が発生したと判定した場合には、第２のストレージ装置に第２のリード指示を行う。例えば、第２のリード指示は第１のリード指示と同じ内容のリード指示を第１のストレージ装置と同じデータを保有する他の１台あるいは複数台のストレージ装置に行う。
【００２４】
そして、第２のリード指示から所定時間内に、第１のストレージ装置をはじめ第２のリード指示をされたストレージ装置からの一番早い応答を所定の転送用バッファメモリに格納し、その後、ホストへ転送する（以下、並列処理と呼ぶ）。
【００２５】
ここで、並列処理においては、ストレージ制御装置は、第１のリード指示を行った第１のストレージ装置はじめ並列に第２のリード指示のあったストレージ装置からの応答を個々に格納する所定の転送用バッファメモリを備えており、第２のリード指示からの所定時間内における一番早い応答をもとに所定のストレージ装置の転送用バッファメモリ経由でリード要求のあったデータをホストへ転送することにより、ディスクの障害発生時においてもホストへのデータ転送を遅滞なく行うようになっている。
【００２６】
転送用バッファメモリは、例えば、ストレージ制御装置にあるキャッシュメモリに確保する。転送用バッファメモリを対象のストレージ装置毎に備えるにはキャッシュメモリの別々の領域に確保するようにする。
【００２７】
障害の発生していない通常時は、単一処理を行い、障害の発生時には単一処理から１台以上のミラー化ディスクへリード指示する並列処理に切り替え、全体のスループットを下げずに、かつ、ディスクの障害時においてもホストへのデータ転送を遅滞なく行う。ここで、前記１台以上のミラー化ディスクとして前記第２のストレージ装置だけを指定してリード指示した場合は、前記第１のストレージ装置と第２のストレージ装置との並列処理となる。
【００２８】
第１の指定時間経過後に、ストレージ制御装置は第２の指定時間で第２のリード指示を第１のストレージ装置と同じデータ内容を保持するミラー化された他のストレージ装置に行い、第２の指定時間内であって一番早くあった応答をもとにエラーチェック・訂正等を行った後、リード要求のあったデータをホストに転送する。エラーチェック・訂正等は、例えば、ストレージ装置の記憶媒体へライト時にデータの一定間隔毎（例えば５１２バイト毎）にチェックコードを数バイト付加しておき、データをリードしたときに一定量のデータに対するチェックコードの整合性をチェックすることにより行われる（以下の説明においては、前記エラーチェック・訂正等の記述は省略する）。
【００２９】
第１の指定時間内に応答できなかった第１のストレージ装置からの応答が第２の指定時間内において一番早くあったときは、この第１のストレージ装置からの応答を破棄せずに、例えば、第１の転送用バッファメモリに格納後、ホストへ転送するデータとする。
【００３０】
また、本願の請求項２に記載の発明は、前記第２のリード指示後、前記ホストからのリード要求に対して前記ストレージ装置のうち前記第１のストレージ装置以外のストレージ装置であって前記第１のストレージ装置と同じデータを保有するストレージ装置の１つに次の第１のリード指示を行うことを特徴とする請求項１に記載のストレージ制御装置である。
【００３１】
本願の請求項２の発明によれば、ストレージ制御装置が第１のストレージ装置に障害発生と判定した場合は、その後のホストからのリード要求を第１のストレージ装置以外のストレージ装置であって前記第１のストレージ装置と同じデータを保有する１台のストレージ装置にリード指示を行う単一処理に切り替える。
【００３２】
このようにすることにより、次回のリード指示に対して指定時間内に応答のない可能性のある第１のストレージ装置に対する単一処理に代えて、第１のストレージ装置以外のストレージ装置であって前記第１のストレージ装置と同じデータを保有する１台のストレージ装置にリード指示する単一処理を行う。そして、第１のストレージ装置は、例えば、セルフ診断、再ライト、さらに必要があれば交換等の措置を行う。
【００３３】
また、本願の請求項３に記載の発明は、ミラー化されたストレージ装置が接続され、複数個の転送用バッファメモリを有し、ホストからのデータアクセス要求に応じて前記ストレージ装置を制御するストレージ制御装置のストレージ制御方法であって、前記ホストからのリード要求に対して前記ストレージ装置のうち第１のストレージ装置に第１のリード指示を行うステップと、前記第１のリード指示後の所定時間内に前記第１のストレージ装置から前記第１のリード指示に対する応答があった場合、前記複数個の転送用バッファメモリのうち第１の転送用バッファメモリを経由して前記応答を前記ホストに転送するステップと、前記所定時間内に前記第１のストレージ装置から前記第１のリード指示に対する応答がなかった場合、前記第１のストレージ装置とミラー化された前記第２のストレージ装置に第２のリード指示をするステップと、前記第２のストレージ装置に第２のリード指示後の所定時間内に先ず前記第１のストレージ装置から前記第１のリード指示に対する応答があったときは前記第１の転送用バッファメモリを経由して前記応答を前記ホストに転送するステップと、その後、前記第２のストレージ装置からの前記第２のリード指示に対する応答があったときは前記データを破棄するステップと、前記第２のストレージ装置に第２のリード指示後の所定時間内に先ず前記第２のストレージ装置から前記第２のリード指示に対する応答があったときは第２の転送用バッファメモリを経由して前記応答を前記ホストに転送するステップと、その後、前記第１のストレージ装置からの前記第１のリード指示に対する応答があったときは前記応答を破棄するステップとを、有するストレージ制御方法である。
【００３４】
本願の請求項３の発明によれば、ホストからのリード要求に対して、ストレージ制御装置はミラー化されている第１のストレージ装置と第２のストレージ装置のうち、第１のストレージ装置に対して第１のリード指示を行い、所定時間内の応答をもとにリード要求のあったデータを第１の転送用バッファメモリに格納した後、ホストへ転送する単一処理を行う。
【００３５】
ここで、ストレージ制御装置は、前記所定時間内に第１のストレージ装置から第１のリード指示に対する応答がなく、第１のストレージ装置に障害が発生したと判定した場合には、例えば、他のストレージ装置であって第１のリード指示と同じ内容を保有しているストレージ装置に第２のリード指示を行う。第２のリード指示は第１のリード指示と同じ内容のリード指示であり、１台あるいは複数台のストレージ装置に対して行われる。
【００３６】
そして、第２のリード指示から所定時間内に、第１のストレージ装置をはじめ第２のリード指示をされたストレージ装置からの一番早い応答をもとに、所定の転送用バッファメモリに格納した後、ホストへ転送する並列処理を行う。
【００３７】
ここで、並列処理において、ストレージ制御装置は、第１のリード指示を行った第１のストレージ装置はじめ並列に第２のリード指示のあったストレージ装置からの応答が個々に経由する所定の転送用バッファメモリが備えられており、第２のリード指示からの所定時間内における一番早い応答を所定のストレージ装置の転送用バッファメモリに格納した後にホストへ転送することにより、ディスクの障害発生時においてもホストへのデータ転送を遅滞なく行うようになっている。
【００３８】
障害の発生していない通常時は、単一処理を行い、障害の発生時には１台または複数台のディスクへリード指示する並列処理に切り替え、全体のスループットを下げずに、かつ、ディスクの障害時においてもホストへのデータ転送を遅滞なく行う。
【００３９】
第１の指定時間に続き、第２の指定時間で第２のリード指示を第１のストレージ装置と同じデータ内容を保持するミラー化された他のストレージ装置に行ったストレージ制御装置は、第２の指定時間内にあった一番早い応答をもとにデータをホストに転送する。第１の指定時間内に応答できなかった第１のストレージ装置からの応答が第２の指定時間内において一番早い応答であったときは、この第１のストレージ装置からの応答を破棄せずにホストへ転送するデータとして用いる。
【００４０】
また、本願の請求項４に記載の発明は、前記第２のリード指示後、前記ホストからのリード要求に対して前記ストレージ装置のうち前記第１のストレージ装置以外のストレージ装置であって前記第１のストレージ装置と同じデータを保有するストレージ装置の１つに次の第１のリード指示を行うステップを有することを特徴とする請求項３に記載のストレージ制御方法である。
【００４１】
本願の請求項４の発明によれば、ストレージ制御装置が第１のストレージ装置に障害発生と判定した場合は、その後のホストからのリード要求を第１のストレージ装置以外のストレージ装置であって前記第１のストレージ装置と同じデータを保有する１台のストレージ装置にリード指示を行う単一処理に切り替える。
【００４２】
このようにすることにより、次回のリード指示に対して指定時間内に応答のない可能性のある第１のストレージ装置に対する単一処理に代えて、第１のストレージ装置以外のストレージ装置であって前記第１のストレージ装置と同じデータを保有する１台のストレージ装置にリード指示する単一処理を行う。そして、第１のストレージ装置は、例えば、セルフ診断、再ライト、さらに必要があれば交換等の措置を行う。
【発明の効果】
【００４３】
本発明によれば、障害の発生していない通常時は単一処理を行い、障害の発生時には複数ディスクからリード指示する並列処理に切り替え、全体のスループットを下げずに、かつ、ディスクの障害時においてもホストへのデータ転送を遅滞なく行うことができる。
【００４４】
ストレージ制御装置により単一処理を行っている第１のストレージ装置に障害の発生があったと判定され、並列処理に移行した場合においても、並列処理への移行当初には、ストレージ制御装置が障害発生と判定した第１のストレージ装置からの応答が所定時間内の最初の応答であれば破棄されないので、ホストへのデータ転送はより速やかに行われる。
【００４５】
さらに、並列処理に移行後、ホストからの次のリード要求に対して、ストレージ制御装置がリード指示を第１のストレージ装置以外のミラー化された他の１台のストレージ装置に対し単一処理に戻すので、並列処理に移行してスループットが低下するのを短く抑えることができる。
【発明を実施するための最良の形態】
【００４６】
図１は本発明の概要図である。ディスク１とディスク２は、ＲＡＩＤレベル１のミラー化されたミラー化ストレージ装置３を構成し、ホスト７からのライト／リード要求がストレージ制御装置６を介して指示される。本発明のストレージ制御装置６はディスク１、ディスク２に対して各々、転送用バッファメモリ４、転送用バッファメモリ５を備えている。
【００４７】
ミラー化ストレージ装置３は、ここでは、ディスク１とディスク２をミラー化して構成されているが、ミラー化ストレージ装置が複数組配置されていてもよい。この場合、ミラー化ストレージ装置を構成するディスクは全て同じ型格のもので、かつ、同じデータを保持していることが望ましい。ミラー化ストレージ装置以外に他のストレージ装置がミラー化ストレージ装置３と共にストレージ制御装置６に接続されていても、もちろん構わない。
【００４８】
そして、ストレージ制御装置６は、これら同じデータを有するディスクに対して個々に転送用バッファメモリを備えている。図１においては、２つの転送用バッファメモリ４と転送用バッファメモリ５は、キャッシュメモリ（図示省略）に確保する。ディスク１からのデータを転送するための転送用バッファメモリ４と、ディスク２からのデータを転送する為の転送用バッファメモリ５をキャッシュメモリの別々の領域に確保している。
【００４９】
従来のRAID1方式では、キャッシュメモリに転送用のバッファを1つ確保するだけであるため、ディスク１からディスク２へ処理を移行する場合は、ディスク1からの応答によるデータは、確保したバッファに格納しないで破棄する制御が必要になっていたが、本発明では、好ましくは、ミラー化されているディスクの数だけ確保されているため、ディスクからディスクへ処理を移行する場合において、破棄する制御は必要なく、また、応答のあったデータを必要時間保持しておくことができる。
【００５０】
ここで、本発明における単一処理と並列処理について説明する。
【００５１】
単一処理では、ディスク１、ディスク2のどちらかにストレージ制御装置６がリード指示をし、指示されない側のディスクは待機状態となっている。
【００５２】
並列処理では、例えば、ディスク1、ディスク2の両方について同時にリード指示をする。
【００５３】
転送用バッファメモリは、ディスク１からのデータを転送するための転送用バッファメモリ４と、ディスク２からのデータを転送するための転送用バッファメモリ５と、２個の領域をキャッシュメモリに確保している。転送用バッファメモリの確保は、固定的であっても、随時であっても構わない。
【００５４】
ストレージ制御装置6は、単一処理を開始するタイミングでタイマを起動させ、タイマによる時間監視を行なう。タイマを起動させてから所定時間内にリード指示した第１のディスクから応答が無ければ、ストレージ制御装置6は第１のディスクに障害が発生したものと判定し、複数ディスクによる並列処理に切り替え、図１の場合であれば、ディスク１及びディスク２についてタイマによる時間監視をさらに行う。ただし、並列処理中はミラー化ストレージ装置全体の性能が単一処理時と比較して劣化するので、並列処理中に、どちらかのディスクから応答があった場合は、すみやかに単一処理に戻す制御を行うことにより性能劣化を極力抑えることができる。
【００５５】
このように、図１においては、ディスク１へのリード指示に対してディスク１からの応答がなく、ディスク２にもリード指示をする場合、ディスク１からの応答があることを期待して、ディスク１へのリード指示を継続したまま、ディスク２へのリード指示を開始する。すなわち、単一処理から並列処理に切り替えるようになっている。
【実施例１】
【００５６】
図２は、本発明において、並列処理後にディスク１からの応答がディスク２からの応答以前にあった場合の説明図である。
【００５７】
ディスク１の単一処理において、ディスク１に障害が発生したものとストレージ制御装置６が判定し、ディスク１とディスク２による並列処理に切り替わった後、監視時間内に先ずディスク１からの応答があった場合、ディスク１からの応答をホスト７に応答する。その後、ホスト７に応答したものと同等の、ディスク２からの応答があった場合はこれを破棄する。そして、さらに以後のリード指示を2台目のディスクへの単一処理に切り替える。
【００５８】
図２に沿って説明すると、ディスク1に対して単一処理を実行している（１）。ある時点で、ディスク1からの応答がなくなった（２）。そこで、ディスク２へのリード指示を開始する（３）（並列処理に切り替える）。監視時間内にディスク1からの応答があると（４）、
ストレージ制御装置６はディスク1からの応答をホスト７に転送する（５）。 さらに、その後、ホスト７に応答したものと同等の応答がディスク２からあった場合はこれを破棄する（６）。
その後のリード指示をディスク２への単一処理に切り替える（７）。
【００５９】
上記の実施例１の説明では、ディスク１及びディスク２から応答のあった場合、ストレージ装置６内にある転送用バッファメモリへの格納の説明は省略されている。以下の実施例２の説明においてもこの点の説明を省略する。
【実施例２】
【００６０】
図３は、本発明において、並列処理後にディスク２からの応答がディスク１からの応答より早くあった場合の説明図である。
【００６１】
ディスク１の単一処理において、ディスク１に障害が発生したものとストレージ制御装置６が判定し、ディスク１とディスク２による並列処理に切り替わった後、監視時間内に先ずディスク２からの応答があった場合、ディスク２からの応答をホスト７に応答する。その後、ホスト７に応答したものと同等の、ディスク１からの応答があった場合はこれを破棄する。そして、さらに以後のリード指示を2台目のディスクへの単一処理に切り替える。
【００６２】
図３に沿って説明すると、ディスク1に対して単一処理を実行している（１）。ある時点で、ディスク1からの応答がなくなった（２）。そこで、ディスク２へのリード指示を開始する（３）（並列処理に切り替える）。監視時間内に先ずディスク２から同等の応答があった（４）。ストレージ制御装置６はディスク２からの応答をホスト７に転送する（５）。
さらに、その後、ホスト７に応答したものと同等の応答がディスク１からあった場合はこれを破棄する（６）。その後のリード指示をディスク２への単一処理に切り替える（７）。
【図面の簡単な説明】
【００６３】
【図１】本発明の概要図。
【図２】並列処理後にディスク１からの応答がディスク２からの応答以前にあった場合の説明図。
【図３】並列処理後にディスク２からの応答がディスク１からの応答より早くあった場合の説明図。
【図４】従来技術の例１を示す図。
【図５】従来技術の例２を示す図。
【図６】従来例の説明図。
【符号の説明】
【００６４】
１      ディスク
２      ディスク
３      ミラー化ストレージ装置
４      転送用バッファメモリ
５      転送用バッファメモリ
６、８  ストレージ制御装置
７      ホスト
９      ディスク
１０    ディスク
【図１】
2005071100.tif 000003
【図２】
2005071100.tif 000004
【図３】
2005071100.tif 000005
【図４】
2005071100.tif 000006
【図５】
2005071100.tif 000007
【図６】
2005071100.tif 000008