JP6011272B2 - ストレージ装置、復旧方法、および復旧プログラム - Google Patents

ストレージ装置、復旧方法、および復旧プログラム Download PDF

Info

Publication number
JP6011272B2
JP6011272B2 JP2012256832A JP2012256832A JP6011272B2 JP 6011272 B2 JP6011272 B2 JP 6011272B2 JP 2012256832 A JP2012256832 A JP 2012256832A JP 2012256832 A JP2012256832 A JP 2012256832A JP 6011272 B2 JP6011272 B2 JP 6011272B2
Authority
JP
Japan
Prior art keywords
data
volatile memory
control device
valid
backup
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
JP2012256832A
Other languages
English (en)
Other versions
JP2014106567A (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 JP2012256832A priority Critical patent/JP6011272B2/ja
Priority to US14/047,539 priority patent/US20140140135A1/en
Publication of JP2014106567A publication Critical patent/JP2014106567A/ja
Application granted granted Critical
Publication of JP6011272B2 publication Critical patent/JP6011272B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C14/00Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/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/1417Boot up procedures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Retry When Errors Occur (AREA)

Description

本発明は、ストレージ装置、復旧方法、および復旧プログラムに関する。
従来、ストレージ装置内のストレージへのアクセスを制御する制御装置に障害が発生した場合に、制御装置のファームウェアを再起動して揮発性メモリのデータを不揮発性メモリにバックアップすることにより、揮発性メモリのデータの損失を防ぐ技術がある。その後、制御装置の電源をOFF/ONして、バックアップしたデータを用いて揮発性メモリのデータを復元することにより、ストレージ装置が復旧される。
関連する先行技術としては、継電装置が電源ONで不揮発性メモリから記憶媒体にデータを読み出す処理が完了したか否かをチェックし、電源OFF時に読み出す処理が完了していない場合は記憶媒体のデータで不揮発性メモリのデータを上書きしないものがある。また、プロセッサが、ディスクアレイに対するアレイ制御アルゴリズムおよびディスクアレイに関する構成情報を共通化してディスクアレイに対して異なる複数のファイル制御プログラムで少なくともデータの分割処理および結合処理を行う技術がある。
特開平10−191547号公報 特開平8−147113号公報
しかしながら、従来技術では、ストレージ装置内の制御装置に障害が発生した場合に、制御装置のファームウェアを再起動したり制御装置の電源をOFF/ONしたりすることになり、ストレージ装置を復旧するまでに時間がかかる。
1つの側面では、本発明は、ストレージ装置の復旧を高速化することを目的とする。
本発明の一側面によれば、ストレージへのアクセスを制御する制御装置に障害が発生したことを検出し、制御装置に障害が発生したことを検出した場合に、揮発性メモリに記憶されている制御装置の動作制御のための制御データを含むデータのバックアップ先となる不揮発性メモリに記憶されているバックアップデータが有効か否かを判定し、不揮発性メモリのバックアップデータが有効であると判定した場合には、揮発性メモリのデータをバックアップせずに再起動した後に、不揮発性メモリのバックアップデータを揮発性メモリに復元する第1の処理を制御装置に実行させるストレージ装置、復旧方法、および復旧プログラムが提案される。
本発明の一態様によれば、ストレージ装置の復旧を高速化することができるという効果を奏する。
図1は、実施の形態にかかるストレージ装置における制御装置の復旧処理の一実施例を示す説明図である。 図2は、ストレージ装置100のハードウェア構成例を示すブロック図である。 図3は、ストレージ装置100の機能的構成例を示すブロック図である。 図4は、CM210の動作の一例を示す説明図である。 図5は、第3の期間において両方のCM210がダウンした場合のCM復旧の動作の一例を示す説明図である。 図6は、第4の期間において両方のCM210がダウンした場合のCM復旧の動作の一例を示す説明図である。 図7は、第3の期間において一方のCM210がダウンして、第4の期間において他方のCM210がダウンした場合のCM復旧の動作の一例を示す説明図(その1)である。 図8は、第3の期間において一方のCM210がダウンして、第4の期間において他方のCM210がダウンした場合のCM復旧の動作の一例を示す説明図(その2)である。 図9は、監視モジュール220によるCM復旧処理手順の一例を示すフローチャートである。 図10は、CM210によるリカバリ処理手順の一例を示すフローチャートである。 図11は、CM210によるパワーオフ処理手順の一例を示すフローチャートである。 図12は、CM210によるパワーオン処理手順の一例を示すフローチャートである。 図13は、CM210による短縮リカバリ処理手順の一例を示すフローチャートである。 図14は、CM210による組み込み処理手順の一例を示すフローチャートである。 図15は、CM210によるデータコピー処理手順の一例を示すフローチャートである。
以下に添付図面を参照して、この発明にかかるストレージ装置、復旧方法、および復旧プログラムの実施の形態を詳細に説明する。
(ストレージ装置における制御装置の復旧処理の内容)
図1は、実施の形態にかかるストレージ装置における制御装置の復旧処理の一実施例を示す説明図である。図1において、ストレージ装置100は、制御装置101を有する。制御装置101は、ストレージ装置100が有するストレージへのアクセスを制御する装置であり、揮発性メモリ102と不揮発性メモリ103とを有する。
揮発性メモリ102は、制御データを含むデータを記憶する記憶媒体である。制御データとは、制御装置101の動作制御のためのデータであって、例えば、コピーセッションの進捗状況を示すデータやストレージの構成を示すデータなどである。不揮発性メモリ103は、揮発性メモリ102のデータのバックアップ先となる記憶媒体である。
ストレージ装置100は、電源を切断する場合には、揮発性メモリ102のデータを複製した複製データを、不揮発性メモリ103にバックアップデータとして記憶してから、電源を切断する。また、ストレージ装置100は、電源を投入した場合には、揮発性メモリ102を初期化し、不揮発性メモリ103のバックアップデータを用いて揮発性メモリ102のデータを復元する。
また、ストレージ装置100は、制御装置101がソフトウェア異常またはハードウェア異常によってダウンした場合には、制御装置101がダウンした時点での制御装置101の状態に応じて、異なる手順で制御装置101を復旧する。ここで、ソフトウェア異常とは、例えば、ゼロ除算、ページフォルト、論理矛盾などである。ハードウェア異常とは、例えば、制御装置101の温度異常などである。ダウンとは、ソフトウェア異常またはハードウェア異常によって、制御装置101のCPU(Central Processing Unit)が停止し、制御装置101が応答を受け付けなくなることである。
まず、制御装置101が、電源を投入して不揮発性メモリ103のバックアップデータを用いて揮発性メモリ102のデータを復元してから、電源を切断するまでの間(以下の説明では、「第1の期間」と表記する場合がある)に、ダウンした場合を例に挙げて、制御装置101の復旧処理の内容について説明する。
<制御装置101が第1の期間にダウンした場合の制御装置101の復旧処理の一例>
この場合、制御装置101の不揮発性メモリ103のバックアップデータは有効ではない。不揮発性メモリ103のバックアップデータが有効ではないとは、制御装置101を復旧する際に揮発性メモリ102に記憶するべきデータが、ダウンした時点での不揮発性メモリ103のバックアップデータではないことを示す。
換言すれば、不揮発性メモリ103のバックアップデータが有効ではないとは、制御装置101を復旧する際に揮発性メモリ102に記憶するべきデータが、ダウンした時点での揮発性メモリ102のデータであることを示す。そのため、ストレージ装置は、制御装置101に、電源を切断する前に揮発性メモリ102のデータを不揮発性メモリ103のバックアップデータに上書きさせておき、電源を投入し直してから揮発性メモリ102のデータを復元させることになる。
(1)ストレージ装置100は、制御装置101にリカバリ処理を実行させる。リカバリ処理では、制御装置101は、電源を切断せずに制御装置101を制御するソフトウェアを再起動し、揮発性メモリ102のデータを複製した複製データを不揮発性メモリ103にバックアップデータとして記憶する。ソフトウェアとは、例えば、ファームウェアである。これにより、ストレージ装置100は、制御装置101に、揮発性メモリ102のデータを初期化せずに動作可能な状態に移行して、ダウン時の揮発性メモリ102のデータをバックアップさせることができる。
(2)ストレージ装置100は、制御装置101にパワーオフ処理を実行させる。パワーオフ処理では、制御装置101は、揮発性メモリ102のデータを複製した複製データを不揮発性メモリ103にバックアップデータとして記憶してから、電源を切断する。これにより、ストレージ装置100は、制御装置101に、パワーオフ処理を実行する時の揮発性メモリ102のデータをバックアップさせることができる。
(3)ストレージ装置100は、制御装置101にパワーオン処理を実行させる。パワーオン処理では、制御装置101は、電源を投入し、揮発性メモリ102を初期化し、不揮発性メモリ103のバックアップデータを用いて揮発性メモリ102のデータを復元する。これにより、ストレージ装置100は、制御装置101を、ダウンする前の状態に復旧することができる。
次に、制御装置101が、電源を投入して揮発性メモリ102を初期化してから不揮発性メモリ103のバックアップデータを用いて揮発性メモリ102のデータを復元するまでの間(以下の説明では、「第2の期間」と表記する場合がある)に、ダウンした場合を例に挙げて、制御装置101の復旧処理の内容について説明する。
<制御装置101が第2の期間にダウンした場合の制御装置101の復旧処理の一例>
この場合、制御装置101の不揮発性メモリ103のバックアップデータは有効である。不揮発性メモリ103のバックアップデータが有効であるとは、制御装置101を復旧する際に揮発性メモリ102に記憶すべきデータが、ダウンした時点での不揮発性メモリ103のバックアップデータであることを示す。
換言すれば、不揮発性メモリ103のバックアップデータが有効であるとは、ダウンした時点での揮発性メモリ103のデータが損失してもよいデータであることを示す。そのため、制御装置101は、揮発性メモリ102を初期化して、不揮発性メモリ103のバックアップデータを用いて揮発性メモリ102のデータを復元することになる。
(4)ストレージ装置100は、制御装置101に短縮リカバリ処理を実行させる。短縮リカバリ処理では、制御装置101は、電源を切断せずに制御装置101を制御するソフトウェアを再起動し、揮発性メモリ102を初期化し、不揮発性メモリ103のバックアップデータを用いて揮発性メモリ102のデータを復元する。これにより、ストレージ装置100は、制御装置101を、ダウンする前の状態に復旧することができる。
このように、ストレージ装置100は、第1および第2の期間のいずれの期間にダウンしたかに応じて、復旧の手順を変更する。これにより、ストレージ装置100は、第1の期間にダウンした場合には、制御装置101に揮発性メモリ102のデータをバックアップさせておき、制御装置101を、ダウンする前の状態に復旧することができる。
一方で、ストレージ装置100は、第2の期間にダウンした場合には、制御装置101に揮発性メモリ102のデータをバックアップさせないため、不揮発性メモリ103のバックアップデータが初期化データで上書きされることを防止することができる。結果として、ストレージ装置100は、制御装置101を、ダウンする前の状態に復旧することができる。また、ストレージ装置100は、制御装置101に揮発性メモリ102のデータをバックアップする処理を実行させないため、制御装置101の復旧を高速化することができる。
図1の例では、第1および第2の期間のいずれの期間に制御装置101がダウンしたかに応じて、復旧の手順を変更したが、これに限らない。例えば、揮発性メモリ102のデータを更新してから電源を切断するまでの間、および揮発性メモリ102を初期化してから揮発性メモリ102のデータを更新するまでの間のいずれの期間に制御装置101がダウンしたかに応じて、復旧の手順を変更してもよい。
(ストレージ装置100のハードウェア構成例)
次に、実施の形態にかかるストレージ装置100のハードウェア構成例について説明する。図2は、ストレージ装置100のハードウェア構成例を示すブロック図である。図2において、ストレージ装置100は、CM(Control Module)210#0,210#1と、監視モジュール220#0,220#1と、ストレージ230と、を有する。また、ストレージ装置100は、ホスト装置240と接続されている。以下の説明では、任意のCMを「CM210」と表記する場合がある。また、任意の監視モジュールを「監視モジュール220」と表記する場合がある。
ストレージ装置100は、ホスト装置240から入力されたデータをストレージ230に記憶したり、ストレージ230のデータをホスト装置240に出力したりするコンピュータである。
CM210#0は、図1に示した制御装置101の一例であり、ストレージ230へのアクセスを制御する装置である。また、CM210は、起動済ではないCM210がある場合は、起動済ではないCM210を起動させる。
CM210#0は、CPU211#0と、ROM(Read Only Memory)212#0と、RAM(Random Access Memory)213#0と、バックアップ媒体214#0と、通信I/F(Interface)215#0を有する。また、CM210#0の各構成部は、例えば、バス(不図示)によってそれぞれ接続されている。
ここで、CPU211#0は、CM210#0の全体の制御を司る。以下の説明では、任意のCM210が有するCPUを「CPU211」と表記する場合がある。ROM212#0は、ブートプログラムなどのプログラムを記憶している。以下の説明では、任意のCM210が有するROMを「ROM212」と表記する場合がある。
RAM213#0は、図1に示した揮発性メモリ102の一例であり、CM210#0の動作制御のための制御データを含むデータを記憶する。制御データとは、例えば、コピーセッションの進捗状況を示すデータやストレージ230の構成を示すデータなどである。また、RAM213#0は、バックアップ媒体214#0のバックアップデータが有効か否かを示すフラグを記憶する。また、RAM213#0は、CPU211#0のワークエリアとして使用される。以下の説明では、任意のCM210が有するRAMを「RAM213」と表記する場合がある。
バックアップ媒体214#0は、図1に示した不揮発性メモリ103の一例であり、RAM213#0のデータのバックアップ先として使用される。以下の説明では、任意のCM210が有するバックアップ媒体を「バックアップ媒体214」と表記する場合がある。
通信I/F215#0は、監視モジュール220#0,220#1と、ストレージ230と、ホスト装置240と、の通信を司る。以下の説明では、任意のCM210が有する通信I/Fを「通信I/F215」と表記する場合がある。CM210#1の説明は、CM210#0と同様のため省略する。
監視モジュール220#0は、CM210#0と接続され、CM210#0がダウンしたことを検出する装置である。また、監視モジュール220#0は、監視モジュール220#1と接続され、監視モジュール220#1からCM210#1がダウンしたことを示す通知を受信する。監視モジュール220#0は、すべてのCM210がダウンした場合には、図1に示した復旧処理を実行して、CM210#0に、リカバリ処理、パワーオフ処理、パワーオン処理、または短縮リカバリ処理を実行させて、CM210#0を復旧する。
監視モジュール220#0は、CPU221#0と、メモリ222#0と、通信I/F223#0と、を有する。また、監視モジュール220#0の各構成部は、例えば、バス(不図示)によってそれぞれ接続されている。ここで、CPU221#0は、監視モジュール220#0の全体の制御を司る。以下の説明では、任意の監視モジュール220が有するCPUを「CPU221」と表記する場合がある。
メモリ222#0は、ブートプログラムや復旧プログラムなどのプログラムを記憶している。以下の説明では、任意の監視モジュール220が有するメモリを「メモリ222」と表記する場合がある。通信I/F223#0は、CM210#0との通信を司る。以下の説明では、任意の監視モジュール220が有する通信I/Fを「通信I/F223」と表記する場合がある。監視モジュール220#1の説明は、監視モジュール220#0と同様のため省略する。
ストレージ230は、磁気ディスクであり、CM210の制御で書き込まれたデータを記憶する。ストレージ230は、複数の磁気ディスクであってもよく、RAID(Redundant Arrays of Inexpensive Disks)技術が適用されていてもよい。ホスト装置240は、ストレージ装置100に対して、ストレージ230へのデータの格納要求や、ストレージ230のデータの読み出し要求を送信するコンピュータである。
図2の説明では、CM210が2台の場合を例に挙げたが、これに限らない。例えば、CM210は、1台であってもよいし、3台以上であってもよい。また、図2の説明では、監視モジュール220が2台の場合を例に挙げたが、これに限らない。例えば、監視モジュール220は、1台であってもよいし、3台以上であってもよい。また、図2の説明では、ストレージ230が磁気ディスクである場合を例に挙げたが、これに限らない。例えば、ストレージ230は、光ディスクであってもよいし、磁気テープであってもよい。
(ストレージ装置100の機能的構成例)
次に、図3を用いて、ストレージ装置100の機能的構成例について説明する。図3は、ストレージ装置100の機能的構成例を示すブロック図である。ストレージ装置100は、検出部301と、判定部302と、制御部303と、を含む。検出部301と、判定部302と、制御部303とは、例えば、図2に示した監視モジュール220のメモリ222などの記憶装置に記憶されたプログラムをCPU221に実行させることにより、または、通信I/F223により、その機能を実現する。
また、ストレージ装置100は、上述したように、制御装置101を有する。制御装置101とは、ストレージ230へのアクセスを制御する装置であって、例えば、図2に示したCM210である。CM210は、複数存在してもよい。CM210は、揮発性メモリ102と、不揮発性メモリ103と、を有する。
揮発性メモリ102とは、CM210の動作制御のための制御データを含むデータを記憶する記憶媒体であって、例えば、図2に示したRAM213である。また、揮発性メモリとは、CM210の外部に存在し、CM210がアクセス可能な記憶媒体であってもよい。不揮発性メモリ103とは、揮発性メモリ102のデータのバックアップ先となる記憶媒体であって、例えば、図2に示したバックアップ媒体214である。不揮発性メモリとは、CM210の外部に存在し、CM210がアクセス可能なメモリであってもよい。
CM210は、自装置に障害が発生してダウンする場合、ダウンする直前に、ダウンすることを示す通知を検出部301に送信する。また、CM210は、自装置に障害が発生してダウンする場合、ダウンする直前に、ダウンすることを示す情報をROM212に記憶してもよい。
CM210は、バックアップ媒体214のバックアップデータが有効であるか否かを示すフラグを有する。CM210は、例えば、RAM213を初期化した場合、またはRAM213のデータをバックアップ媒体214にバックアップした場合に、フラグを有効に設定する。また、CM210は、例えば、バックアップ媒体214のバックアップデータをRAM213に復元した場合、またはRAM213のデータを更新した場合に、フラグを無効に設定する。
また、起動済のCM210は、起動済ではないCM210を検出した場合には、起動済ではないCM210を再起動させ、起動済ではないCM210に自装置が有するRAM213のデータを送信する。また、起動済ではないCM210は、他のCM210から再起動させられた場合には、他の210からデータを受信し、受信したデータを自装置が有するRAM213に記憶する。
検出部301は、CM210に障害が発生したことを検出する。検出部301は、例えば、接続されているCM210からダウンしたことを示す情報の通知を受けることにより、CM210がダウンしたことを検出する。また、検出部301は、一定時間間隔で、CM210が有するROM212にダウンしたことを示す情報があるか否かを確認することにより、CM210がダウンしたことを検出してもよい。
検出部301は、CM210が複数存在する時は、複数のCM210の各々のCM210について、当該CM210がダウンしたことを検出する。検出部301は、例えば、接続されているCM210からダウンしたことを示す情報の通知を受け、他の監視モジュール220から当該監視モジュール220が接続されているCM210がダウンしたことを示す情報の通知を受ける。これにより、検出部301は、複数のCM210がダウンしたことを検出する。検出結果は、例えば、監視モジュール220内のメモリ222に記憶される。これにより、検出部301は、CM210を復旧させるトリガを発生させることができる。
判定部302は、検出部301によってCM210に障害が発生したことが検出された場合に、バックアップ媒体214に記憶されているバックアップデータが有効か否かを判定する。また、CM210が複数存在する時には、検出部301によって複数のCM210に障害が発生したことが検出される場合がある。この場合には、判定部302は、複数のCM210の各々のCM210について、当該CM210が有するバックアップ媒体214のバックアップデータが有効か否かを判定する。
判定部302は、例えば、検出部301によってCM210がダウンしたことが検出された場合に、ダウンしたCM210が有するROM212のフラグを参照する。そして、判定部302は、フラグが有効である場合に、バックアップ媒体214のバックアップデータが有効であると判定する。また、判定部302は、例えば、他の監視モジュール220から当該監視モジュール220が接続されているCM210が有するROM212のフラグが有効であるか否かを示す情報の通知を受ける。これにより、判定部302は、複数のCM210のバックアップデータが有効であるか否かを判定する。判定結果は、例えば、監視モジュール220内のメモリ222に記憶される。これにより、制御部303は、判定部302による判定結果に応じて、CM210の復旧手順を選択することができる。
制御部303は、判定部302によってバックアップ媒体214のバックアップデータが有効であると判定された場合には、第1の処理をCM210に実行させる。ここで、第1の処理とは、例えば、RAM213のデータをバックアップせずに再起動した後に、バックアップ媒体214のバックアップデータをRAM213に復元する処理である。第1の処理とは、例えば、図1に示した短縮リカバリ処理である。
また、制御部303は、判定部302によってバックアップ媒体214のバックアップデータが有効ではないと判定された場合には、第2の処理と、第3の処理とを、CM210に順次実行させる。ここで、第2の処理とは、例えば、RAM213を初期化せずに再起動した後に、RAM213のデータをバックアップ媒体214にバックアップする処理である。第2の処理とは、例えば、図1に示したリカバリ処理である。
第3の処理とは、例えば、RAM213のデータをバックアップ媒体214にバックアップして再起動した後に、バックアップ媒体214のバックアップデータをRAM213に復元する処理である。第3の処理とは、例えば、図1に示したパワーオフ処理およびパワーオン処理である。
また、制御部303は、CM210が複数存在する時に、判定部302によって各々のCM210について有効であると判定された場合には、第1の処理を各々のCM210に実行させる。また、制御部303は、CM210が複数存在する時に、判定部302によって各々のCM210について有効ではないと判定された場合には、第2の処理と、第3の処理と、を各々のCM210に順次実行させる。
また、複数のCM210の中に、バックアップ媒体214のバックアップデータが有効であると判定された第1のCM210と、バックアップ媒体214のバックアップデータが有効ではないと判定された第2のCM210と、が存在する場合がある。ここで、第1のCM210がCM210#0であり、第2のCM210がCM210#1であるとして、以下の説明を行う。この場合には、制御部303は、第2の処理と第3の処理とをCM210#0に順次実行させる。
ここで、CM210#0は、第3の処理を実行した後に、起動済ではないCM210#1を検出する。また、CM210#0は、起動済ではないCM210#1を示す情報を監視モジュール220から受信することにより、起動済ではないCM210#1を検出してもよい。CM210#0は、起動済ではないCM210#1を検出すると、CM210#1にソフトウェアを再起動させて、CM210#1に自装置が有するRAM213#0のデータを送信する。
一方で、CM210#1は、CM210#0によって再起動された後に、CM210#0から受信したデータを自装置が有するRAM213#1に記憶する。これにより、制御部303は、CM210を復旧し、ストレージ装置を復旧することができる。
(ストレージ装置100におけるCM復旧の動作の一例)
次に、図4〜図8を用いて、ストレージ装置100におけるCM復旧の動作の一例について説明する。以下の説明では、CM210の動作の一例を図4に示し、図4に示した動作の最中にCM210がダウンした場合について、どの期間にCM210がダウンしたかに応じて実行されるCM復旧の動作の一例を図5〜図8に示す。
<CM210の動作の一例>
まず、図4を用いて、CM210の動作の一例について説明する。図4は、CM210の動作の一例を示す説明図である。図4において、(11)各CM210は、電源を投入して、パワーオン処理を開始する。ここで、RAM213には、電源が切断されていたためデータは記憶されていない。バックアップ媒体214には、バックアップデータ「AA」が記憶されている。フラグは、設定されていない。
(12)各CM210は、RAM213を初期化する。ここで、RAM213には、初期化データ「00」が記憶される。(13)各CM210は、RAM213にバックアップ媒体214のバックアップデータを上書きすべき状態であるため、バックアップデータが有効であるとして、フラグを初期化する。ここで、フラグには、初期化により「OFF」が設定される。ここで、「OFF」は、バックアップデータが有効であることを示す。
(14)各CM210は、バックアップ媒体214のバックアップデータ「AA」を用いて、RAM213のデータを復元する。ここで、RAM213には、データ「AA」が記憶される。(15)各CM210は、RAM213にバックアップ媒体214のバックアップデータを上書きするべきではない状態であるため、バックアップデータが有効ではないとして、フラグに「ON」を設定する。ここで、フラグには、「ON」が設定される。ここで、「ON」は、バックアップデータが有効ではないことを示す。(16)各CM210は、パワーオン処理を終了する。これにより、各CM210は、ストレージ230へのアクセスを制御する通常動作に移行する。
(17)各CM210は、通常動作の最中において、RAM213のデータを更新する。ここで、RAM213には、データ「CC」が記憶されたとする。(18)各CM210は、パワーオフ処理を開始する。(19)各CM210は、RAM213のデータを複製した複製データを、バックアップ媒体214にバックアップデータとして記憶する。ここで、バックアップ媒体214には、バックアップデータ「CC」が記憶される。
(20)各CM210は、電源を切断して、パワーオフ処理を終了する。ここで、RAM213のデータ「CC」は、RAM213が揮発性であって、電源が切断されたため、消去される。フラグの設定も、同様に消去される。
ストレージ装置100は、図4に示した動作の最中にCM210がダウンした場合、ダウンした時点でのバックアップ媒体214のバックアップデータが有効であるか否かに基づいて、CM210の復旧手順を変更する。具体的には、ストレージ装置100内の監視モジュール220により、CM210が復旧される。
図4に示す第3の期間は、バックアップデータがRAM213のデータより有効ではない期間であり、フラグが「ON」に設定されている期間である。一方で、図4に示す第4の期間は、バックアップデータがRAM213のデータより有効である期間であり、フラグが「OFF」に設定されている期間である。
第3の期間の始点および第4の期間の終点は、(17)のデータ更新が終了した時点であってもよい。第3の期間の終点および第4の期間の始点は、(19)のバックアップが終了した時点であってもよい。この場合は、例えば、電源切断後もフラグを保持するために、フラグはROM212などの不揮発性の記憶領域によって実現される。
<第3の期間において両方のCM210がダウンした場合のCM復旧の動作の一例>
次に、図5を用いて、図4に示した第3の期間において両方のCM210がダウンした場合のCM復旧の動作について説明する。
図5は、第3の期間において両方のCM210がダウンした場合のCM復旧の動作の一例を示す説明図である。図5において、図4に示した(17)のデータ更新が終了した後に、(21)各CM210がダウンした場合を例に挙げる。この場合、監視モジュール220は、各CM210がダウンしたことを検出し、各CMのフラグをチェックする。監視モジュール220は、各CMのフラグが「ON」であるため、各CM210にリカバリ処理の開始指示を送信する。
(22)各CM210は、リカバリ処理の開始指示を受信して、リカバリ処理を開始する。(23)各CM210は、ソフトウェアを再起動する。ここで、各CM210は電源の切断を行わないため、RAM213のデータ「CC」は消去されない。
(24)各CM210は、RAM213のデータを複製した複製データを、バックアップ媒体214にバックアップデータとして記憶する。ここで、バックアップ媒体214には、バックアップデータ「CC」が記憶される。(25)各CM210は、リカバリ処理を終了し、終了通知を監視モジュール220に送信する。
監視モジュール220は、各CM210がリカバリ処理を終了したことを検出し、各CM210にパワーオフ処理の開始指示を送信する。(26)各CM210は、パワーオフ処理を開始する。(27)各CM210は、RAM213のデータを複製した複製データを、バックアップ媒体214にバックアップデータとして記憶する。ここで、バックアップ媒体214には、バックアップデータ「CC」が記憶される。(28)各CM210は、電源を切断して、パワーオフ処理を終了し、終了通知を監視モジュール220に送信する。ここで、RAM213のデータ「CC」は、電源が切断されたため、消去される。フラグの設定も、同様に消去される。
監視モジュール220は、各CM210がパワーオフ処理を終了したことを検出し、各CM210にパワーオン処理の開始指示を送信する。(29)各CM210は、パワーオン処理の開始指示を受信すると、電源を投入して、パワーオン処理を開始する。ここで、RAM213には、電源が切断されていたためデータは記憶されていない。バックアップ媒体214には、バックアップデータ「CC」が記憶されている。フラグは、設定されていない。
(30)各CM210は、RAM213を初期化する。ここで、RAM213には、初期化データ「00」が記憶される。(31)各CM210は、バックアップデータが有効であるとして、フラグを初期化する。ここで、フラグには、初期化により「OFF」が設定される。(32)各CM210は、バックアップ媒体214のバックアップデータ「CC」を用いて、RAM213のデータを復元する。ここで、RAM213には、データ「CC」が記憶される。
(33)各CM210は、バックアップデータが有効ではないとして、フラグに「ON」を設定する。ここで、フラグには、「ON」が設定される。(34)各CM210は、パワーオン処理を終了する。これにより、監視モジュール220は、各CM210に揮発性メモリ102のデータをバックアップさせておき、各CM210を、ダウンする前の状態に復旧することができる。
<第4の期間において両方のCM210がダウンした場合のCM復旧の動作の一例>
次に、図6を用いて、図4に示した第4の期間において両方のCM210がダウンした場合のCM復旧の動作について説明する。
図6は、第4の期間において両方のCM210がダウンした場合のCM復旧の動作の一例を示す説明図である。図6において、図4に示した(13)のフラグ初期化が終了した後に、(41)各CM210がダウンした場合を例に挙げる。この場合、監視モジュール220は、各CM210がダウンしたことを検出し、各CMのフラグをチェックする。監視モジュール220は、各CMのフラグが「OFF」であるため、各CM210に短縮リカバリ処理の開始指示を送信する。
(42)各CM210は、短縮リカバリ処理の開始指示を受信すると、短縮リカバリ処理を開始する。(43)各CM210は、ソフトウェア(例えば、ファームウェア)を再起動する。ここで、RAM213には、データ「00」が記憶されている。バックアップ媒体214には、バックアップデータ「AA」が記憶されている。フラグには、「OFF」が設定されている。
(44)各CM210は、RAM213を初期化する。ここで、RAM213には、初期化データ「00」が記憶される。(45)各CM210は、フラグを初期化する。ここで、フラグには、初期化により「OFF」が設定される。
(46)各CM210は、バックアップ媒体214のバックアップデータ「AA」を用いて、RAM213のデータを復元する。ここで、RAM213には、データ「AA」が記憶される。(47)各CM210は、フラグに「ON」を設定する。ここで、フラグには、「ON」が設定される。(48)各CM210は、短縮リカバリ処理を終了する。
これにより、監視モジュール220は、各CM210に揮発性メモリ102のデータをバックアップさせないため、不揮発性メモリ103のバックアップデータが初期化データで上書きされることを防止することができる。結果として、監視モジュール220は、各CM210を、ダウンする前の状態に復旧することができる。また、監視モジュール220は、各CM210に揮発性メモリ102のデータをバックアップさせないため、CM210の復旧を高速化することができる。
<第3の期間において一方のCM210がダウンして、第4の期間において他方のCM210がダウンした場合のCM復旧の動作の一例>
次に、図7および図8を用いて、図4に示した第3の期間において一方のCM210がダウンして、図4に示した第4の期間において他方のCM210がダウンした場合のCM復旧の動作について説明する。
図7および図8は、第3の期間において一方のCM210がダウンして、第4の期間において他方のCM210がダウンした場合のCM復旧の動作の一例を示す説明図である。図7において、(51)図4に示した(15)のフラグ「ON」設定が終了した時にCM210#0がダウンし、(52)図4に示した(14)のリストアが終了し(15)のフラグ「ON」設定が終了する前にCM210#1がダウンした場合を例に挙げる。
この場合、監視モジュール220は、各CM210がダウンしたことを検出し、各CMのフラグをチェックする。監視モジュール220は、各CMのフラグに「ON」と「OFF」が混在しているため、フラグが「OFF」であるCM210#1の起動を抑止し、フラグが「ON」であるCM210#0にリカバリ処理の開始指示を送信する。
(53)CM210#1は、起動抑止される。(54)CM210#0は、リカバリ処理の開始指示を受信して、リカバリ処理を開始する。(55)CM210#0は、ソフトウェアを再起動する。ここで、CM210#0は電源の切断を行わないため、RAM213のデータ「AA」は消去されない。
(56)CM210#0は、RAM213のデータを複製した複製データを、バックアップ媒体214にバックアップデータとして記憶する。ここで、バックアップ媒体214には、バックアップデータ「AA」が記憶される。(57)CM210#0は、リカバリ処理を終了し、終了通知を監視モジュール220に送信する。
監視モジュール220は、CM210#0がリカバリ処理を終了したことを検出し、CM210#0にパワーオフ処理の開始指示を送信する。(58)CM210#0は、パワーオフ処理を開始する。(59)CM210#0は、RAM213のデータを複製した複製データを、バックアップ媒体214にバックアップデータとして記憶する。ここで、バックアップ媒体214には、バックアップデータ「AA」が記憶される。(60)CM210#0は、電源を切断して、パワーオフ処理を終了し、終了通知を監視モジュール220に送信する。ここで、RAM213のデータ「AA」は、電源が切断されたため、消去される。フラグの設定も、同様に消去される。
監視モジュール220は、CM210#0がパワーオフ処理を終了したことを検出し、CM210#0にパワーオン処理の開始指示を送信する。(61)CM210#0は、電源を投入して、パワーオン処理を開始する。ここで、RAM213には、電源が切断されていたためデータは記憶されていない。バックアップ媒体214には、バックアップデータ「AA」が記憶されている。フラグは、設定されていない。
(62)CM210#0は、RAM213を初期化する。ここで、RAM213には、初期化データ「00」が記憶される。(63)CM210#0は、バックアップデータが有効であるとして、フラグを初期化する。ここで、フラグには、初期化により「OFF」が設定される。
(64)CM210#0は、バックアップ媒体214のバックアップデータ「AA」を用いて、RAM213のデータを復元する。ここで、RAM213には、データ「AA」が記憶される。(65)CM210#0は、バックアップデータが有効ではないとして、フラグに「ON」を設定する。ここで、フラグには、「ON」が設定される。(66)CM210#0は、パワーオン処理を終了する。
これにより、監視モジュール220は、CM210#0に揮発性メモリ102のデータをバックアップさせておき、CM210#0を、ダウンする前の状態に復旧することができる。次に、各CM210は、図8に示す動作に移行する。
図8において、(67)CM210#0は、起動済ではないCM210#1を検出すると、組み込み処理を開始する。(68)CM210#0は、データコピー処理の開始指示を送信する。(69)CM210#1は、データコピー処理の開始指示を受信すると、データコピー処理を開始する。(70)CM210#1は、ソフトウェアを再起動する。(71)CM210#1は、フラグを初期化する。ここで、フラグは、「OFF」が設定される。
(72)CM210#0は、RAM213のデータをCM210#1に送信する。一方で、CM210#1は、CM210#0からデータを受信し、受信したデータをRAM213に記憶する。(73)CM210#0は、組み込み処理を終了する。
(74)CM210#1は、フラグに「ON」を設定する。ここで、フラグには、「ON」が設定される。(75)CM210#1は、データコピー処理を終了する。これにより、監視モジュール220は、各CM210のうち、RAM213のデータが新しい方のCM210を復旧させることができる。結果として、RAM213のデータが新しい方のCM210により、RAM213のデータが古い方のCM210が復旧されて、各CM210の制御データが同一になる。
(CM復旧処理手順)
次に、図9を用いて、監視モジュール220によるCM復旧処理手順の一例について説明する。
図9は、監視モジュール220によるCM復旧処理手順の一例を示すフローチャートである。図9において、監視モジュール220は、すべてのCM210がダウンしているか否かを判定する(ステップS901)。
ここで、ダウンしていないCM210がある場合(ステップS901:No)、監視モジュール220は、ステップS901の処理に戻る。一方で、すべてのCM210がダウンしている場合(ステップS901:Yes)、監視モジュール220は、すべてのCM210のフラグをチェックする(ステップS902)。
次に、監視モジュール220は、チェックした、すべてのCM210のフラグが一致しているか否かを判定する(ステップS903)。ここで、すべてのCM210のフラグが一致している場合(ステップS903:Yes)、監視モジュール220は、フラグが「ON」で一致しているか否かを判定する(ステップS904)。
ここで、フラグが「ON」で一致している場合(ステップS904:Yes)、監視モジュール220は、すべてのCM210に、リカバリ処理の開始指示を送信して、リカバリ処理を実行させる(ステップS905)。
次に、監視モジュール220は、すべてのCM210に、パワーオフ処理の開始指示を送信して、パワーオフ処理を実行させ(ステップS906)、パワーオン処理の開始指示を送信して、パワーオン処理を実行させる(ステップS907)。そして、監視モジュール220は、CM復旧処理を終了する。
上述したステップS901〜S907を経由する処理により、図5に示したCM復旧の動作が実現される。これにより、監視モジュール220は、各CM210に揮発性メモリ102のデータをバックアップさせておき、各CM210を、ダウンする前の状態に復旧することができる。
一方、ステップS904において、フラグが「OFF」で一致している場合(ステップS904:No)、監視モジュール220は、すべてのCM210に、短縮リカバリ処理の開始指示を送信して、短縮リカバリ処理を実行させる(ステップS908)。そして、監視モジュール220は、CM復旧処理を終了する。
上述したステップS901〜S904,ステップS908を経由する処理により、図6に示したCM復旧の動作が実現される。これにより、監視モジュール220は、各CM210に揮発性メモリ102のデータをバックアップさせないため、不揮発性メモリ103のバックアップデータが初期化データで上書きされることを防止することができる。結果として、監視モジュール220は、各CM210を、ダウンする前の状態に復旧することができる。また、監視モジュール220は、各CM210に揮発性メモリ102のデータをバックアップさせないため、CM210の復旧を高速化することができる。
一方、ステップS903において、すべてのCM210のフラグが一致していない場合(ステップS903:No)、監視モジュール220は、フラグが「OFF」に設定されているCM210の起動を抑止する(ステップS909)。次に、監視モジュール220は、フラグが「ON」に設定されているCM210に、リカバリ処理の開始指示を送信して、リカバリ処理を実行させる(ステップS910)。
そして、監視モジュール220は、フラグが「ON」に設定されているCM210に、パワーオフ処理の開始指示を送信して、パワーオフ処理を実行させる(ステップS911)。次に、監視モジュール220は、フラグが「ON」に設定されているCM210に、パワーオン処理の開始指示を送信して、パワーオン処理を実行させ(ステップS912)、CM復旧処理を終了する。
上述したステップS901〜S903,ステップS909〜S912を経由する処理により、図7に示したCM復旧の動作が実現される。これにより、監視モジュール220は、各CM210のうち、RAM213のデータが新しい方のCM210を復旧させることができる。結果として、図8に示したように、RAM213のデータが新しい方のCM210により、RAM213のデータが古い方のCM210が復旧されて、各CM210の制御データが同一になる。
(リカバリ処理手順)
次に、図10を用いて、CM210によるリカバリ処理手順の一例について説明する。リカバリ処理は、監視モジュール220からリカバリ処理の開始指示を受信した場合に実行される処理である。
図10は、CM210によるリカバリ処理手順の一例を示すフローチャートである。図10において、まず、CM210は、リカバリ処理の開始指示を受信したか否かを判定する(ステップS1001)。ここで、リカバリ処理の開始指示を受信していない場合(ステップS1001:No)、CM210は、ステップS1001に戻る。
一方、リカバリ処理の開始指示を受信した場合(ステップS1001:Yes)、CM210は、RAM213を初期化せずに、ソフトウェアを再起動する(ステップS1002)。次に、CM210は、RAM213のデータを複製した複製データを、バックアップ媒体214にバックアップデータとして記憶する(ステップS1003)。そして、CM210は、リカバリ処理を終了する。これにより、CM210は、RAM213のデータを初期化せずに、RAM213のデータをバックアップすることができる。
(パワーオフ処理手順)
次に、図11を用いて、CM210によるパワーオフ処理手順の一例について説明する。パワーオフ処理は、監視モジュール220からパワーオフ処理の開始指示を受信した場合に実行される処理である。
図11は、CM210によるパワーオフ処理手順の一例を示すフローチャートである。図11において、まず、CM210は、パワーオフ処理の開始指示を受信したか否かを判定する(ステップS1101)。ここで、パワーオフ処理の開始指示を受信していない場合(ステップS1101:No)、CM210は、ステップS1101に戻る。
一方、パワーオフ処理の開始指示を受信した場合(ステップS1101:Yes)、CM210は、RAM213のデータを複製した複製データを、バックアップ媒体214にバックアップデータとして記憶する(ステップS1102)。そして、CM210は、電源を切断して(ステップS1103)、パワーオフ処理を終了する。これにより、CM210は、RAM213のデータをバックアップした上で、電源を切断することができる。
(パワーオン処理手順)
次に、図12を用いて、CM210によるパワーオン処理手順の一例について説明する。パワーオン処理は、監視モジュール220からパワーオン処理の開始指示を受信した場合に実行される処理である。
図12は、CM210によるパワーオン処理手順の一例を示すフローチャートである。図12において、まず、CM210は、パワーオン処理の開始指示を受信したか否かを判定する(ステップS1201)。ここで、パワーオン処理の開始指示を受信していない場合(ステップS1201:No)、CM210は、ステップS1201に戻る。
一方、パワーオン処理の開始指示を受信した場合(ステップS1201:Yes)、CM210は、RAM213を初期化する(ステップS1202)。次に、CM210は、フラグを初期化する(ステップS1203)。そして、CM210は、バックアップ媒体214に記憶されているバックアップデータを用いて、RAM213のデータを復元する(ステップS1204)。
次に、CM210は、フラグを「ON」に設定する(ステップS1205)。そして、CM210は、パワーオン処理を終了する。これにより、CM210は、運用を開始することができる。
(短縮リカバリ処理手順)
次に、図13を用いて、CM210による短縮リカバリ処理手順の一例について説明する。短縮リカバリ処理は、監視モジュール220から短縮リカバリ処理の開始指示を受信した場合に実行される処理である。
図13は、CM210による短縮リカバリ処理手順の一例を示すフローチャートである。図13において、まず、CM210は、短縮リカバリ処理の開始指示を受信したか否かを判定する(ステップS1301)。ここで、短縮リカバリ処理の開始指示を受信していない場合(ステップS1301:No)、CM210は、ステップS1301に戻る。
一方、短縮リカバリ処理の開始指示を受信した場合(ステップS1301:Yes)、CM210は、ソフトウェアを再起動する(ステップS1302)。次に、CM210は、フラグを初期化する(ステップS1303)。
そして、CM210は、バックアップ媒体214に記憶されているバックアップデータを用いて、RAM213のデータを復元する(ステップS1304)。次に、CM210は、フラグを「ON」に設定する(ステップS1305)。そして、CM210は、短縮リカバリ処理を終了する。これにより、CM210は、運用を開始することができる。
(組み込み処理手順)
次に、図14を用いて、CM210による組み込み処理手順の一例について説明する。組み込み処理は、起動済ではないCM210を検出した場合に実行される処理である。
図14は、CM210による組み込み処理手順の一例を示すフローチャートである。図14において、まず、CM210は、起動済ではないCM210があるか否かを判定する(ステップS1401)。ここで、起動済ではないCM210がない場合(ステップS1401:No)、CM210は、ステップS1401に戻る。
一方、起動済ではないCM210がある場合(ステップS1401:Yes)、CM210は、起動済ではないCM210に、図15に示すデータコピー処理の開始指示を送信し、データコピー処理を実行させる(ステップS1402)。次に、CM210は、起動済ではないCM210に、RAM213のデータを送信する(ステップS1403)。そして、CM210は、組み込み処理を終了する。これにより、CM210は、他のCM210に、自装置のデータを用いて復旧させることができる。
(データコピー処理手順)
次に、図15を用いて、CM210によるデータコピー処理手順の一例について説明する。データコピー処理は、他のCM210からデータコピー処理の開始指示を受信した場合に実行される処理である。
図15は、CM210によるデータコピー処理手順の一例を示すフローチャートである。図15において、まず、CM210は、ソフトウェアを再起動する(ステップS1501)。次に、CM210は、フラグを初期化する(ステップS1502)。そして、CM210は、起動済CM210からデータを受信して、受信したデータをRAM213に記憶する(ステップS1503)。次に、CM210は、フラグを「ON」に設定する(ステップS1504)。そして、CM210は、データコピー処理を終了する。これにより、CM210は、他のCM210のデータを用いて復旧することができる。
以上説明したように、ストレージ装置は、制御装置がダウンした時に、制御装置の不揮発性メモリのバックアップデータが有効か否かに基づいて、制御装置の復旧の手順を変更する。ストレージ装置は、例えば、バックアップデータが有効である場合には、制御装置に、ソフトウェアを再起動させ、不揮発性メモリのバックアップデータを用いて揮発性メモリのデータを復元させる。これにより、ストレージ装置は、制御装置の復旧を高速化することができる。また、ストレージ装置は、有効ではない揮発性メモリのデータで、不揮発性メモリのバックアップデータが上書きされることを防止することができる。
また、ストレージ装置は、例えば、バックアップデータが有効ではない場合には、制御装置に、ソフトウェアを再起動させ、揮発性メモリのデータを不揮発性メモリにバックアップさせる。そして、ストレージ装置は、制御装置に、電源を投入し直させて、不揮発性メモリのバックアップデータを用いて揮発性メモリのデータを復元させる。これにより、ストレージ装置は、制御装置を最新の状態に復旧することができる。
また、ストレージ装置は、すべての制御装置がダウンした場合に、各々の制御装置においてバックアップデータが有効である場合には、すべての制御装置に、ソフトウェアを再起動させ、揮発性メモリのデータを復元させる。これにより、ストレージ装置は、制御装置の復旧を高速化することができる。また、ストレージ装置は、有効ではない揮発性メモリのデータで、不揮発性メモリのバックアップデータが上書きされることを防止することができる。
また、ストレージ装置は、すべての制御装置がダウンした場合に、各々の制御装置においてバックアップデータが有効ではない場合には、すべての制御装置に、ソフトウェアを再起動させ、揮発性メモリのデータを不揮発性メモリにバックアップさせる。そして、ストレージ装置は、すべての制御装置に、電源を投入し直させて、不揮発性メモリのバックアップデータを用いて揮発性メモリのデータを復元させる。これにより、ストレージ装置は、制御装置を最新の状態に復旧することができる。
また、すべての制御装置がダウンした場合に、バックアップデータが有効である制御装置と、バックアップデータが有効ではない制御装置と、が混在する場合がある。この場合は、ストレージ装置は、バックアップデータが有効ではない制御装置に、ソフトウェアを再起動させ、揮発性メモリのデータを不揮発性メモリにバックアップさせ、電源を投入し直させて、揮発性メモリのデータを復元させる。そして、バックアップデータが有効である制御装置は、起動済の制御装置の揮発性メモリのデータをコピーする。これにより、ストレージ装置は、すべての制御装置を同一の状態に復旧することができる。
また、制御装置は、バックアップデータが有効であるか否かを示すフラグを記憶する。これにより、ストレージ装置は、フラグに基づいて制御装置のバックアップデータが有効か否かを判定することができ、制御装置のバックアップデータが有効か否かを監視する作業を削減することができる。
なお、本実施の形態で説明した復旧方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本復旧プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本復旧プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)ストレージへのアクセスを制御する制御装置と、
前記制御装置が有し、前記制御装置の動作制御のための制御データを含むデータを記憶する揮発性メモリと、
前記制御装置が有し、前記データのバックアップ先となる不揮発性メモリと、
前記制御装置に障害が発生したことを検出する検出部と、
前記検出部によって前記制御装置に障害が発生したことが検出された場合に、前記不揮発性メモリに記憶されているバックアップデータが有効か否かを判定する判定部と、
前記判定部によって前記不揮発性メモリのバックアップデータが有効であると判定された場合には、前記揮発性メモリのデータをバックアップせずに再起動した後に、前記不揮発性メモリのバックアップデータを前記揮発性メモリに復元する第1の処理を前記制御装置に実行させる制御部と、
を有することを特徴とするストレージ装置。
(付記2)前記制御部は、
前記判定部によって前記不揮発性メモリのバックアップデータが有効ではないと判定された場合には、前記揮発性メモリを初期化せずに再起動した後に、前記揮発性メモリのデータを前記不揮発性メモリにバックアップする第2の処理と、前記揮発性メモリのデータを前記不揮発性メモリにバックアップして再起動した後に、前記不揮発性メモリのバックアップデータを前記揮発性メモリに復元する第3の処理とを、前記制御装置に順次実行させることを特徴とする付記1に記載のストレージ装置。
(付記3)前記制御装置は、
前記不揮発性メモリのバックアップデータが有効であるか否かを示すフラグを有し、前記揮発性メモリを初期化した場合、または前記揮発性メモリのデータを前記不揮発性メモリにバックアップした場合に、前記フラグを有効に設定し、前記不揮発性メモリのバックアップデータを前記揮発性メモリに復元した場合、または前記揮発性メモリのデータを更新した場合に、前記フラグを無効に設定し、
前記判定部は、
前記フラグを参照して、前記フラグが有効である場合に、前記不揮発性メモリのバックアップデータが有効であると判定することを特徴とする付記1または2に記載のストレージ装置。
(付記4)前記判定部は、
前記制御装置が複数存在する時には、前記検出部によって複数の制御装置に障害が発生したことが検出された場合に、前記複数の制御装置の各々の制御装置について、当該制御装置が有する不揮発性メモリのバックアップデータが有効か否かを判定し、
前記制御部は、
前記判定部によって前記各々の制御装置について有効であると判定された場合には、前記第1の処理を前記各々の制御装置に実行させることを特徴とする付記1〜3のいずれか一つに記載のストレージ装置。
(付記5)前記制御部は、
前記判定部によって前記各々の制御装置について有効ではないと判定された場合には、前記第2の処理と、前記第3の処理と、を前記各々の制御装置に順次実行させることを特徴とする付記4に記載のストレージ装置。
(付記6)前記制御部は、
前記複数の制御装置の中に、前記判定部によって前記不揮発性メモリのバックアップデータが有効であると判定された第1の制御装置と、前記判定部によって前記不揮発性メモリのバックアップデータが有効ではないと判定された第2の制御装置と、が存在する場合には、前記第2の処理と前記第3の処理とを前記第1の制御装置に順次実行させ、
前記第1の制御装置は、
前記第3の処理を実行した後に、前記第2の制御装置を再起動させ、前記第2の制御装置に自装置が有する揮発性メモリのデータを送信し、
前記第2の制御装置は、
再起動した後に、前記第1の制御装置から受信したデータを自装置が有する揮発性メモリに記憶する、
ことを特徴とする付記4または5に記載のストレージ装置。
(付記7)コンピュータが、
ストレージへのアクセスを制御する制御装置に障害が発生したことを検出し、
前記制御装置に障害が発生したことを検出した場合に、揮発性メモリに記憶されている前記制御装置の動作制御のための制御データを含むデータのバックアップ先となる不揮発性メモリに記憶されているバックアップデータが有効か否かを判定し、
前記不揮発性メモリのバックアップデータが有効であると判定した場合には、前記揮発性メモリのデータをバックアップせずに再起動した後に、前記不揮発性メモリのバックアップデータを前記揮発性メモリに復元する第1の処理を前記制御装置に実行させる、
処理を実行することを特徴とする復旧方法。
(付記8)コンピュータに、
ストレージへのアクセスを制御する制御装置に障害が発生したことを検出し、
前記制御装置に障害が発生したことを検出した場合に、揮発性メモリに記憶されている前記制御装置の動作制御のための制御データを含むデータのバックアップ先となる不揮発性メモリに記憶されているバックアップデータが有効か否かを判定し、
前記不揮発性メモリのバックアップデータが有効であると判定した場合には、前記揮発性メモリのデータをバックアップせずに再起動した後に、前記不揮発性メモリのバックアップデータを前記揮発性メモリに復元する第1の処理を前記制御装置に実行させる、
処理を実行させることを特徴とする復旧プログラム。
100 ストレージ装置
101 制御装置
210#0,210#1 CM
220#0,220#1 監視モジュール
301 検出部
302 判定部
303 制御部

