JP6089527B2 - ストレージ制御システム、リカバリプログラム、及び該方法 - Google Patents

ストレージ制御システム、リカバリプログラム、及び該方法 Download PDF

Info

Publication number
JP6089527B2
JP6089527B2 JP2012205012A JP2012205012A JP6089527B2 JP 6089527 B2 JP6089527 B2 JP 6089527B2 JP 2012205012 A JP2012205012 A JP 2012205012A JP 2012205012 A JP2012205012 A JP 2012205012A JP 6089527 B2 JP6089527 B2 JP 6089527B2
Authority
JP
Japan
Prior art keywords
information
control unit
storage
bud
equivalence
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
JP2012205012A
Other languages
English (en)
Other versions
JP2014059769A (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 JP2012205012A priority Critical patent/JP6089527B2/ja
Priority to US14/022,271 priority patent/US9201734B2/en
Publication of JP2014059769A publication Critical patent/JP2014059769A/ja
Application granted granted Critical
Publication of JP6089527B2 publication Critical patent/JP6089527B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1608Error detection by comparing the output signals of redundant hardware
    • G06F11/1612Error detection by comparing the output signals of redundant hardware where the redundant component is persistent storage
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2082Data synchronisation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ストレージ装置の制御技術に関する。
ストレージ装置とは、複数のディスク装置を搭載したディスク記憶システムである。ストレージ装置は、ホストから送信されたデータをディスク装置に書き込むためのコントローラモジュール(CM:Controller Module、以下では「CM」と呼ぶ。)を有している。
ストレージ装置には、CM内外にBUD(Back up Utility Device)を搭載している。BUDの一例として、HDD(Hard Disk Drive)、SSD(Solid State Drive)、USB(Universal Serial Bus)メモリ装置が使用されている。BUDには、装置ログやファームウェアアーカブなど装置内のレコードが格納されている。
BUD上のデータは、利用目的毎(システム機能の要件)に必要に応じて、複数のBUDによって冗長化されている。BUD間のデータの整合性と冗長性の保持は、CMの等価制御部によって実現される。その結果、BUD間のデータは、相互に等価を保持することができる。
記憶装置のリカバリ技術として次の技術がある。当該技術では、OS(Operating System)が起動した時に、サービスプログラムは、記憶装置の制御部に対してメタデータ記録・判断・修復部をロードする。制御部がデータロストエラーを検出した場合、メタデータ記録・判断・修復部は、次の処理を行う。すなわち、メタデータ記録・判断・修復部は、データ記憶部のデータロストエラーのエラー発生アドレスおよびメタデータバックアップ部から読み出したメタデータに基づいてエラー発生アドレスがメタデータ領域にあるかファイルデータ領域にあるかを判断する。メタデータ記録・判断・修復部は、エラー発生アドレスがメタデータ領域にあればメタデータバックアップ部のメタデータ領域バックアップデータをデータ記憶部のメタデータ領域に修復する。
特開2005−149248号公報
しかしながら、上記技術は、記憶装置単体に関するリカバリ技術であり、複数の記憶装置間のデータの整合性を考慮したリカバリシステムに適応したリカバリ技術ではない。そのため、冗長化したシステムにおいて複数の記憶装置間のデータで整合性がない場合、当該技術を用いてシステムを復旧させようとすると、かなりの時間を要することになる。
本発明の一側面では、記憶装置間のデータの整合性を保持しつつ、効率的なリカバリを行うストレージ制御技術を提供する。
本実施形態の一側面に係るストレージ制御システムは、複数の格納部、取得部、判定部、リカバリ部を含む。格納部は、第1格納領域と、第2格納領域とを含む。第1格納領域は、情報を格納する。第2格納領域は、第1格納領域が区分された各区画に格納される情報を示す区画情報の属性に関する属性情報を含む管理情報を格納する。取得部は、複数の格納部から管理情報を取得する。判定部は、取得した管理情報を比較して異常な管理情報があるかを判定する。リカバリ部は、異常な管理情報があると判定された場合、正常な管理情報の区画毎の属性情報に基づいて、正常な管理情報が取得されたいずれかの格納部から、異常な管理情報が取得された格納部の第1格納領域に格納される情報を、区画単位で再構成する。
本発明によれば、記憶装置間のデータの整合性を保持しつつ、効率的なリカバリを行うことができる。
BUD間のデータの整合性を保持する等価制御について説明するための図である。 本実施形態における、ストレージ制御システムの一例を示す。 本実施形態におけるストレージシステムのハードウェア構成を示す。 本実施形態におけるCMの機能ブロック図を示す。 本実施形態におけるユーザ領域の一例を示す。 本実施形態における等価管理データのデータ構成を示す。 本実施形態におけるブロック属性マッピング情報を説明するための図である。 本実施形態におけるブロック属性情報のデータ構造を示す。 本実施形態におけるストレージ装置の初期起動時の等価制御部の動作フローを示す。 本実施形態におけるストレージ装置の初期起動時のCM間の動作シーケンスの全体図である。 本実施形態におけるBUDの初期化処理(S34)の詳細なシーケンス図(その1)である。 本実施形態におけるBUDの初期化処理(S34)の詳細なシーケンス図(その2)である。 本実施形態におけるBUD間の等価処理(S36)の詳細なシーケンス図(その1)である。 本実施形態におけるBUD間の等価処理(S36)の詳細なシーケンス図(その2)である。 本実施形態におけるBUD間の等価処理(S36)の詳細なシーケンス図(その3)である。 本実施形態における各機能制御部からBUDへ読み出し処理を行う場合の等価制御部の動作フローを示す。 本実施形態における機能制御部からBUDへ読み出し処理を行う場合のCM間の動作シーケンスの全体図である。 本実施形態における読み出し処理(S116)の詳細なシーケンス図である。 本実施形態における各機能制御部からBUDへ書込み処理を行う場合の等価制御部の動作フロー(その1)を示す。 本実施形態における各機能制御部からBUDへ書込み処理を行う場合の等価制御部の動作フロー(その2)を示す。 本実施形態における書込み処理シーケンスの全体図である。 本実施形態における書き込み処理(S156)の詳細なシーケンス図(その1)である。 本実施形態における書き込み処理(S156)の詳細なシーケンス図(その2)である。 本実施形態におけるリカバリ処理を行う場合の等価制御部の動作フローを示す。
図1は、BUD間のデータの整合性を保持する等価制御について説明するための図である。CM#0(1a)、CM#(1b)1は、BUD9a−BUD9b間のデータの整合性を保持する。BUD9a,9bは、記憶領域(ユーザ領域)12a,12bと、等価管理領域10a,10bと、バックアップ領域14a,14bとを有する。記憶領域(ユーザ領域)12a,12bは、CM1a,1bの各機能(機能#A、#B、#C・・・)がアクセスして使用する領域であり、実データ13a,13bを格納する。等価管理領域10a,10bと、バックアップ領域14a,14bは、等価制御部3a、3bが使用するための記憶領域である。等価管理領域10a,10bには、BUD9a−BUD9b間でデータの整合性を保持するための等価管理データ11a,11bが格納される。バックアップ領域14a,14bには、データの書き込み中の不良のファーム機能停止(電源断など)に考慮して、ユーザ領域、等価管理領域への書き込みのためにデータが一時的にバックアップされる。
図1では、BUDアクセス機能#A(以下、機能#Aと称する)が使用する記憶領域については、符号「#A」が付与されている。CM#0(1a)、CM#1(1b)は同一の構成を有するので、以下ではCM#0(1a)について説明し、CM#1(1b)についてはその説明を省略する。
CM#0(1a)は、機能制御部2a、等価制御部3a、BUDアクセス制御部7a、BUDドライバ8a、BUD#0(9a)を含む。機能制御部2aは、CMの機能(機能♯A〜N)ごとに存在し、図1では、一例として、BUDアクセス機能A#の機能制御部が示されている。BUDアクセス機能#Aの機能制御部2aは、BUDアクセス機能#Aを実現させるために、BUD9aへのアクセスを実行させる制御部である。
等価制御部3aは、等価管理領域10aにおいて、BUD9a−BUD9b間でデータの冗長性を管理する。具体的には、等価制御部3aは、等価管理データを用いて、各機能が使用するユーザ領域の実データ13aが、BUD9a−BUD9b間で同じになるように管理している。等価制御部3aは、バックアップ領域14aに実データ13aを一時的にバックアップし、その実データを用いて書き込み処理をリトライする。等価制御部3aは、ライト制御部4a、ライトサブ制御部5a、等価チェック制御部6aを含む。
ライト(write)制御部4aは、BUD9a,9bに対する、機能#A〜#Nからのデータの書き込み要求を制御するメインルーチンである。ライトサブ(write sub)制御部5aは、各制御部から指定されたBUD9aの記憶領域にデータを書き込むサブルーチンである。
等価チェック制御部6aは、機能#A〜#Nで使用する記憶領域に保持する実データ13a,13bがBUD9a−BUD9b間で等価状態にあるかチェックする。等価状態にないBUDが存在する場合は、等価チェック制御部6aは、等価状態となるようにリカバリ処理を動作させる。
BUDアクセス制御部7aは、アクセス先のアドレスについて、論理アドレス−物理アドレス変換を行う。BUDドライバ8aは、BUD9a−BUD9b間の通信を行うドライバである。CM間通信ドライバ16aは、他CM1bとの通信を行うドライバである。

BUD9aは、各機能に対応する、等価管理領域(10a)、ユーザ領域(12a)、バックアップ領域(14a)を有する。図1では、一例として、機能#Aに対応する等価管理領域#A(10a)、ユーザ領域#A(12a)、バックアップ領域#A(14a)が記載されている。
図1において、機能#A(2a)からBUD9a,9bのユーザ領域#Aへの書き込み要求を受けると(S1)、等価制御部3aは、BUD9a,9bにおいて機能#Aに対応する等価管理領域#Aから等価管理データを読み出す。すなわち、機能#Aから等価制御部3aへ書込み要求があった場合(S1)、ライト制御部4aは等価チェック制御部6aに等価チェック要求を行う(S2)。等価チェック制御部6aは、BUDアクセス制御部7a、BUDドライバ8aを介して、BUD#0(9a)の等価管理領域#A(10a)から等価管理データ#A(11a)を読み出す(S3,S4)。また、等価チェック制御部6aは、BUDアクセス制御部7a、BUDドライバ8a、CM間通信ドライバ16a,16b、BUDドライバ8bを介して、BUD#1(9b)の等価管理領域#Aから等価管理データ#A(11b)を読み出す(S3,S4)。
次に、等価チェック制御部6aは、BUD9a,9bの等価管理データを比較して、異常がないかをチェックする。異常な等価管理データがある場合、等価チェック制御部6aは、そのチェック結果をライト制御部4aへ送信する(S5)。ライト制御部4aは、リカバリ制御部(不図示)に異常なBUDに対して、正常なBUDのデータ(リカバリデータ)を書き込むように要求を行う(S6)。
書込みを行う場合、等価制御部3a,3b(ライトサブ制御部5a,5b)は、停電時などの即断に備えて、リカバリデータをバックアップ用データとしてバックアップ領域に書き込む(S7、S8)。バックアップ用データは、書込み情報(書込み位置と書込みサイズ)、等価管理データ、実データを含む。
それから、等価制御部3a,3b(ライトサブ制御部5a,5b)は、リカバリのために、実データの書き込み前に、等価管理データを無効化する(S9,S10)。その後、等価制御部3a,3b(ライトサブ制御部5a,5b)は、実データを、ユーザ領域#Aの指定の位置へ書き込む(S11、S12)。等価制御部3a,3b(ライトサブ制御部5a,5b)は、実データの書き込み後に等価管理データを有効にする(S13,S14)。
このように、CM内の機能からBUDの領域へのデータの書き込み要求が発生すると、BUDに対して複数の書き込み処理が行われる。さらに、実データは、ユーザ領域及びバックアップ領域にそれぞれ書き込まれ、書込み処理時間は単純に2倍以上の時間を要する。このため、SSDのような高速アクセスデバイスを使用するとしても、書込み処理のオーバヘッドは無視することができない。
また、CM保守(CMの動作確認検査、CMの組み込み作業)時には、管理しているユーザ領域内の全データをコピーしているので、非常に時間がかかり、組み込み時間が長くなっている。
さらに、BUDを初めて使用する場合、初回の読み出し処理において、BID(Block ID)エラーなど発生しないように、使用する領域について、データ「0」を書き込みして初期化している。したがって、BUDの容量が大きくなるにつれて、BUD初期化に時間がかかり、組み込み時間が長くなっている。
等価制御部を介してCM内の各機能がBUDへアクセスする前後では、ユーザ領域へのアクセス競合を防止するために、BUDのユーザ領域に対してアクセスのロック/アンロックを行って、排他制御が行われる。これにより、ロックされていないユーザ領域を使用する機能制御部がBUDにアクセスすることが可能になる一方で、ロックされているユーザ領域を使用する機能制御部はBUDにアクセスすることができない。したがって、BUDに対するアクセス競合を防止して、書き込み処理においてBUD間でデータの整合性を保持することができる。
等価制御部は、機能制御部からのアクセス要求によるアクセス先の領域に格納された情報がBUD間で等価状態(データとして等しい状態)となるように制御する。等価制御部によるBUD間の等価状態チェックは、等価管理領域に格納されている等価管理データを照合して行われる。
等価管理データは、該当するユーザ領域への実データの書き込み要求で更新されるものであり、更新時のタイムスタンプ情報を含む。等価管理データは、ユーザ領域へのデータの書き込み前に一旦無効状態にされ、書込み処理が完了した時点で有効状態に戻される。これにより、等価管理データが有効のBUDの領域、またはタイムスタンプが新しいBUDの領域から、等価管理データが無効のBUDの領域またはタイムスタンプが古いBUDの領域へデータが等価制御部によりコピーされ、等価状態を維持するように制御される。
ところが、書込み処理中に停電やプログラムが即時停止する事象が発生した場合、各領域の等価管理データは無効状態のままとなる。BUDへの書き込み処理は、各CMで同時に行われるため、復旧時に有効状態の等価管理データが存在しなくなる場合、データがロストすることになる。
その問題を解決するために、ユーザ領域へのデータの書き込み前に、バックアップ領域へ一度データの書き込みを行う。停電等のプログラム即時停止が発生しても、復電時に書込み処理中と判断した場合、バックアップ領域のデータから書き込み処理をリトライする。
これにより、各領域内のレコードの整合性を維持することができる。バックアップ処理は、いつ発生するか分からない事象に備えて、書込み要求時に毎回実行されるので、書き込み処理性能とトレードオフの仕組みとなっている。
また、停電が発生した際にメモリ上のデータを不揮発性デバイスにバックアップする仕組みがある。しかしながら、各機能からの同時アクセスでかつ最大アクセスサイズを考慮したメモリ空間を用意しなければならず、メモリ空間を圧迫するので、当該仕組みを利用することは難しい。
また、等価制御部は、管理する領域内のデータ構造を知らないので、ユーザ領域内のデータはすべて有効であると判断する。このため、CM保守またはBUD保守において、保守されたBUD側にデータを他の正常なBUDからコピーする際に全データをコピーするしかなく、組み込み処理に時間を要する。
さらに、コピー処理中にコピー元データの読み出しができなかった場合、その読み出しができない領域がたとえ未使用領域だとしても、コピー処理していた領域を全て破棄するしかなく、データロストとなる。
上記課題に鑑み、本実施形態では、BUDへの書き込みアクセス時に効率的な書き込み処理を行うことにより、書き込み処理の向上及びCM組み込み等でのリカバリ処理速度の向上を図る。
図2は、本実施形態における、ストレージ制御システムの一例を示す。ストレージ制御システム21は、複数の格納部22、取得部23、判定部24、リカバリ部25を含む。
複数の格納部22はそれぞれ、第1格納領域と、第2格納領域とを含む。第1格納領域は、情報を格納する。第2格納領域は、管理情報を格納する。管理情報は、第1格納領域が区分された各区画に格納される情報を示す区画情報の属性に関する属性情報を含む。格納部22の一例として、BUD64が挙げられる。第1格納領域の一例として、ユーザ領域66が挙げられる。第2格納領域の一例として、等価管理領域65が挙げられる。管理情報の一例として、等価管理データが挙げられる。属性情報の一例として、ブロック属性情報が挙げられる。
取得部23は、複数の格納部2から管理情報を取得する。取得部23の一例として、等価チェック制御部59が挙げられる。
判定部24は、取得した管理情報を比較して異常な管理情報があるかを判定する。判定部4の一例として、等価チェック制御部59が挙げられる。
リカバリ部25は、異常な管理情報があると判定された場合、次の処理を行う。すなわち、リカバリ部25は、正常な管理情報の区画毎の属性情報に基づいて、正常な管理情報が取得されたいずれかの格納部22から、異常な管理情報が取得された格納部22の第1格納領域に格納される情報を、区画単位で再構成する。リカバリ部25の一例として、リカバリ制御部55が挙げられる。
このように構成することにより、記憶装置間のデータの整合性を保持しつつ、効率的なリカバリを行うことができる。すなわち、区画単位でのリカバリが可能になるので、リカバリに要する時間を短縮することができる。
ストレージ制御システム21は、さらに、書き込み部26を含む。書き込み部26は、格納部22への対象情報の書き込み要求があった場合、複数の格納部22の第1格納領域に対象情報を書き込む。このとき、書き込み部26は複数の格納部22の第2格納領域に格納された管理情報における対象情報を書き込んだ領域の区画に対応する属性情報に、区画情報が有効であるか否かを示す情報を書き込む。書き込み部26の一例として、ライト制御部53が挙げられる。この場合、リカバリ部25は、正常な管理情報が取得されたいずれかの格納部22から、区画情報が有効であることを示す属性情報を有する区画情報を抽出する。そして、リカバリ部25は、異常な管理情報が取得された格納部22の第1格納領域における対応する区画に、抽出した区画情報を格納する。
このように構成することにより、正常な等価管理データが取得されたBUDから、有効なデータをブロック単位で抽出して、リカバリ対象BUDの、対応するブロックに書き込むことができる。これにより、無効なデータの抽出及び書き込みを行う必要がないので、リカバリに要する時間を短縮することができる。
書き込み部26は、書き込みが失敗した格納部22がある場合、書き込みが成功した格納部22の管理情報における、書き込み要求によるアクセス範囲に対応する区画に格納された前記区画情報の前記属性情報に、リカバリが必要であることを示す情報を書き込む。
リカバリ部25は、書き込みが成功した格納部22から、リカバリが必要であることを示す属性情報を有する区画情報を抽出する。リカバリ部25は、書き込みが失敗した格納部22の前記第1格納領域における対応する区画に、抽出した区画情報を格納する。
このように構成することにより、リカバリを行う場合、ユーザ領域全域ではなく、リカバリが必要であることを示す属性情報を有するブロックについて、リカバリを行えばよいので、リカバリに要する時間を短縮することができる。
また、リカバリが必要であることを示す属性情報は、書き込みが失敗した格納部22を識別する情報である。このように構成することにより、リカバリ対象のBUDを特定することができる。
属性情報は、区画情報の種別情報を含む。書き込み部26は、前記書き込み対象情報の書き込み要求があった場合であって、書き込み要求によるアクセス範囲に対応する区画に格納された区画情報の属性情報に含まれる種別情報がメタデータを示す場合、次の処理を行う。すなわち、書き込み部26は、書き込み対象情報を格納部22の第1格納領域とバックアップ領域とに格納する。書き込み部26は、その種別情報がメタデータを示さない場合、書き込み対象情報を第1格納領域に格納する。
このように構成することにより、メタデータの書き込みの場合にバックアップを行うようにし、実データの書き込みの場合にはバックアップを行わないので、書き込み処理の時間を短縮することができる。
図3は、本実施形態におけるストレージシステムのハードウェア構成を示す。ストレージシステム31は、複数のディスク装置39を搭載したディスク記憶システムである。図3の例では、ホストコンピュータ(以下、ホストと称する)41からディスク装置39へのアクセスに関して、冗長化のために、各ディスク装置39に対するアクセスパスが存在している。またデータ自体についても、RAID(Redundant Arrays of Independent Disks)を用いて複数台のディスクにデータが分散されて、冗長化した状態で保存されている。
ストレージシステム31は、ホスト41、ファイバチャネル(FC)スイッチ42、コントローラエンクロージャ(CE)32、ドライブエンクロージャ(DE)40を含む。ストレージシステム31は、ドライブエンクロージャ(DE)40と、ホスト41とが、FCスイッチ42、コントローラモジュール(CM)33を介して接続されている。
ホスト41は、FCスイッチ42を介してCE32と通信をして、DE40が有するディスク装置39からデータを読み出したり、ディスク装置39にデータを書き込んだりする。なお、図3では、1つのホスト41を図示しているが、複数のホスト41が、CE32に接続されていてもよい。
CE32は、複数のCM33を含む。CM33は、ディスク装置39の動作制御を行う。CM33は、ストレージ制御装置として機能する。ストレージシステム31は、CM33を2以上有することで、冗長性を確保する。
CM33は、アクセス指示情報として入出力(I/O)コマンドをDE40に送信し、ディスク装置39の記憶領域に対するデータの入出力指令を行う。また、入出力指令からアクセス監視時間が経過しても応答が得られないときは、CM33は、このI/O処理を中断するアボート指示コマンドをDE33に送信する。
CM33は、チャネルアダプタ(CA)34、中央演算装置(CPU:Central Processing Unit)35、記憶部36、デバイスアダプタ(DA)37、CM間通信インターフェース(I/F)38を含む。チャネルアダプタ(CA)34、CPU35、記憶部36、デバイスアダプタ(DA)37は、内部バスを介して接続されている。
CA34は、FCスイッチ42を介して、ホスト41と接続されている。CPU35は、CM33全体を制御する。CM間通信I/F38は、他のCMと通信を行うためのインターフェースであり、CM間通信I/F38間は、通信線で接続されている。
記憶部36は、例えば、キャッシュメモリ、ROM(Read Only Memory)、RAM(Random Access Memory)等の情報を記録するデバイスである。記憶部16には、CM33を動作させるために用いるデータ、及び本実施形態に係るプログラム及び本実施形態で用いるデータ等が格納される。記憶部16には、BUDが含まれる。
DA37は、DE40に接続される。CPU35は、DA37を介してDE40との間でデータの送受信を行う。
DE40は、1以上のDEより形成される。DE40は、複数のディスク装置39を含み、冗長性を考慮したRAID構成を有する。
図4は、本実施形態におけるCMの機能ブロック図を示す。各CM33は、機能制御部51(51A〜51N)、等価制御部52、BUDアクセス制御部62、BUDドライバ63、BUD64、CM間通信ドライバ制御部68を含む。
機能制御部51(機能#A制御部51A〜機能#N制御部51N)は、BUD64の領域を使用して、それぞれの機能を実行させる制御部である。機能制御部51は、BUDへのアクセス時にアクセスする範囲に対応するブロックの属性を等価制御部52に渡すI/Fを含む。ブロックとは、後述するように、ユーザ領域66を所定のサイズで区分されたことで得られる区画のことである。これにより、機能制御部51が、メタデータ/データを動的にセットする機能を有していても、等価制御部52はその機能に対応することができる。
等価制御部52は、各機能制御部51が使用するBUD64の領域に関して、BUD64間でデータの等価状態を維持し、データを管理する制御部であり、CPU35によって実現される。等価制御部52は、ライト制御部53、リード制御部54、リカバリ制御部55、ライトサブ制御部56、リードサブ制御部57、ロック/アンロック制御部58、等価チェック制御部59、ブロック属性管理制御部60、ブロック属性解析制御部61を含む。
ライト(write)制御部53は、各機能制御部51からの書き込み要求に対する処理を制御するメインルーチンである。リード(read)制御部54は、各機能制御部51からの読み出し要求に対する処理を制御するメインルーチンである。
リカバリ(recovery)制御部55は、BUD64間でデータが等価状態にない領域に対して、リカバリを制御するメインルーチンである。リカバリ制御部55は、正常なデータを有するBUD64からデータを読み出し、その読み出したデータを、異常なデータを有するBUD64に書き込む。
ライトサブ(write sub)制御部56は、各制御部(53〜55,57〜61)から指定されたBUD64の対象領域にデータを書き込むサブルーチンである。リードサブ(read sub)制御部57は、各制御部(53〜55,57〜61)から指定されたBUD64の対象領域のデータを読み出すサブルーチンである。
ロック/アンロック制御部58は、機能制御部51からBUDへのアクセスの排他を制御するメインルーチンである。ロック/アンロック制御部58は、機能制御部51からBUDへのアクセス要求があった場合、アクセス要求元の機能制御部によるアクセスを許可し、アクセス要求元以外の機能制御部によるアクセスを制限することにより、アクセスの排他制御を行う。
等価チェック制御部59は、各機能制御部51で使用するBUD64の領域に保持されているデータがBUD64間で等価状態にあるかどうかをチェックする。等価状態にないBUD64が存在する場合は、等価チェック制御部59は、等価状態となるようにリカバリ制御部55にリカバリ処理を実行するように要求する。
ブロック属性管理制御部60は、各ユーザ領域66内のブロックの属性を管理するメインルーチンである。ブロック属性管理制御部60は、等価制御部52で管理しているユーザ領域65内で、任意のブロック単位で格納されるデータの種別、有効/無効等の属性を含むブロック属性情報を構築する。ブロック属性管理制御部60は、構築したブロック属性情報を等価管理データとして保持する。ブロックの属性がメタデータなのか実データなのかを判断するために、ブロック属性管理制御部60は、各機能制御部51に対して、そのブロックの属性を問い合わせるためのI/Fを含む。これにより、ブロックの属性が変化しても、BUDにアクセスロックがかけられていない場合には、ブロック属性管理制御部60は、機能制御部51からブロック属性を取得することができる。これにより、ブロック属性管理制御部60は、現在のデータからブロック属性マッピング情報を再構築できる。ブロック属性マッピング情報とは、ユーザ領域の各ブロックに対応させてブロック属性情報を管理する情報を示す。
また、後述するように、一度データの書込みがされると、その書き込みされた領域のブロック属性が有効に変化する。仮に、各機能制御部51からブロック属性を取得できないならば、等価制御部52は、一度書込みがされた領域がその後、使用しない領域に変更された場合、その領域が使用されなくなったこと、すなわち、その領域が無効であることを判断することができない。しかしながら、本実施形態では、等価制御部は各機能制御部51からブロック属性を取得することができる。そのため、上記ケースであっても、等価制御部52は取得したブロック属性に基づいて、等価管理データのブロックの属性を「有効」属性から「無効」属性に変更することができる。
ブロック属性解析制御部61は、各制御部(53〜60)からのアクセス要求があった場合、そのアクセス範囲に対応するブロックの属性を判定する。
BUDアクセス制御部62は、各制御部からBUD64へのアクセス要求があった場合、アクセス先のアドレスについて、論理アドレス−物理アドレスの変換を行う。BUDドライバ63は、BUD64との通信を行うドライバである。BUD64は、等価管理領域65、ユーザ領域66、バックアップ領域67を含む。
図5は、本実施形態におけるユーザ領域の一例を示す。BUD64は、各機能制御部51に対応する領域(ユーザ領域)を有する。BUD64のユーザ領域66には、メタデータ71と実データ72が格納される。BUD64へアクセスを行うCM33内の機能制御部51(特に容量が大きい領域を使用する機能)は、機能固有のメタデータ71(どのアドレスに何のデータが格納されているかを示す情報)を保持する。
書き込んだ実データの有効化(完全性を保持)または実データの無効化(破棄、上書き)をメタデータで管理するため、実データ自体の書き込みに付随して、メタデータの更新が行われる。言い換えれば、メタデータ上でその実データが有効とならなければ、その実データは無効なデータとして扱われる。つまり、メタデータを保護することにより、実データの整合性を保持することができる。したがって、バックアップ領域67への書込み処理は、メタデータについて行えばよい。
また、ユーザ領域66に格納されているメタデータの範囲が分かれば、メタデータを読み出し、有効な実データがユーザ領域のどの位置に格納されているかを判断することができる。そのため、CM33の保守やBUD64の保守等でのデータコピー処理において、コピー元から必要最小限のデータをコピーすることができる。その結果、CMの組み込み時間の短縮、あるいはコピー元データの読み出し失敗時のデータ破棄の判断が可能になる。
以下では、等価管理データを用いて、等価制御部52により各ユーザ領域内のデータ属性を管理することにより、各ユーザ領域内のメタデータを保護し、書き込みアクセス処理、及び読み出しリカバリ処理を効率的に行うことについて説明する。
図6は、本実施形態における等価管理データのデータ構成を示す。等価管理データは、BUD64間のデータの整合性をユーザ領域単位で管理するためのデータであり、各ユーザ領域66に格納される情報(管理データ)を管理するために用いられる。等価管理データは、等価管理領域65に格納されている。
等価管理データは、有効/無効フラグ81、書込み判定フラグ82、領域識別番号フラグ83、更新タイムスタンプ84、更新カウンタ85、旧更新タイムスタンプ86、ブロック属性マッピング情報87を含む。
有効/無効フラグ81は、当該等価管理データが有効であるか無効であるかを示すフラグである。
書込み判定フラグ82は、当該等価管理データに対応するユーザ領域へデータが書込み処理中か否かを判定するフラグである。書込み判定フラグ82は、書込み処理が開始する場合にONとなり、書込み処理が完了するとOFFになる。
領域識別番号83は、各機能制御部51が使用しているユーザ領域を識別する番号を示す。
更新タイムスタンプ84は、当該ユーザ領域66に格納される情報(管理データ)が更新された時刻を示す情報である。更新タイムスタンプ84は、書き込み処理により更新される。
更新カウンタ85は、当該管理データが更新された回数を示す情報であり、更新タイムスタンプ84の補足情報である。更新カウンタ85は、BUD64間で、対応するユーザ領域の管理データ同士の更新タイムスタンプ84が同じ場合にカウントされる。
旧更新タイムスタンプ86は、更新タイムスタンプ84の1つ前の更新タイムスタンプの情報を示し、BUD64間のデータの等価に失敗した際に設定される。旧更新タイムスタンプ86は、旧更新タイムスタンプ1(86−1)、旧更新タイムスタンプ2(86−2)、・・・旧更新タイムスタンプk(86−k)(k:任意の整数)を含む。
ブロック属性マッピング情報87は、任意のブロック長を有し、各ブロックの属性を管理するマッピング情報である。具体的には、ブロック属性マッピング情報87は、当該ユーザ領域を所定のサイズのブロックに区分して、区分したブロック毎に属性情報を付与したマッピング情報である。ブロック属性マッピング情報87の詳細については、図7を用いて説明する。
図7は、本実施形態におけるブロック属性マッピング情報を説明するための図である。図7(A)は、所定サイズのブロックで区分されたユーザ領域を示す。図7(B)は、そのユーザ領域を形成する各ブロックをマッピングしたブロック属性マッピング情報を示す。
図7(A)に示すように、ユーザ領域は、メタデータを格納する記憶領域(メタデータ格納領域)、実データを格納する記憶領域(データ格納領域)、未使用の記憶領域(フリー領域)を含む。ユーザ領域は、所定のサイズの区画(ブロック)に区分して管理される。ブロック属性マッピング情報は、図7(B)に示すように、そのユーザ領域を形成する各ブロックがマッピングされており、各ブロックの属性情報を有する。
ブロック属性マッピング情報87において、「Block(Column)」、「Block(Raw)」で特定される位置は、当該ユーザ領域において対応するブロックを特定する位置に相当する。図7(B)に示すように、ブロック属性マッピング情報87において「Block(Column)」、「Block(Raw)」で特定されるブロックの位置に、そのブロックの属性情報が格納されている。
図8は、本実施形態におけるブロック属性情報のデータ構造を示す。ブロック属性情報は、「領域属性情報」91、「有効/無効属性情報」92、「リカバリ属性情報」93を含む。
「領域属性情報」91には、ユーザ領域においてそのブロックに格納されている情報の属性を示す情報が格納される。「領域属性情報」91には、具体的には、「メタ(M)」、「データ(D)」、「フリー(F)」が格納される。「メタ(M)」は、そのブロックに対応する領域に格納された実データに関するメタデータの格納領域であることを示す。「データ(D)」は、そのブロックに対応する領域に格納された実データの格納領域であることを示す情報であって、メタデータで管理される情報であることを示す。「フリー(F)」は、そのブロックに対応する領域が空き領域(未使用領域)であることを示す。
「有効/無効属性情報」92には、「有効(V)」、「無効(I)」のうち、いずれかが格納される。「有効(V)」は、そのブロックが有効な情報を保持していることを示す。「無効(I)」は、そのブロックが有効な情報を保持していないことを示す。
「リカバリ属性情報」93には、複数あるBUD64のうち、等価状態が維持されずにリカバリ処理が必要になったBUD64を識別する情報が格納される。
次に、等価制御部の動作について説明する。
<ストレージ装置の初期起動時>
図9は、本実施形態におけるストレージ装置の初期起動時の等価制御部の動作フローを示す。ストレージ装置が初期起動でない場合(S20で「No」)、本フローは終了する。ストレージ装置が初期起動である場合(S20で「Yes」)、等価制御部52は、各ユーザ領域に対応する機能制御部51に、初期書込みデータの作成を依頼する(S21)。初期書込みデータとは、初期起動時にユーザ領域に格納するメタデータを示す。
等価制御部52は、機能制御部51に問い合わせ、初期起動時のブロック属性マッピング情報を示す初期ブロック属性マッピング情報及び初期起動時の等価管理データを示す初期等価管理データを作成する(S22,S23)。
等価制御部52は、初期書込みデータ(メタデータ)と初期等価管理データを各BUD に書き込む(S24、S25)。各ユーザ領域について、S21〜S25の処理を繰り返す(S26)。これ以降、各機能制御部によるBUD64へのアクセスが可能になる。
図10は、本実施形態におけるストレージ装置の初期起動時のCM間の動作シーケンスの全体図である。以下では、説明の便宜上、制御する側のCM(制御CM)の構成に関する要素については添え字aを付し、それ以外のCMの構成に関する要素については添え字bを付す。
制御CM33a内のパワー制御部101aは、電源がオンになると、等価制御部52aへ等価制御を実行させるための等価要求を行う(S31)。
等価制御部52aは、等価要求を受信すると、BUD64間のアクセスの排他制御を行い、BUD64へのアクセスロックを行う(S32)。アクセスロックとは、等価制御部52aにより所定の機能制御部以外の機能制御部によるBUD64のユーザ領域へのアクセスを制限してBUD64間のアクセスの排他制御を示す。その後、等価制御部52aは、各CM33bへBUD64を初期化するための初期化要求を行う(S33)。
各CM33bの等価制御部52bは、初期化要求を受けると、BUD64の初期化処理を行う(S34)。初期化処理では、初期起動であるかが判定され、初期起動の場合には初期化されたブロック属性マッピング情報及び等価管理データが作成される。また、当該ストレージ装置が搭載しているBUD64のシステム管理データが作成される。BUD64の初期化の完了後、等価制御部52bは、制御CM33aへ初期化要求に対する応答を行う(S35)。
初期化要求に対する応答を受信すると、制御CM33aの等価制御部52aは、BUD64間のユーザ領域のデータを等価状態にする等価処理を行う(S36)。等価制御部52aは、未処理のユーザ領域がある間(S37で「Yes」)、等価処理を行う(S36)。
BUD64上のすべてのユーザ領域について等価処理が完了した場合(S37で「No」)、等価制御部52aは、BUD64へのアクセスの排他制御を行い、BUD64へのアクセスロックを解除する(S38)。等価制御部52aは、パワー制御部101aへ等価制御が完了したことを通知する等価応答を行う(S39)。
次に、図10で説明したBUD64の初期化処理(S34)の詳細について、図11を用いて説明する。
図11A及び図11Bは、本実施形態におけるBUDの初期化処理(S34)の詳細なシーケンス図である。S34において、制御CM33aの等価制御部52aから初期化要求を受けると、各CM33bの等価制御部52bは、以下の処理を行う。
まず、等価チェック制御部59bは、リードサブ制御部57b、BUDアクセス制御部62b、BUDドライバ63bを介して、BUD64bへ読み出し要求を行い、BUD64bからシステム管理データを読み出す(S41,S42、S43)。ここで、システム管理データとは、各ストレージ装置で独立した情報であって、各ストレージ装置が保持するBUD64を管理する情報である。システム管理データは、ストレージ装置が初期起動であるか否かの情報を含んでいる。
等価チェック制御部59bは、読み出したシステム管理データに基づいて、BUDの初期化が行われているかを判定する(S44)。システム管理データを参照して、初期化処理が既に行われていると判定した場合(S44で「Yes」)、等価チェック制御部59bは、初期化処理(S34)を終了する。システム管理データを参照して、初期化処理がまだ行われていないと判定した場合(S44で「No」)、等価チェック制御部59bは、リカバリ制御部55bへ、デフォルトの等価状態を形成するためにリカバリ要求を行う(S45)。
リカバリ制御部55bは、機能制御部51bに、機能制御部51bが使用するユーザ領域に対する初期データの作成要求を行う。機能制御部51bの初期データ作成部111bは、初期データの作成依頼を受けると、機能制御部51bが使用するユーザ領域のデフォルトのメタデータと初期データとして作成し、リカバリ制御部55bへ返信する(S46)。
リカバリ制御部55bは、ブロック属性管理制御部60bを介して、機能制御部51bのブロック属性応答部112bへ、初期ブロック属性マッピング情報を要求する(S47、S48)。初期ブロック属性マッピング情報とは、機能制御部51bが使用するユーザ領域の各ブロックに対応する初期化されたブロック属性情報のことである。
ブロック属性応答部112bは、その機能制御部51bが使用するユーザ領域の各ブロックの属性情報をブロック属性管理制御部60bへ返信する。ブロック属性管理制御部60bは、そのブロック属性情報から、その機能制御部51bが使用するユーザ領域の各ブロックにマッピングさせた形式の情報(ブロック属性マッピング情報)を生成する。ブロック属性管理制御部60bは、その初期時のブロック属性マッピング情報をリカバリ制御部55bへ返信する(S49)。
リカバリ制御部55bは、初期ブロック属性マッピング情報を含めた、その機能制御部51bが使用するユーザ領域に対応する初期化された等価管理データ(初期等価データ)を生成する(S50)。
リカバリ制御部55bは、ライトサブ制御部56b、BUDアクセス制御部62b、BUDドライバ63bを介して、BUD64bにおいて、その機能制御部51bが使用するユーザ領域へ初期データ(メタデータ)を書き込む(S51、S52、S53)。
リカバリ制御部55bは、ライトサブ制御部56b、BUDアクセス制御部62b、BUDドライバ63bを介して、BUD64bの等価管理領域へ初期等価管理データの書き込む(S54、S55、S56)。リカバリ制御部55bは、等価チェック制御部59bへ、リカバリ要求に対する応答を行う(S57)。
等価チェック制御部59bは、BUD64において、未処理のユーザ領域がある場合(S58で「Yes」)、S45の処理へ戻る。
各機能制御部51bが使用するユーザ領域について、処理が完了した場合(S58で「No」)、等価チェック制御部59bは、各ストレージ装置が保持するBUDを管理するシステム管理データを更新する(S59)。等価チェック制御部59bは、ライトサブ制御部56b、BUDアクセス制御部62b、BUDドライバ63bを介して、BUD64bへシステム管理データの書き込み要求を行う(S60、S61、S62)。
次に、図10で説明したBUD間のユーザ領域のデータが等価状態を維持するための等価処理(S36)の詳細について、図12A、図12B及び図12Cを用いて説明する。
図12A、図12B及び図12Cは、本実施形態におけるBUD間の等価処理(S36)の詳細なシーケンス図である。S36において、各CM33bの等価制御部52bから初期化要求に対する応答を受けると、制御CM33aの等価制御部52aは、以下の処理を行う。
まず、等価チェック制御部59bは、リードサブ制御部57b、BUDアクセス制御部62b、BUDドライバ63bを介して、各BUD64bへ読み出し要求を行い、全BUD64bから等価管理データを読み出す(S71,S72、S73)。
等価チェック制御部59aは、各BUD64から受信した等価管理データが等価状態を維持しているかを判定する。すなわち、等価チェック制御部59aは、各BUD64から読み出した等価管理データの更新タイムスタンプ及び更新カウンタを比較して、更新タイムスタンプ及び更新カウンタが同一であるかを判定する。
各BUD64から読み出した等価管理データの更新タイムスタンプ及び更新カウンタが同一である場合(S74で「Yes」)、等価チェック制御部59aは、全等価管理データは正常(等価状態)であると判定し、本シーケンスの処理を終了する。
各BUD64から読み出した等価管理データの更新タイムスタンプまたは更新カウンタが同一でない場合(S74で「No」)、リカバリの必要なBUDがあるので、等価チェック制御部59aは、リカバリ制御部55aへ、リカバリ要求を送信する(S75)。ここで、リカバリ制御部55aは、S74で比較した等価管理データのうち、更新タイムスタンプが最新か、または更新タイムスタンプが最新でかつ更新カウンタの値が最も多い等価管理データを等価状態の基準とする。以下では、その等価状態の基準とするBUDを等価元BUDと称する。また、等価元BUDに合わせて等価状態にする対象のBUD、すなわちリカバリ対象BUDを等価先BUDと称する。
リカバリ制御部55aは、等価管理データを作成する(S76)。ここでは、リカバリ制御部55aは、リカバリの必要なBUD(等価先BUD)の等価管理データを、等価元BUDの等価管理データで上書きする。リカバリ制御部55aは、ライトサブ制御部56a、BUDアクセス制御部62b、BUDドライバ63bを介して、有効/無効フラグ=「無効」に更新して、等価管理データを無効化する(S77,S78,79)。
リカバリ制御部55aは、等価元BUDの等価管理データのブロック属性マッピング情報から1つのブロック属性情報を抽出する(S80)。リカバリ制御部55aは、BUDアクセス制御部62b、BUDドライバ63bを介して、等価元BUDの、対応するユーザ領域から、抽出したブロック属性情報に対応する情報を読み出す(S81,S82,S83)。
リカバリ制御部55aは、ライトサブ制御部56a、BUDアクセス制御部62b、BUDドライバ63bを介して、等価元BUDから読み出した情報を、等価先BUD64へ書込む(S84、S85、S86)。
リカバリ制御部55aは、等価元BUDの等価管理データのブロック属性マッピング情報に未処理ブロックがある場合(S87で「Yes」)、S80の処理へ戻る。
等価元BUDの等価管理データのブロック属性マッピング情報の全ブロックについて、処理が完了した場合(S87で「No」)、リカバリ制御部55aは、各BUDの等価管理データのブロック属性情報に含まれるリカバリ属性情報を、「0」でクリアする(S88)。
リカバリ制御部55aは、ライトサブ制御部56a、BUDアクセス制御部62b、BUDドライバ63bを介して、S88で更新したブロック属性マッピング情報を含む等価管理データの有効/無効フラグを「有効」に更新する。それから、リカバリ制御部55aは、等価管理データを有効化する(S89、S90、S91)。
また、リカバリ制御部55aは、ライトサブ制御部56a、BUDアクセス制御部62b、BUDドライバ63bを介して、リカバリ対象外のBUD64bの等価管理データのブロック属性のリカバリ属性を「0」で更新する(S92,S93,S94)。等価チェック制御部59aは、リカバリ制御部55aから、リカバリ要求に対する応答を受信する(S95)。
このように、ストレージ装置の初期起動時において、機能制御部が使用するユーザ領域を初期化する場合、等価管理部52は、等価管理データの初期データを作成し、各BUD64に保持する。本実施形態では、等価管理データにより、ユーザ領域に格納されるデータを管理するので、論理的な情報(等価管理データ)の初期化で済むので、ユーザ領域の全領域を0で書き込むことによる初期化の必要がない。
<各機能制御部からBUDへ読み出し処理を行う場合>
図13は、本実施形態における各機能制御部からBUDへ読み出し処理を行う場合の等価制御部の動作フローを示す。機能制御部51からの読み出し要求を受けると、等価制御部52は、各BUD64から、等価管理データを読み出す(S101)。
等価制御部52は、各BUD64から読み出した等価管理データを比較して、等価管理データが一致しないBUDがあるかを判定する(S102)。すなわち、等価制御部52は、各BUD64から読み出した等価管理データの更新タイムスタンプ及び更新カウンタを比較して、更新タイムスタンプ及び更新カウンタが同一であるかを判定する。
各BUD64からリードした等価管理データの更新タイムスタンプまたは更新カウンタが同一でない場合(S102で「Yes」)、等価制御部52は、リカバリ処理を行う(S103)。
各BUD64から読み出した等価管理データの更新タイムスタンプ及び更新カウンタが同一である場合(S102で「No」)、等価制御部52は、次の処理を行う。すなわち、等価制御部52は、等価管理データのブロック属性マッピング情報を用いて、機能制御部51からの読み出し要求があったアクセス範囲に対応するブロックの属性情報の有効性をする(S104)。
S104において、アクセス範囲に対応するブロックの属性情報が「無効(I)」属性または「フリー(F)」属性を示す場合(S104で「Yes」)、等価制御部52は、次の処理を行う。すなわち、等価制御部52は、BUD64から直接データを読み出さずに、そのアクセス範囲に相当するゼロでパディングしたデータを読み出しデータとして作成し、読み出し要求した機能制御部61へ応答する(S105、S107)。
S104において、アクセス範囲に対応するブロックの属性情報に「有効(V)」属性を含むブロック属性がある場合(S104で「No」)、等価制御部52は、アクセス範囲の変更を行う。すなわち、等価制御部52は、アクセス範囲のうち「有効(V)」属性を有するブロック(「無効(I)」属性及び「フリー(F)」属性を有するブロックを除いたブロック)のデータを、ユーザ領域から読み出す(S106,S107)。
図14は、本実施形態における機能制御部からBUDへ読み出し処理を行う場合のCM間の動作シーケンスの全体図である。
制御CM33a内の機能制御部51aは、等価制御部52aに対して、BUDアクセスロック要求を行う(S111)。
等価制御部52aは、BUDアクセスロック要求を受信すると、BUD間のアクセスの排他制御を行い、BUDアクセスロックを行う(S112)。等価制御部52aは、アクセスロック完了を、その要求元の機能制御部に応答する(S113)。
機能制御部51aは、等価制御部52aへ、データの読み出し要求を行う(S114)。等価制御部52aは、BUD間のユーザ領域のデータが等価状態を維持させる等価処理を行う(S115)。S115は、図10のS36、図12A〜図12Cと同様なので、その説明を省略する。
その後、等価制御部52aは、機能制御部51aから要求されたデータを読み出し(S116)、読み出し要求元の機能制御部51aへ応答する(S117)。
機能制御部51aは、その読み出しデータを受信すると、等価制御部52aへDUDアクセスアンロック要求を行う(S118)。等価制御部52aは、BUDへのアクセスの排他制御を行い、BUDのユーザ領域へのアクセスのロックを解除する(S119)。等価制御部52aは、DUDアクセスアンロック要求に対する応答を行う(S120)。
図15は、本実施形態における読み出し処理(S116)の詳細なシーケンス図である。S116において、制御CM33aの等価制御部52aは、機能制御部からの読み出し要求に基づいて、以下の処理を行う。
まず、リード制御部54は、リードサブ制御部57a、BUDアクセス制御部62b、BUDドライバ63bを介して、BUD64から、書込み要求元の機能制御部が使用するユーザ領域に対応する等価管理データを読み出す(S121、S122,S123)。
リード制御部54は、ブロック属性解析制御部61aへ、ユーザ領域から読み出す対象のアクセスの範囲を示すアクセス範囲データを要求する(S124)。ブロック属性解析制御部61aは、アクセス範囲データ要求を受信すると、読み出した等価管理データのブロック属性マッピング情報から、そのアクセス範囲に対応するブロック属性情報を読み出す。アクセス範囲に「有効(V)」属性を有するブロックが含まれる場合、ブロック属性解析制御部61aは、アクセス範囲を変更する(S125)。すなわち、ブロック属性解析制御部61aは、アクセス範囲データ要求によるアクセス範囲のうち、「有効」属性を有するブロックに対応する範囲(「無効」属性または「フリー」属性のブロックを含まない範囲)にアクセス範囲を変更する。または、アクセス範囲に対応するブロックの属性情報が「無効(I)」属性または「フリー(F)」属性を示す場合、等価制御部52は、そのアクセス範囲に相当するゼロでパディングしたデータを読み出しデータとして作成する。ブロック属性解析制御部61aは、その変更したアクセス範囲またはゼロでパディングしたデータをリード制御部54に応答する(S126)。
リード制御部54は、その変更されたアクセス範囲に基づいて、リードサブ制御部57a、BUDアクセス制御部62b、BUDドライバ63bを介して、BUD64からデータを読み出す(S127、S128,S129)。または、リード制御部54は、ゼロでパディングしたデータを読み出す。
このように、ユーザ領域に格納されたデータの読み取りにおいて、ブロック属性情報により、読み取りアクセス先のブロックに格納された情報が有効かどうかを判定することができる。そして、読み取りアクセス先に有効な情報が格納されている場合にはそのブロックを読み出す(読み取りアクセス先に有効な情報が格納されていない場合にはそのブロックを読み出さない)。これにより、ユーザ領域内の有効な情報を読み出すことができるので(有効でない情報については読み出しを行わない)、読み出し効率を向上させることができる。
<各機能制御部からの書き込み時>
図16A及び図16Bは、本実施形態における各機能制御部からBUDへ書込み処理を行う場合の等価制御部の動作フローを示す。機能制御部51からの書き込み要求を受けると、等価制御部52は、各BUD64の等価管理領域からその機能制御部51が使用するユーザ領域に対応する等価管理データを読み出す(S131)。
等価制御部52は、各BUD64から読み出した等価管理データを比較して、等価管理データが一致しないBUDがあるかを判定する(S132)。すなわち、等価制御部52は、各BUD64から読み出した等価管理データの更新タイムスタンプ及び更新カウンタを比較して、更新タイムスタンプ及び更新カウンタが同一であるかを判定する。
各BUD64から読み出した等価管理データの更新タイムスタンプまたは更新カウンタが同一でない場合、等価制御部52は、リカバリ処理を行う(S133)。
各BUD64から読み出した等価管理データの更新タイムスタンプ及び更新カウンタが同一である場合、またはS133の処理後、等価制御部52は、次の処理を行う。すなわち、等価制御部52は、等価管理データを用いて、機能制御部により書込み要求のあったアクセス先(書込み先)の範囲のブロックの属性が「メタ(M)」属性であるか否かを判定する(S134)。
S134において、アクセス先の範囲のブロックの属性が「メタ(M)」属性である場合(S134で「Yes」)、すなわち、書き込み対象データがメタデータである場合、等価制御部52は、書き込み対象データをバックアップ用データとする(S135)。等価制御部52は、バックアップ用データを、BUD64のバックアップ領域67へ書き込む(S136)。
S134において、アクセス先の範囲のブロックの属性が「データ(D)」属性である場合(S134で「No」)、書き込み対象データはメタデータではないので(この場合、書き込み対象データは実データである)、S137の処理へ進む。
等価制御部52は、読み出した等価管理データの有効/無効フラグを「無効」、書込み判定フラグを「ON」に更新する(S137)。等価制御部52は、更新した等価管理データを、BDU64へ書き込む(S138)。等価制御部52は、機能制御部からの書き込み要求による書込み対象のデータを、BDU64のユーザ領域へ書き込む(S139)。等価制御部52は、ユーザ領域において、書き込みを行った領域に対応するブロックの属性を「有効(V)」属性に更新する(S140)。
等価制御部52は、書き込み処理中に、等価対象のBUDのいずれかで書き込み処理が失敗したかどうかを判断する(S141)。等価対象のBUDのいずれかで書き込み処理が失敗した場合、すなわちリカバリが必要なBUDが存在する場合(S141で「Yes」)、等価制御部52は、等価管理データを更新する。
すなわち、等価制御部52は、等価管理データにおいて、機能制御部からの書き込み要求があったアクセス範囲に対応するブロック属性情報に含まれるリカバリ属性情報に、アクセスが失敗したBUDの識別情報を設定する(S142)。
ここで、等価制御部52は、リカバリが必要なBUDが存在するかどうかの判断を、BUDの異常か、CMの異常かに基づいて判断する。等価制御部52は、BUDの異常か、CMの異常かを示すエラーを検知することができる。BUDの異常であれば、BUDの交換が行われるため、等価制御部52は、リカバリ属性情報への設定を行わない。一方、CMの異常であれば、同じBUDを使用して、CMの組み込みが行われる可能性があるため、等価制御部52は、リカバリ属性情報への設定を行う。
また、等価制御部52は、等価管理データの旧更新タイムスタンプに更新前のタイムスタンプが設定されていない場合(S143で「Yes」)、次の処理を行う。すなわち、等価制御部52は、読み出した等価管理データの「旧更新タイムスタンプ」86を、「更新タイムスタンプ」84で更新する(S144)。
等価対象のBUDのいずれかで書き込み処理が成功した場合(S141で「No」)またはS144の処理が終了した場合、等価制御部52は、次の処理を行う。等価制御部52は、等価管理データの有効/無効フラグを「有効」、書込み判定フラグを「OFF」に、「更新タイムスタンプ」に現在の時刻に更新する(S145)。等価制御部52は、更新した等価管理データを、BDU64へ書き込む(S146)。
図17は、本実施形態における書込み処理シーケンスの全体図である。制御CM33a内の機能制御部51aは、等価制御部52aに対して、BUDアクセスロック要求を行う(S151)。
等価制御部52aは、BUDアクセスロック要求を受信すると、BUD間のアクセスの排他制御を行い、BUDアクセスロックを行う(S152)。等価制御部52aは、アクセスロック完了を、その要求元の機能制御部に応答する(S153)。
機能制御部51aは、等価制御部52aへ、データの書き込み要求を行う(S154)。等価制御部52aは、BUD間のユーザ領域のデータが等価状態を維持するための等価処理を行う(S155)。S155は、図10のS36、図12A,図12Bと同様なので、その説明を省略する。
その後、等価制御部52aは、データの書き込み要求に基づいて、ユーザ領域へのデータの書き込みを行う(S156)。等価制御部52aは、書き込み要求元の機能制御部51aへその書き込み要求に対して応答する(S157)。
機能制御部51aは、その応答を受信すると、等価制御部52aへBUDアクセスアンロック要求を行う(S158)。等価制御部52aは、BUDへのアクセスの排他制御を行い、BUDへのアクセスロックを解除する(S159)。等価制御部52aは、アンロック要求に対する応答を行う(S160)。
図18A及び図18Bは、本実施形態における書き込み処理(S156)の詳細なシーケンス図である。S156において、制御CM33aの等価制御部52aは、機能制御部からの書き込み要求に基づいて、以下の処理を行う。
ライト制御部53aは、リードサブ制御部57a、BUDアクセス制御部62b、BUDドライバ63bを介して、BUD64から、書込み要求元の機能制御部51aが使用するユーザ領域に対応する等価管理データを読み出す(S171、S172,S173)。
ライト制御部53aは、ブロック属性解析制御部61aを介して、機能制御部51aのブロック属性応答部112aから、アクセス先の領域(ブロック)の属性情報を取得する(S174、S175、S176)。
ライト制御部53aは、ブロック属性解析制御部61aへ、アクセス範囲の変更を要求する(S177)。ブロック属性解析制御部61aは、アクセス範囲データ要求を受信すると、実アクセス範囲の変更を行う(S178)。すなわち、ブロック属性解析制御部61aは、そのアクセス範囲に対応するブロック属性が「フリー」属性であるか否かを判定する。そのアクセス範囲に対応するブロック属性が「フリー」属性である場合、ブロック属性解析制御部61aは、ライト制御部53aに、等価管理データにおいて、対応するブロック属性情報に「フリー(F)」を設定する旨を応答する。そのアクセス範囲に対応するブロック属性が「フリー」以外の属性である場合、ブロック属性解析制御部61aは、その旨を応答する(S179)。
ブロック属性解析制御部61aからの応答結果が「フリー」属性である場合、ライト制御部53aは、ライトサブ制御部56aを介して、等価管理データにおいて、対応するブロック属性情報に「フリー(F)」を設定する。これにより、アクセス範囲にフリー領域が含まれている場合、そのフリー領域を除いたアクセス範囲に調整することができる。
ライト制御部53aは、アクセス先(書込み先)の範囲のブロック属性情報が「メタ(M)」属性か否かをチェックする(S180)。ブロック属性情報が「メタ(M)」属性である場合、書込み対象の情報はメタデータであるので、ライト制御部53aは、書込み対象の情報(メタデータ)をバックアップ用データとする(S181)。この場合、ライト制御部53aは、ライトサブ制御部56aを介して、バックアップ用データを、BUD64のバックアップ領域67へ書き込む処理を行う(S182、S183,S184)。
ブロック属性情報が「メタ(M)」属性でない場合、書込み対象の情報は実データであるので、S185の処理へ進む。
ライト制御部53aは、取得した等価管理データの有効/無効フラグを「無効」、書込み判定フラグを「ON」に更新する(S185)。
ライト制御部53aは、ライトサブ制御部56a、BUDアクセス制御部62b、BUDドライバ63bを介して、その更新した等価管理データをBUD64へ書き込む(S186、S187,S188)。
ライト制御部53aは、ライトサブ制御部56a、BUDアクセス制御部62b、BUDドライバ63bを介して、書込み対象の情報をBUD64のユーザ領域へ書き込む(S189、S190,S191)。
ライト制御部53aは、更新した等価管理データのブロック属性マッピング情報について、ユーザ領域のうち書込みを行った領域に対応するブロックの属性を「有効(V)」属性に更新する(S192)。
ライト制御部53aは、ブロック属性マッピング情報を更新した等価管理データの有効/無効フラグを「有効」、書込み判定フラグを「OFF」に更新する。ライト制御部53aは、ライトサブ制御部56a、BUDアクセス制御部62b、BUDドライバ63bを介して、更新した等価管理データをBUDへ書き込む(S193、S194,S195)。
これにより、メタデータの書き込みの場合にバックアップを行うようにし、実データの書き込みの場合にはバックアップを行わないので、書き込み処理の時間を短縮することができる。
<リカバリ時(CM組み込み時)>
図19は、本実施形態におけるリカバリ処理を行う場合の等価制御部の動作フローを示す。CM組み込み時、等価制御部52は、リカバリ対象のBUD及び正常なBUDから等価管理データを読み出す(S201)。
等価制御部52は、リカバリ対象のBUDから読み出した等価管理データと、正常なBUDから読み出した等価管理データが一致するかを判定する(S202)。S202において等価管理データが一致する場合(S202で「Yes」)、本フローは終了する。
S202において等価管理データが一致しない場合(S202で「No」)、等価制御部52は、リカバリ対象BUDの更新タイムスタンプと、正常なBUDの旧更新タイムスタンプとが一致するかを判定する(S203)。
S203において、リカバリ対象BUDの更新タイムスタンプと、正常なBUDの旧更新タイムスタンプとが一致する場合(S203で「Yes」)、そこまでの時点の書き込み処理は完了していると判断される。この場合、等価制御部52は、正常なBUDの等価管理データから、リカバリ属性情報にBUDの識別情報が設定されたブロック属性情報を抽出する(S208)。等価制御部52は、正常なBUDのユーザ領域から、そのリカバリ属性情報を有するブロック属性情報に対応するユーザ領域の情報(リカバリデータ)を読み出す(S209)。等価制御部52は、リカバリ対象のBUDのユーザ領域の対応する領域に、リカバリデータを書き込む(S210)。リカバリ属性情報にBUDの識別情報が設定された全ブロックについて、S208〜S210の処理を繰り返す(S211)。
S203において、リカバリ対象BUDの更新タイムスタンプと、正常なBUDの旧更新タイムスタンプとが一致していない場合(S203で「No」)、等価制御部52は、正常なBUDの等価管理データから「有効(V)」属性を有するブロック属性情報を抽出する(S204)。等価制御部52は、正常なBUDのユーザ領域から、その「有効(V)」属性を有するブロック属性情報に対応する領域の情報(リカバリデータ)を読み出す(S205)。等価制御部52は、リカバリ対象のBUDのユーザ領域の対応する領域に、リカバリデータを書き込む(S206)。「有効(V)」属性の全ブロックについて、S204〜S207の処理を繰り返す(S207)。
「有効(V)」属性の全ブロックについてS204〜S207の処理を繰り返した場合、またはリカバリ属性情報にBUDの識別情報が設定された全ブロックについてS208〜S210の処理を繰り返した場合、等価制御部52は、次の処理を行う。すなわち、等価制御部52は、正常なBUDの等価管理データを、リカバリ対象BUDへ書き込む(S212)。このとき、図12BのS88で説明したように、リカバリ対象BUDのリカバリ完了後、全BUDの等価管理データのリカバリ属性情報からリカバリしたBUDを識別する情報をクリアする。
本実施形態におけるリカバリ時のBUD間のリカバリ処理の詳細なシーケンスは、図12A‐図12Cと同様なので、その説明を省略する。
このように、リカバリを行う場合、ユーザ領域全域ではなく、部分的な領域(リカバリが必要であることを示す属性情報を有するブロック)について、リカバリを行えばよいので、リカバリに要する時間を短縮することができる。
また、CM保守またはBUD保守において、正常なBUDからリカバリ対象BUDにデータをコピーする際に、リカバリ属性情報を除いて有効なデータについてコピーを行う(無効データについてはコピーは行わない)。そのため、ユーザ領域内の全データのコピーを行う必要がない。その結果、リカバリに要する時間を短縮することができる。
また、コピー処理中にコピー元データの読み出しができなかった場合、その読み出しができない領域が未使用領域であっても、コピー処理していた領域の破棄によるデータロストの心配もない。
なお、本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
上記実施形態に関し、更に以下の付記を開示する。
(付記1)
情報を格納する第1格納領域と、前記第1格納領域が区分された各区画に格納される情報を示す区画情報の属性に関する属性情報を含む管理情報を格納する第2格納領域と、を含む複数の格納部と、
前記複数の格納部から前記管理情報を取得する取得部と、
取得した前記管理情報を比較して異常な前記管理情報があるかを判定する判定部と、
前記異常な管理情報があると判定された場合、正常な管理情報の区画毎の属性情報に基づいて、該正常な管理情報が取得されたいずれかの前記格納部から、前記異常な管理情報が取得された前記格納部の前記第1格納領域に格納される情報を、区画単位で再構成するリカバリ部と、
を備えることを特徴とするストレージ制御システム。
(付記2)
前記ストレージ制御システムは、さらに、
前記格納部への対象情報の書き込み要求があった場合、前記複数の格納部において、前記第1格納領域に該対象情報を書き込み、該対象情報を書き込んだ区画に格納される区画情報に対応する属性情報に、該区画情報が有効であるか否かを示す情報を書き込む書き込み部
を備え、
前記リカバリ部は、前記正常な管理情報が取得されたいずれかの前記格納部から、前記区画情報が有効であることを示す属性情報を有する該区画情報を抽出し、前記異常な管理情報が取得された格納部の前記第1格納領域における対応する区画に、抽出した該区画情報を格納する
ことを特徴とする付記1に記載のストレージ制御システム。
(付記3)
前記書き込み部は、前記書き込みが失敗した格納部がある場合、該書き込みが成功した格納部の管理情報における、前記書き込み要求によるアクセス範囲に対応する前記区画に格納された前記区画情報の前記属性情報に、リカバリが必要であることを示す情報を書き込み、
前記リカバリ部は、前記書き込みが成功した前記格納部から、前記リカバリが必要であることを示す属性情報を有する該区画情報を抽出し、前記書き込みが失敗した格納部の前記第1格納領域における対応する区画に、抽出した該区画情報を格納する
ことを特徴とする付記2に記載のストレージ制御システム。
(付記4)
前記リカバリが必要であることを示す属性情報は、前記書き込みが失敗した格納部を識別する情報である
ことを特徴とする付記3に記載のストレージ制御システム。
(付記5)
前記属性情報は、前記区画情報の種別情報を含み、
前記書き込み部は、前記書き込み対象情報の書き込み要求があった場合であって、該書き込み要求によるアクセス範囲に対応する前記区画に格納された区画情報の属性情報に含まれる前記種別情報がメタデータを示す場合、前記書き込み対象情報を前記格納部の前記第1格納領域とバックアップ領域とに格納し、前記種別情報がメタデータを示さない場合、書き込み対象情報を前記第1格納領域に格納する
ことを特徴とする付記2〜4のうちいずれか1項に記載のストレージ制御システム。
(付記6)
コンピュータに、
情報を格納する第1格納領域と、前記第1格納領域が区分された各区画に格納される情報を示す区画情報の属性に関する属性情報を含む管理情報を格納する第2格納領域と、を含む、複数の格納部から前記管理情報を取得し、
取得した前記管理情報を比較して異常な前記管理情報があるかを判定し、
前記異常な管理情報があると判定された場合、正常な管理情報の区画毎の属性情報に基づいて、該正常な管理情報が取得されたいずれかの前記格納部から、前記異常な管理情報が取得された前記格納部の前記第1格納領域に格納される情報を、区画単位で再構成する
処理を実行させることを特徴とするリカバリプログラム。
(付記7)
前記コンピュータは、さらに、
前記格納部への対象情報の書き込み要求があった場合、前記複数の格納部において、前記第1格納領域に該対象情報を書き込み、該対象情報を書き込んだ区画に格納される区画情報に対応する属性情報に、該区画情報が有効であるか否かを示す情報を書き込む
処理を実行させ、
前記情報を再構成する場合、前記正常な管理情報が取得されたいずれかの前記格納部から、前記区画情報が有効であることを示す属性情報を有する該区画情報を抽出し、前記異常な管理情報が取得された格納部の前記第1格納領域における対応する区画に、抽出した該区画情報を格納する
ことを特徴とする付記6に記載のリカバリプログラム。
(付記8)
前記書き込みが失敗した格納部がある場合、該書き込みが成功した格納部の管理情報における、前記書き込み要求によるアクセス範囲に対応する前記区画に格納された前記区画情報の前記属性情報に、リカバリが必要であることを示す情報を書き込み、
前記情報を再構成する場合、前記書き込みが成功した前記格納部から、前記リカバリが必要であることを示す属性情報を有する該区画情報を抽出し、前記書き込みが失敗した格納部の前記第1格納領域における対応する区画に、抽出した該区画情報を格納する
ことを特徴とする付記7に記載のリカバリプログラム。
(付記9)
前記リカバリが必要であることを示す属性情報は、前記書き込みが失敗した格納部を識別する情報である
ことを特徴とする付記8に記載のリカバリプログラム。
(付記10)
前記属性情報は、前記区画情報の種別情報を含み、
前記書き込み対象情報の書き込み要求があった場合であって、該書き込み要求によるアクセス範囲に対応する前記区画に格納された区画情報の属性情報に含まれる前記種別情報がメタデータを示す場合、前記書き込み対象情報を前記格納部の前記第1格納領域とバックアップ領域とに格納し、前記種別情報がメタデータを示さない場合、書き込み対象情報を前記第1格納領域に格納する
ことを特徴とする付記6〜9のうちいずれか1項に記載のリカバリプログラム。
(付記11)
コンピュータが、
情報を格納する第1格納領域と、前記第1格納領域が区分された各区画に格納される情報を示す区画情報の属性に関する属性情報を含む管理情報を格納する第2格納領域と、を含む、複数の格納部から前記管理情報を取得し、
取得した前記管理情報を比較して異常な前記管理情報があるかを判定し、
前記異常な管理情報があると判定された場合、正常な管理情報の区画毎の属性情報に基づいて、該正常な管理情報が取得されたいずれかの前記格納部から、前記異常な管理情報が取得された前記格納部の前記第1格納領域に格納される情報を、区画単位で再構成する
処理を実行することを特徴とするリカバリ方法。
(付記12)
前記コンピュータは、さらに、
前記格納部への対象情報の書き込み要求があった場合、前記複数の格納部において、前記第1格納領域に該対象情報を書き込み、該対象情報を書き込んだ区画に格納される区画情報に対応する属性情報に、該区画情報が有効であるか否かを示す情報を書き込む
処理を実行させ、
前記情報を再構成する場合、前記正常な管理情報が取得されたいずれかの前記格納部から、前記区画情報が有効であることを示す属性情報を有する該区画情報を抽出し、前記異常な管理情報が取得された格納部の前記第1格納領域における対応する区画に、抽出した該区画情報を格納する
ことを特徴とする付記11に記載のリカバリ方法。
(付記13)
前記書き込みが失敗した格納部がある場合、該書き込みが成功した格納部の管理情報における、前記書き込み要求によるアクセス範囲に対応する前記区画に格納された前記区画情報の前記属性情報に、リカバリが必要であることを示す情報を書き込み、
前記情報を再構成する場合、前記書き込みが成功した前記格納部から、前記リカバリが必要であることを示す属性情報を有する該区画情報を抽出し、前記書き込みが失敗した格納部の前記第1格納領域における対応する区画に、抽出した該区画情報を格納する
ことを特徴とする付記12に記載のリカバリ方法。
(付記14)
前記リカバリが必要であることを示す属性情報は、前記書き込みが失敗した格納部を識別する情報である
ことを特徴とする付記13に記載のリカバリ方法。
(付記15)
前記属性情報は、前記区画情報の種別情報を含み、
前記書き込み対象情報の書き込み要求があった場合であって、該書き込み要求によるアクセス範囲に対応する前記区画に格納された区画情報の属性情報に含まれる前記種別情報がメタデータを示す場合、前記書き込み対象情報を前記格納部の前記第1格納領域とバックアップ領域とに格納し、前記種別情報がメタデータを示さない場合、書き込み対象情報を前記第1格納領域に格納する
ことを特徴とする付記11〜14のうちいずれか1項に記載のリカバリ方法。
21 ストレージ制御システム
22 格納部
23 取得部
24 判定部
25 リカバリ部
26 書き込み部
31 ストレージシステム
32 コントローラエンクロージャ(CE)
33 コントローラモジュール(CM)
34 チャネルアダプタ(CA)
35 CPU
36 記憶部
37 デバイスアダプタ(DA)
38 CM間通信インターフェース(I/F)
39 ディスク装置
40 ドライブエンクロージャ(DE)
41 ホスト
42 ファイバチャネル(FC)スイッチ
51(51A〜51N) 機能制御部
52 等価制御部
53 ライト制御部
54 リード制御部
55 リカバリ制御部
56 ライトサブ制御部
57 リードサブ制御部
58 ロック/アンロック制御部
59 等価チェック制御部
60 ブロック属性管理制御部
61 ブロック属性解析制御部
62 BUDアクセス制御部
63 BUDドライバ
64 BUD
65 等価管理領域
66 ユーザ領域
67 バックアップ領域
68 CM間通信ドライバ制御部

Claims (7)

  1. 所定のサイズ毎に区分された複数の区画で形成され且つ情報を格納する第1格納領域と、前記複数の区画の各区画に格納される情報が有効であるか否かを示す情報とリカバリが必要であるか否かを示す情報を含む属性情報を含む管理情報を格納する第2格納領域と、を含む複数の格納部と、
    前記複数の格納部から前記管理情報を取得する取得部と、
    取得した前記管理情報を比較して異常な前記管理情報があるかを判定する判定部と、
    前記異常な管理情報があると判定された場合、正常な管理情報の区画毎の属性情報に基づいて、該正常な管理情報が取得されたいずれかの前記格納部から、前記異常な管理情報が取得された前記格納部の前記第1格納領域に格納される情報を、区画単位で再構成するリカバリ部と、
    を備えることを特徴とするストレージ制御システム。
  2. 前記ストレージ制御システムは、さらに、
    前記格納部への対象情報の書き込み要求があった場合、前記複数の格納部において、前記第1格納領域に該対象情報を書き込み、該対象情報を書き込んだ区画に格納される情報に対応する属性情報に、該書き込んだ区画情報が有効であるか否かを示す情報を書き込む書き込み部
    を備え、
    前記リカバリ部は、前記正常な管理情報が取得されたいずれかの前記格納部から、前記区画に格納された情報が有効であることを示す属性情報を有する該区画に格納された情報を抽出し、前記異常な管理情報が取得された格納部の前記第1格納領域における対応する区画に、抽出した情報を格納する
    ことを特徴とする請求項1に記載のストレージ制御システム。
  3. 前記書き込み部は、前記書き込みが失敗した格納部がある場合、該書き込みが成功した格納部の管理情報における、前記書き込み要求によるアクセス範囲に対応する前記区画に格納された情報の前記属性情報に、リカバリが必要であることを示す情報を書き込み、
    前記リカバリ部は、前記書き込みが成功した前記格納部から、前記リカバリが必要であることを示す属性情報を有する該区画に格納された情報を抽出し、前記書き込みが失敗した格納部の前記第1格納領域における対応する区画に、抽出した情報を格納する
    ことを特徴とする請求項2に記載のストレージ制御システム。
  4. 前記リカバリが必要であることを示す属性情報は、前記書き込みが失敗した格納部を識別する情報である
    ことを特徴とする請求項3に記載のストレージ制御システム。
  5. 前記属性情報は、前記区画に格納された情報の種別情報を含み、
    前記書き込み部は、前記書き込み対象情報の書き込み要求があった場合であって、該書き込み要求によるアクセス範囲に対応する前記区画に格納された情報の属性情報に含まれる前記種別情報がメタデータを示す場合、前記書き込み対象情報を前記格納部の前記第1格納領域とバックアップ領域とに格納し、前記種別情報がメタデータを示さない場合、書き込み対象情報を前記第1格納領域に格納する
    ことを特徴とする請求項2〜4のうちいずれか1項に記載のストレージ制御システム。
  6. コンピュータに、
    所定のサイズ毎に区分された複数の区画で形成され且つ情報を格納する第1格納領域と、前記複数の区画の各区画に格納される情報が有効であるか否かを示す情報とリカバリが必要であるか否かを示す情報を含む属性情報を含む管理情報を格納する第2格納領域と、を含む、複数の格納部から前記管理情報を取得し、
    取得した前記管理情報を比較して異常な前記管理情報があるかを判定し、
    前記異常な管理情報があると判定された場合、正常な管理情報の区画毎の属性情報に基づいて、該正常な管理情報が取得されたいずれかの前記格納部から、前記異常な管理情報が取得された前記格納部の前記第1格納領域に格納される情報を、区画単位で再構成する
    処理を実行させることを特徴とするリカバリプログラム。
  7. コンピュータが、
    所定のサイズ毎に区分された複数の区画で形成され且つ情報を格納する第1格納領域と、前記複数の区画の各区画に格納される情報が有効であるか否かを示す情報とリカバリが必要であるか否かを示す情報を含む属性情報を含む管理情報を格納する第2格納領域と、を含む、複数の格納部から前記管理情報を取得し、
    取得した前記管理情報を比較して異常な前記管理情報があるかを判定し、
    前記異常な管理情報があると判定された場合、正常な管理情報の区画毎の属性情報に基づいて、該正常な管理情報が取得されたいずれかの前記格納部から、前記異常な管理情報が取得された前記格納部の前記第1格納領域に格納される情報を、区画単位で再構成する
    処理を実行することを特徴とするリカバリ方法。
JP2012205012A 2012-09-18 2012-09-18 ストレージ制御システム、リカバリプログラム、及び該方法 Expired - Fee Related JP6089527B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012205012A JP6089527B2 (ja) 2012-09-18 2012-09-18 ストレージ制御システム、リカバリプログラム、及び該方法
US14/022,271 US9201734B2 (en) 2012-09-18 2013-09-10 Storage control system, recording medium storing recovery program, and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012205012A JP6089527B2 (ja) 2012-09-18 2012-09-18 ストレージ制御システム、リカバリプログラム、及び該方法

Publications (2)

Publication Number Publication Date
JP2014059769A JP2014059769A (ja) 2014-04-03
JP6089527B2 true JP6089527B2 (ja) 2017-03-08

Family

ID=50275767

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012205012A Expired - Fee Related JP6089527B2 (ja) 2012-09-18 2012-09-18 ストレージ制御システム、リカバリプログラム、及び該方法

Country Status (2)

Country Link
US (1) US9201734B2 (ja)
JP (1) JP6089527B2 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6089527B2 (ja) * 2012-09-18 2017-03-08 富士通株式会社 ストレージ制御システム、リカバリプログラム、及び該方法
US9910740B1 (en) * 2014-06-30 2018-03-06 EMC IP Holding Company LLC Concurrent recovery operation management
WO2019222958A1 (en) 2018-05-24 2019-11-28 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
WO2020000136A1 (en) 2018-06-25 2020-01-02 Alibaba Group Holding Limited System and method for managing resources of a storage device and quantifying the cost of i/o requests
US11327929B2 (en) 2018-09-17 2022-05-10 Alibaba Group Holding Limited Method and system for reduced data movement compression using in-storage computing and a customized file system
US11061735B2 (en) 2019-01-02 2021-07-13 Alibaba Group Holding Limited System and method for offloading computation to storage nodes in distributed system
US10860223B1 (en) 2019-07-18 2020-12-08 Alibaba Group Holding Limited Method and system for enhancing a distributed storage system by decoupling computation and network tasks
US11617282B2 (en) 2019-10-01 2023-03-28 Alibaba Group Holding Limited System and method for reshaping power budget of cabinet to facilitate improved deployment density of servers
CN111158596A (zh) * 2019-12-28 2020-05-15 天地伟业技术有限公司 一种raid快速初始化方法
US11449455B2 (en) 2020-01-15 2022-09-20 Alibaba Group Holding Limited Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility
US11379447B2 (en) 2020-02-06 2022-07-05 Alibaba Group Holding Limited Method and system for enhancing IOPS of a hard disk drive system based on storing metadata in host volatile memory and data in non-volatile memory using a shared controller
US11449386B2 (en) 2020-03-20 2022-09-20 Alibaba Group Holding Limited Method and system for optimizing persistent memory on data retention, endurance, and performance for host memory
US11385833B2 (en) 2020-04-20 2022-07-12 Alibaba Group Holding Limited Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources
US11281575B2 (en) 2020-05-11 2022-03-22 Alibaba Group Holding Limited Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks
US11494115B2 (en) 2020-05-13 2022-11-08 Alibaba Group Holding Limited System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC)
US11461262B2 (en) 2020-05-13 2022-10-04 Alibaba Group Holding Limited Method and system for facilitating a converged computation and storage node in a distributed storage system
US11556277B2 (en) 2020-05-19 2023-01-17 Alibaba Group Holding Limited System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification
US11507499B2 (en) 2020-05-19 2022-11-22 Alibaba Group Holding Limited System and method for facilitating mitigation of read/write amplification in data compression
US11263132B2 (en) 2020-06-11 2022-03-01 Alibaba Group Holding Limited Method and system for facilitating log-structure data organization
US11422931B2 (en) 2020-06-17 2022-08-23 Alibaba Group Holding Limited Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization
US11354200B2 (en) * 2020-06-17 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating data recovery and version rollback in a storage device
US11354233B2 (en) 2020-07-27 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating fast crash recovery in a storage device
US11372774B2 (en) 2020-08-24 2022-06-28 Alibaba Group Holding Limited Method and system for a solid state drive with on-chip memory integration
US11487465B2 (en) 2020-12-11 2022-11-01 Alibaba Group Holding Limited Method and system for a local storage engine collaborating with a solid state drive controller
US11734115B2 (en) 2020-12-28 2023-08-22 Alibaba Group Holding Limited Method and system for facilitating write latency reduction in a queue depth of one scenario
US11416365B2 (en) 2020-12-30 2022-08-16 Alibaba Group Holding Limited Method and system for open NAND block detection and correction in an open-channel SSD
JP7232281B2 (ja) * 2021-03-29 2023-03-02 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
US11726699B2 (en) 2021-03-30 2023-08-15 Alibaba Singapore Holding Private Limited Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification
US11461173B1 (en) 2021-04-21 2022-10-04 Alibaba Singapore Holding Private Limited Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement
US11476874B1 (en) 2021-05-14 2022-10-18 Alibaba Singapore Holding Private Limited Method and system for facilitating a storage server with hybrid memory for journaling and data storage
CN113392098B (zh) * 2021-06-11 2025-11-18 北京沃东天骏信息技术有限公司 一种数据写入方法、装置、设备及存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02312068A (ja) * 1989-05-26 1990-12-27 Hitachi Ltd 記録制御方法
US6480970B1 (en) * 2000-05-17 2002-11-12 Lsi Logic Corporation Method of verifying data consistency between local and remote mirrored data storage systems
JP2004094789A (ja) * 2002-09-03 2004-03-25 Hitachi Kokusai Electric Inc 多重化システム
JP2005149248A (ja) * 2003-11-18 2005-06-09 Nec Corp メタデータ修復方式,方法および記憶装置ならびにプログラム
US7444360B2 (en) * 2004-11-17 2008-10-28 International Business Machines Corporation Method, system, and program for storing and using metadata in multiple storage locations
US7765230B2 (en) * 2005-12-01 2010-07-27 The Boeing Company Method and system for managing data
US20070168754A1 (en) * 2005-12-19 2007-07-19 Xiv Ltd. Method and apparatus for ensuring writing integrity in mass storage systems
US7921267B1 (en) * 2006-12-20 2011-04-05 Network Appliance, Inc. Method and system for fixing a mirror of a dataset
JP5640480B2 (ja) * 2010-06-11 2014-12-17 富士通株式会社 データ管理プログラム、ストレージシステム、およびデータ管理方法
JP6089527B2 (ja) * 2012-09-18 2017-03-08 富士通株式会社 ストレージ制御システム、リカバリプログラム、及び該方法

Also Published As

Publication number Publication date
US9201734B2 (en) 2015-12-01
JP2014059769A (ja) 2014-04-03
US20140082412A1 (en) 2014-03-20

Similar Documents

Publication Publication Date Title
JP6089527B2 (ja) ストレージ制御システム、リカバリプログラム、及び該方法
US12393353B2 (en) Storage system with distributed deletion
US10909004B1 (en) Online system checkpoint recovery orchestration
US10409493B1 (en) Online system checkpoint alert and handling
US10664358B1 (en) Ensure volume consistency for online system checkpoint
JP3682256B2 (ja) ディスクアレイ装置及び同装置におけるパリティ処理方法
TWI630622B (zh) 註釋的原子寫入
CN107430494B (zh) 用于远程直接存储器访问的系统、方法和介质
US10705918B1 (en) Online metadata backup consistency check
US20240354002A1 (en) Intelligent upgrade process in a distributed system
JP2017519320A (ja) ストレージクラスター
CN107430585B (zh) 用于远程直接存储器访问的系统和方法
CN107533537B (zh) 存储系统、用于存储的方法和非暂时性计算机可读介质
US11003542B1 (en) Online consistent system checkpoint
JP5330432B2 (ja) データ記憶装置及びテーブル管理方法
CN118708130B (zh) 数据卷远程复制方法、装置、计算机设备及存储介质
JP5976937B2 (ja) コンピュータシステム
US7587630B1 (en) Method and system for rapidly recovering data from a “dead” disk in a RAID disk group
WO2018076633A1 (zh) 一种远程数据复制方法、存储设备及存储系统
CN108628701B (zh) 缓存数据的保护方法及装置
JP2002288014A (ja) ファイル管理システム及びファイルデータ書込方法
US10956052B1 (en) Online address to hash (A2H) metadata scanner
CN117812095B (zh) 多数据副本数据一致性的检测方法、装置、设备及介质
JP7457740B2 (ja) ストレージシステム及びその制御方法
US20240134575A1 (en) Storage system and storage control method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150512

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160808

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: 20170110

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170123

R150 Certificate of patent or registration of utility model

Ref document number: 6089527

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees