(57)【要約】同一データを少なくとも二重化して記憶するＲＡＩＤ装置であって、データの書き込みが指示された場合に、ローカルキャッシュとミラーキャッシュへデータを書き込み、また、プライマリディスクへローカルキャッシュのデータを書き込むとともに、セカンダリディスクへミラーキャッシュのデータを書き込み、データの読み出しが指示された場合に、キャッシュ上に指示されたデータがある場合、ローカルキャッシュまたはミラーキャッシュのデータのうち正当なデータを出力し、キャッシュ上に指示されたデータがない場合、プライマリディスクまたはセカンダリディスクのデータのうち正当なデータを出力する。
2004114115.tif 000002
【特許請求の範囲】
【請求項１】
同一データを少なくとも二重化して記憶するＲＡＩＤ装置であって、
前記データを記憶する少なくとも１つのディスク装置と、
ローカルキャッシュとミラーキャッシュを備え、データの一時的な保持を行う複数のキャッシュ部と、
外部からデータの書き込みが指示された場合に、前記複数のキャッシュ部の１つである第１キャッシュ部のローカルキャッシュと、前記第１キャッシュ部以外のキャッシュ部の１つである第２キャッシュ部のミラーキャッシュへデータを書き込み、前記ディスク装置の第１の領域へ前記第１キャッシュ部のローカルキャッシュのデータを書き込むとともに、前記第１の領域以外の第２の領域へ前記第２キャッシュ部のミラーキャッシュのデータを書き込む制御部と、
を備えてなるＲＡＩＤ装置。
【請求項２】
請求の範囲第１項に記載のＲＡＩＤ装置において、
前記制御部は、外部からデータの読み出しが指示された場合に、指示されたデータが前記キャッシュ部に保持されている場合、前記第１キャッシュ部のローカルキャッシュにおける指示されたデータと前記第２キャッシュ部のミラーキャッシュにおける指示されたデータが正当なデータであるか否かを誤り検出符号に基づいて判断し、前記正当なデータを出力することを特徴とするＲＡＩＤ装置。
【請求項３】
請求の範囲第２項に記載のＲＡＩＤ装置において、
前記制御部は、外部からデータの読み出しが指示された場合に、指示されたデータが前記キャッシュ部に保持されていない場合、前記第１の領域における指示されたデータと前記第２の領域における指示されたデータが正当なデータであるか否かを誤り検出符号に基づいて判断し、前記正当なデータを出力することを特徴とするＲＡＩＤ装置。
【請求項４】
請求の範囲第２項に記載のＲＡＩＤ装置において、
前記制御部は、外部からデータの読み出しが指示された場合に、指示されたデータが前記キャッシュ部に保持されていない場合、前記第１の領域における指示されたデータが正当なデータであるか否かを誤り検出符号に基づいて判断し、前記第１の領域における指示されたデータが不当である場合、前記第１の領域における指示されたデータが不当であったことを記憶すると共に、外部へ異常終了の応答を行い、再度、外部からデータの読み出しが指示された場合に、前記第２の領域における指示されたデータを出力することを特徴とするＲＡＩＤ装置。
【請求項５】
同一データを少なくとも二重化して記憶するＲＡＩＤ制御方法であって、
外部からデータの書き込みが指示された場合に、ローカルキャッシュとミラーキャッシュを備える複数のキャッシュ部の１つである第１キャッシュ部のローカルキャッシュと、前記第１キャッシュ部以外のキャッシュ部の１つである第２キャッシュ部のミラーキャッシュへデータを書き込むステップと、
前記第１キャッシュ部のローカルキャッシュのデータをディスク装置の第１の領域へ書き込むステップと、
前記第２キャッシュ部のミラーキャッシュのデータを前記ディスク装置の第２の領域へ書き込むステップと、
を備えてなるＲＡＩＤ制御方法。
【請求項６】
請求の範囲第５項に記載のＲＡＩＤ制御方法において、
外部からデータの読み出しが指示された場合に、指示されたデータが前記キャッシュ部に保持されている場合、前記第１キャッシュ部のローカルキャッシュにおける指示されたデータと前記第２キャッシュ部のミラーキャッシュにおける指示されたデータが正当なデータであるか否かを誤り検出符号に基づいて判断し、前記正当なデータを出力するステップを備えたことを特徴とするＲＡＩＤ制御方法。
【請求項７】
請求の範囲第６項に記載のＲＡＩＤ制御方法において、
外部からデータの読み出しが指示された場合に、指示されたデータが前記キャッシュ部に保持されていない場合、前記第１の領域における指示されたデータと前記第２の領域における指示されたデータが正当なデータであるか否かを誤り検出符号に基づいて判断し、前記正当なデータを出力するステップを備えたことを特徴とするＲＡＩＤ制御方法。
【請求項８】
請求の範囲第６項に記載のＲＡＩＤ制御方法において、
外部からデータの読み出しが指示された場合に、指示されたデータが前記キャッシュ部に保持されていない場合、前記第１の領域における指示されたデータが正当なデータであるか否かを誤り検出符号に基づいて判断し、前記第１の領域における指示されたデータが不当である場合、前記第１の領域における指示されたデータが不当であったことを記憶すると共に、外部へ異常終了の応答を行い、再度、外部からデータの読み出しが指示された場合に、前記第２の領域における指示されたデータを出力するステップを備えたことを特徴とするＲＡＩＤ制御方法。
【請求項９】
同一データを少なくとも二重化して記憶するＲＡＩＤ制御方法をコンピュータに実行させるＲＡＩＤ制御プログラムであって、
外部からデータの書き込みが指示された場合に、ローカルキャッシュとミラーキャッシュを備える複数のキャッシュ部の１つである第１キャッシュ部のローカルキャッシュと、前記第１キャッシュ部以外のキャッシュ部の１つである第２キャッシュ部のミラーキャッシュへデータを書き込むステップと、
前記第１キャッシュ部のローカルキャッシュのデータをディスク装置の第１の領域へ書き込むステップと、
前記第２キャッシュ部のミラーキャッシュのデータを前記ディスク装置の第２の領域へ書き込むステップと、
をコンピュータに実行させるＲＡＩＤ制御プログラム。（６）
【請求項１０】
請求の範囲第９項に記載のＲＡＩＤ制御プログラムにおいて、
外部からデータの読み出しが指示された場合に、指示されたデータが前記キャッシュ部に保持されている場合、前記第１キャッシュ部のローカルキャッシュにおける指示されたデータと前記第２キャッシュ部のミラーキャッシュにおける指示されたデータが正当なデータであるか否かを誤り検出符号に基づいて判断し、前記正当なデータを出力するステップを備えたことを特徴とするＲＡＩＤ制御プログラム。
【請求項１１】
請求の範囲第１０項に記載のＲＡＩＤ制御プログラムにおいて、
外部からデータの読み出しが指示された場合に、指示されたデータが前記キャッシュ部に保持されていない場合、前記第１の領域における指示されたデータと前記第２の領域における指示されたデータが正当なデータであるか否かを誤り検出符号に基づいて判断し、前記正当なデータを出力するステップを備えたことを特徴とするＲＡＩＤ制御プログラム。
【請求項１２】
請求の範囲第１０項に記載のＲＡＩＤ制御プログラムにおいて、
外部からデータの読み出しが指示された場合に、指示されたデータが前記キャッシュ部に保持されていない場合、前記第１の領域における指示されたデータが正当なデータであるか否かを誤り検出符号に基づいて判断し、前記第１の領域における指示されたデータが不当である場合、前記第１の領域における指示されたデータが不当であったことを記憶すると共に、外部へ異常終了の応答を行い、再度、外部からデータの読み出しが指示された場合に、前記第２の領域における指示されたデータを出力するステップを備えたことを特徴とするＲＡＩＤ制御プログラム。
【発明の詳細な説明】
【技術分野】  本発明は、外部から入力されるデータを複数のディスクに保持することによりデータの信頼性を向上させるＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）装置、ＲＡＩＤ制御方法、ＲＡＩＤ制御プログラムに関するものである。
【背景技術】  まず、従来のＲＡＩＤ装置について説明する。第５図は、従来のＲＡＩＤ装置とホストコンピュータの構成の一例を示すブロック図である。第５図に示すように、ＲＡＩＤ装置６は、データの書き込みと読み出しを指示するホストコンピュータ１に接続される。ＲＡＩＤ装置６は、ＣＡ（Ｃｈａｎｎｅｌ  Ａｄａｐｔｏｒ）２Ａ，２Ｂと、ＣＭ（Ｃｅｎｔｒａｌｉｚｅｄ  Ｍｏｄｕｌｅ）３Ａ，３Ｂ，３Ｃ，３Ｄと、ＤＡ（Ｄｅｖｉｃｅ  Ａｄａｐｔｏｒ）４Ａ，４Ｂ，４Ｃ，４Ｄと、ディスク５Ａ〜５Ｌから構成される。１つのＲＡＩＤ装置には、複数のＣＡが存在する。１つのＤＡは複数のディスクを管理する。以下、ＣＡ２Ａ，ＣＭ３Ａ，ＤＡ４Ａ，ディスク５Ａについて説明する。
ＣＡ２Ａは、ホストコンピュータ１等の外部装置のインターフェイスである。ＣＭ３Ａは、主としてホストコンピュータ１によるキャッシュ制御等のＩ／Ｏ処理を司るモジュールである。ＣＭ３Ａは、ＣＭ制御部３１Ａとローカルキャッシュ３２Ａとミラーキャッシュ３３Ａから構成される。あるＣＭのローカルキャッシュは、隣接するＣＭのミラーキャッシュと二重化されており、全てのＣＭのキャッシュはサイクリックに二重化されている。例えば、第５図に示すように、ＣＭ３Ａのローカルキャッシュ３２Ａは隣接するＣＭ３Ｂのミラーキャッシュ３３Ｂと二重化され、ＣＭ３Ｄのローカルキャッシュ３２ＤはＣＭ３Ａのミラーキャッシュ３３Ａと二重化される。キャッシュをサイクリックに二重化することにより、あるＣＭに障害が生じた場合でも、隣接するＣＭを用いてデータのリカバリを行うことができる。
ＤＡ４Ａは、ディスク５Ａ，５Ｂ，５Ｃへのアクセスの制御を行うモジュールである。ディスク５Ａは、ＤＡ４Ａから入力されるデータの保持を行う。
次に、従来のＲＡＩＤ装置におけるデータの書き込みの動作について第５図を用いて説明する。ここでは、ＣＭ３Ａのローカルキャッシュ３２ＡとＣＭ３Ｂのミラーキャッシュ３３Ｂにデータを書き込む場合について説明する。また、ここでは、プライマリディスクをディスク５Ａ、セカンダリディスクをディスク５Ｄとする。ローカルキャッシュ３２Ａ上のデータをライトバックする際にディスクの二重化を行うが、二重化したディスクをそれぞれプライマリディスク、セカンダリディスクと呼ぶ。ライトバックとは、キャッシュの内容をディスクへ書き戻すことである。
まず、ホストコンピュータ１は、ＲＡＩＤ装置６へ書き込むデータをＣＡ２Ａへ入力する。ＣＡ２Ａは、ホストコンピュータ１からのデータを、ＣＭ３Ａのローカルキャッシュ３２ＡとＣＭ３Ｂのミラーキャッシュ３３Ｂの両方へ書き込む。また、キャッシュの内容をディスクに書き戻す際に、ＣＭ制御部３１Ａは、ローカルキャッシュ３２Ａ上のデータを、プライマリディスク５Ａとセカンダリディスク５Ｄの両方へ二重化してライトバックする。
ここで、ＣＡ２Ａは、ＣＭ３Ａのローカルキャッシュ３２Ａへ書き込みを行う場合に、入力されたデータにＣＣ（Ｃｈｅｃｋ  Ｃｏｄｅ）を付加して書き込みを行う。第６図は、ＣＣを付加したデータの一例を示す図である。ＣＣ（８Ｂｙｔｅ）は、Ｂｌｏｃｋ  ＩＤと検査用コードの２つの情報から構成され、１Ｂｌｏｃｋ（５１２Ｂｙｔｅ）のデータ毎に付加される。Ｂｌｏｃｋ  ＩＤは、データの論理的な位置・属性情報である。検査用コードは、ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）によりデータの正当性をチェックするための誤り検出符号である。検査用コードは、データを１つの多項式として見なし、その多項式を生成多項式で割った剰余である。ＣＲＣによれば、データから計算した剰余と実際にデータに付加された剰余とを比較することにより、データの誤りを検出することができる。
次に、従来のＲＡＩＤ装置におけるデータの読み出しの動作について第７図を用いて説明する。第７図は、従来のＲＡＩＤ装置におけるデータの読み出しの動作を説明するためのフローチャートである。ここでは、第５図を用いて説明した書き込みの後、ＣＭ３Ａのローカルキャッシュ３２Ａからデータを読み出す場合について説明する。
まず、ホストコンピュータ１が、ＣＡ２Ａへ読み出し要求を指示すると、ＣＡ２Ａは、ＣＭ制御部３１Ａへ読み出し要求を通知する（Ｓ１）。
次に、ＣＭ制御部３１Ａは、キャッシュミスか否かの判断を行う（Ｓ２）。キャッシュミスとはキャッシュに読み出し要求で指定されたデータが存在しないことであり、キャッシュヒットとはキャッシュに読み出し要求で指定されたデータが存在することである。
キャッシュヒットの場合（Ｓ２，Ｎｏ）、ＣＡ２Ａは、ローカルキャッシュ３２Ａからデータを読み出し、ＣＣを用いてデータの正当性をチェックする（Ｓ３）。ローカルキャッシュ３２Ａ上のデータが正当である場合（Ｓ３，Ｙｅｓ）、ＣＡ２ＡはＣＭ制御部３１Ａへデータが正当であると通知し、ＣＭ制御部３１Ａはローカルキャッシュ３２Ａ上のデータをホストコンピュータ１へ転送し（Ｓ４）、処理を終了する。一方、ローカルキャッシュ３２Ａ上のデータが不当である場合（Ｓ３，Ｎｏ）、ＣＡ２ＡはＣＭ制御部３１Ａへデータが不当であると通知し、ＣＭ制御部３１Ａはホストコンピュータ１へ異常終了の応答を行い（Ｓ５）、処理を終了する。
キャッシュミスの場合（Ｓ２，Ｙｅｓ）、ＣＭ制御部３１Ａは、ローカルキャッシュ３２Ａ上にプライマリディスク５Ａのデータを展開するようにＤＡ４Ａへ依頼する。次に、ＤＡ４Ａは、プライマリディスク５Ａからデータを読み出し、ローカルキャッシュ３２Ａ上に展開する（Ｓ６）。
次に、ＣＡ２Ａは、ローカルキャッシュ３２Ａからデータを読み出し、ＣＣを用いてデータの正当性をチェックする（Ｓ７）。プライマリディスク５Ａから読み出したデータが正当である場合（Ｓ７，Ｙｅｓ）、ＣＡ２ＡはＣＭ制御部３１Ａへデータが正当であると通知し、ＣＭ制御部３１Ａはローカルキャッシュ３２Ａ上のデータをホストコンピュータ１へ転送し（Ｓ８）、処理を終了する。一方、プライマリディスク５Ａから読み出したデータが不当である場合（Ｓ７，Ｎｏ）、ＣＡ２ＡはＣＭ制御部３１Ａへデータが不当であると通知し、ＣＭ制御部３１Ａはローカルキャッシュ３２Ａ上にセカンダリディスク５Ｄのデータを展開するようにＤＡ４Ｂへ依頼する。次に、ＤＡ４Ｂは、セカンダリディスク５Ｄからデータを読み出し、ローカルキャッシュ３２Ａ上に展開する（Ｓ９）。
次に、ＣＡ２Ａは、ローカルキャッシュ３２Ａ上からデータを読み出し、ＣＣを用いてデータの正当性をチェックする（Ｓ１０）。セカンダリディスク５Ｄから読み出したデータが正当である場合（Ｓ１０，Ｙｅｓ）、ＣＡ２ＡはＣＭ制御部３１Ａへデータが正当であると通知し、ＣＭ制御部３１Ａはローカルキャッシュ３２Ａ上のデータをホストコンピュータ１へ転送し（Ｓ１１）、処理を終了する。一方、セカンダリディスク５Ｄから読み出したデータが不当である場合（Ｓ１０，Ｎｏ）、ＣＡ２ＡはＣＭ制御部３１Ａへデータが不当であると通知し、ＣＭ制御部３１Ａはホストコンピュータ１へ異常終了の応答を行い（Ｓ１２）、処理を終了する。
なお、他の従来技術に関して、二重化されたディスクに対する周辺記憶制御装置として、二重化されたディスクのそれぞれに対応して、外部から入力されたデータを一時蓄積するバッファメモリと制御部を設けた周辺記憶制御装置が知られる。この周辺記憶制御装置は、外部から入力されたデータを２つのバッファメモリに書き込み、２つのバッファメモリのデータをそれぞれ異なるディスクへ書き込むように構成されている（例えば、特許文献１参照）。
【特許文献１】  特開昭５６−１２７２６２号公報（第３−５頁、第１図−第２図）
しかしながら、上述した従来のＲＡＩＤ装置６のように、ローカルキャッシュとミラーキャッシュを複数備え、サイクリックに二重化した構成であっても、通常のライトバック時にミラーキャッシュのデータを用いることは行われていない。そのため、ミラーキャッシュへの書き込みが成功している場合でも、ローカルキャッシュへの書き込みが失敗していた場合は、プライマリディスクとセカンダリディスクの両方へ不正なデータを書き込むという問題が生じる。また、キャッシュからのデータの読み出し時において、ローカルキャッシュを持つＣＭに障害が生じない限り、隣接するＣＭのミラーキャッシュのデータを用いることはなかった。つまり、複数のディスクと複数のキャッシュを持ち、読み出しと書き込み時の経路が複雑であるＲＡＩＤ装置において、経路によってはリカバリできない障害が発生する場合があった。
本発明は上述した問題点を解決するためになされたものであり、書き込みと読み出しにおけるいずれの経路においても安全性を確保するＲＡＩＤ装置、ＲＡＩＤ制御方法、ＲＡＩＤ制御プログラムを提供することを目的とする。
【発明の開示】
上述した課題を解決するため、本発明は、同一データを少なくとも二重化して記憶するＲＡＩＤ装置であって、前記データを記憶する少なくとも１つのディスク装置と、ローカルキャッシュとミラーキャッシュを備え、データの一時的な保持を行う複数のキャッシュ部と、外部からデータの書き込みが指示された場合に、前記複数のキャッシュ部の１つである第１キャッシュ部のローカルキャッシュと、前記第１キャッシュ部以外のキャッシュ部の１つである第２キャッシュ部のミラーキャッシュへデータを書き込み、前記ディスク装置の第１の領域へ前記第１キャッシュ部のローカルキャッシュのデータを書き込むとともに、前記第１の領域以外の第２の領域へ前記第２キャッシュ部のミラーキャッシュのデータを書き込む制御部とを備えてなるものである。なお、本発明の実施例における制御部とは、ＣＡ２０Ａ，２０ＢとＣＭ制御部３０１Ａ〜３０１Ｄのことであり、第１のディスクとはプライマリディスク５Ａのことであり、第２のディスクとはセカンダリディスク５Ｄのことである。
また、上述したＲＡＩＤ装置において、前記制御部は、外部からデータの読み出しが指示された場合に、指示されたデータが前記キャッシュ部に保持されている場合、前記第１キャッシュ部のローカルキャッシュにおける指示されたデータと前記第２キャッシュ部のミラーキャッシュにおける指示されたデータが正当なデータであるか否かを誤り検出符号に基づいて判断し、前記正当なデータを出力することを特徴とするものである。
また、上述したＲＡＩＤ装置において、前記制御部は、外部からデータの読み出しが指示された場合に、指示されたデータが前記キャッシュ部に保持されていない場合、前記第１の領域における指示されたデータと前記第２の領域における指示されたデータが正当なデータであるか否かを誤り検出符号に基づいて判断し、前記正当なデータを出力することを特徴とするものである。
また、上述したＲＡＩＤ装置において、前記制御部は、外部からデータの読み出しが指示された場合に、指示されたデータが前記キャッシュ部に保持されていない場合、前記第１の領域における指示されたデータが正当なデータであるか否かを誤り検出符号に基づいて判断し、前記第１の領域における指示されたデータが不当である場合、前記第１の領域における指示されたデータが不当であったことを記憶すると共に、外部へ異常終了の応答を行い、再度、外部からデータの読み出しが指示された場合に、前記第２の領域における指示されたデータを出力することを特徴とするものである。
また、本発明は、同一データを少なくとも二重化して記憶するＲＡＩＤ制御方法であって、外部からデータの書き込みが指示された場合に、ローカルキャッシュとミラーキャッシュを備える複数のキャッシュ部の１つである第１キャッシュ部のローカルキャッシュと、前記第１キャッシュ部以外のキャッシュ部の１つである第２キャッシュ部のミラーキャッシュへデータを書き込むステップと、前記第１キャッシュ部のローカルキャッシュのデータをディスク装置の第１の領域へ書き込むステップと、前記第２キャッシュ部のミラーキャッシュのデータを前記ディスク装置の第２の領域へ書き込むステップと、を備えてなるものである。
また、上述したＲＡＩＤ制御方法において、外部からデータの読み出しが指示された場合に、指示されたデータが前記キャッシュ部に保持されている場合、前記第１キャッシュ部のローカルキャッシュにおける指示されたデータと前記第２キャッシュ部のミラーキャッシュにおける指示されたデータが正当なデータであるか否かを誤り検出符号に基づいて判断し、前記正当なデータを出力するステップを備えたことを特徴とするものである。
また、上述したＲＡＩＤ制御方法において、外部からデータの読み出しが指示された場合に、指示されたデータが前記キャッシュ部に保持されていない場合、前記第１の領域における指示されたデータと前記第２の領域における指示されたデータが正当なデータであるか否かを誤り検出符号に基づいて判断し、前記正当なデータを出力するステップを備えたことを特徴とするものである。
また、上述したＲＡＩＤ制御方法において、外部からデータの読み出しが指示された場合に、指示されたデータが前記キャッシュ部に保持されていない場合、前記第１の領域における指示されたデータが正当なデータであるか否かを誤り検出符号に基づいて判断し、前記第１の領域における指示されたデータが不当である場合、前記第１の領域における指示されたデータが不当であったことを記憶すると共に、外部へ異常終了の応答を行い、再度、外部からデータの読み出しが指示された場合に、前記第２の領域における指示されたデータを出力するステップを備えたことを特徴とするものである。
また、本発明に係るＲＡＩＤ制御プログラムは、同一データを少なくとも二重化して記憶するＲＡＩＤ制御方法をコンピュータに実行させるＲＡＩＤ制御プログラムであって、外部からデータの書き込みが指示された場合に、ローカルキャッシュとミラーキャッシュを備える複数のキャッシュ部の１つである第１キャッシュ部のローカルキャッシュと、前記第１キャッシュ部以外のキャッシュ部の１つである第２キャッシュ部のミラーキャッシュへデータを書き込むステップと、前記第１キャッシュ部のローカルキャッシュのデータをディスク装置の第１の領域へ書き込むステップと、前記第２キャッシュ部のミラーキャッシュのデータを前記ディスク装置の第２の領域へ書き込むステップとをコンピュータに実行させるものである。
また、上述したＲＡＩＤ制御プログラムにおいて、外部からデータの読み出しが指示された場合に、指示されたデータが前記キャッシュ部に保持されている場合、前記第１キャッシュ部のローカルキャッシュにおける指示されたデータと前記第２キャッシュ部のミラーキャッシュにおける指示されたデータが正当なデータであるか否かを誤り検出符号に基づいて判断し、前記正当なデータを出力するステップを備えたことを特徴とするものである。
また、上述したＲＡＩＤ制御プログラムにおいて、外部からデータの読み出しが指示された場合に、指示されたデータが前記キャッシュ部に保持されていない場合、前記第１の領域における指示されたデータと前記第２の領域における指示されたデータが正当なデータであるか否かを誤り検出符号に基づいて判断し、前記正当なデータを出力するステップを備えたことを特徴とするものである。
また、上述したＲＡＩＤ制御プログラムにおいて、外部からデータの読み出しが指示された場合に、指示されたデータが前記キャッシュ部に保持されていない場合、前記第１の領域における指示されたデータが正当なデータであるか否かを誤り検出符号に基づいて判断し、前記第１の領域における指示されたデータが不当である場合、前記第１の領域における指示されたデータが不当であったことを記憶すると共に、外部へ異常終了の応答を行い、再度、外部からデータの読み出しが指示された場合に、前記第２の領域における指示されたデータを出力するステップを備えたことを特徴とするものである。
なお、以上のＲＡＩＤ制御プログラムにおいて、コンピュータにより読取り可能な媒体は、ＲＯＭやＲＡＭなどの半導体メモリの他、ＣＤ−ＲＯＭやフレキシブルディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータ並びにそのデータベースや、更に回線上の伝送媒体をも含むものである。
【図面の簡単な説明】  第１図は本発明の実施例に係るＲＡＩＤ装置の構成の一例を示すブロック図である。
第２図は実施例１に係るＲＡＩＤ装置におけるデータの読み出しの動作を説明するためのフローチャートである。
第３図は実施例２に係るＲＡＩＤ装置におけるデータの読み出しの動作を説明するためのフローチャートの一部である。
第４図は第３図におけるフローチャートの続きである。
第５図は従来のＲＡＩＤ装置の構成の一例を示すブロック図である。
第６図はＣＣを付加したデータの一例を示す図である。
第７図は従来のＲＡＩＤ装置におけるデータの読み出しの動作を説明するためのフローチャートである。
【発明を実施するための最良の形態】  以下、本発明の実施例について図面を参照して詳細に説明する。
【実施例１】  第１図は、本発明の実施例に係るＲＡＩＤ装置の構成の一例を示すブロック図である。第１図に示すように、データの書き込みと読み出しを指示するホストコンピュータ１には、本発明の実施例に係るＲＡＩＤ装置６０が接続される。
ＲＡＩＤ装置６０は、第５図に示す従来のＲＡＩＤ装置と同様の構成を持つが、データの書き込みと読み出しに関する動作が異なる。本実施例では、第５図に示すＣＡ２Ａ，２Ｂの代わりにＣＡ２０Ａ，２０Ｂを備え、第５図に示すＣＭ３Ａ，３Ｂ，３Ｃ，３Ｄの代わりにＣＭ３０Ａ，３０Ｂ，３０Ｃ，３０Ｄを備える。複数備えられたＣＭはそれぞれ同じ構成を持つため、ここではＣＭ３０Ａの構成について説明する。ＣＭ３０Ａは、ＣＭ制御部３０１Ａとローカルキャッシュ３２Ａとミラーキャッシュ３３Ａから構成される。
まず、本実施例に係るＲＡＩＤ装置におけるデータの書き込みの動作について第１図を用いて説明する。ここでは、ＣＭ３０Ａのローカルキャッシュ３２ＡとＣＭ３０Ｂのミラーキャッシュ３３Ｂにデータを書き込む場合について説明する。また、ここでは、プライマリディスクをディスク５Ａ、セカンダリディスクをディスク５Ｄとする。
本実施例では、ローカルキャッシュとミラーキャッシュの両方のデータを用いてライトバックを行う。まず、ホストコンピュータ１は、ＲＡＩＤ装置６０へ書き込むデータをＣＡ２０Ａへ入力する。ＣＡ２０Ａは、ホストコンピュータ１からのデータを、ＣＭ３０Ａのローカルキャッシュ３２ＡとＣＭ３０Ｂのミラーキャッシュ３３Ｂの両方へ書き込む。また、キャッシュの内容をディスクに書き戻す際に、ＣＭ制御部３０１Ａはローカルキャッシュ３２Ａ上のデータをプライマリディスク５Ａへライトバックし、ＣＭ制御部３０１Ｂはミラーキャッシュ３３Ｂ上のデータをセカンダリディスク５Ｄへライトバックする。
例えば、ＣＭ３０Ａのローカルキャッシュ３２Ａへの書き込みが失敗し、ＣＭ３０Ｂのミラーキャッシュ３３Ｂへの書き込みが成功していた場合であっても、ローカルキャッシュとミラーキャッシュの両方のデータを用いてライトバックを行うことにより、プライマリディスク５Ａには不当なデータを保持することになるが、セカンダリディスク５Ｄには正当なデータが保持される。
次に、本実施例に係るＲＡＩＤ装置におけるデータの読み出しの動作について第２図を用いて説明する。第２図は、実施例１におけるデータの読み出しの動作を説明するためのフローチャートである。ここでは、第１図を用いて説明した書き込みの後、ＣＭ３０Ａのローカルキャッシュ３２Ａからデータを読み出す場合について説明する。なお、第２図において、第７図と同じ符号の処理は第７図に示す処理と同じ処理を示す。
本実施例では、ホストコンピュータ１から要求されたデータがキャッシュヒットし、ローカルキャッシュ上のデータが不当である場合に、ミラーキャッシュ上のデータをホストコンピュータ１へ転送する。
具体的には、第７図と同様にして処理Ｓ３まで動作したとすると、キャッシュヒットしたローカルキャッシュ３２Ａ上のデータが正当である場合（Ｓ３，Ｙｅｓ）、第７図と同様、処理Ｓ４へ移行する。一方、キャッシュヒットしたローカルキャッシュ３２Ａ上のデータが不当である場合（Ｓ３，Ｎｏ）、ＣＭ３０Ｂのミラーキャッシュ３３Ｂからデータを読み出し、ＣＣを用いてデータの正当性をチェックする（Ｓ１０１）。
ミラーキャッシュ３３Ｂ上のデータが正当である場合（Ｓ１０１，Ｙｅｓ）、ＣＡ２０Ａはデータが正当であることをＣＭ制御部３０１Ｂへ通知し、ＣＭ制御部３０１Ｂはミラーキャッシュ３３Ｂ上のデータをホストコンピュータ１へ転送し（Ｓ１０２）、処理を終了する。一方、ミラーキャッシュ３３Ｂ上のデータが不当である場合（Ｓ１０１，Ｎｏ）、ＣＡ２０Ａはデータが不当であることをＣＭ制御部３０１Ｂへ通知し、ＣＭ制御部３０１Ｂはホストコンピュータ１へ異常終了を応答し（Ｓ１０３）、処理を終了する。
また、本実施例では、ホストコンピュータ１から要求されたデータがキャッシュミスし、プライマリディスクからローカルキャッシュへ読み出したデータが不当である場合に、セカンダリディスクからミラーキャッシュへデータを読み出し、ミラーキャッシュ上のデータをホストコンピュータ１へ転送する。
具体的には、第７図と同様にして処理Ｓ７まで動作したとすると、プライマリディスク５Ａから読み出したデータが正当である場合（Ｓ７，Ｙｅｓ）、第７図と同様、処理Ｓ８へ移行する。一方、プライマリディスク５Ａから読み出したデータが不当である場合（Ｓ７，Ｎｏ）、ＣＡ２０ＡはＣＭ制御部３０１Ａへデータが不当であることを通知し、ＣＭ制御部３０１Ａはローカルキャッシュ３２Ａ上にセカンダリディスク５Ｄのデータを展開するようにＤＡ４Ｂへ依頼する。次に、ＤＡ４Ｂはセカンダリディスク５Ｄからデータを読み出し、ローカルキャッシュ３２Ａ上に展開する（Ｓ１１１）。次に、ＣＡ２０Ａはローカルキャッシュ３２Ａ上からデータを読み出し、ＣＣを用いてデータの正当性をチェックする（Ｓ１１２）。
セカンダリディスク５Ｄから読み出したデータが正当である場合（Ｓ１１２，Ｙｅｓ）、ＣＡ２０ＡはＣＭ制御部３０１Ａへデータが正当であることを通知し、ＣＭ制御部３０１Ａはローカルキャッシュ３２Ａ上のデータをホストコンピュータ１へ転送し（Ｓ１１３）、処理を終了する。一方、セカンダリディスク５Ｄから読み出したデータが不当である場合（Ｓ１１２，Ｎｏ）、ＣＡ２０ＡはＣＭ制御部３０１Ａへデータが不当であることを通知し、ＣＭ制御部３０１Ａはホストコンピュータ１へ異常終了の応答を行い（Ｓ１１４）、処理を終了する。
以上のように、データの読み出し時において、ローカルキャッシュ上のデータが不当である場合にミラーキャッシュ上のデータを読み出すようにすることにより、リカバリを行うことができる。また、ローカルキャッシュとミラーキャッシュの両方のデータを用いてライトバックを行うため、プライマリディスクとセカンダリディスクの両方を読むことができなくなる可能性は極めて低くなり、データの信頼性を向上させることができる。
【実施例２】  本実施例におけるＲＡＩＤ装置の構成は実施例１と同様である。また、本実施例において、ＣＭ制御部３０１Ａは新たに、プライマリディスクから読み出したデータが不当であったことを記録する機能を有する。
次に、本実施例に係るＲＡＩＤ装置におけるデータの読み出しの動作について第３図と第４図を用いて説明する。第３図と第４図は、実施例２におけるデータの読み出しの動作を説明するためのフローチャートである。本実施例におけるＲＡＩＤ装置の動作はほぼ実施例１と同様であるが、データの読み出し時のフローのうち、キャッシュミスの場合の動作が異なる。ここでは、実施例１において説明した書き込みの後、ＣＭ３０Ａのローカルキャッシュ３２Ａからデータを読み出す場合について説明する。なお、第３図において、第７図と同じ符号の処理は第７図に示す処理と同じ処理を示す。
キャッシュミスである場合（Ｓ２，Ｙｅｓ）、ＣＭ制御部３０１Ａはプライマリディスク５Ａからの読み出し結果不当の記録があるか否かの判断を行う（Ｓ１２１）。ここで、ＣＭ制御部３０１Ａは前回の読み出し要求においてプライマリディスク５Ａから読み出したデータが不当であった場合、プライマリディスク５Ａからの読み出し結果不当の記録を行っている。
プライマリディスク５Ａからの読み出し結果不当の記録がない場合（Ｓ１２１，Ｎｏ）、ＣＭ制御部３０１Ａは、ローカルキャッシュ３２Ａ上にプライマリディスク５Ａのデータを展開するようにＤＡ４Ａへ依頼する。次に、ＤＡ４Ａは、プライマリディスク５Ａからデータを読み出し、ローカルキャッシュ３２Ａ上に展開する（Ｓ１２２）。次に、ＣＡ２０Ａは、ローカルキャッシュ３２Ａからデータを読み出し、ＣＣを用いてプライマリディスク５Ａから読み出したデータの正当性をチェックする（Ｓ１２３）。
プライマリディスク５Ａから読み出したデータが正当である場合（Ｓ１２３，Ｙｅｓ）、ＣＡ２０ＡはＣＭ制御部３０１Ａへデータが正当であると通知し、ＣＭ制御部３０１Ａはローカルキャッシュ３２Ａ上のデータをホストコンピュータ１へ転送し（Ｓ１２４）、処理を終了する。一方、プライマリディスク５Ａから読み出したデータが不当である場合（Ｓ１２３，Ｎｏ）、ＣＡ２０ＡはＣＭ制御部３０１Ａへデータが不当であると通知し、ＣＭ制御部３０１Ａはプライマリディスク５Ａからの読み出し結果不当の記録を行う（Ｓ１２５）。次に、ＣＭ制御部３０１Ａはホストコンピュータ１へ異常終了を応答し（Ｓ１２６）、処理を終了する。
一方、プライマリディスク５Ａからの読み出し結果不当の記録がある場合（Ｓ１２１，Ｙｅｓ）、ＣＭ制御部３０１Ａは、ローカルキャッシュ３２Ａ上にセカンダリディスク５Ｄのデータを展開するようにＤＡ４Ｂへ依頼する。次に、ＤＡ４Ｂは、セカンダリディスク５Ｄからデータを読み出し、ローカルキャッシュ３２Ａ上に展開する（Ｓ１２７）。次に、ＣＡ２０Ａは、ローカルキャッシュ３２Ａからデータを読み出し、ＣＣを用いてセカンダリディスク５Ｄから読み出したデータの正当性をチェックする（Ｓ１２８）。
セカンダリディスク５Ｄから読み出したデータが正当である場合（Ｓ１２８，Ｙｅｓ）、ＣＡ２０ＡはＣＭ制御部３０１Ａへデータが正当であると通知し、ＣＭ制御部３０１Ａはローカルキャッシュ３２Ａ上のデータをホストコンピュータ１へ転送し（Ｓ１２９）、処理を終了する。一方、セカンダリディスク５Ｄから読み出したデータが不当である場合（Ｓ１２８，Ｎｏ）、ＣＡ２０ＡはＣＭ制御部３０１Ａへデータが不当であると通知し、ＣＭ制御部３０１Ａはホストコンピュータ１へ異常終了を応答し（Ｓ１２６）、処理を終了する。
以上のように、前回の読み出し要求においてプライマリディスクから読み出したデータが不当であったことを記録しておき、再度の読み出し要求においてセカンダリディスクからデータを読み出すことにより、ホストリトライを利用してリカバリすることができる。
なお、以上の実施例では、キャッシュとディスクを二重化する例について説明したが、キャッシュとディスクを３個以上備えて多重化した場合についても本発明を適用することができる。
【産業上の利用の可能性】
以上に説明したように、本発明によれば、異なるＣＭと異なる経路を用いて書き込みと読み出しを行うことにより、保持するデータの信頼性を向上させることができる。
【図１】
2004114115.tif 000003
【図２】
2004114115.tif 000004
【図３】
2004114115.tif 000005
【図４】
2004114115.tif 000006
【図５】
2004114115.tif 000007
【図６】
2004114115.tif 000008
【図７】
2004114115.tif 000009
【国際調査報告】
2004114115.tif 000010
2004114115.tif 000011
2004114115.tif 000012
2004114115.tif 000013