Claims (7)

  1. ストレージへのアクセスを制御する制御装置と、
    前記制御装置が有し、前記制御装置の動作制御のための制御データを含むデータを記憶する揮発性メモリと、
    前記制御装置が有し、前記データのバックアップ先となる不揮発性メモリと、
    前記制御装置に障害が発生したことを検出する検出部と、
    前記検出部によって前記制御装置に障害が発生したことが検出された場合に、前記不揮発性メモリに記憶されているバックアップデータが有効か否かを判定する判定部と、
    前記判定部によって前記不揮発性メモリのバックアップデータが有効であると判定された場合には、前記揮発性メモリのデータをバックアップせずに再起動した後に、前記不揮発性メモリのバックアップデータを前記揮発性メモリに復元する第1の処理を前記制御装置に実行させ、前記判定部によって前記不揮発性メモリのバックアップデータが有効ではないと判定された場合には、前記揮発性メモリを初期化せずに再起動した後に、前記揮発性メモリのデータを前記不揮発性メモリにバックアップする第2の処理と、前記揮発性メモリのデータを前記不揮発性メモリにバックアップして再起動した後に、前記不揮発性メモリのバックアップデータを前記揮発性メモリに復元する第3の処理とを、前記制御装置に順次実行させる制御部と、
    を有することを特徴とするストレージ装置。
  2. ストレージへのアクセスを制御する制御装置と、
    前記制御装置が有し、前記制御装置の動作制御のための制御データを含むデータを記憶する揮発性メモリと、
    前記制御装置が有し、前記データのバックアップ先となる不揮発性メモリと、
    前記制御装置に障害が発生したことを検出する検出部と、
    前記検出部によって前記制御装置に障害が発生したことが検出された場合に、前記不揮発性メモリに記憶されているバックアップデータが有効か否かを判定する判定部と、
    前記判定部によって前記不揮発性メモリのバックアップデータが有効であると判定された場合には、前記揮発性メモリのデータをバックアップせずに再起動した後に、前記不揮発性メモリのバックアップデータを前記揮発性メモリに復元する第1の処理を前記制御装置に実行させる制御部と、
    を有し、
    前記制御装置は、
    前記不揮発性メモリのバックアップデータが有効であるか否かを示すフラグを有し、前記揮発性メモリを初期化した場合、または前記揮発性メモリのデータを前記不揮発性メモリにバックアップした場合に、前記フラグを有効に設定し、前記不揮発性メモリのバックアップデータを前記揮発性メモリに復元した場合、または前記揮発性メモリのデータを更新した場合に、前記フラグを無効に設定し、
    前記判定部は、
    前記フラグを参照して、前記フラグが有効である場合に、前記不揮発性メモリのバックアップデータが有効であると判定することを特徴とするストレージ装置。
  3. ストレージへのアクセスを制御する制御装置と、
    前記制御装置が有し、前記制御装置の動作制御のための制御データを含むデータを記憶する揮発性メモリと、
    前記制御装置が有し、前記データのバックアップ先となる不揮発性メモリと、
    前記制御装置に障害が発生したことを検出する検出部と、
    前記検出部によって前記制御装置に障害が発生したことが検出された場合に、前記不揮発性メモリに記憶されているバックアップデータが有効か否かを判定する判定部と、
    前記判定部によって前記不揮発性メモリのバックアップデータが有効であると判定された場合には、前記揮発性メモリのデータをバックアップせずに再起動した後に、前記不揮発性メモリのバックアップデータを前記揮発性メモリに復元する第1の処理を前記制御装置に実行させる制御部と、
    を有し、
    前記判定部は、
    前記制御装置が複数存在する時には、前記検出部によって複数の制御装置に障害が発生
    したことが検出された場合に、前記複数の制御装置の各々の制御装置について、当該制御
    装置が有する不揮発性メモリのバックアップデータが有効か否かを判定し、
    前記制御部は、
    前記判定部によって前記各々の制御装置について有効であると判定された場合には、前記第1の処理を前記各々の制御装置に実行させることを特徴とするストレージ装置。
  4. 前記制御部は、
    前記判定部によって前記各々の制御装置について有効ではないと判定された場合には、前記揮発性メモリを初期化せずに再起動した後に、前記揮発性メモリのデータを前記不揮発性メモリにバックアップする第2の処理と、前記揮発性メモリのデータを前記不揮発性メモリにバックアップして再起動した後に、前記不揮発性メモリのバックアップデータを前記揮発性メモリに復元する第3の処理と、を前記各々の制御装置に順次実行させることを特徴とする請求項3に記載のストレージ装置。
  5. コンピュータに、
    ストレージへのアクセスを制御する制御装置に障害が発生したことを検出し、
    前記制御装置に障害が発生したことを検出した場合に、揮発性メモリに記憶されている前記制御装置の動作制御のための制御データを含むデータのバックアップ先となる不揮発性メモリに記憶されているバックアップデータが有効か否かを判定し、
    前記不揮発性メモリのバックアップデータが有効であると判定した場合には、前記揮発性メモリのデータをバックアップせずに再起動した後に、前記不揮発性メモリのバックアップデータを前記揮発性メモリに復元する第1の処理を前記制御装置に実行させ、
    前記不揮発性メモリのバックアップデータが有効ではないと判定した場合には、前記揮発性メモリを初期化せずに再起動した後に、前記揮発性メモリのデータを前記不揮発性メモリにバックアップする第2の処理と、前記揮発性メモリのデータを前記不揮発性メモリにバックアップして再起動した後に、前記不揮発性メモリのバックアップデータを前記揮発性メモリに復元する第3の処理とを、前記制御装置に順次実行させる、
    処理を実行させることを特徴とする復旧プログラム。
  6. コンピュータに、
    ストレージへのアクセスを制御する制御装置に障害が発生したことを検出し、
    前記制御装置に障害が発生したことを検出した場合に、揮発性メモリに記憶されている前記制御装置の動作制御のための制御データを含むデータのバックアップ先となる不揮発性メモリに記憶されているバックアップデータが有効か否かを判定し、
    前記不揮発性メモリのバックアップデータが有効であると判定した場合には、前記揮発性メモリのデータをバックアップせずに再起動した後に、前記不揮発性メモリのバックアップデータを前記揮発性メモリに復元する第1の処理を前記制御装置に実行させる、
    処理を実行させ、
    前記不揮発性メモリに記憶されているバックアップデータが有効か否かを判定する処理では、
    前記不揮発性メモリのバックアップデータが有効であるか否かを示すフラグであって、前記揮発性メモリを初期化した場合、または前記揮発性メモリのデータを前記不揮発性メモリにバックアップした場合に、前記制御装置によって有効に設定され、前記不揮発性メモリのバックアップデータを前記揮発性メモリに復元した場合、または前記揮発性メモリのデータを更新した場合に、前記制御装置によって無効に設定される前記フラグを参照して、前記フラグが有効である場合に、前記不揮発性メモリのバックアップデータが有効であると判定することを特徴とする復旧プログラム。
  7. コンピュータに、
    ストレージへのアクセスを制御する制御装置に障害が発生したことを検出し、
    前記制御装置に障害が発生したことを検出した場合に、揮発性メモリに記憶されている前記制御装置の動作制御のための制御データを含むデータのバックアップ先となる不揮発性メモリに記憶されているバックアップデータが有効か否かを判定し、
    前記不揮発性メモリのバックアップデータが有効であると判定した場合には、前記揮発性メモリのデータをバックアップせずに再起動した後に、前記不揮発性メモリのバックアップデータを前記揮発性メモリに復元する第1の処理を前記制御装置に実行させる、
    処理を実行させ、
    前記不揮発性メモリに記憶されているバックアップデータが有効か否かを判定する処理では、
    前記制御装置が複数存在する時には、複数の制御装置に障害が発生したことが検出された場合に、前記複数の制御装置の各々の制御装置について、当該制御装置が有する不揮発性メモリのバックアップデータが有効か否かを判定し、
    前記第1の処理を前記制御装置に実行させる処理では、
    前記各々の制御装置について有効であると判定した場合には、前記第1の処理を前記各々の制御装置に実行させる
    ことを特徴とする復旧プログラム。
