JP4435705B2 - 記憶装置、その制御方法及びプログラム - Google Patents

記憶装置、その制御方法及びプログラム Download PDF

Info

Publication number
JP4435705B2
JP4435705B2 JP2005070963A JP2005070963A JP4435705B2 JP 4435705 B2 JP4435705 B2 JP 4435705B2 JP 2005070963 A JP2005070963 A JP 2005070963A JP 2005070963 A JP2005070963 A JP 2005070963A JP 4435705 B2 JP4435705 B2 JP 4435705B2
Authority
JP
Japan
Prior art keywords
area
data
cache
storage device
new
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005070963A
Other languages
English (en)
Other versions
JP2006252414A (ja
Inventor
和彦 池内
実希夫 伊藤
秀治郎 大黒谷
信哉 望月
秀夫 高橋
與志仁 紺田
靖丈 佐藤
弘昭 越智
司 牧野
典秀 久保田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2005070963A priority Critical patent/JP4435705B2/ja
Priority to US11/169,979 priority patent/US7370148B2/en
Priority to KR1020050065798A priority patent/KR100786153B1/ko
Priority to CNB2005100895440A priority patent/CN100385418C/zh
Publication of JP2006252414A publication Critical patent/JP2006252414A/ja
Application granted granted Critical
Publication of JP4435705B2 publication Critical patent/JP4435705B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1009Cache, i.e. caches used in RAID system with parity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1059Parity-single bit-RAID5, i.e. RAID 5 implementations

Description

本発明は、記憶デバイスに対する上位装置からの入出力要求をキャッシュメモリを介して処理するRAID構成の記憶装置、その制御方法及びプログラムに関し、特にキャッシュメモリ上で更新された最新のデータをRAID5の冗長構成をとる記憶デバイスにライトバックする記憶装置、その制御方法及びプログラムに関する。
従来、ホストからの入出力要求を処理するRAID装置にあっては、図15のように、RAID装置100の制御モジュール101内にキャッシュメモリ102を設け、キャッシュメモリ102上でホストからのRAID5グループ105を構成するディスク装置104−1〜104−4に対する入出力要求を処理するようにしている。
このようなRAID装置100のキャッシュデータはページ単位に管理されており、図16のように、キャッシュページ106は例えば66,560バイトを1ページとして管理している。
キャッシュページ106はホストのアクセス単位となる複数のブロック単位のユーザデータで構成され、1ブロックのユーザデータは512バイトであり、512バイト毎に8バイトのブロックチェックコード(BCC)が付加され、この520バイトのブロックを128ブロック単位で1ページとして管理し、このため1ページは520×128=66,560バイトとなる。
またキャッシュページ106を管理するためにキャッシュバンドルエレメント(CBE)と呼ばれるキャッシュ管理テーブルを用意する。キャッシュ管理テーブルには1ページごとに対応する管理レコードが存在し、管理レコードは論理ユニット番号LUN、論理ブロックアドレスLBA、1ブロックを1ビットで対応したダーティデータをダーティデータビットマップ等を保持している。このキャッシュ管理テーブルの1ページはRAIDグループを構成する各ディスク装置のストリップ領域のサイズと同一サイズとしている。
ここでRAID装置100の冗長構成としてRAID5を使用する場合、キャッシュメモリ102上にキャッシュデータを格納するキャッシュ領域108を設けると共に、キャッシュ領域108とは別にライトバック処理の際に新パリティ生成用の作業領域として旧データや旧パリティを格納するデータバッファ領域110や新パリティを格納するパリティバッファ領域112を設けている。
ライトバック処理は、例えばキャッシュ領域108に1ページデータとして存在する新データ(D2)newについてディスク装置104−2に対するライトバック要求が発生した場合、キャッシュメモリ102上にデータバッファ領域110とパリティバッファ領域112を確保してからライトバック処理を進める。ここで、新データ(D2)はディスク装置の1台に書き込むことから、このライトバック処理をスモールライトという。
スモールライトは、ディスク装置104−2から旧データ(D2)oldを読み出してデータバッファ領域110に格納すると共にディスク装置104−4から旧パリティ(P)oldを読み出して同じくデータバッファ領域110に格納する。続いて新データ(D2)new、旧データ(D2)old及び旧パリティ(P)oldの排他論理和(XOR)116を計算して新パリティ(P)newを求めてパリティバッファ領域112に格納する。最後に、新データ(D2)newと新パリティ(P)newをぞれぞれディスク装置104−2,104−4に書込んで処理を終了する。
また新データがディスク装置102−1〜102−3に対応して全て存在する場合(ストライプ領域の全データ)のライトバックはバンドワイドライトといわれ、バンドワイドライトでは、ディスク装置104−1〜104−3のストリップ領域に対応した全データの排他論理和として新パリティを計算し、ディスク装置104−1〜104−4に書込んで処理を終了する。いずれの場合も書き込みが完了で、データバッファ領域110およびパリティバッファ領域112が開放される。
ところで、このようなRAID5の冗長構成をとるRAID装置において、例えば図17に示すように、ライトバック処理で例えばディスク装置104−3,104−4の2台でエラーが発生した場合、ディスク装置104ー1〜104−4のストライプ領域につきRAID5によるデータの整合性が崩れてしまう障害が発生する。即ちライトバック処理の失敗により、ディスク装置104−2だけが新データ(D2)newとなり、ディスク装置104−3,104−4は旧データ(D3)oldと旧パリティ(P)oldのままとなる。
このように整合性が崩れた状態で、図18のように、更にディスク装置104−1が故障してRAID5グルーブが縮退して3台構成となった場合、ホスト118からのデータD2のリード要求に対しキャッシュメモリ102上ではミスヒットとなるため、ディスク装置104−1からステージングしようとするが、ディスク装置104−1は故障してRAID5グループ105から排除された縮退状態にあるため、正常なディスク装置104−2〜104−4のデータ及びパリティの排他論理和でデータD1を復元するリジェネレーションリード(Regenaration Read)を実行することになる。しかし、ディスク装置104−2〜104−4のデータ及びパリティは整合性が崩れているため、排他論理和により化けデータ(D?)が復元される危険がある。
ところで、RAID装置は、信頼性を確保するためにキャッシュメモリを備えた制御モジュールが2重化されており、ライトバック処理の際に生成されたパリティを予備側の制御モジュールに保存している。このため図18のようにライトバック処理におけるエラーでディスク装置の整合が崩れた状態でディスク装置が故障して縮退したような場合には、図19のように、予備側の制御モジュール101−2に保存している新パリティ(P)newを制御モジュール101−1が取得し、キャッシュメモリ102上の新データ(D2)new、D(3)newと共に対応するディスク装置104−2〜104−3に書き込む書込修正(Write Correct)を行うことで、ディスク装置104−1〜104−4の整合性を回復させることができる。
特開平05−303528号公報 特開平08−115169号公報
しかしながら、このような従来のキャッシュ制御処理にあっては、制御モジュールに障害が発生して予備用の制御モジュールに処理を移す縮退が発生した場合、パリティを保存することができないため、RAIDグループのディスク装置の整合性が崩れた場合、図19のようなパリティを使用した書込修正による整合性の回復できない。
そこで図20のように、制御モジュール101−1のエラーで処理を引き継いだ制御モジュール101−2は、キャッシュメモリ102上にパリティを取得できないため、ディスク装置104−1〜104−3のデータの排他論理和によりパリティ(P)を再計算(Recalculate)してディスク装置104−3に書き込むことで、ディスク装置104−1〜104−4の整合性を回復し、次に図21のように、キャッシュメモリ102上に残っている新データ(D2)new、(D3)newから新パリティ(P)newを計算した後、ディスク装置104−2〜104−4に書き込む通常のライトバックを行う。
しかし、図21のような制御モジュールが縮退した状態で、更にディスク装置104−1が故障してRAID5グループ105が縮退した場合、縮退したRAID5グループ105では図20のようにパリティ再計算ができないため、整合性を回復することができず、RAID5グループのストライプ全体に対するアクセスを禁止しない限り、データ化けの危険性が発生するという問題がある。
本発明は、RAID5グループの整合性が崩れ且つ記憶デバイスの縮退が起きた場合のアクセスで発生したエラーをリカバリしてアクセスに対しデータの信頼性を高める記憶装置、その制御方法及びプログラムを提供することを目的とする。
図1は本発明の原理説明図である。本発明は記憶装置を提供する。本発明の記憶装置は、
キャッシュメモリ28上のデータをページ領域単位に管理して上位装置からの記憶デバイスに対する入出力要求を処理するキャッシュ制御部42と、
複数の記憶デバイス上のデータをそれぞれページ領域と同一サイズのストリップ領域単位に管理すると共に、同一アドレスをもつ複数のデータ用ストリップ領域と1つのパリティ用ストリップ領域をまとめてストライプ領域単位として管理し、ストライプ領域のアドレスが異なる毎にパリティ用ストリップ領域を配置する記憶デバイスを変化させるRAID5の冗長構成をとるRAID制御部38と、
キャッシュメモリ28上の新データを記憶デバイスに書戻す書戻し要求発生時に、キャッシュメモリ28上にパリティバッファ領域52を確保して新パリティを生成した後に、新データ及び新パリティを対応する記憶デバイスに書き込むライトバック処理部45と、
ライトバック処理部45による書込み時に、複数の記憶デバイスにRAID5の整合性が崩れるエラーが発生した場合、書戻し対象となった新データを含むストライプ全体のデータを格納したキャッシュストライプ領域をキャッシュメモリ上に確保してキャッシュ制御部に管理させるリカバリ処理部46と、
を設けたことを特徴とする。
ここで、リカバリ処理部は、ライトバック処理部による書き込みで2台以上の記憶デバイスにエラーが発生した場合、RAID5の整合性が崩れるエラーが発生したと判定する。
リカバリ処理部は、キャッシュストライプ領域を確保した後に、ライトバック処理部に新パリティを格納したパリティバッファ領域を開放させる。
リカバリ処理部は、キャッシュストライプ領域の中に空き領域が存在する場合、同じ領域の新データ及びパリティバッファ領域の新パリティの排他論理和で求めた新データを空き領域にステージングする。
リカバリ処理部は、キャッシュストライプ領域の中に、同じ領域内の新データ及びパリティバッファ領域の新パリティの排他論理和で求めた新データがステージングされない空き領域が存在する場合、空き領域に記憶デバイスから読み出したデータをステージングする。
リカバリ処理部は、記憶デバイスから空き領域に対するデータのステージングに失敗した場合、キャッシュストライプ領域をアクセス制限領域(ピンド・ストライプ Pinned Stripe)に指定してキャッシュ制御部に管理させる。
キャッシュ制御部は、アクセス制限領域に指定されたキャッシュストライプ領域に対し上位装置からリード要求があった場合、キャッシュヒット時はヒットデータをリード応答し、キャッシュミスヒット時には記憶デバイスからRAID5の冗長構成に基づくデータの復元(リジェネレーションリード Regeneration Raed)を禁止したステージングを実行した後のキャッシュヒットでリード応答する。
キャッシュ制御部は、アクセス制限領域に指定されたキャッシュストライプ領域に対し上位装置からライト要求があった場合、ライトデータを対応する領域に書き込む。
ライトバック処理部は、記憶デバイスのエラーが解消された後のアクセス制限領域に指定されたキャッシュストライプ領域の書戻し要求の発生時に、キャッシュストライプ領域の中の空き領域に、記憶デバイスからRAID5の冗長構成に基づくデータの復元を禁止したステージングを実行してストライプ全体のデータを確保できた場合、キャッシュメモリ上にパリティバッファ領域を確保してストライプ全体のデータから新パリティデータを生成した後に、新データ及び新パリティを対応する記憶デバイスに書き込む処理(バンドワイドライト)を行う。
本発明は記憶装置の制御方法を提供する。本発明による記憶装置の制御方法は、
キャッシュメモリ上のデータをページ領域単位に管理して上位装置からの記憶デバイスに対する入出力要求を処理するキャッシュ制御ステップと、
複数の記憶デバイス上のデータをそれぞれページ領域と同一サイズのストリップ領域単位に管理すると共に、同一アドレスをもつ複数のデータ用ストリップ領域と1つのパリティ用ストリップ領域をまとめてストライプ領域単位として管理し、ストライプ領域のアドレスが異なる毎にパリティ用ストリップ領域を配置する記憶デバイスを変化させるRAID5の冗長構成をとるRAID制御ステップと、
キャッシュメモリ上の新データを記憶デバイスに書戻す書戻し要求発生時に、キャッシュメモリ上にパリティバッファ領域を確保して新パリティを生成した後に、新データ及び新パリティを対応する記憶デバイスに書き込むライトバック処理ステップと、
ライトバック処理ステップによる書込み時に、複数の記憶デバイスにRAID5の整合性が崩れるエラーが発生した場合、書戻し対象となった新データを含むストライプ全体のデータを格納したキャッシュストライプ領域をキャッシュメモリ上に確保してキャッシュ制御ステップに管理させるエラーリカバリ処理ステップと、
を設けたことを特徴とする。
本発明は、記憶装置のコンピュータにより実行されるプログラムを提供する。本発明のプログラムは、記憶装置のコンピュータに、
キャッシュメモリ上のデータをページ領域単位に管理して上位装置からの記憶デバイスに対する入出力要求を処理するキャッシュ制御ステップと、
複数の記憶デバイス上のデータをそれぞれページ領域と同一サイズのストリップ領域単位に管理すると共に、同一アドレスをもつ複数のデータ用ストリップ領域と1つのパリティ用ストリップ領域をまとめてストライプ領域単位として管理し、ストライプ領域のアドレスが異なる毎にパリティ用ストリップ領域を配置する記憶デバイスを変化させるRAID5の冗長構成をとるRAID制御ステップと、
キャッシュメモリ上の新データを記憶デバイスに書戻す書戻し要求発生時に、キャッシュメモリ上にパリティバッファ領域を確保して新パリティを生成した後に、新データ及び新パリティを対応する記憶デバイスに書き込むライトバック処理ステップと、
ライトバック処理ステップによる書込み時に、複数の記憶デバイスにRAID5の整合性が崩れるエラーが発生した場合、書戻し対象となった新データを含むストライプ全体のデータを格納したキャッシュストライプ領域をキャッシュメモリ上に確保してキャッシュ制御ステップに管理させるエラーリカバリ処理ステップと、
を実行させることを特徴とする。
なお、本発明における記憶装置の制御方法及びプログラムの詳細は、本発明の記憶装置の場合と基本的に同じになる。
本発明によれば、RAID5の冗長構成をもつRAID装置のライトバック処理で記憶デバイスのストライプの整合性を崩すエラーが発生し、更に故障などにより記憶デバイスも縮退した場合には、パリティバッファ領域のパリティを開放する前に、キャッシュメモリ上に書戻し対象となった新データを含むストライプ全体の正しいデータをもつキャッシュストライプ領域を確保することで、上位装置からのアクセスに対しRAID5の整合性が崩れた状態での冗長構成に基づく故障デバイスのデータ復元によるデータ化けを未然に防止し、RAID装置のエラーリカバリ性能を向上してデータ保護の信頼性を高めることができる。
またキャッシュストライプ領域に部分的な空きがある場合には、これをアクセス制限領域に指定することで、空き領域に対する上位装置からのリード要求でミスヒットとなって記憶デバイスからステージングする場合、RAID5の冗長構成に基づくデータ復元によるリードを禁止したステージングを行わせることで、RAID5の整合性が崩れによる化けデータの発生を確実に防止できる。
図2は本発明が適用されるRAID装置のハードウェア構成のブロック図であり、大型の装置構成を例にとっている。図2において、RAID装置10に対してはメインフレーム系ホスト12とUNIX(R)/IAサーバ系のホスト14が設けられている。
RAID装置10内には、CPU15を備えたチャネルアダプタ16−1,16−2、制御モジュール18−1〜18−n、バックグラウンドルータ20−1,20−2、記憶デバイスとして機能するRAID5の冗長構成をとるハードディスクドライブなどのディスク装置22−1〜22−4、更にフロントルータ32−1,32−2を設けている。
RAID装置10は最大構成で制御モジュールを8台実装することができる。チャネルアダプタ16−1,16−2はCPU15を備え、フレームワーク系のホスト12を制御モジュール18−1に接続している。またチャネルアダプタ26−1,26−2は、UNIX(R)/IAサーバ系のホスト14を制御モジュール18−1に接続している。
チャネルアダプタ16−1,16−2及びチャネルアダプタ26−1,26−2は、制御モジュール18−1に設けた通信部25からフロントルータ32−1,32−2を介して、他の制御モジュール18−2(図示せず)〜18−nに接続される。
制御モジュール18−1〜18−nには、制御モジュール18−1に代表して示すように、CPU24、通信部25、キャッシュメモリ28及びデバイスインタフェース30−1,30−2が設けられている。
CPU24には、ホスト12またはホスト14からのライトコマンドまたはリードコマンドに対する入出力要求をキャッシュメモリ28上で処理して応答する入出力処理機能に加え、キャッシュメモリ28の制御と管理、更にキャッシュメモリ28からバックグラウンドルータ20−1,20−2を介して、ディスク装置22−1〜22−4に対するキャッシュデータのライトバック、及びディスク装置22−1〜22−4からのディスクデータのステージングなどをプログラム制御により行っている。
フロントルータ32−1,32−2は、制御モジュール18−1に対し他の制御モジュール18−2(図示せず)〜18−nを接続し、制御の多重化を図っている。またバックグラウンドルータ20−1,20−2に対しては制御モジュール18−1〜18−nがそれぞれ接続され、制御モジュール側のCPU24によるRAID制御によるデータ入出力処理を行っている。ここで、n台の制御モジュール18−1〜18−nの内の1台が予備用の制御モジュールに割り当てられている。
図3は本発明が適用されるRAID装置の他のハードウェア構成のブロック図であり、図2の大型装置に対し規模の小さな小型あるいは中型装置とした場合を例にとっている。図3において、RAID装置10は、CPU15を備えたチャネルアダプタ16、2重構成の制御モジュール18−1,18−2及び、少なくともRAID5の冗長構成をとるディスク装置22−1〜22−4を備えている。ここで制御モジュール18−1は常用であり、制御モジュール18−は予備用であり、2重化による冗長構成をとっている。
制御モジュール18−1,18−2には、制御モジュール18−1に代表して示すように、CPU24、通信部25、キャッシュメモリ28及びデバイスインタフェース30−1,30−2が設けられている。またUNIX(R)/IAサーバ系のホスト14は、チャネルアダプタ26により制御モジュール18−1に接続される。
この小型及び中型に対応した図3のRAID装置10は、図2のRAID装置10からバックグラウンドルータ20−1,20−2及びフロントルータ32−1,32−2を除いた規模の小さな構成であり、それ以外の構成は基本的に図2と同じである。
図4は本発明によるRAID装置の機能構成のブロック図である。図4において、RAID装置10の機能は、図の制御モジュール18−1に設けているCPU24のプログラム制御により実現され、制御モジュール18−1内に示すように、リソース処理部34、キャッシュ処理部36、RAID制御部38及びコピー処理部40を構築している。
キャッシュ処理部36には、キャッシュ制御部42、キャッシュ管理テーブル44、ライトバック処理部45、リカバリ処理部46、更にキャッシュメモリ28が設けられている。
キャッシュメモリ28には、ホスト12またはホスト14からのライト要求を受けた際に配置されてデータを書き込むキャッシュ領域48、キャッシュ領域48のキャッシュデータを物理デバイス22で示すRAID5グループ54のディスク装置に対し書き込むライトバック処理の際に配置されるデータバッファ領域50及びパリティバッファ領域52が設けられる。
キャッシュ制御部42はキャッシュメモリ28上のデータをページ領域単位に管理し、ホスト12またはホスト14の複数のディスク装置でRAIDグループを構成した物理デバイス22に対する入出力要求を処理する。
即ちキャッシュ制御部42は、図5に示すように、キャッシュページ58としてホスト側のアクセス単位である512バイトのユーザデータと8バイトのBCCで構成される520バイトのブロックデータを128ブロックを備えた66,560バイトで1ページを構成している。
このようなキャッシュメモリ28上のキャッシュページ58は、キャッシュ管理テーブル44にページごとに記録されて管理されており、キャッシュ管理テーブル44におけるレコードは、論理ユニット番号(LUN)、論理ブロックアドレス(LBA)、ブロックが新データであることを示すことをビットで表わしたダーティデータビットマップ(128ビット)などで構成されている。
再び図4を参照するに、RAID制御部38は複数のディスク装置でRAID5グループ54を構成する物理デバイス22に対し、本発明にあってはRAID5の冗長構成によるRAID制御を行う。
即ちRAID制御部38は、図5のディスク装置22−1〜22−4に示すように、ディスク装置22−1〜22−4上のデータを、それぞれキャッシュメモリ28におけるキャッシュページ58と同一サイズのストリップ領域54−1,54−2,54−3,54−4として管理すると共に、同一アドレスを持つ複数のストリップ領域54−1〜54−4をまとめて、ストライプ領域56として管理している。
RAID5の冗長構成の場合、例えばストライプ領域56を例にとると、ディスク装置22−1〜22−3のストリップ領域54−1〜54−3にデータD1,D2,D3が格納され、残りのディスク装置22−4のストリップ領域54−4にパリティPが格納されている。RAID5の冗長構成の場合、ストライプ領域56のアドレスが異なるごとにパリティPを格納するディスクの位置が変化する。
再び図4を参照するに、ライトバック処理部45は、キャッシュメモリ28上の新データ(ダーティデータ)をディスク装置22−1〜22−4に書戻す書戻し要求発生時に、キャッシュメモリ28上にパリティバッファ領域52を確保して新パリティを生成した後に、新データ及び新パリティを対応するディクス装置に書き込む。
リカバリ処理部46は、ライトバック処理部45による書込み時に、RAID5グループ54の整合性が崩れるエラーが発生した場合、書戻し対象となった新データを含むストライプ全体のデータを格納したキャッシュストライプ領域をキャッシュメモリ28上に確保してキャッシュ制御部42に管理させる。また、この時、ライトバック処理部45に新パリティを格納したパリティバッファ領域52を開放させる。
ここで、リカバリ処理部46は、ライトバック処理部45による書き込みで2台以上の記憶デバイスにエラーが発生した場合、RAID5グループ54の整合性が崩れるエラーが発生したと判定する。整合性が崩れるエラーは、例えば制御モジュール18−1のエラーによりライトバック処理でディスク装置の書込みに失敗した後(制御モジュールの縮退)に、ディスク装置が故障等により異常となった場合(RAID5の縮退)である。
リカバリ処理部46がキャッシュ上に確保するキャッシュストライプ領域は、RAID5グループの整合性が崩れたストライプ領域全体の正しいデータをキャッシュ上に保持するものであることから、空きページが存在する場合には、同じ領域の新データ及びパリティバッファ領域52の新パリティの排他論理和で求めた新データを空きページ領域にステージングする。
この場合、空き領域は必ずしもページ単位とはならないため、排他論理和で求めた新データをステージングしても空き領域が存在する場合がある。この場合には、空き領域にディスク装置から読み出したデータをステージングする。
更に、キャッシュストライプ領域の空き領域に対するディスク装置からのデータのステージングに失敗した場合、このキャッシュストライプ領域をピンド・ストライプ(Pinned Stripe)となるアクセス制限領域に指定してキャッシュ制御部42に管理させる。
アクセス制限領域に指定されたキャッシュストライプ領域に対するキャッシュ制御部42及びライトバック処理部45のアクセス制限を伴う処理は次のようになる。
(1)キャッシュ制御部42は、ホストからリード要求があった場合、キャッシュヒット時はヒットデータをリード応答し、キャッシュミスヒット時にはディスク装置22−1〜22−4からRAID5の冗長構成に基づくデータの復元、即ちリジェレーションリードを禁止したステージングを実行した後のキャッシュヒットでリード応答する。
(2)キャッシュ制御部42は、ホストからライト要求があった場合、ライトデータを対応する領域に書き込む。これは通常のキャッシュ制御と同じである。
(3)ライトバック処理部45は、LRU管理などによりキャッシュストライプ領域の書戻し要求が発生した場合、キャッシュストライプ領域の中の空き領域に、ディスク装置からRAID5の冗長構成に基づくデータの復元、即ちリジェレーションリードを禁止したステージングを実行してストライプ全体のデータを確保し、確保できた場合、キャッシュメモリ28上にパリティバッファ領域52を確保してストライプ全体のデータから新パリティデータを生成した後に、新データ及び新パリティを対応するディスク装置に書き込むバンドワイドライトを実行する。
次に本発明のリカバリ処理部46による処理を図3の制御モジュールを2重化した場合を例にとって具体的に説明する。図6はライトバック処理の際に発生したエラーでRAID5グループの整合性が崩れた状態の説明図である。
図6において、制御モジュール18−1のキャッシュメモリ28上に管理している、あるストライプに対応したキャッシュページ58−2,58−3の新データ(D2)new,(D3)newがライトバック対象となった場合、データバッファ領域50をキャッシュメモリ28上に確保し、ディスク装置22−1から新データ(D2)new、(D3)newと同じストライプのアドレスを持つ旧データ(D1)oldを読み出してステージングした後、パリティバッファ領域52を確保する。
次に旧データ(D1)old、新データ(D2)new及び新データ(D3)newの排他論理和を計算して、新パリティ(P)newを求め、これをパリティバッファ領域52に格納する。そして、新データ(D2)new、新データ(D3)new及び新パリティ(P)newを、それぞれ対応するディスク装置22−2,22−3,22−4に書き込む処理を実行する。
しかしながら、このようなライトバック処理の際に、例えば制御モジュール18−1における図3に示したデバイスインタフェース30−1などのエラーによりディスク装置22−3,22−4に対する書込みに失敗すると、ディスク装置22−2のみが新データ(D2)newに書き換えられ、ディスク装置22−3,22−4は旧データ(D3)old及び旧パリティ(P1)oldのままであるため、RAID5グループ54においてライトバック対象となったストライプの整合性が崩れる。
一方、制御モジュール18−1のエラーにより、例えば予備用として図3に示した制御モジュール18−2が存在していた場合、キャッシュ制御は制御モジュール18−1から制御モジュール18−2に移され、制御モジュールは縮退することになる。
図7は制御モジュール18−1のエラーで予備用として設けていた制御モジュール18−2に制御が移された後の制御モジュール縮退状態であり、この状態でRAID5グループ54に設けているディスク装置22−1が故障などの異常を起こしてRAID5グループ54が縮退した状態である。
RAID5グループ54の整合性が崩れた状態で、更にその内の1台であるディスク装置22−1が異常を起こして縮退した場合、本発明にあっては、制御モジュール18−2のキャッシュメモリ28上にストライプ領域の全データ、即ち3ページ分のキャッシュページ58−1,58−2,58−3で構成されるキャッシュストライプ領域60を確保し、キャッシュページ58−2,58−3にはライトバック対象となった新データ(D2)newと新データ(D3)newを格納する。また、このときパリティバッファ領域52に格納している新パリティ(P)newは開放せずに保持する。
次にリカバリ処理部46は、図8のように、キャッシュストライプ領域60に格納している新データ(D2)new及び新データ(D3)new、及びパリティバッファ領域52に格納している新パリティ(P)newに基づき演算部62で排他論理和計算を行い、異常を起こしたディスク22−1に対応した空きページとなるキャッシュページ58−1に新データ(D1)newをステージングする。
これによってキャッシュメモリ28に確保したキャッシュストライプ領域60には、RAID5グループ54における整合性が崩れたストライプの全データが新データ(ダーティデータ)、即ち正しいデータとして確保できる。
このようにしてキャッシュメモリ28上に整合性の崩れたRAID5グループ54におけるストライプ領域全体の正しいデータを格納したキャッシュストライプ領域60が確保できたならば、図9に示すように、リカバリ処理部46はライトバック処理部45に対し新パリティ(P)newを格納しているパリティバッファ領域52の開放を行わせる。
その結果、キャッシュメモリ28上には整合性が崩れたRAID5グループ54におけるストライプに対応して正しいデータが格納されたキャッシュストライプ領域60が確保され、このキャッシュストライプ領域60に対しキャッシュ制御部42がホストからのアクセスに対する処理を実行し、またLRUなどによるライトバック条件が成立した際にライトバック処理部45がライトバック処理を実行することになる。
もちろん、ライトバック処理部45によるライトバックは、RAID5グループ54において異常を起こしているディスク装置22−1が正常なディスク装置に交換されてエラーが回復した後のLRU条件の成立時などに行われることになる。
また、この場合、キャッシュストライプ領域60には全て新しいデータが確保されており、空き領域がないことから、アクセス制限は行われず、通常のキャッシュ領域と全く同様にホストからの入出力要求に対するキャッシュ制御を行う。
またキャッシュストライプ領域60には、該当するRAID5グループ54のストライプに対応した正しい新データが全て確保されているため、上位装置からのリード要求に対しては必ずキャッシュヒットとなり、整合性が崩れているRAID5グループ54のディスク装置22−1〜22−4からのステージングは行われないことから、整合性の崩れたストライプのデータをステージングしたり、障害ディスクのデータを他のディスクの排他論から復元するリジェネレーションリードなどは一切行われることがなく、この結果、整合性が崩れたRAID5グループ54のディスク装置からのステージングによるデータ化けを完全に防止することができる。
次に、リカバリ処理部によってキャッシュメモリ上に確保されたキャッシュストライプ領域に空き領域が存在する場合の処理を説明する。図10はホストからのライト要求を受けたキャッシュ領域のライトバックでRAID5グループの整合性が崩れるエラーが発生した状態の説明図である。
図10において、制御モジュール18−1が常用として動作しており、ホストからライトデータ64によるライト要求を受けた場合、キャッシュメモリ28上で管理しているキャッシュページ58−1,58−2の旧データに対しライトデータ64を書き込んで、新データ(D1)new及び新データ(D2)newとする。ここでキャッシュページ58−2については、ライトデータ64がページ全体ではなく一部のライトデータであり、したがってライトデータ64の書込み後に例えば空き領域66を生じている。
このようなライトデータ64のキャッシュメモリ28に対する書込み後に、LRUなどによるライトバック条件が成立すると、キャッシュページ58−1,58−2,58−3のデータの排他論理和から新パリティ(P)newを計算し、パリティバッファ領域52に格納した後、新データ(D1)new、キャッシュページ58−2の一部の新データ(D21)new及び新パリティ(P)newを、対応するRAID5グループ54のディスク装置22−1,22−2,22−4にそれぞれ書き込む。
このとき、制御モジュール18−1におけるデバイスインタフェースなどのエラーにより、例えばディスク装置22−2とディスク装置22−4に対する書込みが失敗したとすると、ディスク装置22−1のみに新データ(D1)newが書き込まれ、ディスク装置22−2は旧データ(D2)old、ディスク装置22−4は旧パリティ(P)oldのままであり、RAID5グループ54のライトバック対象となったストライプのデータの整合性が崩れる。
また制御モジュール18−1は、デバイスインタフェースなどの障害によりライトバック処理でエラーを起こしたため、制御を予備用として待機している制御モジュール18−2に移し、制御モジュールの縮退が行われる。
図11は制御モジュール18−1がエラーとなって制御モジュール18−2に制御を移した制御モジュール縮退状態であり、この状態で、更にRAID5グループ54に設けているディスク装置22−1が故障などにより異常を起こし、RAID5グループ54も縮退したとする。
RAID5グループ54のストライプに整合性が崩れ且つディスク装置の縮退が起きた場合、本発明のリカバリ処理部46がエラー発生を判別し、制御を引き継いだ制御モジュール18−2におけるキャッシュメモリ28上に整合性が崩れたRAID5グループ54のストライプに対応したキャッシュストライプ領域60を確保する。
このエラー判別で確保したキャッシュストライプ領域60は、新データ(D1)newを格納したキャッシュページ58−1、一部に新データ(D21)newを格納し残りを空き領域66としたキャッシュページ58−2、空きページとなるキャッシュページ58−3で構成される。更にリカバリ処理部46は、新パリティ(P)newを格納したパリティバッファ領域52を同時に確保している。
次に図12に示すように、リカバリ処理部46は、キャッシュストライプ領域60に存在する新データ(D1)new、新データ(D21)new、パリティバッファ領域52の新パリティ(P)newを用いて演算部68で排他論理和計算を行い、空きページとなっているキャッシュページ58−3に新データ(D31)newをステージングする。
この新データ(D31)newは、キャッシュページ58−2に空き領域66が存在しているため、同じサイズの空き領域70を生ずる。このようにキャッシュストライプ領域60で排他論理和計算により求めた新データがステージングできなかった空き領域65,70については、RAID5グループ54の対応するディスク装置22−2,22−3からデータを読み出してステージングする。
図13は、空き領域66,70に対し、ディスク装置22−2,22−3から正常に旧データ(D22)old及び旧データ(D32)oldがステージングされたキャッシュストライプ領域60の状態であり、この結果、キャッシュストライプ領域60には整合性が崩れたRAID5グループ54の対応するストライプに関する正しい全データが保持されることとなる。
この状態でリカバリ処理部46は、新パリティ(P)newを格納していたパリティバッファ領域52を開放し、確定したキャッシュストライプ領域60を通常のキャッシュ領域と同様、キャッシュ制御部42のホストからの入出力処理に対する制御に引き渡す。また、ディスク装置22−1の修理交換などによりRAID5グループ54の縮退が解除された後に、キャッシュストライプ領域60についてLRU管理などによるライトバック条件が成立した場合には、通常のキャッシュ領域と同様にしてライトバック処理が行われることになる。
一方、図12における空き領域66,70に対するディスク装置22−2,22−3からのステージングに失敗した場合、図13の空き領域66,70に有効なデータは存在しないことから、この場合にはキャッシュストライプ領域60に対しアクセス禁止領域の指定を行い、ピンド・ストライプ(Pinned Stripe)としてキャッシュ制御部42及びライトバック処理部で次のように扱うようにする。尚、この点は前記(1)〜(3)に示した同じ内容である。
(1)ホストからリード要求があった場合、キャッシュヒット時はヒットデータをリード応答し、キャッシュミスヒット時にはディスク装置22−1〜22−4からRAID5の冗長構成に基づくデータの復元、即ちリジェレーションリードを禁止したステージングを実行した後のキャッシュヒットでリード応答する。
(2)ホストからライト要求があった場合、ライトデータを対応する領域に書き込む。これは通常のキャッシュ制御と同じである。
(3)LRU管理などによりキャッシュストライプ領域の書戻し要求が発生した場合、キャッシュストライプ領域の中の空き領域に、ディスク装置からRAID5の冗長構成に基づくデータの復元、即ちリジェレーションリードを禁止したステージングを実行してストライプ全体のデータを確保し、確保できた場合、キャッシュメモリ28上にパリティバッファ領域52を確保してストライプ全体のデータから新パリティデータを生成した後に、新データ及び新パリティを対応するディスク装置に書き込むバンドワイドライトを実行する。
このようにキャッシュストライプ領域60の中にディスクからのステージングに失敗した空き領域66,70が存在したとしても、ホストからの空き領域66,70に対するリード要求に対しミスヒットとなった場合、整合性の崩れたRAID5グループ54からの冗長構成に基づくデータの復元によるリジェネレーションリードを禁止したステージングが行われるため、リジェネレーションリードにより整合性の崩れたデータに基づく化けデータの発生を確実に防止することができる。
図14は本発明によるリカバリ処理を含むライトバック処理のフローチャートである。図14において、LRUなどによるライトバック条件が成立すると、このライトバック処理が実行される。ライトバック処理は、ステップS1でライトバック対象となるキャッシュメモリ上の新データを抽出した後、ステップS2で新データは対象ストライプの1ページ分か否かチェックする。
1ページ分の新データであった場合には、ステップS3でスモールライトをセットする。スモールライトにあっては、ステップS4でデータバッファ領域50を確保し、ストライプを構成する新データ以外のページ領域についてディスク装置から旧データと旧パリティをステージングした後、ステップS5でパリティバッファ領域52を確保し、新データ、旧データ、旧パリティから、排他論理和計算により新パリティを計算して格納した後、ステップS9で新データ及び新パリティを対応するディスク装置に書き込む。
一方、ステップS2で新データがストライプの複数ページ分のデータであった場合には、ステップS6に進み、バンドワイドライトをセットする。バンドワイドライトは、ステップS7で、もし空きページがあればデータバッファ領域50を確保して旧データをディスク装置からステージングし、ストライプにつき全ページのデータをステージングした後、ステップS8でパリティバッファ領域52を確保してストライプの全データから新パリティを計算して格納した後、ステップS9で新データ及び新パリティを対応するディスク装置に書き込む。
ステップS9におけるライトバック処理のディスク装置に対する書込みにつき、ステップS10でエラーの有無をチェックしており、エラーがなければ、ステップS20でパリティバッファ領域及びデータバッファ領域を開放して処理を終了する。
エラーが判別された場合には、ステップS11に進み、2台以上のディスク装置のエラーによる不整合発生か否かチェックする。1台のディスク装置のエラーによる場合には、ステップS21に進み、エラーディスクをRAID5の復元対象ディスクに設定した後、ステップS22でパリティバッファ領域及びデータバッファ領域を開放して処理を終了する。この1台のディスク装置のエラーについては、RAID5の冗長構成に基づくエラーディスクのデータの復元即ちリジェネレーションリードで対応することができる。
ステップS11で2台以上のディスク装置のエラーによる不整合が判別された場合には、ステップS12に進み、本発明によるリカバリ処理部46がキャッシュメモリ上にエラーとなったストライプのキャッシュストライプ領域を配置して新データをステージングすると共に、そのときの新パリティを確保し、続いてステップS13でキャッシュストライプ領域に空きページがあるか否かチェックする。
空きページがあった場合には、ステップS14でキャッシュストライプ領域内の新データ及び新パリティから領域内の空きページの新データを計算してステージングする、いわゆるキャッシュ上でのステージングを行う。
続いてステップS15でキャッシュストライプ領域のページ内に空があるか否かチェックする。ページ内に空きがあった場合には、ステップS16で対応するディスク装置からページ内の空き領域にデータを読み出してステージングする。ステップS17にあっては、ディスク装置からのステージング成功の有無をチェックしており、もしステージングに失敗した場合にはステップS18に進み、キャッシュストライプ領域をアクセス制限領域即ちピンドストライプに指定する。最終的に、ステップS19でパリティバッファ領域及びデータバッファ領域を開放し、一連の処理を終了する。
また本発明は、RAID装置に設けたコンピュータ、即ち制御モジュールに設けたCPU24により実行されるプログラムを提供するものであり、このプログラムは図14のフローチャートに示す内容をもつ。
なお上記の実施形態にあっては、リカバリ処理部46で処理を起動する2台以上のディスク装置のエラーによる不整合発生の状況として、常用している制御モジュールが異常を起こして予備の制御モジュール18−2に縮退し、この制御モジュールの縮退状態でRAID5グループ54を構成するディスク装置の1台が異常を起こして縮退した場合に、キャッシュ上にストライプに対応した全データを格納したキャッシュストライプ領域60を確保してキャッシュ制御の対象としているが、これ以外のエラー状況で実質的に2台のディスク装置のエラーによる不整合発生と同じエラー状況が生じた場合についても、本発明によるリカバリ処理により対応することができる。
また本発明は、その目的と利点を損なうことのない適宜の変形を含み、更に上記の実施形態に示した数値による限定は受けない。
ここで本発明の特徴をまとめて列挙すると次の付記のようになる。
(付記)
(付記1)
キャッシュメモリ上のデータをページ領域単位に管理して上位装置からの記憶デバイスに対する入出力要求を処理するキャッシュ制御部と、
複数の記憶デバイス上のデータをそれぞれ前記ページ領域と同一サイズのストリップ領域単位に管理すると共に、同一アドレスをもつ複数のデータ用ストリップ領域と1つのパリティ用ストリップ領域をまとめてストライプ領域単位として管理し、前記ストライプ領域のアドレスが異なる毎に前記パリティ用ストリップ領域を配置する記憶デバイスを変化させるRAID5の冗長構成をとるRAID制御部と、
前記キャッシュメモリ上の新データを前記記憶デバイスに書戻す書戻し要求発生時に、前記キャッシュメモリ上にパリティバッファ領域を確保して新パリティを生成した後に、前記新データ及び新パリティを対応する記憶デバイスに書き込むライトバック処理部と、
前記ライトバック処理部による書込み時に、前記複数の記憶デバイスにRAID5の整合性が崩れるエラーが発生した場合、書戻し対象となった前記新データを含むストライプ全体のデータを格納したキャッシュストライプ領域を前記キャッシュメモリ上に確保して前記キャッシュ制御部に管理させるリカバリ処理部と、
を設けたことを特徴とする記憶装置。(1)
(付記2)
付記1記載の記憶装置に於いて、前記リカバリ処理部は、前記ライトバック処理部による書き込みで2台以上の記憶デバイスにエラーが発生した場合、前記RAID5の整合性が崩れるエラーが発生したと判定することを特徴とする記憶装置。(2)
(付記3)
付記1記載の記憶装置に於いて、前記リカバリ処理部は、前記キャッシュストライプ領域を確保した後に、前記ライトバック処理部に前記新パリティを格納したパリティバッファ領域を開放させることを特徴とする記憶装置。(3)
(付記4)
付記1記載の記憶装置に於いて、前記リカバリ処理部は、前記キャッシュストライプ領域の中に空き領域が存在する場合、同じ領域の新データ及び前記パリティバッファ領域の新パリティの排他論理和で求めた新データを前記空き領域にステージングすることを特徴とする記憶装置。(4)
(付記5)
付記1記載の記憶装置に於いて、前記リカバリ処理部は、前記キャッシュストライプ領域の中に、同じ領域内の新データ及び前記パリティバッファ領域の新パリティの排他論理和で求めた新データがステージングされない空き領域が存在する場合、前記空き領域に前記記憶デバイスから読み出したデータをステージングすることを特徴とする記憶装置。(5)
(付記6)
付記5記載の記憶装置に於いて、前記リカバリ処理部は、前記記憶デバイスから前記空き領域に対するデータのステージングに失敗した場合、前記キャッシュストライプ領域をアクセス制限領域に指定して前記キャッシュ制御部に管理させることを特徴とする記憶装置。
(付記7)
付記6記載の記憶装置に於いて、前記キャッシュ制御部は、前記アクセス制限領域に指定された前記キャッシュストライプ領域に対し上位装置からリード要求があった場合、キャッシュヒット時はヒットデータをリード応答し、キャッシュミスヒット時には前記記憶デバイスからRAID5の冗長構成に基づくデータの復元を禁止したステージングを実行した後のキャッシュヒットでリード応答することを特徴とする記憶装置。
(付記8)
付記7記載の記憶装置に於いて、前記キャッシュ制御部は、前記アクセス制限領域に指定された前記キャッシュストライプ領域に対し上位装置からライト要求があった場合、ライトデータを対応する領域に書き込むことを特徴とする記憶装置。
(付記9)
付記7記載の記憶装置に於いて、前記ライトバック処理部は、前記記憶デバイスのエラーが解消された後の前記アクセス制限領域に指定された前記キャッシュストライプ領域の書戻し要求の発生時に、前記キャッシュストライプ領域の中の空き領域に、前記記憶デバイスからRAID5の冗長構成に基づくデータの復元を禁止したステージングを実行してストライプ全体のデータを確保できた場合、前記キャッシュメモリ上にパリティバッファ領域を確保して前記ストライプ全体のデータから新パリティデータを生成した後に、前記新データ及び新パリティを対応する記憶デバイスに書き込むことを特徴とする記憶装置。
(付記10)
キャッシュメモリ上のデータをページ領域単位に管理して上位装置からの記憶デバイスに対する入出力要求を処理するキャッシュ制御ステップと、
複数の記憶デバイス上のデータをそれぞれ前記ページ領域と同一サイズのストリップ領域単位に管理すると共に、同一アドレスをもつ複数のデータ用ストリップ領域と1つのパリティ用ストリップ領域をまとめてストライプ領域単位として管理し、前記ストライプ領域のアドレスが異なる毎に前記パリティ用ストリップ領域を配置する記憶デバイスを変化させるRAID5の冗長構成をとるRAID制御ステップと、
前記キャッシュメモリ上の新データを前記記憶デバイスに書戻す書戻し要求発生時に、前記キャッシュメモリ上にパリティバッファ領域を確保して新パリティを生成した後に、前記新データ及び新パリティを対応する記憶デバイスに書き込むライトバック処理ステップと、
前記ライトバック処理ステップによる書込み時に、前記複数の記憶デバイスにRAID5の整合性が崩れるエラーが発生した場合、書戻し対象となった前記新データを含むストライプ全体のデータを格納したキャッシュストライプ領域を前記キャッシュメモリ上に確保して前記キャッシュ制御ステップに管理させるエラーリカバリ処理ステップと、
を設けたことを特徴とする記憶装置の制御方法。
(付記11)
付記10記載の記憶装置の制御方法に於いて、前記エラーリカバリ処理ステップは、前記ライトバック処理ステップによる書き込みで2台以上の記憶デバイスにエラーが発生した場合、前記RAID5の整合性が崩れるエラーが発生したと判定することを特徴とする記憶装置の制御方法。
(付記12)
付記10記載の記憶装置の制御方法に於いて、前記エラーリカバリ処理ステップは、前記キャッシュストライプ領域を確保した後に、前記ライトバック処理ステップに前記新パリティを格納したパリティバッファ領域を開放させることを特徴とする記憶装置の制御方法。
(付記13)
付記10記載の記憶装置の制御方法に於いて、前記エラーリカバリ処理ステップは、前記キャッシュストライプ領域の中に空き領域が存在する場合、同じ領域の新データ及び前記パリティバッファ領域の新パリティの排他論理和で求めた新データを前記空き領域にステージングすることを特徴とする記憶装置の制御方法。
(付記14)
付記10記載の記憶装置の制御方法に於いて、前記エラーリカバリ処理ステップは、前記キャッシュストライプ領域の中に、同じ領域内の新データ及び前記パリティバッファ領域の新パリティの排他論理和で求めた新データがステージングされない空き領域が存在する場合、前記空き領域に前記記憶デバイスから読み出したデータをステージングすることを特徴とする記憶装置の制御方法。
(付記15)
付記14記載の記憶装置の制御方法に於いて、前記エラーリカバリ処理ステップは、前記記憶デバイスから前記空き領域に対するデータのステージングに失敗した場合、前記キャッシュストライプ領域をアクセス制限領域に指定して前記キャッシュ制御ステップに管理させることを特徴とする記憶装置の制御方法。
(付記16)
付記15記載の記憶装置の制御方法に於いて、前記キャッシュ制御ステップは、前記アクセス制限領域に指定された前記キャッシュストライプ領域に対し上位装置からリード要求があった場合、キャッシュヒット時はヒットデータをリード応答し、キャッシュミスヒット時には前記記憶デバイスからRAID5の冗長構成に基づくデータの復元を禁止したステージングを実行した後のキャッシュヒットでリード応答することを特徴とする記憶装置の制御方法。
(付記17)
付記16記載の記憶装置の制御方法に於いて、前記キャッシュ制御ステップは、前記アクセス制限領域に指定された前記キャッシュストライプ領域に対し上位装置からライト要求があった場合、ライトデータを対応する領域に書き込むことを特徴とする記憶装置の制御方法。
(付記18)
付記16記載の記憶装置の制御方法に於いて、前記ライトバック処理ステップは、前記記憶デバイスのエラーが解消された後の前記アクセス制限領域に指定された前記キャッシュストライプ領域の書戻し要求の発生時に、前記キャッシュストライプ領域の中の空き領域に、前記記憶デバイスからRAID5の冗長構成に基づくデータの復元を禁止したステージングを実行してストライプ全体のデータを確保できた場合、前記キャッシュメモリ上にパリティバッファ領域を確保して前記ストライプ全体のデータから新パリティデータを生成した後に、前記新データ及び新パリティを対応する記憶デバイスに書き込むことを特徴とする記憶装置の制御方法。
(付記19)
記憶装置のコンピュータに、
キャッシュメモリ上のデータをページ領域単位に管理して上位装置からの記憶デバイスに対する入出力要求を処理するキャッシュ制御ステップと、
複数の記憶デバイス上のデータをそれぞれ前記ページ領域と同一サイズのストリップ領域単位に管理すると共に、同一アドレスをもつ複数のデータ用ストリップ領域と1つのパリティ用ストリップ領域をまとめてストライプ領域単位として管理し、前記ストライプ領域のアドレスが異なる毎に前記パリティ用ストリップ領域を配置する記憶デバイスを変化させるRAID5の冗長構成をとるRAID制御ステップと、
前記キャッシュメモリ上の新データを前記記憶デバイスに書戻す書戻し要求発生時に、前記キャッシュメモリ上にパリティバッファ領域を確保して新パリティを生成した後に、前記新データ及び新パリティを対応する記憶デバイスに書き込むライトバック処理ステップと、
前記ライトバック処理ステップによる書込み時に、前記複数の記憶デバイスにRAID5の整合性が崩れるエラーが発生した場合、書戻し対象となった前記新データを含むストライプ全体のデータを格納したキャッシュストライプ領域を前記キャッシュメモリ上に確保して前記キャッシュ制御ステップに管理させるエラーリカバリ処理ステップと、
を実行させることを特徴とするプログラム。
(付記20)
付記19記載のプログラムに於いて、前記エラーリカバリ処理ステップは、前記ライトバック処理ステップによる書き込みで2台以上の記憶デバイスにエラーが発生した場合、前記RAID5の整合性が崩れるエラーが発生したと判定することを特徴とするプログラム。
本発明の原理説明図 本発明が適用されるRAID装置のハードウェア構成のブロック図 本発明が適用されるRAID装置の他のハードウェア構成のブロック図 本発明によるRAID装置の機能構成のブロック図 キャッシュページとディスク装置のストリップ領域及びストライプ領域の説明図 ライトバック処理の際のエラーでRAID5グループの整合が崩れた状態の説明図 図6のエラー状態でディスク装置が異常を起してRAID5グループが縮退した状態の説明図 キュッシュメモリ上に正しいデータ構成のキャッシュストライプ領域を確保する本発明のリカバリ処理の説明図 図8に続いてにパリティバッファ領域を開放した状態の説明図 ホストからのライト要求を受けたキャッシュ領域のライトバックでRAID5グループの整合が崩れるエラーが発生した状態の説明図 キュッシュメモリ上にキャッシュストライプ領域を確保する本発明のリカバリ処理の説明図 キャッシュストライプ領域内の空きにデータステージングする本発明のリカバリ処理の説明図 図12に続いてパリティバッファ領域を開放した状態の説明図 本発明のリカバリ処理を含むライトバック処理のフローチャート 従来のライトバック処理の説明図 従来装置におけるキャッシュページの説明図 ライトバック処理でRAID5グループの整合性が崩れた状態の説明図 RAID5の整合性が崩れた状態でのホストリード要求で化けデータが発生する状態の説明図 保存しているパリティを使用して整合性を回復する従来の書込み修正処理の説明図 パリティの保存がない場合にRAID5のデータから整合性を回復する従来処理の説明図 図20で整合性を回復した後にキャッシュから新データをライトバックする処理の説明図
符号の説明
10:RAID装置
12:ホスト(メインフレーム系)
14:ホスト(UNIX(R)/IAサーバ系)
15,24:CPU
16−1,16−2,26:チャネルアダプタ
18,18−1〜18−n:制御モジュール
20−1,20−2:バックグラウンドルータ
22:物理デバイス
22−1〜22−4:ディスク装置
25:通信部
28:キャッシュメモリ
30−1〜30−8:デバイスインタフェース
32−1〜32−4:フロントルータ
34:リソース処理部
36:キャッシュ処理部
38:RAID制御部
40:コピー処理部
42:キャッシュ制御部
44:キャッシュ管理テーブル
45:ライトバック処理部
46:リカバリ処理部
48:キャッシュ領域
50:データバッファ領域
52:パリティバッファ領域
54:RAID5グループ
54−1〜54−4:ストリップ領域
56:ストライプ領域
58,58−1〜58−3:キャッシュページ
60:キャッシュストライプ領域
62,68:演算部
64:ライトデータ
65,66,70:空き領域

Claims (5)

  1. キャッシュメモリ上のデータをページ領域単位に管理して上位装置からの記憶デバイスに対する入出力要求を処理するキャッシュ制御部と、
    複数の記憶デバイス上のデータをそれぞれ前記ページ領域と同一サイズのストリップ領域単位に管理すると共に、同一アドレスをもつ複数のデータ用ストリップ領域と1つのパリティ用ストリップ領域をまとめてストライプ領域単位として管理し、前記ストライプ領域のアドレスが異なる毎に前記パリティ用ストリップ領域を配置する記憶デバイスを変化させるRAID5の冗長構成をとるRAID制御部と、
    前記キャッシュメモリ上の新データを前記記憶デバイスに書戻す書戻し要求発生時に、前記キャッシュメモリ上にパリティバッファ領域を確保して新パリティを生成した後に、前記新データ及び新パリティを対応する記憶デバイスに書き込むライトバック処理部と、
    前記ライトバック処理部による書込み時に、前記複数の記憶デバイスにRAID5の整合性が崩れるエラーが発生した場合、書戻し対象となった前記新データを含むストライプ全体のデータを格納したキャッシュストライプ領域を前記キャッシュメモリ上に確保して前記キャッシュ制御部に管理させるリカバリ処理部と、
    を設け、
    前記リカバリ処理部は、前記キャッシュストライプ領域の中に、同じ領域内の新データ及び前記パリティバッファ領域の新パリティの排他論理和で求めた新データがステージングされない空き領域が存在する場合、前記空き領域に前記記憶デバイスから読み出したデータをステージングし、
    前記記憶デバイスから前記空き領域に対するデータのステージングに失敗した場合、前記キャッシュストライプ領域をアクセス制限領域に指定して前記キャッシュ制御部に管理させ、前記アクセス制限領域に指定された前記キャッシュストライプ領域に対し上位装置からリード要求があった場合、キャッシュヒット時はヒットデータをリード応答し、キャッシュミスヒット時には前記記憶デバイスからRAID5の冗長構成に基づくデータの復元を禁止したステージングを実行した後のキャッシュヒットでリード応答することを特徴とする記憶装置。
  2. 請求項1記載の記憶装置に於いて、前記リカバリ処理部は、前記ライトバック処理部による書き込みで2台以上の記憶デバイスにエラーが発生した場合、前記RAID5の整合性が崩れるエラーが発生したと判定することを特徴とする記憶装置。
  3. 請求項1記載の記憶装置に於いて、前記リカバリ処理部は、前記キャッシュストライプ領域を確保した後に、前記ライトバック処理部に前記新パリティを格納したパリティバッファ領域を開放させることを特徴とする記憶装置。
  4. 請求項1記載の記憶装置に於いて、前記リカバリ処理部は、前記キャッシュストライプ領域の中に空き領域が存在する場合、同じ領域の新データ及び前記パリティバッファ領域の新パリティの排他論理和で求めた新データを前記空き領域にステージングすることを特徴とする記憶装置。
  5. 請求項1記載の記憶装置に於いて、前記キャッシュメモリは常用分と予備分を備え、常用分と予備分は前記ストライプ領域の全データを記憶させることを特徴とする記憶装置。
JP2005070963A 2005-03-14 2005-03-14 記憶装置、その制御方法及びプログラム Expired - Fee Related JP4435705B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2005070963A JP4435705B2 (ja) 2005-03-14 2005-03-14 記憶装置、その制御方法及びプログラム
US11/169,979 US7370148B2 (en) 2005-03-14 2005-06-30 Storage system, control method thereof, and program
KR1020050065798A KR100786153B1 (ko) 2005-03-14 2005-07-20 기억 장치, 그 제어 방법 및 프로그램
CNB2005100895440A CN100385418C (zh) 2005-03-14 2005-07-29 存储系统及其控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005070963A JP4435705B2 (ja) 2005-03-14 2005-03-14 記憶装置、その制御方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2006252414A JP2006252414A (ja) 2006-09-21
JP4435705B2 true JP4435705B2 (ja) 2010-03-24

Family

ID=36972411

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005070963A Expired - Fee Related JP4435705B2 (ja) 2005-03-14 2005-03-14 記憶装置、その制御方法及びプログラム

Country Status (4)

Country Link
US (1) US7370148B2 (ja)
JP (1) JP4435705B2 (ja)
KR (1) KR100786153B1 (ja)
CN (1) CN100385418C (ja)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4410178B2 (ja) * 2005-09-22 2010-02-03 富士通株式会社 Raid装置におけるライトバック方法
US11909418B1 (en) 2005-09-30 2024-02-20 Pure Storage, Inc. Access authentication in a dispersed storage network
US10938418B2 (en) * 2005-09-30 2021-03-02 Pure Storage, Inc. Online disk replacement/removal
JP2007179297A (ja) * 2005-12-28 2007-07-12 Fujitsu Ltd Raid5のパリティチェック強化方法、装置及びプログラム
JP4935367B2 (ja) * 2007-01-19 2012-05-23 富士通株式会社 Raid装置及びガロア体の積演算処理方法
JP5158576B2 (ja) * 2007-06-05 2013-03-06 日本電気株式会社 入出力制御システム、入出力制御方法、及び、入出力制御プログラム
JP4430092B2 (ja) * 2007-08-28 2010-03-10 富士通株式会社 Raid装置、raid装置の制御部およびraid装置のライトバック制御方法
JP4402711B2 (ja) * 2007-11-05 2010-01-20 富士通株式会社 ディスクアレイ装置、ディスクアレイ装置制御方法、ディスクアレイ装置制御プログラムおよびディスクアレイ制御装置
US7970994B2 (en) * 2008-03-04 2011-06-28 International Business Machines Corporation High performance disk array rebuild
JP5245472B2 (ja) 2008-03-13 2013-07-24 富士通株式会社 制御方法、ディスクアレイ装置
US20090300282A1 (en) * 2008-05-30 2009-12-03 Promise Technology, Inc. Redundant array of independent disks write recovery system
JP5286956B2 (ja) 2008-06-13 2013-09-11 富士通株式会社 制御方法、ディスクアレイ装置
JP2010009442A (ja) * 2008-06-30 2010-01-14 Fujitsu Ltd ディスクアレイシステム、ディスク制御装置及びその再構築処理方法
JP5502883B2 (ja) * 2008-11-19 2014-05-28 エルエスアイ コーポレーション Raid情報のメモリ効率検査
US20100180151A1 (en) * 2009-01-15 2010-07-15 Jibbe Mahmoud K Method for handling interrupted writes using multiple cores
US8103904B2 (en) 2010-02-22 2012-01-24 International Business Machines Corporation Read-other protocol for maintaining parity coherency in a write-back distributed redundancy data storage system
US8156368B2 (en) 2010-02-22 2012-04-10 International Business Machines Corporation Rebuilding lost data in a distributed redundancy data storage system
US8103903B2 (en) 2010-02-22 2012-01-24 International Business Machines Corporation Read-modify-write protocol for maintaining parity coherency in a write-back distributed redundancy data storage system
US8583866B2 (en) 2010-02-22 2013-11-12 International Business Machines Corporation Full-stripe-write protocol for maintaining parity coherency in a write-back distributed redundancy data storage system
US8230189B1 (en) * 2010-03-17 2012-07-24 Symantec Corporation Systems and methods for off-host backups of striped volumes
JP2012073678A (ja) * 2010-09-27 2012-04-12 Fujitsu Ltd 擬似エラー発生装置
KR101732030B1 (ko) * 2010-12-22 2017-05-04 삼성전자주식회사 데이터 저장 장치 및 그것의 동작 방법
KR101778782B1 (ko) 2011-04-08 2017-09-27 삼성전자주식회사 데이터 저장 장치 및 그것의 동작 방법
US8631190B2 (en) * 2011-07-22 2014-01-14 International Business Machines Corporation Prefetching data tracks and parity data to use for destaging updated tracks
US9229809B2 (en) * 2011-09-11 2016-01-05 Microsoft Technology Licensing Llc Nonvolatile media journaling of verified data sets
CN103502927B (zh) * 2012-03-29 2016-12-28 松下知识产权经营株式会社 信息处理装置、信息处理方法
CN104205059B (zh) 2012-04-27 2017-07-14 株式会社日立制作所 存储系统和存储控制装置
US8914576B2 (en) 2012-07-30 2014-12-16 Hewlett-Packard Development Company, Lp. Buffer for RAID controller with disabled post write cache
US8938641B2 (en) * 2012-09-27 2015-01-20 Intel Corporation Method and apparatus for synchronizing storage volumes
JP6017065B2 (ja) * 2013-01-31 2016-10-26 株式会社日立製作所 ストレージシステム及びキャッシュコントロール方法
JP2015082313A (ja) * 2013-10-24 2015-04-27 富士通株式会社 Raid構成管理装置、raid構成管理プログラムおよびraid構成管理方法
KR102219288B1 (ko) 2013-12-09 2021-02-23 삼성전자 주식회사 캐시 모드 및 메모리 모드 동작을 지원하는 메모리 장치 및 이의 동작 방법
US9547552B2 (en) * 2014-12-11 2017-01-17 Netapp, Inc. Data tracking for efficient recovery of a storage array
US10666754B2 (en) 2015-05-29 2020-05-26 Dell Products, L.P. System and method for cache reservation in an information handling system
US20170097887A1 (en) * 2015-10-02 2017-04-06 Netapp, Inc. Storage Controller Cache Having Reserved Parity Area
CN108427648B (zh) * 2017-02-14 2023-12-01 中兴通讯股份有限公司 存储系统页内脏数据索引方法和装置
US20190034306A1 (en) * 2017-07-31 2019-01-31 Intel Corporation Computer System, Computer System Host, First Storage Device, Second Storage Device, Controllers, Methods, Apparatuses and Computer Programs
CN109558070B (zh) * 2017-09-27 2023-09-15 北京忆恒创源科技股份有限公司 可扩展存储系统架构
CN108920094B (zh) * 2018-06-01 2021-06-08 深圳忆联信息系统有限公司 擦除单元raid方法、装置、计算机设备及存储介质
CN109634771A (zh) * 2018-10-31 2019-04-16 华为技术有限公司 一种数据保护方法、装置及系统
KR20200141172A (ko) * 2019-06-10 2020-12-18 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
US11630725B2 (en) * 2019-12-24 2023-04-18 Micron Technology, Inc. Management of parity data in a memory sub-system
CN113391947B (zh) * 2021-06-22 2022-12-02 深圳忆联信息系统有限公司 Ssd raid条带掉电快速恢复方法、装置、计算机设备及存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05303528A (ja) * 1992-04-27 1993-11-16 Oki Electric Ind Co Ltd ライトバック式ディスクキャッシュ装置
WO1993023803A1 (fr) * 1992-05-21 1993-11-25 Fujitsu Limited Appareil de commande pour pile de disques
JP2857288B2 (ja) 1992-10-08 1999-02-17 富士通株式会社 ディスクアレイ装置
US5666511A (en) * 1992-10-08 1997-09-09 Fujitsu Limited Deadlock suppressing schemes in a raid system
JPH08115169A (ja) * 1994-10-14 1996-05-07 Hitachi Ltd ディスク制御装置
JP3020833B2 (ja) * 1995-06-19 2000-03-15 株式会社東芝 チェックポイント取得システム
JP3618529B2 (ja) * 1997-11-04 2005-02-09 富士通株式会社 ディスクアレイ装置
JPH11154058A (ja) 1997-11-20 1999-06-08 Toshiba Corp ディスクアレイ装置及びデータ保守方法
JPH11288387A (ja) 1998-12-11 1999-10-19 Fujitsu Ltd ディスクキャッシュ装置
US6334168B1 (en) * 1999-02-19 2001-12-25 International Business Machines Corporation Method and system for updating data in a data storage system
KR20010011204A (ko) * 1999-07-26 2001-02-15 윤종용 캐쉬미러링을 통한 레이드 장애극복 방법 및 장치
JP2001344076A (ja) * 2000-06-05 2001-12-14 Fujitsu Ltd ディスクアレイ装置
US6523087B2 (en) * 2001-03-06 2003-02-18 Chaparral Network Storage, Inc. Utilizing parity caching and parity logging while closing the RAID5 write hole
JP2003067143A (ja) 2001-08-30 2003-03-07 Hitachi Electronics Eng Co Ltd 記憶媒体ライブラリアレイ装置

Also Published As

Publication number Publication date
KR20060100905A (ko) 2006-09-21
US7370148B2 (en) 2008-05-06
CN100385418C (zh) 2008-04-30
JP2006252414A (ja) 2006-09-21
KR100786153B1 (ko) 2007-12-18
CN1834943A (zh) 2006-09-20
US20060206752A1 (en) 2006-09-14

Similar Documents

Publication Publication Date Title
JP4435705B2 (ja) 記憶装置、その制御方法及びプログラム
JP3164499B2 (ja) ディスクアレイにおけるパリティデータの無矛盾性保持方法
US6988219B2 (en) Providing parity in a RAID sub-system using non-volatile memory
US5379417A (en) System and method for ensuring write data integrity in a redundant array data storage system
US7788541B2 (en) Apparatus and method for identifying disk drives with unreported data corruption
JP5768587B2 (ja) ストレージシステム、ストレージ制御装置およびストレージ制御方法
US7529965B2 (en) Program, storage control method, and storage system
US7185222B2 (en) Apparatus, system, and method for maintaining data in a storage array
JP4440803B2 (ja) 記憶装置、その制御方法及びプログラム
US7877626B2 (en) Method and system for disk storage devices rebuild in a data storage system
US7069382B2 (en) Method of RAID 5 write hole prevention
US20080184062A1 (en) System and method for detecting write errors in a storage device
CN102483686A (zh) 数据存储系统和用于操作数据存储系统的方法
JP2010015195A (ja) 記憶制御装置及び記憶制御方法
JP2006139478A (ja) ディスクアレイシステム
JP2013045118A (ja) ストレージシステム、ストレージ制御装置およびストレージ制御方法
US7240237B2 (en) Method and system for high bandwidth fault tolerance in a storage subsystem
JP2005004753A (ja) データのバージョンチェックを行う方法及び装置
JP4905510B2 (ja) ストレージ制御装置及びストレージ装置のデータ回復方法
JP4469822B2 (ja) ディスクアレイ装置およびディスクアレイ装置のデータ管理方法
GB2343265A (en) Data storage array rebuild
US7174476B2 (en) Methods and structure for improved fault tolerance during initialization of a RAID logical unit
JP4248164B2 (ja) ディスクアレイのエラー回復方法、ディスクアレイ制御装置及びディスクアレイ装置
JP2010026812A (ja) 磁気ディスク装置
US20140173337A1 (en) Storage apparatus, control method, and control program

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090326

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090616

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090914

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20091002

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091208

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091224

R150 Certificate of patent or registration of utility model

Ref document number: 4435705

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130108

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130108

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140108

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees