(57)【特許請求の範囲】
【請求項１】
各々が、キャッシュメモリと、前記キャッシュメモリにディスクアレイ装置の主電源の停電時に電力を供給するバッテリと、前記キャッシュメモリにデータを格納するＣＰＵと、前記キャッシュメモリのデータを退避する不揮発性メモリとを含む第１及び第２の制御モジュールと、前記第１及び第２の制御モジュールによりデータが書込まれ又は読出されるディスクアレイとを含むディスクアレイ装置の制御方法であって、
前記第１の制御モジュールのＣＰＵが、前記第２の制御モジュールのバッテリ及び不揮発性メモリによる、前記第２の制御モジュールのキャッシュメモリについてのデータ退避可否を示す他系状態情報を取得するステップと、
前記第１の制御モジュールのＣＰＵが、前記第１の制御モジュールのバッテリ及び不揮発性メモリによる、前記第１の制御モジュールのキャッシュメモリについてのデータ退避可否を示す自系状態情報と、取得した前記他系状態情報とに基づいて、前記ディスクアレイ装置をライトバック状態とするか又はライトスルー状態とするかを決定するステップとを含む
ことを特徴とするディスクアレイ装置の制御方法。
【請求項２】
前記他系状態情報は、前記第２の制御モジュールのキャッシュメモリに書き込まれたデータの中で、前記ディスクアレイへ書き込まれていないライトデータであるダーティデータと、前記第１の制御モジュールのキャッシュメモリに書き込まれたダーティデータのコピーであるミラーリングデータの双方を、前記第２の制御モジュールの不揮発性メモリに退避可能か否かを示す情報であり、
前記第１の制御モジュールのＣＰＵが、前記他系状態情報が前記第２の制御モジュールのキャッシュメモリに書き込まれた前記ダーティデータ及びミラーリングデータの双方を前記第２の制御モジュールの不揮発性メモリに退避可能であることを示す場合に、前記自系状態情報に拘わらず、前記ディスクアレイ装置をライトバック状態とする
ことを特徴とする請求項１記載のディスクアレイ装置の制御方法。
【請求項３】
前記第２の制御モジュールのバッテリのバッテリ容量が前記第２の制御モジュールのキャッシュメモリに書き込まれたダーティデータ及びミラーリングデータの双方を前記第２の制御モジュールの不揮発性メモリに退避可能な容量以上であり、かつ、前記第２の制御モジュールの不揮発性メモリのメモリ容量が前記第２の制御モジュールのキャッシュメモリに書き込まれたダーティデータ及びミラーリングデータの双方を退避可能な容量以上である場合に、前記他系状態情報は、前記第２の制御モジュールのキャッシュメモリに書き込まれたダーティデータ及びミラーリングデータの双方を、前記第２の制御モジュールの不揮発性メモリに退避可能とされる
ことを特徴とする請求項２記載のディスクアレイ装置の制御方法。
【請求項４】
前記自系状態情報は、前記第１の制御モジュールのキャッシュメモリに書き込まれたデータの中で、前記ディスクアレイへ書き込まれていないライトデータであるダーティデータと、前記第２の制御モジュールのキャッシュメモリに書き込まれたダーティデータのコピーであるミラーリングデータの双方、又は、前記第１の制御モジュールのキャッシュメモリに書き込まれたダーティデータのみを、前記第１の制御モジュールの不揮発性メモリに退避可能か否かを示す情報であり、
前記第１の制御モジュールのＣＰＵが、前記自系状態情報に応じて、前記第１の制御モジュールのキャッシュメモリのデータ退避範囲を決定する
ことを特徴とする請求項２記載のディスクアレイ装置の制御方法。
【請求項５】
前記自系状態情報が、前記第１の制御モジュールのキャッシュメモリに書き込まれた前記ダーティデータ及びミラーリングデータの双方を、前記第１の制御モジュールの不揮発性メモリに退避可能であることを示す場合に、前記第１の制御モジュールのＣＰＵが、前記ディスクアレイ装置の主電源の停電時に、前記第１の制御モジュールのキャッシュメモリ、ＣＰＵ及び不揮発性メモリに電力を供給し、前記第１の制御モジュールのキャッシュメモリに書き込まれた前記ダーティデータ及びミラーリングデータの双方を、前記第１の制御モジュールの不揮発性メモリに退避する
ことを特徴とする請求項４記載のディスクアレイ装置の制御方法。
【請求項６】
前記自系状態情報が、前記第１の制御モジュールのキャッシュメモリに書き込まれた前記ダーティデータのみを、前記第１の制御モジュールの不揮発性メモリに退避可能であることを示す場合に、前記第１の制御モジュールのＣＰＵが、前記ディスクアレイ装置の主電源の停電時に、前記第１の制御モジュールのキャッシュメモリ、ＣＰＵ及び不揮発性メモリに電力を供給し、前記第１の制御モジュールのキャッシュメモリに書き込まれた前記ダーティデータのみを、前記第１の制御モジュールの不揮発性メモリに退避する
ことを特徴とする請求項４記載のディスクアレイ装置の制御方法。
【請求項７】
前記自系状態情報が、前記第１の制御モジュールのキャッシュメモリに書き込まれた前記ダーティデータを、前記第１の制御モジュールの不揮発性メモリに退避可能でないことを示す場合に、前記第１の制御モジュールのＣＰＵが、前記ディスクアレイ装置の主電源の停電時に、前記第１の制御モジュールのキャッシュメモリ、ＣＰＵ及び不揮発性メモリの中の前記キャッシュメモリのみに電力を供給する
ことを特徴とする請求項４記載のディスクアレイ装置の制御方法。
【請求項８】
キャッシュメモリと、前記キャッシュメモリにディスクアレイ装置の主電源の停電時に電力を供給するバッテリと、前記キャッシュメモリにデータを格納するＣＰＵと、前記キャッシュメモリのデータを退避する不揮発性メモリとを含む第１の制御モジュールと、
キャッシュメモリと、前記キャッシュメモリに前記ディスクアレイ装置の主電源の停電時に電力を供給するバッテリと、前記キャッシュメモリにデータを格納するＣＰＵと、前記キャッシュメモリのデータを退避する不揮発性メモリとを含む第２の制御モジュールと、
前記第１及び第２の制御モジュールによりデータが書込まれ又は読出されるディスクアレイとを含むディスクアレイ装置であって、
前記第１の制御モジュールのＣＰＵが、前記第２の制御モジュールのバッテリ及び不揮発性メモリによる、前記第２の制御モジュールのキャッシュメモリについてのデータ退避可否を示す他系状態情報を取得し、
前記第１の制御モジュールのＣＰＵが、前記第１の制御モジュールのバッテリ及び不揮発性メモリによる、前記第１の制御モジュールのキャッシュメモリについてのデータ退避可否を示す自系状態情報と、取得した前記他系状態情報とに基づいて、前記ディスクアレイ装置をライトバック状態とするか又はライトスルー状態とするかを決定する
ことを特徴とするディスクアレイ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクアレイ装置の制御方法及びディスクアレイ装置に関する。
【背景技術】
【０００２】
ディスクアレイ装置は、データアクセス時間を短くするために、高速デバイスであるキャッシュ（ディスクキャッシュメモリ）を備える。更に、ディスクアレイ装置は、揮発性メモリであるキャッシュに記憶されているデータを退避するために、不揮発性メモリを備える。不揮発性メモリとしては、フラッシュメモリ（ＥＥＰＲＯＭ）が用いられる。これにより、ディスクアレイ装置の主電源の停電時には、キャッシュに記憶されているデータが不揮発性メモリに退避される。
【０００３】
なお、記憶装置システムにおいて、各ノードに、キャッシュメモリと、不揮発性メモリと、自ノードおよび他ノードのキャッシュメモリに格納されたライトデータを不揮発性メモリにコピーするコピー手段と、コピー手段間インタフェースの故障が検出された場合にコピー手段を処理から切り離しライトスルー動作に切り替える動作モード切替手段と、動作モードを切り替える際に、不揮発性メモリに格納されているライトデータをディスク装置に書き込むライトバック手段と、コピー手段を交換した後の立ち上げ時に当該コピー手段を診断する診断手段とを設けることが提案されている。
【０００４】
また、ディスクキャッシュを行っているコンピュータシステムにおいて、残容量検出手段により検出した充電池の残容量と電圧値設定手段によって設定した電圧設定値の比較により、ディスクキャッシュ制御をコピーバック方式かライトスルー方式かのどちらかに選択するディスクキャッュの制御方式が提案されている。
【０００５】
また、ディスク制御装置において、停電が発生すると、電源回路から停電検出信号をリード／ライト回路に供給し、リード／ライト回路は、停電検出信号に応じて自動的に起動され、所定のパラメタ値にしたがってディスクキャッシュメモリからＥＥＰＲＯＭへのデータ転送を行ない、ライトキャッシュのデータをＥＥＰＲＯＭにセーブする手段が提案されている。
【０００６】
また、ストレージシステムにおいて、揮発性のキャッシュメモリの他に、給電の有無に関わらずデータを記憶し続けることが可能なタイプのメモリである不揮発性メモリを備え、上位装置からのアクセスコマンドに従うデータの一時格納先は揮発性キャッシュメモリとし、一次電源から揮発性キャッシュメモリへの給電が無くなった場合に、バッテリからの給電により、揮発性キャッシュメモリに記憶されているデータを不揮発性メモリにコピーすることが提案されている。
【０００７】
また、バッテリ内蔵の不揮発性メモリを使用したバックアップ装置において、電源電圧がメモリの書込み保護のかかる電圧と正常の電源電圧との間の電圧になったことを検出して中央処理装置に割込みをかける手段と、この手段で割込みのかかる電圧とメモリの書込み保護のかかる電圧との間の電圧になったことを検出して中央処理装置にリセットをかける手段と、この手段でリセットをかけるときにメモリに割り当てされたアドレスを選択しないようにアドレスバスの最上位ビットを０にする手段とを具備して構成されることが提案されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００６−２７７２０５号公報
【特許文献２】特開平６−３０９２３２号公報
【特許文献３】特開平６−３０９２３４号公報
【特許文献４】特開２００８−１０８０２６号公報
【特許文献５】特開平５−３５６１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ディスクアレイ装置の主電源の停電時には、バッテリから、ＣＰＵ、キャッシュ、不揮発性メモリ、不揮発性メモリのコントローラに、データ退避のための電力が供給される。しかし、バッテリが供給できる電力、換言すれば、バッテリ容量は、周囲温度、充電回数に依存して徐々に劣化する。従って、ディスクアレイ装置の主電源の停電時において、データ退避のための電力を供給できる時間も徐々に短くなり、退避できるデータ量も徐々に小さくなる。
【００１０】
一方、不揮発性メモリとして用いられるフラッシュメモリでは、書き込み回数の制限がある。換言すれば、書き込みを繰り返すうちに少しずつメモリセルが破壊されるので、書き込み可能領域、換言すれば、退避領域が徐々に減る。
【００１１】
このため、バッテリ寿命の劣化及び不揮発性メモリの書込み可能領域の減少の双方又は一方に起因して、ディスクアレイ装置の主電源の停電時において、キャッシュに記憶されているデータの全体、換言すれば、キャッシュ容量の分のデータを不揮発性メモリに退避することができなくなる場合（退避不可能な状態になった場合）が生じるおそれがある。この場合、キャッシュに記憶されているデータの保証ができないので、ディスクアレイ装置は、それまでのライトバック状態をライトスルー状態に変更する必要がある。
【００１２】
図９は、ディスクアレイ装置におけるキャッシュの退避処理フローである。
【００１３】
ディスクアレイ装置が、バッテリ容量がキャッシュメモリの容量以上、換言すれば、キャッシュメモリのデータをフラッシュメモリに退避可能な容量以上か否か、及び、フラッシュメモリの退避領域がキャッシュメモリの容量以上か否かを判断する（ステップＳ１０１）。バッテリ容量がキャッシュ容量以上であり、かつ、フラッシュメモリの退避領域がキャッシュ容量以上である場合に、ディスクアレイ装置は、ライトバック状態を継続する（ステップＳ１０２）。ディスクアレイ装置は、バッテリ容量がキャッシュ容量未満であるか、又は、フラッシュメモリの退避領域がキャッシュ容量未満である場合に、ライトスルー状態に変更する（ステップＳ１０３）。
【００１４】
ライトバック状態においては、ホストコンピュータからのデータをキャッシュに格納した時点で、ホストコンピュータに書き込み完了の通知を発行する。しかし、ライトスルー状態においては、ホストコンピュータからのデータをディスクに格納するまでは、ホストコンピュータに書き込み完了の通知を発行しない。このため、前記変更により、ホストコンピュータから見たディスクアレイ装置の性能が劣化してしまう。
【００１５】
本発明は、キャッシュメモリについてのデータ退避の可否に基づいて、ディスクアレイ装置の装置状態を決定するディスクアレイ装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１６】
開示されるディスクアレイ装置の制御方法は、各々が、キャッシュメモリと、キャッシュメモリにディスクアレイ装置の主電源の停電時に電力を供給するバッテリと、キャッシュメモリにデータを格納するＣＰＵと、キャッシュメモリのデータを退避する不揮発性メモリとを含む第１及び第２の制御モジュールと、第１及び第２の制御モジュールによりデータが書込まれ又は読出されるディスクアレイとを含むディスクアレイ装置の制御方法である。ディスクアレイ装置の制御方法は、第１の制御モジュールのＣＰＵが、第２の制御モジュールのバッテリ及び不揮発性メモリによる、第２の制御モジュールのキャッシュメモリについてのデータ退避可否を示す他系状態情報を取得するステップと、第１の制御モジュールのＣＰＵが、第１の制御モジュールのバッテリ及び不揮発性メモリによる、第１の制御モジュールのキャッシュメモリについてのデータ退避可否を示す自系状態情報と、取得した他系状態情報とに基づいて、ディスクアレイ装置をライトバック状態とするか又はライトスルー状態とするかを決定するステップとを含む。
【発明の効果】
【００１７】
開示されるディスクアレイ装置によれば、バッテリ寿命が劣化したり、不揮発性メモリの書込み可能領域が減少した場合であっても、ディスクアレイ装置がライトバック状態で動作することができ、書き込み速度性能が低下する期間を短縮することができる。
【図面の簡単な説明】
【００１８】
【図１】ディスクアレイ装置の一例を示す図である。
【図２】キャッシュメモリの一例を示す図である。
【図３】診断タイミングテーブルの一例を示す図である。
【図４】データ退避方式テーブルの一例を示す図である。
【図５】データ退避方式テーブルの一例を示す図である。
【図６】データ退避方式の説明図である。
【図７】データ退避方式の説明図である。
【図８】データ退避の診断処理フローである。
【図９】本発明者が検討した背景となるデータ退避の診断処理フローである。
【発明を実施するための形態】
【００１９】
図１は、ディスクアレイ装置の構成を示す図である。
【００２０】
ディスクアレイ装置は、２個の制御モジュール１と１個のディスクアレイ３とを含む。２個の制御モジュールは、各々、同一の構成を有する。制御モジュール１は、ホスト制御部１１、スイッチ１２、バッテリ１３、ＣＰＵ１４、キャッシュメモリ１５、メモリ制御部１６、フラッシュメモリ１７、エキスパンダ１８を含む。
【００２１】
２個の制御モジュールを区別する場合には、制御モジュールＣＭ＃０又はＣＭ＃１という。例えば、制御モジュールＣＭ＃０に搭載されたホスト制御部を１１Ａと表し、制御モジュールＣＭ＃１に搭載されたホスト制御部を１１Ｂと表す。スイッチ１２等についても同様である。
【００２２】
ディスクアレイ装置は、２個のサーバと接続される。換言すれば、各々の制御モジュール１は、対応するサーバに接続される。ディスクアレイ装置は、サーバからの書き込み要求に応じて、サーバからデータを受信して、ディスクアレイ３に書き込む。また、ディスクアレイ装置は、サーバからの読み出し要求に応じて、ディスクアレイ３からデータを読み出して、サーバへ送信する。
【００２３】
このコンピュータシステム又はディスクアレイ装置は、データの信頼性の向上のために、データの二重化、換言すれば、ミラーリングを行う。換言すれば、このディスクアレイ装置はＲＡＩＤ装置である。２個の制御モジュール１を区別する場合に、例えば制御モジュールＣＭ＃０、ＣＭ＃１と表す。
【００２４】
ホスト制御部１１は、サーバとＣＰＵ１４とに接続され、サーバとディスクアレイ装置との間のデータ転送を制御する。例えば、ホスト制御部１１は、サーバから書き込み要求とライトデータとを受信して、ＣＰＵ１４に転送する。「ライトデータ」は、ディスクアレイ３に書き込むべきデータである。また、ホスト制御部１１は、サーバから読み出し要求を受信して、ＣＰＵ１４に転送する。この後、ホスト制御部１１は、ＣＰＵ１４からリードデータを受信して、読み出し要求に対する応答として、サーバに転送する。「リードデータ」は、ディスクアレイ３から読み出されたデータである。
【００２５】
ＣＰＵ１４は、サーバから受信した書き込み要求に従って、キャッシュメモリ１５又はディスクアレイ３へのデータの書き込みを制御する。また、ＣＰＵ１４は、サーバから受信した読み出し要求に従って、キャッシュメモリ１５又はディスクアレイ３からのデータの読み出しを制御する。
【００２６】
キャッシュメモリ１５は、ディスクアレイ３よりも十分に高速な揮発性メモリ、例えばＤＲＡＭ（Dynamic Random Access Memory）のような半導体メモリである。キャッシュメモリ１５は、ＣＰＵ１４に接続される。キャッシュメモリ１５には、サーバから転送されたライトデータ、又は、ディスクアレイ３から読み出されたリードデータが、一時的に格納される。ここで、キャッシュメモリ１５に書き込まれたライトデータであって、未だディスクアレイ３へ書き込まれていないライトデータを、「ダーティデータ」と言う。
【００２７】
ディスクアレイ３は、複数の磁気ディスク装置３１を含む。ディスクアレイ３は、エキスパンダ１８を介して、ＣＰＵ１４に接続される。
【００２８】
フラッシュメモリ１７は、キャッシュメモリ１５のデータの退避用の不揮発性メモリである。後述するように、ディスクアレイ装置の主電源の停電時に、キャッシュメモリ１５に格納されたデータであって、退避すべき全データが、フラッシュメモリ１７に退避される。これにより、キャッシュメモリ１５のデータを保証することができる。フラッシュメモリ１７は、不揮発性の記憶装置であれば良く、フラッシュメモリ１７に代えて、例えば磁気ディスク装置や種々の不揮発性半導体メモリを用いるようにしても良い。
【００２９】
フラッシュメモリ１７は、ディスクアレイ３よりも十分に高速ではあるが、キャッシュメモリ１５よりは低速な不揮発性メモリ、例えばＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）のような半導体メモリである。フラッシュメモリ１７は、メモリ制御部１６を介して、ＣＰＵ１４に接続される。フラッシュメモリ１７には、サーバから転送されたライトデータ、又は、ディスクアレイ３から読み出されたリードデータが、一時的に格納される（換言すれば、退避される）。メモリ制御部１６は、ＣＰＵ１４からの指示に従って、フラッシュメモリ１７の書込み又は読出しを実行する。
【００３０】
ＣＰＵ１４は、「ライトバック状態」で動作中に書き込み要求とライトデータとを受信した場合、ライトデータをキャッシュメモリ１５に書き込み、その後、ホスト制御部１１に書き込み完了を通知する。この通知を受信したホスト制御部１１は、サーバに書き込みの完了を通知する。この後、キャッシュメモリ１５に格納されたライトデータ、換言すれば、ダーティデータは、ＣＰＵ１４により、エキスパンダ１８を介して、ディスクアレイ３に書き込まれる。
【００３１】
ＣＰＵ１４は、「ライトスルー状態」で動作中に書き込み要求とライトデータとを受信した場合、ライトデータを一旦キャッシュメモリ１５に書き込み、その後、キャッシュメモリ１５に格納したライトデータを読み出してディスクアレイ３に書き込み、更にその後、ホスト制御部１１に書き込み完了を通知する。この通知を受信したホスト制御部１１は、サーバに書き込みの完了を通知する。
【００３２】
ＣＰＵ１４は、サーバから読み出し要求を受信した場合、キャッシュメモリ１５を検索する。要求されたデータ（リードデータ）がキャッシュメモリ１５に存在する場合、ＣＰＵ１４は、要求されたリードデータをキャッシュメモリ１５から読み出して、ホスト制御部１１に送信する。ホスト制御部１１は、受信したリードデータをサーバに送信する。
【００３３】
要求されたデータがキャッシュメモリ１５に存在しない場合、ＣＰＵ１４は、要求されたデータをディスクアレイ３から読み出してキャッシュメモリ１５に一旦格納し、キャッシュメモリ１５に格納したデータを読み出してホスト制御部１１に送信する。ホスト制御部１１は、受信したデータをサーバに送信する。
【００３４】
エキスパンダ１８は、ＣＰＵ１４とディスクアレイ３との間に設けられ、ＣＰＵ１４とディスクアレイ３との間のデータ転送を制御する。例えば、エキスパンダ１８は、ＣＰＵ１４から書き込み命令とダーティデータ又はライトデータとを受信して、ディスクアレイ３に転送する。書き込み命令は、ＣＰＵ１４により書き込み要求に基づいて生成される。また、エキスパンダ１８は、ＣＰＵ１４から読み出し命令を受信して、ディスクアレイ３に転送する。この後、エキスパンダ１８は、ディスクアレイ３からリードデータを受信して、読み出し命令に対する応答として、リードデータを一旦キャッシュメモリ１５に転送する。読み出し命令は、ＣＰＵ１４により読み出し要求に基づいて生成される。
【００３５】
ディスクアレイ３は、書き込み命令を受信した場合、複数のディスク装置３１の中の書き込み命令において指定されたアドレスに、受信したダーティデータ又はライトデータを書き込む。また、ディスクアレイ３は、読み出し命令を受信した場合、複数のディスク装置３１の中の読み出し命令において指定されたアドレスから、要求されたデータ（リードデータ）を読み出し、エキスパンダ１８を介して、ＣＰＵ１４に転送する。
【００３６】
なお、制御モジュールＣＭ＃０のエキスパンダ１８Ａ及び制御モジュールＣＭ＃１のエキスパンダ１８Ｂは、各々のディスク装置３１について書込み及び読出し可能とされる。これにより、制御モジュールＣＭ＃０及び制御モジュールＣＭ＃１のいずれか一方が故障しても、ディスクアレイ３について書込み及び読出しを実行することができる。
【００３７】
各制御モジュールＣＭ＃０及びＣＭ＃１に設けられたＣＰＵ１４は、ミラーリング用パス１９及びスイッチ１２により、相互に接続される。スイッチ１２は、例えばＰＣＩ  Ｅｘｐｒｅｓｓにおけるスイッチであり、ミラーリング用パス１９は、ＰＣＩ  Ｅｘｐｒｅｓｓに対応する通信路である。これにより、制御モジュールＣＭ＃０のＣＰＵ１４Ａと制御モジュールＣＭ＃１のＣＰＵ１４Ｂとは相互に接続される。例えば、制御モジュールＣＭ＃０のキャッシュメモリ１５Ａに格納されたダーティデータ及びリードデータがミラーリングされる、換言すれば、制御モジュールＣＭ＃１のキャッシュメモリ１５Ｂへコピーされる。これにより、ダーティデータ及びリードデータが二重化される。
【００３８】
例えば、制御モジュールＣＭ＃０において、ＣＰＵ１４Ａは、ダーティデータについてホスト制御部１１に書き込み完了を通知した後、当該ダーティデータのコピーを、制御モジュールＣＭ＃１のＣＰＵ１４Ｂに送信する。制御モジュールＣＭ＃１において、ＣＰＵ１４Ｂは、受信したダーティデータのコピーをキャッシュメモリ１５Ｂに格納する。また、制御モジュールＣＭ＃０において、ＣＰＵ１４Ａは、リードデータについてキャッシュメモリ１５Ａに格納した後、当該リードデータのコピーを、制御モジュールＣＭ＃１のＣＰＵ１４Ｂに送信する。制御モジュールＣＭ＃１において、ＣＰＵ１４Ｂは、受信したリードのコピーをキャッシュメモリ１５Ｂに格納する。制御モジュールＣＭ＃１のＣＰＵ１４Ｂから制御モジュールＣＭ＃０のＣＰＵ１４Ａに対しても、同様にデータ転送が行われる。
【００３９】
ＣＰＵ１４は、例えば診断処理部において、バッテリ１３の電力供給能力を診断し、また、フラッシュメモリ１７の書込み可能領域を診断する。バッテリ１３の電力供給能力は、ディスクアレイ装置の周囲温度や充電回数により徐々に劣化する。フラッシュメモリ１７の書込み可能領域は、データを書き込むことが可能な領域であり、従って、キャッシュメモリ１５のデータの退避領域である。フラッシュメモリ１７においては、書き込み回数制限に依存して、書き込みを繰り返すうちにメモリが破壊されることにより、書き込み可能領域が徐々に減る。フラッシュメモリ１７のサイズは、書き込み可能領域の減少を考慮して、キャッシュメモリ１５のサイズよりも大きくされる。
【００４０】
バッテリ１３は、例えば電気２重層コンデンサであり、制御モジュール１に設けられる。なお、バッテリ１３は、例えばニッケル水素電池、リチウムイオン電池等であっても良い。バッテリ１３は、通常時にはディスクアレイ装置の主電源により充電される。バッテリ１３は、ディスクアレイ装置の主電源が停電した場合に、例えば、図１において点線で囲んで示すように、ＣＰＵ１４、キャッシュメモリ１５、メモリ制御部１６及びフラッシュメモリ１７に電力を供給する。
【００４１】
ＣＰＵ１４は、診断用パス２０により、相互に接続される。診断用パス２０は、２個のＣＰＵ１４の間において、バッテリ１３及びフラッシュメモリ１７の診断結果を通信するための通信路であり、ミラーリング用パス１９とは別に設けられる。これにより、制御モジュールＣＭ＃０のＣＰＵ１４Ａと制御モジュールＣＭ＃１のＣＰＵ１４Ｂとは相互に接続される。例えば、制御モジュールＣＭ＃１のバッテリ１３Ｂの診断結果及びフラッシュメモリ１７の診断結果が、制御モジュールＣＭ＃０のＣＰＵ１４Ａに通知される。
【００４２】
このディスクアレイ装置においては、バッテリ１３及びフラッシュメモリ１７の診断結果に基づいて、ディスクアレイ装置の装置状態、換言すれば、ライトスルー状態又はライトバック状態が以下のように制御される。
【００４３】
このディスクアレイ装置においては、ディスクアレイ装置をライトバック状態又はライトスルー状態とするかは、制御モジュールＣＭ＃０のＣＰＵ１４Ａが決定する。従って、制御モジュールＣＭ＃０はマスタモジュールである。なお、制御モジュールＣＭ＃１がマスタモジュールであっても良い。
【００４４】
以下の説明においては、制御モジュールＣＭ＃０から見て、制御モジュールＣＭ＃０を自系といい、制御モジュールＣＭ＃１を他系という。また、制御モジュールＣＭ＃１から見て、制御モジュールＣＭ＃０を他系といい、制御モジュールＣＭ＃１を自系という。
【００４５】
制御モジュールＣＭ＃０のＣＰＵ１４Ａは、自系のバッテリ１３Ａのバッテリ容量と自系のフラッシュメモリ１７Ａの書込み可能領域(以下、フラッシュメモリ退避領域)とを診断し、診断結果に基づいて、自系のキャッシュメモリ１５Ａのデータ退避方式を決定する。制御モジュールＣＭ＃１のＣＰＵ１４Ｂは、自系のバッテリ１３Ｂのバッテリ容量と自系のフラッシュメモリ１７Ｂの書込み可能領域(フラッシュメモリ退避領域)とを診断し、診断結果に基づいて、自系のキャッシュメモリ１５Ｂのデータ退避方式を決定する。
【００４６】
また、制御モジュールＣＭ＃１のＣＰＵ１４Ｂは、自系の状態情報を、診断用パス２０を介して、他系のＣＰＵ１４Ａに通知する。これにより、例えば、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、制御モジュールＣＭ＃１のＣＰＵ１４Ｂから、他系状態情報を取得する。制御モジュールＣＭ＃０から見た他系状態情報は、制御モジュールＣＭ＃１のバッテリ１３Ｂ及びフラッシュメモリ１７Ｂによる、制御モジュールＣＭ＃１のキャッシュメモリ１５Ｂについてのデータ退避可否を示す情報である。
【００４７】
具体的には、制御モジュールＣＭ＃０から見た他系状態情報は、制御モジュールＣＭ＃１のキャッシュメモリ１５Ｂに書き込まれたデータの中で、ダーティデータとミラーリングデータの双方を、制御モジュールＣＭ＃１のフラッシュメモリ１７Ｂに退避可能か否かを示す情報である。
【００４８】
制御モジュールＣＭ＃０のＣＰＵ１４Ａは、自系状態情報と、制御モジュールＣＭ＃１のＣＰＵ１４Ｂから取得した他系状態情報とに基づいて、ディスクアレイ装置をライトバック状態とするか又はライトスルー状態とするかを決定する。制御モジュールＣＭ＃０から見た自系状態情報は、制御モジュールＣＭ＃０のバッテリ１３Ａ及びフラッシュメモリ１７による、制御モジュールＣＭ＃０のキャッシュメモリ１５Ａについてのデータ退避可否を示す情報である。
【００４９】
具体的には、制御モジュールＣＭ＃０から見た自系状態情報は、制御モジュールＣＭ＃０のキャッシュメモリ１５Ａに書き込まれたデータの中で、ダーティデータとミラーリングデータの双方、又は、制御モジュールＣＭ＃０のキャッシュメモリ１５Ａに書き込まれたダーティデータのみを、制御モジュールＣＭ＃０のフラッシュメモリ１７Ａに退避可能か否かを示す情報である。
【００５０】
制御モジュールＣＭ＃０のＣＰＵ１４Ａは、制御モジュールＣＭ＃１のキャッシュメモリ１５Ｂに書き込まれたダーティデータ及びミラーリングデータの双方を制御モジュールＣＭ＃１のフラッシュメモリ１７Ｂに退避可能であることを、他系状態情報が示す場合に、自系状態情報に拘わらず、ディスクアレイ装置をライトバック状態とする。
【００５１】
制御モジュールＣＭ＃１のバッテリ１３Ｂのバッテリ容量が制御モジュールＣＭ＃１のキャッシュメモリ１５Ｂに書き込まれたダーティデータ及びミラーリングデータの双方を制御モジュールＣＭ＃１のフラッシュメモリ１７Ｂに退避可能な容量以上であり、かつ、制御モジュールＣＭ＃１のフラッシュメモリ１７Ｂのメモリ容量が制御モジュールＣＭ＃１のキャッシュメモリ１５Ｂに書き込まれたダーティデータ及びミラーリングデータの双方を退避可能な容量以上である場合に、他系状態情報は、制御モジュールＣＭ＃１のキャッシュメモリ１５Ｂに書き込まれたダーティデータ及びミラーリングデータの双方を、制御モジュールＣＭ＃１のフラッシュメモリ１７Ｂに退避可能とされる。
【００５２】
制御モジュールＣＭ＃０のＣＰＵ１４Ａは、自系状態情報に応じて、制御モジュールＣＭ＃０のキャッシュメモリ１５Ａのデータ退避範囲を決定する。
【００５３】
例えば、自系状態情報が、制御モジュールＣＭ＃０のキャッシュメモリ１５Ａに書き込まれたダーティデータ及びミラーリングデータの双方を、制御モジュールＣＭ＃０のフラッシュメモリ１７Ａに退避可能であることを示す場合に、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、ディスクアレイ装置の主電源の停電時に、バッテリ１３Ａに制御モジュールＣＭ＃０のキャッシュメモリ１５Ａ、ＣＰＵ１４Ａ及びフラッシュメモリ１７Ａに電力を供給させ、制御モジュールＣＭ＃０のキャッシュメモリ１５Ａに書き込まれたダーティデータ及びミラーリングデータの双方を、制御モジュールＣＭ＃０のフラッシュメモリ１７Ａに退避する。
【００５４】
また、自系状態情報が、制御モジュールＣＭ＃０のキャッシュメモリ１５Ａに書き込まれたダーティデータのみを、制御モジュールＣＭ＃０のフラッシュメモリ１７Ａに退避可能であることを示す場合に、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、ディスクアレイ装置の主電源の停電時に、バッテリ１３Ａに制御モジュールＣＭ＃０のキャッシュメモリ１５Ａ、ＣＰＵ１４Ａ及びフラッシュメモリ１７Ａに電力を供給させ、制御モジュールＣＭ＃０のキャッシュメモリ１５Ａに書き込まれたダーティデータのみを、制御モジュールＣＭ＃０のフラッシュメモリ１７Ａに退避する。
【００５５】
また、自系状態情報が、制御モジュールＣＭ＃０のキャッシュメモリ１５Ａに書き込まれたダーティデータを、制御モジュールＣＭ＃０のフラッシュメモリ１７Ａに退避可能でないことを示す場合に、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、ディスクアレイ装置の主電源の停電時に、バッテリ１３Ａに制御モジュールＣＭ＃０のキャッシュメモリ１５Ａのみに電力を供給させる。
【００５６】
なお、制御モジュールＣＭ＃１のＣＰＵ１４Ｂが、ディスクアレイ装置の装置状態を決定するようにしても良い。また、制御モジュールＣＭ＃０のＣＰＵ１４Ａ及び制御モジュールＣＭ＃１のＣＰＵ１４Ｂのいずれか一方が、ディスクアレイ装置の装置状態を決定するようにしても良い。この場合、制御モジュールＣＭ＃０のＣＰＵ１４Ａ及び制御モジュールＣＭ＃１のＣＰＵ１４Ｂが、相互に自系の診断結果を他方に通知する。また、制御モジュールＣＭ＃０のＣＰＵ１４Ａ及び制御モジュールＣＭ＃１のＣＰＵ１４Ｂの各々に自系のキャッシュメモリ１５のデータ退避方式を決定する処理部を設け、これらとは別に、ディスクアレイ装置の装置状態を決定する処理部を、制御モジュールＣＭ＃０のＣＰＵ１４Ａ及びＣＭ＃１のＣＰＵ１４Ｂのいずれか一方に設けるようにしても良い。
【００５７】
図２は、キャッシュメモリ１５の構成を示す図である。なお、図２のキャッシュメモリ１５は、制御モジュールＣＭ＃０のキャッシュメモリ１５Ａであるものとする。
【００５８】
キャッシュメモリ１５は、領域１５１〜１５５に分割される。領域１５１は、種々の管理テーブルを格納する領域である。領域１５２は、自系の制御モジュール１（ＣＭ＃０）のライトデータであって、ディスクアレイ３に書き込まれていないライトデータ、換言すれば、ダーティデータを格納する領域である。領域１５３は、他系の制御モジュール１（ＣＭ＃１）のダーティデータ、換言すれば、ミラーリングデータを格納する領域である。領域１５４は、自系の制御モジュール１（ＣＭ＃０）のリードデータを格納する領域である。領域１５５は、その他のデータを格納する領域であり、例えばファームウェアを格納するファーム領域を含む。
【００５９】
領域１５２に格納されているダーティデータを、Ｄａｔａ＃０という。領域１５３に格納されているミラーリングデータを、Ｄａｔａ＃１という。領域１５４に格納されているリードデータを、Ｄａｔａ＃２という。領域１５５に格納されているデータを、Ｄａｔａ＃３という。Ｄａｔａ＃０は、制御モジュールＣＭ＃０のキャッシュメモリ１５Ａにおけるダーティデータであり、Ｄａｔａ＃１は、制御モジュールＣＭ＃０のキャッシュメモリ１５Ａにおけるミラーリングデータである。
【００６０】
例えば、制御モジュールＣＭ＃０のキャッシュメモリ１５Ａにおけるミラーリングデータ（Ｄａｔａ＃１）は、制御モジュールＣＭ＃１のダーティデータのコピーである。同様に、制御モジュールＣＭ＃１のキャッシュメモリ１５Ｂにおけるミラーリングデータは、制御モジュールＣＭ＃０のダーティデータ（Ｄａｔａ＃０）のコピーである。そこで、制御モジュールＣＭ＃１のダーティデータを「ダーティデータ（Ｄａｔａ＃１）」ということがあり、制御モジュールＣＭ＃１のミラーリングデータを「ミラーリングデータ（Ｄａｔａ＃０）」ということがある。この例では、制御モジュールＣＭ＃０におけるダーティデータのサイズ及びＣＭ＃１におけるダーティデータのサイズは等しい。
【００６１】
キャッシュメモリ１５において、Ｄａｔａ＃０が、ディスクアレイ装置の主電源の停電時において、フラッシュメモリ１７Ａに退避することにより保証されるデータである。また、Ｄａｔａ＃１は、ミラーリングデータであるので、ディスクアレイ装置の主電源の停電時において、フラッシュメモリ１７Ａに退避することにより保証されることが望ましいデータである。
【００６２】
領域１５１には、キャッシュメモリ管理テーブル１５１１、診断タイミングテーブル１５１２、データ退避方式テーブル１５１３、バッテリテーブル１５１４、フラッシュメモリテーブル１５１５が、格納される。なお、これらのテーブルを総称してテーブル１５１１〜１５１５ということがある。
【００６３】
キャッシュメモリ管理テーブル１５１１は、制御モジュール１のＣＰＵ１４上で動作するＯＳ（オペレーティングシステム）に備えられる。ディスクアレイ装置の主電源の投入時にＯＳが起動されると、起動されたＯＳ、換言すれば、ＯＳを実行するＣＰＵ１４により、キャッシュメモリ管理テーブル１５１１がキャッシュメモリ１５に格納される。キャッシュメモリ管理テーブル１５１１は、キャッシュメモリ１５における、領域１５１〜１５５のアドレス、特に、Ｄａｔａ＃０〜Ｄａｔａ＃３を格納する予定のアドレスを格納する。これにより、キャッシュメモリ１５における領域１５１〜１５５が定められる。キャッシュメモリ管理テーブル１５１１は、キャッシュメモリ１５に格納された時点で、キャッシュメモリ１５に格納されたデータの種類とアドレスを格納していない。
【００６４】
ＣＰＵ１４は、前述したように、図２に示すように、Ｄａｔａ＃０〜Ｄａｔａ＃３を、各々が格納される領域である領域１５２〜１５５に書き込む。ＣＰＵ１４は、キャッシュメモリ１５にデータを格納する都度に、格納したデータの種類とアドレスとをキャッシュメモリ管理テーブル１５１１に書き込む。これにより、キャッシュメモリ管理テーブル１５１１は、キャッシュメモリ１５に格納されたデータの種類とアドレスとを管理する。データの種類としては、ダーティデータ、ミラーリングデータ、リードデータ、その他のデータ、ファームウェアがある。
【００６５】
例えば、領域１５２のＤａｔａ＃０は、実際には、複数のダーティデータを含む。これらの複数のダーティデータを含む領域１５２の全体が、後述するように、フラッシュメモリ１７に転送される。そこで、複数のダーティデータを含む領域１５２の全体のデータをＤａｔａ＃０という。また、領域１５３のＤａｔａ＃１は、実際には、複数のミラーリングデータを含む。これらの複数のミラーリングデータを含む領域１５３の全体が、後述するように、フラッシュメモリ１７に転送される。そこで、複数のミラーリングデータを含む領域１５３の全体のデータをＤａｔａ＃１という。
【００６６】
ディスクアレイ装置の主電源の停電時に、ＣＰＵ１４は、バッテリ１３を制御して、図５及び図６を参照して後述するように、キャッシュメモリ１５を含む予め定められた範囲に対して、電力を供給させる。これに加えて、キャッシュメモリ１５のデータをフラッシュメモリ１７に退避する場合に、ＣＰＵ１４は、キャッシュメモリ管理テーブル１５１１を参照して、Ｄａｔａ＃０、又は、Ｄａｔａ＃０及びＤａｔａ＃１を、キャッシュメモリ１５からフラッシュメモリ１７に転送する。
【００６７】
診断タイミングテーブル１５１２は、制御モジュール１のＣＰＵ１４上で動作するＯＳに備えられる。ディスクアレイ装置の主電源の投入時にＯＳが起動されると、ＯＳを実行するＣＰＵ１４により、診断タイミングテーブル１５１２がキャッシュメモリ１５に格納される。診断タイミングテーブル１５１２は、診断項目について、その診断タイミングを定める。診断タイミングテーブル１５１２は、キャッシュメモリ１５に格納された時点で、診断タイミングを格納するのみで、診断結果を格納していない。診断タイミングテーブル１５１２については、図３を参照して後述する。
【００６８】
データ退避方式テーブル１５１３は、制御モジュール１のＣＰＵ１４上で動作するＯＳに備えられる。ディスクアレイ装置の主電源の投入時にＯＳが起動されると、ＯＳを実行するＣＰＵ１４により、データ退避方式テーブル１５１３がキャッシュメモリ１５に格納される。
【００６９】
データ退避方式テーブル１５１３は、複数の診断結果の組合せに対応して、ディスクアレイ装置の装置状態を定める。ディスクアレイ装置の装置状態とは、ディスクアレイ装置をライトバック状態とするか、ライトスルー状態とするかの区別を示す。ディスクアレイ装置の装置状態は、自系の制御モジュール１におけるバッテリ１３の診断結果及びフラッシュメモリ１７の診断結果と、他系の制御モジュール１におけるバッテリ１３の診断結果及びフラッシュメモリ１７の診断結果との組合せに対応して定められる。データ退避方式テーブル１５１３については、図４及び図５を参照して後述する。
【００７０】
バッテリテーブル１５１４は、制御モジュール１のＣＰＵ１４上で動作するＯＳに備えられる。ディスクアレイ装置の主電源の投入時にＯＳが起動されると、ＯＳを実行するＣＰＵ１４により、バッテリテーブル１５１４がキャッシュメモリ１５に格納される。バッテリテーブル１５１４は、キャッシュメモリ１５から退避されるデータ量に対する、バッテリ容量を格納する。換言すれば、バッテリテーブル１５１４は、キャッシュメモリ１５から退避されるデータを退避させる際に必要なバッテリ容量を格納する。これにより、バッテリ容量が求まれば、バッテリ１３からの放電時間が定まり、放電時間内に退避可能なデータ量が求まる。
【００７１】
ＣＰＵ１４は、ディスクアレイ装置の主電源の停電時において、バッテリ容量の診断結果を用いてバッテリテーブル１５１４を参照する。これにより、ＣＰＵ１４は、バッテリ１３を用いて、キャッシュメモリ１５のＤａｔａ＃０及びＤａｔａ＃１を、フラッシュメモリ１７に退避させることができるか否かを判断する。具体的には、ＣＰＵ１４は、当該バッテリ容量の診断結果を用いてバッテリテーブル１５１４を参照して、当該バッテリ容量によりキャッシュメモリ１５から退避可能なデータ量を求め、当該退避可能なデータ量がＤａｔａ＃０又は（Ｄａｔａ＃０＋Ｄａｔａ＃１）より大きいか否かを判断する。
【００７２】
フラッシュメモリテーブル１５１５は、制御モジュール１のＣＰＵ１４上で動作するＯＳに備えられる。ディスクアレイ装置の主電源の投入時にＯＳが起動されると、ＯＳを実行するＣＰＵ１４により、フラッシュメモリテーブル１５１５がキャッシュメモリ１５に格納される。フラッシュメモリテーブル１５１５は、キャッシュメモリ１５から退避されるデータ量を格納するために必要である、フラッシュメモリ１７の退避領域のサイズを格納する。これにより、フラッシュメモリ退避領域が求まれば、キャッシュメモリ１５から退避可能なデータ量が求まる。
【００７３】
ＣＰＵ１４は、ディスクアレイ装置の主電源の停電時において、フラッシュメモリ退避領域の診断結果を用いてフラッシュメモリテーブル１５１５を参照する。これにより、ＣＰＵ１４は、キャッシュメモリ１５のＤａｔａ＃０及びＤａｔａ＃１を、フラッシュメモリ１７に退避させることができるか否かを判断する。具体的には、ＣＰＵ１４は、当該フラッシュメモリ退避領域の診断結果を用いてフラッシュメモリテーブル１５１５を参照して、フラッシュメモリ１７に書き込み可能なデータ量、換言すれば、キャッシュメモリ１５から退避可能なデータ量を求め、当該退避可能なデータ量がＤａｔａ＃０又は（Ｄａｔａ＃０＋Ｄａｔａ＃１）より大きいか否かを判断する。
【００７４】
なお、テーブル１５１１〜１５１５は、制御モジュール１とは別に設けられる制御モジュール１の上位コンピュータにおいて、ファームウェアとして設けるようにしても良い。
【００７５】
図３は、診断タイミングテーブル１５１２の一例を示す。
【００７６】
ダーティデータ（Ｄａｔａ＃０）のサイズは、この例では、図３に示すように、固定である。また、図２に示すように、領域１５２のサイズがダーティデータ（Ｄａｔａ＃０）のサイズである。従って、ダーティデータのサイズは、前述したように、キャッシュメモリ管理テーブル１５１１が格納する領域１５２のアドレス及び領域１５３のアドレスに基づいて、ディスクアレイ装置の起動時に、又は、診断の都度に、ＣＰＵ１４により生成される。生成されたダーティデータのサイズは、例えば次回の診断まで、例えばキャッシュメモリ管理テーブル１５１１に保持される。
【００７７】
バッテリ容量は、バッテリ１３の電力供給能力であり、前述したように、徐々に劣化する。そこで、バッテリ容量は、例えば、図３に示すように、ディスクアレイ装置の起動時、ディスクアレイ装置の主電源の停電からの復旧時（以下、復電時という）、又は、１週間に１回、診断される。バッテリ容量の診断結果は、例えば、次回のバッテリ容量の診断まで、診断タイミングテーブル１５１２に保持される。
【００７８】
フラッシュメモリ退避領域は、キャッシュメモリ１５のデータを書き込み可能な領域であり、前述したように、徐々に減る。そこで、フラッシュメモリ退避領域は、図３に示すように、例えば、ディスクアレイ装置の起動時、又は、復電時に、診断される。これは、フラッシュメモリ１７のメモリセルの破壊は、データの書込み時、換言すれば、キャッシュメモリ１５からのデータの退避時にのみ発生するためである。フラッシュメモリ退避領域の診断結果は、例えば、次回のフラッシュメモリ退避領域の診断まで、診断タイミングテーブル１５１２に保持される。
【００７９】
他系制御モジュール（ＣＭ）の診断結果は、一方の制御モジュール１（ＣＭ＃０）に他方の制御モジュール１（ＣＭ＃１）から通知された診断結果、換言すれば、他系状態情報である。他系制御モジュールの診断結果は、制御モジュール１が他系の制御モジュール１から診断結果を受信する都度に格納される。例えば、制御モジュールＣＭ＃０の診断タイミングテーブル１５１２においては、制御モジュールＣＭ＃１の状態情報、換言すれば、制御モジュールＣＭ＃１の状態が「全Ｗｒｉｔｅデータ可」であるか否かを示す情報が格納される。
【００８０】
図４は、データ退避方式テーブル１５１３の一例を示し、特に、制御モジュールＣＭ＃０におけるデータ退避方式テーブル１５１３を示す。なお、図４において、比較のために、図９の方式によるディスクアレイ装置の装置状態を示す。
【００８１】
図４において、データ退避方式テーブル１５１３は、バッテリ容量、フラッシュメモリ退避領域、自系のデータ退避方式、他系状態、装置状態を格納する。バッテリ容量は、自系の制御モジュールＣＭ＃０におけるバッテリ１３Ａの容量が、キャッシュメモリ１５Ａに格納されたデータを退避させることができる範囲を示す情報である。フラッシュメモリ退避領域は、自系の制御モジュールＣＭ＃０におけるフラッシュメモリ１７Ａのフラッシュメモリ退避領域が、キャッシュメモリ１５Ａに格納されたデータを退避させることができる範囲を示す情報である。従って、キャッシュメモリ１５Ａに格納されたデータを退避させることができる範囲は、バッテリ容量とフラッシュメモリ退避領域とに基づいて定まる。自系のデータ退避方式は、自系の制御モジュールＣＭ＃０におけるデータ退避方式を示す情報である。他系状態は、他系の制御モジュールＣＭ＃１の状態を示す状態情報であり、具体的には、他系の制御モジュールＣＭ＃１において全Ｗｒｉｔｅデータを退避可能であるか否かを示す情報である。装置状態は、ディスクアレイ装置の動作がライトバック状態であるかライトスルー状態であるかを示す情報である。
【００８２】
制御モジュールＣＭ＃０のＣＰＵ１４Ａは、前述したように、自系の診断によりバッテリ容量とフラッシュメモリ退避領域とを求め、求めたバッテリ容量とフラッシュメモリ退避領域とに対応する自系のデータ退避方式を、データ退避方式テーブル１５１３から求める。更に、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、前述したように、他系の制御モジュールＣＭ＃１の状態情報である他系状態を取得して、取得した他系状態と求めた自系のデータ退避方式とに対応する装置状態を、データ退避方式テーブル１５１３から求める。
【００８３】
図４において、ケースＮｏ．１は、自系の制御モジュールＣＭ＃０においてバッテリ容量が「全Ｗｒｉｔｅデータ可」かつフラッシュメモリ退避領域が「全Ｗｒｉｔｅデータ可」であり、他系の制御モジュールＣＭ＃１の状態が「全Ｗｒｉｔｅデータ可」である場合である。
【００８４】
制御モジュールＣＭ＃０において、バッテリ容量が「全Ｗｒｉｔｅデータ可」であるとは、バッテリ１３Ａの容量が、キャッシュメモリ１５Ａの退避する必要のある全てのデータ（全Ｗｒｉｔｅデータ）を退避可能な容量以上であることを示す。「全Ｗｒｉｔｅデータ」は、図２に示すＤａｔａ＃０とＤａｔａ＃１との和であり、「Ｄａｔａ＃０＋＃１」と表すこととする。
【００８５】
制御モジュールＣＭ＃０において、フラッシュメモリ退避領域が「全Ｗｒｉｔｅデータ可」であるとは、フラッシュメモリ１７Ａにおけるデータの書込み可能領域が、全Ｗｒｉｔｅデータを退避可能なメモリ容量以上であることを示す。
【００８６】
他系の制御モジュールＣＭ＃１の状態が「全Ｗｒｉｔｅデータ可」とは、制御モジュールＣＭ＃１において、バッテリ１３Ｂの容量が全Ｗｒｉｔｅデータを退避可能な容量以上であり、かつ、フラッシュメモリ１７Ｂにおけるデータの書込み可能領域が全Ｗｒｉｔｅデータを退避可能なメモリ容量以上であることを示す。従って、結果として、他系の制御モジュールＣＭ＃１の状態が「全Ｗｒｉｔｅデータ可」とは、制御モジュールＣＭ＃１において、キャッシュメモリ１５Ｂの全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）を、フラッシュメモリ１７Ｂに退避できる場合である。
【００８７】
このように、ケースＮｏ．１は、制御モジュールＣＭ＃０において、キャッシュメモリ１５Ａの全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）がフラッシュメモリ１７Ａに退避可能であり、かつ、制御モジュールＣＭ＃１において、キャッシュメモリ１５Ｂの全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）がフラッシュメモリ１７Ｂに退避可能である場合である。
【００８８】
以上から、ケースＮｏ．１において、制御モジュールＣＭ＃０におけるキャッシュメモリ１５Ａのデータ退避方式は、「全ＷｒｉｔｅデータＤｅｓｔａｇｅ」とされる。このように、データ退避方式は、「バッテリ容量」と「フラッシュメモリ退避領域」とから決定される。「全ＷｒｉｔｅデータＤｅｓｔａｇｅ」とは、全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）を、フラッシュメモリ１７へ退避（Ｄｅｓｔａｇｅ）することである。これにより、全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）が保証される。
【００８９】
この結果、ケースＮｏ．１においては、制御モジュールＣＭ＃０及び制御モジュールＣＭ＃１の双方において、ダーティデータ及びミラーリングデータの双方が保証される。これに応じて、ケースＮｏ．１において、ディスクアレイ装置は、ライトバック状態とされる。このように、ディスクアレイ装置の「装置状態」は、「自系データ退避方式」と「他系状態」とから決定される。
【００９０】
ケースＮｏ．２は、自系の制御モジュールＣＭ＃０においてバッテリ容量が「全Ｗｒｉｔｅデータ可」かつフラッシュメモリ退避領域が「全Ｗｒｉｔｅデータ可」であるが、他系の制御モジュールＣＭ＃１の状態が「全Ｗｒｉｔｅデータ不可」である場合である。
【００９１】
他系の制御モジュールＣＭ＃１の状態が「全Ｗｒｉｔｅデータ不可」とは、制御モジュールＣＭ＃１において、バッテリ１３Ｂの容量が全Ｗｒｉｔｅデータを退避可能な容量未満であるか、又は、フラッシュメモリ１７Ｂにおけるデータの書込み可能領域が全Ｗｒｉｔｅデータを退避可能なメモリ容量未満であるかのいずれか一方であることを示す。従って、結果として、他系の制御モジュールＣＭ＃１の状態が「全Ｗｒｉｔｅデータ不可」とは、制御モジュールＣＭ＃１において、キャッシュメモリ１５Ｂの全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）を、フラッシュメモリ１７Ｂに退避できない場合である。
【００９２】
このように、ケースＮｏ．２は、制御モジュールＣＭ＃０において、キャッシュメモリ１５Ａの全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）がフラッシュメモリ１７Ａに退避可能であり、かつ、制御モジュールＣＭ＃１において、キャッシュメモリ１５Ｂの全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）がフラッシュメモリ１７Ｂに退避可能でない場合である。
【００９３】
以上から、ケースＮｏ．２において、制御モジュールＣＭ＃０におけるキャッシュメモリ１５Ａのデータ退避方式は、「全ＷｒｉｔｅデータＤｅｓｔａｇｅ」とされる。これにより、ケースＮｏ．２においては、制御モジュールＣＭ＃０において、ダーティデータ（Ｄａｔａ＃０）及びミラーリングデータ（Ｄａｔａ＃１）が保証される。
【００９４】
一方、制御モジュールＣＭ＃１において、ダーティデータ（Ｄａｔａ＃１）は、フラッシュメモリ１７Ｂに退避できない。しかし、制御モジュールＣＭ＃０におけるミラーリングデータ（Ｄａｔａ＃１）は、制御モジュールＣＭ＃１のダーティデータ（Ｄａｔａ＃１）のコピーである。従って、制御モジュールＣＭ＃１のダーティデータ（Ｄａｔａ＃１）は、制御モジュールＣＭ＃０のフラッシュメモリ１７Ａに退避され、保証されると考えることができる。これに応じて、ケースＮｏ．２において、ディスクアレイ装置は、ライトバック状態とされる。
【００９５】
このように、図１のディスクアレイ装置においては、制御モジュールＣＭ＃０のダーティデータ及び制御モジュールＣＭ＃１のダーティデータの双方が退避できれば、ライトバック状態が維持される。ダーティデータの退避先は問われない。換言すれば、他系のミラーリングデータが退避された場合、自系のダーティデータが退避されたとして、ディスクアレイ装置の装置状態が決定される。
【００９６】
ケースＮｏ．３は、自系の制御モジュールＣＭ＃０においてバッテリ容量が「全Ｗｒｉｔｅデータ可」であるが、フラッシュメモリ退避領域が「自系Ｗｒｉｔｅデータ可」であり、他系の制御モジュールＣＭ＃１の状態が「全Ｗｒｉｔｅデータ可」である場合である。
【００９７】
制御モジュールＣＭ＃０において、フラッシュメモリ退避領域が「自系Ｗｒｉｔｅデータ可」であるとは、フラッシュメモリ１７Ａにおけるデータの書込み可能領域が、自系Ｗｒｉｔｅデータを退避可能なメモリ容量以上であることを示す。「自系Ｗｒｉｔｅデータ」は、図２に示すＤａｔａ＃０、換言すれば、ダーティデータである。
【００９８】
このように、ケースＮｏ．３は、制御モジュールＣＭ＃０において、キャッシュメモリ１５Ａの自系Ｗｒｉｔｅデータ（Ｄａｔａ＃０）がフラッシュメモリ１７Ａに退避可能であり、かつ、制御モジュールＣＭ＃１において、キャッシュメモリ１５Ｂの全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）がフラッシュメモリ１７Ｂに退避可能である場合である。
【００９９】
以上から、ケースＮｏ．３において、制御モジュールＣＭ＃０におけるキャッシュメモリ１５Ａのデータ退避方式は、「自系ＷｒｉｔｅデータＤｅｓｔａｇｅ」とされる。「自系ＷｒｉｔｅデータＤｅｓｔａｇｅ」とは、自系Ｗｒｉｔｅデータ（Ｄａｔａ＃０）を、フラッシュメモリ１７へ退避（Ｄｅｓｔａｇｅ）することである。これにより、ケースＮｏ．３においては、制御モジュールＣＭ＃０において、ダーティデータ（Ｄａｔａ＃０）が保証される。
【０１００】
なお、以上のように、キャッシュＤｅｓｔａｇｅには、「全ＷｒｉｔｅデータＤｅｓｔａｇｅ」と「自系ＷｒｉｔｅデータＤｅｓｔａｇｅ」との２個のモードが存在する。ディスクアレイ装置の主電源の停電時において、両者の電力の供給範囲は同一であるが、キャッシュメモリ１５から退避されるデータの範囲が、相互に異なる。具体的には、「全ＷｒｉｔｅデータＤｅｓｔａｇｅ」においては、全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）がフラッシュメモリ１７へ退避される。一方、「自系ＷｒｉｔｅデータＤｅｓｔａｇｅ」においては、自系Ｗｒｉｔｅデータ（Ｄａｔａ＃０）がフラッシュメモリ１７へ退避される。
【０１０１】
一方、制御モジュールＣＭ＃１において、ダーティデータ（Ｄａｔａ＃１）は、フラッシュメモリ１７Ｂに退避できる。これに応じて、ケースＮｏ．３において、ディスクアレイ装置は、ライトバック状態とされる。
【０１０２】
ケースＮｏ．４は、自系の制御モジュールＣＭ＃０においてバッテリ容量が「全Ｗｒｉｔｅデータ可」であるが、フラッシュメモリ退避領域が「自系Ｗｒｉｔｅデータ可」であり、他系の制御モジュールＣＭ＃１の状態が「全Ｗｒｉｔｅデータ不可」である場合である。
【０１０３】
このように、ケースＮｏ．４は、制御モジュールＣＭ＃０において、キャッシュメモリ１５Ａの自系Ｗｒｉｔｅデータ（Ｄａｔａ＃０）がフラッシュメモリ１７Ａに退避可能であり、かつ、制御モジュールＣＭ＃１において、キャッシュメモリ１５Ｂの全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）がフラッシュメモリ１７Ｂに退避可能でない場合である。
【０１０４】
以上から、ケースＮｏ．４において、制御モジュールＣＭ＃０におけるキャッシュメモリ１５Ａのデータ退避方式は、「自系ＷｒｉｔｅデータＤｅｓｔａｇｅ」とされる。これにより、ケースＮｏ．４においては、制御モジュールＣＭ＃０において、ダーティデータ（Ｄａｔａ＃０）のみが保証される。
【０１０５】
一方、制御モジュールＣＭ＃１において、ダーティデータ（Ｄａｔａ＃１）及びミラーリングデータ（Ｄａｔａ＃０）は、フラッシュメモリ１７Ｂに退避できない。従って、制御モジュールＣＭ＃１のダーティデータ（Ｄａｔａ＃１）は、制御モジュールＣＭ＃０及びＣＭ＃１のいずれにおいても保証されない。これに応じて、ケースＮｏ．４において、ディスクアレイ装置は、ライトスルー状態とされる。
【０１０６】
ケースＮｏ．５は、自系の制御モジュールＣＭ＃０においてバッテリ容量が「全Ｗｒｉｔｅデータ可」であるが、フラッシュメモリ退避領域が「ＢａｃｋＵｐ不可」であり、他系の制御モジュールＣＭ＃１の状態が「全Ｗｒｉｔｅデータ可」である場合である。
【０１０７】
制御モジュールＣＭ＃０において、フラッシュメモリ退避領域が「ＢａｃｋＵｐ不可」であるとは、フラッシュメモリ１７Ａにおけるデータの書込み可能領域が、自系Ｗｒｉｔｅデータ（Ｄａｔａ＃０）を退避可能なメモリ容量未満であることを示す。
【０１０８】
このように、ケースＮｏ．５は、制御モジュールＣＭ＃０において、キャッシュメモリ１５Ａの自系Ｗｒｉｔｅデータ（Ｄａｔａ＃０）がフラッシュメモリ１７に退避可能でなく、かつ、制御モジュールＣＭ＃１において、キャッシュメモリ１５Ｂの全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）がフラッシュメモリ１７Ｂに退避可能である場合である。なお、キャッシュメモリ１５Ａのミラーリングデータ（Ｄａｔａ＃１）も、フラッシュメモリ１７Ａに退避可能ではない。
【０１０９】
以上から、ケースＮｏ．５において、制御モジュールＣＭ＃０におけるキャッシュメモリ１５Ａのデータ退避方式は、「キャッシュＢａｃｋＵｐ」とされる。「キャッシュＢａｃｋＵｐ」とは、全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）を、フラッシュメモリ１７へ実際には退避（Ｄｅｓｔａｇｅ）せずに、キャッシュメモリ１５Ａに格納したままの状態とすることである。これにより、ケースＮｏ．５においては、制御モジュールＣＭ＃０において、ダーティデータ（Ｄａｔａ＃０）が保証されない。換言すれば、キャッシュメモリ１５Ａに格納されたデータは、ディスクアレイ装置の主電源の停電時にバッテリ１３Ａからキャッシュメモリ１５Ａに電力が供給されている期間においては保持されるが、電力が供給されなくなると消失してしまう。
【０１１０】
一方、制御モジュールＣＭ＃１において、ミラーリングデータ（Ｄａｔａ＃０）は、フラッシュメモリ１７Ｂに退避できる。換言すれば、制御モジュールＣＭ＃０のダーティデータ（Ｄａｔａ＃０）は、制御モジュールＣＭ＃１のフラッシュメモリ１７Ｂによって保証される。これに応じて、ケースＮｏ．５において、ディスクアレイ装置は、ライトバック状態とされる。
【０１１１】
ケースＮｏ．６は、自系の制御モジュールＣＭ＃０においてバッテリ容量が「全Ｗｒｉｔｅデータ可」であるが、フラッシュメモリ退避領域が「ＢａｃｋＵｐ不可」であり、他系の制御モジュールＣＭ＃１の状態が「全Ｗｒｉｔｅデータ不可」である場合である。
【０１１２】
このように、ケースＮｏ．６は、制御モジュールＣＭ＃０において、キャッシュメモリ１５Ａの自系Ｗｒｉｔｅデータ（Ｄａｔａ＃０）がフラッシュメモリ１７Ａに退避可能でなく、かつ、制御モジュールＣＭ＃１において、キャッシュメモリ１５Ｂの全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）がフラッシュメモリ１７Ｂに退避可能でない場合である。なお、キャッシュメモリ１５Ａのミラーリングデータ（Ｄａｔａ＃１）も、フラッシュメモリ１７Ａに退避可能ではない。
【０１１３】
以上から、ケースＮｏ．６において、制御モジュールＣＭ＃０におけるキャッシュメモリ１５Ａのデータ退避方式は、「キャッシュＢａｃｋＵｐ」とされる。これにより、ケースＮｏ．６においては、制御モジュールＣＭ＃０において、ダーティデータ（Ｄａｔａ＃０）が保証されない。
【０１１４】
一方、制御モジュールＣＭ＃１において、ダーティデータ（Ｄａｔａ＃１）及びミラーリングデータ（Ｄａｔａ＃０）は、フラッシュメモリ１７Ｂに退避できない。従って、制御モジュールＣＭ＃０のダーティデータ及びＣＭ＃１のダーティデータは、制御モジュールＣＭ＃０及びＣＭ＃１のいずれにおいても保証されない。これに応じて、ケースＮｏ．６において、ディスクアレイ装置は、ライトスルー状態とされる。
【０１１５】
ケースＮｏ．７は、自系の制御モジュールＣＭ＃０においてバッテリ容量が「自系Ｗｒｉｔｅデータ可」かつフラッシュメモリ退避領域が「全Ｗｒｉｔｅデータ可」であり、他系の制御モジュールＣＭ＃１の状態が「全Ｗｒｉｔｅデータ可」である場合である。
【０１１６】
制御モジュールＣＭ＃０において、バッテリ容量が「自系Ｗｒｉｔｅデータ可」であるとは、バッテリ１３Ａの容量が、自系Ｗｒｉｔｅデータ（Ｄａｔａ＃０）を退避可能なメモリ容量以上であることを示す。
【０１１７】
このように、ケースＮｏ．７は、制御モジュールＣＭ＃０において、キャッシュメモリ１５Ａの自系Ｗｒｉｔｅデータ（Ｄａｔａ＃０）がフラッシュメモリ１７Ａに退避可能であり、かつ、制御モジュールＣＭ＃１において、キャッシュメモリ１５Ｂの全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）がフラッシュメモリ１７Ｂに退避可能である場合である。
【０１１８】
以上から、ケースＮｏ．７において、制御モジュールＣＭ＃０におけるキャッシュメモリ１５Ａのデータ退避方式は、「自系ＷｒｉｔｅデータＤｅｓｔａｇｅ」とされる。これにより、ケースＮｏ．７においては、制御モジュールＣＭ＃０において、ダーティデータ（Ｄａｔａ＃０）のみが保証される。
【０１１９】
一方、制御モジュールＣＭ＃１において、ダーティデータ（Ｄａｔａ＃１）は、フラッシュメモリ１７Ｂに退避できる。これに応じて、ケースＮｏ．７において、ディスクアレイ装置は、ライトバック状態とされる。
【０１２０】
ケースＮｏ．８は、自系の制御モジュールＣＭ＃０においてバッテリ容量が「自系Ｗｒｉｔｅデータ可」かつフラッシュメモリ退避領域が「全Ｗｒｉｔｅデータ可」であるが、他系の制御モジュールＣＭ＃１の状態が「全Ｗｒｉｔｅデータ不可」である場合である。
【０１２１】
このように、ケースＮｏ．８は、制御モジュールＣＭ＃０において、キャッシュメモリ１５Ａの自系Ｗｒｉｔｅデータ（Ｄａｔａ＃０）がフラッシュメモリ１７Ａに退避可能であり、かつ、制御モジュールＣＭ＃１において、キャッシュメモリ１５Ｂの全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）がフラッシュメモリ１７Ｂに退避可能でない場合である。
【０１２２】
以上から、ケースＮｏ．８において、制御モジュールＣＭ＃０におけるキャッシュメモリ１５Ａのデータ退避方式は、「自系ＷｒｉｔｅデータＤｅｓｔａｇｅ」とされる。これにより、ケースＮｏ．８においては、制御モジュールＣＭ＃０において、ダーティデータ（Ｄａｔａ＃０）が保証される。
【０１２３】
一方、制御モジュールＣＭ＃１において、ダーティデータ（Ｄａｔａ＃１）及びミラーリングデータ（Ｄａｔａ＃０）は、フラッシュメモリ１７Ｂに退避できない。従って、制御モジュールＣＭ＃１のダーティデータ（Ｄａｔａ＃１）は、制御モジュールＣＭ＃０及びＣＭ＃１のいずれにおいても保証されない。これに応じて、ケースＮｏ．８において、ディスクアレイ装置は、ライトスルー状態とされる。
【０１２４】
ケースＮｏ．９は、自系の制御モジュールＣＭ＃０においてバッテリ容量が「自系Ｗｒｉｔｅデータ可」であるが、フラッシュメモリ退避領域が「自系Ｗｒｉｔｅデータ可」であり、他系の制御モジュールＣＭ＃１の状態が「全Ｗｒｉｔｅデータ可」である場合である。
【０１２５】
このように、ケースＮｏ．９は、制御モジュールＣＭ＃０において、キャッシュメモリ１５Ａの自系Ｗｒｉｔｅデータ（Ｄａｔａ＃０）がフラッシュメモリ１７Ａに退避可能であり、かつ、制御モジュールＣＭ＃１において、キャッシュメモリ１５Ｂの全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）がフラッシュメモリ１７Ｂに退避可能である場合である。
【０１２６】
以上から、ケースＮｏ．９において、制御モジュールＣＭ＃０におけるキャッシュメモリ１５Ａのデータ退避方式は、「自系ＷｒｉｔｅデータＤｅｓｔａｇｅ」とされる。これにより、ケースＮｏ．９においては、制御モジュールＣＭ＃０において、ダーティデータ（Ｄａｔａ＃０）のみが保証される。
【０１２７】
一方、制御モジュールＣＭ＃１において、ダーティデータ（Ｄａｔａ＃１）は、フラッシュメモリ１７Ｂに退避できる。これに応じて、ケースＮｏ．９において、ディスクアレイ装置は、ライトバック状態とされる。
【０１２８】
ケースＮｏ．１０は、自系の制御モジュールＣＭ＃０においてバッテリ容量が「自系Ｗｒｉｔｅデータ可」であるが、フラッシュメモリ退避領域が「自系Ｗｒｉｔｅデータ可」であり、他系の制御モジュールＣＭ＃１の状態が「全Ｗｒｉｔｅデータ不可」である場合である。
【０１２９】
このように、ケースＮｏ．１０は、制御モジュールＣＭ＃０において、キャッシュメモリ１５Ａの自系Ｗｒｉｔｅデータ（Ｄａｔａ＃０）がフラッシュメモリ１７Ａに退避可能であり、かつ、制御モジュールＣＭ＃１において、キャッシュメモリ１５Ｂの全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）がフラッシュメモリ１７Ｂに退避可能でない場合である。
【０１３０】
以上から、ケースＮｏ．１０において、制御モジュールＣＭ＃０におけるキャッシュメモリ１５Ａのデータ退避方式は、「自系ＷｒｉｔｅデータＤｅｓｔａｇｅ」とされる。これにより、ケースＮｏ．１０においては、制御モジュールＣＭ＃０において、ダーティデータ（Ｄａｔａ＃０）のみが保証される。
【０１３１】
一方、制御モジュールＣＭ＃１において、ダーティデータ（Ｄａｔａ＃１）及びミラーリングデータ（Ｄａｔａ＃０）は、フラッシュメモリ１７Ｂに退避できない。従って、制御モジュールＣＭ＃１のダーティデータ（Ｄａｔａ＃１）は、制御モジュールＣＭ＃０及びＣＭ＃１のいずれにおいても保証されない。これに応じて、ケースＮｏ．１０において、ディスクアレイ装置は、ライトスルー状態とされる。
【０１３２】
ケースＮｏ．１１は、自系の制御モジュールＣＭ＃０においてバッテリ容量が「自系Ｗｒｉｔｅデータ可」であるが、フラッシュメモリ退避領域が「ＢａｃｋＵｐ不可」であり、他系の制御モジュールＣＭ＃１の状態が「全Ｗｒｉｔｅデータ可」である場合である。
【０１３３】
このように、ケースＮｏ．１１は、制御モジュールＣＭ＃０において、キャッシュメモリ１５Ａの自系Ｗｒｉｔｅデータ（Ｄａｔａ＃０）がフラッシュメモリ１７Ａに退避可能でなく、かつ、制御モジュールＣＭ＃１において、キャッシュメモリ１５Ｂの全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）がフラッシュメモリ１７Ｂに退避可能である場合である。なお、キャッシュメモリ１５Ａのミラーリングデータ（Ｄａｔａ＃１）も、フラッシュメモリ１７Ａに退避可能ではない。
【０１３４】
以上から、ケースＮｏ．１１において、制御モジュールＣＭ＃０におけるキャッシュメモリ１５Ａのデータ退避方式は、「キャッシュＢａｃｋＵｐ」とされる。これにより、ケースＮｏ．１１においては、制御モジュールＣＭ＃０において、ダーティデータ（Ｄａｔａ＃０）が保証されない。
【０１３５】
一方、制御モジュールＣＭ＃１において、ミラーリングデータ（Ｄａｔａ＃０）は、フラッシュメモリ１７Ｂに退避できる。換言すれば、制御モジュールＣＭ＃０のダーティデータ（Ｄａｔａ＃０）は、制御モジュールＣＭ＃１のフラッシュメモリ１７Ｂによって保証される。これに応じて、ケースＮｏ．１１において、ディスクアレイ装置は、ライトバック状態とされる。
【０１３６】
ケースＮｏ．１２は、自系の制御モジュールＣＭ＃０においてバッテリ容量が「自系Ｗｒｉｔｅデータ可」であるが、フラッシュメモリ退避領域が「ＢａｃｋＵｐ不可」であり、他系の制御モジュールＣＭ＃１の状態が「全Ｗｒｉｔｅデータ不可」である場合である。
【０１３７】
このように、ケースＮｏ．１２は、制御モジュールＣＭ＃０において、キャッシュメモリ１５Ａの自系Ｗｒｉｔｅデータ（Ｄａｔａ＃０）がフラッシュメモリ１７Ａに退避可能でなく、かつ、制御モジュールＣＭ＃１において、キャッシュメモリ１５Ｂの全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）がフラッシュメモリ１７Ｂに退避可能でない場合である。なお、キャッシュメモリ１５Ａのミラーリングデータ（Ｄａｔａ＃１）も、フラッシュメモリ１７Ａに退避可能ではない。
【０１３８】
以上から、ケースＮｏ．１２において、制御モジュールＣＭ＃０におけるキャッシュメモリ１５Ａのデータ退避方式は、「キャッシュＢａｃｋＵｐ」とされる。これにより、ケースＮｏ．１２においては、制御モジュールＣＭ＃０において、ダーティデータ（Ｄａｔａ＃０）が保証されない。
【０１３９】
一方、制御モジュールＣＭ＃１において、ダーティデータ（Ｄａｔａ＃１）及びミラーリングデータ（Ｄａｔａ＃０）は、フラッシュメモリ１７Ｂに退避できない。従って、制御モジュールＣＭ＃０のダーティデータ及びＣＭ＃１のダーティデータは、制御モジュールＣＭ＃０及びＣＭ＃１のいずれにおいても保証されない。これに応じて、ケースＮｏ．１２において、ディスクアレイ装置は、ライトスルー状態とされる。
【０１４０】
ケースＮｏ．１３は、自系の制御モジュールＣＭ＃０においてバッテリ容量が「ＢａｃｋＵｐ不可」かつフラッシュメモリ退避領域が「全Ｗｒｉｔｅデータ可」「自系Ｗｒｉｔｅデータ可」又は「ＢａｃｋＵｐ不可」のいずれかであり、他系の制御モジュールＣＭ＃１の状態が「全Ｗｒｉｔｅデータ可」である場合である。
【０１４１】
制御モジュールＣＭ＃０において、バッテリ容量が「ＢａｃｋＵｐ不可」であるとは、バッテリ１３Ａの容量が、自系Ｗｒｉｔｅデータ（Ｄａｔａ＃０）を退避可能なメモリ容量未満であることを示す。
【０１４２】
このように、ケースＮｏ．１３は、制御モジュールＣＭ＃０において、キャッシュメモリ１５Ａの自系Ｗｒｉｔｅデータ（Ｄａｔａ＃０）がフラッシュメモリ１７Ａに退避可能でなく、かつ、制御モジュールＣＭ＃１において、キャッシュメモリ１５Ｂの全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）がフラッシュメモリ１７Ｂに退避可能である場合である。
【０１４３】
以上から、ケースＮｏ．１３において、制御モジュールＣＭ＃０におけるキャッシュメモリ１５Ａのデータ退避方式は、「キャッシュＢａｃｋＵｐ」とされる。これにより、ケースＮｏ．１３においては、制御モジュールＣＭ＃０において、ダーティデータ（Ｄａｔａ＃０）が保証されない。
【０１４４】
一方、制御モジュールＣＭ＃１において、ミラーリングデータ（Ｄａｔａ＃０）は、フラッシュメモリ１７Ｂに退避できる。換言すれば、制御モジュールＣＭ＃０のダーティデータ（Ｄａｔａ＃０）は、制御モジュールＣＭ＃１のフラッシュメモリ１７Ｂによって保証される。これに応じて、ケースＮｏ．１３において、ディスクアレイ装置は、ライトバック状態とされる。
【０１４５】
ケースＮｏ．１４は、自系の制御モジュールＣＭ＃０においてバッテリ容量が「ＢａｃｋＵｐ不可」かつフラッシュメモリ退避領域が「全Ｗｒｉｔｅデータ可」「自系Ｗｒｉｔｅデータ可」又は「ＢａｃｋＵｐ不可」であり、他系の制御モジュールＣＭ＃１の状態が「全Ｗｒｉｔｅデータ不可」である場合である。
【０１４６】
このように、ケースＮｏ．１４は、制御モジュールＣＭ＃０において、キャッシュメモリ１５Ａの自系Ｗｒｉｔｅデータ（Ｄａｔａ＃０）がフラッシュメモリ１７Ａに退避可能でなく、かつ、制御モジュールＣＭ＃１において、キャッシュメモリ１５Ｂの全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）がフラッシュメモリ１７Ｂに退避可能でない場合である。なお、キャッシュメモリ１５Ａのミラーリングデータ（Ｄａｔａ＃１）も、フラッシュメモリ１７Ａに退避可能ではない。
【０１４７】
以上から、ケースＮｏ．１４において、制御モジュールＣＭ＃０におけるキャッシュメモリ１５Ａのデータ退避方式は、「キャッシュＢａｃｋＵｐ」とされる。これにより、ケースＮｏ．１４においては、制御モジュールＣＭ＃０において、ダーティデータ（Ｄａｔａ＃０）が保証されない。
【０１４８】
一方、制御モジュールＣＭ＃１において、ダーティデータ（Ｄａｔａ＃１）及びミラーリングデータ（Ｄａｔａ＃０）は、フラッシュメモリ１７Ｂに退避できない。従って、制御モジュールＣＭ＃０のダーティデータ及びＣＭ＃１のダーティデータは、制御モジュールＣＭ＃０及びＣＭ＃１のいずれにおいても保証されない。これに応じて、ケースＮｏ．１４において、ディスクアレイ装置は、ライトスルー状態とされる。
【０１４９】
図５は、データ退避方式テーブル１５１３の一例を示し、特に、制御モジュールＣＭ＃１におけるデータ退避方式テーブル１５１３を示す。
【０１５０】
図４及び図５の対比から判るように、制御モジュールＣＭ＃１におけるデータ退避方式テーブル１５１３は、基本的には、制御モジュールＣＭ＃０におけるデータ退避方式テーブル１５１３と同様の構成を有する。しかし、前述したように、制御モジュールＣＭ＃１のＣＰＵ１４Ｂは、ディスクアレイ装置の装置状態を決定しない。従って、制御モジュールＣＭ＃１におけるデータ退避方式テーブル１５１３は、制御モジュールＣＭ＃０におけるデータ退避方式テーブル１５１３から、「他系の制御モジュールＣＭ＃１の状態」及び「装置状態」を除いた構成とされる。
【０１５１】
なお、制御モジュールＣＭ＃１のＣＰＵ１４Ｂは、制御モジュールＣＭ＃０のＣＰＵ１４Ａから通知された「装置状態」を、データ退避方式テーブル１５１３とは別に保持する。
【０１５２】
図６及び図７は、データ退避方式の説明図である。特に、図６は、全ＷｒｉｔｅデータＤｅｓｔａｇｅ（又は、自系ＷｒｉｔｅデータＤｅｓｔａｇｅ）によるデータ退避方式について示し、図７は、特に、キャッシュＢａｃｋＵｐによるデータ退避方式について示す。全ＷｒｉｔｅデータＤｅｓｔａｇｅによるデータ退避方式は、キャッシュＢａｃｋＵｐによるデータ退避方式と択一的に選択される。
【０１５３】
なお、図６及び図７において、キャッシュメモリ１５のデータ退避方式を示すために、ホスト制御部１１、スイッチ１２、エキスパンダ１８の図示は省略する。メモリ制御部１６は、フラッシュメモリ１７に含まれるものとする。
【０１５４】
図６（Ａ）は、全ＷｒｉｔｅデータＤｅｓｔａｇｅによるデータ退避方式において、ディスクアレイ装置の主電源から電力が供給されている場合の電力供給範囲を示す。この場合、ＤＣ／ＤＣコンバータ２３〜２５をオンとすることにより、ディスクアレイ装置の主電源からは、電源供給部４を介して、制御モジュール１のキャッシュメモリ１５、ＣＰＵ１４、フラッシュメモリ１７に電力が供給される。
【０１５５】
なお、ディスクアレイ装置の主電源である交流電源ＡＣは、電源供給部４に入力される。電源供給部４は、制御モジュール１とは別に、例えば、ディスクアレイ装置に１個設けられる。電源供給部４は、交流電源ＡＣから直流電源を生成して、逆流防止用のダイオード２０を介して、制御ＩＣ２２に入力されると共に、ＤＣ／ＤＣコンバータ２３〜２５に入力される。
【０１５６】
制御ＩＣ２２は、電源供給部４におけるディスクアレイ装置の主電源の停電を検出して、ＣＰＵ１４に通知する。制御ＩＣ２２は、各々の制御モジュール１に設けられる。
【０１５７】
ＤＣ／ＤＣコンバータ２３〜２５は、電源供給部４から入力された直流電源から予め定められた直流電源を生成して、各々が対応するキャッシュメモリ１５、ＣＰＵ１４、フラッシュメモリ１７に供給する。ＤＣ／ＤＣコンバータ２３〜２５のオン／オフは、ＣＰＵ１４により制御される。図示「Ｏｎ」は、ＣＰＵ１４からのＤＣ／ＤＣコンバータ２３〜２５のオンにする指示を示している。
【０１５８】
また、バッテリ１３は、逆流防止用のダイオード２１を介して、ＤＣ／ＤＣコンバータ２３〜２５に接続される。バッテリ１３は、例えば、電源供給部４が生成する直流電源により充電される。
【０１５９】
図６（Ｂ）は、全ＷｒｉｔｅデータＤｅｓｔａｇｅによるデータ退避方式において、ディスクアレイ装置の主電源が停電した場合の電力供給範囲を示す。この場合、ＤＣ／ＤＣコンバータ２３〜２５をオンとすることにより、ディスクアレイ装置の主電源からは、電源供給部４を介して、キャッシュメモリ１５、ＣＰＵ１４、フラッシュメモリ１７に電力が供給される。従って、キャッシュメモリ１５からのデータ退避の観点からは、ディスクアレイ装置の主電源が停電した場合でも、ディスクアレイ装置の主電源から電力が供給されている場合と同じ範囲に電力が供給される。
【０１６０】
全ＷｒｉｔｅデータＤｅｓｔａｇｅによるデータ退避の場合、キャッシュメモリ１５のみならず、フラッシュメモリ１７にも電力が供給されるので、キャッシュメモリ１５のデータがフラッシュメモリ１７に退避される。これにより、キャッシュメモリ１５のデータが不揮発性のフラッシュメモリ１７に退避されるので、ディスクアレイ装置の主電源が長時間停電しても、キャッシュメモリ１５が保持していたデータが失われることはない。従って、ディスクアレイ装置はライトバック状態とされる。
【０１６１】
以上のように、全ＷｒｉｔｅデータＤｅｓｔａｇｅによるデータ退避方式においては、ＣＰＵ１４は、ディスクアレイ装置の主電源の停電と無関係に、ＤＣ／ＤＣコンバータ２３〜２５をオンとする。また、ＣＰＵ１４は、制御ＩＣ２２からのディスクアレイ装置の主電源の停電の検出した通知を受信した場合、キャッシュメモリ１５のデータをフラッシュメモリ１７に退避する。
【０１６２】
図７（Ａ）は、キャッシュＢａｃｋＵｐによるデータ退避方式において、ディスクアレイ装置の主電源から電力が供給されている場合の電力供給範囲を示す。この場合、ＤＣ／ＤＣコンバータ２３及び２４をオンとすることにより、ディスクアレイ装置の主電源からは、電源供給部４を介して、キャッシュメモリ１５、ＣＰＵ１４に電力が供給される。一方、図７（Ａ）において点線で囲んで示すように、ＤＣ／ＤＣコンバータ２５をオフとすることにより、フラッシュメモリ１７には、電力が供給されない。
【０１６３】
図７（Ｂ）は、キャッシュＢａｃｋＵｐによるデータ退避方式において、ディスクアレイ装置の主電源が停電した場合の電力供給範囲を示す。この場合、ＤＣ／ＤＣコンバータ２３をオンとすることにより、ディスクアレイ装置の主電源からは、電源供給部４を介して、キャッシュメモリ１５に電力が供給される。一方、図７（Ｂ）において点線で囲んで示すように、ＤＣ／ＤＣコンバータ２４及び２５をオフとすることにより、ＣＰＵ１４及びフラッシュメモリ１７には、電力が供給されない。従って、ディスクアレイ装置の主電源が停電した場合、キャッシュメモリ１５からのデータ退避の観点から、ディスクアレイ装置の主電源から電力が供給されている場合よりも狭い範囲にのみ電力が供給される。
【０１６４】
キャッシュＢａｃｋＵｐによるデータ退避の場合、キャッシュメモリ１５のみに電力が供給され、フラッシュメモリ１７には電力が供給されないので、キャッシュメモリ１５のデータがフラッシュメモリ１７に退避されない。これにより、キャッシュメモリ１５のデータは、ディスクアレイ装置の主電源が長時間停電すると失われる。従って、ディスクアレイ装置はライトスルー状態とされる。
【０１６５】
以上のように、キャッシュＢａｃｋＵｐによるデータ退避方式においては、ＣＰＵ１４は、制御ＩＣ２２からのディスクアレイ装置の主電源の停電の検出した通知を受信しない場合、ＤＣ／ＤＣコンバータ２３及び２４をオンとし、ＤＣ／ＤＣコンバータ２５をオフとする。また、ＣＰＵ１４は、制御ＩＣ２２からのディスクアレイ装置の主電源の停電の検出した通知を受信した場合、ＤＣ／ＤＣコンバータ２３のみをオンとし、ＤＣ／ＤＣコンバータ２４及び２５をオフとする。
【０１６６】
図８は、データ退避制御処理フローを示す図であり、図１に示すディスクアレイ装置の制御モジュールＣＭ＃０におけるデータ退避制御処理を示す。
【０１６７】
ディスクアレイ装置の主電源、例えばＡＣ（交流）電源が投入されると、当該ディスクアレイ装置の主電源からディスクアレイ装置にＡＣ電力が供給され、電源供給部４を介して、制御モジュール１に電力が供給されると共に、バッテリ１３の充電が開始される。
【０１６８】
制御モジュール１に電力が供給されると、ディスクアレイ装置が起動され、制御モジュール１のＣＰＵ１４は、キャッシュメモリ管理テーブル１５１１、診断タイミングテーブル１５１２、データ退避方式テーブル１５１３、バッテリテーブル１５１４、フラッシュメモリテーブル１５１５を生成する（ロードする）。
【０１６９】
この後、図８に示すデータ退避制御処理が実行される。また、図８に示すデータ退避制御処理は、例えばディスクアレイ装置の復電時に実行される。なお、図８に示すデータ退避制御処理は、例えばディスクアレイ装置の運用中に予め定められた周期で繰り返し実行するようにしても良い。
【０１７０】
制御モジュールＣＭ＃０のＣＰＵ１４Ａは、自系のキャッシュメモリ管理テーブル１５１１を参照して、自系のキャッシュメモリ１５ＡのＤａｔａ＃０のサイズ及びＤａｔａ＃１のサイズを取得する（ステップＳ１）。
【０１７１】
制御モジュールＣＭ＃０のＣＰＵ１４Ａは、自系のバッテリ１３Ａのバッテリ容量を診断する（ステップＳ２）。前述したように、自系のバッテリ１３Ａのバッテリ容量は、自系状態情報の一部である。
【０１７２】
具体的には、自系のバッテリ１３Ａのバッテリ容量が、自系のキャッシュメモリ１５Ａの全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）を自系のフラッシュメモリ１７Ａに退避可能な容量以上であるか、自系Ｗｒｉｔｅデータ（Ｄａｔａ＃０）を退避可能な容量以上（かつ、全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）を退避可能な容量未満）であるか、自系Ｗｒｉｔｅデータ（Ｄａｔａ＃０）を退避可能な容量未満であるかが、判断される。換言すれば、全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）がＤｅｓｔａｇｅ可能であるか、自系Ｗｒｉｔｅデータ（Ｄａｔａ＃０）がＤｅｓｔａｇｅ可能であるか、自系Ｗｒｉｔｅデータ（Ｄａｔａ＃０）がＤｅｓｔａｇｅ不可であるかが、判断される。ここで、「Ｄｅｓｔａｇｅ」とは、自系のキャッシュメモリ１５のデータを自系のフラッシュメモリ１７に退避することである。
【０１７３】
自系のバッテリ１３Ａのバッテリ容量がＤａｔｅ＃０＋＃１をＤｅｓｔａｇｅ可能である場合に、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、更に、自系のフラッシュメモリ１７Ａのフラッシュメモリ退避領域のメモリ容量を診断する（ステップＳ３）。前述したように、自系のフラッシュメモリ１７Ａのフラッシュメモリ退避領域のメモリ容量は、自系状態情報の一部である。
【０１７４】
具体的には、自系のフラッシュメモリ１７Ａのフラッシュメモリ退避領域が、自系のキャッシュメモリ１５Ａの全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）を退避可能な容量以上であるか、自系Ｗｒｉｔｅデータ（Ｄａｔａ＃０）を退避可能な容量以上かつ全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）を退避可能な容量未満であるか、自系Ｗｒｉｔｅデータ（Ｄａｔａ＃０）を退避可能な容量未満であるかが、判断される。なお、図８において、フラッシュメモリ退避領域を、単にフラッシュ領域と表記している。
【０１７５】
自系のフラッシュメモリ退避領域が全Ｗｒｉｔｅデータ（Ｄａｔｅ＃０＋＃１）を退避可能な容量以上である場合に、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、他系の制御モジュールＣＭ＃１のＣＰＵ１４Ｂから、他系の診断データを取得し（ステップＳ４）、制御モジュールＣＭ＃１のＣＰＵ１４Ｂから取得した診断データに基づいて、他系の制御モジュールＣＭ＃１において全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）がＤｅｓｔａｇｅ可能であるか否かを判断する（ステップＳ５）。
【０１７６】
診断データは、前述したように、他系の制御モジュールＣＭ＃１の状態が「全Ｗｒｉｔｅデータ可」であるか否かを示すデータ、換言すれば、他系状態情報である。
【０１７７】
この後、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、自系のキャッシュメモリ１５Ａのデータ退避方式を決定し、更に、他系の制御モジュールＣＭ＃１についての診断データに基づいて、ディスクアレイ装置の装置状態を決定する（ステップＳ６）。この後、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、ディスクアレイ装置の装置状態を、制御モジュールＣＭ＃１のＣＰＵ１４Ｂに通知する。
【０１７８】
具体的には、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、ステップＳ６で、自系のキャッシュメモリ１５Ａのデータ退避方式を「全ＷｒｉｔｅデータＤｅｓｔａｇｅ」とする。その上で、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、他系の制御モジュールＣＭ＃１の状態が「全Ｗｒｉｔｅデータ可」である場合、ディスクアレイ装置をライトバック状態とする。これは図４のデータ退避方式テーブル１５１３におけるケースＮｏ．１に相当する。また、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、ステップＳ６で、他系の制御モジュールＣＭ＃１の状態が「全Ｗｒｉｔｅデータ可」でない場合、ディスクアレイ装置をライトバック状態とする。これは図４のデータ退避方式テーブル１５１３におけるケースＮｏ．２に相当する。
【０１７９】
ステップＳ３において、自系のフラッシュメモリ退避領域が自系Ｗｒｉｔｅデータ（Ｄａｔａ＃０）を退避可能な容量以上かつ全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）を退避可能な容量未満である場合に、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、他系の制御モジュールＣＭ＃１のＣＰＵ１４Ｂから、他系の診断データを取得し（ステップＳ７）、制御モジュールＣＭ＃１のＣＰＵ１４Ｂから取得した診断データに基づいて、他系の制御モジュールＣＭ＃１において全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）がＤｅｓｔａｇｅ可能であるか否かを判断する（ステップＳ８）。
【０１８０】
この後、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、ステップＳ８の判断結果に基づいて、自系のキャッシュメモリ１５Ａのデータ退避方式を決定し、更に、他系の制御モジュールＣＭ＃１についての診断データに基づいて、ディスクアレイ装置の装置状態を決定する（ステップＳ９）。この後、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、ディスクアレイ装置の装置状態を、制御モジュールＣＭ＃１のＣＰＵ１４Ｂに通知する。
【０１８１】
具体的には、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、ステップＳ９で、自系のキャッシュメモリ１５Ａのデータ退避方式を「自系ＷｒｉｔｅデータＤｅｓｔａｇｅ」とする。その上で、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、他系の制御モジュールＣＭ＃１の状態が「全Ｗｒｉｔｅデータ可」である場合、ディスクアレイ装置をライトバック状態とする。これは図４のデータ退避方式テーブル１５１３におけるケースＮｏ．３に相当する。また、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、ステップＳ９で、他系の制御モジュールＣＭ＃１の状態が「全Ｗｒｉｔｅデータ可」でない場合、ディスクアレイ装置をライトスルー状態とする。これは図４のデータ退避方式テーブル１５１３におけるケースＮｏ．４に相当する。
【０１８２】
ステップＳ３において、フラッシュメモリ退避領域が自系Ｗｒｉｔｅデータ（Ｄａｔａ＃０）を退避可能な容量未満である場合に、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、他系の制御モジュールＣＭ＃１のＣＰＵ１４Ｂから、他系の診断データを取得し（ステップＳ１０）、制御モジュールＣＭ＃１のＣＰＵ１４Ｂから取得した診断データに基づいて、他系の制御モジュールＣＭ＃１において全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）がＤｅｓｔａｇｅ可能であるか否かを判断する（ステップＳ１１）。
【０１８３】
この後、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、自系のキャッシュメモリ１５Ａのデータ退避方式を決定し、更に、他系の制御モジュールＣＭ＃１についての診断データに基づいて、ディスクアレイ装置の装置状態を決定する（ステップＳ１２）。この後、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、ディスクアレイ装置の装置状態を、制御モジュールＣＭ＃１のＣＰＵ１４Ｂに通知する。
【０１８４】
具体的には、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、ステップＳ１２で、自系のキャッシュメモリ１５Ａのデータ退避方式を「キャッシュＢａｃｋＵｐ」とする。その上で、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、他系の制御モジュールＣＭ＃１の状態が「全Ｗｒｉｔｅデータ可」である場合、ディスクアレイ装置をライトバック状態とする。これは図４のデータ退避方式テーブル１５１３におけるケースＮｏ．５に相当する。また、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、ステップＳ１２で、他系の制御モジュールＣＭ＃１の状態が「全Ｗｒｉｔｅデータ可」でない場合、ディスクアレイ装置をライトスルー状態とする。これは図４のデータ退避方式テーブル１５１３におけるケースＮｏ．６に相当する。
【０１８５】
一方、ステップＳ２において、自系のバッテリ１３Ａのバッテリ容量が自系Ｗｒｉｔｅデータ（Ｄａｔａ＃０）を退避可能な容量以上（かつ、全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）を退避可能な容量未満）である場合、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、更に、自系のフラッシュメモリ１７Ａのフラッシュメモリ退避領域のメモリ容量を診断する（ステップＳ１３）。具体的には、自系のフラッシュメモリ１７Ａのフラッシュメモリ退避領域が、自系Ｗｒｉｔｅデータ（Ｄａｔａ＃０）を退避可能な容量以上であるか、自系Ｗｒｉｔｅデータ（Ｄａｔａ＃０）を退避可能な容量未満であるかが、判断される。
【０１８６】
なお、ステップＳ１３において、フラッシュメモリの退避領域の容量が、自系のキャッシュメモリ１５Ａの全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）を退避可能な容量以上であるかは、判断されない。これは、自系のバッテリ１３Ａのバッテリ容量が、前述したように、全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）を退避可能ではないからである。
【０１８７】
ステップＳ１３での判断の結果、自系のフラッシュメモリ退避領域が自系Ｗｒｉｔｅデータ（Ｄａｔａ＃０）を退避可能な容量以上である場合に、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、ステップＳ７〜Ｓ９を実行する。
【０１８８】
これにより、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、ステップＳ９で、自系のキャッシュメモリ１５Ａのデータ退避方式を「自系ＷｒｉｔｅデータＤｅｓｔａｇｅ」とする。その上で、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、他系の制御モジュールＣＭ＃１の状態が「全Ｗｒｉｔｅデータ可」である場合、ディスクアレイ装置をライトバック状態とする。これは図４のデータ退避方式テーブル１５１３におけるケースＮｏ．７及びＮｏ．９に相当する。また、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、ステップＳ９で、他系の制御モジュールＣＭ＃１の状態が「全Ｗｒｉｔｅデータ可」でない場合、ディスクアレイ装置をライトスルー状態とする。これは図４のデータ退避方式テーブル１５１３におけるケースＮｏ．８及びＮｏ．１０に相当する。
【０１８９】
前述したように、全Ｗｒｉｔｅデータ（Ｄａｔａ＃０＋＃１）を退避可能な容量以上であるかは判断されないので、データ退避方式テーブル１５１３におけるケースＮｏ．７及びＮｏ．９は区別されず、ケースＮｏ．８及びＮｏ．１０は区別されない。
【０１９０】
ステップＳ１３において、自系のフラッシュメモリ退避領域が自系Ｗｒｉｔｅデータ（Ｄａｔａ＃０）を退避可能な容量未満である場合に、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、ステップＳ１０〜Ｓ１２を実行する。
【０１９１】
これにより、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、ステップＳ１２で、自系のキャッシュメモリ１５Ａのデータ退避方式を「キャッシュＢａｃｋＵｐ」とする。その上で、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、他系の制御モジュールＣＭ＃１の状態が「全Ｗｒｉｔｅデータ可」である場合、ディスクアレイ装置をライトバック状態とする。これは図４のデータ退避方式テーブル１５１３におけるケースＮｏ．１１に相当する。また、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、ステップＳ１２で、他系の制御モジュールＣＭ＃１の状態が「全Ｗｒｉｔｅデータ可」でない場合、ディスクアレイ装置をライトスルー状態とする。これは図４のデータ退避方式テーブル１５１３におけるケースＮｏ．１２に相当する。
【０１９２】
一方、ステップＳ２において、自系Ｗｒｉｔｅデータ（Ｄａｔａ＃０）を退避可能な容量未満である場合、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、ステップＳ１０〜Ｓ１２を実行する。
【０１９３】
これにより、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、自系のキャッシュメモリ１５Ａのデータ退避方式を「キャッシュＢａｃｋＵｐ」とする。その上で、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、他系の制御モジュールＣＭ＃１の状態が「全Ｗｒｉｔｅデータ可」である場合、ディスクアレイ装置をライトバック状態とする。これは図４のデータ退避方式テーブル１５１３におけるケースＮｏ．１３に相当する。また、制御モジュールＣＭ＃０のＣＰＵ１４Ａは、他系の制御モジュールＣＭ＃１の状態が「全Ｗｒｉｔｅデータ可」でない場合、ディスクアレイ装置をライトスルー状態とする。これは図４のデータ退避方式テーブル１５１３におけるケースＮｏ．１４に相当する。
【０１９４】
ディスクアレイ装置の制御モジュールＣＭ＃１におけるデータ退避制御処理は、基本的には、図８に示す処理と同様である。
【０１９５】
しかし、制御モジュールＣＭ＃１のＣＰＵ１４Ｂは、ディスクアレイ装置の装置状態を決定しないので、図８におけるステップＳ５、Ｓ８及びＳ１１は省略される。また、図８におけるステップＳ６、Ｓ９及びＳ１２において、制御モジュールＣＭ＃１のＣＰＵ１４Ｂは、自系の制御モジュールＣＭ＃１におけるデータ退避方式を決定する処理を実行するのみで、ディスクアレイ装置の装置状態を決定する処理は実行しない。一方、図８におけるステップＳ６、Ｓ９及びＳ１２において、制御モジュールＣＭ＃１のＣＰＵ１４Ｂは、制御モジュールＣＭ＃０のＣＰＵ１４Ａからのディスクアレイ装置の装置状態の通知を受信して保持し、これに従って、ライトスルー状態又はライトバック状態でのキャッシュ制御を実行する。
【０１９６】
また、図８におけるステップＳ４、Ｓ７及びＳ１０において、制御モジュールＣＭ＃１のＣＰＵ１４Ｂは、制御モジュールＣＭ＃０のＣＰＵ１４Ａからの要求に応じて、制御モジュールＣＭ＃１の状態情報（他系状態情報）を応答として返信する。この時、制御モジュールＣＭ＃１の状態がケースＮｏ．１及びＮｏ．２である場合の応答は、「全Ｗｒｉｔｅデータ可」とされる。制御モジュールＣＭ＃１の状態がケースＮｏ．３〜Ｎｏ．１４である場合の応答は、「全Ｗｒｉｔｅデータ不可」とされる。
【符号の説明】
【０１９７】
１    制御モジュール
３    ディスクアレイ
１１    ホスト制御部
１２    スイッチ
１３    バッテリ
１４    ＣＰＵ
１５    キャッシュメモリ
１６    メモリ制御部
１７    フラッシュメモリ
１８    エキスパンダ
【図１】
0005402693.tif 000002
【図２】
0005402693.tif 000003
【図３】
0005402693.tif 000004
【図４】
0005402693.tif 000005
【図５】
0005402693.tif 000006
【図６】
0005402693.tif 000007
【図７】
0005402693.tif 000008
【図８】
0005402693.tif 000009
【図９】
0005402693.tif 000010