JP2012256832A 2012-11-22 2012-11-22 ストレージ装置、復旧方法、および復旧プログラム Expired - Fee Related JP6011272B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012256832A JP6011272B2 (ja) 2012-11-22 2012-11-22 ストレージ装置、復旧方法、および復旧プログラム
US14/047,539 US20140140135A1 (en) 2012-11-22 2013-10-07 Storage device, recovery method, and recording medium for recovery program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012256832A JP6011272B2 (ja) 2012-11-22 2012-11-22 ストレージ装置、復旧方法、および復旧プログラム

Publications (2)

Publication Number Publication Date
JP2014106567A JP2014106567A (ja) 2014-06-09
JP6011272B2 true JP6011272B2 (ja) 2016-10-19

Family

ID=50727798

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012256832A Expired - Fee Related JP6011272B2 (ja) 2012-11-22 2012-11-22 ストレージ装置、復旧方法、および復旧プログラム

Country Status (2)

Country Link
US (1) US20140140135A1 (ja)
JP (1) JP6011272B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102567279B1 (ko) * 2016-03-28 2023-08-17 에스케이하이닉스 주식회사 비휘발성 듀얼 인 라인 메모리 시스템의 파워 다운 인터럽트
US10933882B2 (en) 2017-12-27 2021-03-02 Micron Technology, Inc. Determination of reliability of vehicle control commands using a voting mechanism
US10981576B2 (en) 2017-12-27 2021-04-20 Micron Technology, Inc. Determination of reliability of vehicle control commands via memory test
US10836402B2 (en) 2017-12-27 2020-11-17 Micron Technology, Inc. Determination of reliability of vehicle control commands via redundancy
US11507175B2 (en) 2018-11-02 2022-11-22 Micron Technology, Inc. Data link between volatile memory and non-volatile memory
JP2022021260A (ja) 2020-07-21 2022-02-02 富士通株式会社 ストレージ制御装置、ストレージ装置及びストレージ制御プログラム
EP4394607A1 (en) 2021-11-10 2024-07-03 Samsung Electronics Co., Ltd. Method for preserving data in initialization situation of electronic device and electronic device thereof
WO2023085589A1 (ko) * 2021-11-10 2023-05-19 삼성전자 주식회사 전자 장치의 초기화 상황에서 데이터 보존 방법 및 그 전자 장치

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6366797A (ja) * 1986-09-09 1988-03-25 Oki Electric Ind Co Ltd メモリ制御方式
JP3113486B2 (ja) * 1994-03-18 2000-11-27 富士通株式会社 Cpuシステム
DE69817543T2 (de) * 1998-06-08 2004-06-24 International Business Machines Corp. Automatische Datenrückgewinnung in Chipkarten
JP5200410B2 (ja) * 2007-04-19 2013-06-05 富士通株式会社 ストレージ装置
EP2249243B1 (en) * 2008-02-08 2014-06-18 Fujitsu Limited Backup method, disc array device, and controller

