(57)【要約】【課題】書き込み未了障害を検出し当該磁気ディスクを縮退させることで、ディスクアレイ上のデータを保証すること。【解決手段】磁気ディスク上に通常記録領域とは別に、データより演算される符号を記録する符号情報記録領域を確保し、ＲＡＩＤを構成する全ての磁気ディスクの符号情報を、ＲＡＩＤを構成する全ての磁気ディスクに等しく書き込む。データ読み出し時に、他の磁気ディスクに書き込まれている符号情報を読み出し、読み出しデータより演算される符号と比較することにより、書き込み未了障害の発生を検出し、障害磁気ディスクを縮退させる。【選択図】図３
2008250462.tif 000002
【特許請求の範囲】
【請求項１】
複数の磁気ディスクと、当該磁気ディスクにデータを分散記録するＲＡＩＤ機能を有し、
個々の磁気ディスク上に記録される情報に対して、特定の演算によって誤り検出符号を算出する手段を有し、
ＲＡＩＤを構成する全ての磁気ディスクの誤り検出符号をまとめた符号情報を生成する機能を有し、
当該符号情報を、ＲＡＩＤを構成する全ての磁気ディスク上に格納する、符号情報記録領域を有し、
当該符号情報格納領域に格納される符号情報が、ＲＡＩＤを構成する全ての磁気ディスク上で等しくなるよう構成し、
ＲＡＩＤを構成する磁気ディスク上で、当該符号情報格納領域に差異が生じた場合は、ＲＡＩＤを構成する全ての磁気ディスク上の符号情報格納領域を比較し、多数決論理で、正しい符号情報格納領域を判断することを特徴とするディスクアレイ装置。
【請求項２】
キャッシュメモリを有し、
当該キャッシュメモリ上に、前記符号情報を格納する、符号情報格納領域を有し、
キャシュメモリ上の符号情報格納領域と、個々の磁気ディスク上の符号情報格納領域とに差異が生じた場合、キャッシュメモリ上の符号情報格納領域を優先することを特徴とする請求項１に記載のディスクアレイ装置。
【請求項３】
請求項１および請求項２に記載の機能を同時に内包することを特徴とするディスクアレイ装置。
【請求項４】
複数の磁気ディスクと、当該磁気ディスクにデータを分散記録するＲＡＩＤ機能を有し、
個々の磁気ディスク上に記録される情報に対して、特定の演算によって誤り検出符号を算出する手段を有し、
ＲＡＩＤを構成する全ての磁気ディスクの誤り検出符号をまとめた符号情報を生成する機能を有し、
当該符号情報を、ＲＡＩＤを構成する全ての磁気ディスク上に格納する、符号情報記録領域を有する、ディスクアレイ装置におけるディスクアレイ制御方法であって、
当該符号情報格納領域に格納される符号情報が、ＲＡＩＤを構成する全ての磁気ディスク上で等しくなるよう構成し、
ＲＡＩＤを構成する磁気ディスク上で、当該符号情報格納領域に差異が生じた場合は、ＲＡＩＤを構成する全ての磁気ディスク上の符号情報格納領域を比較し、多数決論理で、正しい符号情報格納領域を判断することを特徴とするディスクアレイ制御方法。
【請求項５】
キャッシュメモリを有し、
当該キャッシュメモリ上に、前記符号情報を格納する、符号情報格納領域を有する、ディスクアレイ装置におけるディスクアレイ制御方法であって、
キャシュメモリ上の符号情報格納領域と、個々の磁気ディスク上の符号情報格納領域とに差異が生じた場合、キャッシュメモリ上の符号情報格納領域を優先することを特徴とする請求項４に記載のディスクアレイ制御方法。
【請求項６】
請求項４および請求項５に記載の工程を同時に有することを特徴とするディスクアレイ制御方法。
【請求項７】
コンピュータシステムに請求項１から３のいずれか１項に記載の機能を実現させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は複数の磁気ディスクを組み合わせて冗長構成をとるディスクアレイ装置に関する。
【背景技術】
【０００２】
従来、個々の磁気ディスクに対して書き込み直後にベリファイ読み出しを行うことで書き込み未了障害の検出を行うディスクアレイ装置がある。
【０００３】
ここで、ストレージシステムは、ストレージ部に対して、ライトデータに基づく第１のチェックコードをキャッシュメモリに記憶し、第１のチェックコードが付加されたライトデータの書き込みを、所定の記憶領域を指定して指示した後、所定の記憶領域に記録されているデータの読み出しを、ストレージ部に対して指示し、該読み出されたデータに基づき第２のチェックコードを生成し、第１および第２のチェックコードの対応関係が正しい場合に、ライトデータがストレージ部へと正常に記録されたと判断することができる技術が提案されている（例えば、特許文献１参照）。
【特許文献１】特開２００６−０７２４３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の第１の課題は、磁気ディスクの書き込み未了障害の検出である。
磁気ディスクの書き込み未了障害は、磁気ディスクからの書き込み終了報告が正常終了であるにもかかわらず、磁気ディスクの媒体上に、当該データが書き込まれないという障害である。磁気ディスクからの異常報告がないため、書き込み直後の障害検出は不可能である。また、書き込み未了障害が発生した場合、読み出し時は更新前の古いデータが読み出されるため、データ不正となる。
【０００５】
従来技術では、個々の磁気ディスクに対して書き込み直後にベリファイ読み出しを行うことで書き込み未了障害の検出を行ってきたが、ベリファイ読み出しはディスクに対する負荷が増大し、性能が低下するという問題があった。また、個々のディスクに対する読み出しでも異常が検出されない場合は、異常の発生した磁気ディスクを特定できないという問題がある。
【０００６】
本発明の第２の課題は、書き込み未了障害発生時のディスクアレイ装置のデータ保護である。
【０００７】
従来技術のディスクアレイ装置では、ＲＡＩＤを構成する磁気ディスクの冗長符号の確認（コヒーレンシ・チェック）を行うことにより、書き込み未了障害の発生は検出できるが、個々の磁気ディスクの障害が検出できない場合は、ＲＡＩＤを構成するどの磁気ディスクで書き込み未了障害が発生したかを判定することが不可能であるため、障害磁気ディスクの縮退によるデータの保護が行えない。また、ＲＡＩＤを構成する全ての磁気ディスクが障害被疑となるため、磁気ディスク上の情報が保証できず、ディスクアレイ装置であっても、情報喪失が発生し得る。
【０００８】
また、書き込み未了障害が発生した場合、当該ブロックのデータを読み出しても、ＲＡＩＤを構成する他の磁気ディスクのデータを読み出すまでコヒーレンシ・チェックは行えないため、異常が確認できない。そのため、障害検出までに長い時間がかかり、さらに誤ったデータを正常データとして送出する危険がある。
【０００９】
本発明は、書き込み未了障害が早期に検出できる手段を提供すること、および、書き込み未了障害が発生した場合でも、障害磁気ディスクを特定する手段を提供することにより、ディスクアレイ装置の信頼性を向上させることを目的とする。
【課題を解決するための手段】
【００１０】
ＲＡＩＤ構成の各磁気ディスクに、書き込みデータおよびＲＡＩＤパリティデータより演算された符号情報を、ＲＡＩＤを構成する全ての磁気ディスクに書き込む。各磁気ディスク上のデータ読み出し時に、他の磁気ディスク上の符号情報を読み出し、データの演算結果と比較する。演算結果と符号情報の値を一致させることで、データの正当性を確認する。
【００１１】
演算結果と符号情報との不一致が生じた場合は、ＲＡＩＤを構成する全ての磁気ディスクで当該符号に対応するデータとの比較を実施し、多数決により障害の発生した磁気ディスクを特定する。
【発明の効果】
【００１２】
第１の効果は、書き込み未了障害が発生した場合でも、演算符号の不一致を元に障害磁気ディスクを特定し、磁気ディスクを縮退させることで、ＲＡＩＤとしてのデータ保証を行えることである。
【００１３】
第２の効果は、磁気ディスクからのデータ読み出し毎に、データの正当性が確認でき、ディスクアレイ装置の信頼性が向上することである。
【発明を実施するための最良の形態】
【００１４】
図１に本発明の第１の実施の形態の構成を示す。
【００１５】
［構成の説明］
図１でディスクアレイ装置１はディスクアレイコントローラ１１と磁気ディスク２１、２２および２３で構成される。ディスクアレイコントローラ１１の中には、ホストインタフェース１１１、ＲＡＩＤコントローラ１１２、符号演算器１１３、キャッシュメモリ１１４により構成される。
【００１６】
ホストインタフェース１１１は上位装置からのコマンド・データを受け取り、下位のＲＡＩＤコントローラへ送出する。ＲＡＩＤコントローラ１１２は、ホストインタフェース１１１から受け取ったデータを磁気ディスク２１、２２、２３へ書き込むと共に、パリティデータを演算し、磁気ディスク２１，２２，２３上に分散して書き込む。また、ＲＡＩＤコントローラ１１２は、キャッシュメモリ１１４を制御し、読み出し／書き込み性能の向上やパリティ更新時のデータ保証を行う。
【００１７】
符号演算器１１３は、ＲＡＩＤコントローラ１１２よりデータを受け取り、符号情報を生成する。
【００１８】
磁気ディスク２１、２２、２３上には、通常のデータやパリティデータを記録する通常記録領域２１１、２２１，２３１と、符号情報を記録する符号情報記録領域２１２、２２２、２３２を有する。
【００１９】
［動作の説明］
図２は、書き込み更新時の正常動作を示す。
【００２０】
ホストインタフェース１１１より入力された書き込みデータ"DATA00'（太文字）"は、ＲＡＩＤコントローラ１１２に送出される。ディスクアレイ装置１は、更新データ"DATA00'（太文字）"と更新前データ"DATA00"、及び更新前パリティデータ"PARITY0"から更新後パリティデータ"PARITY0'（太文字）"を生成する。
【００２１】
ＲＡＩＤコントローラ１１２は更新データ"DATA00'（太文字）"および更新後パリティ"PARITY0'（太文字）"を書き込むと同時に、符号演算器１１３にて更新された"DATA00'（太文字）"に対応する符号"hash.DATA00'（太文字）"および更新後パリティ"PARITY0'（太文字）"に対応する符号"hash.PARITY0'（太文字）"を、磁気ディスク２１、２２、２３のそれぞれの符号情報記録領域２１２、２２２、２３２に書き込む。
【００２２】
図３は、読み出し時にデータの正常性を確認する動作を示す方法である。
磁気ディスク２１から読み出されたデータ"DATA00'（太文字）"はＲＡＩＤコントローラ１１２からホストインタフェース１１１を経由して上位装置へ送信される。
【００２３】
ＲＡＩＤコントローラ１１２はデータ"DATA00'（太文字）"を符号演算器１１３に送信すると共に、磁気ディスク２２上の符号情報記録領域２２２から、データ"DATA00'（太文字）"に対応する符号情報"hash.DATA00'（太文字）"を読み出す。読み出された符号情報"hash.DATA00'（太文字）"は符号演算器１１３に送られ、データ"DATA00'（太文字）"より演算された符号"f(DATA00') （太文字）"と比較が行われる。両者が等しいとき、書き込み未了障害は発生していないと判断される。
【００２４】
図４は書き込み未了障害が発生した場合の動作を示す。
図４でＲＡＩＤコントローラ１１２は更新データ"DATA00'（太文字）"、符号情報"hash.DATA00'（太文字）"、更新後パリティ"PARITY0'（太文字）"および"hash.PARITY0'（太文字）"を磁気ディスク２１および磁気ディスク２３に書き込むよう指示を出したが、磁気ディスク２１では更新データ"DATA00'（太文字）"、符号情報"hash.DATA00'（太文字）"および符号情報"hash.PARITY0'（太文字）"の書き込みが行われず、更新前のデータ"DATA00"、符号情報"hash.DATA00"および"hash.PARITY0"がそのまま残っている。
【００２５】
図５は書き込み未了障害の検出方法である。
図５で磁気ディスク２１の記録領域２１１から読み出されるデータ"DATA00"は、更新前のデータである。そのため符号器１１３に送られたデータ"DATA00"は符号情報"f(DATA00)"を生成する。
【００２６】
一方、磁気ディスク２２の符号情報記録領域２２２には、符号情報"hash.DATA00'（太文字）"が書き込まれている。ＲＡＩＤコントローラ１１２は磁気ディスク２２上の符号情報記録領域２２２から符号情報"hash.DATA00'（太文字）"を読み出し、符号器１１３に送付する。符号器１１３ではデータ"DATA00"より演算された符号情報"f(DATA00)"と磁気ディスク２２から読み出された符号情報"hash.DATA00'（太文字）"とを比較する。両者が一致しないため、符号器１１３はＲＡＩＤコントローラ１１２を経由してホストインタフェース１１１に対し、データ"DATA00"が書き込み未了障害の発生したデータである可能性があることを通知し、データ"DATA00"の送信を停止させる。
【００２７】
ただし、図５では、書き込み未了障害が発生したことは検出可能であるが、どの磁気ディスクで障害が発生したかは確定しない。なぜなら、図５の実施例では磁気ディスク２１の記録領域２１１に対する書き込みデータ"DATA00'（太文字）"が、書き込み未了障害により磁気ディスクの媒体上に書き込まれなかった場合を示しているが、書き込み未了障害は、磁気ディスク上の記憶領域以外にも、符号情報記憶領域に対する書き込みの際も、発生する可能性があるからである。
【００２８】
図６は書き込み未了障害が符号情報記録領域で発生した場合の符号情報の判定方式を示している。
【００２９】
図６で磁気ディスク２１、２２および２３に記録された符号情報を、符号情報記録領域２１２、２２２、２３２より読み出す。読み出された個々の符号情報の比較を行い、不一致点を調べる。図６では符号情報記録領域２１２に記録された符号情報が"hash.DATA00"であるのに対し、符号情報記録領域２２２および２２３に記録された符号情報は"hash.DATA00'（太文字）"であるため、多数決の原理により符号情報記録領域２１２の符号情報が誤っていると判断し、磁気ディスク２１の書き込み障害と判定する。
【００３０】
図７は、図５と同様に書き込み未了障害の検出方式を示した図であるが、図６と同様に符号情報記録領域の比較を行った場合、各々の符号情報に差異がなかった場合を示している。
【００３１】
図７では、符号情報記憶領域２１２、２２２および２３２上にある符号情報の比較を行ったが、符号情報に差異がなかったため、読み出しデータ"DATA00"より演算された符号情報に誤りがあると判断し、磁気ディスク２１に対する書き込み未了障害と判定する。
【００３２】
図４から図７では、磁気ディスク２１上の通常記録領域上の"DATA00"が"DATA00'（太文字）"に更新されなかった場合の、書き込み未了障害の検出について示したが、ディスク２３上の"PARITY0"が"PARITY0'（太文字）"に更新されなかった場合でも、同様に検出が可能である。
【００３３】
ディスクアレイコントローラ１１は磁気ディスク２１に対する書き込み未了障害が判明した場合、ＲＡＩＤコントローラ１１２に対して、磁気ディスク２１を縮退させるよう指示する。
【００３４】
ディスクアレイ装置では、１台の磁気ディスクを縮退させても、他の磁気ディスクよりデータを復旧できるよう、冗長構成が取られているため、磁気ディスク２１を縮退させても、データが失われることはない。
【００３５】
次に、本発明の第２の実施の形態について説明する。
個々の磁気ディスク上に符号情報記録領域を確保し、全ての符号情報記憶領域に等しい情報を記載することにより、磁気ディスク上に書き込まれた情報の正当性を確認する手段を提供することにより、書き込み未了障害を検出するものであるが、一つの磁気ディスクに対する書き込みに際し、ＲＡＩＤを構成する全ての磁気ディスクに対する書き込みが発生するため、書き込み性能が低下する懸念がある。
【００３６】
ディスクアレイ装置には一般にキャッシュメモリが搭載され、磁気ディスクの応答遅延を補っている。
【００３７】
本実施形態として、符号情報をキャッシュメモリに格納する方法が考えられる。符号情報をキャッシュメモリに格納すると、磁気ディスク上の符号情報記録領域を読み出すことなく、書き込み未了障害が検出できる。
【００３８】
図８は符号情報をキャッシュメモリ上に格納した実施例である。
図８でキャッシュメモリ１１４上に符号情報記録領域１１４１が確保され、符号情報"hash"が格納されている。符号情報"hash"の内容は、各磁気ディスク２１、２２および２３の符号情報記録領域２１２、２２２および２３２の内容と等しい。
【００３９】
図９は、符号情報をキャシュメモリ上に格納した実施例で、データの更新を行う場合の動作である。図９は更新データ"DATA00'（太文字）"が磁気ディスク２１の通常記録領域２１１に書き込まれると同時に、更新データ"DATA00'（太文字）"と更新前データ"DATA00"および更新前パリティ"PARITY0"より、更新後パリティ"PARITY0'（太文字）"が生成され、磁気ディスク２３の通常記録領域２３１に書き込まれる。
【００４０】
符号演算器１１３は更新データ"DATA00'（太文字）"および更新後パリティ"PARITY0'（太文字）"より符号情報f(DATA00'（太文字）)およびf(PARITY0'（太文字）)の生成を行い、キャッシュメモリ１１４に送信する。キャッシュメモリ１１４は、符号情報f(DATA00'（太文字）)およびf(PARITY0'（太文字）)を符号情報記録領域１１４１に書き込み、符号情報を更新する。この際、各磁気ディスク２１、２２および２３上の符号情報記録領域２１２、２２２および２３２はまだ更新されておらず、キャッシュメモリ上の符号情報記録領域１１４１との間に差異がある状態になっている。
【００４１】
図１０は符号情報記録領域の更新動作を示す図である。
図１０で、キャッシュメモリ１１４上の符号情報記録領域１１４１には、更新された符号情報"hash'（太文字）"が格納されている。符号情報記録領域１１４１から各磁気ディスク２１、２２および２３の符号情報記録領域２１２、２２２および２３２へ符号情報"hash'（太文字）"が送出され、各符号情報記録領域が更新される。
【００４２】
図１１はキャッシュメモリ上に符号情報記録領域がある場合、データ読み出し時の書き込み未了障害の検出動作を示す。
【００４３】
図１１で、磁気ディスク２１上の通常記録領域２１１からデータ"DATA00"が読み出される。"DATA00"は更新前のデータであり、書き込み未了障害が発生している。データ"DATA00"は符号演算器１１３上に送られ、符号情報f("DATA00")が算出される。キャッシュメモリ１１４上の符号情報記録領域１１４１からは、符号情報"hash.DATA00'（太文字）"が符号演算器１１３へ送出される。符号演算器１１３では符号情報f("DATA00")と符号情報"hash.DATA00'（太文字）"を比較し、不一致を検出したことにより、"DATA00"の上位装置への転送を停止させる。図１１の場合、キャッシュメモリ１１４上のデータは常に正しいと判断し、直ちに磁気ディスク２１の書き込み未了障害と判断し、磁気ディスク２１を縮退させる。
【００４４】
（実施例１）図１２に本発明の実施例を示す。図１２でディスクアレイ装置１は、ホストインタフェース１１１１〜１１１４と、磁気ディスク２１〜２３によって構成される冗長構成２と、磁気ディスク３１〜３３によって構成される冗長構成３を有する。冗長構成２と冗長構成３は、それぞれ異なる符号情報をもつため、キャッシュメモリ１１４上には、冗長構成２の符号情報に対応した符号情報記録領域１１４２と、冗長構成３の符号情報に対応した符号情報記録領域１１４３が存在する。
【００４５】
図１３および図１４は、データの書き込みを行う場合のフローチャートである。図１３では通常のディスクアレイ装置で行われる、更新前のデータ読み出しおよびパリティデータ読みだしと同時に、符号情報格納領域の読み出しも行う。図１４では、パリティデータの更新および符号情報格納領域の更新を行う。遅延書き込みが許容されない実施例では、更新されたデータ、更新されたパリティデータおよび更新された符号情報格納領域を直ちに磁気ディスクに書き込む必要がある。
【００４６】
図１５は、データの読み出しを行う場合のフローチャートである。図１５ではデータ読み出しと同時に、別の磁気ディスク上の符号情報格納領域の読み出しも行う。読み出したデータから生成された符号情報と、読み出された符号情報格納領域上の符号情報との比較を行い、結果が不一致の場合は縮退判定１へと進む。比較結果が一致している場合は、正常な読み出しデータである。
【００４７】
図１６は、縮退判定のフローチャートである。図１６では全ての符号情報格納領域の比較を行い、不一致のものが１つの磁気ディスクから読み出した符号情報格納領域のみであれば、当該磁気ディスクを縮退させる処理を行う。２台以上の磁気ディスクから読み出した符号情報格納領域が不一致の場合は、２重障害と判定する。
【００４８】
本実施例では、２つの冗長構成の場合を図示したが、冗長構成が３つ以上の場合への拡張も容易である。また、請求項３に基づくように、図１の構成と図８の構成の混載も可能である。
【００４９】
なお、上述する実施の形態は、本発明の好適な実施の形態であり、本発明の要旨を逸脱しない範囲内において種々変更実施が可能である。例えば、ディスクアレイ装置１等の機能を実現するためのプログラムを装置に読込ませて実行することにより装置の機能を実現する処理を行ってもよい。さらに、そのプログラムは、コンピュータ読み取り可能な記録媒体であるＣＤ−ＲＯＭまたは光磁気ディスクなどを介して、または伝送媒体であるインターネット、電話回線などを介して伝送波により他のコンピュータシステムに伝送されてもよい。
【図面の簡単な説明】
【００５０】
【図１】本発明の実施の形態の構成図である。
【図２】本発明の実施の形態における磁気ディスクへの書き込み動作の図である。
【図３】本発明の実施の形態における磁気ディスクへの読み出し動作時の確認方式の図である。
【図４】本発明の実施の形態の構成で書き込み未了障害が発生した場合の動作の図である。
【図５】本発明の実施の形態の構成で、図４の書き込み未了障害を検出する手順の図である。
【図６】本発明の実施の形態の構成で、符号情報記録領域の正当性を確認する手順の図である。
【図７】本発明の実施の形態の構成で、図６の符号情報記録領域の正当性確認から、書き込み未了障害を起した磁気ディスクを縮退させる手順の図である。
【図８】本発明の第２の実施の形態のキャッシュメモリ上に符号情報記録領域を確保した構成例の図である。
【図９】本発明の第２の実施の形態の構成における、磁気ディスクへの書き込み動作の図である。
【図１０】本発明の第２の実施の形態の構成における、符号情報記録領域の更新方式の図である。
【図１１】本発明の第２の実施の形態の構成における、書き込み未了障害の検出方式と磁気ディスクを縮退させる手順の図である。
【図１２】本発明の実施例を示す図である。
【図１３】本発明の第１および第２の実施の形態の構成における、書き込み処理を行うフローチャートである。
【図１４】本発明の第１および第２の実施の形態の構成における、書き込み処理を行うフローチャート（図１３の継続図）である。
【図１５】本発明の第１および第２の実施の形態の構成における、読み出し処理を行うフローチャートである。
【図１６】本発明の第１および第２の実施の形態の構成における、符号情報の不一致を契機とした縮退判定を行うフローチャートである。
【符号の説明】
【００５１】
１    ディスクアレイ装置
２〜３    磁気ディスクの冗長構成
１１    ディスクアレイコントローラ
１１１    ホストインタフェース
１１１１〜１１１４    ホストインタフェース
１１２    ＲＡＩＤコントローラ
１１３    符号演算器
１１４    キャッシュメモリ
１１４１〜１１４３    キャッシュメモリ上の符号情報記録領域
２１〜２３    磁気ディスク
２１１〜２３１    磁気ディスク上の通常記録領域
２１２〜２３２    磁気ディスク上の符号情報記録領域
３１〜３３    磁気ディスク
３１１〜３３１    磁気ディスク上の通常記録領域
３１２〜３３２    磁気ディスク上の符号情報記録領域
【図１】
2008250462.tif 000003
【図２】
2008250462.tif 000004
【図３】
2008250462.tif 000005
【図４】
2008250462.tif 000006
【図５】
2008250462.tif 000007
【図６】
2008250462.tif 000008
【図７】
2008250462.tif 000009
【図８】
2008250462.tif 000010
【図９】
2008250462.tif 000011
【図１０】
2008250462.tif 000012
【図１１】
2008250462.tif 000013
【図１２】
2008250462.tif 000014
【図１３】
2008250462.tif 000015
【図１４】
2008250462.tif 000016
【図１５】
2008250462.tif 000017
【図１６】
2008250462.tif 000018