(57)【要約】【課題】  補助電源装置がバックアップ処理に必要な充電量まで満たされていない場合であっても、書き込み対象のデータの保全性を確保しつつ、性能低下をできるだけ防ぐことができる制御装置などを提供する。【解決手段】  本発明の制御装置は、補助電源装置が所定の充電量を満たしていない場合、不揮発メモリへ上位装置からのデータを転送することを指示する転送指示を出力するキャッシュ制御手段と、転送指示に基づいて、データをキャッシュメモリへ書き込むキャッシュ書き込み処理、または、データを転送する転送処理を実行する揮発メモリ制御手段と、転送処理によって転送されたデータを不揮発メモリに書き込む不揮発メモリ制御手段とを有し、揮発メモリ制御手段は、キャッシュ書き込み処理、または、不揮発メモリへの書き込みが完了した後に、上位装置への処理完了通知を出力する。【選択図】      図１
2015191414.tif 000002
【特許請求の範囲】
【請求項１】
補助電源装置の充電状態情報を取得し、前記充電状態情報に基づいて、前記補助電源装置が所定の充電量を満たすかどうかを判断し、前記補助電源装置が所定の充電量を満たしていない場合、不揮発メモリへ上位装置からのデータを転送することを指示する転送指示を出力するキャッシュ制御手段と、
前記転送指示に基づいて、前記データをキャッシュメモリへ書き込むキャッシュ書き込み処理、または、前記データを転送する転送処理を実行する揮発メモリ制御手段と、
前記転送処理によって転送された前記データを前記不揮発メモリに書き込む不揮発メモリ制御手段とを備え、
前記揮発メモリ制御手段は、前記キャッシュ書き込み処理、または、前記不揮発メモリへの書き込みが完了した後に、前記上位装置への処理完了通知を出力する
制御装置。
【請求項２】
前記揮発メモリ制御手段は、前記転送処理を実行する場合に、前記転送処理の実行前または後に、さらに前記キャッシュ書き込み処理を実行する
請求項１記載の制御装置。
【請求項３】
前記所定の充電量は、前記キャッシュメモリに格納された前記データのうち、前記不揮発メモリ以外の不揮発性記憶装置に格納されていない前記データを、前記不揮発メモリへコピーするバックアップ処理に必要な充電量である
請求項１または２記載の制御装置。
【請求項４】
請求項１乃至３のいずれか１項に記載の制御装置を構成する複数の制御装置を含み、
前記複数の制御装置の各揮発メモリ制御手段は、
他の前記制御装置に含まれる前記揮発メモリ制御手段に対して、前記データを転送し、
他の前記制御装置に含まれる前記揮発メモリ制御手段から転送された前記データを、前記上位装置からのデータとして、前記転送指示に基づいて、前記キャッシュ書き込み処理、または、前記転送処理を実行し、
さらに、前記各揮発メモリ制御手段は、前記処理完了通知を出力する際に、他の前記制御手段に含まれる前記揮発メモリ制御手段が前記データの格納を完了することをも待ち合わせる
第１のディスクアレイ装置。
【請求項５】
請求項４記載の第１のディスクアレイ装置に、前記各制御装置に１対１対応する、前記キャッシュメモリと、前記不揮発メモリと、前記不揮発メモリ以外の不揮発記憶装置であるディスク装置とをそれぞれ有し、
さらに、前記各制御装置において、対応する前記ディスク装置に対するデータの読み出し、および書き込みを行うディスクインタフェース手段をそれぞれ有し、
前記各揮発メモリ制御手段は、さらに、対応する前記ディスク装置に対する前記データの読み出し、および書き込みを、対応する前記ディスクインタフェース手段を介して行う
請求項４記載の第１のディスクアレイ装置。
【請求項６】
請求項１乃至３のいずれか１項に記載の制御装置と、前記キャッシュメモリと、前記不揮発メモリと、前記不揮発メモリ以外の不揮発記憶装置であるディスク装置とを有し、
さらに、前記制御装置において、前記ディスク装置に対するデータの読み出し、および書き込みを行うディスクインタフェース手段を有し、
前記揮発メモリ制御手段は、前記ディスク装置に対する前記データの読み出し、および書き込みを、前記ディスクインタフェース手段を介して行う
第２のディスクアレイ装置。
【請求項７】
情報処理装置を用いて、
補助電源装置の充電状態情報を取得し、
前記充電状態情報に基づいて、前記補助電源装置が所定の充電量を満たすかどうかを判断し、
前記補助電源装置が所定の充電量を満たしていない場合は、
上位装置から受信したデータの書き込み要求の対象である書き込み対象データを不揮発メモリへ書き込む不揮発メモリ書き込み処理を実行し、
前記補助電源装置が所定の充電量を満たしている場合は、
前記書き込み対象データをキャッシュメモリへ書き込むキャッシュ書き込み処理を実行し、
前記不揮発メモリ書き込み処理、または、前記キャッシュ書き込み処理が完了した後に、前記書き込み要求の処理が完了したことを通知する処理完了通知を、前記上位装置に対して送信する
制御方法。
【請求項８】
前記補助電源装置が所定の充電量を満たしていない場合に、前記不揮発メモリ書き込み処理の前または後に、さらに前記キャッシュ書き込み処理を実行する
請求項７記載の制御方法。
【請求項９】
補助電源装置の充電状態情報を取得し、前記充電状態情報に基づいて、前記補助電源装置が所定の充電量を満たすかどうかを判断する判断処理と、
前記補助電源装置が所定の充電量を満たしていない場合に、上位装置から受信したデータの書き込み要求の対象である書き込み対象データを不揮発メモリへ書き込む不揮発メモリ書き込み処理と、
前記補助電源装置が所定の充電量を満たしている場合に、前記書き込み対象データをキャッシュメモリへ書き込むキャッシュ書き込み処理と、
前記不揮発メモリ書き込み処理、または、前記キャッシュ書き込み処理が完了した後に、前記書き込み要求の処理が完了したことを通知する処理完了通知を、前記上位装置に対して送信する通知処理と
をコンピュータに実行させるコンピュータ・プログラム。
【請求項１０】
前記不揮発メモリ書き込み処理において、前記不揮発メモリ書き込み処理の前または後に、さらに前記キャッシュ書き込み処理を実行する
請求項９記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置におけるキャッシュ制御技術に関する。
【背景技術】
【０００２】
一般に、大容量で比較的低速なハードディスクなどから構成されるディスクアレイ装置などの記憶装置は、高速アクセスが可能なキャッシュメモリにより、アクセス性能を向上させている。すなわち、そのような記憶装置は、上位装置から受信した入出力要求に応じて、入出力対象のデータを一時的に高速なキャッシュメモリに格納することにより、低速なハードディスクなどへの直接的な入出力に比べてアクセス性能を向上させることができる。このキャッシュメモリは、通常、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、またはＤＩＭＭ（Ｄｕａｌ  Ｉｎｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）などの高速アクセスの可能な揮発性メモリによって構成される。このような記憶装置において、電源障害などが発生すると、キャッシュメモリに格納されているが、ハードディスクなどに格納していないデータは、消失してしまうという問題がある。
【０００３】
このような場合、一般的な記憶装置においては、ディスク装置に書き込んでから、上位装置への書き込み処理完了を通知すること（ライトスルー）により、データの消失を防ぐことが行われる。しかし、ライトスルーでは、ディスク装置への書き込みを待ち合わせるので、キャッシュによるアクセス性能向上効果が全くなくなるという問題がある。
【０００４】
そこで、このような記憶装置は、バッテリなどの補助電源装置と、ハードディスクなどよりは高速なフラッシュメモリなどの不揮発性メモリを備えることにより、停電時のデータ消失を防ぐことが一般的である。すなわち、このような記憶装置は、停電時においてバッテリから給電する間に、キャッシュメモリに含まれるデータを不揮発性メモリへコピー（バックアップ）するバックアップ処理により、データを保持する。しかし、連続してバックアップ処理が発生した場合、初回のバックアップ処理によってバッテリが消耗した結果、バッテリの充電量が、２回目以降のバックアップ処理において不足することがある。このように、バッテリを有する記憶装置であっても、バッテリ容量の不足によって、キャッシュメモリが有効に利用できない場合があるという問題がある。
【０００５】
このような問題に対し、特許文献１には、バックアップ用キャッシュメモリと不揮発性メモリであるフラッシュメモリとの両方に対して、常にデータを書き込むことにより、バッテリを不要とするキャッシュメモリ・バックアップシステムが開示されている。
【０００６】
また、特許文献２には、バッテリユニットにまだ十分な電力が蓄積されていない場合、キャッシュメモリに記憶させたがフラッシュメモリにまだ記憶させていないすべてのデータを、フラッシュメモリに記憶（退避）させることができる記憶装置が開示されている。この特許文献２に記載された装置においては、キャッシュメモリに記憶させたデータのうち、まだフラッシュメモリに記憶させていないデータの量が、バッテリユニットに蓄積された電力の残量によって定まる閾値より多い場合に、上記のフラッシュメモリへの退避を行う。
【０００７】
また、関連技術として、以下のような、ディスクアレイ装置の制御部を多重化する技術が知られている。特許文献３には、複数の揮発性メモリおよび複数の不揮発性メモリを備えるディスクアレイ装置が開示されている。この特許文献３に開示されたディスクアレイ装置は、まず、入出力対象データを複数の揮発性メモリに格納し、さらに複数の不揮発性メモリにそれらのデータを格納した後、一部の揮発性メモリに格納した入出力対象データを消去する。このディスクアレイ装置は、一部の揮発性メモリに障害が発生した場合、障害が起きていない揮発性メモリおよび複数の不揮発性メモリの両方に、入出力対象データを格納することにより、データ消失を防ぐことができる。
【０００８】
また、特許文献４には、制御部を冗長化したディスクアレイ装置が開示されている。この特許文献４に記載されたディスクアレイ装置においては、通常稼働時にキャッシュメモリとして利用する揮発性メモリと、通常稼働時には利用しない不揮発性メモリの組み合わせによってキャッシュメモリを構成する。そして、一方の制御部において障害が発生したとき、もう一方の制御部が、自身の揮発性メモリと不揮発性メモリとによって、冗長化したキャッシュメモリを構成することにより、データ保全性を保ちながら性能低下も抑える。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００１−０３４５３５号公報
【特許文献２】特開２０１３−１８２２８３号公報
【特許文献３】特開２００８−２１７５２７号公報
【特許文献４】特開２０１１−１７０５８９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１に開示されたバックアップシステムにおいては、アクセス性能が低い不揮発性メモリに常にデータを書き込んでいるので、通常の稼働時において、この不揮発性メモリの性能にシステム全体の性能が引きずられて低下するという問題がある。
【００１１】
また、特許文献２に開示された記憶装置は、複雑な処理を行う時間が掛かるという問題がある。すなわち、この記憶装置は、まず、すべての書き込みデータをキャッシュメモリに記憶させ、記憶させたデータの量に基づいて閾値を計算し、さらにフラッシュメモリへの退避を行うという複雑な処理の後でアクセス完了となるので、処理に時間が掛かると言える。
【００１２】
また、特許文献３および４に開示されたディスクアレイ装置は、バッテリの充電量が不足しているが正常に稼働している場合を想定していない。すなわち、これらのディスクアレイ装置は、障害が発生したときには対処が行われるが、その障害から復旧した後、消耗したバッテリの充電量がまだ不足している状態には何も対処しない。
【００１３】
本発明の一つの目的は、補助電源装置がバックアップ処理に必要な充電量まで満たされていない場合であっても、書き込み対象のデータの保全性を確保しつつ、性能低下をできるだけ防ぐことができる制御装置などを提供することにある。
【課題を解決するための手段】
【００１４】
上記の目的を達成すべく、本発明に係る制御装置は、以下の構成を備えることを特徴とする。
【００１５】
すなわち、本発明の一態様に係る制御装置は、
補助電源装置の充電状態情報を取得し、前記充電状態情報に基づいて、前記補助電源装置が所定の充電量を満たすかどうかを判断し、前記補助電源装置が所定の充電量を満たしていない場合、不揮発メモリへ上位装置からのデータを転送することを指示する転送指示を出力するキャッシュ制御手段と、
前記転送指示に基づいて、前記データをキャッシュメモリへ書き込むキャッシュ書き込み処理、または、前記データを転送する転送処理を実行する揮発メモリ制御手段と、
前記転送処理によって転送された前記データを前記不揮発メモリに書き込む不揮発メモリ制御手段とを備え、
前記揮発メモリ制御手段は、前記キャッシュ書き込み処理、または、前記不揮発メモリへの書き込みが完了した後に、前記上位装置への処理完了通知を出力する。
【００１６】
また、上記の同目的を達成すべく、本発明の一態様に係る制御方法は、情報処理装置によって、
補助電源装置の充電状態情報を取得し、
前記充電状態情報に基づいて、前記補助電源装置が所定の充電量を満たすかどうかを判断し、
前記補助電源装置が所定の充電量を満たしていない場合は、
上位装置から受信したデータの書き込み要求の対象である書き込み対象データを不揮発メモリへ書き込む不揮発メモリ書き込み処理を実行し、
前記補助電源装置が所定の充電量を満たしている場合は、
前記書き込み対象データをキャッシュメモリへ書き込むキャッシュ書き込み処理を実行し、
前記不揮発メモリ書き込み処理、または、前記キャッシュ書き込み処理が完了した後に、前記書き込み要求の処理が完了したことを通知する処理完了通知を、前記上位装置に対して送信する。
【００１７】
また、同目的は、上記の各構成を有する制御装置、並びに対応する方法を、コンピュータによって実現するコンピュータ・プログラム、及びそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体によっても達成される。
【発明の効果】
【００１８】
本発明には、制御装置において、補助電源がバックアップ処理に必要な充電量まで満たされていない場合であっても、入出力データの保全性を確保しつつ、性能低下をできるだけ防ぐことができるという効果がある。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１の実施形態に係る制御装置１の構成を示すブロック図である。
【図２】本発明の第２の実施形態に係るディスクアレイシステムの構成を示すブロック図である。
【図３】第２の実施形態において制御装置１００が行う動作を示すフローチャートである。
【図４】本発明の各実施形態、および、その変形例に係る制御装置またはディスクアレイシステムに適用可能なコンピュータ（情報処理装置）の構成を例示する図である。
【発明を実施するための形態】
【００２０】
次に、本発明の実施形態について図面を参照して詳細に説明する。
【００２１】
＜第１の実施形態＞
図１は、本発明の第１の実施形態に係る制御装置１の構成を示すブロック図である。図１を参照すると、本実施形態に係る制御装置１は、キャッシュ制御部３、揮発メモリ制御部４、および不揮発メモリ制御部５を有する。
【００２２】
制御装置１は、例えば、上位装置と、上位装置から書き込みを要求されたデータ（以下、「書き込み対象データ」とも言う）を格納することが可能な記憶装置４０と、バスまたは通信ネットワークなどを介して接続される。制御装置１は、上位装置からデータの書き込みを要求する書き込み要求２０を受信することができる。また、制御装置１は、キャッシュメモリとして利用可能な揮発性のメモリであるキャッシュメモリ１０、および不揮発性のメモリである不揮発メモリ１１と接続される。また、制御装置１は、バッテリなどの補助電源装置（図示せず）と接続される。制御装置１は、図示しない主電源装置から受ける電源供給が停止したときに、その補助電源装置から電源供給を受けることができる。
【００２３】
ホストインタフェース部２は、上位装置からデータの書き込み要求２０を受信し、その書き込み要求２０の処理が完了したことを通知する処理完了通知を、上位装置に対して送信する（返す）ことができる。ホストインタフェース部２は、書き込み要求２０の対象であるデータを揮発メモリ制御部４に対して出力する。
【００２４】
キャッシュ制御部３は、補助電源装置の充電状態情報３０を取得し、その充電状態情報３０に基づいて、補助電源装置が所定の充電量を満たす充電状態であるかどうかを判断する。補助電源装置の電力が所定の充電量を満たしていない場合、キャッシュ制御部３は、不揮発性記憶装置である不揮発メモリ１１へ、書き込み対象データを転送することを指示する転送指示を、揮発メモリ制御部４に対して出力する。
【００２５】
揮発メモリ制御部４は、キャッシュ制御部３から受信する転送指示に基づいて、ホストインタフェース部２から受け取った書き込み対象データに対する処理を選択する。すなわち、揮発メモリ制御部４は、転送指示に基づいて、書き込み対象データをキャッシュメモリ１０へ書き込むキャッシュ書き込み処理、または、後述する不揮発メモリ制御部５に対して、書き込み対象データを転送する転送処理を実行する。
【００２６】
不揮発メモリ制御部５は、揮発メモリ制御部４によって転送されたデータを不揮発メモリ１１に書き込む。
【００２７】
また、揮発メモリ制御部４は、書き込み対象データの格納が完了した後に、ホストインタフェース部２を介して、書き込み要求に対する処理完了通知を、上位装置に対して出力する。書き込み対象データの格納が完了した後とは、キャッシュへの書き込み処理が完了した後、または、不揮発メモリ制御部５が行う不揮発メモリ１１への書き込みが完了した後である。
【００２８】
このような構成を備える本実施形態において、バックアップ処理に必要な充電量を、所定の充電量として設定しておけば、補助電源装置の充電量がバックアップ処理に対して不足している場合には、書き込み対象データが、不揮発メモリ１１に保持される。なお、バックアップ処理とは、キャッシュメモリ１０に格納されたデータのうち、記憶装置４０に格納されていないデータを、不揮発性メモリ１１へコピー（バックアップ）する処理である。すなわち、この状態において、主電源装置から給電が停止した場合、補助電源装置の電力ではバックアップ処理を行うことができなくても、不揮発メモリ１１が書き込み対象データを保持することができる。
【００２９】
一方、補助電源装置の充電量が、バックアップ処理に必要な容量を満たしている場合には、書き込み対象データが、キャッシュメモリ１０に保持される。この状態において、主電源装置から給電が停止した場合は、補助電源装置の電力によって、一般的なバックアップ処理を行うことにより、書き込み対象データを保持することができる。
【００３０】
以上説明したように、本実施形態によれば、補助電源装置が、バックアップ処理に必要な充電量まで満たされていない場合であっても、書き込み要求の対象であるデータの完全性（保全性）を確保することができる。すなわち、補助電源装置が充電不足の状態の時に、停電などが発生しても、データの保全性が確保される。
【００３１】
その理由は、キャッシュ制御部３が、充電状態情報に基づいて、補助電源装置が所定の充電量を満たしていない場合に、書き込み対象データの転送指示を揮発メモリ制御部４に対して出力するからである。そして、揮発メモリ制御部４が、転送指示に基づいて、書き込み対象データを不揮発メモリ制御部５に対して、転送するからである。さらに、不揮発メモリ制御部５が、転送された書き込み対象データを不揮発メモリ１１に書き込むからである。すなわち、この状態で、停電などが発生しても、不揮発性メモリ１１に格納された書き込み対象データが失われることはない。
【００３２】
さらに、本実施形態によれば、性能低下をできるだけ防ぐことができる。
【００３３】
その理由は、キャッシュ制御部３が、補助電源装置が所定の充電量を満たしていない場合にだけ転送指示を出力するので、それ以外の場合には、不揮発メモリ１１への書き込みの性能にシステム全体の性能が影響を受けることがないからである。
【００３４】
また、補助電源装置が所定の充電量を満たしていない場合にも、揮発メモリ制御部４が、すぐに書き込み対象データを不揮発メモリ制御部５に転送するので、処理に要する時間および負荷を低くすることができるからである。
【００３５】
なお、本実施形態の変形例としては、以下のようなものが考えられる。
【００３６】
例えば、揮発メモリ制御部４が、不揮発メモリ制御部５に対する転送処理を行う前、または後に、必要に応じて、書き込み対象データをキャッシュメモリ１０に書き込んでもよい。このとき、揮発メモリ制御部４は、書き込み対象データに対するキャッシュの必要性（有用性）を判断してもよい。キャッシュの必要性を判断する技術としては、一般的な技術を採用することができるので、本実施形態における重複する説明は省略する。
【００３７】
また、揮発メモリ制御部４は、キャッシュメモリ１０への書き込みの実行タイミングを遅らせることにより、アクセス性能の低下を抑えてもよい。例えば、揮発メモリ制御部４は、上述した本実施形態に係る処理を実行していないときを待ち合わせて、キャッシュメモリ１０への書き込み対象データの格納を行ってもよい。
【００３８】
以上、説明したように本変形例には、さらに性能低下を防ぐことができるという効果がある。
【００３９】
その理由は、補助電源装置が所定の充電量を満たしていない場合にも、揮発メモリ制御部４が、できるだけ性能低下を抑えながら、書き込み対象データをキャッシュメモリ１０に保持するからである。これにより、キャッシュメモリ１０をさらに有効活用できるので、さらに性能低下を防止するという効果が期待できる。
【００４０】
さらに、変形例には、書き込み対象データの冗長性を保つことができるという効果もある。
【００４１】
その理由は、揮発メモリ制御部４および不揮発メモリ制御部５が、キャッシュメモリ１０と不揮発メモリ１１との両方に、同じデータを格納するからである。
【００４２】
＜第２の実施形態＞
次に、上述した第１の実施形態、および変形例を基本とする第２の実施形態について説明する。以下では、第２の実施形態に係る特徴的な部分を中心に説明し、第１の実施形態、および変形例と同様な構成を有する第２の実施形態の構成要素には、第１の実施形態、および変形例で付した参照符号と同一の参照符号を付し、その構成要素について重複する詳細な説明は省略する。
【００４３】
まず、図２を参照して、以下に本実施形態の構成を説明する。図２は、本発明の第２の実施形態に係るディスクアレイシステムの構成を示すブロック図である。
【００４４】
本実施形態は、第１の実施形態、および変形例に係る制御装置１を基本とする複数の制御装置１００を含むディスクアレイ装置（第１のディスクアレイ装置）２００である。
【００４５】
図２を参照すると、本実施形態は、上位装置２１と、ディスクアレイ装置２００とを含む。
【００４６】
上位装置２１とディスクアレイ装置２００とは、バスまたは、構内ＬＡＮ（ローカルエリアネットワーク）等の通信ネットワークを介して通信可能である。
【００４７】
上位装置２１、およびディスクアレイ装置２００の各部が、専用のハードウェアデバイス、または論理回路によって構成されても良い。または、上位装置２１、およびディスクアレイ装置２００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：図示せず）を用いて実行されるコンピュータ・プログラム（ソフトウェア・プログラム）の制御により動作する一般的な情報処理装置（コンピュータ）によって構成されても良い。なお、この上位装置２１、およびディスクアレイ装置２００をコンピュータによって実現したハードウェア構成例については、図４を参照して後述する。
【００４８】
上位装置２１は、第１の実施形態における書き込み要求２０を、ディスクアレイ装置２０に対して送信することができる装置である。上位装置２１は、複数の装置であってもよい。本実施形態において、上位装置２１は、ホストインタフェース２Ａまたは２Ｂの一方に対して、入出力要求を送信する。
【００４９】
ディスクアレイ装置２０は、制御装置１００Ａ、キャッシュメモリ１０Ａ、不揮発メモリ１１Ａ、ディスク装置４１Ａ、バッテリ３１Ａ、およびバッテリコントローラ３２Ａを１組として、それらを２組組み合わせた冗長構成を有する。本実施形態においては、符号の末尾に「Ａ」または「Ｂ」の記号を付すことによって、冗長構成の組となる同じ機能を有する機能部同士を区別する。以下の構成の説明においては、符号に「Ａ」が付与された構成の説明をもって、符号に「Ｂ」が付与された構成の説明に代えることができる。
【００５０】
キャッシュメモリ１０Ａおよび不揮発メモリ１１Ａは、それぞれ、第１の実施形態、および変形例におけるキャッシュメモリ１０および不揮発メモリ１１に相当する。キャッシュメモリ１０Ａは、ＤＲＡＭ、またはＤＩＭＭなどの比較的高速アクセスが可能な揮発性メモリによって実現される。不揮発メモリ１１Ａは、フラッシュメモリ、またはＳＳＤ（Ｓｏｒｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）などの不揮発性メモリによって実現される。不揮発メモリ１１Ａは、そのアクセス性能が、キャッシュメモリ１０Ａに比べて低速であるが、ディスク装置４１Ａに比べて高速なメモリを使用することが一般的である。
キャッシュメモリ１０Ａおよび不揮発メモリ１１Ａの構造と内容は、第１の実施形態、および変形例と同様であるため、詳細な説明を省略する。
【００５１】
ディスク装置４１Ａは、第１の実施形態、および変形例における記憶装置４０に相当する。ディスク装置４１Ａは、例えば、ハードディスク装置などにより実現される。ディスク装置４１Ａの構造と内容は、第１の実施形態、および変形例と同様であるため、詳細な説明を省略する。
【００５２】
バッテリ３１Ａ、およびバッテリコントローラ３２Ａは、第１の実施形態、および変形例における補助電源装置に対応する。バッテリ３１Ａ、およびバッテリコントローラ３２Ａは、図示しない主電源装置から受ける電源供給が停止したときに、少なくとも、制御装置１００Ａ、キャッシュメモリ１０Ａ、および不揮発メモリ１１Ａに対して、電源を供給することができる。また、バッテリコントローラ３２Ａは、バッテリ３１Ａの充電状態を表す充電状態情報を、後述するキャッシュセレクタ１０３Ａに対して、出力することができる。
【００５３】
制御装置１００Ａは、第１の実施形態、および変形例における制御装置１００を基本とする。制御装置１００Ａは、ホストインタフェース部２Ａ、キャッシュセレクタ１０３Ａ、揮発メモリ制御部１０４Ａ、不揮発メモリ制御部５Ａ、およびディスクインタフェース部１０６Ａを有する。
【００５４】
ホストインタフェース部２Ａは、第１の実施形態、および変形例におけるホストインタフェース部２を基本とする。ホストインタフェース部２Ａは、上位装置２１からディスク装置４１Ａに対する、入出力要求を受信し、その入出力要求の処理が完了したことを通知する処理完了通知を、上位装置２１に対して送信することができる。入出力要求とは、書き込み要求と、ディスク装置４１Ａに格納されたデータの読み出し要求とを含む。また、ホストインタフェース部２Ａは、上位装置２１から受信した入出力要求の情報を揮発メモリ制御部１０４Ａに対して出力することができる。また、ホストインタフェース部２Ａは、揮発メモリ制御部１０４Ａから出力される読み出しデータを、上位装置２１に対して送信することができる。
【００５５】
キャッシュセレクタ１０３Ａは、第１の実施形態、および変形例におけるキャッシュ制御部３を基本とする。キャッシュセレクタ１０３Ａは、バッテリコントローラ３２Ａから、バッテリ３１Ａの充電状態を表す充電状態情報を取得し、バッテリ３１Ａが所定の充電量を満たす充電状態であるかどうかを判断する。これ以外のキャッシュセレクタ１０３Ａの構造および機能は、第１の実施形態、および変形例と同様であるため、詳細な説明を省略する。
【００５６】
揮発メモリ制御部１０４Ａは、第１の実施形態、および変形例における揮発メモリ制御部４を基本とする。揮発メモリ制御部１０４Ａは、本実施形態では、さらに、制御装置１００Ｂとの間における書き込み対象データの冗長化を行うことができる。すなわち、揮発メモリ制御部１０４Ａは、冗長構成の組となる揮発メモリ制御部１０４Ｂに対して、ホストインタフェース部２Ａから受け取った書き込み対象データを転送することができる。また、揮発メモリ制御部１０４Ａは、冗長構成の組となる揮発メモリ制御部１０４Ｂから転送された書き込み対象データを、ホストインタフェース部２Ａから直接受け取った書き込み対象データと同様に処理する。これにより、書き込み対象データは、制御装置１００Ａおよび１００Ｂのそれぞれにおいて、少なくとも、キャッシュメモリ１０Ａ（１０Ｂ）または不揮発メモリ１１Ａ（１１Ｂ）の何れかに記憶することができる。
【００５７】
また、揮発メモリ制御部１０４Ａは、第１の実施形態における処理完了通知の出力の際に、さらに冗長構成の組となる揮発メモリ制御部１０４Ｂが書き込み対象データの格納を完了することをも待ち合わせる。すなわち、揮発メモリ制御部１０４Ａは、揮発メモリ制御部１０４Ｂを含めて、書き込み対象データの格納が完了した後に、ホストインタフェース部２Ａを介して、書き込み要求に対する処理完了通知を、上位装置２１に対して出力する。
【００５８】
また、揮発メモリ制御部１０４Ａは、上位装置２１の入出力要求に応じて、ディスク装置４１Ａに対するデータの書き込み、および読み出しの制御を、ディスクインタフェース部１０６Ａを介して行うことができる。また、揮発メモリ制御部１０４Ａは、読み出し要求に応じて読み出したデータ（読み出しデータ）を、ホストインタフェース部２Ａを介して上位装置２１に対して送信することができる。ディスク装置４１Ａに対する入出力要求の処理および、それに係るキャッシュ制御の方法は、良く知られた一般的な技法を採用することができるので、本実施形態における詳細な説明は省略する。
【００５９】
また、揮発メモリ制御部１０４Ａは、停電などの障害から復旧した際に、不揮発メモリ制御部５Ａを介して、不揮発メモリ１１Ａに格納されたデータを読み出し、キャッシュメモリ１０Ａにリストア（コピー）する復旧処理を行うことができる。
【００６０】
上記以外の揮発メモリ制御部１０４Ａの構成および機能は、第１の実施形態、および変形例と同様であるため、詳細な説明を省略する。
【００６１】
不揮発メモリ制御部５Ａは、第１の実施形態、および変形例における不揮発メモリ制御部５を基本とする。本実施形態においては、不揮発メモリ制御部５は、上述した復旧処理の際に、揮発メモリ制御部１０４Ａの要求に応じて、不揮発メモリ１１Ａに格納されたデータを読み出し、そのデータを揮発メモリ制御部１０４Ａに対して出力することができる。上記以外の不揮発メモリ制御部５Ａの構成および機能は、第１の実施形態、および変形例と同様であるため、詳細な説明を省略する。
【００６２】
ディスクインタフェース部１０６Ａは、揮発メモリ制御部１０４Ａから受ける要求に基づいて、ディスク装置４１Ａに対するデータの読み出し、および書き込みを行うことができる。
【００６３】
次に、上述した構成を備える本実施形態の動作について詳細に説明する。
【００６４】
以下の説明においても、上述した構成の説明と同様に、符号に「Ａ」が付与された構成の動作の説明をもって、符号に「Ｂ」が付与された構成の動作の説明に代えることができる。
【００６５】
図３は、第２の実施形態における制御装置１００の動作を示すフローチャートである。
【００６６】
一例として、以下に、ディスクアレイ装置２００への図示しない外部電源からの電源供給が停止（停電）し、その後、ディスクアレイ装置２００への電源供給が復旧（復電）した場合における動作を説明する。
【００６７】
以下の説明における前提条件を述べる。まず、電源供給が停止している間に、ディスクアレイ装置２００では、上述したバックアップ処理が、バッテリ３１Ａによる電源供給によって実行された前提とする。すなわち、停電後、キャッシュメモリ１０Ａに含まれるデータのうち、ディスク装置４１Ａに格納されていないデータが、不揮発性メモリ１１Ａに格納されたこととする。また、バックアップ処理完了後、ディスクアレイ装置２００は運用停止されたこととする。そして、バッテリ３１Ａに充電された電力が消費されたことにより、バッテリ３１Ａは、次のバックアップ処理に必要な充電量に満たない充電状態となったこととする。
【００６８】
以下に、このような前提条件における詳細な動作を説明する。
【００６９】
復電後、装置を起動すると、一般的なリストア動作により、不揮発メモリ１１Ａに格納されたデータが、キャッシュメモリ１０Ａにリストアされる。リストアの方法は、良く知られた一般的な技法を採用することができるので、本実施形態における詳細な説明は省略する。
【００７０】
次に、キャッシュセレクタ１０３Ａは、バッテリコントローラ３２Ａから、バッテリ３１Ａの充電状態情報を取得する（ステップＳ１０）。
【００７１】
次に、キャッシュセレクタ１０３Ａは、取得した充電状態情報に基づいて、所定の充電量を満たしているかどうかを判定する（ステップＳ１１）。本実施形態では、キャッシュセレクタ１０３Ａは、バックアップ処理に必要な充電量の情報を、あらかじめ所定の充電量として保持していることとする。ここでは、キャッシュセレクタ１０３Ａは、その所定の充電量の情報と、取得した充電状態情報とを比較することにより、バッテリ３１Ａがバックアップ処理に必要な充電量に満たない状態であることを認識する。そして、キャッシュセレクタ１０３Ａは、不揮発メモリ１１Ａへ、書き込み対象データを転送することを指示する転送指示を、揮発メモリ制御部１０４Ａに対して出力する。揮発メモリ制御部１０４Ａは、図示しない記憶装置などに転送指示を受けたことを記憶する。なお、揮発メモリ制御部１０４Ａは、例えば、回路の状態を切り替えることなどによって、転送指示を受けたことを記憶してもよい。
【００７２】
この後、上位装置２１が、書き込み要求をホストインタフェース部２Ａに対して送信すると、ホストインタフェース部２Ａが、書き込み要求を受信する（ステップＳ２０）。ホストインタフェース部２Ａは、書き込み要求の対象である書き込みデータを揮発メモリ制御部１０４Ａに対して出力する。
【００７３】
揮発メモリ制御部１０４Ａは、キャッシュセレクタ１０３Ａから受信した転送指示に基づいて、ホストインタフェース部２Ａから受け取った書き込み対象データに対する処理を選択する。すなわち、ここでは、揮発メモリ制御部１０４Ａは、不揮発メモリ制御部５Ａに対して、データを転送する転送処理を実行する。不揮発メモリ制御部５Ａは、不揮発メモリ１１Ａに対して、転送されたデータを書き込む（ステップＳ２１）。揮発メモリ制御部１０４Ａは、不揮発メモリ１１Ａへの書き込み対象データの格納が完了したことを確認する。例えば、不揮発メモリ制御部５Ａが、不揮発メモリ１１Ａに対するデータの書き込みが完了した後に、揮発メモリ制御部１０４Ａに対して、転送処理の完了を通知してもよい。
【００７４】
なお、第１の実施形態の変形例を基本とする場合、ステップＳ２１において、揮発メモリ制御部１０４Ａは、例えば、転送処理の後、転送処理の完了を待つ間に、書き込み対象データをキャッシュメモリ１０Ａに対しても書き込んでもよい。
【００７５】
また、ステップＳ２１において、揮発メモリ制御部１０４Ａは、冗長構成の組となる揮発メモリ制御部１０４Ｂに対して、書き込み対象データを転送する。揮発メモリ制御部１０４Ｂも、同様に、バッテリ３１Ｂの充電状態情報に応じて、転送された書き込み対象データをキャッシュメモリ１０Ｂまたは不揮発メモリ１１Ｂの何れかに格納するよう制御する。このとき、揮発メモリ制御部１０４Ａは、揮発メモリ制御部１０４Ｂを介した書き込み対象データの格納が完了したことを確認する。
【００７６】
揮発メモリ制御部１０４Ａは、書き込み対象データの格納が完了した後に、ホストインタフェース部２Ａを介して、書き込み要求に対する処理完了通知を、上位装置２１に対して出力する（ステップＳ１４）。ここでは、揮発メモリ制御部１０４Ａは、不揮発メモリ制御部５Ａが行う不揮発メモリ１１Ａに対する書き込みと、揮発メモリ制御部１０４Ｂを介した書き込みの両方が完了してから、処理完了通知の出力を行う。すなわち、揮発メモリ制御部１０４Ａは、第１の実施形態における処理完了通知の出力の際に、さらに冗長構成の組となる揮発メモリ制御部１０４Ｂが書き込み対象データの格納を完了するまで待ち合わせる。第１の実施形態の変形例を基本とする場合、少なくとも、不揮発メモリ１１Ａ（および、不揮発メモリ１１Ｂ）に対する書き込みが完了してから処理完了通知の出力を行う。すなわち、揮発メモリ制御部１０４Ａは、書き込み対象データがディスクアレイ装置２００に含まれるキャッシュメモリ１０Ａまたは１０Ｂと、不揮発メモリ１１Ａまたは１１Ｂとにおいて、冗長化されたことを確認した後に、上位装置２１への処理完了通知を返す。
【００７７】
この後は、ステップＳ１０に戻って処理が繰り返される。
【００７８】
以下に、さらに時間が経過し、バッテリ３１Ａの充電量が、バックアップ処理に必要な容量に達した場合について、説明する。
【００７９】
キャッシュセレクタ１０３Ａは、バッテリコントローラ３２Ａから、バッテリ３１Ａの充電状態情報を取得し（ステップＳ１０）、今度は、所定の充電量を満たしていることを認識する（ステップＳ１１）。そこで、キャッシュセレクタ１０３Ａは、揮発メモリ制御部１０４Ａに対する転送指示を停止することにより、これ以降の不揮発メモリ１１Ａへのデータ書き込みを止める。揮発メモリ制御部１０４Ａは、転送指示を受けたことに関する記憶を消去する。なお、これ以降のいずれかのタイミングにおいて、揮発メモリ制御部１０４Ａは、不揮発メモリ制御部５Ａを介して、不揮発メモリ１１Ａに書き込まれたデータの消去などを行ってもよい。
【００８０】
ステップＳ１１の後、上位装置２１が、新たな書き込み要求をホストインタフェース部２Ａに対して送信すると、ホストインタフェース部２Ａが、書き込み要求を受信し、書き込みデータを揮発メモリ制御部１０４Ａに対して出力する（ステップＳ１２）。
【００８１】
揮発メモリ制御部１０４Ａは、キャッシュセレクタ１０３Ａから受信した転送指示（停止）に基づいて、ホストインタフェース部２Ａから受け取った書き込み対象データに対する処理を選択する。すなわち、ここでは、揮発メモリ制御部１０４Ａは、書き込み対象データをキャッシュメモリ１０Ａへ書き込むキャッシュ書き込み処理を行う（ステップＳ１３）。すなわち、不揮発メモリ１１Ａへの書き込みは、行われない。また、ステップＳ２１と同様に、揮発メモリ制御部１０４Ａは、冗長構成の組となる揮発メモリ制御部１０４Ｂに対して、書き込み対象データを転送する。このときも、揮発メモリ制御部１０４Ａは、揮発メモリ制御部１０４Ｂを介した書き込み対象データの格納が完了したことを確認する。
【００８２】
揮発メモリ制御部１０４Ａは、キャッシュメモリ１０Ａに対する書き込みと、揮発メモリ制御部１０４Ｂを介した書き込み対象データの格納が完了した後に、ホストインタフェース部２Ａを介して、書き込み要求に対する処理完了通知を、上位装置２１に対して出力する（ステップＳ１４）。
【００８３】
このようにして、バッテリ３１Ａの充電量が回復した後、制御装置１００Ａは、キャッシュメモリ１０Ａを使用した高速なライトバック動作に移行することができる。これにより、停電後に低下していたデータ処理性能が回復するとともに、停電時のダーティデータの保全性の確保が可能になる。ここで、ダーティデータとは、キャッシュメモリに格納されているけれども、まだディスク装置へ書き込まれていない更新データを指す。
【００８４】
以上、説明したように、本実施形態には、上述した第１の実施形態と同様の効果に加えて、さらに、書き込み対象データの保全性を高めることができるという効果もある。
【００８５】
その理由は、ディスクアレイ装置２００が、各機能部を複数組有し、それらを冗長化しているからである。すなわち、上記の各機能部のいずれかに障害が発生しても、書き込み対象データが、冗長構成の組となる機能部によって保持されるからである。
【００８６】
なお、本実施形態の変形例としては以下のようなものが考えられる。
【００８７】
例えば、ディスクアレイ装置２００に冗長化して含まれる各機能部を、１つずつ含むディスクアレイ装置（第２のディスクアレイ装置）３００も、実現可能である。すなわち、制御装置１００Ａ、キャッシュメモリ１０Ａ、不揮発メモリ１１Ａ、ディスク装置４１Ａ、バッテリ３１Ａ、およびバッテリコントローラ３２Ａを含むディスクアレイ装置３００は、第１の実施形態と同様の効果を発揮することができる。このとき、揮発メモリ制御部１０４Ａは、図２のステップＳ２１およびＳ１３において、冗長構成の組となる揮発メモリ制御部１０４Ｂに対する、書き込み対象データの転送を行わなければよい。また、揮発メモリ制御部１０４Ａは、ステップＳ１４において、揮発メモリ制御部１０４Ｂを介した書き込み対象データの格納の完了を待ち合わせなくてもよい。すなわち、このときの揮発メモリ制御部１０４Ａの動作は、第１の実施形態における揮発メモリ制御部４と同様でよい。
【００８８】
また、他の変形例として、充電状態情報の取得、および転送指示（Ｓ１０〜Ｓ１１）は、書き込み要求の処理（ステップＳ１２〜１４、Ｓ２０〜２１）とは、個別（非同期）に行ってもよい。すなわち、第２の実施形態においては、キャッシュセレクタ１０３Ａの動作は、上位装置２１から受信する書き込み要求を１つ受信する度に行うが、それに限らない。すなわち、バッテリ３１Ａの充電状態情報を取得するタイミングによらず、揮発メモリ制御部１０４Ａは、上位装置２１から送られる複数の入出力要求を処理してもよい。また、入出力要求を受信しなくても、キャッシュセレクタ１０３Ａは、バッテリ３１Ａの充電状態情報の取得以降の動作を繰り返し行ってもよい。
【００８９】
例えば、キャッシュセレクタ１０３Ａは、バッテリ３１Ａの充電状態を定期的に監視し、適宜転送指示を送ることによって、揮発メモリ制御部１０４Ａを不揮発メモリへの転送モードに切り替えてもよい。そして、キャッシュセレクタ１０３Ａは、転送解除指示を送ることによって、揮発メモリ制御部１０４Ａの転送モードを解除してもよい。この場合、揮発メモリ制御部１０４Ａは、転送モードの状態を記憶し、転送指示と転送解除指示とによって、その転送モードの状態を切り替える。そして、揮発メモリ制御部１０４Ａは、転送モードの場合には不揮発メモリ制御部５Ａに対して、書き込みデータを転送し、転送モードが解除されている場合には、キャッシュメモリ１０Ａに対して書き込みデータを書き込めばよい。
【００９０】
なお、上述した各実施形態において図１または図２に示した各部は、それぞれ独立したハードウェア回路で構成されていてもよいし、ソフトウェアプログラムの機能（処理）単位（ソフトウェアモジュール）と捕らえることができる。ただし、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。このような場合のハードウェア環境の一例を、図４を参照して説明する。
【００９１】
図４は、本発明の各実施形態、および、その変形例に係る制御装置またはディスクアレイシステムに適用可能なコンピュータ（情報処理装置）の構成を例示する図である。すなわち、図４は、上述した各実施形態における制御装置１、ディスクアレイ装置２００および３００、および上位装置２１の少なくとも何れかを実現可能なコンピュータの構成であって、上述した各実施形態における各機能を実現可能なハードウェア環境を示す。
【００９２】
図４に示したコンピュータ９００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）９０１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９０２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９０３、通信インタフェース（Ｉ／Ｆ）９０４、ディスプレイ９０５、及びハードディスク装置（ＨＤＤ）９０６を備え、これらがバス９０７を介して接続された構成を有する。なお、図４に示したコンピュータが制御装置１、ディスクアレイ装置２００および３００、または上位装置２１として機能する場合、ディスプレイ９０５、通信インタフェース９０４は常時設けられる必要はない。
【００９３】
また、通信インタフェース９０４は、上述した各実施形態において、当該各コンピュータ間における通信を実現する一般的な通信手段である。ハードディスク装置９０６には、プログラム群９０６Ａと、各種の記憶情報９０６Ｂとが格納されている。プログラム群９０６Ａは、例えば、上述した図１および図２に示した各ブロック（各部）に対応する機能を実現するためのコンピュータ・プログラムである。各種の記憶情報９０６Ｂは、例えば、図１および図２に示したキャッシュ制御部３、キャッシュセレクタ１０３Ａおよび１０３Ｂがあらかじめ保持する所定の充電量に関する情報などである。このようなハードウェア構成において、ＣＰＵ９０１は、コンピュータ９００の全体の動作を司る。
【００９４】
そして、上述した各実施形態を例に説明した本発明は、各実施形態の説明において参照したブロック構成図（図１および図２）あるいはフローチャート（図３）の機能を実現可能なコンピュータ・プログラムを供給した後、そのコンピュータ・プログラムを、当該ハードウェアのＣＰＵ９０１に読み出して実行することによって達成される。また、このコンピュータ内に供給されたコンピュータ・プログラムは、読み書き可能な一時記憶メモリ９０３またはハードディスク装置９０６などの不揮発性の記憶デバイス（記憶媒体）に格納すれば良い。
【００９５】
また、前記の場合において、当該各装置内へのコンピュータ・プログラムの供給方法は、フロッピーディスク（登録商標）やＣＤ−ＲＯＭ等の各種記録媒体を介して当該装置内にインストールする方法や、インターネット等の通信ネットワーク１０００を介して外部よりダウンロードする方法等のように、現在では一般的な手順を採用することができる。そして、このような場合において、本発明は、係るコンピュータ・プログラムを構成するコード、或いは係るコードが記録されたところの、コンピュータ読み取り可能な記憶媒体によって構成されると捉えることができる。
【符号の説明】
【００９６】
１、１００Ａ、１００Ｂ    制御装置
２、２Ａ、２Ｂ    ホストインタフェース部
３    キャッシュ制御部
４、１０４Ａ、１０４Ｂ    揮発メモリ制御部
５、５Ａ、５Ｂ    不揮発メモリ制御部
１０、１０Ａ、１０Ｂ    キャッシュメモリ
１１、１１Ａ、１１Ｂ    不揮発メモリ
２０    書き込み要求（上位装置）
２１    上位装置
３０    充電状態情報（補助電源装置）
３１Ａ、３１Ｂ    バッテリ
３２Ａ、３２Ｂ    バッテリコントローラ
４０    記憶装置
４１Ａ、４１Ｂ    ディスク装置
１０３Ａ、１０３Ｂ    キャッシュセレクタ
２００    ディスクアレイ装置（第１のディスクアレイ装置）
３００    第２のディスクアレイ装置
９００    情報処理装置（コンピュータ）
９０１    ＣＰＵ
９０２    ＲＯＭ
９０３    ＲＡＭ
９０４    通信インタフェース（Ｉ／Ｆ）
９０５    ディスプレイ
９０６    ハードディスク装置（ＨＤＤ）
９０６Ａ    プログラム群
９０６Ｂ    各種の記憶情報
９０７    バス
１０００    ネットワーク（通信ネットワーク）
【図１】
2015191414.tif 000003
【図２】
2015191414.tif 000004
【図３】
2015191414.tif 000005
【図４】
2015191414.tif 000006