(57)【要約】      （修正有）【課題】ＲＡＩＤ５グループの整合性が崩れ且つ縮退が起きた場合の上位装置のアクセスで発生するエラーをリカバリして信頼性を高める。【解決手段】ライトバック処理部４５は、キャッシュメモリ２８上の新データをＲＡＩＤ５の冗長構成をとるディスク装置に書戻す書戻し要求発生時に、キャッシュメモリ２８上にパリティバッファ領域５２を確保して新パリティを生成した後に、新データ及び新パリティを対応するディスク装置に書き込む。リカバリ処理部４６は、ライトバック処理部４５による書込み時に、複数のディスク装置にＲＡＩＤ５の整合性が崩れるエラーが発生した場合、書戻し対象となった新データを含むストライプ全体のデータを格納したキャッシュストライプ領域をキャッシュメモリ２８上に確保してキャッシュ制御部４２に管理させる。【選択図】図１
2006252414.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュメモリ上のデータをページ領域単位に管理して上位装置からの記憶デバイスに対する入出力要求を処理するキャッシュ制御部と、
複数の記憶デバイス上のデータをそれぞれ前記ページ領域と同一サイズのストリップ領域単位に管理すると共に、同一アドレスをもつ複数のデータ用ストリップ領域と１つのパリティ用ストリップ領域をまとめてストライプ領域単位として管理し、前記ストライプ領域のアドレスが異なる毎に前記パリティ用ストリップ領域を配置する記憶デバイスを変化させるＲＡＩＤ５の冗長構成をとるＲＡＩＤ制御部と、
前記キャッシュメモリ上の新データを前記記憶デバイスに書戻す書戻し要求発生時に、前記キャッシュメモリ上にパリティバッファ領域を確保して新パリティを生成した後に、前記新データ及び新パリティを対応する記憶デバイスに書き込むライトバック処理部と、
前記ライトバック処理部による書込み時に、前記複数の記憶デバイスにＲＡＩＤ５の整合性が崩れるエラーが発生した場合、書戻し対象となった前記新データを含むストライプ全体のデータを格納したキャッシュストライプ領域を前記キャッシュメモリ上に確保して前記キャッシュ制御部に管理させるリカバリ処理部と、
を設けたことを特徴とする記憶装置。
【請求項２】
請求項１記載の記憶装置に於いて、前記リカバリ処理部は、前記ライトバック処理部による書き込みで２台以上の記憶デバイスにエラーが発生した場合、前記ＲＡＩＤ５の整合性が崩れるエラーが発生したと判定することを特徴とする記憶装置。
【請求項３】
請求項１記載の記憶装置に於いて、前記リカバリ処理部は、前記キャッシュストライプ領域を確保した後に、前記ライトバック処理部に前記新パリティを格納したパリティバッファ領域を開放させることを特徴とする記憶装置。
【請求項４】
請求項１記載の記憶装置に於いて、前記リカバリ処理部は、前記キャッシュストライプ領域の中に空き領域が存在する場合、同じ領域の新データ及び前記パリティバッファ領域の新パリティの排他論理和で求めた新データを前記空き領域にステージングすることを特徴とする記憶装置。
【請求項５】
請求項１記載の記憶装置に於いて、前記リカバリ処理部は、前記キャッシュストライプ領域の中に、同じ領域内の新データ及び前記パリティバッファ領域の新パリティの排他論理和で求めた新データがステージングされない空き領域が存在する場合、前記空き領域に前記記憶デバイスから読み出したデータをステージングすることを特徴とする記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶デバイスに対する上位装置からの入出力要求をキャッシュメモリを介して処理するＲＡＩＤ構成の記憶装置、その制御方法及びプログラムに関し、特にキャッシュメモリ上で更新された最新のデータをＲＡＩＤ５の冗長構成をとる記憶デバイスにライトバックする記憶装置、その制御方法及びプログラムに関する。
【背景技術】
【０００２】
従来、ホストからの入出力要求を処理するＲＡＩＤ装置にあっては、図１５のように、ＲＡＩＤ装置１００の制御モジュール１０１内にキャッシュメモリ１０２を設け、キャッシュメモリ１０２上でホストからのＲＡＩＤ５グループ１０５を構成するディスク装置１０４−１〜１０４−４に対する入出力要求を処理するようにしている。
【０００３】
このようなＲＡＩＤ装置１００のキャッシュデータはページ単位に管理されており、図１６のように、キャッシュページ１０６は例えば６６，５６０バイトを１ページとして管理している。
【０００４】
キャッシュページ１０６はホストのアクセス単位となる複数のブロック単位のユーザデータで構成され、１ブロックのユーザデータは５１２バイトであり、５１２バイト毎に８バイトのブロックチェックコード（ＢＣＣ）が付加され、この５２０バイトのブロックを１２８ブロック単位で１ページとして管理し、このため１ページは５２０×１２８=６６，５６０バイトとなる。
【０００５】
またキャッシュページ１０６を管理するためにキャッシュバンドルエレメント（ＣＢＥ）と呼ばれるキャッシュ管理テーブルを用意する。キャッシュ管理テーブルには１ページごとに対応する管理レコードが存在し、管理レコードは論理ユニット番号ＬＵＮ、論理ブロックアドレスＬＢＡ、１ブロックを１ビットで対応したダーティデータをダーティデータビットマップ等を保持している。このキャッシュ管理テーブルの１ページはＲＡＩＤグループを構成する各ディスク装置のストリップ領域のサイズと同一サイズとしている。
【０００６】
ここでＲＡＩＤ装置１００の冗長構成としてＲＡＩＤ５を使用する場合、キャッシュメモリ１０２上にキャッシュデータを格納するキャッシュ領域１０８を設けると共に、キャッシュ領域１０８とは別にライトバック処理の際に新パリティ生成用の作業領域として旧データや旧パリティを格納するデータバッファ領域１１０や新パリティを格納するパリティバッファ領域１１２を設けている。
【０００７】
ライトバック処理は、例えばキャッシュ領域１０８に１ページデータとして存在する新データ（Ｄ２）ｎｅｗについてディスク装置１０４−２に対するライトバック要求が発生した場合、キャッシュメモリ１０２上にデータバッファ領域１１０とパリティバッファ領域１１２を確保してからライトバック処理を進める。ここで、新データ（Ｄ２）はディスク装置の１台に書き込むことから、このライトバック処理をスモールライトという。
【０００８】
スモールライトは、ディスク装置１０４−２から旧データ（Ｄ２）ｏｌｄを読み出してデータバッファ領域１１０に格納すると共にディスク装置１０４−４から旧パリティ（Ｐ）ｏｌｄを読み出して同じくデータバッファ領域１１０に格納する。続いて新データ（Ｄ２）ｎｅｗ、旧データ（Ｄ２）ｏｌｄ及び旧パリティ（Ｐ）ｏｌｄの排他論理和（ＸＯＲ）１１６を計算して新パリティ（Ｐ）ｎｅｗを求めてパリティバッファ領域１１２に格納する。最後に、新データ（Ｄ２）ｎｅｗと新パリティ（Ｐ）ｎｅｗをぞれぞれディスク装置１０４−２，１０４−４に書込んで処理を終了する。
【０００９】
また新データがディスク装置１０２−１〜１０２−３に対応して全て存在する場合（ストライプ領域の全データ）のライトバックはバンドワイドライトといわれ、バンドワイドライトでは、ディスク装置１０４−１〜１０４−３のストリップ領域に対応した全データの排他論理和として新パリティを計算し、ディスク装置１０４−１〜１０４−４に書込んで処理を終了する。いずれの場合も書き込みが完了で、データバッファ領域１１０およびパリティバッファ領域１１２が開放される。
【００１０】
ところで、このようなＲＡＩＤ５の冗長構成をとるＲＡＩＤ装置において、例えば図１７に示すように、ライトバック処理で例えばディスク装置１０４−３，１０４−４の２台でエラーが発生した場合、ディスク装置１０４ー１〜１０４−４のストライプ領域につきＲＡＩＤ５によるデータの整合性が崩れてしまう障害が発生する。即ちライトバック処理の失敗により、ディスク装置１０４−２だけが新データ（Ｄ２）ｎｅｗとなり、ディスク装置１０４−３，１０４−４は旧データ（Ｄ３）ｏｌｄと旧パリティ（Ｐ）ｏｌｄのままとなる。
【００１１】
このように整合性が崩れた状態で、図１８のように、更にディスク装置１０４−１が故障してＲＡＩＤ５グルーブが縮退して３台構成となった場合、ホスト１１８からのデータＤ２のリード要求に対しキャッシュメモリ１０２上ではミスヒットとなるため、ディスク装置１０４−１からステージングしようとするが、ディスク装置１０４−１は故障してＲＡＩＤ５グループ１０５から排除された縮退状態にあるため、正常なディスク装置１０４−２〜１０４−４のデータ及びパリティの排他論理和でデータＤ１を復元するリジェネレーションリード（Ｒｅｇｅｎａｒａｔｉｏｎ  Ｒｅａｄ）を実行することになる。しかし、ディスク装置１０４−２〜１０４−４のデータ及びパリティは整合性が崩れているため、排他論理和により化けデータ（Ｄ？）が復元される危険がある。
【００１２】
ところで、ＲＡＩＤ装置は、信頼性を確保するためにキャッシュメモリを備えた制御モジュールが２重化されており、ライトバック処理の際に生成されたパリティを予備側の制御モジュールに保存している。このため図１８のようにライトバック処理におけるエラーでディスク装置の整合が崩れた状態でディスク装置が故障して縮退したような場合には、図１９のように、予備側の制御モジュール１０１−２に保存している新パリティ（Ｐ）ｎｅｗを制御モジュール１０１−１が取得し、キャッシュメモリ１０２上の新データ（Ｄ２）ｎｅｗ、Ｄ（３）ｎｅｗと共に対応するディスク装置１０４−２〜１０４−３に書き込む書込修正（Ｗｒｉｔｅ  Ｃｏｒｒｅｃｔ）を行うことで、ディスク装置１０４−１〜１０４−４の整合性を回復させることができる。
【特許文献１】特開平０５−３０３５２８号公報
【特許文献２】特開平０８−１１５１６９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、このような従来のキャッシュ制御処理にあっては、制御モジュールに障害が発生して予備用の制御モジュールに処理を移す縮退が発生した場合、パリティを保存することができないため、ＲＡＩＤグループのディスク装置の整合性が崩れた場合、図１９のようなパリティを使用した書込修正による整合性の回復できない。
【００１４】
そこで図２０のように、制御モジュール１０１−１のエラーで処理を引き継いだ制御モジュール１０１−２は、キャッシュメモリ１０２上にパリティを取得できないため、ディスク装置１０４−１〜１０４−３のデータの排他論理和によりパリティ（Ｐ）を再計算（Ｒｅｃａｌｃｕｌａｔｅ）してディスク装置１０４−３に書き込むことで、ディスク装置１０４−１〜１０４−４の整合性を回復し、次に図２１のように、キャッシュメモリ１０２上に残っている新データ（Ｄ２）ｎｅｗ、（Ｄ３）ｎｅｗから新パリティ（Ｐ）ｎｅｗを計算した後、ディスク装置１０４−２〜１０４−４に書き込む通常のライトバックを行う。
【００１５】
しかし、図２１のような制御モジュールが縮退した状態で、更にディスク装置１０４−１が故障してＲＡＩＤ５グループ１０５が縮退した場合、縮退したＲＡＩＤ５グループ１０５では図２０のようにパリティ再計算ができないため、整合性を回復することができず、ＲＡＩＤ５グループのストライプ全体に対するアクセスを禁止しない限り、データ化けの危険性が発生するという問題がある。
【００１６】
本発明は、ＲＡＩＤ５グループの整合性が崩れ且つ記憶デバイスの縮退が起きた場合のアクセスで発生したエラーをリカバリしてアクセスに対しデータの信頼性を高める記憶装置、その制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
図１は本発明の原理説明図である。本発明は記憶装置を提供する。本発明の記憶装置は、
キャッシュメモリ２８上のデータをページ領域単位に管理して上位装置からの記憶デバイスに対する入出力要求を処理するキャッシュ制御部４２と、
複数の記憶デバイス上のデータをそれぞれページ領域と同一サイズのストリップ領域単位に管理すると共に、同一アドレスをもつ複数のデータ用ストリップ領域と１つのパリティ用ストリップ領域をまとめてストライプ領域単位として管理し、ストライプ領域のアドレスが異なる毎にパリティ用ストリップ領域を配置する記憶デバイスを変化させるＲＡＩＤ５の冗長構成をとるＲＡＩＤ制御部３８と、
キャッシュメモリ２８上の新データを記憶デバイスに書戻す書戻し要求発生時に、キャッシュメモリ２８上にパリティバッファ領域５２を確保して新パリティを生成した後に、新データ及び新パリティを対応する記憶デバイスに書き込むライトバック処理部４５と、
ライトバック処理部４５による書込み時に、複数の記憶デバイスにＲＡＩＤ５の整合性が崩れるエラーが発生した場合、書戻し対象となった新データを含むストライプ全体のデータを格納したキャッシュストライプ領域をキャッシュメモリ上に確保してキャッシュ制御部に管理させるリカバリ処理部４６と、
を設けたことを特徴とする。
【００１８】
ここで、リカバリ処理部は、ライトバック処理部による書き込みで２台以上の記憶デバイスにエラーが発生した場合、ＲＡＩＤ５の整合性が崩れるエラーが発生したと判定する。
【００１９】
リカバリ処理部は、キャッシュストライプ領域を確保した後に、ライトバック処理部に新パリティを格納したパリティバッファ領域を開放させる。
【００２０】
リカバリ処理部は、キャッシュストライプ領域の中に空き領域が存在する場合、同じ領域の新データ及びパリティバッファ領域の新パリティの排他論理和で求めた新データを空き領域にステージングする。
【００２１】
リカバリ処理部は、キャッシュストライプ領域の中に、同じ領域内の新データ及びパリティバッファ領域の新パリティの排他論理和で求めた新データがステージングされない空き領域が存在する場合、空き領域に記憶デバイスから読み出したデータをステージングする。
【００２２】
リカバリ処理部は、記憶デバイスから空き領域に対するデータのステージングに失敗した場合、キャッシュストライプ領域をアクセス制限領域（ピンド・ストライプ  Ｐｉｎｎｅｄ  Ｓｔｒｉｐｅ）に指定してキャッシュ制御部に管理させる。
【００２３】
キャッシュ制御部は、アクセス制限領域に指定されたキャッシュストライプ領域に対し上位装置からリード要求があった場合、キャッシュヒット時はヒットデータをリード応答し、キャッシュミスヒット時には記憶デバイスからＲＡＩＤ５の冗長構成に基づくデータの復元（リジェネレーションリード  Ｒｅｇｅｎｅｒａｔｉｏｎ  Ｒａｅｄ）を禁止したステージングを実行した後のキャッシュヒットでリード応答する。
【００２４】
キャッシュ制御部は、アクセス制限領域に指定されたキャッシュストライプ領域に対し上位装置からライト要求があった場合、ライトデータを対応する領域に書き込む。
【００２５】
ライトバック処理部は、記憶デバイスのエラーが解消された後のアクセス制限領域に指定されたキャッシュストライプ領域の書戻し要求の発生時に、キャッシュストライプ領域の中の空き領域に、記憶デバイスからＲＡＩＤ５の冗長構成に基づくデータの復元を禁止したステージングを実行してストライプ全体のデータを確保できた場合、キャッシュメモリ上にパリティバッファ領域を確保してストライプ全体のデータから新パリティデータを生成した後に、新データ及び新パリティを対応する記憶デバイスに書き込む処理（バンドワイドライト）を行う。
【００２６】
本発明は記憶装置の制御方法を提供する。本発明による記憶装置の制御方法は、
キャッシュメモリ上のデータをページ領域単位に管理して上位装置からの記憶デバイスに対する入出力要求を処理するキャッシュ制御ステップと、
複数の記憶デバイス上のデータをそれぞれページ領域と同一サイズのストリップ領域単位に管理すると共に、同一アドレスをもつ複数のデータ用ストリップ領域と１つのパリティ用ストリップ領域をまとめてストライプ領域単位として管理し、ストライプ領域のアドレスが異なる毎にパリティ用ストリップ領域を配置する記憶デバイスを変化させるＲＡＩＤ５の冗長構成をとるＲＡＩＤ制御ステップと、
キャッシュメモリ上の新データを記憶デバイスに書戻す書戻し要求発生時に、キャッシュメモリ上にパリティバッファ領域を確保して新パリティを生成した後に、新データ及び新パリティを対応する記憶デバイスに書き込むライトバック処理ステップと、
ライトバック処理ステップによる書込み時に、複数の記憶デバイスにＲＡＩＤ５の整合性が崩れるエラーが発生した場合、書戻し対象となった新データを含むストライプ全体のデータを格納したキャッシュストライプ領域をキャッシュメモリ上に確保してキャッシュ制御ステップに管理させるエラーリカバリ処理ステップと、
を設けたことを特徴とする。
【００２７】
本発明は、記憶装置のコンピュータにより実行されるプログラムを提供する。本発明のプログラムは、記憶装置のコンピュータに、
キャッシュメモリ上のデータをページ領域単位に管理して上位装置からの記憶デバイスに対する入出力要求を処理するキャッシュ制御ステップと、
複数の記憶デバイス上のデータをそれぞれページ領域と同一サイズのストリップ領域単位に管理すると共に、同一アドレスをもつ複数のデータ用ストリップ領域と１つのパリティ用ストリップ領域をまとめてストライプ領域単位として管理し、ストライプ領域のアドレスが異なる毎にパリティ用ストリップ領域を配置する記憶デバイスを変化させるＲＡＩＤ５の冗長構成をとるＲＡＩＤ制御ステップと、
キャッシュメモリ上の新データを記憶デバイスに書戻す書戻し要求発生時に、キャッシュメモリ上にパリティバッファ領域を確保して新パリティを生成した後に、新データ及び新パリティを対応する記憶デバイスに書き込むライトバック処理ステップと、
ライトバック処理ステップによる書込み時に、複数の記憶デバイスにＲＡＩＤ５の整合性が崩れるエラーが発生した場合、書戻し対象となった新データを含むストライプ全体のデータを格納したキャッシュストライプ領域をキャッシュメモリ上に確保してキャッシュ制御ステップに管理させるエラーリカバリ処理ステップと、
を実行させることを特徴とする。
【００２８】
なお、本発明における記憶装置の制御方法及びプログラムの詳細は、本発明の記憶装置の場合と基本的に同じになる。
【発明の効果】
【００２９】
本発明によれば、ＲＡＩＤ５の冗長構成をもつＲＡＩＤ装置のライトバック処理で記憶デバイスのストライプの整合性を崩すエラーが発生し、更に故障などにより記憶デバイスも縮退した場合には、パリティバッファ領域のパリティを開放する前に、キャッシュメモリ上に書戻し対象となった新データを含むストライプ全体の正しいデータをもつキャッシュストライプ領域を確保することで、上位装置からのアクセスに対しＲＡＩＤ５の整合性が崩れた状態での冗長構成に基づく故障デバイスのデータ復元によるデータ化けを未然に防止し、ＲＡＩＤ装置のエラーリカバリ性能を向上してデータ保護の信頼性を高めることができる。
【００３０】
またキャッシュストライプ領域に部分的な空きがある場合には、これをアクセス制限領域に指定することで、空き領域に対する上位装置からのリード要求でミスヒットとなって記憶デバイスからステージングする場合、ＲＡＩＤ５の冗長構成に基づくデータ復元によるリードを禁止したステージングを行わせることで、ＲＡＩＤ５の整合性が崩れによる化けデータの発生を確実に防止できる。
【発明を実施するための最良の形態】
【００３１】
図２は本発明が適用されるＲＡＩＤ装置のハードウェア構成のブロック図であり、大型の装置構成を例にとっている。図２において、ＲＡＩＤ装置１０に対してはメインフレーム系ホスト１２とＵＮＩＸ（Ｒ）／ＩＡサーバ系のホスト１４が設けられている。
【００３２】
ＲＡＩＤ装置１０内には、ＣＰＵ１５を備えたチャネルアダプタ１６−１，１６−２、制御モジュール１８−１〜１８−ｎ、バックグラウンドルータ２０−１，２０−２、記憶デバイスとして機能するＲＡＩＤ５の冗長構成をとるハードディスクドライブなどのディスク装置２２−１〜２２−４、更にフロントルータ３２−１，３２−２を設けている。
【００３３】
ＲＡＩＤ装置１０は最大構成で制御モジュールを８台実装することができる。チャネルアダプタ１６−１，１６−２はＣＰＵ１５を備え、フレームワーク系のホスト１２を制御モジュール１８−１に接続している。またチャネルアダプタ２６−１，２６−２は、ＵＮＩＸ（Ｒ）／ＩＡサーバ系のホスト１４を制御モジュール１８−１に接続している。
【００３４】
チャネルアダプタ１６−１，１６−２及びチャネルアダプタ２６−１，２６−２は、制御モジュール１８−１に設けた通信部２５からフロントルータ３２−１，３２−２を介して、他の制御モジュール１８−２（図示せず）〜１８−ｎに接続される。
【００３５】
制御モジュール１８−１〜１８−ｎには、制御モジュール１８−１に代表して示すように、ＣＰＵ２４、通信部２５、キャッシュメモリ２８及びデバイスインタフェース３０−１，３０−２が設けられている。
【００３６】
ＣＰＵ２４には、ホスト１２またはホスト１４からのライトコマンドまたはリードコマンドに対する入出力要求をキャッシュメモリ２８上で処理して応答する入出力処理機能に加え、キャッシュメモリ２８の制御と管理、更にキャッシュメモリ２８からバックグラウンドルータ２０−１，２０−２を介して、ディスク装置２２−１〜２２−４に対するキャッシュデータのライトバック、及びディスク装置２２−１〜２２−４からのディスクデータのステージングなどをプログラム制御により行っている。
【００３７】
フロントルータ３２−１，３２−２は、制御モジュール１８−１に対し他の制御モジュール１８−２（図示せず）〜１８−ｎを接続し、制御の多重化を図っている。またバックグラウンドルータ２０−１，２０−２に対しては制御モジュール１８−１〜１８−ｎがそれぞれ接続され、制御モジュール側のＣＰＵ２４によるＲＡＩＤ制御によるデータ入出力処理を行っている。ここで、ｎ台の制御モジュール１８−１〜１８−ｎの内の１台が予備用の制御モジュールに割り当てられている。
【００３８】
図３は本発明が適用されるＲＡＩＤ装置の他のハードウェア構成のブロック図であり、図２の大型装置に対し規模の小さな小型あるいは中型装置とした場合を例にとっている。図３において、ＲＡＩＤ装置１０は、ＣＰＵ１５を備えたチャネルアダプタ１６、２重構成の制御モジュール１８−１，１８−２及び、少なくともＲＡＩＤ５の冗長構成をとるディスク装置２２−１〜２２−４を備えている。ここで制御モジュール１８−１は常用であり、制御モジュール１８−１は予備用であり、２重化による冗長構成をとっている。
【００３９】
制御モジュール１８−１，１８−２には、制御モジュール１８−１に代表して示すように、ＣＰＵ２４、通信部２５、キャッシュメモリ２８及びデバイスインタフェース３０−１，３０−２が設けられている。またＵＮＩＸ（Ｒ）／ＩＡサーバ系のホスト１４は、チャネルアダプタ２６により制御モジュール１８−１に接続される。
【００４０】
この小型及び中型に対応した図３のＲＡＩＤ装置１０は、図２のＲＡＩＤ装置１０からバックグラウンドルータ２０−１，２０−２及びフロントルータ３２−１，３２−２を除いた規模の小さな構成であり、それ以外の構成は基本的に図２と同じである。
【００４１】
図４は本発明によるＲＡＩＤ装置の機能構成のブロック図である。図４において、ＲＡＩＤ装置１０の機能は、図５の制御モジュール１８−１に設けているＣＰＵ２４のプログラム制御により実現され、制御モジュール１８−１内に示すように、リソース処理部３４、キャッシュ処理部３６、ＲＡＩＤ制御部３８及びコピー処理部４０を構築している。
【００４２】
キャッシュ処理部３６には、キャッシュ制御部４２、キャッシュ管理テーブル４４、ライトバック処理部４５、リカバリ処理部４６、更にキャッシュメモリ２８が設けられている。
【００４３】
キャッシュメモリ２８には、ホスト１２またはホスト１４からのライト要求を受けた際に配置されてデータを書き込むキャッシュ領域４８、キャッシュ領域４８のキャッシュデータを物理デバイス２２で示すＲＡＩＤ５グループ５４のディスク装置に対し書き込むライトバック処理の際に配置されるデータバッファ領域５０及びパリティバッファ領域５２が設けられる。
【００４４】
キャッシュ制御部４２はキャッシュメモリ２８上のデータをページ領域単位に管理し、ホスト１２またはホスト１４の複数のディスク装置でＲＡＩＤグループを構成した物理デバイス２２に対する入出力要求を処理する。
【００４５】
即ちキャッシュ制御部４２は、図５に示すように、キャッシュページ５８としてホスト側のアクセス単位である５１２バイトのユーザデータと８バイトのＢＣＣで構成される５２０バイトのブロックデータを１２８ブロックを備えた６６，５６０バイトで１ページを構成している。
【００４６】
このようなキャッシュメモリ２８上のキャッシュページ５８は、キャッシュ管理テーブル４４にページごとに記録されて管理されており、キャッシュ管理テーブル４４におけるレコードは、論理ユニット番号（ＬＵＮ）、論理ブロックアドレス（ＬＢＡ）、ブロックが新データであることを示すことをビットで表わしたダーティデータビットマップ（１２８ビット）などで構成されている。
【００４７】
再び図４を参照するに、ＲＡＩＤ制御部３８は複数のディスク装置でＲＡＩＤ５グループ５４を構成する物理デバイス２２に対し、本発明にあってはＲＡＩＤ５の冗長構成によるＲＡＩＤ制御を行う。
【００４８】
即ちＲＡＩＤ制御部３８は、図５のディスク装置２２−１〜２２−４に示すように、ディスク装置２２−１〜２２−４上のデータを、それぞれキャッシュメモリ２８におけるキャッシュページ５８と同一サイズのストリップ領域５４−１，５４−２，５４−３，５４−４として管理すると共に、同一アドレスを持つ複数のストリップ領域５４−１〜５４−４をまとめて、ストライプ領域５６として管理している。
【００４９】
ＲＡＩＤ５の冗長構成の場合、例えばストライプ領域５６を例にとると、ディスク装置２２−１〜２２−３のストリップ領域５４−１〜５４−３にデータＤ１，Ｄ２，Ｄ３が格納され、残りのディスク装置２２−４のストリップ領域５４−４にパリティＰが格納されている。ＲＡＩＤ５の冗長構成の場合、ストライプ領域５６のアドレスが異なるごとにパリティＰを格納するディスクの位置が変化する。
【００５０】
再び図４を参照するに、ライトバック処理部４５は、キャッシュメモリ２８上の新データ（ダーティデータ）をディスク装置２２−１〜２２−４に書戻す書戻し要求発生時に、キャッシュメモリ２８上にパリティバッファ領域５２を確保して新パリティを生成した後に、新データ及び新パリティを対応するディクス装置に書き込む。
【００５１】
リカバリ処理部４６は、ライトバック処理部４５による書込み時に、ＲＡＩＤ５グループ５４の整合性が崩れるエラーが発生した場合、書戻し対象となった新データを含むストライプ全体のデータを格納したキャッシュストライプ領域をキャッシュメモリ２８上に確保してキャッシュ制御部４２に管理させる。また、この時、ライトバック処理部４５に新パリティを格納したパリティバッファ領域５２を開放させる。
【００５２】
ここで、リカバリ処理部４６は、ライトバック処理部４５による書き込みで２台以上の記憶デバイスにエラーが発生した場合、ＲＡＩＤ５グループ５４の整合性が崩れるエラーが発生したと判定する。整合性が崩れるエラーは、例えば制御モジュール１８−１のエラーによりライトバック処理でディスク装置の書込みに失敗した後（制御モジュールの縮退）に、ディスク装置が故障等により異常となった場合（ＲＡＩＤ５の縮退）である。
【００５３】
リカバリ処理部４６がキャッシュ上に確保するキャッシュストライプ領域は、ＲＡＩＤ５グループの整合性が崩れたストライプ領域全体の正しいデータをキャッシュ上に保持するものであることから、空きページが存在する場合には、同じ領域の新データ及びパリティバッファ領域５２の新パリティの排他論理和で求めた新データを空きページ領域にステージングする。
【００５４】
この場合、空き領域は必ずしもページ単位とはならないため、排他論理和で求めた新データをステージングしても空き領域が存在する場合がある。この場合には、空き領域にディスク装置から読み出したデータをステージングする。
【００５５】
更に、キャッシュストライプ領域の空き領域に対するディスク装置からのデータのステージングに失敗した場合、このキャッシュストライプ領域をピンド・ストライプ（Ｐｉｎｎｅｄ  Ｓｔｒｉｐｅ）となるアクセス制限領域に指定してキャッシュ制御部４２に管理させる。
【００５６】
アクセス制限領域に指定されたキャッシュストライプ領域に対するキャッシュ制御部４２及びライトバック処理部４５のアクセス制限を伴う処理は次のようになる。
【００５７】
（１）キャッシュ制御部４２は、ホストからリード要求があった場合、キャッシュヒット時はヒットデータをリード応答し、キャッシュミスヒット時にはディスク装置２２−１〜２２−４からＲＡＩＤ５の冗長構成に基づくデータの復元、即ちリジェレーションリードを禁止したステージングを実行した後のキャッシュヒットでリード応答する。
【００５８】
（２）キャッシュ制御部４２は、ホストからライト要求があった場合、ライトデータを対応する領域に書き込む。これは通常のキャッシュ制御と同じである。
【００５９】
（３）ライトバック処理部４５は、ＬＲＵ管理などによりキャッシュストライプ領域の書戻し要求が発生した場合、キャッシュストライプ領域の中の空き領域に、ディスク装置からＲＡＩＤ５の冗長構成に基づくデータの復元、即ちリジェレーションリードを禁止したステージングを実行してストライプ全体のデータを確保し、確保できた場合、キャッシュメモリ２８上にパリティバッファ領域５２を確保してストライプ全体のデータから新パリティデータを生成した後に、新データ及び新パリティを対応するディスク装置に書き込むバンドワイドライトを実行する。
【００６０】
次に本発明のリカバリ処理部４６による処理を図３の制御モジュールを２重化した場合を例にとって具体的に説明する。図６はライトバック処理の際に発生したエラーでＲＡＩＤ５グループの整合性が崩れた状態の説明図である。
【００６１】
図６において、制御モジュール１８−１のキャッシュメモリ２８上に管理している、あるストライプに対応したキャッシュページ５８−２，５８−３の新データ（Ｄ２）ｎｅｗ，（Ｄ３）ｎｅｗがライトバック対象となった場合、データバッファ領域５０をキャッシュメモリ２８上に確保し、ディスク装置２２−１から新データ（Ｄ２）ｎｅｗ、（Ｄ３）ｎｅｗと同じストライプのアドレスを持つ旧データ（Ｄ１）ｏｌｄを読み出してステージングした後、パリティバッファ領域５２を確保する。
【００６２】
次に旧データ（Ｄ１）ｏｌｄ、新データ（Ｄ２）ｎｅｗ及び新データ（Ｄ３）ｎｅｗの排他論理和を計算して、新パリティ（Ｐ）ｎｅｗを求め、これをパリティバッファ領域５２に格納する。そして、新データ（Ｄ２）ｎｅｗ、新データ（Ｄ３）ｎｅｗ及び新パリティ（Ｐ）ｎｅｗを、それぞれ対応するディスク装置２２−２，２２−３，２２−４に書き込む処理を実行する。
【００６３】
しかしながら、このようなライトバック処理の際に、例えば制御モジュール１８−１における図３に示したデバイスインタフェース３０−１などのエラーによりディスク装置２２−３，２２−４に対する書込みに失敗すると、ディスク装置２２−２のみが新データ（Ｄ２）ｎｅｗに書き換えられ、ディスク装置２２−３，２２−４は旧データ（Ｄ３）ｏｌｄ及び旧パリティ（Ｐ１）ｏｌｄのままであるため、ＲＡＩＤ５グループ５４においてライトバック対象となったストライプの整合性が崩れる。
【００６４】
一方、制御モジュール１８−１のエラーにより、例えば予備用として図３に示した制御モジュール１８−２が存在していた場合、キャッシュ制御は制御モジュール１８−１から制御モジュール１８−２に移され、制御モジュールは縮退することになる。
【００６５】
図７は制御モジュール１８−１のエラーで予備用として設けていた制御モジュール１８−２に制御が移された後の制御モジュール縮退状態であり、この状態でＲＡＩＤ５グループ５４に設けているディスク装置２２−１が故障などの異常を起こしてＲＡＩＤ５グループ５４が縮退した状態である。
【００６６】
ＲＡＩＤ５グループ５４の整合性が崩れた状態で、更にその内の１台であるディスク装置２２−１が異常を起こして縮退した場合、本発明にあっては、制御モジュール１８−２のキャッシュメモリ２８上にストライプ領域の全データ、即ち３ページ分のキャッシュページ５８−１，５８−２，５８−３で構成されるキャッシュストライプ領域６０を確保し、キャッシュページ５８−２，５８−３にはライトバック対象となった新データ（Ｄ２）ｎｅｗと新データ（Ｄ３）ｎｅｗを格納する。また、このときパリティバッファ領域５２に格納している新パリティ（Ｐ）ｎｅｗは開放せずに保持する。
【００６７】
次にリカバリ処理部４６は、図８のように、キャッシュストライプ領域６０に格納している新データ（Ｄ２）ｎｅｗ及び新データ（Ｄ３）ｎｅｗ、及びパリティバッファ領域５２に格納している新パリティ（Ｐ）ｎｅｗに基づき演算部６２で排他論理和計算を行い、異常を起こしたディスク２２−１に対応した空きページとなるキャッシュページ５８−１に新データ（Ｄ１）ｎｅｗをステージングする。
【００６８】
これによってキャッシュメモリ２８に確保したキャッシュストライプ領域６０には、ＲＡＩＤ５グループ５４における整合性が崩れたストライプの全データが新データ（ダーティデータ）、即ち正しいデータとして確保できる。
【００６９】
このようにしてキャッシュメモリ２８上に整合性の崩れたＲＡＩＤ５グループ５４におけるストライプ領域全体の正しいデータを格納したキャッシュストライプ領域６０が確保できたならば、図９に示すように、リカバリ処理部４６はライトバック処理部４５に対し新パリティ（Ｐ）ｎｅｗを格納しているパリティバッファ領域５２の開放を行わせる。
【００７０】
その結果、キャッシュメモリ２８上には整合性が崩れたＲＡＩＤ５グループ５４におけるストライプに対応して正しいデータが格納されたキャッシュストライプ領域６０が確保され、このキャッシュストライプ領域６０に対しキャッシュ制御部４２がホストからのアクセスに対する処理を実行し、またＬＲＵなどによるライトバック条件が成立した際にライトバック処理部４５がライトバック処理を実行することになる。
【００７１】
もちろん、ライトバック処理部４５によるライトバックは、ＲＡＩＤ５グループ５４において異常を起こしているディスク装置２２−１が正常なディスク装置に交換されてエラーが回復した後のＬＲＵ条件の成立時などに行われることになる。
【００７２】
また、この場合、キャッシュストライプ領域６０には全て新しいデータが確保されており、空き領域がないことから、アクセス制限は行われず、通常のキャッシュ領域と全く同様にホストからの入出力要求に対するキャッシュ制御を行う。
【００７３】
またキャッシュストライプ領域６０には、該当するＲＡＩＤ５グループ５４のストライプに対応した正しい新データが全て確保されているため、上位装置からのリード要求に対しては必ずキャッシュヒットとなり、整合性が崩れているＲＡＩＤ５グループ５４のディスク装置２２−１〜２２−４からのステージングは行われないことから、整合性の崩れたストライプのデータをステージングしたり、障害ディスクのデータを他のディスクの排他論割から復元するリジェネレーションリードなどは一切行われることがなく、この結果、整合性が崩れたＲＡＩＤ５グループ５４のディスク装置からのステージングによるデータ化けを完全に防止することができる。
【００７４】
次に、リカバリ処理部によってキャッシュメモリ上に確保されたキャッシュストライプ領域に空き領域が存在する場合の処理を説明する。図１０はホストからのライト要求を受けたキャッシュ領域のライトバックでＲＡＩＤ５グループの整合性が崩れるエラーが発生した状態の説明図である。
【００７５】
図１０において、制御モジュール１８−１が常用として動作しており、ホストからライトデータ６４によるライト要求を受けた場合、キャッシュメモリ２８上で管理しているキャッシュページ５８−１，５８−２の旧データに対しライトデータ６４を書き込んで、新データ（Ｄ１）ｎｅｗ及び新データ（Ｄ２）ｎｅｗとする。ここでキャッシュページ５８−２については、ライトデータ６４がページ全体ではなく一部のライトデータであり、したがってライトデータ６４の書込み後に例えば空き領域６６を生じている。
【００７６】
このようなライトデータ６４のキャッシュメモリ２８に対する書込み後に、ＬＲＵなどによるライトバック条件が成立すると、キャッシュページ５８−１，５８−２，５８−３のデータの排他論理和から新パリティ（Ｐ）ｎｅｗを計算し、パリティバッファ領域５２に格納した後、新データ（Ｄ１）ｎｅｗ、キャッシュページ５８−２の一部の新データ（Ｄ２１）ｎｅｗ及び新パリティ（Ｐ）ｎｅｗを、対応するＲＡＩＤ５グループ５４のディスク装置２２−１，２２−２，２２−４にそれぞれ書き込む。
【００７７】
このとき、制御モジュール１８−１におけるデバイスインタフェースなどのエラーにより、例えばディスク装置２２−２とディスク装置２２−４に対する書込みが失敗したとすると、ディスク装置２２−１のみに新データ（Ｄ１）ｎｅｗが書き込まれ、ディスク装置２２−２は旧データ（Ｄ２）ｏｌｄ、ディスク装置２２−４は旧パリティ（Ｐ）ｏｌｄのままであり、ＲＡＩＤ５グループ５４のライトバック対象となったストライプのデータの整合性が崩れる。
【００７８】
また制御モジュール１８−１は、デバイスインタフェースなどの障害によりライトバック処理でエラーを起こしたため、制御を予備用として待機している制御モジュール１８−２に移し、制御モジュールの縮退が行われる。
【００７９】
図１１は制御モジュール１８−１がエラーとなって制御モジュール１８−２に制御を移した制御モジュール縮退状態であり、この状態で、更にＲＡＩＤ５グループ５４に設けているディスク装置２２−１が故障などにより異常を起こし、ＲＡＩＤ５グループ５４も縮退したとする。
【００８０】
ＲＡＩＤ５グループ５４のストライプに整合性が崩れ且つディスク装置の縮退が起きた場合、本発明のリカバリ処理部４６がエラー発生を判別し、制御を引き継いだ制御モジュール１８−２におけるキャッシュメモリ２８上に整合性が崩れたＲＡＩＤ５グループ５４のストライプに対応したキャッシュストライプ領域６０を確保する。
【００８１】
このエラー判別で確保したキャッシュストライプ領域６０は、新データ（Ｄ１）ｎｅｗを格納したキャッシュページ５８−１、一部に新データ（Ｄ２１）ｎｅｗを格納し残りを空き領域６６としたキャッシュページ５８−２、空きページとなるキャッシュページ５８−３で構成される。更にリカバリ処理部４６は、新パリティ（Ｐ）ｎｅｗを格納したパリティバッファ領域５２を同時に確保している。
【００８２】
次に図１２に示すように、リカバリ処理部４６は、キャッシュストライプ領域６０に存在する新データ（Ｄ１）ｎｅｗ、新データ（Ｄ２１）ｎｅｗ、パリティバッファ領域５２の新パリティ（Ｐ）ｎｅｗを用いて演算部６８で排他論理和計算を行い、空きページとなっているキャッシュページ５８−３に新データ（Ｄ３１）ｎｅｗをステージングする。
【００８３】
この新データ（Ｄ３１）ｎｅｗは、キャッシュページ５８−２に空き領域６４が存在しているため、同じサイズの空き領域７０を生ずる。このようにキャッシュストライプ領域６０で排他論理和計算により求めた新データがステージングできなかった空き領域６５，７０については、ＲＡＩＤ５グループ５４の対応するディスク装置２２−２，２２−３からデータを読み出してステージングする。
【００８４】
図１３は、空き領域６６，７０に対し、ディスク装置２２−２，２２−３から正常に旧データ（Ｄ２２）ｏｌｄ及び旧データ（Ｄ３２）ｏｌｄがステージングされたキャッシュストライプ領域６０の状態であり、この結果、キャッシュストライプ領域６０には整合性が崩れたＲＡＩＤ５グループ５４の対応するストライプに関する正しい全データが保持されることとなる。
【００８５】
この状態でリカバリ処理部４６は、新パリティ（Ｐ）ｎｅｗを格納していたパリティバッファ領域５２を開放し、確定したキャッシュストライプ領域６０を通常のキャッシュ領域と同様、キャッシュ制御部４２のホストからの入出力処理に対する制御に引き渡す。また、ディスク装置２２−１の修理交換などによりＲＡＩＤ５グループ５４の縮退が解除された後に、キャッシュストライプ領域６０についてＬＲＵ管理などによるライトバック条件が成立した場合には、通常のキャッシュ領域と同様にしてライトバック処理が行われることになる。
【００８６】
一方、図１２における空き領域６５，７０に対するディスク装置２２−２，２２−３からのステージングに失敗した場合、図１３の空き領域６６，７０に有効なデータは存在しないことから、この場合にはキャッシュストライプ領域６０に対しアクセス禁止領域の指定を行い、ピンド・ストライプ（Ｐｉｎｎｅｄ  Ｓｔｒｉｐｅ）としてキャッシュ制御部４２及びライトバック処理部で次のように扱うようにする。尚、この点は前記（１）〜（３）に示した同じ内容である。
【００８７】
（１）ホストからリード要求があった場合、キャッシュヒット時はヒットデータをリード応答し、キャッシュミスヒット時にはディスク装置２２−１〜２２−４からＲＡＩＤ５の冗長構成に基づくデータの復元、即ちリジェレーションリードを禁止したステージングを実行した後のキャッシュヒットでリード応答する。
【００８８】
（２）ホストからライト要求があった場合、ライトデータを対応する領域に書き込む。これは通常のキャッシュ制御と同じである。
【００８９】
（３）ＬＲＵ管理などによりキャッシュストライプ領域の書戻し要求が発生した場合、キャッシュストライプ領域の中の空き領域に、ディスク装置からＲＡＩＤ５の冗長構成に基づくデータの復元、即ちリジェレーションリードを禁止したステージングを実行してストライプ全体のデータを確保し、確保できた場合、キャッシュメモリ２８上にパリティバッファ領域５２を確保してストライプ全体のデータから新パリティデータを生成した後に、新データ及び新パリティを対応するディスク装置に書き込むバンドワイドライトを実行する。
【００９０】
このようにキャッシュストライプ領域６０の中にディスクからのステージングに失敗した空き領域６６，７０が存在したとしても、ホストからの空き領域６６，７０に対するリード要求に対しミスヒットとなった場合、整合性の崩れたＲＡＩＤ５グループ５４からの冗長構成に基づくデータの復元によるリジェネレーションリードを禁止したステージングが行われるため、リジェネレーションリードにより整合性の崩れたデータに基づく化けデータの発生を確実に防止することができる。
【００９１】
図１４は本発明によるリカバリ処理を含むライトバック処理のフローチャートである。図１４において、ＬＲＵなどによるライトバック条件が成立すると、このライトバック処理が実行される。ライトバック処理は、ステップＳ１でライトバック対象となるキャッシュメモリ上の新データを抽出した後、ステップＳ２で新データは対象ストライプの１ページ分か否かチェックする。
【００９２】
１ページ分の新データであった場合には、ステップＳ３でスモールライトをセットする。スモールライトにあっては、ステップＳ４でデータバッファ領域５０を確保し、ストライプを構成する新データ以外のページ領域についてディスク装置から旧データと旧パリティをステージングした後、ステップＳ５でパリティバッファ領域５２を確保し、新データ、旧データ、旧パリティから、排他論理和計算により新パリティを計算して格納した後、ステップＳ９で新データ及び新パリティを対応するディスク装置に書き込む。
【００９３】
一方、ステップＳ２で新データがストライプの複数ページ分のデータであった場合には、ステップＳ６に進み、バンドワイドライトをセットする。バンドワイドライトは、ステップＳ７で、もし空きページがあればデータバッファ領域５０を確保して旧データをディスク装置からステージングし、ストライプにつき全ページのデータをステージングした後、ステップＳ８でパリティバッファ領域５２を確保してストライプの全データから新パリティを計算して格納した後、ステップＳ９で新データ及び新パリティを対応するディスク装置に書き込む。
【００９４】
ステップＳ９におけるライトバック処理のディスク装置に対する書込みにつき、ステップＳ１０でエラーの有無をチェックしており、エラーがなければ、ステップＳ２０でパリティバッファ領域及びデータバッファ領域を開放して処理を終了する。
【００９５】
エラーが判別された場合には、ステップＳ１１に進み、２台以上のディスク装置のエラーによる不整合発生か否かチェックする。１台のディスク装置のエラーによる場合には、ステップＳ２１に進み、エラーディスクをＲＡＩＤ５の復元対象ディスクに設定した後、ステップＳ２２でパリティバッファ領域及びデータバッファ領域を開放して処理を終了する。この１台のディスク装置のエラーについては、ＲＡＩＤ５の冗長構成に基づくエラーディスクのデータの復元即ちリジェネレーションリードで対応することができる。
【００９６】
ステップＳ１１で２台以上のディスク装置のエラーによる不整合が判別された場合には、ステップＳ１２に進み、本発明によるリカバリ処理部４６がキャッシュメモリ上にエラーとなったストライプのキャッシュストライプ領域を配置して新データをステージングすると共に、そのときの新パリティを確保し、続いてステップＳ１３でキャッシュストライプ領域に空きページがあるか否かチェックする。
【００９７】
空きページがあった場合には、ステップＳ１４でキャッシュストライプ領域内の新データ及び新パリティから領域内の空きページの新データを計算してステージングする、いわゆるキャッシュ上でのステージングを行う。
【００９８】
続いてステップＳ１５でキャッシュストライプ領域のページ内に空があるか否かチェックする。ページ内に空きがあった場合には、ステップＳ１６で対応するディスク装置からページ内の空き領域にデータを読み出してステージングする。ステップＳ１７にあっては、ディスク装置からのステージング成功の有無をチェックしており、もしステージングに失敗した場合にはステップＳ１８に進み、キャッシュストライプ領域をアクセス制限領域即ちピンドストライプに指定する。最終的に、ステップＳ１９でパリティバッファ領域及びデータバッファ領域を開放し、一連の処理を終了する。
【００９９】
また本発明は、ＲＡＩＤ装置に設けたコンピュータ、即ち制御モジュールに設けたＣＰＵ２４により実行されるプログラムを提供するものであり、このプログラムは図１４のフローチャートに示す内容をもつ。
【０１００】
なお上記の実施形態にあっては、リカバリ処理部４６で処理を起動する２台以上のディスク装置のエラーによる不整合発生の状況として、常用している制御モジュールが異常を起こして予備の制御モジュール１８−２に縮退し、この制御モジュールの縮退状態でＲＡＩＤ５グループ５４を構成するディスク装置の１台が異常を起こして縮退した場合に、キャッシュ上にストライプに対応した全データを格納したキャッシュストライプ領域６０を確保してキャッシュ制御の対象としているが、これ以外のエラー状況で実質的に２台のディスク装置のエラーによる不整合発生と同じエラー状況が生じた場合についても、本発明によるリカバリ処理により対応することができる。
【０１０１】
また本発明は、その目的と利点を損なうことのない適宜の変形を含み、更に上記の実施形態に示した数値による限定は受けない。
【０１０２】
ここで本発明の特徴をまとめて列挙すると次の付記のようになる。
（付記）
（付記１）
キャッシュメモリ上のデータをページ領域単位に管理して上位装置からの記憶デバイスに対する入出力要求を処理するキャッシュ制御部と、
複数の記憶デバイス上のデータをそれぞれ前記ページ領域と同一サイズのストリップ領域単位に管理すると共に、同一アドレスをもつ複数のデータ用ストリップ領域と１つのパリティ用ストリップ領域をまとめてストライプ領域単位として管理し、前記ストライプ領域のアドレスが異なる毎に前記パリティ用ストリップ領域を配置する記憶デバイスを変化させるＲＡＩＤ５の冗長構成をとるＲＡＩＤ制御部と、
前記キャッシュメモリ上の新データを前記記憶デバイスに書戻す書戻し要求発生時に、前記キャッシュメモリ上にパリティバッファ領域を確保して新パリティを生成した後に、前記新データ及び新パリティを対応する記憶デバイスに書き込むライトバック処理部と、
前記ライトバック処理部による書込み時に、前記複数の記憶デバイスにＲＡＩＤ５の整合性が崩れるエラーが発生した場合、書戻し対象となった前記新データを含むストライプ全体のデータを格納したキャッシュストライプ領域を前記キャッシュメモリ上に確保して前記キャッシュ制御部に管理させるリカバリ処理部と、
を設けたことを特徴とする記憶装置。（１）
【０１０３】
（付記２）
付記１記載の記憶装置に於いて、前記リカバリ処理部は、前記ライトバック処理部による書き込みで２台以上の記憶デバイスにエラーが発生した場合、前記ＲＡＩＤ５の整合性が崩れるエラーが発生したと判定することを特徴とする記憶装置。（２）
【０１０４】
（付記３）
付記１記載の記憶装置に於いて、前記リカバリ処理部は、前記キャッシュストライプ領域を確保した後に、前記ライトバック処理部に前記新パリティを格納したパリティバッファ領域を開放させることを特徴とする記憶装置。（３）
【０１０５】
（付記４）
付記１記載の記憶装置に於いて、前記リカバリ処理部は、前記キャッシュストライプ領域の中に空き領域が存在する場合、同じ領域の新データ及び前記パリティバッファ領域の新パリティの排他論理和で求めた新データを前記空き領域にステージングすることを特徴とする記憶装置。（４）
【０１０６】
（付記５）
付記１記載の記憶装置に於いて、前記リカバリ処理部は、前記キャッシュストライプ領域の中に、同じ領域内の新データ及び前記パリティバッファ領域の新パリティの排他論理和で求めた新データがステージングされない空き領域が存在する場合、前記空き領域に前記記憶デバイスから読み出したデータをステージングすることを特徴とする記憶装置。（５）
【０１０７】
（付記６）
付記５記載の記憶装置に於いて、前記リカバリ処理部は、前記記憶デバイスから前記空き領域に対するデータのステージングに失敗した場合、前記キャッシュストライプ領域をアクセス制限領域に指定して前記キャッシュ制御部に管理させることを特徴とする記憶装置。
【０１０８】
（付記７）
付記６記載の記憶装置に於いて、前記キャッシュ制御部は、前記アクセス制限領域に指定された前記キャッシュストライプ領域に対し上位装置からリード要求があった場合、キャッシュヒット時はヒットデータをリード応答し、キャッシュミスヒット時には前記記憶デバイスからＲＡＩＤ５の冗長構成に基づくデータの復元を禁止したステージングを実行した後のキャッシュヒットでリード応答することを特徴とする記憶装置。
【０１０９】
（付記８）
付記７記載の記憶装置に於いて、前記キャッシュ制御部は、前記アクセス制限領域に指定された前記キャッシュストライプ領域に対し上位装置からライト要求があった場合、ライトデータを対応する領域に書き込むことを特徴とする記憶装置。
【０１１０】
（付記９）
付記７記載の記憶装置に於いて、前記ライトバック処理部は、前記記憶デバイスのエラーが解消された後の前記アクセス制限領域に指定された前記キャッシュストライプ領域の書戻し要求の発生時に、前記キャッシュストライプ領域の中の空き領域に、前記記憶デバイスからＲＡＩＤ５の冗長構成に基づくデータの復元を禁止したステージングを実行してストライプ全体のデータを確保できた場合、前記キャッシュメモリ上にパリティバッファ領域を確保して前記ストライプ全体のデータから新パリティデータを生成した後に、前記新データ及び新パリティを対応する記憶デバイスに書き込むことを特徴とする記憶装置。
【０１１１】
（付記１０）
キャッシュメモリ上のデータをページ領域単位に管理して上位装置からの記憶デバイスに対する入出力要求を処理するキャッシュ制御ステップと、
複数の記憶デバイス上のデータをそれぞれ前記ページ領域と同一サイズのストリップ領域単位に管理すると共に、同一アドレスをもつ複数のデータ用ストリップ領域と１つのパリティ用ストリップ領域をまとめてストライプ領域単位として管理し、前記ストライプ領域のアドレスが異なる毎に前記パリティ用ストリップ領域を配置する記憶デバイスを変化させるＲＡＩＤ５の冗長構成をとるＲＡＩＤ制御ステップと、
前記キャッシュメモリ上の新データを前記記憶デバイスに書戻す書戻し要求発生時に、前記キャッシュメモリ上にパリティバッファ領域を確保して新パリティを生成した後に、前記新データ及び新パリティを対応する記憶デバイスに書き込むライトバック処理ステップと、
前記ライトバック処理ステップによる書込み時に、前記複数の記憶デバイスにＲＡＩＤ５の整合性が崩れるエラーが発生した場合、書戻し対象となった前記新データを含むストライプ全体のデータを格納したキャッシュストライプ領域を前記キャッシュメモリ上に確保して前記キャッシュ制御ステップに管理させるエラーリカバリ処理ステップと、
を設けたことを特徴とする記憶装置の制御方法。
【０１１２】
（付記１１）
付記１０記載の記憶装置の制御方法に於いて、前記エラーリカバリ処理ステップは、前記ライトバック処理ステップによる書き込みで２台以上の記憶デバイスにエラーが発生した場合、前記ＲＡＩＤ５の整合性が崩れるエラーが発生したと判定することを特徴とする記憶装置の制御方法。
【０１１３】
（付記１２）
付記１０記載の記憶装置の制御方法に於いて、前記エラーリカバリ処理ステップは、前記キャッシュストライプ領域を確保した後に、前記ライトバック処理ステップに前記新パリティを格納したパリティバッファ領域を開放させることを特徴とする記憶装置の制御方法。
【０１１４】
（付記１３）
付記１０記載の記憶装置の制御方法に於いて、前記エラーリカバリ処理ステップは、前記キャッシュストライプ領域の中に空き領域が存在する場合、同じ領域の新データ及び前記パリティバッファ領域の新パリティの排他論理和で求めた新データを前記空き領域にステージングすることを特徴とする記憶装置の制御方法。
【０１１５】
（付記１４）
付記１０記載の記憶装置の制御方法に於いて、前記エラーリカバリ処理ステップは、前記キャッシュストライプ領域の中に、同じ領域内の新データ及び前記パリティバッファ領域の新パリティの排他論理和で求めた新データがステージングされない空き領域が存在する場合、前記空き領域に前記記憶デバイスから読み出したデータをステージングすることを特徴とする記憶装置の制御方法。
【０１１６】
（付記１５）
付記１４記載の記憶装置の制御方法に於いて、前記エラーリカバリ処理ステップは、前記記憶デバイスから前記空き領域に対するデータのステージングに失敗した場合、前記キャッシュストライプ領域をアクセス制限領域に指定して前記キャッシュ制御ステップに管理させることを特徴とする記憶装置の制御方法。
【０１１７】
（付記１６）
付記１５記載の記憶装置の制御方法に於いて、前記キャッシュ制御ステップは、前記アクセス制限領域に指定された前記キャッシュストライプ領域に対し上位装置からリード要求があった場合、キャッシュヒット時はヒットデータをリード応答し、キャッシュミスヒット時には前記記憶デバイスからＲＡＩＤ５の冗長構成に基づくデータの復元を禁止したステージングを実行した後のキャッシュヒットでリード応答することを特徴とする記憶装置の制御方法。
【０１１８】
（付記１７）
付記１６記載の記憶装置の制御方法に於いて、前記キャッシュ制御ステップは、前記アクセス制限領域に指定された前記キャッシュストライプ領域に対し上位装置からライト要求があった場合、ライトデータを対応する領域に書き込むことを特徴とする記憶装置の制御方法。
【０１１９】
（付記１８）
付記１６記載の記憶装置の制御方法に於いて、前記ライトバック処理ステップは、前記記憶デバイスのエラーが解消された後の前記アクセス制限領域に指定された前記キャッシュストライプ領域の書戻し要求の発生時に、前記キャッシュストライプ領域の中の空き領域に、前記記憶デバイスからＲＡＩＤ５の冗長構成に基づくデータの復元を禁止したステージングを実行してストライプ全体のデータを確保できた場合、前記キャッシュメモリ上にパリティバッファ領域を確保して前記ストライプ全体のデータから新パリティデータを生成した後に、前記新データ及び新パリティを対応する記憶デバイスに書き込むことを特徴とする記憶装置の制御方法。
【０１２０】
（付記１９）
記憶装置のコンピュータに、
キャッシュメモリ上のデータをページ領域単位に管理して上位装置からの記憶デバイスに対する入出力要求を処理するキャッシュ制御ステップと、
複数の記憶デバイス上のデータをそれぞれ前記ページ領域と同一サイズのストリップ領域単位に管理すると共に、同一アドレスをもつ複数のデータ用ストリップ領域と１つのパリティ用ストリップ領域をまとめてストライプ領域単位として管理し、前記ストライプ領域のアドレスが異なる毎に前記パリティ用ストリップ領域を配置する記憶デバイスを変化させるＲＡＩＤ５の冗長構成をとるＲＡＩＤ制御ステップと、
前記キャッシュメモリ上の新データを前記記憶デバイスに書戻す書戻し要求発生時に、前記キャッシュメモリ上にパリティバッファ領域を確保して新パリティを生成した後に、前記新データ及び新パリティを対応する記憶デバイスに書き込むライトバック処理ステップと、
前記ライトバック処理ステップによる書込み時に、前記複数の記憶デバイスにＲＡＩＤ５の整合性が崩れるエラーが発生した場合、書戻し対象となった前記新データを含むストライプ全体のデータを格納したキャッシュストライプ領域を前記キャッシュメモリ上に確保して前記キャッシュ制御ステップに管理させるエラーリカバリ処理ステップと、
を実行させることを特徴とするプログラム。
【０１２１】
（付記２０）
付記１９記載のプログラムに於いて、前記エラーリカバリ処理ステップは、前記ライトバック処理ステップによる書き込みで２台以上の記憶デバイスにエラーが発生した場合、前記ＲＡＩＤ５の整合性が崩れるエラーが発生したと判定することを特徴とするプログラム。
【図面の簡単な説明】
【０１２２】
【図１】本発明の原理説明図
【図２】本発明が適用されるＲＡＩＤ装置のハードウェア構成のブロック図
【図３】本発明が適用されるＲＡＩＤ装置の他のハードウェア構成のブロック図
【図４】本発明によるＲＡＩＤ装置の機能構成のブロック図
【図５】キャッシュページとディスク装置のストリップ領域及びストライプ領域の説明図
【図６】ライトバック処理の際のエラーでＲＡＩＤ５グループの整合が崩れた状態の説明図
【図７】図６のエラー状態でディスク装置が異常を起してＲＡＩＤ５グループが縮退した状態の説明図
【図８】キュッシュメモリ上に正しいデータ構成のキャッシュストライプ領域を確保する本発明のリカバリ処理の説明図
【図９】図８に続いてにパリティバッファ領域を開放した状態の説明図
【図１０】ホストからのライト要求を受けたキャッシュ領域のライトバックでＲＡＩＤ５グループの整合が崩れるエラーが発生した状態の説明図
【図１１】キュッシュメモリ上にキャッシュストライプ領域を確保する本発明のリカバリ処理の説明図
【図１２】キャッシュストライプ領域内の空きにデータステージングする本発明のリカバリ処理の説明図
【図１３】図１２に続いてパリティバッファ領域を開放した状態の説明図
【図１４】本発明のリカバリ処理を含むライトバック処理のフローチャート
【図１５】従来装置におけるキャッシュページの説明図
【図１６】従来のライトバック処理の説明図
【図１７】ライトバック処理でＲＡＩＤ５グループの整合性が崩れた状態の説明図
【図１８】ＲＡＩＤ５の整合性が崩れた状態でのホストリード要求で化けデータが発生する状態の説明図
【図１９】保存しているパリティを使用して整合性を回復する従来の書込み修正処理の説明図
【図２０】パリティの保存がない場合にＲＡＩＤ５のデータから整合性を回復する従来処理の説明図
【図２１】図２０で整合性を回復した後にキャッシュから新データをライトバックする処理の説明図
【符号の説明】
【０１２３】
１０：ＲＡＩＤ装置
１２：ホスト（メインフレーム系）
１４：ホスト（ＵＮＩＸ（Ｒ）／ＩＡサーバ系）
１５，２４：ＣＰＵ
１６−１，１６−２，２６：チャネルアダプタ
１８，１８−１〜１８−ｎ：制御モジュール
２０−１，２０−２：バックグラウンドルータ
２２：物理デバイス
２２−１〜２２−４：ディスク装置
２５：通信部
２８：キャッシュメモリ
３０−１〜３０−８：デバイスインタフェース
３２−１〜３２−４：フロントルータ
３４：リソース処理部
３６：キャッシュ処理部
３８：ＲＡＩＤ制御部
４０：コピー処理部
４２：キャッシュ制御部
４４：キャッシュ管理テーブル
４５：ライトバック処理部
４６：リカバリ処理部
４８：キャッシュ領域
５０：データバッファ領域
５２：パリティバッファ領域
５４：ＲＡＩＤ５グループ
５４−１〜５４−４：ストリップ領域
５６：ストライプ領域
５８，５８−１〜５８−３：キャッシュページ
６０：キャッシュストライプ領域
６２，６８：演算部
６４：ライトデータ
６５，６６，７０：空き領域
【図１】
2006252414.tif 000003
【図２】
2006252414.tif 000004
【図３】
2006252414.tif 000005
【図４】
2006252414.tif 000006
【図５】
2006252414.tif 000007
【図６】
2006252414.tif 000008
【図７】
2006252414.tif 000009
【図８】
2006252414.tif 000010
【図９】
2006252414.tif 000011
【図１０】
2006252414.tif 000012
【図１１】
2006252414.tif 000013
【図１２】
2006252414.tif 000014
【図１３】
2006252414.tif 000015
【図１４】
2006252414.tif 000016
【図１５】
2006252414.tif 000017
【図１６】
2006252414.tif 000018
【図１７】
2006252414.tif 000019
【図１８】
2006252414.tif 000020
【図１９】
2006252414.tif 000021
【図２０】
2006252414.tif 000022
【図２１】
2006252414.tif 000023
【手続補正書】
【提出日】平成17年6月20日(2005.6.20)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００３８
【補正方法】変更
【補正の内容】
【００３８】
図３は本発明が適用されるＲＡＩＤ装置の他のハードウェア構成のブロック図であり、図２の大型装置に対し規模の小さな小型あるいは中型装置とした場合を例にとっている。図３において、ＲＡＩＤ装置１０は、ＣＰＵ１５を備えたチャネルアダプタ１６、２重構成の制御モジュール１８−１，１８−２及び、少なくともＲＡＩＤ５の冗長構成をとるディスク装置２２−１〜２２−４を備えている。ここで制御モジュール１８−１は常用であり、制御モジュール１８−２は予備用であり、２重化による冗長構成をとっている。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００４１
【補正方法】変更
【補正の内容】
【００４１】
図４は本発明によるＲＡＩＤ装置の機能構成のブロック図である。図４において、ＲＡＩＤ装置１０の機能は、図３の制御モジュール１８−１に設けているＣＰＵ２４のプログラム制御により実現され、制御モジュール１８−１内に示すように、リソース処理部３４、キャッシュ処理部３６、ＲＡＩＤ制御部３８及びコピー処理部４０を構築している。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００７３
【補正方法】変更
【補正の内容】
【００７３】
またキャッシュストライプ領域６０には、該当するＲＡＩＤ５グループ５４のストライプに対応した正しい新データが全て確保されているため、上位装置からのリード要求に対しては必ずキャッシュヒットとなり、整合性が崩れているＲＡＩＤ５グループ５４のディスク装置２２−１〜２２−４からのステージングは行われないことから、整合性の崩れたストライプのデータをステージングしたり、障害ディスクのデータを他のディスクの排他論和から復元するリジェネレーションリードなどは一切行われることがなく、この結果、整合性が崩れたＲＡＩＤ５グループ５４のディスク装置からのステージングによるデータ化けを完全に防止することができる。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００８３
【補正方法】変更
【補正の内容】
【００８３】
この新データ（Ｄ３１）ｎｅｗは、キャッシュページ５８−２に空き領域６６が存在しているため、同じサイズの空き領域７０を生ずる。このようにキャッシュストライプ領域６０で排他論理和計算により求めた新データがステージングできなかった空き領域６５，７０については、ＲＡＩＤ５グループ５４の対応するディスク装置２２−２，２２−３からデータを読み出してステージングする。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００８６
【補正方法】変更
【補正の内容】
【００８６】
一方、図１２における空き領域６６，７０に対するディスク装置２２−２，２２−３からのステージングに失敗した場合、図１３の空き領域６６，７０に有効なデータは存在しないことから、この場合にはキャッシュストライプ領域６０に対しアクセス禁止領域の指定を行い、ピンド・ストライプ（Ｐｉｎｎｅｄ  Ｓｔｒｉｐｅ）としてキャッシュ制御部４２及びライトバック処理部で次のように扱うようにする。尚、この点は前記（１）〜（３）に示した同じ内容である。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１２２
【補正方法】変更
【補正の内容】
【０１２２】
【図１】本発明の原理説明図
【図２】本発明が適用されるＲＡＩＤ装置のハードウェア構成のブロック図
【図３】本発明が適用されるＲＡＩＤ装置の他のハードウェア構成のブロック図
【図４】本発明によるＲＡＩＤ装置の機能構成のブロック図
【図５】キャッシュページとディスク装置のストリップ領域及びストライプ領域の説明図
【図６】ライトバック処理の際のエラーでＲＡＩＤ５グループの整合が崩れた状態の説明図
【図７】図６のエラー状態でディスク装置が異常を起してＲＡＩＤ５グループが縮退した状態の説明図
【図８】キュッシュメモリ上に正しいデータ構成のキャッシュストライプ領域を確保する本発明のリカバリ処理の説明図
【図９】図８に続いてにパリティバッファ領域を開放した状態の説明図
【図１０】ホストからのライト要求を受けたキャッシュ領域のライトバックでＲＡＩＤ５グループの整合が崩れるエラーが発生した状態の説明図
【図１１】キュッシュメモリ上にキャッシュストライプ領域を確保する本発明のリカバリ処理の説明図
【図１２】キャッシュストライプ領域内の空きにデータステージングする本発明のリカバリ処理の説明図
【図１３】図１２に続いてパリティバッファ領域を開放した状態の説明図
【図１４】本発明のリカバリ処理を含むライトバック処理のフローチャート
【図１５】従来のライトバック処理の説明図
【図１６】従来装置におけるキャッシュページの説明図
【図１７】ライトバック処理でＲＡＩＤ５グループの整合性が崩れた状態の説明図
【図１８】ＲＡＩＤ５の整合性が崩れた状態でのホストリード要求で化けデータが発生する状態の説明図
【図１９】保存しているパリティを使用して整合性を回復する従来の書込み修正処理の説明図
【図２０】パリティの保存がない場合にＲＡＩＤ５のデータから整合性を回復する従来処理の説明図
【図２１】図２０で整合性を回復した後にキャッシュから新データをライトバックする処理の説明図
【手続補正７】
【補正対象書類名】図面
【補正対象項目名】図１２
【補正方法】変更
【補正の内容】
【図１２】
2006252414.tif 000024
【手続補正８】
【補正対象書類名】図面
【補正対象項目名】図１５
【補正方法】変更
【補正の内容】
【図１５】
2006252414.tif 000025
【手続補正９】
【補正対象書類名】図面
【補正対象項目名】図１６
【補正方法】変更
【補正の内容】
【図１６】
2006252414.tif 000026