(57)【要約】【課題】低コストにデータの消失を防止すること。【解決手段】ストレージ制御装置１は、揮発性の第１の記憶部１ａと不揮発性の第２の記憶部１ｂと制御部１ｃとを含む。第１の記憶部１ａは、ストレージデバイス２の制御に関する第１の情報１ａ２を含むバックアップ対象データ１ａ１を記憶する。制御部１ｃは、停電を検出してバックアップ対象データ１ａ１を第２の記憶部１ｂに書き込む停電処理と、停電以外の異常を検出して異常検出時のハードウェアの状態に関する第２の情報１ｄを取得して第１の情報１ａ２と第２の情報１ｄとを第２の記憶部１ｂに書き込む異常処理と、停電処理の実行中に異常を検出した場合に停電処理を中断して第２の情報１ｄを取得して異常処理に替えてバックアップ対象データ１ａ１のうち停電処理で第２の記憶部１ｂに未書き込みのデータと第２の情報１ｄとを第２の記憶部１ｂに書き込む停電中断バックアップ処理と、を実行する。【選択図】図１
2018128939.tif 000002
【特許請求の範囲】
【請求項１】
ストレージデバイスを制御対象とするストレージ制御装置であって、
前記ストレージデバイスの制御に関する第１の情報を含むバックアップ対象データを記憶する揮発性の第１の記憶部と、
不揮発性の第２の記憶部と、
停電を検出して前記バックアップ対象データを前記第２の記憶部に書き込む停電処理と、前記停電以外の異常を検出して異常検出時のハードウェアの状態に関する第２の情報を取得して前記第１の情報と前記第２の情報とを前記第２の記憶部に書き込む異常処理と、前記停電処理の実行中に前記異常を検出した場合に前記停電処理を中断して前記第２の情報を取得して前記異常処理に替えて前記バックアップ対象データのうち前記停電処理で前記第２の記憶部に未書き込みのデータと前記第２の情報とを前記第２の記憶部に書き込む停電中断バックアップ処理と、を実行する制御部と、
を含むストレージ制御装置。
【請求項２】
前記制御部は、前記異常処理で前記第２の情報を前記第１の記憶部に格納した後に前記第１の情報と前記第２の情報とを前記第２の記憶部に書き込み、前記異常処理の実行中に前記停電を検出した場合に前記異常処理を中断して前記停電処理に替えて前記第１の記憶部に格納されている全てのデータを前記第２の記憶部に書き込む異常中断バックアップ処理を実行する、
請求項１に記載のストレージ制御装置。
【請求項３】
前記ストレージ制御装置は、さらに、前記停電が発生したか否かを監視する監視部を含み、
前記制御部は、前記異常処理を実行中に前記監視部が前記停電を検出したか否かを監視し、前記監視部が前記停電を検出したときに前記停電を検出し、前記異常中断バックアップ処理で前記異常処理を中断する、
請求項２に記載のストレージ制御装置。
【請求項４】
前記制御部は、前記停電処理で前記バックアップ対象データの前記第２の記憶部への書き込み状況を示す書き込み情報を作成し、前記停電中断バックアップ処理で前記書き込み情報に基づいて前記バックアップ対象データのうち前記停電処理で前記第２の記憶部に未書き込みのデータを特定する、
請求項１乃至３の何れか１項に記載のストレージ制御装置。
【請求項５】
前記制御部は、前記ストレージ制御装置で復電したことを検出した場合、前記第２の記憶部から前記第１の情報と前記第２の情報とを取得し、前記第１の情報と前記第２の情報とに基づいて前記異常を解析する解析情報を作成する、
請求項１乃至４の何れか１項に記載のストレージ制御装置。
【請求項６】
ストレージデバイスを制御対象とするストレージ制御装置に、
停電を検出して揮発性の第１の記憶部が記憶する前記ストレージデバイスの制御に関する第１の情報を含むバックアップ対象データを不揮発性の第２の記憶部に書き込む停電処理と、前記停電以外の異常を検出して異常検出時のハードウェアの状態に関する第２の情報を取得して前記第１の情報と前記第２の情報とを前記第２の記憶部に書き込む異常処理と、前記停電処理の実行中に前記異常を検出した場合に前記停電処理を中断して前記第２の情報を取得して前記異常処理に替えて前記バックアップ対象データのうち前記停電処理で前記第２の記憶部に未書き込みのデータと前記第２の情報とを前記第２の記憶部に書き込む停電中断バックアップ処理と、を実行する、
処理を実行させるストレージ制御プログラム。
【請求項７】
ストレージデバイスを制御対象とするストレージ制御装置が、
停電を検出して揮発性の第１の記憶部が記憶する前記ストレージデバイスの制御に関する第１の情報を含むバックアップ対象データを不揮発性の第２の記憶部に書き込む停電処理と、前記停電以外の異常を検出して異常検出時のハードウェアの状態に関する第２の情報を取得して前記第１の情報と前記第２の情報とを前記第２の記憶部に書き込む異常処理と、前記停電処理の実行中に前記異常を検出した場合に前記停電処理を中断して前記第２の情報を取得して前記異常処理に替えて前記バックアップ対象データのうち前記停電処理で前記第２の記憶部に未書き込みのデータと前記第２の情報とを前記第２の記憶部に書き込む停電中断バックアップ処理と、を実行する、
ストレージ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置、ストレージ制御プログラムおよびストレージ制御方法に関する。
【背景技術】
【０００２】
ストレージ制御装置は、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などのストレージデバイスに対するアクセスを制御する。ストレージ制御装置は、データを格納する揮発性記憶装置を備える。揮発性記憶装置に格納されているデータは、ストレージ制御装置で停電が発生したときに消失する。そこで、揮発性記憶装置に格納されているデータの消失を防止する技術が提案されている。例えば、ストレージ装置は、停電時にバッテリの放電時間内でキャッシュメモリに格納されているデータをフラッシュメモリに退避する。また、例えば、ストレージ装置は、停電時にバッテリから電力の供給されている間に、ＲＡＭ（Random Access Memory）のメモリログ域に格納されているログデータをＲＡＭのライト用バッファにコピーする。ストレージ装置は、ライト用バッファにコピーしたログデータをフラッシュメモリに書き込む。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２００９／１０７２１３号
【特許文献２】特開２０１４−１２００９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ストレージ制御装置は、停電と停電以外の異常とが同時期に発生する場合がある。ストレージ制御装置は、停電に伴う停電処理と停電以外の異常に伴う異常処理とを実行したときに、十分なバッテリ容量がない場合に処理が完了しない場合がある。例えば、ストレージ制御装置は、バッテリから電力の供給を受けて異常処理を実行した後、バッテリの容量が無くなったときに停電処理を完了できない。そのため、ストレージ制御装置は、バックアップできなかったデータを消失し得る。
【０００５】
一方、十分な容量のバッテリを確保することで、ストレージ制御装置は、データの消失を防止することができる。しかし、バッテリ容量の拡大は、コストが高くなる。
１つの側面では、本発明は、低コストにデータの消失を防止することができるストレージ制御装置、ストレージ制御プログラムおよびストレージ制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
１つの態様では、ストレージデバイスを制御対象とするストレージ制御装置が提供される。このストレージ制御装置は、揮発性の第１の記憶部と不揮発性の第２の記憶部と制御部とを含む。第１の記憶部は、ストレージデバイスの制御に関する第１の情報を含むバックアップ対象データを記憶する。制御部は、停電を検出してバックアップ対象データを第２の記憶部に書き込む停電処理と、停電以外の異常を検出して異常検出時のハードウェアの状態に関する第２の情報を取得して第１の情報と第２の情報とを第２の記憶部に書き込む異常処理と、停電処理の実行中に異常を検出した場合に停電処理を中断して第２の情報を取得して異常処理に替えてバックアップ対象データのうち停電処理で第２の記憶部に未書き込みのデータと第２の情報とを第２の記憶部に書き込む停電中断バックアップ処理と、を実行する。
【０００７】
また、１つの態様では、ストレージ制御プログラムが提供される。このストレージ制御プログラムは、ストレージデバイスを制御対象とするストレージ制御装置に、停電を検出して揮発性の第１の記憶部が記憶するストレージデバイスの制御に関する第１の情報を含むバックアップ対象データを不揮発性の第２の記憶部に書き込む停電処理と、停電以外の異常を検出して異常検出時のハードウェアの状態に関する第２の情報を取得して第１の情報と第２の情報とを第２の記憶部に書き込む異常処理と、停電処理の実行中に異常を検出した場合に停電処理を中断して第２の情報を取得して異常処理に替えてバックアップ対象データのうち停電処理で第２の記憶部に未書き込みのデータと第２の情報とを第２の記憶部に書き込む停電中断バックアップ処理と、を実行する、処理を実行させる。
【０００８】
また、１つの態様では、ストレージ制御方法が提供される。このストレージ制御方法は、ストレージデバイスを制御対象とするストレージ制御装置が、停電を検出して揮発性の第１の記憶部が記憶するストレージデバイスの制御に関する第１の情報を含むバックアップ対象データを不揮発性の第２の記憶部に書き込む停電処理と、停電以外の異常を検出して異常検出時のハードウェアの状態に関する第２の情報を取得して第１の情報と第２の情報とを第２の記憶部に書き込む異常処理と、停電処理の実行中に異常を検出した場合に停電処理を中断して第２の情報を取得して異常処理に替えてバックアップ対象データのうち停電処理で第２の記憶部に未書き込みのデータと第２の情報とを第２の記憶部に書き込む停電中断バックアップ処理と、を実行する。
【発明の効果】
【０００９】
１つの側面では、低コストにデータの消失を防止することができる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施の形態のストレージ制御装置の一例を示す図である。
【図２】第２の実施の形態のストレージシステムの一例を示す図である。
【図３】第２の実施の形態のＣＥのハードウェアの一例を示す図である。
【図４】第２の実施の形態のＣＭの機能の一例を示す図である。
【図５】第２の実施の形態の停電テーブルの一例を示す図である。
【図６】第２の実施の形態の書き込み管理テーブルの一例を示す図である。
【図７】第２の実施の形態のダンプ状況テーブルの一例を示す図である。
【図８】第２の実施の形態のソフトウェア情報の一例を示す図である。
【図９】第２の実施の形態のハードウェア情報の一例を示す図である。
【図１０】第２の実施の形態の停電処理のフローチャートの一例を示す図である。
【図１１】第２の実施の形態のパニック処理のフローチャートの一例を示す図（その１）である。
【図１２】第２の実施の形態のパニック処理のフローチャートの一例を示す図（その２）である。
【図１３】第２の実施の形態のパニック処理のフローチャートの一例を示す図（その３）である。
【図１４】第２の実施の形態の停電処理中にファームウェアの異常が発生した場合の具体例を示す図（その１）である。
【図１５】第２の実施の形態の停電処理中にファームウェアの異常が発生した場合の具体例を示す図（その２）である。
【図１６】第２の実施の形態の停電処理中にファームウェアの異常が発生した場合の具体例を示す図（その３）である。
【図１７】第２の実施の形態のパニック処理中に停電が発生した場合の具体例を示す図（その１）である。
【図１８】第２の実施の形態のパニック処理中に停電が発生した場合の具体例を示す図（その２）である。
【図１９】第２の実施の形態の復電処理のフローチャートの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本実施の形態について図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態のストレージ制御装置の一例を示す図である。ストレージ制御装置１は、ストレージデバイス２を制御対象とする。ストレージ制御装置１は、第１の記憶部１ａと第２の記憶部１ｂと制御部１ｃを含む。
【００１２】
バッテリ３は、ストレージ制御装置１に接続されている。バッテリ３は、ストレージ制御装置１で停電が発生したとき、ストレージ制御装置１に電力を供給する。なお、バッテリ３は、ストレージ制御装置１の内部に設けられてもよい。
【００１３】
第１の記憶部１ａは、ＲＡＭなどの揮発性記憶装置である。第１の記憶部１ａは、バックアップ対象データ１ａ１を記憶する。バックアップ対象データ１ａ１は、第１の情報１ａ２を含む。第１の情報１ａ２は、ストレージデバイス２の制御に関する情報である。例えば、第１の情報１ａ２は、ストレージデバイス２の制御に関係するＯＳ（Operating System）の情報、ドライバ情報、ファームウェアの管理情報、ストレージデバイス２のＲＡＩＤ（Redundant Arrays of Inexpensive Disks）に関する情報などである。第２の記憶部１ｂは、ＨＤＤやフラッシュメモリなどの不揮発性記憶装置である。
【００１４】
制御部１ｃは、停電処理を実行可能である。制御部１ｃは、停電を検出した場合に停電処理を実行する。制御部１ｃは、停電処理において、停電を検出してバックアップ対象データ１ａ１を第２の記憶部１ｂに書き込む。
【００１５】
制御部１ｃは、異常処理を実行可能である。制御部１ｃは、停電以外の異常を検出した場合に異常処理を実行する。例えば、停電以外の異常とは、ファームウェアの異常である。制御部１ｃは、異常処理において、停電以外の異常を検出して第２の情報１ｄを取得する。第２の情報１ｄは、異常検出時のハードウェアの状態に関する情報である。例えば、第２の情報１ｄは、異常検出時のストレージ制御装置１内の部品が故障しているか否かを示す情報、異常検出時のストレージ制御装置１内の温度を示す情報などである。なお、制御部１ｃは、ストレージ制御装置１が含む記憶装置から第２の情報１ｄを取得してもよい。例えば、記憶装置は、ＦＰＧＡ（Field Programmable Gate Array）が含むメモリである。制御部１ｃは、第２の情報１ｄを取得した後、第１の情報１ａ２と第２の情報１ｄとを第２の記憶部１ｂに書き込む。
【００１６】
制御部１ｃは、停電中断バックアップ処理を実行可能である。制御部１ｃは、停電処理の実行中に停電以外の異常を検出した場合に停電中断バックアップ処理を実行する。制御部１ｃは、停電中断バックアップ処理において、停電処理の実行中に停電以外の異常を検出した場合に停電処理を中断する。制御部１ｃは、第２の情報１ｄを取得する。制御部１ｃは、異常処理に替えてバックアップ対象データ１ａ１のうち停電処理で第２の記憶部１ｂに未書き込みのデータと第２の情報１ｄとを第２の記憶部１ｂに書き込む。
【００１７】
図１の第２の記憶部１ｂは、停電処理を中断した時点でバックアップ対象データ１ａ１の一部が第２の記憶部１ｂの領域１ｂ１に書き込まれている状態の例を示している。制御部１ｃは、停電処理を中断した後、第２の情報１ｄを取得する。制御部１ｃは、異常処理に替えて、バックアップ対象データ１ａ１のうち停電処理で第２の記憶部１ｂに未書き込みのデータと第２の情報１ｄとを第２の記憶部１ｂの領域１ｂ２に書き込む。
【００１８】
第１の実施の形態によれば、ストレージ制御装置１は、バックアップ対象データ１ａ１と第２の情報１ｄとを第２の記憶部１ｂに書き込むため、バックアップ対象データ１ａ１と第２の情報１ｄとの消失を防止することができる。
【００１９】
第１の実施の形態によれば、ストレージ制御装置１は、停電中断バックアップ処理で停電処理を中断した後、バックアップ対象データ１ａ１のうち停電処理で第２の記憶部１ｂに未書き込みのデータと第２の情報１ｄとを第２の記憶部１ｂに書き込む。仮にストレージ制御装置１が停電中断バックアップ処理を実行しない場合、ストレージ制御装置１は、停電処理の実行中に停電以外の異常を検出し、停電処理を中断し、異常処理を実行した後、中断した状態からの停電処理の再開または停電処理を初めからやり直す。このように、仮にストレージ制御装置１が停電中断バックアップ処理を実行しない場合は、ストレージ制御装置１が停電中断バックアップ処理を実行する場合に比べて、停電処理を中断した後の処理量が多い。停電中断バックアップ処理を実行しない場合、ストレージ制御装置１は、処理量が多いため、十分なバッテリ容量を確保することで停電処理を中断した後の処理を実行完了できる。十分なバッテリ容量を確保するためには、バッテリ容量を拡大する。例えば、バッテリ３のバッテリ容量が、拡大される。しかし、バッテリ３のバッテリ容量の拡大は、コストが高くなる。
【００２０】
一方、ストレージ制御装置１が停電中断バックアップ処理を実行する場合は、仮にストレージ制御装置１が停電中断バックアップ処理を実行しない場合と比べて、停電処理を中断した後の処理量が少ない。停電中断バックアップ処理を実行するストレージ制御装置１は、停電処理を中断した後の処理量が少ないため、バッテリ３のバッテリ容量を拡大することなく、停電中断バックアップ処理を実行完了できる。
【００２１】
よって、第１の実施の形態によれば、ストレージ制御装置１は、低コストにデータの消失を防止することができる。
［第２の実施の形態］
図２は、第２の実施の形態のストレージシステムの一例を示す図である。ストレージシステムは、ＣＥ（Controller Enclosure）１００、ＤＥ（Drive Enclosure）２００およびホスト装置３００を有する。ＣＥ１００とＤＥ２００とは、１つの筐体に搭載されたストレージ装置として実現可能である。
【００２２】
ＣＥ１００は、ＣＭ（Controller Module）１１０を有する。ＣＭ１１０とホスト装置３００は、ネットワークを介して接続する。例えば、ＣＭ１１０とホスト装置３００は、ファイバチャネル（ＦＣ：Fibre Channel）などの伝送方式で接続する。ＣＭ１１０は、ホスト装置３００からＤＥ２００へのアクセスを制御する。
【００２３】
ＤＥ２００は、複数の記憶装置を搭載可能なディスクアレイ装置である。ＤＥ２００は、記憶装置としてＨＤＤを搭載する。また、ＤＥ２００は、記憶装置としてＳＳＤを搭載してもよい。
【００２４】
なお、ＣＭ１１０は、第１の実施の形態のストレージ制御装置１の一形態である。ＤＥ２００は、第１の実施の形態のストレージデバイス２の一形態である。
図３は、第２の実施の形態のＣＥのハードウェアの一例を示す図である。ＣＥ１００は、ＣＭ１１０以外にＰＳＵ（Power Supply Unit）１２０およびバッテリ１３０を有する。
【００２５】
ＣＭ１１０は、プロセッサ１１１、ＲＡＭ１１２、ＢＵＤ（Bootup and Utility Device）１１３、ＮＶＲＡＭ（Non-Volatile RAM）１１４、ＤＩ（Device Interface）１１５、ＣＡ（Channel Adapter）１１６、ＦＰＧＡ１１７および電源回路１１８を有する。
【００２６】
プロセッサ１１１は、ＣＭ１１０の情報処理を制御する。プロセッサ１１１は、ＣＰＵ（Central Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）などを含み得る。プロセッサ１１１は、複数のプロセッシング要素を含むマルチプロセッサであってもよい。
【００２７】
ＲＡＭ１１２は、ＣＭ１１０の主記憶装置である。ＲＡＭ１１２は、プロセッサ１１１に実行させるＯＳのプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。ＲＡＭ１１２は、プロセッサ１１１による処理に用いる各種データを記憶する。
【００２８】
ＢＵＤ１１３は、ＰＳＵ１２０からの電力供給停止時にＲＡＭ１１２に格納されているデータの保護に用いられる不揮発性記憶装置である。例えば、ＢＵＤ１１３は、ＳＳＤである。
【００２９】
ＮＶＲＡＭ１１４は、ＣＭ１１０の補助記憶装置である。ＮＶＲＡＭ１１４は、不揮発性記憶装置である。ＮＶＲＡＭ１１４は、ファームウェアのプログラムや各種データなどを記憶する。
【００３０】
ＤＩ１１５は、ＤＥ２００と通信するためのインタフェースである。ＣＡ１１６は、ホスト装置３００と通信するためのインタフェースである。
ＦＰＧＡ１１７は、ＣＭ１１０で停電が発生したか否かを監視する。電源回路１１８は、ＦＰＧＡ１１７の制御の下で、ＣＭ１１０内の各部に対してＰＳＵ１２０からの電力を供給する。また、電源回路１１８は、ＦＰＧＡ１１７からの指示に応じて、ＰＳＵ１２０からの電力供給とバッテリ１３０からの電力供給とを切り替える。
【００３１】
ＰＳＵ１２０は、外部から商用電源の供給を受けて、ＣＭ１１０に電力を供給する。バッテリ１３０は、ＰＳＵ１２０からＣＭ１１０に対する電力供給が停止した時にプロセッサ１１１、ＲＡＭ１１２、ＢＵＤ１１３、ＦＰＧＡ１１７に電力を供給する。
【００３２】
なお、ＲＡＭ１１２は、第１の実施の形態の第１の記憶部１ａの一形態である。ＢＵＤ１１３は、第１の実施の形態の第２の記憶部１ｂの一形態である。
図４は、第２の実施の形態のＣＭの機能の一例を示す図である。ＣＭ１１０は、割込み処理部１４０、停電処理部１５０およびダンプ制御部１６０を有する。
【００３３】
割込み処理部１４０、停電処理部１５０およびダンプ制御部１６０は、プロセッサ１１１が所定のプログラムを実行することによって実現される。
割込み処理部１４０は、ＦＰＧＡ１１７からＮＭＩ（Non Maskable Interrupt）割込みを受信する。また、割込み処理部１４０は、ＮＭＩ割込みの解除などを実行する。
【００３４】
停電処理部１５０は、ＣＭ１１０に停電が発生した場合、ＲＡＭ１１２に格納されているデータのうち、バックアップ対象のデータをＢＵＤ１１３に書き込む。停電処理部１５０は、バックアップ対象のデータをＢＵＤ１１３に書き込む際、バックアップ対象のデータを所定の大きさに分割する。停電処理部１５０は、バックアップ対象のデータを分割したデータブロックをＢＵＤ１１３に書き込む。
【００３５】
ダンプ制御部１６０は、プロセッサ１１１が実行するファームウェアに異常が発生したときにパニック処理を実行する。パニック処理については、後で詳細に説明する。また、ダンプ制御部１６０は、復電したときに復電処理を実行する。復電処理については、後で詳細に説明する。
【００３６】
ＢＵＤ１１３について、詳細に説明する。ＢＵＤ１１３は、バックアップ領域１１３ａおよびダンプ格納領域１１３ｂを有する。バックアップ領域１１３ａは、ＲＡＭ１１２に格納されているデータのバックアップ先である。ダンプ格納領域１１３ｂは、後述するダンプファイルを格納する。
【００３７】
図５は、第２の実施の形態の停電テーブルの一例を示す図である。ＮＶＲＡＭ１１４は、停電テーブル１１４ａの情報を記憶する。停電テーブル１１４ａは、停電フラグ、完了フラグの項目を含む。停電フラグの項目は、停電が発生した（ｔｒｕｅ）、停電が発生していない（ｆａｌｓｅ）の何れかを示す。完了フラグの項目は、ＲＡＭ１１２からバックアップ領域１１３ａへのデータのバックアップが完了した（ｔｒｕｅ）、未完了（ｆａｌｓｅ）の何れかを示す。
【００３８】
図６は、第２の実施の形態の書き込み管理テーブルの一例を示す図である。ＮＶＲＡＭ１１４は、書き込み管理テーブル１１４ｂの情報を記憶する。書き込み管理テーブル１１４ｂは、ＲＡＭアドレス、ＢＵＤアドレスの項目を含む。ＲＡＭアドレスの項目は、ＲＡＭ１１２に格納されているバックアップ対象のデータの読み出し位置を示す。ＣＭ１１０は、ＲＡＭアドレスの項目を参照することで、ＲＡＭ１１２に格納されているバックアップ対象のデータのうち、どのデータまでバックアップ領域１１３ａに書き込んだかを特定することができる。言い換えると、ＣＭ１１０は、ＲＡＭアドレスの項目を参照することで、ＲＡＭ１１２に格納されているバックアップ対象のデータのうち、バックアップ領域１１３ａに未書き込みのデータを特定できる。
【００３９】
ＢＵＤアドレスの項目は、ＲＡＭ１１２から読み出したデータをバックアップ領域１１３ａに書き込む位置を示す。
図７は、第２の実施の形態のダンプ状況テーブルの一例を示す図である。ＮＶＲＡＭ１１４は、ダンプ状況テーブル１１４ｃの情報を記憶する。ダンプ状況テーブル１１４ｃは、状況の項目を含む。状況の項目は、ダンプファイルを作成してからダンプ格納領域１１３ｂにダンプファイルを格納するまでの状況を示す。状況の項目は、作成中、書き込み中、完了の何れかを示す。
【００４０】
図８は、第２の実施の形態のソフトウェア情報の一例を示す図である。ＲＡＭ１１２は、ソフトウェア情報１１２ａを記憶する。ソフトウェア情報１１２ａは、システム情報、固定割当て情報、動的割当て情報を含む。
【００４１】
システム情報は、ＯＳに関する情報を含む。固定割当て情報は、ＣＭ１１０の構成情報、ドライバ情報、ＲＡＩＤに関する情報を含む。動的割当て情報は、ファームウェアの管理情報を含む。ソフトウェア情報１１２ａは、システム情報など以外に他の情報を含んでもよい。例えば、ソフトウェア情報１１２ａは、ログ情報を含んでもよい。
【００４２】
なお、ソフトウェア情報１１２ａは、第１の実施の形態の第１の情報１ａ２の一形態である。
図９は、第２の実施の形態のハードウェア情報の一例を示す図である。ＦＰＧＡ１１７は、ハードウェア情報１１７ａを記憶する。ハードウェア情報１１７ａは、電圧アラーム情報、接続部品アラーム情報、温度情報などを含む。電圧アラーム情報は、ファームウェアに異常が発生したときのＣＭ１１０内の電圧が所定の電圧を超えているか否かを示す。接続部品アラーム情報は、ファームウェアに異常が発生したときのＣＭ１１０内の部品が故障しているか否かを示す。温度情報は、ファームウェアに異常が発生したときのＣＭ１１０内の温度を示す。
【００４３】
なお、ハードウェア情報１１７ａは、第１の実施の形態の第２の情報１ｄの一形態である。
図１０は、第２の実施の形態の停電処理のフローチャートの一例を示す図である。ＣＭ１１０は、停電が発生したときに停電処理を実行する。また、バッテリ１３０は、停電が発生したとき、プロセッサ１１１、ＲＡＭ１１２、ＢＵＤ１１３、ＦＰＧＡ１１７に電力を供給する。
【００４４】
（Ｓ１１）割込み処理部１４０は、ＦＰＧＡ１１７からＮＭＩ割込みを受信する。
（Ｓ１２）割込み処理部１４０は、割込み解除をＦＰＧＡ１１７に通知する。
（Ｓ１３）割込み処理部１４０は、ＮＭＩ割込みを解除する。
【００４５】
（Ｓ１４）停電処理部１５０は、停電テーブル１１４ａの停電フラグの項目にｔｒｕｅを設定する。
（Ｓ１５）停電処理部１５０は、書き込み管理テーブル１１４ｂを初期化する。すなわち、停電処理部１５０は、書き込み管理テーブル１１４ｂのＲＡＭアドレス、ＢＵＤアドレスの項目に０を登録する。
【００４６】
（Ｓ１６）停電処理部１５０は、バックアップ領域１１３ａに未書き込みであるバックアップ対象のデータブロックを格納するＲＡＭ１１２のアドレスを、書き込み管理テーブル１１４ｂのＲＡＭアドレスの項目に登録する。なお、停電処理部１５０は、ＲＡＭ１１２に格納されているバックアップ対象のデータの先頭アドレスから順にバックアップ対象のデータブロックをバックアップ領域１１３ａに格納する。そのため、停電処理部１５０は、バックアップ領域１１３ａへの初回の書き込みの場合、書き込み管理テーブル１１４ｂのＲＡＭアドレスの項目にバックアップ対象のデータの先頭アドレスを登録する。
【００４７】
停電処理部１５０は、バックアップ対象のデータブロックの格納先であるバックアップ領域１１３ａのアドレスを、書き込み管理テーブル１１４ｂのＢＵＤアドレスの項目に登録する。
【００４８】
なお、ソフトウェア情報１１２ａは、バックアップ対象のデータブロックに含まれる。
（Ｓ１７）停電処理部１５０は、書き込み管理テーブル１１４ｂのＲＡＭアドレスの項目を参照し、バックアップ対象のデータブロックをＲＡＭ１１２から読み出す。停電処理部１５０は、書き込み管理テーブル１１４ｂのＢＵＤアドレスの項目が示すアドレスに、バックアップ対象のデータブロックを書き込む。
【００４９】
（Ｓ１８）停電処理部１５０は、ＲＡＭ１１２に格納されているバックアップ対象の全てのデータブロックをバックアップ領域１１３ａに書き込み済みであるか否かを判定する。全てのデータブロックをバックアップ領域１１３ａに書き込み済みの場合、停電処理部１５０は、ステップＳ１９に進む。全てのデータブロックをバックアップ領域１１３ａに書き込み済みでない場合、停電処理部１５０は、ステップＳ１６に進む。
【００５０】
（Ｓ１９）停電処理部１５０は、書き込み管理テーブル１１４ｂのＲＡＭアドレスとＢＵＤアドレスの項目に０ｘＦＦＦＦＦＦＦＦを登録する。
（Ｓ２０）停電処理部１５０は、停電テーブル１１４ａの完了フラグの項目にｔｒｕｅを設定する。
【００５１】
ＣＭ１１０は、バッテリ１３０からプロセッサ１１１、ＲＡＭ１１２、ＢＵＤ１１３、ＦＰＧＡ１１７への電力の供給を中止する。
このように、停電処理部１５０は、停電テーブル１１４ａの停電フラグの項目にｔｒｕｅを設定することで、停電処理を実行していたことを示すことができる。
【００５２】
図１１は、第２の実施の形態のパニック処理のフローチャートの一例を示す図（その１）である。図１２は、第２の実施の形態のパニック処理のフローチャートの一例を示す図（その２）である。図１３は、第２の実施の形態のパニック処理のフローチャートの一例を示す図（その３）である。ＣＭ１１０は、ファームウェアの異常を検出したときにパニック処理を実行する。なお、ファームウェアの異常は、割込み処理部１４０が検出してもよい。
【００５３】
（Ｓ２１）割込み処理部１４０は、ＮＭＩ割込みを発生する。
（Ｓ２２）割込み処理部１４０は、割込みを禁止する。
（Ｓ２３）ダンプ制御部１６０は、ダンプ状況テーブル１１４ｃの状況の項目に作成中を登録する。
【００５４】
（Ｓ２４）ダンプ制御部１６０は、ＦＰＧＡ１１７からハードウェア情報１１７ａを取得する。
（Ｓ２５）ダンプ制御部１６０は、ＲＡＭ１１２に格納されているバックアップ対象のデータの後ろにハードウェア情報１１７ａを格納する。なお、ソフトウェア情報１１２ａは、バックアップ対象のデータに含まれる。
【００５５】
（Ｓ２６）ダンプ制御部１６０は、ＦＰＧＡ１１７が停電を検出していないか否かを判定する。ＦＰＧＡ１１７が停電を検出していない場合、ダンプ制御部１６０は、ステップＳ２７に進む。ＦＰＧＡ１１７が停電を検出している場合、ダンプ制御部１６０は、ステップＳ４１に進む。
【００５６】
また、ＦＰＧＡ１１７が停電を検出している場合、バッテリ１３０は、プロセッサ１１１、ＲＡＭ１１２、ＢＵＤ１１３、ＦＰＧＡ１１７に電力を供給する。以下の処理でＦＰＧＡ１１７が停電を検出している場合、バッテリ１３０は、プロセッサ１１１、ＲＡＭ１１２、ＢＵＤ１１３、ＦＰＧＡ１１７に電力を供給する。
【００５７】
（Ｓ２７）ダンプ制御部１６０は、停電テーブル１１４ａの停電フラグの項目を参照し、ｆａｌｓｅであるか否かを判定する。ｆａｌｓｅの場合、ダンプ制御部１６０は、ステップＳ２８に進む。ｔｒｕｅの場合、ダンプ制御部１６０は、ステップＳ４１に進む。
【００５８】
（Ｓ２８）ダンプ制御部１６０は、ＲＡＭ１１２からソフトウェア情報１１２ａを取得する。ダンプ制御部１６０は、ステップＳ３１に進む。
（Ｓ３１）ダンプ制御部１６０は、ＦＰＧＡ１１７が停電を検出していないか否かを判定する。ＦＰＧＡ１１７が停電を検出していない場合、ダンプ制御部１６０は、ステップＳ３２に進む。ＦＰＧＡ１１７が停電を検出している場合、ダンプ制御部１６０は、ステップＳ４１に進む。
【００５９】
（Ｓ３２）ダンプ制御部１６０は、ソフトウェア情報１１２ａとハードウェア情報１１７ａとに基づいてダンプファイルを作成する。
（Ｓ３３）ダンプ制御部１６０は、ＦＰＧＡ１１７が停電を検出していないか否かを判定する。ＦＰＧＡ１１７が停電を検出していない場合、ダンプ制御部１６０は、ステップＳ３４に進む。ＦＰＧＡ１１７が停電を検出している場合、ダンプ制御部１６０は、ステップＳ４１に進む。
【００６０】
（Ｓ３４）ダンプ制御部１６０は、ダンプ状況テーブル１１４ｃの状況の項目に書き込み中を登録する。
（Ｓ３５）ダンプ制御部１６０は、ダンプファイルを所定の大きさのブロック単位に分割した１つのブロックを選択する。
【００６１】
（Ｓ３６）ダンプ制御部１６０は、選択したブロックをダンプ格納領域１１３ｂに書き込む。
（Ｓ３７）ダンプ制御部１６０は、ＦＰＧＡ１１７が停電を検出していないか否かを判定する。ＦＰＧＡ１１７が停電を検出していない場合、ダンプ制御部１６０は、ステップＳ３８に進む。ＦＰＧＡ１１７が停電を検出している場合、ダンプ制御部１６０は、ステップＳ４１に進む。
【００６２】
（Ｓ３８）ダンプ制御部１６０は、ダンプファイルの全てのブロックをダンプ格納領域１１３ｂに書き込み済みであるか否かを判定する。ダンプファイルの全てのブロックをダンプ格納領域１１３ｂに書き込み済みの場合、ダンプ制御部１６０は、ステップＳ３９に進む。ダンプファイルの全てのブロックをダンプ格納領域１１３ｂに書き込み済みでない場合、ダンプ制御部１６０は、ステップＳ３５に進む。
【００６３】
（Ｓ３９）ダンプ制御部１６０は、ダンプ状況テーブル１１４ｃの状況の項目に完了を登録する。ダンプ制御部１６０は、パニック処理を終了する。
（Ｓ４１）ダンプ制御部１６０は、停電テーブル１１４ａの停電フラグの項目を参照し、ｔｒｕｅであるか否かを判定する。ｔｒｕｅの場合、ダンプ制御部１６０は、停電処理が途中で中断し、ＲＡＭ１１２に格納されているバックアップ対象のデータの一部がバックアップ領域１１３ａに未書き込みの状態であることを特定する。ダンプ制御部１６０は、ステップＳ４２に進む。ｆａｌｓｅの場合、ダンプ制御部１６０は、ステップＳ４４に進む。
【００６４】
（Ｓ４２）ダンプ制御部１６０は、書き込み管理テーブル１１４ｂのＲＡＭアドレス、ＢＵＤアドレスの項目を参照し、０ｘＦＦＦＦＦＦＦＦが登録されているか否かを判定する。０ｘＦＦＦＦＦＦＦＦが登録されていない場合、すなわち、停電処理が途中まで実行されている場合、ダンプ制御部１６０は、ステップＳ４３に進む。０ｘＦＦＦＦＦＦＦＦが登録されている場合、ダンプ制御部１６０は、ステップＳ４８に進む。
【００６５】
（Ｓ４３）ダンプ制御部１６０は、書き込み管理テーブル１１４ｂを参照し、ＲＡＭアドレスとＢＵＤアドレスを取得する。ダンプ制御部１６０は、ステップＳ４６に進む。
（Ｓ４４）ダンプ制御部１６０は、書き込み管理テーブル１１４ｂを初期化する。
【００６６】
（Ｓ４５）ダンプ制御部１６０は、ＲＡＭ１１２の先頭アドレスを書き込み管理テーブル１１４ｂのＲＡＭアドレスの項目に登録する。ダンプ制御部１６０は、バックアップ領域１１３ａの先頭アドレスを書き込み管理テーブル１１４ｂのＢＵＤアドレスの項目に登録する。
【００６７】
（Ｓ４６）ダンプ制御部１６０は、書き込み管理テーブル１１４ｂのＲＡＭアドレスの項目とＢＵＤアドレスの項目に登録されている情報を基にバックアップ領域１１３ａへのデータ書き込みを実行する。ステップＳ４６について、詳細に説明する。
【００６８】
ステップＳ４３を実行している場合、ダンプ制御部１６０は、書き込み管理テーブル１１４ｂのＲＡＭアドレスを参照し、バックアップ領域１１３ａに未書き込みのデータブロックを特定する。また、ダンプ制御部１６０は、未書き込みのデータブロックの中に、ＲＡＭ１１２に格納されているハードウェア情報１１７ａを含める。ダンプ制御部１６０は、書き込み管理テーブル１１４ｂのＢＵＤアドレスの項目に登録されているアドレスの次のアドレスに未書き込みのデータブロックを書き込む。これにより、バックアップ領域１１３ａは、ソフトウェア情報１１２ａを含むバックアップ対象の全てのデータブロックと、ハードウェア情報１１７ａとを記憶できる。
【００６９】
ステップＳ４５を実行している場合、ダンプ制御部１６０は、ＲＡＭ１１２に格納されている全てのデータをバックアップ領域１１３ａに格納する。これにより、バックアップ領域１１３ａは、ソフトウェア情報１１２ａとハードウェア情報１１７ａとを記憶する。
【００７０】
（Ｓ４７）ダンプ制御部１６０は、書き込み管理テーブル１１４ｂのＲＡＭアドレスとＢＵＤアドレスの項目に０ｘＦＦＦＦＦＦＦＦを登録する。
（Ｓ４８）ダンプ制御部１６０は、停電テーブル１１４ａの完了フラグの項目にｔｒｕｅを設定する。ダンプ制御部１６０は、パニック処理を終了する。
【００７１】
ＣＭ１１０は、ステップＳ４８の後、バッテリ１３０からプロセッサ１１１、ＲＡＭ１１２、ＢＵＤ１１３、ＦＰＧＡ１１７への電力の供給を中止する。
このように、ダンプ制御部１６０は、ＦＰＧＡ１１７が停電を検出しているか否かを監視し、ＦＰＧＡ１１７が停電を検出したときにＣＭ１１０で停電が発生したと判断し、ステップＳ４１に進む。ダンプ制御部１６０は、ＣＭ１１０で停電が発生したと判断し、すぐにステップＳ４１を実行することで、バッテリ１３０が有する電力量の無駄遣いを防止できる。
【００７２】
図１４は、第２の実施の形態の停電処理中にファームウェアの異常が発生した場合の具体例を示す図（その１）である。ＲＡＭ１１２は、システム情報、固定割当て情報、動的割当て情報、ユーザデータを記憶している。具体例では、システム情報、固定割当て情報、動的割当て情報、ユーザデータをバックアップ対象のデータとする。
【００７３】
図１４は、ＣＭ１１０で停電が発生している状態である。停電処理部１５０は、停電が発生したことに伴い、停電テーブル１１４ａの停電フラグの項目にｔｒｕｅを設定する。
図１４は、ＲＡＭ１１２に格納されているシステム情報と固定割当て情報の一部が停電処理部１５０によりバックアップ領域１１３ａの領域１１３ａ１に格納された状態を示す。また、図１４の書き込み管理テーブル１１４ｂは、ＲＡＭ１１２のアドレス（０ｘ００００８０００）に格納されているデータがＢＵＤ１１３のアドレス（０ｘ０１００８０００）に書き込まれたことを示している。
【００７４】
図１５は、第２の実施の形態の停電処理中にファームウェアの異常が発生した場合の具体例を示す図（その２）である。図１５は、ファームウェアに異常が発生した状態を示す。停電処理部１５０は、ファームウェアに異常が発生したことに伴い、停電処理を中断する。
【００７５】
ダンプ制御部１６０は、ＦＰＧＡ１１７からハードウェア情報１１７ａを取得する。ダンプ制御部１６０は、バックアップ対象のデータの後ろにハードウェア情報１１７ａを格納する。
【００７６】
ダンプ制御部１６０は、書き込み管理テーブル１１４ｂのＲＡＭアドレスの項目を参照し、ＲＡＭ１１２のアドレス（０ｘ００００８０００）以降に格納されているデータがバックアップ領域１１３ａに未書き込みのデータであることを特定する。すなわち、未書き込みのデータは、固定割当て情報の一部、動的割当て情報、ユーザデータである。ダンプ制御部１６０は、ハードウェア情報１１７ａを未書き込みのデータに含める。ダンプ制御部１６０は、バックアップ領域１１３ａに未書き込みのデータをバックアップ領域１１３ａの領域１１３ａ２に書き込む。
【００７７】
図１６は、第２の実施の形態の停電処理中にファームウェアの異常が発生した場合の具体例を示す図（その３）である。図１６は、未書き込みのデータがバックアップ領域１１３ａの領域１１３ａ２に格納された状態を示す。
【００７８】
このように、ＣＭ１１０は、未書き込みデータを領域１１３ａ２に書き込むため、データの消失を防止することができる。
第２の実施の形態によれば、ＣＭ１１０は、停電処理を中断した後、未書き込みのデータをバックアップ領域１１３ａに書き込む。仮にＣＭ１１０が第２の実施の形態の処理を実行しない場合、ＣＭ１１０は、停電処理の実行中にファームウェアの異常を検出する。ＣＭ１１０は、検出後、停電処理を中断し、ダンプファイル４００をダンプ格納領域１１３ｂに書き込み、中断した状態からの停電処理の再開または停電処理を初めからやり直す。仮にＣＭ１１０が第２の実施の形態の処理を実行しない場合、ＣＭ１１０は、処理量が多いため、大容量のバッテリから電力の供給を受ける。
【００７９】
ＣＭ１１０が第２の実施の形態を実行する場合は、仮にＣＭ１１０が第２の実施の形態を実行しない場合と比べて、停電処理を中断した後の処理量が少ない。第２の実施の形態を実行するＣＭ１１０は、処理量が少ないため、大容量のバッテリから電力の供給を受けなくてよい。よって、バッテリ１３０は、大容量でなくてよく、低コストのバッテリでよい。よって、ＣＭ１１０は、低コストにデータの消失を防止することができる。
【００８０】
なお、ＣＭ１１０は、ソフトウェア情報１１２ａ（システム情報、固定割当て情報、動的割当て情報）とハードウェア情報１１７ａとがバックアップ領域１１３ａに格納されているため、復電後にダンプファイルを作成することができる。
【００８１】
図１７は、第２の実施の形態のパニック処理中に停電が発生した場合の具体例を示す図（その１）である。ＲＡＭ１１２は、システム情報、固定割当て情報、動的割当て情報、ユーザデータを記憶している。
【００８２】
図１７は、ファームウェアに異常が発生した状態である。ダンプ制御部１６０は、ＦＰＧＡ１１７からハードウェア情報１１７ａを取得する。ダンプ制御部１６０は、バックアップ対象のデータの後ろにハードウェア情報１１７ａを格納する。
【００８３】
ダンプ制御部１６０は、ソフトウェア情報１１２ａ（システム情報、固定割当て情報、動的割当て情報）とハードウェア情報１１７ａとに基づいてダンプファイル４００を作成する。ダンプ制御部１６０は、ダンプファイル４００をブロック単位に分割したブロックをダンプ格納領域１１３ｂに書き込む。
【００８４】
図１８は、第２の実施の形態のパニック処理中に停電が発生した場合の具体例を示す図（その２）である。図１８は、停電が発生した状態である。ダンプ制御部１６０は、停電が発生したことに伴い、ダンプファイル４００をダンプ格納領域１１３ｂに書き込むことを中断する。なお、ダンプファイル４００をダンプ格納領域１１３ｂに書き込む処理は、第１の実施の形態の異常処理の一形態である。
【００８５】
ダンプ制御部１６０は、ＲＡＭ１１２に格納されている全てのデータをバックアップ領域１１３ａに格納する。
このように、ＣＭ１１０は、ＲＡＭ１１２に格納されている全てのデータをバックアップ領域１１３ａに格納するため、データの消失を防止することができる。また、ＣＭ１１０は、ＲＡＭ１１２に格納されている全てのデータをバックアップ領域１１３ａに格納するため、ソフトウェア情報１１２ａ（システム情報、固定割当て情報、動的割当て情報）とハードウェア情報１１７ａをバックアップ領域１１３ａに格納できる。そのため、ＣＭ１１０は、ＣＭ１１０で停電が発生した場合、ダンプファイル４００をＢＵＤ１１３に書き込む処理を継続しなくて済む。バッテリ１３０は、ＲＡＭ１１２に格納されている全てのデータをバックアップ領域１１３ａに格納する処理を実行できる電力量を有していればよく、大容量のバッテリでなくてよい。すなわち、バッテリ１３０は、低コストのバッテリでよい。よって、ＣＭ１１０は、低コストにデータの消失を防止することができる。
【００８６】
なお、ＣＭ１１０は、ソフトウェア情報１１２ａ（システム情報、固定割当て情報、動的割当て情報）とハードウェア情報１１７ａとがバックアップ領域１１３ａに格納されているため、復電後にダンプファイルを作成することができる。
【００８７】
図１９は、第２の実施の形態の復電処理のフローチャートの一例を示す図である。ＣＭ１１０は、停電後、ＰＳＵ１２０からの電力供給を受けて復電を検出したときに復電処理を実行する。
【００８８】
（Ｓ５１）ダンプ制御部１６０は、停電テーブル１１４ａの完了フラグの項目を参照し、ｔｒｕｅであるか否かを判定する。ｔｒｕｅの場合、ダンプ制御部１６０は、ステップＳ５２に進む。ｆａｌｓｅの場合、ダンプ制御部１６０は、復電処理を終了する。
【００８９】
（Ｓ５２）ダンプ制御部１６０は、バックアップ領域１１３ａに格納されている全てのデータをＲＡＭ１１２に格納する。これにより、ＲＡＭ１１２は、ソフトウェア情報１１２ａとハードウェア情報１１７ａとを含むデータを記憶する。
【００９０】
（Ｓ５３）ダンプ制御部１６０は、ダンプ状況テーブル１１４ｃの状況の項目を参照し、作成中または書き込み中であるか否かを判定する。作成中または書き込み中の場合、ダンプ制御部１６０は、ステップＳ５４に進む。作成中または書き込み中以外の場合、すなわち、完了の場合、ダンプ制御部１６０は、復電処理を終了する。
【００９１】
（Ｓ５４）ダンプ制御部１６０は、ＲＡＭ１１２からソフトウェア情報１１２ａとハードウェア情報１１７ａとを取得する。
（Ｓ５５）ダンプ制御部１６０は、ソフトウェア情報１１２ａとハードウェア情報１１７ａとに基づいてダンプファイルを作成する。
【００９２】
（Ｓ５６）ダンプ制御部１６０は、ダンプファイルを所定の大きさのブロック単位に分割したブロックをダンプ格納領域１１３ｂに書き込む。
（Ｓ５７）ダンプ制御部１６０は、ダンプファイルの全てのブロックをダンプ格納領域１１３ｂに書き込み済みであるか否かを判定する。ダンプファイルの全てのブロックをダンプ格納領域１１３ｂに書き込み済みの場合、ダンプ制御部１６０は、復電処理を終了する。ダンプファイルの全てのブロックをダンプ格納領域１１３ｂに書き込み済みでない場合、ダンプ制御部１６０は、ステップＳ５６に進む。
【００９３】
これにより、ダンプ制御部１６０は、ダンプ格納領域１１３ｂにダンプファイルを格納できる。ＣＭ１１０は、ダンプファイルを用いて、ファームウェアの異常原因を解析できる。
【００９４】
なお、ダンプ制御部１６０は、ステップＳ５６において、ダンプ格納領域１１３ｂにダンプファイルの一部を既に書き込み済みの場合（ダンプファイルの書き込みを途中で中断した場合）、未書き込みのブロックのみをダンプ格納領域１１３ｂに書き込んでもよい。
【００９５】
また、第１の実施の形態の情報処理は、ストレージ制御装置１に用いられるプロセッサに、プログラムを実行させることで実現できる。第２の実施の形態の情報処理は、プロセッサ１１１にプログラムを実行させることで実現できる。プログラムは、コンピュータに読み取り可能な記録媒体に記録できる。
【００９６】
例えば、プログラムを記録した記録媒体は、プログラムを流通させることで配布することができる。また、割込み処理部１４０、停電処理部１５０およびダンプ制御部１６０に相当する機能を実現するプログラムは、別個のプログラムとして各プログラムを別個に配布することができる。割込み処理部１４０、停電処理部１５０およびダンプ制御部１６０の機能は、別個のコンピュータにより実現されてもよい。
【００９７】
以上の各実施の形態に関し、さらに以下の付記を開示する。
（付記１）  ストレージデバイスを制御対象とするストレージ制御装置であって、
前記ストレージデバイスの制御に関する第１の情報を含むバックアップ対象データを記憶する揮発性の第１の記憶部と、
不揮発性の第２の記憶部と、
停電を検出して前記バックアップ対象データを前記第２の記憶部に書き込む停電処理と、前記停電以外の異常を検出して異常検出時のハードウェアの状態に関する第２の情報を取得して前記第１の情報と前記第２の情報とを前記第２の記憶部に書き込む異常処理と、前記停電処理の実行中に前記異常を検出した場合に前記停電処理を中断して前記第２の情報を取得して前記異常処理に替えて前記バックアップ対象データのうち前記停電処理で前記第２の記憶部に未書き込みのデータと前記第２の情報とを前記第２の記憶部に書き込む停電中断バックアップ処理と、を実行する制御部と、
を含むストレージ制御装置。
【００９８】
（付記２）  前記制御部は、前記異常処理で前記第２の情報を前記第１の記憶部に格納した後に前記第１の情報と前記第２の情報とを前記第２の記憶部に書き込み、前記異常処理の実行中に前記停電を検出した場合に前記異常処理を中断して前記停電処理に替えて前記第１の記憶部に格納されている全てのデータを前記第２の記憶部に書き込む異常中断バックアップ処理を実行する、
付記１に記載のストレージ制御装置。
【００９９】
（付記３）  前記ストレージ制御装置は、さらに、前記停電が発生したか否かを監視する監視部を含み、
前記制御部は、前記異常処理を実行中に前記監視部が前記停電を検出したか否かを監視し、前記監視部が前記停電を検出したときに前記停電を検出し、前記異常中断バックアップ処理で前記異常処理を中断する、
付記２に記載のストレージ制御装置。
【０１００】
（付記４）  前記ストレージ制御装置は、さらに、前記第２の情報を記憶する第３の記憶部を含み、
前記制御部は、前記異常処理または前記停電中断バックアップ処理で前記第３の記憶部から前記第２の情報を取得する、
付記１乃至３の何れか１つに記載のストレージ制御装置。
【０１０１】
（付記５）  前記制御部は、前記停電処理で前記バックアップ対象データの前記第２の記憶部への書き込み状況を示す書き込み情報を作成し、前記停電中断バックアップ処理で前記書き込み情報に基づいて前記バックアップ対象データのうち前記停電処理で前記第２の記憶部に未書き込みのデータを特定する、
付記１乃至４の何れか１つに記載のストレージ制御装置。
【０１０２】
（付記６）  前記制御部は、前記ストレージ制御装置で復電したことを検出した場合、前記第２の記憶部から前記第１の情報と前記第２の情報とを取得し、前記第１の情報と前記第２の情報とに基づいて前記異常を解析する解析情報を作成する、
付記１乃至５の何れか１つに記載のストレージ制御装置。
【０１０３】
（付記７）  ストレージデバイスを制御対象とするストレージ制御装置に、
停電を検出して揮発性の第１の記憶部が記憶する前記ストレージデバイスの制御に関する第１の情報を含むバックアップ対象データを不揮発性の第２の記憶部に書き込む停電処理と、前記停電以外の異常を検出して異常検出時のハードウェアの状態に関する第２の情報を取得して前記第１の情報と前記第２の情報とを前記第２の記憶部に書き込む異常処理と、前記停電処理の実行中に前記異常を検出した場合に前記停電処理を中断して前記第２の情報を取得して前記異常処理に替えて前記バックアップ対象データのうち前記停電処理で前記第２の記憶部に未書き込みのデータと前記第２の情報とを前記第２の記憶部に書き込む停電中断バックアップ処理と、を実行する、
処理を実行させるストレージ制御プログラム。
【０１０４】
（付記８）  ストレージデバイスを制御対象とするストレージ制御装置が、
停電を検出して揮発性の第１の記憶部が記憶する前記ストレージデバイスの制御に関する第１の情報を含むバックアップ対象データを不揮発性の第２の記憶部に書き込む停電処理と、前記停電以外の異常を検出して異常検出時のハードウェアの状態に関する第２の情報を取得して前記第１の情報と前記第２の情報とを前記第２の記憶部に書き込む異常処理と、前記停電処理の実行中に前記異常を検出した場合に前記停電処理を中断して前記第２の情報を取得して前記異常処理に替えて前記バックアップ対象データのうち前記停電処理で前記第２の記憶部に未書き込みのデータと前記第２の情報とを前記第２の記憶部に書き込む停電中断バックアップ処理と、を実行する、
ストレージ制御方法。
【符号の説明】
【０１０５】
１  ストレージ制御装置
１ａ  第１の記憶部
１ａ１  バックアップ対象データ
１ａ２  第１の情報
１ｂ  第２の記憶部
１ｂ１，１ｂ２  領域
１ｃ  制御部
１ｄ  第２の情報
２  ストレージデバイス
３  バッテリ
【図１】
2018128939.tif 000003
【図２】
2018128939.tif 000004
【図３】
2018128939.tif 000005
【図４】
2018128939.tif 000006
【図５】
2018128939.tif 000007
【図６】
2018128939.tif 000008
【図７】
2018128939.tif 000009
【図８】
2018128939.tif 000010
【図９】
2018128939.tif 000011
【図１０】
2018128939.tif 000012
【図１１】
2018128939.tif 000013
【図１２】
2018128939.tif 000014
【図１３】
2018128939.tif 000015
【図１４】
2018128939.tif 000016
【図１５】
2018128939.tif 000017
【図１６】
2018128939.tif 000018
【図１７】
2018128939.tif 000019
【図１８】
2018128939.tif 000020
【図１９】
2018128939.tif 000021