(57)【要約】【課題】  交換ディスクの再構成の高速化を達成し、冗長度の下がっている時間を短縮するディスクアレイ装置の提供。【解決手段】  ディスクアレイを構成する複数のディスク１１１〜１１ｎと、ディスクアレイのデータをバックアップするバックアップストレージ３０を備え、ディスクアレイを構成する複数のディスクのうち故障ディスクを交換した際の交換ディスクのデータの復旧を前記バックアップ装置から行うように制御する。【選択図】  図１
2006252126.tif 000002
【特許請求の範囲】
【請求項１】
ディスクアレイを構成する複数のディスク装置と、
バックアップ記憶装置と、
前記ディスクアレイのデータを前記バックアップ記憶装置にバックアップする制御を行うバックアップ手段と、
前記ディスクアレイを構成する複数のディスク装置のうちの故障ディスク装置を交換した際の交換ディスク装置のデータの再構築を、前記バックアップ記憶装置にバックアップされたデータに基づいて行うように制御する制御手段と、
を備えている、ことを特徴とするディスクアレイ装置。
【請求項２】
前記ディスクアレイのデータが更新された際に、更新箇所を記録する修正マップを備えている、ことを特徴とする請求項１記載のディスクアレイ装置。
【請求項３】
前記バックアップ記憶装置へのバックアップ以降、ホストからのアクセスにより、前記ディスクアレイのデータが更新された際に、前記バックアップ手段は、前記バックアップ記憶装置へのバックアップ以降の更新データを、前記バックアップ記憶装置に送り、前記更新データに対応して前記修正マップへの記録がなされ、
前記バックアップ記憶装置では、前記更新データをバックアップデータとして記録する、ことを特徴とする請求項２記載のディスクアレイ装置。
【請求項４】
前記制御手段は、前記故障ディスク装置に記憶され、前記バックアップ記憶装置にバックアップされていたデータを、前記バックアップ記憶装置から読み出して、前記交換ディスク装置に書き出し、前記バックアップ記憶装置から前記故障ディスク装置のデータの前記交換ディスク装置への書き込みが終わると、前記修正マップを参照し、バックアップ以降前記故障ディスク装置に関して更新されたデータについて、前記ディスクアレイを構成する他のディスク装置のデータを基に生成し、生成したデータを、前記交換ディスク装置に書き込む、ことを特徴とする請求項３記載のディスクアレイ装置。
【請求項５】
前記修正マップが、前記ディスクアレイのディスク装置のアクセスの単位領域に対応して、前記単位領域がバックアップ以降に更新されたか否かを示す更新フラグを備えている、ことを特徴とする請求項２記載のディスクアレイ装置。
【請求項６】
前記修正マップが、前記ディスクアレイのディスク装置のアクセスの単位領域に対応して、前記単位領域の再構築が未処理であるか否かを示す再構築フラグを備えている、ことを特徴とする請求項５記載のディスクアレイ装置。
【請求項７】
前記制御手段は、前記バックアップ記憶装置から前記故障ディスク装置のデータの前記交換ディスク装置への書き込みが終わると、前記修正マップを参照し、前記更新フラグが更新を示し、且つ前記再構築フラグが再構築が未処理であることを示す単位領域のデータを、前記ディスクアレイを構成する他のディスク装置のデータを基に生成し、生成したデータを前記交換ディスク装置に書き込む、ことを特徴とする請求項６記載のディスクアレイ装置。
【請求項８】
前記制御手段は、前記修正マップを参照して、故障ディスク装置のブロックのうちバックアップ以降、更新されているものについては、前記バックアップ記憶装置からの書き戻しは行わないように制御する、ことを特徴とする請求項２又は４記載のディスクアレイ装置。
【請求項９】
前記制御手段は、前記交換ディスク装置の再構築中に行われた更新内容は、そのまま、前記交換ディスク装置に書き込むように制御する、ことを特徴とする請求項１記載のディスクアレイ装置。
【請求項１０】
前記制御手段は、再構築中の交換ディスク装置のデータのうち、最新データとなっているデータについては、再構築が終了する前であっても、アクセス要求があった場合に、前記交換ディスク装置へのアクセスを許可するように制御する、ことを特徴とする請求項１記載のディスクアレイ装置。
【請求項１１】
前記バックアップ記憶装置と、前記交換ディスク装置との間に、データ転送用のアクセスバス又はスイッチを備え、
前記バックアップ記憶装置からの交換ディスク装置の再構築時に、前記ディスクアレイに対する通常のアクセスに影響を与えないようにしてなる、ことを特徴とする請求項１記載のディスクアレイ装置。
【請求項１２】
前記バックアップ記憶装置から前記交換ディスク装置の再構築を行う手段と、
ホストからの通常のアクセス要求を受けて前記ディスクアレイを構成する複数のディスク装置へのアクセスを行う手段とが、それぞれのバス又はスイッチを介して、前記ディスクアレイを構成するディスク装置に接続する、ことを特徴とする請求項１１記載のディスクアレイ装置。
【請求項１３】
複数のストレージ・ユニットと、
前記複数のストレージ・ユニットに対して設けられたバックアップ装置と、
前記複数のストレージ・ユニットのデータを前記バックアップ装置にバックアップする制御を行うバックアップ手段と、
前記複数のストレージ・ユニットのうちの故障ストレージ・ユニットを交換した際の交換ストレージ・ユニットのデータの再構築を、前記バックアップ装置にバックアップされたデータに基づいて行うように制御する制御手段と、
を備えている、ことを特徴とするストレージ制御装置。
【請求項１４】
複数のディスク装置を備えたディスクアレイのデータをバックアップするバックアップ記憶装置を設け、
前記ディスクアレイを構成する複数のディスク装置のうち故障ディスク装置を交換した際の交換ディスク装置のデータの復旧を、前記バックアップ記憶装置から行うように制御する工程を含む、ことを特徴とするディスクアレイ装置の再構築方法。
【請求項１５】
前記バックアップ記憶装置へのバックアップ以降、ホストからのアクセスにより前記ディスクアレイのデータが更新された際に、修正マップに更新箇所を記録する工程と、
前記バックアップ記憶装置へのバックアップ以降、更新データのみを前記バックアップ記憶装置に送り、前記バックアップ記憶装置では前記更新データをバックアップデータとして記録する工程と、
を含む、ことを特徴とする請求項１４記載のディスクアレイ装置の再構築方法。
【請求項１６】
前記故障ディスク装置に記憶され、前記バックアップ記憶装置にバックアップされていたデータを、前記バックアップ記憶装置から読み出して、前記交換ディスク装置に書き出す工程と、
前記バックアップ記憶装置から前記故障ディスク装置のデータの前記交換ディスク装置への書き込みが終わると、前記修正マップを参照し、バックアップ以降、前記故障ディスク装置で更新されたデータに関して、前記ディスクアレイを構成する他のディスク装置のデータを基に生成し、生成したデータを前記交換ディスク装置に書き込む工程と、
を含む、ことを特徴とする請求項１５記載のディスクアレイ装置の再構築方法。
【請求項１７】
前記修正マップには、前記ディスクアレイのディスク装置のアクセスの単位領域に対応して、前記単位領域が、バックアップ以降に更新されたか否かを示す更新フラグを設けられている、ことを特徴とする請求項１５記載のディスクアレイ装置の再構築方法。
【請求項１８】
前記修正マップには、前記ディスクアレイのディスク装置のアクセスの単位領域に対応して、前記単位領域が、再構築が未処理であるか否かを示す再構築フラグを設けられている、ことを特徴とする請求項１７記載のディスクアレイ装置の再構築方法。
【請求項１９】
前記バックアップ記憶装置から前記故障ディスク装置のデータの前記交換ディスク装置への書き込みが終わると、前記修正マップを参照し、前記更新フラグが更新を示し、且つ、前記再構築フラグが再構築が未処理であることを示す単位領域のデータを、前記ディスクアレイを構成する他のディスク装置のデータを基に生成する工程と、
生成したデータを前記交換ディスク装置に書き込む工程と、
を含む、ことを特徴とする請求項１８記載のディスクアレイ装置の再構築方法。
【請求項２０】
前記修正マップを参照して、故障ディスク装置のブロックのうち、バックアップ以降、更新されているものについては、前記バックアップ記憶装置からの書き戻しは行わないように制御する工程を有する、ことを特徴とする請求項１４記載のディスクアレイ装置の再構築方法。
【請求項２１】
前記交換ディスク装置の再構築中に行われた更新内容は、前記バックアップ記憶装置を介さず、前記交換ディスク装置に書き込むように制御する工程を含む、ことを特徴とする請求項１４記載のディスクアレイ装置の再構築方法。
【請求項２２】
再構築中の交換ディスク装置のデータのうち最新データとなっているデータについては、再構築が終了する前にアクセス要求があった場合、前記交換ディスク装置へのアクセスを許可するように制御する工程を含む、ことを特徴とする請求項１４記載のディスクアレイ装置の再構築方法。
【請求項２３】
複数のストレージ・ユニットに対してバックアップ装置を用意しておき、
前記複数のストレージ・ユニットのデータを前記バックアップ装置にバックアップする工程と、
前記複数のストレージ・ユニットのうちの故障ストレージ・ユニットを交換した際の交換ストレージ・ユニットのデータの再構築を、前記バックアップ装置にバックアップされたデータに基づいて行う工程と、
を含む、ことを特徴とするストレージシステムの再構築方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、冗長ディスクアレイ装置に関し、特に、ディスクアレイ装置及びその再構築方法に関する。
【背景技術】
【０００２】
ディスクアレイは、RAID（Redundancy Arrays of Independent(Inexpensive) Disks）とも呼ばれ、複数のディスクをアレイ状に配置した構成をとり、データに冗長データを付加することで信頼性を向上させている。RAIDには、例えばストライピングによって複数のディスクを１台のディスクであるかのようにしたRAID0、ミラリーングを使って同一データを複数のディスクに書き込むRAID1、複数のディスクにデータとパリティを記録することで耐障害性を高めたRAID５等々があり、このうちRAID５は、データをディスクに書き込む際に、誤り訂正用のパリティ情報を生成し、残りのデータとともにストライピングによって複数のディスクに分散して書き込む。なお、パリティに必要なディスクは１台分とされる。こうすることで、ディスク一台が故障しても、残りのディスクのデータとパリティから、データを復元することができる。
【０００３】
また、従来のディスクアレイにおいては、RAIDコントローラがディスクの故障等を検出した際、予備ディスクに交換し、故障ディスクのデータを交換したディスクへ再構築（リビルド）する機能を有している。その際、ディスクアレイを構成するディスクのうち、交換したディスク以外のディスクを用いて交換ディスクのデータを作成している。
【０００４】
高可用性が求められるディスクアレイシステムでは、故障ディスクを交換した後の交換ディスクへのデータの再構築を、通常運用と、並行して行う必要がある（再構築時に通常運用が行えないと業務に支障をきたす）。ディスク交換後のパリティ再構築時には、交換したディスク以外のパリティグループの全ディスクからデータを読み出す必要があるため、通常、アクセス性能が低下する。パリティグループを構成するRAID等の構成において、データドライブ数が増加するとさらに性能が低下する。
【０００５】
図１０は、従来のディスクアレイ装置の典型的な構成例を示す模式図である。図１０を参照すると、アクセスモジュール１４は、ホスト２０とディスクアレイとの間でのコマンド、データ、制御信号の送受等のインタフェースを司る。RAIDモジュール１３は、RAIDコントローラ及び管理ソフトウエアからなり、冗長構成された複数ディスク１１１〜１１ｎのデータのリード／ライト、障害検出、ディスク再構築処理等を行う。ディスクアクセスバス１２は、複数ディスク装置１１１〜１１ｎとRAIDコントローラ１３との間の接続パスを提供する。なお、ディスク装置の再構築は、RAID１、５、10等の冗長構成のアレイに対して実施される。各ディスク装置１１１〜１１ｎは、例えばHDD（Hard Disk Drive）等のディスク装置よりなり、単に、「ディスク」と略記される。
【０００６】
なお、特許文献１には、パリティグループを構成するRAID等のディスク構成を表すｎD＋１Pにおいて、データドライブ数ｎが増加するとさらに性能が低下することを抑止するため、ｎによらず１台のディスクからコピーする構成が開示されている。また、特許文献２には、RAIDコントローラによるディスクへの再構築（リビルド）について記載されている。なお、故障ディスクの再構築レート（Rebuild Rate）が１００％であるとは、システムが故障ディスクの再構築に全部当てられていることをいい、０％であるとは、システムが他に何もしない空き時間に故障ディスクの再構築を行うことをいう。デフォルトの再構築レートは例えば３０％程度とされる。
【０００７】
【特許文献１】特開２００２−１０８５７１号公報
【特許文献２】特開２００４−３８２９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
RAIDレベル５等の冗長ディスクアレイ装置においては、ディスク再構築時、故障ディスク以外のディスクを用いて、故障ディスク（交換ディスク）のデータを作成しているため、再構築に時間を要する。特に、ディスクの大容量化に伴い、再構築時間は長大化し、さらに、再構築中は、冗長度が下がっており、再構築期間でのディスクアレイ装置のアクセス性能は低下する。
【０００９】
したがって本発明は、上記問題点を解消すべく創案されたものであって、その主たる目的は、交換ディスクの再構築の高速化を達成し、冗長度の下がっている時間を短縮するディスクアレイ装置及び方法を提供することにある。
【００１０】
また本発明の他の目的は、交換ディスクのデータ作成中における、アクセス性能の低下を抑止するディスクアレイ装置及び方法を提供することにある。
【課題を解決するための手段】
【００１１】
本願で開示される発明は、前記目的を達成するため、概略以下の通りの構成とされる。
【００１２】
本発明の１つのアスペクトに係る装置は、ディスクアレイ装置のデータをバックアップするためのバックアップ装置を備え、交換ディスク装置のデータの復旧をバックアップ装置から行い、ディスクアレイ装置を構成する他のディスク装置を復旧に利用しないようにしている。
【００１３】
本発明の別のアスペクトに係る方法は、複数のディスク装置を備えたディスクアレイのデータをバックアップするバックアップ装置を別途設け、前記ディスクアレイを構成するディスク装置のうちの故障ディスク装置を交換した際の交換ディスク装置のデータの復旧を、前記バックアップ装置から行うように制御する工程を含む。
【００１４】
本発明において、ホストからのアクセスによりデータが更新された際に、変更箇所を修正マップ（「差分マップ」ともいう）に記録し、前記バックアップ装置へのバックアップ以降の更新について、変更箇所のみをバックアップ装置に送り、前記バックアップ装置では、変更箇所をバックアップするようにしてもよい。
【００１５】
本発明において、故障ディスク装置に記憶されていたデータを、前記バックアップ装置から読み出して、前記交換ディスク装置に書き出し、前記バックアップ装置から故障ディスク装置のバックアップデータの前記交換ディスク装置への書き込みが終わると、前記修正マップを参照し、バックアップの後に、前記故障ディスク装置で更新されたデータブロックのデータを、他のディスク装置のデータを基に生成し、作成したデータを前記交換ディスク装置に書き込むようにしてもよい。
【００１６】
本発明において、前記修正マップを参照して、故障ディスク装置のデータブロックのうち、更新されているものは、バックアップ装置からの書き戻しは行わないようにしてもよい。
【００１７】
本発明において、再構築中に、故障ディスク装置に対応するディスク装置に対して行われた更新は、バックアップ装置にバックアップすることなく、直接、再構築中の交換ディスク装置に書き込むようにしてもよい。
【００１８】
本発明において、再構築中の交換ディスク装置のデータブロックのうち、最新データとなっているデータブロックは、再構築終了前であっても、前記交換ディスク装置へのアクセスを許可する構成としてもよい。
【００１９】
本発明においては、前記バックアップ装置からのデータ転送は、スイッチ、別のアクセスパスにより、通常アクセスに影響を与えない構成としてもよい。
【発明の効果】
【００２０】
本発明によれば、再構築の際に、バックアップをとった以降の更新データを除き、ディスクアレイの他のディスク装置にアクセスしないため、再構築中に性能低下を招くことはない。
【００２１】
本発明によれば、再構築中に、性能低下を生じないため、再構築を低速で行わなくてもよい。このため、再構築時間を短縮することができる。そして、本発明によれば、再構築時間の短縮により、再構築中に２台目の故障発生確率を低下させることができる。
【発明を実施するための最良の形態】
【００２２】
上記した本発明についてさらに詳細に説述すべく、添付図面を参照して説明する。本発明は、複数のストレージ・ユニットに対して、バックアップ装置を用意しておき、複数のストレージ・ユニットのデータをバックアップ装置にバックアップし、複数のストレージ・ユニットのうち故障ストレージ・ユニットを交換した際の交換ストレージ・ユニットのデータの再構築を、バックアップ装置にバックアップされたデータに基づいて行うようにしている。本発明の一実施形態において、複数のストレージ・ユニットは、好ましくは、ディスクアレイを構成する。
【００２３】
図１は、本発明の一実施形態のシステム構成を示す図である。図１を参照すると、ディスクアレイ１０は、複数のディスク装置１１１〜１１ｎと、ディスクアクセスバス／スイッチ１８と、RAIDモジュール１３と、アクセスモジュール(ホストアダプタ)１４と、バックアップモジュール(Backup Module)１５と、修正マップ(Modify Map)１６と、再構築モジュール（Rebuild Module）１７とを備え、RAIDモジュール１３、再構築モジュール１７は、ディスクアクセスバス／スイッチ１８を介して複数のディスクに書き込み、読み出し等のアクセスを行う。ディスクアレイ１０は所定のインタフェースを介してバックアップストレージ３０が接続されている。バックアップストレージ３０がディスクアレイ構成としてもよいことは勿論である。各ディスク装置１１１〜１１ｎは、例えばHDD（Hard Disk Drive）等のディスク装置よりなり、単に、「ディスク」と略記される。
【００２４】
本発明においては、バックアップモジュール１５は、ディスクアレイを構成する複数のディスク１１１〜１１ｎのデータは、例えば定期的にバックアップストレージ３０にバックアップする。すなわち、アクセスモジュール１５が、ホスト２０からのバックアップ指示を受けると、バックアップモジュール１５は、RAIDモジュール１３を介してディスクアレイ１１１〜１１ｎからデータの読み出しを行い（パリティチェック等、エラー検出訂正処理が行われる）、読み出したデータをバックアップストレージ３０に書き込む。
【００２５】
アクセスモジュール１４は、バックアップモジュール１５によるバックアップ処理開始以降、あるいは、該バックアップ処理の終了後、次のバックアップまでの期間内に、データブロックの修正が行われた場合、該データブロックが修正されたことを表す情報（１ビット）を修正マップ１６に設定する。修正マップ１６は、各ディスクに対応させて、１論理ブロック（例えば１Kバイト）あたり１ビットの更新ビット（update bit）と、再構築ビット（rebuild bit）を持つ構成としてもよい（図９を参照して後述する）。あるいは、修正マップ１６は、１つのエクステントあたり１ビットの更新ビットを持つ構成としてもよい。修正マップ１６は、例えばDRAM（ダイナミックランダムアクセスメモリ）、あるいは、電源オフ時にも記録データを保持する不揮発性メモリであるEEPROM（電気的に消去及びプログラム可能なROM）等のメモリモジュールに格納される。
【００２６】
本実施形態において、ディスクアレイを構成する複数のディスクのうちの１つが故障し、故障ディスクを予備ディスク等に交換し、交換ディスクへデータを再構築する場合、好ましくは、バックアップストレージ３０から交換ディスクへのデータ転送は、再構築モジュール１７、ディスクアクセスバス／スイッチ１８を介して行われ、ホスト２０から他のディスクへの通常アクセスに影響を与えないように構成される。すなわち、ホスト２０から他のディスクへの通常アクセスは、アクセスモジュール１４、RAIDモジュール１３、ディスクアクセスバス／スイッチ１８を介して行われ、バックアップストレージ３０からの再構築処理は、RAIDモジュール１３とは並列に設けられた再構築モジュール１７と、ディスクアクセスバス／スイッチ１８を介して行われる。RAIDモジュール１３と再構築モジュール１７とは、ディスクアクセスバス／スイッチ１８を構成するクロスバスイッチ等のポートを別々としてもよい。あるいは、ディスクアクセスバス／スイッチ１８を構成するアクセスバスを、RAIDモジュール１３と再構築モジュール１７とに対して、別々に設ける構成としてもよい。かかる構成とすることで、再構築処理が通常アクセスに影響を与えることを、極力抑止している。以下、図１に示したディスクアレイ装置の動作の詳細について、実施例に即して説明する。
【実施例】
【００２７】
図２は、本実施例の正常時の書き込み処理について説明するための流れ図である。アクセスモジュール１４はホスト２０からWRITE（書き込み）要求を受け取る（ステップＳ１１）。なお、特に制限されないが、図２乃至図８では、図１のディスク１１１〜１１ｎの各ディスクとしてHDD（Hard Disk Drive）を用いている。
【００２８】
アクセスモジュール１４は、RAIDモジュール１３に対してWRITEを指示する（WRITEコマンドを送信する）（ステップＳ１２）。
【００２９】
RAIDモジュール１３は、不図示のパリティ生成器にて、データの冗長化処理（パリティ生成）を行う（ステップＳ１３）。
【００３０】
RAIDモジュール１３は、冗長化したデータ・パリティをディスク（HDD）に書き込む（ステップＳ１４）。
【００３１】
アクセスモジュール１４は、修正マップ１６のデータを書き込んだ論理ブロックに対応した更新ビット（update bit）をセットする（ステップＳ１５）。
【００３２】
図３は、本実施例の正常時のREAD処理について説明するための流れ図である。アクセスモジュール１４は、ホスト２０からREAD（読み出し）要求を受け取る（ステップＳ２１）。
【００３３】
アクセスモジュール１４は、RAIDモジュール１３にREADを指示する（READコマンドを発送信する）（ステップＳ２２）。
【００３４】
RAIDモジュール１３は、ディスク（HDD）から指定された論理ブロックのデータを読み出しアクセスモジュール１４に転送する（ステップＳ２３）。
【００３５】
アクセスモジュール１４は、ディスクアレイから読み出されたデータをホスト２０に送信する（ステップＳ２４）。
【００３６】
図４は、本実施例の差分バックアップ処理について説明するための流れ図である。差分バックアップは、バックアップ処理後に更新された箇所（例えば論理ブロック）だけを選択的にバックアップする処理である。以下、差分バックアップ処理について説明する。
【００３７】
バックアップモジュール１５は、修正マップ１６中の更新ビット（Update bit）がセットされた論理ブロックを１つ探索する（ステップＳ３１）。
【００３８】
修正マップ１６中の更新ビット（Update bit）がセットされた論理ブロックが存在する場合、以下の処理を繰り返す（ステップＳ３２）。
【００３９】
修正マップ１６中で検索された論理ブロックの更新ビット（Update bit）をクリアする（ステップＳ３３）。更新ビットのクリアは、更新済みを表す。
【００４０】
バックアップモジュール１５は、RAIDモジュール１３から検索した論理ブロックのデータを読み出す（ステップＳ３４）。
【００４１】
バックアップモジュール１５は、読み出したブロックのデータをバックアップストレージ３０に転送する（ステップＳ３５）。
【００４２】
バックアップストレージ３０は、転送されたデータを記録する（ステップＳ３６）。
【００４３】
図５は、本実施例において、ディスク（HDD）がクラッシュした前後の処理について説明するための流れ図である。
【００４４】
正常動作から、ディスク（HDD）のクラッシュ発生により、障害時動作が開始される（ステップＳ４２）。
【００４５】
クラッシュしたディスク（HDD）を新規のディスク（HDD）に交換する（ステップＳ４３）。なお、新規ディスクはディスクアレイに用意されている予備ディスクであってもよい。また障害検出、及び故障ディスクの予備ディスクへの交換は、RAIDモジュール１３が自動で行ってもよい。
【００４６】
再構築モジュール１７により、交換ディスクの再構築を開始する（ステップＳ４４）。
【００４７】
バックアップストレージ３０から、交換ディスク（新規HDD）にデータを書き込む（ステップＳ４５）。
【００４８】
修正マップ（Modify  Map）１６を用いて、更新ビットのセットされている論理ブロックのデータを生成し、交換ディスク（新規HDD）に、生成したデータを書き込む（ステップＳ４６）。論理ブロックのデータの生成は、RAIDモジュール１３の情報（パリティブロックとデータのストライピング情報）を参照して、ディスクアレイを構成するディスクのうち交換ディスク以外の他のディスクのデータから、データ（あるいはパリティ）を生成し、交換ディスクに書き込む。
【００４９】
交換ディスクの再構築が終了し、正常動作に復旧する（ステップＳ４７）。
【００５０】
図６は、本実施例において、ディスクにクラッシュ発生から再構築完了までの間のWRITE処理について説明するための流れ図である。この場合、故障ディスク以外のディスクへのデータの書き込みが行われ、書き込みデータはバックアップされないため、修正マップの更新ビット（Update bit）がセットされる。
【００５１】
アクセスモジュール１４は、ホスト２０からWRITE要求を受け取る（ステップＳ５１）。
【００５２】
アクセスモジュール１４は、RAIDモジュール１３にWRITEを指示する（ステップＳ５２）。
【００５３】
WRITE指示を受けたRAIDモジュール１３は、冗長化処理を行う（ステップＳ５３）。
【００５４】
RAIDモジュール１３は、冗長化したデータ／パリティを、クラッシュしていないディスク（HDD）に書き込む（ステップＳ５４）。
【００５５】
アクセスモジュール１４は、修正マップ１６において、データを書き込んだ論理ブロックに対応した更新ビット（Update bit）をセットし、該論理ブロックに対する再構築ビット（Rebuild bit）をリセット（クリア）する（ステップＳ５５）。
【００５６】
図９は、修正マップ１６における更新ビット（Update bit）と再構築ビット（Rebuild bit）の配置例を示す図である。論理ブロック（例えば１Kバイト）に対して更新ビット（U）と再構築ビット（R）が割当てられ、ｎ個のディスクドライブに対して、（ｍ＋１）×ｎ個分割当てられる。なお、修正マップ１６にキャッシュ構造を採用してもよいことは勿論である。なお、修正マップ１６の内容は、システム運用開始時等に、リセットされる。システムの電源オフ時に、修正マップ１６の内容をディスク等に退避してもよいし、あるいは、修正マップをEEPROM等で構成してもよい。
【００５７】
図７は、本実施例において、ディスクにクラッシュが発生してから、交換ディスク(新規HDD)への再構築完了までのREAD処理について説明するための流れ図である。
【００５８】
アクセスモジュール１４は、ホスト２０からREAD要求を受け取る（ステップＳ６１）。
【００５９】
アクセスモジュール１４は、RAIDモジュール１３にREADを指示する（ステップＳ６２）。
【００６０】
読出し対象のブロックは、クラッシュしたディスク（HDD）内にあるか判定する（ステップＳ６３）。
【００６１】
読出し対象のブロックがクラッシュしたディスク（HDD）内の場合、RAIDモジュール１３は、クラッシュしていないディスクから指定されたブロックに関連するデータを読み出す（ステップＳ６４）。
【００６２】
RAIDモジュール１３は、指定されたブロックの関連するデータ（パリティ）から指定されたブロック／パリティブロック内のデータを演算して作成する（ステップＳ６５）。
【００６３】
アクセスモジュール１４を介して作成したデータをホスト２０に送る（ステップＳ６６）。
【００６４】
一方、ステップＳ６３において、読出し対象のブロックがクラッシュしたディスク（HDD）でない場合、RAIDモジュール１３は、指定されたブロックのデータを読み出し（ステップＳ６７）、アクセスモジュール１４を介して作成したデータをホスト２０に送る（ステップＳ６８）。
【００６５】
図８は、本実施例の再構築モジュール１７の再構築処理を説明するための流れ図である。以下、図８を参照して、再構築モジュール１７の処理を説明する。
【００６６】
再構築ディスクの対象ブロック（論理ブロック）を先頭に設定する（ステップＳ７１）。
【００６７】
全ブロック（ブロック）の処理を完了するまでの以下の処理を繰り返す（ステップＳ７２）。
【００６８】
ステップＳ７３において、該対象ブロックがパリティブロックであるか否か判定する。なお、再構築モジュール１７は、例えば、RAIDモジュール１３に保持される管理情報（不図示）を参照して、再構築対象の交換ディスク（新規HDD）の該対象ブロックがパリティブロックであるか否かを判定する。
【００６９】
ステップＳ７３の判定において、該対象ブロックがパリティブロックでない場合、該対象ブロックに該当するデータを、バックアップストレージ３０から読み出す（ステップＳ７４）。
【００７０】
バックアップストレージ３０から読み出したデータを、交換ディスク（新規HDD）の対応するブロック（＝該対象ブロック）に書き込む（ステップＳ７５）。
【００７１】
つづいて、対象ブロックを、次のブロックに変更する（ステップＳ７９）。
【００７２】
ステップＳ７３の判定において、該対象ブロックがパリティブロックの場合、該対象ブロックに関連する論理ブロックのデータを、バックアップストレージ３０から読み出す（ステップＳ７６）。本実施例において、バックアップストレージ３０には、バックアップ時に、ディスクアレイのパリティブロックはバックアップデータとして格納されない。このため、ステップＳ７３の判定の結果、交換ディスク（新規HDD）に書き込む対象ブロックがパリティブロックの場合、再構築モジュール１７は、ディスクアレイを構成する他のディスク（アレイを構成する、交換ディスク以外のディスク）の、該対象ブロックに関連するブロックのデータを、バックアップストレージ３０から読み出す。
【００７３】
そして、再構築モジュール１７は、バックアップストレージ３０から読み出したデータ（該対象ブロックに関連する他のディスクのブロックのデータ）から、該対象ブロックに格納されるべきパリティデータを生成する（ステップＳ７７）。
【００７４】
次に、再構築モジュール１７は、作成したパリティデータを、交換ディスク（新規HDD）の対応するブロック（該対象ブロック）に書き込む（ステップＳ７８）。
【００７５】
ステップＳ７２の判定において、全ブロックの処理が完了したら、交換ディスク（新規HDD）に格納するブロックに関連するブロックで更新ビット（update bit）がセットされており、且つ、再構築ビット（rebuild bit）がセットされていないブロック（再構築済みでないブロック）を検索する（ステップＳ８０）。すなわち、バックアップ開始後、修正されたブロックで、再構築未完了のブロックを探す。
【００７６】
検索の結果、該当するブロックが存在する場合（ステップＳ８１のYes）、検索されたブロックに対応する修正マップ１６の再構築ビット（rebuild bit）をセットする（ステップＳ８２）。修正マップ１６において、論理ブロックの再構築ビット（rebuild bit）のセットは、当該論理ブロックの交換ディスクへの再構築が完了したことを表す。
【００７７】
検索されたブロックに関連するブロックのデータを、ディスクアレイの他のディスク（HDD）から読み出す（ステップＳ８３）。
【００７８】
他のディスク（HDD）から読み出したデータから、交換ディスク（新規HDD）に格納するデータを演算して作成する（ステップＳ８４）。
【００７９】
作成したデータを、交換ディスク（新規HDD）に書き込む（ステップＳ８５）。
【００８０】
ステップＳ８１において、更新ビット（update bit）がセットされており、且つ、再構築ビット（rebuild bit）がセットされていないブロックが存在しない場合には、ディスクアレイの状態を、正常状態に変更する（ステップＳ８５）。
【００８１】
以上、本実施例の動作について説明したが、以下では、実施例の変形例のいくつかについて説明する。
【００８２】
再構築モジュール１７は、修正マップ１６を参照して、故障ディスク（新規HDD）のブロックのうち、更新されているもの（更新ビット（update bit）がセットされているブロック）は、バックアップストレージ３０からの交換ディスク（新規HDD）への書き戻しは行わないようにしてもよい。更新されているものは、例えば図８のステップＳ８３乃至８５に示したように、ディスクアレイの他のディスク（HDD）から作成されたデータが書き込まれるためである。
【００８３】
別の変形例において、交換ディスク（新規HDD）の再構築中に、故障ディスクに対して行われた更新は、交換ディスク（新規HDD）に、そのまま書き込むようにしてもよい。再構築モジュール１７による再構築の実行中に、アクセスモジュール１４が、ホスト２０からWRITE要求を受け取ったとき、WRITEコマンドをRAIDモジュール１３に発行し、RAIDモジュール１３を介して交換ディスク（新規HDD）に書き込む。交換ディスク（新規HDD）の当該ブロックには、バックアップ処理以降、最新のデータが書き込まれたことになり、アクセスモジュール１４は、修正マップの更新ビット（update bit）はセットしない。一方、当該ブロックの再構築ビットはセットしてもよい。このため、再構築モジュール１７が、バックアップストレージ３０から当該ブロックのデータを再構築することは省略される（図８のステップＳ８１の判定でNO分岐）。
【００８４】
別の変形例において、再構築中の交換ディスク（新規HDD）のブロックデータのうち、最新データとなっているものは、再構築終了前でも、交換ディスク（新規HDD）へのアクセスを許可する構成としてもよい。アクセスモジュール１４は、修正マップ１６の再構築ビットがセットされているもの（ただし、更新フラグがリセットされている）について、ホスト２０からのアクセス要求に対して交換ディスク（新規HDD）へのアクセスを許可する制御を行う。
【００８５】
なお、上記実施例において、バックアップストレージ３０は、ディスク（HDD）以外の記録媒体（テープ等）であってもよいことは勿論である。バックアップストレージ３０は、ネットワークによって接続された遠隔地に設置してもよい。
【００８６】
また、図１のディスクアクセスバス／スイッチ１８として、Fibre channel fabricやクロスバスイッチを用いてもよい。かかる構成の場合、交換ディスク（新規HDD）へのアクセスと他のディスクへのアクセスをnon-blocking(ノンブロッキング)とすることができる。あるいは、図１のディスクアクセスバス／スイッチ１８として、２重化したFibre channel arbitrated loopを用い、一方を交換ディスク（新規HDD）へのアクセス用、他方を他のディスク（HDD）へのアクセス用に用いるようにしてもよい。かかる構成の場合にも、交換ディスクへのアクセスと他のディスクへのアクセスをnon-blocking(ノンブロッキング)とすることができる。
【００８７】
以上本発明を上記実施例に即して説明したが、本発明は上記実施例の構成にのみ限定されるものでなく、本発明の範囲内で当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【図面の簡単な説明】
【００８８】
【図１】本発明の一実施例の構成を示す図である。
【図２】本発明の一実施例の正常時WRITE処理を説明するための流れ図である。
【図３】本発明の一実施例のREAD処理を説明するための流れ図である。
【図４】本発明の一実施例の差分バックアップ処理を説明するための流れ図である。
【図５】本発明の一実施例におけるクラッシュ前後の処理を説明するための流れ図である。
【図６】本発明の一実施例におけるクラッシュから再構築完了までのWRITE処理を説明するための流れ図である。
【図７】本発明の一実施例におけるクラッシュから再構築完了までのREAD処理を説明するための流れ図である。
【図８】本発明の一実施例の再構築処理を説明するための流れ図である。
【図９】更新ビットの構成の一例を示す図である。
【図１０】従来のディスクアレイの典型的な構成を示す図である。
【符号の説明】
【００８９】
１０  ディスクアレイ
１１  ディスク
１２  ディスクアクセスバス
１３  RAIDモジュール
１４  アクセスモジュール
１５  バックアップモジュール
１６  修正マップ
１７  再構築モジュール
１８  ディスクアクセスバス／スイッチ
２０  ホスト
３０  バックアップストレージ
【図１】
2006252126.tif 000003
【図２】
2006252126.tif 000004
【図３】
2006252126.tif 000005
【図４】
2006252126.tif 000006
【図５】
2006252126.tif 000007
【図６】
2006252126.tif 000008
【図７】
2006252126.tif 000009
【図８】
2006252126.tif 000010
【図９】
2006252126.tif 000011
【図１０】
2006252126.tif 000012