Also Published As

Publication number Publication date
JP2014106567A (ja) 2014-06-09
US20140140135A1 (en) 2014-05-22

Similar Documents

Publication Publication Date Title
JP6011272B2 (ja) ストレージ装置、復旧方法、および復旧プログラム
US6728898B2 (en) Producing a mirrored copy using incremental-divergence
JP4363676B2 (ja) コンピュータシステム
EP2652599B1 (en) System reset
JP6064608B2 (ja) ストレージ装置、バックアッププログラム、およびバックアップ方法
JP5224800B2 (ja) 情報処理装置およびデータ復旧方法
JP5077726B1 (ja) コンピュータ、その制御方法及びプログラム
JP2004038938A (ja) 一次データボリューム上のデータを復元する方法およびシステム
JP2006221628A (ja) メタデータの複製および復元のための方法、システム、および製品
JP2011028430A (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
JP4940599B2 (ja) 情報処理装置、情報処理装置制御プログラム、情報処理装置制御方法
TW201437811A (zh) 利用儲存區域網路回復電腦系統的系統及方法
JP5201133B2 (ja) 二重化システム、システム制御方法およびシステム制御プログラム
JP2014142852A (ja) ストレージシステムおよび制御装置
JP2006164162A (ja) コピー制御装置および方法
US9772905B2 (en) Updating control firmware of information processing apparatus, method of controlling the same, and storage medium
US10078558B2 (en) Database system control method and database system
JPS5913783B2 (ja) 2重化フアイル方式
CN111427721A (zh) 异常恢复方法及装置
EP2368187B1 (en) Replicated file system for electronic devices
JP4741976B2 (ja) ディスクアレイ装置およびデータ管理方法
JP2007328438A (ja) 情報処理装置、そのデータバックアップ及び復旧方法
JP6160688B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP3590015B2 (ja) ディスクアレイ装置および冗長データをもつ論理ドライブの一貫性回復方法
JP7503406B2 (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150706

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160725

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160905

R150 Certificate of patent or registration of utility model

Ref document number: 6011272

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees