(57)【要約】【課題】記憶装置間のデータの整合性を保持しつつ、効率的なリカバリを行うリカバリ技術を提供する。【解決手段】ストレージ制御システムは、情報を格納する第１格納領域と、第１格納領域が区分された各区画に格納される情報を示す区画情報の属性に関する属性情報を含む管理情報を格納する第２格納領域と、を含む複数の格納部と、複数の格納部から管理情報を取得する取得部と、取得した前記管理情報を比較して異常な管理情報があるかを判定する判定部と、異常な管理情報があると判定された場合、正常な管理情報の区画毎の属性情報に基づいて、正常な管理情報が取得されたいずれかの格納部から、異常な管理情報が取得された格納部の第１格納領域に格納される情報を、区画単位で再構成するリカバリ部と、を備えることにより、上記課題の解決を図る。【選択図】図２
2014059769.tif 000002
【特許請求の範囲】
【請求項１】
情報を格納する第１格納領域と、前記第１格納領域が区分された各区画に格納される情報を示す区画情報の属性に関する属性情報を含む管理情報を格納する第２格納領域と、を含む複数の格納部と、
前記複数の格納部から前記管理情報を取得する取得部と、
取得した前記管理情報を比較して異常な前記管理情報があるかを判定する判定部と、
前記異常な管理情報があると判定された場合、正常な管理情報の区画毎の属性情報に基づいて、該正常な管理情報が取得されたいずれかの前記格納部から、前記異常な管理情報が取得された前記格納部の前記第１格納領域に格納される情報を、区画単位で再構成するリカバリ部と、
を備えることを特徴とするストレージ制御システム。
【請求項２】
前記ストレージ制御システムは、さらに、
前記格納部への対象情報の書き込み要求があった場合、前記複数の格納部において、前記第１格納領域に該対象情報を書き込み、該対象情報を書き込んだ区画に格納される区画情報に対応する属性情報に、該区画情報が有効であるか否かを示す情報を書き込む書き込み部
を備え、
前記リカバリ部は、前記正常な管理情報が取得されたいずれかの前記格納部から、前記区画情報が有効であることを示す属性情報を有する該区画情報を抽出し、前記異常な管理情報が取得された格納部の前記第１格納領域における対応する区画に、抽出した該区画情報を格納する
ことを特徴とする請求項１に記載のストレージ制御システム。
【請求項３】
前記書き込み部は、前記書き込みが失敗した格納部がある場合、該書き込みが成功した格納部の管理情報における、前記書き込み要求によるアクセス範囲に対応する前記区画に格納された前記区画情報の前記属性情報に、リカバリが必要であることを示す情報を書き込み、
前記リカバリ部は、前記書き込みが成功した前記格納部から、前記リカバリが必要であることを示す属性情報を有する該区画情報を抽出し、前記書き込みが失敗した格納部の前記第１格納領域における対応する区画に、抽出した該区画情報を格納する
ことを特徴とする請求項２に記載のストレージ制御システム。
【請求項４】
前記リカバリが必要であることを示す属性情報は、前記書き込みが失敗した格納部を識別する情報である
ことを特徴とする請求項３に記載のストレージ制御システム。
【請求項５】
前記属性情報は、前記区画情報の種別情報を含み、
前記書き込み部は、前記書き込み対象情報の書き込み要求があった場合であって、該書き込み要求によるアクセス範囲に対応する前記区画に格納された区画情報の属性情報に含まれる前記種別情報がメタデータを示す場合、前記書き込み対象情報を前記格納部の前記第１格納領域とバックアップ領域とに格納し、前記種別情報がメタデータを示さない場合、書き込み対象情報を前記第１格納領域に格納する
ことを特徴とする請求項２〜４のうちいずれか１項に記載のストレージ制御システム。
【請求項６】
コンピュータに、
情報を格納する第１格納領域と、前記第１格納領域が区分された各区画に格納される情報を示す区画情報の属性に関する属性情報を含む管理情報を格納する第２格納領域と、を含む、複数の格納部から前記管理情報を取得し、
取得した前記管理情報を比較して異常な前記管理情報があるかを判定し、
前記異常な管理情報があると判定された場合、正常な管理情報の区画毎の属性情報に基づいて、該正常な管理情報が取得されたいずれかの前記格納部から、前記異常な管理情報が取得された前記格納部の前記第１格納領域に格納される情報を、区画単位で再構成する
処理を実行させることを特徴とするリカバリプログラム。
【請求項７】
コンピュータが、
情報を格納する第１格納領域と、前記第１格納領域が区分された各区画に格納される情報を示す区画情報の属性に関する属性情報を含む管理情報を格納する第２格納領域と、を含む、複数の格納部から前記管理情報を取得し、
取得した前記管理情報を比較して異常な前記管理情報があるかを判定し、
前記異常な管理情報があると判定された場合、正常な管理情報の区画毎の属性情報に基づいて、該正常な管理情報が取得されたいずれかの前記格納部から、前記異常な管理情報が取得された前記格納部の前記第１格納領域に格納される情報を、区画単位で再構成する
処理を実行することを特徴とするリカバリ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置の制御技術に関する。
【背景技術】
【０００２】
ストレージ装置とは、複数のディスク装置を搭載したディスク記憶システムである。ストレージ装置は、ホストから送信されたデータをディスク装置に書き込むためのコントローラモジュール（ＣＭ：Controller Module、以下では「ＣＭ」と呼ぶ。）を有している。
【０００３】
ストレージ装置には、ＣＭ内外にＢＵＤ（Back up Utility Device）を搭載している。ＢＵＤの一例として、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）、ＵＳＢ（Universal Serial Bus）メモリ装置が使用されている。ＢＵＤには、装置ログやファームウェアアーカブなど装置内のレコードが格納されている。
【０００４】
ＢＵＤ上のデータは、利用目的毎（システム機能の要件）に必要に応じて、複数のＢＵＤによって冗長化されている。ＢＵＤ間のデータの整合性と冗長性の保持は、ＣＭの等価制御部によって実現される。その結果、ＢＵＤ間のデータは、相互に等価を保持することができる。
【０００５】
記憶装置のリカバリ技術として次の技術がある。当該技術では、ＯＳ（Operating System）が起動した時に、サービスプログラムは、記憶装置の制御部に対してメタデータ記録・判断・修復部をロードする。制御部がデータロストエラーを検出した場合、メタデータ記録・判断・修復部は、次の処理を行う。すなわち、メタデータ記録・判断・修復部は、データ記憶部のデータロストエラーのエラー発生アドレスおよびメタデータバックアップ部から読み出したメタデータに基づいてエラー発生アドレスがメタデータ領域にあるかファイルデータ領域にあるかを判断する。メタデータ記録・判断・修復部は、エラー発生アドレスがメタデータ領域にあればメタデータバックアップ部のメタデータ領域バックアップデータをデータ記憶部のメタデータ領域に修復する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−１４９２４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記技術は、記憶装置単体に関するリカバリ技術であり、複数の記憶装置間のデータの整合性を考慮したリカバリシステムに適応したリカバリ技術ではない。そのため、冗長化したシステムにおいて複数の記憶装置間のデータで整合性がない場合、当該技術を用いてシステムを復旧させようとすると、かなりの時間を要することになる。
【０００８】
本発明の一側面では、記憶装置間のデータの整合性を保持しつつ、効率的なリカバリを行うストレージ制御技術を提供する。
【課題を解決するための手段】
【０００９】
本実施形態の一側面に係るストレージ制御システムは、複数の格納部、取得部、判定部、リカバリ部を含む。格納部は、第１格納領域と、第２格納領域とを含む。第１格納領域は、情報を格納する。第２格納領域は、第１格納領域が区分された各区画に格納される情報を示す区画情報の属性に関する属性情報を含む管理情報を格納する。取得部は、複数の格納部から管理情報を取得する。判定部は、取得した管理情報を比較して異常な管理情報があるかを判定する。リカバリ部は、異常な管理情報があると判定された場合、正常な管理情報の区画毎の属性情報に基づいて、正常な管理情報が取得されたいずれかの格納部から、異常な管理情報が取得された格納部の第１格納領域に格納される情報を、区画単位で再構成する。
【発明の効果】
【００１０】
本発明によれば、記憶装置間のデータの整合性を保持しつつ、効率的なリカバリを行うことができる。
【図面の簡単な説明】
【００１１】
【図１】ＢＵＤ間のデータの整合性を保持する等価制御について説明するための図である。
【図２】本実施形態における、ストレージ制御システムの一例を示す。
【図３】本実施形態におけるストレージシステムのハードウェア構成を示す。
【図４】本実施形態におけるＣＭの機能ブロック図を示す。
【図５】本実施形態におけるユーザ領域の一例を示す。
【図６】本実施形態における等価管理データのデータ構成を示す。
【図７】本実施形態におけるブロック属性マッピング情報を説明するための図である。
【図８】本実施形態におけるブロック属性情報のデータ構造を示す。
【図９】本実施形態におけるストレージ装置の初期起動時の等価制御部の動作フローを示す。
【図１０】本実施形態におけるストレージ装置の初期起動時のＣＭ間の動作シーケンスの全体図である。
【図１１Ａ】本実施形態におけるＢＵＤの初期化処理（Ｓ３４）の詳細なシーケンス図（その１）である。
【図１１Ｂ】本実施形態におけるＢＵＤの初期化処理（Ｓ３４）の詳細なシーケンス図（その２）である。
【図１２Ａ】本実施形態におけるＢＵＤ間の等価処理（Ｓ３６）の詳細なシーケンス図（その１）である。
【図１２Ｂ】本実施形態におけるＢＵＤ間の等価処理（Ｓ３６）の詳細なシーケンス図（その２）である。
【図１２Ｃ】本実施形態におけるＢＵＤ間の等価処理（Ｓ３６）の詳細なシーケンス図（その３）である。
【図１３】本実施形態における各機能制御部からＢＵＤへ読み出し処理を行う場合の等価制御部の動作フローを示す。
【図１４】本実施形態における機能制御部からＢＵＤへ読み出し処理を行う場合のＣＭ間の動作シーケンスの全体図である。
【図１５】本実施形態における読み出し処理（Ｓ１１６）の詳細なシーケンス図である。
【図１６Ａ】本実施形態における各機能制御部からＢＵＤへ書込み処理を行う場合の等価制御部の動作フロー（その１）を示す。
【図１６Ｂ】本実施形態における各機能制御部からＢＵＤへ書込み処理を行う場合の等価制御部の動作フロー（その２）を示す。
【図１７】本実施形態における書込み処理シーケンスの全体図である。
【図１８Ａ】本実施形態における書き込み処理（Ｓ１５６）の詳細なシーケンス図（その１）である。
【図１８Ｂ】本実施形態における書き込み処理（Ｓ１５６）の詳細なシーケンス図（その２）である。
【図１９】本実施形態におけるリカバリ処理を行う場合の等価制御部の動作フローを示す。
【発明を実施するための形態】
【００１２】
図１は、ＢＵＤ間のデータの整合性を保持する等価制御について説明するための図である。ＣＭ＃０（１ａ）、ＣＭ＃（１ｂ）１は、ＢＵＤ９ａ−ＢＵＤ９ｂ間のデータの整合性を保持する。ＢＵＤ９ａ，９ｂは、記憶領域（ユーザ領域）１２ａ，１２ｂと、等価管理領域１０ａ，１０ｂと、バックアップ領域１４ａ，１４ｂとを有する。記憶領域（ユーザ領域）１２ａ，１２ｂは、ＣＭ１ａ，１ｂの各機能（機能＃Ａ、＃Ｂ、＃Ｃ・・・）がアクセスして使用する領域であり、実データ１３ａ，１３ｂを格納する。等価管理領域１０ａ，１０ｂと、バックアップ領域１４ａ，１４ｂは、等価制御部３ａ、３ｂが使用するための記憶領域である。等価管理領域１０ａ，１０ｂには、ＢＵＤ９ａ−ＢＵＤ９ｂ間でデータの整合性を保持するための等価管理データ１１ａ，１１ｂが格納される。バックアップ領域１４ａ，１４ｂには、データの書き込み中の不良のファーム機能停止（電源断など）に考慮して、ユーザ領域、等価管理領域への書き込みのためにデータが一時的にバックアップされる。
【００１３】
図１では、ＢＵＤアクセス機能＃Ａ（以下、機能＃Ａと称する）が使用する記憶領域については、符号「＃Ａ」が付与されている。ＣＭ＃０（１ａ）、ＣＭ＃１（１ｂ）は同一の構成を有するので、以下ではＣＭ＃０（１ａ）について説明し、ＣＭ＃１（１ｂ）についてはその説明を省略する。
【００１４】
ＣＭ＃０（１ａ）は、機能制御部２ａ、等価制御部３ａ、ＢＵＤアクセス制御部７ａ、ＢＵＤドライバ８ａ、ＢＵＤ＃０（９ａ）を含む。機能制御部２ａは、ＣＭの機能（機能♯Ａ〜Ｎ）ごとに存在し、図１では、一例として、ＢＵＤアクセス機能Ａ＃の機能制御部が示されている。ＢＵＤアクセス機能＃Ａの機能制御部２ａは、ＢＵＤアクセス機能＃Ａを実現させるために、ＢＵＤ９ａへのアクセスを実行させる制御部である。
【００１５】
等価制御部３ａは、等価管理領域１０ａにおいて、ＢＵＤ９ａ−ＢＵＤ９ｂ間でデータの冗長性を管理する。具体的には、等価制御部３ａは、等価管理データを用いて、各機能が使用するユーザ領域の実データ１３ａが、ＢＵＤ９ａ−ＢＵＤ９ｂ間で同じになるように管理している。等価制御部３ａは、バックアップ領域１４ａに実データ１３ａを一時的にバックアップし、その実データを用いて書き込み処理をリトライする。等価制御部３ａは、ライト制御部４ａ、ライトサブ制御部５ａ、等価チェック制御部６ａを含む。
【００１６】
ライト（write）制御部４ａは、ＢＵＤ９ａ，９ｂに対する、機能＃Ａ〜＃Ｎからのデータの書き込み要求を制御するメインルーチンである。ライトサブ（write sub）制御部５ａは、各制御部から指定されたＢＵＤ９ａの記憶領域にデータを書き込むサブルーチンである。
【００１７】
等価チェック制御部６ａは、機能＃Ａ〜＃Ｎで使用する記憶領域に保持する実データ１３ａ，１３ｂがＢＵＤ９ａ−ＢＵＤ９ｂ間で等価状態にあるかチェックする。等価状態にないＢＵＤが存在する場合は、等価チェック制御部６ａは、等価状態となるようにリカバリ処理を動作させる。 
【００１８】
ＢＵＤアクセス制御部７ａは、アクセス先のアドレスについて、論理アドレス−物理アドレス変換を行う。ＢＵＤドライバ８ａは、ＢＵＤ９ａ−ＢＵＤ９ｂ間の通信を行うドライバである。ＣＭ間通信ドライバ１６ａは、他ＣＭ１ｂとの通信を行うドライバである。    
【００１９】
ＢＵＤ９ａは、各機能に対応する、等価管理領域（１０ａ）、ユーザ領域（１２ａ）、バックアップ領域（１４ａ）を有する。図１では、一例として、機能＃Ａに対応する等価管理領域＃Ａ（１０ａ）、ユーザ領域＃Ａ（１２ａ）、バックアップ領域＃Ａ（１４ａ）が記載されている。
【００２０】
図１において、機能＃Ａ（２ａ）からＢＵＤ９ａ，９ｂのユーザ領域＃Ａへの書き込み要求を受けると（Ｓ１）、等価制御部３ａは、ＢＵＤ９ａ，９ｂにおいて機能＃Ａに対応する等価管理領域＃Ａから等価管理データを読み出す。すなわち、機能＃Ａから等価制御部３ａへ書込み要求があった場合（Ｓ１）、ライト制御部４ａは等価チェック制御部６ａに等価チェック要求を行う（Ｓ２）。等価チェック制御部６ａは、ＢＵＤアクセス制御部７ａ、ＢＵＤドライバ８ａを介して、ＢＵＤ＃０（９ａ）の等価管理領域＃Ａ（１０ａ）から等価管理データ＃Ａ（１１ａ）を読み出す（Ｓ３，Ｓ４）。また、等価チェック制御部６ａは、ＢＵＤアクセス制御部７ａ、ＢＵＤドライバ８ａ、ＣＭ間通信ドライバ１６ａ，１６ｂ、ＢＵＤドライバ８ｂを介して、ＢＵＤ＃１（９ｂ）の等価管理領域＃Ａから等価管理データ＃Ａ（１１ｂ）を読み出す（Ｓ３，Ｓ４）。
【００２１】
次に、等価チェック制御部６ａは、ＢＵＤ９ａ，９ｂの等価管理データを比較して、異常がないかをチェックする。異常な等価管理データがある場合、等価チェック制御部６ａは、そのチェック結果をライト制御部４ａへ送信する（Ｓ５）。ライト制御部４ａは、リカバリ制御部（不図示）に異常なBUDに対して、正常なBUDのデータ（リカバリデータ）を書き込むように要求を行う（Ｓ６）。
【００２２】
書込みを行う場合、等価制御部３ａ，３ｂ（ライトサブ制御部５ａ，５ｂ）は、停電時などの即断に備えて、リカバリデータをバックアップ用データとしてバックアップ領域に書き込む（Ｓ７、Ｓ８）。バックアップ用データは、書込み情報（書込み位置と書込みサイズ）、等価管理データ、実データを含む。
【００２３】
それから、等価制御部３ａ，３ｂ（ライトサブ制御部５ａ，５ｂ）は、リカバリのために、実データの書き込み前に、等価管理データを無効化する（Ｓ９，Ｓ１０）。その後、等価制御部３ａ，３ｂ（ライトサブ制御部５ａ，５ｂ）は、実データを、ユーザ領域＃Ａの指定の位置へ書き込む（Ｓ１１、Ｓ１２）。等価制御部３ａ，３ｂ（ライトサブ制御部５ａ，５ｂ）は、実データの書き込み後に等価管理データを有効にする（Ｓ１３，Ｓ１４）。
【００２４】
このように、ＣＭ内の機能からＢＵＤの領域へのデータの書き込み要求が発生すると、ＢＵＤに対して複数の書き込み処理が行われる。さらに、実データは、ユーザ領域及びバックアップ領域にそれぞれ書き込まれ、書込み処理時間は単純に２倍以上の時間を要する。このため、ＳＳＤのような高速アクセスデバイスを使用するとしても、書込み処理のオーバヘッドは無視することができない。
【００２５】
また、ＣＭ保守（ＣＭの動作確認検査、ＣＭの組み込み作業）時には、管理しているユーザ領域内の全データをコピーしているので、非常に時間がかかり、組み込み時間が長くなっている。
【００２６】
さらに、ＢＵＤを初めて使用する場合、初回の読み出し処理において、ＢＩＤ（Block ID）エラーなど発生しないように、使用する領域について、データ「０」を書き込みして初期化している。したがって、ＢＵＤの容量が大きくなるにつれて、ＢＵＤ初期化に時間がかかり、組み込み時間が長くなっている。
【００２７】
等価制御部を介してＣＭ内の各機能がＢＵＤへアクセスする前後では、ユーザ領域へのアクセス競合を防止するために、ＢＵＤのユーザ領域に対してアクセスのロック／アンロックを行って、排他制御が行われる。これにより、ロックされていないユーザ領域を使用する機能制御部がＢＵＤにアクセスすることが可能になる一方で、ロックされているユーザ領域を使用する機能制御部はＢＵＤにアクセスすることができない。したがって、ＢＵＤに対するアクセス競合を防止して、書き込み処理においてＢＵＤ間でデータの整合性を保持することができる。
【００２８】
等価制御部は、機能制御部からのアクセス要求によるアクセス先の領域に格納された情報がＢＵＤ間で等価状態（データとして等しい状態）となるように制御する。等価制御部によるＢＵＤ間の等価状態チェックは、等価管理領域に格納されている等価管理データを照合して行われる。
【００２９】
等価管理データは、該当するユーザ領域への実データの書き込み要求で更新されるものであり、更新時のタイムスタンプ情報を含む。等価管理データは、ユーザ領域へのデータの書き込み前に一旦無効状態にされ、書込み処理が完了した時点で有効状態に戻される。これにより、等価管理データが有効のＢＵＤの領域、またはタイムスタンプが新しいＢＵＤの領域から、等価管理データが無効のＢＵＤの領域またはタイムスタンプが古いＢＵＤの領域へデータが等価制御部によりコピーされ、等価状態を維持するように制御される。
【００３０】
ところが、書込み処理中に停電やプログラムが即時停止する事象が発生した場合、各領域の等価管理データは無効状態のままとなる。ＢＵＤへの書き込み処理は、各ＣＭで同時に行われるため、復旧時に有効状態の等価管理データが存在しなくなる場合、データがロストすることになる。
【００３１】
その問題を解決するために、ユーザ領域へのデータの書き込み前に、バックアップ領域へ一度データの書き込みを行う。停電等のプログラム即時停止が発生しても、復電時に書込み処理中と判断した場合、バックアップ領域のデータから書き込み処理をリトライする。
【００３２】
これにより、各領域内のレコードの整合性を維持することができる。バックアップ処理は、いつ発生するか分からない事象に備えて、書込み要求時に毎回実行されるので、書き込み処理性能とトレードオフの仕組みとなっている。
【００３３】
また、停電が発生した際にメモリ上のデータを不揮発性デバイスにバックアップする仕組みがある。しかしながら、各機能からの同時アクセスでかつ最大アクセスサイズを考慮したメモリ空間を用意しなければならず、メモリ空間を圧迫するので、当該仕組みを利用することは難しい。
【００３４】
また、等価制御部は、管理する領域内のデータ構造を知らないので、ユーザ領域内のデータはすべて有効であると判断する。このため、ＣＭ保守またはＢＵＤ保守において、保守されたＢＵＤ側にデータを他の正常なＢＵＤからコピーする際に全データをコピーするしかなく、組み込み処理に時間を要する。
【００３５】
さらに、コピー処理中にコピー元データの読み出しができなかった場合、その読み出しができない領域がたとえ未使用領域だとしても、コピー処理していた領域を全て破棄するしかなく、データロストとなる。
【００３６】
上記課題に鑑み、本実施形態では、ＢＵＤへの書き込みアクセス時に効率的な書き込み処理を行うことにより、書き込み処理の向上及びＣＭ組み込み等でのリカバリ処理速度の向上を図る。
【００３７】
図２は、本実施形態における、ストレージ制御システムの一例を示す。ストレージ制御システム２１は、複数の格納部２２、取得部２３、判定部２４、リカバリ部２５を含む。
【００３８】
複数の格納部２２はそれぞれ、第１格納領域と、第２格納領域とを含む。第１格納領域は、情報を格納する。第２格納領域は、管理情報を格納する。管理情報は、第１格納領域が区分された各区画に格納される情報を示す区画情報の属性に関する属性情報を含む。格納部２２の一例として、ＢＵＤ６４が挙げられる。第１格納領域の一例として、ユーザ領域６６が挙げられる。第２格納領域の一例として、等価管理領域６５が挙げられる。管理情報の一例として、等価管理データが挙げられる。属性情報の一例として、ブロック属性情報が挙げられる。
【００３９】
取得部２３は、複数の格納部２から管理情報を取得する。取得部２３の一例として、等価チェック制御部５９が挙げられる。
【００４０】
判定部２４は、取得した管理情報を比較して異常な管理情報があるかを判定する。判定部４の一例として、等価チェック制御部５９が挙げられる。
【００４１】
リカバリ部２５は、異常な管理情報があると判定された場合、次の処理を行う。すなわち、リカバリ部２５は、正常な管理情報の区画毎の属性情報に基づいて、正常な管理情報が取得されたいずれかの格納部２２から、異常な管理情報が取得された格納部２２の第１格納領域に格納される情報を、区画単位で再構成する。リカバリ部２５の一例として、リカバリ制御部５５が挙げられる。
【００４２】
このように構成することにより、記憶装置間のデータの整合性を保持しつつ、効率的なリカバリを行うことができる。すなわち、区画単位でのリカバリが可能になるので、リカバリに要する時間を短縮することができる。
【００４３】
ストレージ制御システム２１は、さらに、書き込み部２６を含む。書き込み部２６は、格納部２２への対象情報の書き込み要求があった場合、複数の格納部２２の第１格納領域に対象情報を書き込む。このとき、書き込み部２６は複数の格納部２２の第２格納領域に格納された管理情報における対象情報を書き込んだ領域の区画に対応する属性情報に、区画情報が有効であるか否かを示す情報を書き込む。書き込み部２６の一例として、ライト制御部５３が挙げられる。この場合、リカバリ部２５は、正常な管理情報が取得されたいずれかの格納部２２から、区画情報が有効であることを示す属性情報を有する区画情報を抽出する。そして、リカバリ部２５は、異常な管理情報が取得された格納部２２の第１格納領域における対応する区画に、抽出した区画情報を格納する。
【００４４】
このように構成することにより、正常な等価管理データが取得されたＢＵＤから、有効なデータをブロック単位で抽出して、リカバリ対象ＢＵＤの、対応するブロックに書き込むことができる。これにより、無効なデータの抽出及び書き込みを行う必要がないので、リカバリに要する時間を短縮することができる。
【００４５】
書き込み部２６は、書き込みが失敗した格納部２２がある場合、書き込みが成功した格納部２２の管理情報における、書き込み要求によるアクセス範囲に対応する区画に格納された前記区画情報の前記属性情報に、リカバリが必要であることを示す情報を書き込む。
【００４６】
リカバリ部２５は、書き込みが成功した格納部２２から、リカバリが必要であることを示す属性情報を有する区画情報を抽出する。リカバリ部２５は、書き込みが失敗した格納部２２の前記第１格納領域における対応する区画に、抽出した区画情報を格納する。
【００４７】
このように構成することにより、リカバリを行う場合、ユーザ領域全域ではなく、リカバリが必要であることを示す属性情報を有するブロックについて、リカバリを行えばよいので、リカバリに要する時間を短縮することができる。
【００４８】
また、リカバリが必要であることを示す属性情報は、書き込みが失敗した格納部２２を識別する情報である。このように構成することにより、リカバリ対象のＢＵＤを特定することができる。
【００４９】
属性情報は、区画情報の種別情報を含む。書き込み部２６は、前記書き込み対象情報の書き込み要求があった場合であって、書き込み要求によるアクセス範囲に対応する区画に格納された区画情報の属性情報に含まれる種別情報がメタデータを示す場合、次の処理を行う。すなわち、書き込み部２６は、書き込み対象情報を格納部２２の第１格納領域とバックアップ領域とに格納する。書き込み部２６は、その種別情報がメタデータを示さない場合、書き込み対象情報を第１格納領域に格納する。
【００５０】
このように構成することにより、メタデータの書き込みの場合にバックアップを行うようにし、実データの書き込みの場合にはバックアップを行わないので、書き込み処理の時間を短縮することができる。
【００５１】
図３は、本実施形態におけるストレージシステムのハードウェア構成を示す。ストレージシステム３１は、複数のディスク装置３９を搭載したディスク記憶システムである。図３の例では、ホストコンピュータ（以下、ホストと称する）４１からディスク装置３９へのアクセスに関して、冗長化のために、各ディスク装置３９に対するアクセスパスが存在している。またデータ自体についても、ＲＡＩＤ（Redundant Arrays of Independent Disks）を用いて複数台のディスクにデータが分散されて、冗長化した状態で保存されている。
【００５２】
ストレージシステム３１は、ホスト４１、ファイバチャネル（ＦＣ）スイッチ４２、コントローラエンクロージャ（ＣＥ）３２、ドライブエンクロージャ（ＤＥ）４０を含む。ストレージシステム３１は、ドライブエンクロージャ（ＤＥ）４０と、ホスト４１とが、ＦＣスイッチ４２、コントローラモジュール（ＣＭ）３３を介して接続されている。
【００５３】
ホスト４１は、ＦＣスイッチ４２を介してＣＥ３２と通信をして、ＤＥ４０が有するディスク装置３９からデータを読み出したり、ディスク装置３９にデータを書き込んだりする。なお、図３では、１つのホスト４１を図示しているが、複数のホスト４１が、ＣＥ３２に接続されていてもよい。
【００５４】
ＣＥ３２は、複数のＣＭ３３を含む。ＣＭ３３は、ディスク装置３９の動作制御を行う。ＣＭ３３は、ストレージ制御装置として機能する。ストレージシステム３１は、ＣＭ３３を２以上有することで、冗長性を確保する。
【００５５】
ＣＭ３３は、アクセス指示情報として入出力（Ｉ／Ｏ）コマンドをＤＥ４０に送信し、ディスク装置３９の記憶領域に対するデータの入出力指令を行う。また、入出力指令からアクセス監視時間が経過しても応答が得られないときは、ＣＭ３３は、このＩ／Ｏ処理を中断するアボート指示コマンドをＤＥ３３に送信する。
【００５６】
ＣＭ３３は、チャネルアダプタ（ＣＡ）３４、中央演算装置（ＣＰＵ：Central Processing Unit）３５、記憶部３６、デバイスアダプタ（ＤＡ）３７、ＣＭ間通信インターフェース（I／F）３８を含む。チャネルアダプタ（ＣＡ）３４、ＣＰＵ３５、記憶部３６、デバイスアダプタ（ＤＡ）３７は、内部バスを介して接続されている。
【００５７】
ＣＡ３４は、ＦＣスイッチ４２を介して、ホスト４１と接続されている。ＣＰＵ３５は、ＣＭ３３全体を制御する。ＣＭ間通信I／F３８は、他のＣＭと通信を行うためのインターフェースであり、ＣＭ間通信I／F３８間は、通信線で接続されている。
【００５８】
記憶部３６は、例えば、キャッシュメモリ、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）等の情報を記録するデバイスである。記憶部１６には、ＣＭ３３を動作させるために用いるデータ、及び本実施形態に係るプログラム及び本実施形態で用いるデータ等が格納される。記憶部１６には、ＢＵＤが含まれる。
【００５９】
ＤＡ３７は、ＤＥ４０に接続される。ＣＰＵ３５は、ＤＡ３７を介してＤＥ４０との間でデータの送受信を行う。
【００６０】
ＤＥ４０は、１以上のＤＥより形成される。ＤＥ４０は、複数のディスク装置３９を含み、冗長性を考慮したＲＡＩＤ構成を有する。
【００６１】
図４は、本実施形態におけるＣＭの機能ブロック図を示す。各ＣＭ３３は、機能制御部５１（５１Ａ〜５１Ｎ）、等価制御部５２、ＢＵＤアクセス制御部６２、ＢＵＤドライバ６３、ＢＵＤ６４、ＣＭ間通信ドライバ制御部６８を含む。
【００６２】
機能制御部５１（機能＃Ａ制御部５１Ａ〜機能＃Ｎ制御部５１Ｎ）は、ＢＵＤ６４の領域を使用して、それぞれの機能を実行させる制御部である。機能制御部５１は、ＢＵＤへのアクセス時にアクセスする範囲に対応するブロックの属性を等価制御部５２に渡すＩ／Ｆを含む。ブロックとは、後述するように、ユーザ領域６６を所定のサイズで区分されたことで得られる区画のことである。これにより、機能制御部５１が、メタデータ／データを動的にセットする機能を有していても、等価制御部５２はその機能に対応することができる。
【００６３】
等価制御部５２は、各機能制御部５１が使用するＢＵＤ６４の領域に関して、ＢＵＤ６４間でデータの等価状態を維持し、データを管理する制御部であり、ＣＰＵ３５によって実現される。等価制御部５２は、ライト制御部５３、リード制御部５４、リカバリ制御部５５、ライトサブ制御部５６、リードサブ制御部５７、ロック／アンロック制御部５８、等価チェック制御部５９、ブロック属性管理制御部６０、ブロック属性解析制御部６１を含む。
【００６４】
ライト（write）制御部５３は、各機能制御部５１からの書き込み要求に対する処理を制御するメインルーチンである。リード（read）制御部５４は、各機能制御部５１からの読み出し要求に対する処理を制御するメインルーチンである。 
【００６５】
リカバリ（recovery）制御部５５は、ＢＵＤ６４間でデータが等価状態にない領域に対して、リカバリを制御するメインルーチンである。リカバリ制御部５５は、正常なデータを有するＢＵＤ６４からデータを読み出し、その読み出したデータを、異常なデータを有するＢＵＤ６４に書き込む。
【００６６】
ライトサブ（write sub）制御部５６は、各制御部（５３〜５５，５７〜６１）から指定されたＢＵＤ６４の対象領域にデータを書き込むサブルーチンである。リードサブ（read sub）制御部５７は、各制御部（５３〜５５，５７〜６１）から指定されたＢＵＤ６４の対象領域のデータを読み出すサブルーチンである。 
【００６７】
ロック／アンロック制御部５８は、機能制御部５１からＢＵＤへのアクセスの排他を制御するメインルーチンである。ロック／アンロック制御部５８は、機能制御部５１からＢＵＤへのアクセス要求があった場合、アクセス要求元の機能制御部によるアクセスを許可し、アクセス要求元以外の機能制御部によるアクセスを制限することにより、アクセスの排他制御を行う。
【００６８】
等価チェック制御部５９は、各機能制御部５１で使用するＢＵＤ６４の領域に保持されているデータがＢＵＤ６４間で等価状態にあるかどうかをチェックする。等価状態にないＢＵＤ６４が存在する場合は、等価チェック制御部５９は、等価状態となるようにリカバリ制御部５５にリカバリ処理を実行するように要求する。
【００６９】
ブロック属性管理制御部６０は、各ユーザ領域６６内のブロックの属性を管理するメインルーチンである。ブロック属性管理制御部６０は、等価制御部５２で管理しているユーザ領域６５内で、任意のブロック単位で格納されるデータの種別、有効／無効等の属性を含むブロック属性情報を構築する。ブロック属性管理制御部６０は、構築したブロック属性情報を等価管理データとして保持する。ブロックの属性がメタデータなのか実データなのかを判断するために、ブロック属性管理制御部６０は、各機能制御部５１に対して、そのブロックの属性を問い合わせるためのＩ／Ｆを含む。これにより、ブロックの属性が変化しても、ＢＵＤにアクセスロックがかけられていない場合には、ブロック属性管理制御部６０は、機能制御部５１からブロック属性を取得することができる。これにより、ブロック属性管理制御部６０は、現在のデータからブロック属性マッピング情報を再構築できる。ブロック属性マッピング情報とは、ユーザ領域の各ブロックに対応させてブロック属性情報を管理する情報を示す。
【００７０】
また、後述するように、一度データの書込みがされると、その書き込みされた領域のブロック属性が有効に変化する。仮に、各機能制御部５１からブロック属性を取得できないならば、等価制御部５２は、一度書込みがされた領域がその後、使用しない領域に変更された場合、その領域が使用されなくなったこと、すなわち、その領域が無効であることを判断することができない。しかしながら、本実施形態では、等価制御部は各機能制御部５１からブロック属性を取得することができる。そのため、上記ケースであっても、等価制御部５２は取得したブロック属性に基づいて、等価管理データのブロックの属性を「有効」属性から「無効」属性に変更することができる。
【００７１】
ブロック属性解析制御部６１は、各制御部（５３〜６０）からのアクセス要求があった場合、そのアクセス範囲に対応するブロックの属性を判定する。
【００７２】
ＢＵＤアクセス制御部６２は、各制御部からＢＵＤ６４へのアクセス要求があった場合、アクセス先のアドレスについて、論理アドレス−物理アドレスの変換を行う。ＢＵＤドライバ６３は、ＢＵＤ６４との通信を行うドライバである。ＢＵＤ６４は、等価管理領域６５、ユーザ領域６６、バックアップ領域６７を含む。
【００７３】
図５は、本実施形態におけるユーザ領域の一例を示す。ＢＵＤ６４は、各機能制御部５１に対応する領域（ユーザ領域）を有する。ＢＵＤ６４のユーザ領域６６には、メタデータ７１と実データ７２が格納される。ＢＵＤ６４へアクセスを行うＣＭ３３内の機能制御部５１（特に容量が大きい領域を使用する機能）は、機能固有のメタデータ７１（どのアドレスに何のデータが格納されているかを示す情報）を保持する。
【００７４】
書き込んだ実データの有効化（完全性を保持）または実データの無効化（破棄、上書き）をメタデータで管理するため、実データ自体の書き込みに付随して、メタデータの更新が行われる。言い換えれば、メタデータ上でその実データが有効とならなければ、その実データは無効なデータとして扱われる。つまり、メタデータを保護することにより、実データの整合性を保持することができる。したがって、バックアップ領域６７への書込み処理は、メタデータについて行えばよい。
【００７５】
また、ユーザ領域６６に格納されているメタデータの範囲が分かれば、メタデータを読み出し、有効な実データがユーザ領域のどの位置に格納されているかを判断することができる。そのため、ＣＭ３３の保守やＢＵＤ６４の保守等でのデータコピー処理において、コピー元から必要最小限のデータをコピーすることができる。その結果、ＣＭの組み込み時間の短縮、あるいはコピー元データの読み出し失敗時のデータ破棄の判断が可能になる。
【００７６】
以下では、等価管理データを用いて、等価制御部５２により各ユーザ領域内のデータ属性を管理することにより、各ユーザ領域内のメタデータを保護し、書き込みアクセス処理、及び読み出しリカバリ処理を効率的に行うことについて説明する。
【００７７】
図６は、本実施形態における等価管理データのデータ構成を示す。等価管理データは、ＢＵＤ６４間のデータの整合性をユーザ領域単位で管理するためのデータであり、各ユーザ領域６６に格納される情報（管理データ）を管理するために用いられる。等価管理データは、等価管理領域６５に格納されている。
【００７８】
等価管理データは、有効／無効フラグ８１、書込み判定フラグ８２、領域識別番号フラグ８３、更新タイムスタンプ８４、更新カウンタ８５、旧更新タイムスタンプ８６、ブロック属性マッピング情報８７を含む。
【００７９】
有効／無効フラグ８１は、当該等価管理データが有効であるか無効であるかを示すフラグである。
【００８０】
書込み判定フラグ８２は、当該等価管理データに対応するユーザ領域へデータが書込み処理中か否かを判定するフラグである。書込み判定フラグ８２は、書込み処理が開始する場合にＯＮとなり、書込み処理が完了するとＯＦＦになる。
【００８１】
領域識別番号８３は、各機能制御部５１が使用しているユーザ領域を識別する番号を示す。
【００８２】
更新タイムスタンプ８４は、当該ユーザ領域６６に格納される情報（管理データ）が更新された時刻を示す情報である。更新タイムスタンプ８４は、書き込み処理により更新される。
【００８３】
更新カウンタ８５は、当該管理データが更新された回数を示す情報であり、更新タイムスタンプ８４の補足情報である。更新カウンタ８５は、ＢＵＤ６４間で、対応するユーザ領域の管理データ同士の更新タイムスタンプ８４が同じ場合にカウントされる。
【００８４】
旧更新タイムスタンプ８６は、更新タイムスタンプ８４の１つ前の更新タイムスタンプの情報を示し、ＢＵＤ６４間のデータの等価に失敗した際に設定される。旧更新タイムスタンプ８６は、旧更新タイムスタンプ１（８６−１）、旧更新タイムスタンプ２（８６−２）、・・・旧更新タイムスタンプｋ（８６−ｋ）（ｋ：任意の整数）を含む。
【００８５】
ブロック属性マッピング情報８７は、任意のブロック長を有し、各ブロックの属性を管理するマッピング情報である。具体的には、ブロック属性マッピング情報８７は、当該ユーザ領域を所定のサイズのブロックに区分して、区分したブロック毎に属性情報を付与したマッピング情報である。ブロック属性マッピング情報８７の詳細については、図７を用いて説明する。
【００８６】
図７は、本実施形態におけるブロック属性マッピング情報を説明するための図である。図７（Ａ）は、所定サイズのブロックで区分されたユーザ領域を示す。図７（Ｂ）は、そのユーザ領域を形成する各ブロックをマッピングしたブロック属性マッピング情報を示す。
【００８７】
図７（Ａ）に示すように、ユーザ領域は、メタデータを格納する記憶領域（メタデータ格納領域）、実データを格納する記憶領域（データ格納領域）、未使用の記憶領域（フリー領域）を含む。ユーザ領域は、所定のサイズの区画（ブロック）に区分して管理される。ブロック属性マッピング情報は、図７（Ｂ）に示すように、そのユーザ領域を形成する各ブロックがマッピングされており、各ブロックの属性情報を有する。
【００８８】
ブロック属性マッピング情報８７において、「Block（Column）」、「Block（Raw）」で特定される位置は、当該ユーザ領域において対応するブロックを特定する位置に相当する。図７（Ｂ）に示すように、ブロック属性マッピング情報８７において「Block（Column）」、「Block（Raw）」で特定されるブロックの位置に、そのブロックの属性情報が格納されている。
【００８９】
図８は、本実施形態におけるブロック属性情報のデータ構造を示す。ブロック属性情報は、「領域属性情報」９１、「有効／無効属性情報」９２、「リカバリ属性情報」９３を含む。
【００９０】
「領域属性情報」９１には、ユーザ領域においてそのブロックに格納されている情報の属性を示す情報が格納される。「領域属性情報」９１には、具体的には、「メタ（Ｍ）」、「データ（Ｄ）」、「フリー（Ｆ）」が格納される。「メタ（Ｍ）」は、そのブロックに対応する領域に格納された実データに関するメタデータの格納領域であることを示す。「データ（Ｄ）」は、そのブロックに対応する領域に格納された実データの格納領域であることを示す情報であって、メタデータで管理される情報であることを示す。「フリー（Ｆ）」は、そのブロックに対応する領域が空き領域（未使用領域）であることを示す。
【００９１】
「有効／無効属性情報」９２には、「有効（Ｖ）」、「無効（Ｉ）」のうち、いずれかが格納される。「有効（Ｖ）」は、そのブロックが有効な情報を保持していることを示す。「無効（Ｉ）」は、そのブロックが有効な情報を保持していないことを示す。
【００９２】
「リカバリ属性情報」９３には、複数あるＢＵＤ６４のうち、等価状態が維持されずにリカバリ処理が必要になったＢＵＤ６４を識別する情報が格納される。
【００９３】
次に、等価制御部の動作について説明する。
＜ストレージ装置の初期起動時＞
図９は、本実施形態におけるストレージ装置の初期起動時の等価制御部の動作フローを示す。ストレージ装置が初期起動でない場合（Ｓ２０で「Ｎｏ」）、本フローは終了する。ストレージ装置が初期起動である場合（Ｓ２０で「Ｙｅｓ」）、等価制御部５２は、各ユーザ領域に対応する機能制御部５１に、初期書込みデータの作成を依頼する（Ｓ２１）。初期書込みデータとは、初期起動時にユーザ領域に格納するメタデータを示す。
【００９４】
等価制御部５２は、機能制御部５１に問い合わせ、初期起動時のブロック属性マッピング情報を示す初期ブロック属性マッピング情報及び初期起動時の等価管理データを示す初期等価管理データを作成する（Ｓ２２，Ｓ２３）。
【００９５】
等価制御部５２は、初期書込みデータ（メタデータ）と初期等価管理データを各ＢＵＤ に書き込む（Ｓ２４、Ｓ２５）。各ユーザ領域について、Ｓ２１〜Ｓ２５の処理を繰り返す（Ｓ２６）。これ以降、各機能制御部によるＢＵＤ６４へのアクセスが可能になる。
【００９６】
図１０は、本実施形態におけるストレージ装置の初期起動時のＣＭ間の動作シーケンスの全体図である。以下では、説明の便宜上、制御する側のＣＭ（制御ＣＭ）の構成に関する要素については添え字ａを付し、それ以外のＣＭの構成に関する要素については添え字ｂを付す。
【００９７】
制御ＣＭ３３ａ内のパワー制御部１０１ａは、電源がオンになると、等価制御部５２ａへ等価制御を実行させるための等価要求を行う（Ｓ３１）。
【００９８】
等価制御部５２ａは、等価要求を受信すると、ＢＵＤ６４間のアクセスの排他制御を行い、ＢＵＤ６４へのアクセスロックを行う（Ｓ３２）。アクセスロックとは、等価制御部５２ａにより所定の機能制御部以外の機能制御部によるＢＵＤ６４のユーザ領域へのアクセスを制限してＢＵＤ６４間のアクセスの排他制御を示す。その後、等価制御部５２ａは、各ＣＭ３３ｂへＢＵＤ６４を初期化するための初期化要求を行う（Ｓ３３）。
【００９９】
各ＣＭ３３ｂの等価制御部５２ｂは、初期化要求を受けると、ＢＵＤ６４の初期化処理を行う（Ｓ３４）。初期化処理では、初期起動であるかが判定され、初期起動の場合には初期化されたブロック属性マッピング情報及び等価管理データが作成される。また、当該ストレージ装置が搭載しているＢＵＤ６４のシステム管理データが作成される。ＢＵＤ６４の初期化の完了後、等価制御部５２ｂは、制御ＣＭ３３ａへ初期化要求に対する応答を行う（Ｓ３５）。
【０１００】
初期化要求に対する応答を受信すると、制御ＣＭ３３ａの等価制御部５２ａは、ＢＵＤ６４間のユーザ領域のデータを等価状態にする等価処理を行う（Ｓ３６）。等価制御部５２ａは、未処理のユーザ領域がある間（Ｓ３７で「Ｙｅｓ」）、等価処理を行う（Ｓ３６）。
【０１０１】
ＢＵＤ６４上のすべてのユーザ領域について等価処理が完了した場合（Ｓ３７で「Ｎｏ」）、等価制御部５２ａは、ＢＵＤ６４へのアクセスの排他制御を行い、ＢＵＤ６４へのアクセスロックを解除する（Ｓ３８）。等価制御部５２ａは、パワー制御部１０１ａへ等価制御が完了したことを通知する等価応答を行う（Ｓ３９）。
【０１０２】
次に、図１０で説明したＢＵＤ６４の初期化処理（Ｓ３４）の詳細について、図１１を用いて説明する。
【０１０３】
図１１Ａ及び図１１Ｂは、本実施形態におけるＢＵＤの初期化処理（Ｓ３４）の詳細なシーケンス図である。Ｓ３４において、制御ＣＭ３３ａの等価制御部５２ａから初期化要求を受けると、各ＣＭ３３ｂの等価制御部５２ｂは、以下の処理を行う。
【０１０４】
まず、等価チェック制御部５９ｂは、リードサブ制御部５７ｂ、ＢＵＤアクセス制御部６２ｂ、ＢＵＤドライバ６３ｂを介して、ＢＵＤ６４ｂへ読み出し要求を行い、ＢＵＤ６４ｂからシステム管理データを読み出す（Ｓ４１，Ｓ４２、Ｓ４３）。ここで、システム管理データとは、各ストレージ装置で独立した情報であって、各ストレージ装置が保持するＢＵＤ６４を管理する情報である。システム管理データは、ストレージ装置が初期起動であるか否かの情報を含んでいる。
【０１０５】
等価チェック制御部５９ｂは、読み出したシステム管理データに基づいて、ＢＵＤの初期化が行われているかを判定する（Ｓ４４）。システム管理データを参照して、初期化処理が既に行われていると判定した場合（Ｓ４４で「Ｙｅｓ」）、等価チェック制御部５９ｂは、初期化処理（Ｓ３４）を終了する。システム管理データを参照して、初期化処理がまだ行われていないと判定した場合（Ｓ４４で「Ｎｏ」）、等価チェック制御部５９ｂは、リカバリ制御部５５ｂへ、デフォルトの等価状態を形成するためにリカバリ要求を行う（Ｓ４５）。
【０１０６】
リカバリ制御部５５ｂは、機能制御部５１ｂに、機能制御部５１ｂが使用するユーザ領域に対する初期データの作成要求を行う。機能制御部５１ｂの初期データ作成部１１１ｂは、初期データの作成依頼を受けると、機能制御部５１ｂが使用するユーザ領域のデフォルトのメタデータと初期データとして作成し、リカバリ制御部５５ｂへ返信する（Ｓ４６）。
【０１０７】
リカバリ制御部５５ｂは、ブロック属性管理制御部６０ｂを介して、機能制御部５１ｂのブロック属性応答部１１２ｂへ、初期ブロック属性マッピング情報を要求する（Ｓ４７、Ｓ４８）。初期ブロック属性マッピング情報とは、機能制御部５１ｂが使用するユーザ領域の各ブロックに対応する初期化されたブロック属性情報のことである。
【０１０８】
ブロック属性応答部１１２ｂは、その機能制御部５１ｂが使用するユーザ領域の各ブロックの属性情報をブロック属性管理制御部６０ｂへ返信する。ブロック属性管理制御部６０ｂは、そのブロック属性情報から、その機能制御部５１ｂが使用するユーザ領域の各ブロックにマッピングさせた形式の情報（ブロック属性マッピング情報）を生成する。ブロック属性管理制御部６０ｂは、その初期時のブロック属性マッピング情報をリカバリ制御部５５ｂへ返信する（Ｓ４９）。
【０１０９】
リカバリ制御部５５ｂは、初期ブロック属性マッピング情報を含めた、その機能制御部５１ｂが使用するユーザ領域に対応する初期化された等価管理データ（初期等価データ）を生成する（Ｓ５０）。
【０１１０】
リカバリ制御部５５ｂは、ライトサブ制御部５６ｂ、ＢＵＤアクセス制御部６２ｂ、ＢＵＤドライバ６３ｂを介して、ＢＵＤ６４ｂにおいて、その機能制御部５１ｂが使用するユーザ領域へ初期データ（メタデータ）を書き込む（Ｓ５１、Ｓ５２、Ｓ５３）。
【０１１１】
リカバリ制御部５５ｂは、ライトサブ制御部５６ｂ、ＢＵＤアクセス制御部６２ｂ、ＢＵＤドライバ６３ｂを介して、ＢＵＤ６４ｂの等価管理領域へ初期等価管理データの書き込む（Ｓ５４、Ｓ５５、Ｓ５６）。リカバリ制御部５５ｂは、等価チェック制御部５９ｂへ、リカバリ要求に対する応答を行う（Ｓ５７）。
【０１１２】
等価チェック制御部５９ｂは、ＢＵＤ６４において、未処理のユーザ領域がある場合（Ｓ５８で「Ｙｅｓ」）、Ｓ４５の処理へ戻る。
【０１１３】
各機能制御部５１ｂが使用するユーザ領域について、処理が完了した場合（Ｓ５８で「Ｎｏ」）、等価チェック制御部５９ｂは、各ストレージ装置が保持するＢＵＤを管理するシステム管理データを更新する（Ｓ５９）。等価チェック制御部５９ｂは、ライトサブ制御部５６ｂ、ＢＵＤアクセス制御部６２ｂ、ＢＵＤドライバ６３ｂを介して、ＢＵＤ６４ｂへシステム管理データの書き込み要求を行う（Ｓ６０、Ｓ６１、Ｓ６２）。
【０１１４】
次に、図１０で説明したＢＵＤ間のユーザ領域のデータが等価状態を維持するための等価処理（Ｓ３６）の詳細について、図１２Ａ、図１２Ｂ及び図１２Ｃを用いて説明する。
【０１１５】
図１２Ａ、図１２Ｂ及び図１２Ｃは、本実施形態におけるＢＵＤ間の等価処理（Ｓ３６）の詳細なシーケンス図である。Ｓ３６において、各ＣＭ３３ｂの等価制御部５２ｂから初期化要求に対する応答を受けると、制御ＣＭ３３ａの等価制御部５２ａは、以下の処理を行う。
【０１１６】
まず、等価チェック制御部５９ｂは、リードサブ制御部５７ｂ、ＢＵＤアクセス制御部６２ｂ、ＢＵＤドライバ６３ｂを介して、各ＢＵＤ６４ｂへ読み出し要求を行い、全ＢＵＤ６４ｂから等価管理データを読み出す（Ｓ７１，Ｓ７２、Ｓ７３）。
【０１１７】
等価チェック制御部５９ａは、各ＢＵＤ６４から受信した等価管理データが等価状態を維持しているかを判定する。すなわち、等価チェック制御部５９ａは、各ＢＵＤ６４から読み出した等価管理データの更新タイムスタンプ及び更新カウンタを比較して、更新タイムスタンプ及び更新カウンタが同一であるかを判定する。
【０１１８】
各ＢＵＤ６４から読み出した等価管理データの更新タイムスタンプ及び更新カウンタが同一である場合（Ｓ７４で「Ｙｅｓ」）、等価チェック制御部５９ａは、全等価管理データは正常（等価状態）であると判定し、本シーケンスの処理を終了する。
【０１１９】
各ＢＵＤ６４から読み出した等価管理データの更新タイムスタンプまたは更新カウンタが同一でない場合（Ｓ７４で「Ｎｏ」）、リカバリの必要なＢＵＤがあるので、等価チェック制御部５９ａは、リカバリ制御部５５ａへ、リカバリ要求を送信する（Ｓ７５）。ここで、リカバリ制御部５５ａは、Ｓ７４で比較した等価管理データのうち、更新タイムスタンプが最新か、または更新タイムスタンプが最新でかつ更新カウンタの値が最も多い等価管理データを等価状態の基準とする。以下では、その等価状態の基準とするＢＵＤを等価元ＢＵＤと称する。また、等価元ＢＵＤに合わせて等価状態にする対象のＢＵＤ、すなわちリカバリ対象ＢＵＤを等価先ＢＵＤと称する。
【０１２０】
リカバリ制御部５５ａは、等価管理データを作成する（Ｓ７６）。ここでは、リカバリ制御部５５ａは、リカバリの必要なＢＵＤ（等価先ＢＵＤ）の等価管理データを、等価元ＢＵＤの等価管理データで上書きする。リカバリ制御部５５ａは、ライトサブ制御部５６ａ、ＢＵＤアクセス制御部６２ｂ、ＢＵＤドライバ６３ｂを介して、有効／無効フラグ＝「無効」に更新して、等価管理データを無効化する（Ｓ７７，Ｓ７８，７９）。
【０１２１】
リカバリ制御部５５ａは、等価元ＢＵＤの等価管理データのブロック属性マッピング情報から１つのブロック属性情報を抽出する（Ｓ８０）。リカバリ制御部５５ａは、ＢＵＤアクセス制御部６２ｂ、ＢＵＤドライバ６３ｂを介して、等価元ＢＵＤの、対応するユーザ領域から、抽出したブロック属性情報に対応する情報を読み出す（Ｓ８１，Ｓ８２，Ｓ８３）。
【０１２２】
リカバリ制御部５５ａは、ライトサブ制御部５６ａ、ＢＵＤアクセス制御部６２ｂ、ＢＵＤドライバ６３ｂを介して、等価元ＢＵＤから読み出した情報を、等価先ＢＵＤ６４へ書込む（Ｓ８４、Ｓ８５、Ｓ８６）。
【０１２３】
リカバリ制御部５５ａは、等価元ＢＵＤの等価管理データのブロック属性マッピング情報に未処理ブロックがある場合（Ｓ８７で「Ｙｅｓ」）、Ｓ８０の処理へ戻る。
【０１２４】
等価元ＢＵＤの等価管理データのブロック属性マッピング情報の全ブロックについて、処理が完了した場合（Ｓ８７で「Ｎｏ」）、リカバリ制御部５５ａは、各ＢＵＤの等価管理データのブロック属性情報に含まれるリカバリ属性情報を、「０」でクリアする（Ｓ８８）。
【０１２５】
リカバリ制御部５５ａは、ライトサブ制御部５６ａ、ＢＵＤアクセス制御部６２ｂ、ＢＵＤドライバ６３ｂを介して、Ｓ８８で更新したブロック属性マッピング情報を含む等価管理データの有効／無効フラグを「有効」に更新する。それから、リカバリ制御部５５ａは、等価管理データを有効化する（Ｓ８９、Ｓ９０、Ｓ９１）。
【０１２６】
また、リカバリ制御部５５ａは、ライトサブ制御部５６ａ、ＢＵＤアクセス制御部６２ｂ、ＢＵＤドライバ６３ｂを介して、リカバリ対象外のＢＵＤ６４ｂの等価管理データのブロック属性のリカバリ属性を「０」で更新する（Ｓ９２，Ｓ９３，Ｓ９４）。等価チェック制御部５９ａは、リカバリ制御部５５ａから、リカバリ要求に対する応答を受信する（Ｓ９５）。
【０１２７】
このように、ストレージ装置の初期起動時において、機能制御部が使用するユーザ領域を初期化する場合、等価管理部５２は、等価管理データの初期データを作成し、各ＢＵＤ６４に保持する。本実施形態では、等価管理データにより、ユーザ領域に格納されるデータを管理するので、論理的な情報（等価管理データ）の初期化で済むので、ユーザ領域の全領域を０で書き込むことによる初期化の必要がない。
【０１２８】
＜各機能制御部からＢＵＤへ読み出し処理を行う場合＞
図１３は、本実施形態における各機能制御部からＢＵＤへ読み出し処理を行う場合の等価制御部の動作フローを示す。機能制御部５１からの読み出し要求を受けると、等価制御部５２は、各ＢＵＤ６４から、等価管理データを読み出す（Ｓ１０１）。
【０１２９】
等価制御部５２は、各ＢＵＤ６４から読み出した等価管理データを比較して、等価管理データが一致しないＢＵＤがあるかを判定する（Ｓ１０２）。すなわち、等価制御部５２は、各ＢＵＤ６４から読み出した等価管理データの更新タイムスタンプ及び更新カウンタを比較して、更新タイムスタンプ及び更新カウンタが同一であるかを判定する。
【０１３０】
各ＢＵＤ６４からリードした等価管理データの更新タイムスタンプまたは更新カウンタが同一でない場合（Ｓ１０２で「Ｙｅｓ」）、等価制御部５２は、リカバリ処理を行う（Ｓ１０３）。
【０１３１】
各ＢＵＤ６４から読み出した等価管理データの更新タイムスタンプ及び更新カウンタが同一である場合（Ｓ１０２で「Ｎｏ」）、等価制御部５２は、次の処理を行う。すなわち、等価制御部５２は、等価管理データのブロック属性マッピング情報を用いて、機能制御部５１からの読み出し要求があったアクセス範囲に対応するブロックの属性情報の有効性をする（Ｓ１０４）。
【０１３２】
Ｓ１０４において、アクセス範囲に対応するブロックの属性情報が「無効（Ｉ）」属性または「フリー（Ｆ）」属性を示す場合（Ｓ１０４で「Ｙｅｓ」）、等価制御部５２は、次の処理を行う。すなわち、等価制御部５２は、ＢＵＤ６４から直接データを読み出さずに、そのアクセス範囲に相当するゼロでパディングしたデータを読み出しデータとして作成し、読み出し要求した機能制御部６１へ応答する（Ｓ１０５、Ｓ１０７）。
【０１３３】
Ｓ１０４において、アクセス範囲に対応するブロックの属性情報に「有効（Ｖ）」属性を含むブロック属性がある場合（Ｓ１０４で「Ｎｏ」）、等価制御部５２は、アクセス範囲の変更を行う。すなわち、等価制御部５２は、アクセス範囲のうち「有効（Ｖ）」属性を有するブロック（「無効（Ｉ）」属性及び「フリー（Ｆ）」属性を有するブロックを除いたブロック）のデータを、ユーザ領域から読み出す（Ｓ１０６，Ｓ１０７）。
【０１３４】
図１４は、本実施形態における機能制御部からＢＵＤへ読み出し処理を行う場合のＣＭ間の動作シーケンスの全体図である。
【０１３５】
制御ＣＭ３３ａ内の機能制御部５１ａは、等価制御部５２ａに対して、ＢＵＤアクセスロック要求を行う（Ｓ１１１）。
【０１３６】
等価制御部５２ａは、ＢＵＤアクセスロック要求を受信すると、ＢＵＤ間のアクセスの排他制御を行い、ＢＵＤアクセスロックを行う（Ｓ１１２）。等価制御部５２ａは、アクセスロック完了を、その要求元の機能制御部に応答する（Ｓ１１３）。
【０１３７】
機能制御部５１ａは、等価制御部５２ａへ、データの読み出し要求を行う（Ｓ１１４）。等価制御部５２ａは、ＢＵＤ間のユーザ領域のデータが等価状態を維持させる等価処理を行う（Ｓ１１５）。Ｓ１１５は、図１０のＳ３６、図１２Ａ〜図１２Ｃと同様なので、その説明を省略する。
【０１３８】
その後、等価制御部５２ａは、機能制御部５１ａから要求されたデータを読み出し（Ｓ１１６）、読み出し要求元の機能制御部５１ａへ応答する（Ｓ１１７）。
【０１３９】
機能制御部５１ａは、その読み出しデータを受信すると、等価制御部５２ａへＤＵＤアクセスアンロック要求を行う（Ｓ１１８）。等価制御部５２ａは、ＢＵＤへのアクセスの排他制御を行い、ＢＵＤのユーザ領域へのアクセスのロックを解除する（Ｓ１１９）。等価制御部５２ａは、ＤＵＤアクセスアンロック要求に対する応答を行う（Ｓ１２０）。
【０１４０】
図１５は、本実施形態における読み出し処理（Ｓ１１６）の詳細なシーケンス図である。Ｓ１１６において、制御ＣＭ３３ａの等価制御部５２ａは、機能制御部からの読み出し要求に基づいて、以下の処理を行う。
【０１４１】
まず、リード制御部５４は、リードサブ制御部５７ａ、ＢＵＤアクセス制御部６２ｂ、ＢＵＤドライバ６３ｂを介して、ＢＵＤ６４から、書込み要求元の機能制御部が使用するユーザ領域に対応する等価管理データを読み出す（Ｓ１２１、Ｓ１２２，Ｓ１２３）。
【０１４２】
リード制御部５４は、ブロック属性解析制御部６１ａへ、ユーザ領域から読み出す対象のアクセスの範囲を示すアクセス範囲データを要求する（Ｓ１２４）。ブロック属性解析制御部６１ａは、アクセス範囲データ要求を受信すると、読み出した等価管理データのブロック属性マッピング情報から、そのアクセス範囲に対応するブロック属性情報を読み出す。アクセス範囲に「有効（Ｖ）」属性を有するブロックが含まれる場合、ブロック属性解析制御部６１ａは、アクセス範囲を変更する（Ｓ１２５）。すなわち、ブロック属性解析制御部６１ａは、アクセス範囲データ要求によるアクセス範囲のうち、「有効」属性を有するブロックに対応する範囲（「無効」属性または「フリー」属性のブロックを含まない範囲）にアクセス範囲を変更する。または、アクセス範囲に対応するブロックの属性情報が「無効（Ｉ）」属性または「フリー（Ｆ）」属性を示す場合、等価制御部５２は、そのアクセス範囲に相当するゼロでパディングしたデータを読み出しデータとして作成する。ブロック属性解析制御部６１ａは、その変更したアクセス範囲またはゼロでパディングしたデータをリード制御部５４に応答する（Ｓ１２６）。
【０１４３】
リード制御部５４は、その変更されたアクセス範囲に基づいて、リードサブ制御部５７ａ、ＢＵＤアクセス制御部６２ｂ、ＢＵＤドライバ６３ｂを介して、ＢＵＤ６４からデータを読み出す（Ｓ１２７、Ｓ１２８，Ｓ１２９）。または、リード制御部５４は、ゼロでパディングしたデータを読み出す。
【０１４４】
このように、ユーザ領域に格納されたデータの読み取りにおいて、ブロック属性情報により、読み取りアクセス先のブロックに格納された情報が有効かどうかを判定することができる。そして、読み取りアクセス先に有効な情報が格納されている場合にはそのブロックを読み出す（読み取りアクセス先に有効な情報が格納されていない場合にはそのブロックを読み出さない）。これにより、ユーザ領域内の有効な情報を読み出すことができるので（有効でない情報については読み出しを行わない）、読み出し効率を向上させることができる。
【０１４５】
＜各機能制御部からの書き込み時＞
図１６Ａ及び図１６Ｂは、本実施形態における各機能制御部からＢＵＤへ書込み処理を行う場合の等価制御部の動作フローを示す。機能制御部５１からの書き込み要求を受けると、等価制御部５２は、各ＢＵＤ６４の等価管理領域からその機能制御部５１が使用するユーザ領域に対応する等価管理データを読み出す（Ｓ１３１）。
【０１４６】
等価制御部５２は、各ＢＵＤ６４から読み出した等価管理データを比較して、等価管理データが一致しないＢＵＤがあるかを判定する（Ｓ１３２）。すなわち、等価制御部５２は、各ＢＵＤ６４から読み出した等価管理データの更新タイムスタンプ及び更新カウンタを比較して、更新タイムスタンプ及び更新カウンタが同一であるかを判定する。
【０１４７】
各ＢＵＤ６４から読み出した等価管理データの更新タイムスタンプまたは更新カウンタが同一でない場合、等価制御部５２は、リカバリ処理を行う（Ｓ１３３）。
【０１４８】
各ＢＵＤ６４から読み出した等価管理データの更新タイムスタンプ及び更新カウンタが同一である場合、またはＳ１３３の処理後、等価制御部５２は、次の処理を行う。すなわち、等価制御部５２は、等価管理データを用いて、機能制御部により書込み要求のあったアクセス先（書込み先）の範囲のブロックの属性が「メタ（Ｍ）」属性であるか否かを判定する（Ｓ１３４）。
【０１４９】
Ｓ１３４において、アクセス先の範囲のブロックの属性が「メタ（Ｍ）」属性である場合（Ｓ１３４で「Ｙｅｓ」）、すなわち、書き込み対象データがメタデータである場合、等価制御部５２は、書き込み対象データをバックアップ用データとする（Ｓ１３５）。等価制御部５２は、バックアップ用データを、ＢＵＤ６４のバックアップ領域６７へ書き込む（Ｓ１３６）。
【０１５０】
Ｓ１３４において、アクセス先の範囲のブロックの属性が「データ（Ｄ）」属性である場合（Ｓ１３４で「Ｎｏ」）、書き込み対象データはメタデータではないので（この場合、書き込み対象データは実データである）、Ｓ１３７の処理へ進む。
【０１５１】
等価制御部５２は、読み出した等価管理データの有効／無効フラグを「無効」、書込み判定フラグを「ＯＮ」に更新する（Ｓ１３７）。等価制御部５２は、更新した等価管理データを、ＢＤＵ６４へ書き込む（Ｓ１３８）。等価制御部５２は、機能制御部からの書き込み要求による書込み対象のデータを、ＢＤＵ６４のユーザ領域へ書き込む（Ｓ１３９）。等価制御部５２は、ユーザ領域において、書き込みを行った領域に対応するブロックの属性を「有効（Ｖ）」属性に更新する（Ｓ１４０）。
【０１５２】
等価制御部５２は、書き込み処理中に、等価対象のＢＵＤのいずれかで書き込み処理が失敗したかどうかを判断する（Ｓ１４１）。等価対象のＢＵＤのいずれかで書き込み処理が失敗した場合、すなわちリカバリが必要なＢＵＤが存在する場合（Ｓ１４１で「Ｙｅｓ」）、等価制御部５２は、等価管理データを更新する。
【０１５３】
すなわち、等価制御部５２は、等価管理データにおいて、機能制御部からの書き込み要求があったアクセス範囲に対応するブロック属性情報に含まれるリカバリ属性情報に、アクセスが失敗したＢＵＤの識別情報を設定する（Ｓ１４２）。
【０１５４】
ここで、等価制御部５２は、リカバリが必要なＢＵＤが存在するかどうかの判断を、ＢＵＤの異常か、ＣＭの異常かに基づいて判断する。等価制御部５２は、ＢＵＤの異常か、ＣＭの異常かを示すエラーを検知することができる。ＢＵＤの異常であれば、ＢＵＤの交換が行われるため、等価制御部５２は、リカバリ属性情報への設定を行わない。一方、ＣＭの異常であれば、同じＢＵＤを使用して、ＣＭの組み込みが行われる可能性があるため、等価制御部５２は、リカバリ属性情報への設定を行う。
【０１５５】
また、等価制御部５２は、等価管理データの旧更新タイムスタンプに更新前のタイムスタンプが設定されていない場合（Ｓ１４３で「Ｙｅｓ」）、次の処理を行う。すなわち、等価制御部５２は、読み出した等価管理データの「旧更新タイムスタンプ」８６を、「更新タイムスタンプ」８４で更新する（Ｓ１４４）。
【０１５６】
等価対象のＢＵＤのいずれかで書き込み処理が成功した場合（Ｓ１４１で「Ｎｏ」）またはＳ１４４の処理が終了した場合、等価制御部５２は、次の処理を行う。等価制御部５２は、等価管理データの有効／無効フラグを「有効」、書込み判定フラグを「ＯＦＦ」に、「更新タイムスタンプ」に現在の時刻に更新する（Ｓ１４５）。等価制御部５２は、更新した等価管理データを、ＢＤＵ６４へ書き込む（Ｓ１４６）。
【０１５７】
図１７は、本実施形態における書込み処理シーケンスの全体図である。制御ＣＭ３３ａ内の機能制御部５１ａは、等価制御部５２ａに対して、ＢＵＤアクセスロック要求を行う（Ｓ１５１）。
【０１５８】
等価制御部５２ａは、ＢＵＤアクセスロック要求を受信すると、ＢＵＤ間のアクセスの排他制御を行い、ＢＵＤアクセスロックを行う（Ｓ１５２）。等価制御部５２ａは、アクセスロック完了を、その要求元の機能制御部に応答する（Ｓ１５３）。
【０１５９】
機能制御部５１ａは、等価制御部５２ａへ、データの書き込み要求を行う（Ｓ１５４）。等価制御部５２ａは、ＢＵＤ間のユーザ領域のデータが等価状態を維持するための等価処理を行う（Ｓ１５５）。Ｓ１５５は、図１０のＳ３６、図１２Ａ，図１２Ｂと同様なので、その説明を省略する。
【０１６０】
その後、等価制御部５２ａは、データの書き込み要求に基づいて、ユーザ領域へのデータの書き込みを行う（Ｓ１５６）。等価制御部５２ａは、書き込み要求元の機能制御部５１ａへその書き込み要求に対して応答する（Ｓ１５７）。
【０１６１】
機能制御部５１ａは、その応答を受信すると、等価制御部５２ａへＢＵＤアクセスアンロック要求を行う（Ｓ１５８）。等価制御部５２ａは、ＢＵＤへのアクセスの排他制御を行い、ＢＵＤへのアクセスロックを解除する（Ｓ１５９）。等価制御部５２ａは、アンロック要求に対する応答を行う（Ｓ１６０）。
【０１６２】
図１８Ａ及び図１８Ｂは、本実施形態における書き込み処理（Ｓ１５６）の詳細なシーケンス図である。Ｓ１５６において、制御ＣＭ３３ａの等価制御部５２ａは、機能制御部からの書き込み要求に基づいて、以下の処理を行う。
【０１６３】
ライト制御部５３ａは、リードサブ制御部５７ａ、ＢＵＤアクセス制御部６２ｂ、ＢＵＤドライバ６３ｂを介して、ＢＵＤ６４から、書込み要求元の機能制御部５１ａが使用するユーザ領域に対応する等価管理データを読み出す（Ｓ１７１、Ｓ１７２，Ｓ１７３）。
【０１６４】
ライト制御部５３ａは、ブロック属性解析制御部６１ａを介して、機能制御部５１ａのブロック属性応答部１１２ａから、アクセス先の領域（ブロック）の属性情報を取得する（Ｓ１７４、Ｓ１７５、Ｓ１７６）。
【０１６５】
ライト制御部５３ａは、ブロック属性解析制御部６１ａへ、アクセス範囲の変更を要求する（Ｓ１７７）。ブロック属性解析制御部６１ａは、アクセス範囲データ要求を受信すると、実アクセス範囲の変更を行う（Ｓ１７８）。すなわち、ブロック属性解析制御部６１ａは、そのアクセス範囲に対応するブロック属性が「フリー」属性であるか否かを判定する。そのアクセス範囲に対応するブロック属性が「フリー」属性である場合、ブロック属性解析制御部６１ａは、ライト制御部５３ａに、等価管理データにおいて、対応するブロック属性情報に「フリー（Ｆ）」を設定する旨を応答する。そのアクセス範囲に対応するブロック属性が「フリー」以外の属性である場合、ブロック属性解析制御部６１ａは、その旨を応答する（Ｓ１７９）。
【０１６６】
ブロック属性解析制御部６１ａからの応答結果が「フリー」属性である場合、ライト制御部５３ａは、ライトサブ制御部５６ａを介して、等価管理データにおいて、対応するブロック属性情報に「フリー（Ｆ）」を設定する。これにより、アクセス範囲にフリー領域が含まれている場合、そのフリー領域を除いたアクセス範囲に調整することができる。
【０１６７】
ライト制御部５３ａは、アクセス先（書込み先）の範囲のブロック属性情報が「メタ（Ｍ）」属性か否かをチェックする（Ｓ１８０）。ブロック属性情報が「メタ（Ｍ）」属性である場合、書込み対象の情報はメタデータであるので、ライト制御部５３ａは、書込み対象の情報（メタデータ）をバックアップ用データとする（Ｓ１８１）。この場合、ライト制御部５３ａは、ライトサブ制御部５６ａを介して、バックアップ用データを、ＢＵＤ６４のバックアップ領域６７へ書き込む処理を行う（Ｓ１８２、Ｓ１８３，Ｓ１８４）。
【０１６８】
ブロック属性情報が「メタ（Ｍ）」属性でない場合、書込み対象の情報は実データであるので、Ｓ１８５の処理へ進む。
【０１６９】
ライト制御部５３ａは、取得した等価管理データの有効／無効フラグを「無効」、書込み判定フラグを「ＯＮ」に更新する（Ｓ１８５）。
【０１７０】
ライト制御部５３ａは、ライトサブ制御部５６ａ、ＢＵＤアクセス制御部６２ｂ、ＢＵＤドライバ６３ｂを介して、その更新した等価管理データをＢＵＤ６４へ書き込む（Ｓ１８６、Ｓ１８７，Ｓ１８８）。
【０１７１】
ライト制御部５３ａは、ライトサブ制御部５６ａ、ＢＵＤアクセス制御部６２ｂ、ＢＵＤドライバ６３ｂを介して、書込み対象の情報をＢＵＤ６４のユーザ領域へ書き込む（Ｓ１８９、Ｓ１９０，Ｓ１９１）。
【０１７２】
ライト制御部５３ａは、更新した等価管理データのブロック属性マッピング情報について、ユーザ領域のうち書込みを行った領域に対応するブロックの属性を「有効（Ｖ）」属性に更新する（Ｓ１９２）。
【０１７３】
ライト制御部５３ａは、ブロック属性マッピング情報を更新した等価管理データの有効／無効フラグを「有効」、書込み判定フラグを「ＯＦＦ」に更新する。ライト制御部５３ａは、ライトサブ制御部５６ａ、ＢＵＤアクセス制御部６２ｂ、ＢＵＤドライバ６３ｂを介して、更新した等価管理データをＢＵＤへ書き込む（Ｓ１９３、Ｓ１９４，Ｓ１９５）。
【０１７４】
これにより、メタデータの書き込みの場合にバックアップを行うようにし、実データの書き込みの場合にはバックアップを行わないので、書き込み処理の時間を短縮することができる。
【０１７５】
＜リカバリ時（ＣＭ組み込み時）＞
図１９は、本実施形態におけるリカバリ処理を行う場合の等価制御部の動作フローを示す。ＣＭ組み込み時、等価制御部５２は、リカバリ対象のＢＵＤ及び正常なＢＵＤから等価管理データを読み出す（Ｓ２０１）。
【０１７６】
等価制御部５２は、リカバリ対象のＢＵＤから読み出した等価管理データと、正常なＢＵＤから読み出した等価管理データが一致するかを判定する（Ｓ２０２）。Ｓ２０２において等価管理データが一致する場合（Ｓ２０２で「Ｙｅｓ」）、本フローは終了する。
【０１７７】
Ｓ２０２において等価管理データが一致しない場合（Ｓ２０２で「Ｎｏ」）、等価制御部５２は、リカバリ対象ＢＵＤの更新タイムスタンプと、正常なＢＵＤの旧更新タイムスタンプとが一致するかを判定する（Ｓ２０３）。
【０１７８】
Ｓ２０３において、リカバリ対象ＢＵＤの更新タイムスタンプと、正常なＢＵＤの旧更新タイムスタンプとが一致する場合（Ｓ２０３で「Ｙｅｓ」）、そこまでの時点の書き込み処理は完了していると判断される。この場合、等価制御部５２は、正常なＢＵＤの等価管理データから、リカバリ属性情報にＢＵＤの識別情報が設定されたブロック属性情報を抽出する（Ｓ２０８）。等価制御部５２は、正常なＢＵＤのユーザ領域から、そのリカバリ属性情報を有するブロック属性情報に対応するユーザ領域の情報（リカバリデータ）を読み出す（Ｓ２０９）。等価制御部５２は、リカバリ対象のＢＵＤのユーザ領域の対応する領域に、リカバリデータを書き込む（Ｓ２１０）。リカバリ属性情報にＢＵＤの識別情報が設定された全ブロックについて、Ｓ２０８〜Ｓ２１０の処理を繰り返す（Ｓ２１１）。
【０１７９】
Ｓ２０３において、リカバリ対象ＢＵＤの更新タイムスタンプと、正常なＢＵＤの旧更新タイムスタンプとが一致していない場合（Ｓ２０３で「Ｎｏ」）、等価制御部５２は、正常なＢＵＤの等価管理データから「有効（Ｖ）」属性を有するブロック属性情報を抽出する（Ｓ２０４）。等価制御部５２は、正常なＢＵＤのユーザ領域から、その「有効（Ｖ）」属性を有するブロック属性情報に対応する領域の情報（リカバリデータ）を読み出す（Ｓ２０５）。等価制御部５２は、リカバリ対象のＢＵＤのユーザ領域の対応する領域に、リカバリデータを書き込む（Ｓ２０６）。「有効（Ｖ）」属性の全ブロックについて、Ｓ２０４〜Ｓ２０７の処理を繰り返す（Ｓ２０７）。
【０１８０】
「有効（Ｖ）」属性の全ブロックについてＳ２０４〜Ｓ２０７の処理を繰り返した場合、またはリカバリ属性情報にＢＵＤの識別情報が設定された全ブロックについてＳ２０８〜Ｓ２１０の処理を繰り返した場合、等価制御部５２は、次の処理を行う。すなわち、等価制御部５２は、正常なＢＵＤの等価管理データを、リカバリ対象ＢＵＤへ書き込む（Ｓ２１２）。このとき、図１２ＢのＳ８８で説明したように、リカバリ対象ＢＵＤのリカバリ完了後、全ＢＵＤの等価管理データのリカバリ属性情報からリカバリしたＢＵＤを識別する情報をクリアする。
【０１８１】
本実施形態におけるリカバリ時のＢＵＤ間のリカバリ処理の詳細なシーケンスは、図１２Ａ‐図１２Ｃと同様なので、その説明を省略する。
【０１８２】
このように、リカバリを行う場合、ユーザ領域全域ではなく、部分的な領域（リカバリが必要であることを示す属性情報を有するブロック）について、リカバリを行えばよいので、リカバリに要する時間を短縮することができる。
【０１８３】
また、ＣＭ保守またはＢＵＤ保守において、正常なＢＵＤからリカバリ対象ＢＵＤにデータをコピーする際に、リカバリ属性情報を除いて有効なデータについてコピーを行う（無効データについてはコピーは行わない）。そのため、ユーザ領域内の全データのコピーを行う必要がない。その結果、リカバリに要する時間を短縮することができる。
【０１８４】
また、コピー処理中にコピー元データの読み出しができなかった場合、その読み出しができない領域が未使用領域であっても、コピー処理していた領域の破棄によるデータロストの心配もない。
【０１８５】
なお、本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【０１８６】
上記実施形態に関し、更に以下の付記を開示する。
（付記１）
情報を格納する第１格納領域と、前記第１格納領域が区分された各区画に格納される情報を示す区画情報の属性に関する属性情報を含む管理情報を格納する第２格納領域と、を含む複数の格納部と、
前記複数の格納部から前記管理情報を取得する取得部と、
取得した前記管理情報を比較して異常な前記管理情報があるかを判定する判定部と、
前記異常な管理情報があると判定された場合、正常な管理情報の区画毎の属性情報に基づいて、該正常な管理情報が取得されたいずれかの前記格納部から、前記異常な管理情報が取得された前記格納部の前記第１格納領域に格納される情報を、区画単位で再構成するリカバリ部と、
を備えることを特徴とするストレージ制御システム。
（付記２）
前記ストレージ制御システムは、さらに、
前記格納部への対象情報の書き込み要求があった場合、前記複数の格納部において、前記第１格納領域に該対象情報を書き込み、該対象情報を書き込んだ区画に格納される区画情報に対応する属性情報に、該区画情報が有効であるか否かを示す情報を書き込む書き込み部
を備え、
前記リカバリ部は、前記正常な管理情報が取得されたいずれかの前記格納部から、前記区画情報が有効であることを示す属性情報を有する該区画情報を抽出し、前記異常な管理情報が取得された格納部の前記第１格納領域における対応する区画に、抽出した該区画情報を格納する
ことを特徴とする付記１に記載のストレージ制御システム。
（付記３）
前記書き込み部は、前記書き込みが失敗した格納部がある場合、該書き込みが成功した格納部の管理情報における、前記書き込み要求によるアクセス範囲に対応する前記区画に格納された前記区画情報の前記属性情報に、リカバリが必要であることを示す情報を書き込み、
前記リカバリ部は、前記書き込みが成功した前記格納部から、前記リカバリが必要であることを示す属性情報を有する該区画情報を抽出し、前記書き込みが失敗した格納部の前記第１格納領域における対応する区画に、抽出した該区画情報を格納する
ことを特徴とする付記２に記載のストレージ制御システム。
（付記４）
前記リカバリが必要であることを示す属性情報は、前記書き込みが失敗した格納部を識別する情報である
ことを特徴とする付記３に記載のストレージ制御システム。
（付記５）
前記属性情報は、前記区画情報の種別情報を含み、
前記書き込み部は、前記書き込み対象情報の書き込み要求があった場合であって、該書き込み要求によるアクセス範囲に対応する前記区画に格納された区画情報の属性情報に含まれる前記種別情報がメタデータを示す場合、前記書き込み対象情報を前記格納部の前記第１格納領域とバックアップ領域とに格納し、前記種別情報がメタデータを示さない場合、書き込み対象情報を前記第１格納領域に格納する
ことを特徴とする付記２〜４のうちいずれか１項に記載のストレージ制御システム。
（付記６）
コンピュータに、
情報を格納する第１格納領域と、前記第１格納領域が区分された各区画に格納される情報を示す区画情報の属性に関する属性情報を含む管理情報を格納する第２格納領域と、を含む、複数の格納部から前記管理情報を取得し、
取得した前記管理情報を比較して異常な前記管理情報があるかを判定し、
前記異常な管理情報があると判定された場合、正常な管理情報の区画毎の属性情報に基づいて、該正常な管理情報が取得されたいずれかの前記格納部から、前記異常な管理情報が取得された前記格納部の前記第１格納領域に格納される情報を、区画単位で再構成する
処理を実行させることを特徴とするリカバリプログラム。
（付記７）
前記コンピュータは、さらに、
前記格納部への対象情報の書き込み要求があった場合、前記複数の格納部において、前記第１格納領域に該対象情報を書き込み、該対象情報を書き込んだ区画に格納される区画情報に対応する属性情報に、該区画情報が有効であるか否かを示す情報を書き込む
処理を実行させ、
前記情報を再構成する場合、前記正常な管理情報が取得されたいずれかの前記格納部から、前記区画情報が有効であることを示す属性情報を有する該区画情報を抽出し、前記異常な管理情報が取得された格納部の前記第１格納領域における対応する区画に、抽出した該区画情報を格納する
ことを特徴とする付記６に記載のリカバリプログラム。
（付記８）
前記書き込みが失敗した格納部がある場合、該書き込みが成功した格納部の管理情報における、前記書き込み要求によるアクセス範囲に対応する前記区画に格納された前記区画情報の前記属性情報に、リカバリが必要であることを示す情報を書き込み、
前記情報を再構成する場合、前記書き込みが成功した前記格納部から、前記リカバリが必要であることを示す属性情報を有する該区画情報を抽出し、前記書き込みが失敗した格納部の前記第１格納領域における対応する区画に、抽出した該区画情報を格納する
ことを特徴とする付記７に記載のリカバリプログラム。
（付記９）
前記リカバリが必要であることを示す属性情報は、前記書き込みが失敗した格納部を識別する情報である
ことを特徴とする付記８に記載のリカバリプログラム。
（付記１０）
前記属性情報は、前記区画情報の種別情報を含み、
前記書き込み対象情報の書き込み要求があった場合であって、該書き込み要求によるアクセス範囲に対応する前記区画に格納された区画情報の属性情報に含まれる前記種別情報がメタデータを示す場合、前記書き込み対象情報を前記格納部の前記第１格納領域とバックアップ領域とに格納し、前記種別情報がメタデータを示さない場合、書き込み対象情報を前記第１格納領域に格納する
ことを特徴とする付記６〜９のうちいずれか１項に記載のリカバリプログラム。
（付記１１）
コンピュータが、
情報を格納する第１格納領域と、前記第１格納領域が区分された各区画に格納される情報を示す区画情報の属性に関する属性情報を含む管理情報を格納する第２格納領域と、を含む、複数の格納部から前記管理情報を取得し、
取得した前記管理情報を比較して異常な前記管理情報があるかを判定し、
前記異常な管理情報があると判定された場合、正常な管理情報の区画毎の属性情報に基づいて、該正常な管理情報が取得されたいずれかの前記格納部から、前記異常な管理情報が取得された前記格納部の前記第１格納領域に格納される情報を、区画単位で再構成する
処理を実行することを特徴とするリカバリ方法。
（付記１２）
前記コンピュータは、さらに、
前記格納部への対象情報の書き込み要求があった場合、前記複数の格納部において、前記第１格納領域に該対象情報を書き込み、該対象情報を書き込んだ区画に格納される区画情報に対応する属性情報に、該区画情報が有効であるか否かを示す情報を書き込む
処理を実行させ、
前記情報を再構成する場合、前記正常な管理情報が取得されたいずれかの前記格納部から、前記区画情報が有効であることを示す属性情報を有する該区画情報を抽出し、前記異常な管理情報が取得された格納部の前記第１格納領域における対応する区画に、抽出した該区画情報を格納する
ことを特徴とする付記１１に記載のリカバリ方法。
（付記１３）
前記書き込みが失敗した格納部がある場合、該書き込みが成功した格納部の管理情報における、前記書き込み要求によるアクセス範囲に対応する前記区画に格納された前記区画情報の前記属性情報に、リカバリが必要であることを示す情報を書き込み、
前記情報を再構成する場合、前記書き込みが成功した前記格納部から、前記リカバリが必要であることを示す属性情報を有する該区画情報を抽出し、前記書き込みが失敗した格納部の前記第１格納領域における対応する区画に、抽出した該区画情報を格納する
ことを特徴とする付記１２に記載のリカバリ方法。
（付記１４）
前記リカバリが必要であることを示す属性情報は、前記書き込みが失敗した格納部を識別する情報である
ことを特徴とする付記１３に記載のリカバリ方法。
（付記１５）
前記属性情報は、前記区画情報の種別情報を含み、
前記書き込み対象情報の書き込み要求があった場合であって、該書き込み要求によるアクセス範囲に対応する前記区画に格納された区画情報の属性情報に含まれる前記種別情報がメタデータを示す場合、前記書き込み対象情報を前記格納部の前記第１格納領域とバックアップ領域とに格納し、前記種別情報がメタデータを示さない場合、書き込み対象情報を前記第１格納領域に格納する
ことを特徴とする付記１１〜１４のうちいずれか１項に記載のリカバリ方法。
【符号の説明】
【０１８７】
２１    ストレージ制御システム
２２    格納部
２３    取得部
２４    判定部
２５    リカバリ部
２６    書き込み部
３１    ストレージシステム
３２    コントローラエンクロージャ（ＣＥ）
３３    コントローラモジュール（ＣＭ）
３４    チャネルアダプタ（ＣＡ）
３５    ＣＰＵ
３６    記憶部
３７    デバイスアダプタ（ＤＡ）
３８    ＣＭ間通信インターフェース（I／F）
３９    ディスク装置
４０    ドライブエンクロージャ（ＤＥ）
４１    ホスト
４２    ファイバチャネル（ＦＣ）スイッチ
５１（５１Ａ〜５１Ｎ）    機能制御部
５２    等価制御部
５３    ライト制御部
５４    リード制御部
５５    リカバリ制御部
５６    ライトサブ制御部
５７    リードサブ制御部
５８    ロック／アンロック制御部
５９    等価チェック制御部
６０    ブロック属性管理制御部
６１    ブロック属性解析制御部
６２    ＢＵＤアクセス制御部
６３    ＢＵＤドライバ
６４    ＢＵＤ
６５    等価管理領域
６６    ユーザ領域
６７    バックアップ領域
６８    ＣＭ間通信ドライバ制御部
【図１】
2014059769.tif 000003
【図２】
2014059769.tif 000004
【図３】
2014059769.tif 000005
【図４】
2014059769.tif 000006
【図５】
2014059769.tif 000007
【図６】
2014059769.tif 000008
【図７】
2014059769.tif 000009
【図８】
2014059769.tif 000010
【図９】
2014059769.tif 000011
【図１０】
2014059769.tif 000012
【図１１Ａ】
2014059769.tif 000013
【図１１Ｂ】
2014059769.tif 000014
【図１２Ａ】
2014059769.tif 000015
【図１２Ｂ】
2014059769.tif 000016
【図１２Ｃ】
2014059769.tif 000017
【図１３】
2014059769.tif 000018
【図１４】
2014059769.tif 000019
【図１５】
2014059769.tif 000020
【図１６Ａ】
2014059769.tif 000021
【図１６Ｂ】
2014059769.tif 000022
【図１７】
2014059769.tif 000023
【図１８Ａ】
2014059769.tif 000024
【図１８Ｂ】
2014059769.tif 000025
【図１９】
2014059769.tif 000026