(57)【特許請求の範囲】
【請求項１】
第１の記憶装置と、
第２の記憶装置と、
第１のキャッシュ領域およびミラーキャッシュ領域を有する第１の記憶部、
前記第１の記憶部に電力を供給する第１の電源、
前記第１の電源の停電時に前記第１の記憶部に電力を供給するバッテリ、および、
前記第１の記憶装置への書き込みを前記第１のキャッシュ領域を用いてライトバック方式で制御し、前記バッテリの異常を検知すると、前記第１の記憶装置への書き込み制御をライトスルー方式に切り替える第１の制御部、
を備える第１の制御装置と、
第２のキャッシュ領域を有する第２の記憶部、
前記第２の記憶部に電力を供給する、前記第１の電源とは異なる第２の電源、および、
前記第２の記憶装置への書き込みを前記第２のキャッシュ領域を用いてライトバック方式で制御し、前記第２のキャッシュ領域のデータの複製を前記ミラーキャッシュ領域に格納し、前記バッテリの異常を検知したとき、前記第２の記憶装置への書き込み制御をライトスルー方式に切り替える第２の制御部、
を備える第２の制御装置と、
を有するストレージシステム。
【請求項２】
第３の記憶装置と、
第３のキャッシュ領域を有する第３の記憶部、
前記第３の記憶部に電力を供給する、前記第１の電源および前記第２の電源とは異なる第３の電源、
前記第３の電源の停電時に前記第３の記憶部に電力を供給する他のバッテリ、および、
前記第３の記憶装置への書き込みを前記第３のキャッシュ領域を用いてライトバック方式で制御し、前記第３のキャッシュ領域のデータの複製を前記第２の記憶部に含まれる他のミラーキャッシュ領域に格納し、前記バッテリの異常を検知したとき、ライトバック方式による前記第３の記憶装置への書き込み制御を継続する第３の制御部、
を備える第３の制御装置と、
をさらに有する請求項１に記載のストレージシステム。
【請求項３】
前記第３の制御部は、前記第２の制御部による前記第２の記憶装置への書き込み制御がライトスルー方式に切り替えられた後も、前記第３のキャッシュ領域のデータの複製を前記他のミラーキャッシュ領域に格納する、
請求項２に記載のストレージシステム。
【請求項４】
前記第２の制御部は、前記第２の記憶装置への書き込み制御をライトスルー方式に切り替えた後、前記第２のキャッシュ領域のデータの複製の前記ミラーキャッシュ領域への格納を停止する、
請求項１乃至３の何れか１項に記載のストレージシステム。
【請求項５】
キャッシュ領域を有する第１の記憶部と、
前記第１の記憶部に電力を供給する第１の電源と、
記憶装置への書き込みを前記キャッシュ領域を用いてライトバック方式で制御し、前記キャッシュ領域のデータの複製を複数の他の制御装置のいずれかに含まれるミラーキャッシュ領域に格納し、前記複数の他の制御装置のうち一の制御装置が備え、前記第１の電源とは異なる第２の電源から電力が供給される第２の記憶部に対して、前記第２の電源の停電時に電力を供給するバッテリの異常が発生したことを検知すると、前記ミラーキャッシュ領域が前記第２の記憶部に含まれるかを判定し、前記ミラーキャッシュ領域が前記第２の記憶部に含まれる場合、前記記憶装置への書き込み制御をライトスルー方式に切り替える制御部と、
を有する制御装置。
【請求項６】
コンピュータに、
記憶装置への書き込みを前記コンピュータが有する第１の記憶部に含まれるキャッシュ領域を用いてライトバック方式で制御し、
前記キャッシュ領域のデータの複製を複数の制御装置のいずれかに含まれるミラーキャッシュ領域に格納し、
前記複数の制御装置のうち一の制御装置が備え、前記第１の記憶部に電力を供給する第１の電源とは異なる第２の電源から電力が供給される第２の記憶部に対して、前記第２の電源の停電時に電力を供給するバッテリの異常が発生したことを検知すると、前記ミラーキャッシュ領域が前記第２の記憶部に含まれるかを判定し、
前記ミラーキャッシュ領域が前記第２の記憶部に含まれる場合、前記記憶装置への書き込み制御をライトスルー方式に切り替える、
処理を実行させる制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はストレージシステム、制御装置および制御プログラムに関する。
【背景技術】
【０００２】
キャッシュを用いたデータの書き込み方式として、ライトバックが知られている。例えば、制御装置は、記憶装置に対する書き込みをライトバック方式で制御する際、ホストから送信されたライトデータをキャッシュに書き込んだ時点でホストに応答する。そして、制御装置は、その後の処理の空き時間など、キャッシュへの書き込みとは非同期のタイミングでキャッシュのライトデータを記憶装置に書き込む。
【０００３】
ここで、キャッシュの制御に関する技術の一例として、次のような技術が提案されている。この技術では、バッテリ監視回路は、停電時に電力をキャッシュメモリに供給するバッテリを監視する。ディスク制御回路は、バッテリ監視回路がバッテリを正常と判断した場合にはライトバック動作を行うように制御し、バッテリを異常と判断した場合にはライトスルー動作を行うように制御する。
【０００４】
また、複数の制御装置それぞれがローカルキャッシュとミラーキャッシュを有し、ある制御装置のローカルキャッシュが隣接する制御装置のミラーキャッシュと二重化されて、キャッシュがサイクリックに二重化されたストレージシステムが提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】実開昭６３−５５３９号公報
【特許文献２】国際公開第２００４／１１４１１５号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、制御装置を複数含むストレージシステムの例として、キャッシュ用のバッテリを各制御装置が備えるシステムが考えられる。例えば、各制御装置が別々の筐体に設けられたシステムなどが考えられる。このようなシステムでは、ある制御装置のバッテリに異常が発生すると、その制御装置のキャッシュのデータを消失する危険度が高くなることから、その制御装置はキャッシュのデータを保護するための動作を行う。
【０００７】
しかしながら、このようなシステムにおいて上記のようにキャッシュがサイクリックに二重化される場合、ある制御装置のバッテリに異常が発生すると、その制御装置内のローカルキャッシュだけでなく、その制御装置内のミラーキャッシュのデータ消失の危険度も高くなる。これは、その制御装置内のデータだけでなく、ミラーキャッシュに対応する他の制御装置内のローカルキャッシュのデータについても安全性が低下することを示す。すなわち、キャッシュがサイクリックに二重化される構成では、バッテリの異常が発生した制御装置以外の他の制御装置内のデータの安全性も低下するという課題があった。
【０００８】
１つの側面では、本発明は、データ消失の可能性を低減したストレージシステム、制御装置および制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
１つの態様では、ストレージシステムが提供される。このストレージシステムは、第１の記憶装置、第２の記憶装置、第１の制御装置および第２の制御装置を有する。第１の制御装置は、第１の記憶部、第１の電源、バッテリおよび第１の制御部を備える。第１の記憶部は、第１のキャッシュ領域およびミラーキャッシュ領域を有する。第１の電源は、第１の記憶部に電力を供給する。バッテリは、第１の電源の停電時に第１の記憶部に電力を供給する。第１の制御部は、第１の記憶装置への書き込みを第１のキャッシュ領域を用いてライトバック方式で制御し、バッテリの異常を検知すると、第１の記憶装置への書き込み制御をライトスルー方式に切り替える。第２の制御装置は、第２の記憶部、第２の電源および第２の制御部を備える。第２の記憶部は、第２のキャッシュ領域を有する。第２の電源は、第１の電源とは異なり、第２の記憶部に電力を供給する。第２の制御部は、第２の記憶装置への書き込みを第２のキャッシュ領域を用いてライトバック方式で制御し、第２のキャッシュ領域のデータの複製をミラーキャッシュ領域に格納し、バッテリの異常を検知したとき、第２の記憶装置への書き込み制御をライトスルー方式に切り替える。
【００１０】
また、１つの態様では、制御装置が提供される。この制御装置は、第１の記憶部と第１の電源と制御部とを有する。第１の記憶部は、キャッシュ領域を有する。第１の電源は、第１の記憶部に電力を供給する。制御部は、記憶装置への書き込みをキャッシュ領域を用いてライトバック方式で制御し、キャッシュ領域のデータの複製を複数の他の制御装置のいずれかに含まれるミラーキャッシュ領域に格納し、複数の他の制御装置のうち一の制御装置が備え、第１の電源とは異なる第２の電源から電力が供給される第２の記憶部に対して、第２の電源の停電時に電力を供給するバッテリの異常が発生したことを検知すると、ミラーキャッシュ領域が第２の記憶部に含まれるかを判定し、ミラーキャッシュ領域が第２の記憶部に含まれる場合、記憶装置への書き込み制御をライトスルー方式に切り替える。
【００１１】
また、１つの態様では、制御プログラムが提供される。この制御プログラムは、コンピュータに、記憶装置への書き込みをコンピュータが有する第１の記憶部に含まれるキャッシュ領域を用いてライトバック方式で制御し、キャッシュ領域のデータの複製を複数の制御装置のいずれかに含まれるミラーキャッシュ領域に格納し、複数の制御装置のうち一の制御装置が備え、第１の記憶部に電力を供給する第１の電源とは異なる第２の電源から電力が供給される第２の記憶部に対して、第２の電源の停電時に電力を供給するバッテリの異常が発生したことを検知すると、ミラーキャッシュ領域が第２の記憶部に含まれるかを判定し、ミラーキャッシュ領域が第２の記憶部に含まれる場合、記憶装置への書き込み制御をライトスルー方式に切り替える、処理を実行させる。
【発明の効果】
【００１２】
１つの側面では、データ消失の可能性を低減することができる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態のストレージシステムを示す図である。
【図２】第２の実施の形態のストレージシステムを示す図である。
【図３】ＣＭのハードウェア例を示す図である。
【図４】キャッシュ領域とそのミラーリング先との関係を示す図である。
【図５】ＣＭの機能例を示す図である。
【図６】ボリューム管理テーブルの例を示す図である。
【図７】フラグ管理テーブルの例を示す図である。
【図８】ＣＥ内マスタによるバッテリ状態の監視処理例を示すフローチャートである。
【図９】バッテリ状態の変化が検出された場合のマスタＣＭの処理例を示すフローチャートである。
【図１０】バッテリ状態通知を受信した場合のＣＭの処理の例（その１）を示すフローチャートである。
【図１１】バッテリ状態通知を受信した場合のＣＭの処理の例（その２）を示すフローチャートである。
【図１２】バッテリ状態通知を受信した場合のＣＭの処理の例（その３）を示すフローチャートである。
【図１３】バッテリ異常が検出された場合の処理例（その１）を示すシーケンス図である。
【図１４】バッテリ異常が検出された場合の処理例（その２）を示すシーケンス図である。
【図１５】バッテリ正常が検出された場合の処理例を示すシーケンス図である。
【発明を実施するための形態】
【００１４】
以下、本実施の形態について図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態のストレージシステムを示す図である。図１に示すストレージシステムは、記憶装置１，２，３および制御装置１０，２０，３０を有する。制御装置１０，２０，３０は、例えばネットワークやバスなどを介して互いに接続されている。また、図１では例として、記憶装置１は制御装置１０に接続され、記憶装置２は制御装置２０に接続され、記憶装置３は制御装置３０に接続されている。
【００１５】
なお、制御装置１０および記憶装置１は、例えば、１つの筐体に含まれるストレージ装置として実現可能である。同様に、制御装置２０および記憶装置２は、例えば、１つの筐体に含まれるストレージ装置として実現可能であり、制御装置３０および記憶装置３は、例えば、１つの筐体に含まれるストレージ装置として実現可能である。
【００１６】
制御装置１０は、記憶装置１へのアクセスを制御する装置であり、記憶部１１、制御部１２、バッテリ１３および電源１４を有する。制御装置２０は、記憶装置２へのアクセスを制御する装置であり、記憶部２１、制御部２２、バッテリ２３および電源２４を有する。制御装置３０は、記憶装置３へのアクセスを制御する装置であり、記憶部３１、制御部３２、バッテリ３３および電源３４を有する。
【００１７】
記憶部１１，２１，３１は、ＲＡＭ（Random Access Memory）などの揮発性記憶装置である。制御部１２，２２，３２は、ＣＰＵ（Central Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）などを含み得るプロセッサとして実装される。このプロセッサには、複数のプロセッサの集合（マルチプロセッサ）も含まれ得る。
【００１８】
なお、制御装置１０によるアクセス制御対象の記憶装置１は、制御装置１０に直接接続されていなくてもよく、例えば、他の制御装置に接続されていてもよい。同様に、記憶装置２も制御装置２０に直接接続されていなくてもよいし、記憶装置３も制御装置３０に直接接続されていなくてもよい。
【００１９】
記憶部１１は、ローカルキャッシュ１１ａおよびミラーキャッシュ１１ｂという記憶領域を有する。記憶部２１は、ローカルキャッシュ２１ａおよびミラーキャッシュ２１ｂという記憶領域を有する。記憶部３１は、ローカルキャッシュ３１ａおよびミラーキャッシュ３１ｂという記憶領域を有する。
【００２０】
制御部１２は、記憶装置１へのデータの書き込みを、ローカルキャッシュ１１ａをキャッシュ領域として用いて制御する。通常、制御部１２によるローカルキャッシュ１１ａを用いた書き込みは、ライトバック方式で制御される。また、制御部１２は、ローカルキャッシュ１１ａのデータを、制御装置２０内のミラーキャッシュ２１ｂにミラーリングする。
【００２１】
制御部２２は、記憶装置２へのデータの書き込みを、ローカルキャッシュ２１ａをキャッシュ領域として用いて制御する。通常、制御部２２によるローカルキャッシュ２１ａを用いた書き込みは、ライトバック方式で制御される。また、制御部２２は、ローカルキャッシュ２１ａのデータを、制御装置３０内のミラーキャッシュ３１ｂにミラーリングする。
【００２２】
制御部３２は、記憶装置３へのデータの書き込みを、ローカルキャッシュ３１ａをキャッシュ領域として用いて制御する。通常、制御部３２によるローカルキャッシュ３１ａを用いた書き込みは、ライトバック方式で制御される。また、制御部３２は、ローカルキャッシュ３１ａのデータを、制御装置１０内のミラーキャッシュ１１ｂにミラーリングする。
【００２３】
このように、制御装置１０，２０，３０の間では、ローカルキャッシュに対応するミラーキャッシュが隣接する制御装置に配置される。このような構成は、キャッシュがサイクリックにミラーリングされる構成と言うことができる。ある制御装置のローカルキャッシュのミラーデータが別の制御装置に記憶されることで、それらのうち一方の制御装置の動作が停止した場合でも、元データまたはミラーデータのいずれかは失われない。したがって、上記構成により、装置故障に対するキャッシュデータの安全性を高めることができる。
【００２４】
電源１４は、制御装置１０の構成要素のうち、少なくとも記憶部１１に電力を供給する。バッテリ１３は、電源１４の停電時に記憶部１１に電力を供給する。電源２４は、制御装置２０の構成要素のうち、少なくとも記憶部２１に電力を供給する。バッテリ２３は、電源２４の停電時に記憶部２１に電力を供給する。電源３４は、制御装置３０の構成要素のうち、少なくとも記憶部３１に電力を供給する。バッテリ３３は、電源３４の停電時に記憶部３１に電力を供給する。
【００２５】
このように、記憶部１１，２１，３１は、それぞれ個別の電源１４，２４，３４から電力の供給を受けて動作する。また、電源１４の停電時には、ローカルキャッシュ１１ａおよびミラーキャッシュ１１ｂの各データを含む記憶部１１のデータが、バッテリ１３によって維持される。同様に、電源２４の停電時には、ローカルキャッシュ２１ａおよびミラーキャッシュ２１ｂの各データを含む記憶部２１のデータが、バッテリ２３によって維持される。また、電源３４の停電時には、ローカルキャッシュ３１ａおよびミラーキャッシュ３１ｂの各データを含む記憶部３１のデータが、バッテリ３３によって維持される。
【００２６】
次に、例として制御装置３０のバッテリ３３で異常が発生した場合の処理について説明する。以下の説明における初期状態では、制御装置１０，２０，３０は、ライトバック方式で書き込み制御を行っているものとする。なお、以下の処理例の説明においては、ローカルキャッシュ３１ａのデータがミラーキャッシュ１１ｂにミラーリングされることは、必須の事項ではない。
【００２７】
バッテリ３３で異常が発生すると、そのことを制御装置１０，２０，３０の全てが検知する。例えば、制御部３２は、バッテリ３３の異常を検知すると、その旨を制御装置１０，２０，３０のうちあらかじめ決められた代表の装置に通知する。通知を受けた代表の装置は、制御装置３０のバッテリ３３で異常が発生したことを自装置以外の全制御装置に通知する。これにより、バッテリ３３で異常が発生したことを制御装置１０，２０，３０の全てが検知する。なお、バッテリ３３の異常とは、例えば、バッテリ３３の出力電圧が０になるといったバッテリ３３の故障の他、バッテリ３３の充電率が所定の閾値未満になるケースを含んでもよい。
【００２８】
制御部１２，２２，３２のそれぞれは、ある制御装置のバッテリの異常を検知すると、そのバッテリが自身と同じ制御装置に搭載されているか、および、そのバッテリの電力供給先の記憶部に、自身の制御装置のローカルキャッシュに対応するミラーキャッシュが含まれているかを判定する。そして、制御部１２，２２，３２のそれぞれは、それらの判定結果に応じた制御を行う。
【００２９】
具体的には、制御部１２は、バッテリ３３の異常を検知すると、そのバッテリ３３が制御装置１０に搭載されておらず、また、バッテリ３３の電力供給先の記憶部３１にローカルキャッシュ１１ａに対応するミラーキャッシュ２１ｂが含まれないことを判定する。この場合、ローカルキャッシュ１１ａおよびミラーキャッシュ２１ｂのどちらについてもデータ消失の可能性は特に上がらない。このため、制御部１２は、記憶装置１に対するライトバック方式によるデータの書き込み制御を継続する。
【００３０】
制御部２２は、バッテリ３３の異常を検知すると、そのバッテリ３３が制御装置２０に搭載されていないが、バッテリ３３の電力供給先の記憶部３１にローカルキャッシュ２１ａに対応するミラーキャッシュ３１ｂが含まれていることを判定する。この場合、もし制御装置３０の動作が電源３４の停電などによって停止すると、ミラーキャッシュ３１ｂのデータが失われる可能性が高い。その意味で、ローカルキャッシュ２１ａのデータの安全性が低下する。
【００３１】
このため、制御部２２は、記憶装置２に対するデータの書き込み制御を、ライトバック方式からライトスルー方式に切り替える。実際には、制御部２２は、ローカルキャッシュ２１ａの全データを記憶装置２に反映させた後、ライトスルー方式による書き込み制御を開始する。これにより、ローカルキャッシュ２１ａのデータは常に記憶装置２と同期する状態となり、ローカルキャッシュ２１ａのデータの安全性が向上する。なお、ローカルキャッシュ２１ａのデータのミラーキャッシュ３１ｂへのミラーリング動作は、停止されてもよい。
【００３２】
また、制御部３２は、バッテリ３３の異常を検知すると、そのバッテリ３３が制御装置３０に搭載されていると判定する。この場合、もし制御装置３０の動作が電源３４の停電などによって停止すると、ローカルキャッシュ３１ａのデータが失われる可能性が高く、その意味で、ローカルキャッシュ３１ａのデータの安全性が低下する。
【００３３】
このため、制御部３２は、記憶装置３に対するデータの書き込み制御を、ライトバック方式からライトスルー方式に切り替える。実際には、制御部３２は、ローカルキャッシュ３１ａの全データを記憶装置３に反映させた後、ライトスルー方式による書き込み制御を開始する。これにより、ローカルキャッシュ３１ａのデータは常に記憶装置３と同期する状態となり、ローカルキャッシュ３１ａのデータの安全性が向上する。
【００３４】
以上の第１の実施の形態によれば、バッテリ３３の異常が発生した場合、バッテリ３３と同じ制御装置３０内の制御部３２だけでなく、制御装置３０内にローカルキャッシュ２１ａの内容をミラーリングしている制御装置２０の制御部２２も、書き込み制御をライトバック方式からライトスルー方式に切り替える。これにより、制御装置３０内のローカルキャッシュ３１ａだけでなく、制御装置２０のローカルキャッシュ２１ａについても、データ消失の可能性を低減することができる。
【００３５】
［第２の実施の形態］
図２は、第２の実施の形態のストレージシステムを示す図である。図２に示すストレージシステムは、ＣＥ（Controller Enclosure）１００，２００，３００、ＤＥ（Device Enclosure）４００，５００，６００、ホスト装置７００およびスイッチ８００を含む。
【００３６】
ＣＥ１００は、ＣＭ（Controller Module）１１０，１２０を有する。ＣＥ２００は、ＣＭ２１０，２２０を有する。ＣＥ３００は、ＣＭ３１０，３２０を有する。ＣＭ１１０，１２０，２１０，２２０，３１０，３２０は、スイッチ８００を介して互いに接続されている。ＣＭ１１０，１２０，２１０，２２０，３１０，３２０とスイッチ８００との間は、例えば、ＰＣＩ  Ｅｘｐｒｅｓｓ（Peripheral Component Interconnect Express）バスによって接続されている。
【００３７】
また、ＣＭ１１０，１２０，２１０，２２０，３１０，３２０には、ホスト装置７００が接続されている。ＣＭ１１０，１２０，２１０，２２０，３１０，３２０とホスト装置７００とは、例えば、ファイバチャネル（ＦＣ：Fibre Channel）やｉＳＣＳＩ（Internet Small Computer System Interface）などを用いたＳＡＮ（Storage Area Network）を介して接続される。なお、図２では例として１台のホスト装置７００がＣＭ１１０，１２０，２１０，２２０，３１０，３２０に接続されているが、例えば、複数台のホスト装置のそれぞれが１台以上のＣＭに接続されてもよい。
【００３８】
ＤＥ４００，５００，６００には、それぞれ複数台の記憶装置が搭載されている。本実施の形態では、ＤＥ４００，５００，６００は、記憶装置としてＨＤＤ（Hard Disk Drive）を備えたディスクアレイ装置である。なお、ＤＥ４００，５００，６００に搭載される記憶装置は、ＳＳＤ（Solid State Drive）などの他の種類の記憶装置であってもよい。
【００３９】
ＣＭ１１０，１２０には、ＤＥ４００が接続されている。ＣＭ１１０，１２０は、ホスト装置７００からの要求に応じて、ＤＥ４００に搭載されたＨＤＤに対するアクセスを制御する。ＣＭ２１０，２２０には、ＤＥ５００が接続されている。ＣＭ２１０，２２０は、ホスト装置７００からの要求に応じて、ＤＥ５００に搭載されたＨＤＤに対するアクセスを制御する。ＣＭ３１０，３２０には、ＤＥ６００が接続されている。ＣＭ３１０，３２０は、ホスト装置７００からの要求に応じて、ＤＥ６００に搭載されたＨＤＤに対するアクセスを制御する。
【００４０】
なお、ＣＥ１００とＤＥ４００とは、例えば、１つの筐体に搭載されるストレージ装置として実現される。ＣＥ２００とＤＥ５００、および、ＣＥ３００とＤＥ６００についても同様である。図２のストレージシステムは、このようなストレージ装置をスケールアウトした構成となっている。
【００４１】
また、ストレージシステムに含まれるＣＥの数は３台に限定されるものではなく、各ＣＥに含まれるＣＭの数も２台に限定されるものではない。例えば、ストレージシステムには、それぞれ２台のＣＭを備えるＣＥが１２台含まれてもよい。
【００４２】
図３は、ＣＭのハードウェア例を示す図である。ＣＭ１１０は、プロセッサ１１０ａ、ＲＡＭ１１０ｂ、ＳＳＤ１１０ｃ、ＣＡ（Channel Adapter）１１０ｄ、ＣＭインタフェース１１０ｅ、ＤＩ（Device Interface）１１０ｆおよび読み取り装置１１０ｇを有する。
【００４３】
プロセッサ１１０ａは、ＣＭ１１０の情報処理を制御する。プロセッサ１１０ａは、複数のプロセッシング要素を含むマルチプロセッサであってもよい。
ＲＡＭ１１０ｂは、ＣＭ１１０の主記憶装置である。ＲＡＭ１１０ｂは、プロセッサ１１０ａに実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ１１０ｂは、プロセッサ１１０ａによる処理に用いる各種データを記憶する。
【００４４】
ＳＳＤ１１０ｃは、ＣＭ１１０の補助記憶装置である。ＳＳＤ１１０ｃは、不揮発性の半導体メモリである。ＳＳＤ１１０ｃには、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ＣＭ１１０は、補助記憶装置として、ＳＳＤ１１０ｃの代わりにＨＤＤを備えていてもよい。
【００４５】
ＣＡ１１０ｄは、ホスト装置７００と通信するためのインタフェースである。ＣＭインタフェース１１０ｅは、スイッチ８００を介して、他のＣＭと通信するためのインタフェースである。ＤＩ１１０ｆは、ＤＥ４００と通信するためのインタフェースである。
【００４６】
読み取り装置１１０ｇは、可搬型の記録媒体１１０ｇａに記録されたプログラムやデータを読み取る装置である。記録媒体１１０ｇａとして、例えば、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤなどの磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）を使用できる。また、記録媒体１１０ｇａとして、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することもできる。読み取り装置１１０ｇは、例えば、プロセッサ１１０ａからの命令に従って、記録媒体１１０ｇａから読み取ったプログラムやデータをプロセッサ１１０ａに送信する。
【００４７】
なお、ＣＭ１２０，２１０，２２０，３１０，３２０もＣＭ１１０と同様のハードウェアにより実現できる。
また、ＣＥ１００は、バッテリ１３０を有する。バッテリ１３０は、停電時にＲＡＭ１１０ｂおよびＣＭ１２０が有するＲＡＭに電力を供給する。
【００４８】
図４は、キャッシュ領域とそのミラーリング先との関係を示す図である。本実施の形態のストレージシステムでは、ＣＭとホスト装置７００との間のデータの読み書きはＬＵ（Logical Unit）と呼ばれる論理記憶領域を単位として行われる。ストレージシステム内には複数のＬＵが設定され、各ＬＵにはそのＬＵに対するホスト装置７００からのアクセスを制御するＣＭが割り当てられる。ＣＭは、自装置に割り当てられたＬＵに対するアクセスを、自装置内のＲＡＭに確保したキャッシュ領域を用いて制御する。ＲＡＭには、キャッシュ領域がＬＵ毎に確保される。
【００４９】
図４では、説明を簡単にするために、ＣＭ１１０，１２０，２１０，２２０，３１０，３２０はそれぞれ、ホスト装置７００からのアクセス要求に応じて、１つの論理ボリュームに対するアクセスを制御するものとする。この場合、ＣＭ１１０，１２０，２１０，２２０，３１０，３２０の各ＲＡＭには、１つのキャッシュ領域（後述するローカルキャッシュ）が確保される。
【００５０】
あるＣＭがアクセス制御を担当するＬＵに対応する物理記憶領域は、ＤＥ４００，５００，６００に搭載された１台以上のＨＤＤによって実現される。最も簡単な例では、あるＣＭがアクセス制御を担当するＬＵに対応する物理記憶領域は、そのＣＭに接続されたＤＥ内の１台以上のＨＤＤによって実現される。例えば、ＣＭ１１０がアクセス制御を担当するＬＵに対応する物理記憶領域として、ＤＥ４００内の１台以上のＨＤＤが割り当てられる。また、通常、１つのＬＵには複数のＨＤＤが割り当てられ、それらのＨＤＤに対するデータの読み書きがＲＡＩＤ（Redundant Arrays of Inexpensive Disks）によって制御される。
【００５１】
図４に示すように、ＣＭ１１０では、ＲＡＭ１１０ｂに確保した記憶領域にローカルキャッシュ１１１およびミラーキャッシュ１１２が実装される。ＣＭ１２０では、ＣＭ１２０が有するＲＡＭに確保した記憶領域にローカルキャッシュ１２１およびミラーキャッシュ１２２が実装される。ＣＭ２１０では、ＣＭ２１０が有するＲＡＭに確保した記憶領域にローカルキャッシュ２１１およびミラーキャッシュ２１２が実装される。ＣＭ２２０では、ＣＭ２２０が有するＲＡＭに確保した記憶領域にローカルキャッシュ２２１およびミラーキャッシュ２２２が実装される。ＣＭ３１０では、ＣＭ３１０が有するＲＡＭに確保した記憶領域にローカルキャッシュ３１１およびミラーキャッシュ３１２が実装される。ＣＭ３２０では、ＣＭ３２０が有するＲＡＭに確保した記憶領域にローカルキャッシュ３２１およびミラーキャッシュ３２２が実装される。
【００５２】
ローカルキャッシュは、対応するＣＭが、ホスト装置７００からの要求に応じて当該ＣＭが担当するＬＵにアクセスする際に、キャッシュ領域として用いられる。例えば、ＣＭ１１０は、ホスト装置７００からの要求に応じたＬＵへのアクセスを、ローカルキャッシュ１１１をキャッシュ領域として用いて制御する。また、ＣＭ２１０は、ホスト装置７００からの要求に応じたＬＵへのアクセスを、ローカルキャッシュ２１１をキャッシュ領域として用いて制御する。
【００５３】
なお、通常、ＣＭは、ＬＵに対するデータの書き込みをライトバック方式で制御する。すなわち、ＣＭは、ホスト装置７００から書き込み要求を受信すると、ライトデータをローカルキャッシュに格納し、ホスト装置７００に対して書き込みの完了応答を送信する。そして、ＣＭは、その後の所定のタイミングで、ローカルキャッシュに格納されたライトデータを対応する物理記憶領域（ＨＤＤ）に格納する。また、後述するように、ＣＭは、ＬＵに対する書き込み制御をライトスルー方式に変更することもできる。
【００５４】
ミラーキャッシュには、他のローカルキャッシュのミラーデータが格納される。例えば、ＣＭ１１０は、ローカルキャッシュ１１１に格納されたデータをミラーキャッシュ２１２にミラーリングする。ＣＭ２１０は、ローカルキャッシュ２１１に格納されたデータをミラーキャッシュ３１２にミラーリングする。ＣＭ３１０は、ローカルキャッシュ３１１に格納されたデータをミラーキャッシュ１２２にミラーリングする。ＣＭ１２０は、ローカルキャッシュ１２１に格納されたデータをミラーキャッシュ２２２にミラーリングする。ＣＭ２２０は、ローカルキャッシュ２２１に格納されたデータをミラーキャッシュ３２２にミラーリングする。ＣＭ３２０は、ローカルキャッシュ３２１に格納されたデータをミラーキャッシュ１１２にミラーリングする。
【００５５】
このように、あるＣＭのローカルキャッシュは、隣接するＣＭにサイクリックにミラーリングされる。ただし、あるＣＭのローカルキャッシュは、必ず、そのＣＭが搭載されたＣＥとは異なるＣＥ内のＣＭにミラーリングされる。このような構成により、ＣＥ単位で動作が停止した場合でも、どのローカルキャッシュについても元データとミラーデータの少なくとも一方が消失せずに維持される。
【００５６】
例えば、ＣＭ１１０のローカルキャッシュ１１１がＣＭ１２０のミラーキャッシュ１２２にミラーリングされた場合を考える。この構成で、ＣＥ１００の動作が停止した場合、ローカルキャッシュ１１１に格納されたデータと、ミラーキャッシュ１２２に格納されたそのミラーデータの両方が消失してしまう。これに対して、図４の例では、ＣＭ１１０のローカルキャッシュ１１１がＣＭ２１０のミラーキャッシュ２１２にミラーリングされている。このため、ＣＥ１００の動作が停止したとしても、ミラーキャッシュ２１２のミラーデータが確実に残り、逆にＣＥ２００の動作が停止したとしても、ローカルキャッシュ１１１の元データが確実に残る。
【００５７】
ところで、ＣＥ１００は、バッテリ１３０を有する。バッテリ１３０は、停電時に、ローカルキャッシュ１１１およびミラーキャッシュ１１２が実装されるＲＡＭと，ローカルキャッシュ１２１およびミラーキャッシュ１２２が実装されるＲＡＭに電力を供給する。これにより、ＣＥ１００が停電になった場合でも、ローカルキャッシュ１１１，１２１およびミラーキャッシュ１１２，１２２のデータが消去されずに維持され、これらのデータを不揮発性記憶装置に退避するなどの措置を施すことができるようになる。
【００５８】
ＣＥ２００も同様に、バッテリ２３０を有する。バッテリ２３０は、停電時に、ローカルキャッシュ２１１およびミラーキャッシュ２１２が実装されるＲＡＭと、ローカルキャッシュ２２１およびミラーキャッシュ２２２が実装されるＲＡＭに電力を供給する。ＣＥ３００も同様に、バッテリ３３０を有する。バッテリ３３０は、停電時に、ローカルキャッシュ３１１およびミラーキャッシュ３１２が実装されるＲＡＭと、ローカルキャッシュ３２１およびミラーキャッシュ３２２が実装されるＲＡＭに電力を供給する。
【００５９】
ここで、ＣＭ１１０，１２０，２１０，２２０，３１０，３２０がライトバック方式でＬＵの書き込み制御を行っている状態で、バッテリ２３０が故障した場合を考える。なお、以下の説明では、ＣＭがライトバック方式でＬＵの書き込み制御を行っている状態を「ライトバック運用」、ＣＭがライトスルー方式でＬＵの書き込み制御を行っている状態を「ライトスルー運用」と記載する場合がある。
【００６０】
バッテリ２３０が故障した場合に、ＣＥ２００が有するＣＭ２１０，２２０をライトバック運用からライトスルー運用に切り替える方法が考えられる。それは、その後に停電が起きるとローカルキャッシュ２１１，２２１に格納されているデータが消失するからである。ＣＭ２１０，２２０がライトスルー運用に切り替えることで、ローカルキャッシュ２１１，２２１のデータが対応する物理記憶領域（ＨＤＤ）に格納されるので、停電が発生してもデータの消失を防ぐことができる。
【００６１】
しかしながら、ＣＭ２１０，２２０だけをライトスルー運用に切り替えた後に停電が発生すると、ミラーキャッシュ２１２，２２２に格納されているデータは消失する。このとき、ローカルキャッシュ１１１，１２１のデータの二重化が実現されなくなり、ローカルキャッシュ１１１，１２１のデータの安全性も低下する。例えば、その後にローカルキャッシュ１１１，１２１に格納されているデータが消失した場合に、当該データを復元できなくなるという問題がある。
【００６２】
また、別の方法として、バッテリ２３０が故障した場合に、ＣＭ１１０，１２０，２１０，２２０，３１０，３２０の全てをライトバック運用からライトスルー運用に切り替える方法も考えられる。これは、例えば、全てのＣＭが同じ筐体（ＣＥ）に搭載されている、非スケールアウト型の構成と同様の制御方法である。この方法によれば、ローカルキャッシュ１１１，１２１，２１１，２２１，３１１，３２１の全てのデータについて、データ消失の可能性を低減できる。しかし、この方法では、全てのＣＭでのＬＵに対するアクセスの応答速度が低下し、ストレージシステム全体のアクセス性能が極端に悪化するという問題がある。
【００６３】
そこで、第２の実施の形態では、バッテリ２３０が故障した場合、バッテリ２３０から停電時に電力の供給を受付けるＣＭ２１０，２２０だけでなく、ＣＭ２１０，２２０をローカルキャッシュのミラーリング先としているＣＭ１１０，１２０も、ライトバック運用からライトスルー運用に切り替える。ＣＭ１１０，１２０をライトスルー運用に切り替えることで、ローカルキャッシュ１１１，１２１に格納されているデータが対応する物理記憶領域（ＨＤＤ）にも格納されるので、データの消失を防ぐことができる。また、ＣＭ１１０，１２０，２１０，２２０のみをライトスルー運用に切り替えるので、全てのＣＭをライトスルー運用に切り替えるよりもアクセス性能を向上させることができる。
【００６４】
図５は、ＣＭの機能例を示す図である。ＣＭ１１０は、ローカルキャッシュ１１１、ミラーキャッシュ１１２、テーブル記憶部１１３、アクセス制御部１１４、監視部１１５および切り替え判定部１１６を有する。テーブル記憶部１１３は、例えば、ＲＡＭ１１０ｂまたはＳＳＤ１１０ｃに確保した記憶領域として実装される。アクセス制御部１１４、監視部１１５および切り替え判定部１１６は、例えば、プロセッサ１１０ａが実行するプログラムのモジュールとして実装される。
【００６５】
テーブル記憶部１１３は、ボリューム管理テーブルおよびフラグ管理テーブルを有する。ボリューム管理テーブルには、ＬＵと物理記憶領域、ローカルキャッシュの位置およびミラーキャッシュの位置との対応関係を示す情報が登録される。フラグ管理テーブルには、自ＣＥまたは他ＣＥのどちらが有するバッテリの異常が要因であるかを示す情報が登録される。
【００６６】
また、テーブル記憶部１１３は、現在、ＣＭ１１０がライトバック運用またはライトスルー運用のどちらで運用されているかを示す情報を記憶する。また、テーブル記憶部１１３は、各バッテリと各ＣＥとの対応関係を示す情報を記憶する。例えば、テーブル記憶部１１３は、バッテリ２３０とＣＥ２００との対応関係を示す情報を記憶する。この情報からＣＥ２００がバッテリ２３０を有することを特定できる。
【００６７】
アクセス制御部１１４は、ホスト装置７００からのアクセス要求に応じてＬＵに対するアクセス制御を行う。このアクセス制御の際、アクセス制御部１１４は、ローカルキャッシュ１１１をキャッシュ領域として使用する。また、アクセス制御部１１４は、ＬＵに対する書き込み制御の方式として、ライトバック方式とライトスルー方式とを切り替えることができる。
【００６８】
例えば、ライトバック運用時において、アクセス制御部１１４は、ホスト装置７００からデータの書き込み要求を受けると、受信したライトデータをローカルキャッシュ１１１に格納する。アクセス制御部１１４は、ホスト装置７００にライトデータの書き込みを完了した旨を通知する。その後、アクセス制御部１１４は、ローカルキャッシュ１１１に格納されたライトデータを、対応するＨＤＤに格納する。また、アクセス制御部１１４は、ローカルキャッシュ１１１に格納されたライトデータを複製し、ＣＭ２１０に、複製したデータをミラーキャッシュ２１２に格納させる。これにより、ホスト装置７００から受信したライトデータは、ローカルキャッシュ１１１とミラーキャッシュ２１２で二重化される。なお、ＣＭ２１０へのデータ転送はスイッチ８００を介して行われる。
【００６９】
一方、ライトスルー運用時において、アクセス制御部１１４は、ホスト装置７００からデータの書き込み要求を受けると、受信したライトデータをローカルキャッシュ１１１に書き込むと共に、対応するＨＤＤにも書き込む。アクセス制御部１１４は、ローカルキャッシュ１１１とＨＤＤにライトデータを格納した後に、ライトデータの書き込みを完了した旨をホスト装置７００に通知する。
【００７０】
また、アクセス制御部１１４は、ＣＭ３２０から転送された、ローカルキャッシュ３２１に対応するミラーデータを、ミラーキャッシュ１１２に格納する。
監視部１１５は、バッテリ１３０の状態を監視する。ただし、後述するように、監視部１１５は、ＣＭ１１０がＣＥ内マスタまたはマスタＣＭに設定されている場合のみ動作する。
【００７１】
切り替え判定部１１６は、後述するように、マスタＣＭからバッテリが異常である旨を示すバッテリ状態通知を受信する。ここで、異常とは、例えば、バッテリが故障した場合やバッテリの充電率が閾値未満になった場合をいう。切り替え判定部１１６は、バッテリ状態通知が示すバッテリがバッテリ１３０であるか、またはローカルキャッシュ１１１のミラーリング先のＣＭ２１０を有するＣＥ２００内のバッテリ２３０であるかによって、アクセス制御部１１４をライトバック運用からライトスルー運用に切り替えるかを判定する。切り替え判定部１１６は、ライトスルー運用に切り替えると決定した場合、ミラーリング先のＣＭ２１０にミラーデータ削除通知を送信する。ミラーリング先にミラーデータ削除通知を送信するのは、ＣＭ１１０でライトスルー運用に切り替えるため、データを二重化しなくてもよいからである。
【００７２】
切り替え判定部１１６は、ミラーキャッシュ１１２のミラーリング元のＣＭ３２０からミラーデータ削除通知を受信した場合、ミラーキャッシュ１１２に格納されているミラーデータを削除する。切り替え判定部１１６は、ミラーデータ削除完了通知をＣＭ３２０に送信する。
【００７３】
また、切り替え判定部１１６は、後述するように、マスタＣＭからバッテリが正常である旨を示すバッテリ状態通知を受信する。切り替え判定部１１６は、バッテリ状態通知が示すバッテリがバッテリ１３０であるか、またはローカルキャッシュ１１１のミラーリング先のＣＭ２１０を有するＣＥ２００内のバッテリ２３０であるかによって、アクセス制御部１１４をライトスルー運用からライトバック運用に切り替えるかを判定する。切り替え判定部１１６は、ライトバック運用に切り替えると決定した場合、ＣＭ２１０にローカルキャッシュ１１１に格納されているデータのミラーデータをミラーキャッシュ２１２に格納させる。
【００７４】
ＣＭ１２０，２１０，２２０，３１０，３２０も、ＣＭ１１０と同様にローカルキャッシュ、ミラーキャッシュ、テーブル記憶部、アクセス制御部、監視部および切り替え判定部を有する。各機能はＣＭ１１０と同様なので説明を省略する。
【００７５】
ここで、ＣＥ内マスタおよびマスタＣＭについて説明する。各ＣＥが有するＣＭのうち、１つのＣＭがＣＥ内マスタに設定される。例えば、ＣＥ１００が有するＣＭ１１０，１２０の中からＣＭ１１０がＣＥ内マスタに設定される。ＣＥ２００が有するＣＭ２１０，２２０の中からＣＭ２１０がＣＥ内マスタに設定される。ＣＥ３００が有するＣＭ３１０，３２０の中からＣＭ３１０がＣＥ内マスタに設定される。また、ＣＭ１１０，１２０，２１０，２２０，３１０，３２０のうち、１つのＣＭがマスタＣＭに設定される。例えば、ＣＭ１１０がマスタＣＭに設定される。なお、１つのＣＭにＣＥ内マスタとマスタＣＭの両方が設定されてもよい。
【００７６】
ＣＥ内マスタの機能を説明する。ＣＥ内マスタの機能は、ＣＥ内マスタに設定されたＣＭの監視部で実現される。ここでは、ＣＥ内マスタとして、ＣＭ１１０が設定されているものとして説明する。監視部１１５は、バッテリ１３０の状態を監視する。例えば、監視部１１５は、バッテリ１３０に対して定期的にポーリングを実行して、バッテリ１３０の状態を監視する。監視部１１５は、バッテリ１３０が異常であることを検出した場合、マスタＣＭにバッテリ１３０が異常である旨を示すバッテリ異常通知を送信する。なお、ＣＥ内マスタに設定されているＣＭのテーブル記憶部には、どのＣＭがマスタＣＭであるかを示す情報が記憶される。また、監視部１１５は、バッテリ１３０が正常になったことを検出した場合、マスタＣＭにバッテリ１３０が正常になった旨を示すバッテリ正常通知を送信する。
【００７７】
次に、マスタＣＭの機能を説明する。マスタＣＭの機能は、マスタＣＭに設定されたＣＭの監視部で実現される。ここでは、マスタＣＭとして、ＣＭ１１０が設定されているものとして説明する。監視部１１５は、ＣＥ内マスタからバッテリ異常通知またはバッテリ正常通知を受信した場合、その通知内容に応じたバッテリ状態通知を他の全てのＣＭ１２０，２１０，２２０，３１０，３２０に送信する。バッテリ状態通知には、どのバッテリが異常または正常であるかを示す情報が含まれている。
【００７８】
図６は、ボリューム管理テーブルの例を示す図である。ボリューム管理テーブル１１３ａは、テーブル記憶部１１３に格納される。また、他のＣＭ１２０，２１０，２２０，３１０，３２０の全てのテーブル記憶部には、ボリューム管理テーブル１１３ａと同じ内容のボリューム管理テーブルが記憶される。すなわち、ＣＭ１１０，１２０，２１０，２２０，３１０，３２０の全てにおいてボリューム管理テーブルの内容が同期される。
【００７９】
ボリューム管理テーブル１１３ａは、ＬＵＮ（Logical Unit Number）、ローカルキャッシュ、ミラーキャッシュおよび物理記憶領域の項目を含む。ＬＵＮの項目には、ＬＵを識別する情報が登録される。ローカルキャッシュの項目には、ＬＵに対応するローカルキャッシュが配置されるＣＭを識別する情報が登録される。ローカルキャッシュの項目に登録されたＣＭは、対応するＬＵへのアクセス制御を担当することも示す。ミラーキャッシュの項目には、ＬＵに対応するミラーキャッシュが配置されるＣＭを識別する情報が登録される。物理記憶領域の項目には、ＬＵに割り当てられた物理記憶領域を示す情報が登録される。例えば、物理記憶領域の項目には、ＬＵに割り当てられたＨＤＤの識別情報が登録される。また、物理記憶領域の項目には、割り当てられたＨＤＤ内の領域を示すアドレス範囲が登録されてもよい。
【００８０】
図７は、フラグ管理テーブルの例を示す図である。フラグ管理テーブル１１３ｂは、テーブル記憶部１１３に格納される。フラグ管理テーブル１１３ｂは、自ＣＥ要因フラグおよび他ＣＥ要因フラグの項目を含む。
【００８１】
自ＣＥ要因フラグの項目には、バッテリ異常の要因が自ＣＥの有するバッテリであるか否かを示す情報が登録される。自ＣＥとは、ＣＭ１１０が搭載されているＣＥ１００を指す。自ＣＥ要因フラグには、バッテリ異常の要因が自ＣＥのバッテリである場合に「ｔｒｕｅ」が登録され、バッテリ異常の要因が自ＣＥのバッテリでない場合に「ｆａｌｓｅ」が登録される。
【００８２】
他ＣＥ要因フラグの項目には、バッテリ異常の要因が他ＣＥの有するバッテリであるか否かを示す情報が登録される。例えば、他ＣＥとは、ローカルキャッシュ１１１のミラーリング先のＣＭ２１０が搭載されたＣＥ２００を指す。他ＣＥ要因フラグには、バッテリ異常の要因が他ＣＥのバッテリである場合に「ｔｒｕｅ」が登録され、バッテリ異常の要因が他ＣＥのバッテリでない場合に「ｆａｌｓｅ」が登録される。
【００８３】
なお、他のＣＭ１２０，２１０，２２０，３１０，３２０のテーブル記憶部にも、図７と同様の項目を有するフラグ管理テーブルが記憶される。各ＣＭ内のフラグ管理テーブルは、各ＣＭ内のアクセス制御部のアクセス制御方式の変更判定を行うために利用される。
【００８４】
図８は、ＣＥ内マスタによるバッテリ状態の監視処理例を示すフローチャートである。図８では、ＣＭ１１０がＣＥ内マスタに設定されているものとする。以下、図８に示す処理をステップ番号に沿って説明する。図８の処理は、一定時間ごとに実行される。
【００８５】
（Ｓ１１）監視部１１５は、バッテリ１３０に対してポーリングを実行する。
（Ｓ１２）監視部１１５は、バッテリ１３０の状態が正常状態から異常状態へ、または異常状態から正常状態へ変化したかを判定する。なお、監視部１１５は、例えば、バッテリ１３０が故障しているとき、または、バッテリ１３０の充電率が閾値未満であるとき、バッテリ１３０が異常状態であると判定する。バッテリ１３０の状態が変化した場合、処理をステップＳ１３に進める。バッテリ１３０の状態が変化していない場合、処理を終了する。
【００８６】
（Ｓ１３）監視部１１５は、マスタＣＭにバッテリ１３０の状態を示す通知を送信する。ステップＳ１２でバッテリ１３０が異常状態に変化したと判定した場合、監視部１１５は、バッテリ１３０が異常である旨を示すバッテリ異常通知を送信する。また、ステップＳ１２でバッテリ１３０が正常状態に変化したと判定した場合、監視部１１５は、バッテリ１３０が正常である旨を示すバッテリ正常通知を送信する。そして、処理を終了する。
【００８７】
なお、ＣＭ１１０がマスタＣＭである場合には、ステップＳ１３の送信処理が実行されない代わりに、次の図９のステップＳ２２以降の処理が実行される。
図９は、バッテリ状態の変化が検出された場合のマスタＣＭの処理例を示すフローチャートである。図９では、マスタＣＭが、ＣＭ１１０に設定されているものとする。以下、図９に示す処理をステップ番号に沿って説明する。
【００８８】
（Ｓ２１）監視部１１５は、ＣＥ内マスタからバッテリ異常通知またはバッテリ正常通知を受信する。バッテリ異常通知には、どのバッテリが異常であるかを示す情報が含まれている。また、バッテリ正常通知には、どのバッテリが正常であるかを示す情報が含まれている。
【００８９】
（Ｓ２２）監視部１１５は、ＣＭ１２０，２１０，２２０，３１０，３２０にバッテリ状態通知を送信する。ステップＳ２１でバッテリ異常通知を受信した場合、監視部１１５は、全てのＣＭに、バッテリの異常が発生したことを示す情報と異常が発生したバッテリの識別情報とを含むバッテリ状態通知を送信する。ステップＳ２１でバッテリ正常通知を受信した場合、監視部１１５は、全てのＣＭに、バッテリが正常状態になったことを示す情報と正常になったバッテリの識別情報とを含むバッテリ状態通知を送信する。そして、処理を終了する。
【００９０】
図１０は、バッテリ状態通知を受信した場合のＣＭの処理の例（その１）を示すフローチャートである。図１０に示す処理は、全てのＣＭで実行される。図１０では、ＣＭ１１０が実行する場合を示す。以下、図１０に示す処理をステップ番号に沿って説明する。
【００９１】
（Ｓ３１）切り替え判定部１１６は、マスタＣＭからバッテリ状態通知を受信する。
なお、ＣＭ１１０がマスタＣＭである場合、ステップＳ３１は実行されない。その代わりに、監視部１１５が図９のステップＳ２２で送信したバッテリ状態通知の内容に基づいて、ステップＳ３２以降の処理が実行される。
【００９２】
（Ｓ３２）切り替え判定部１１６は、バッテリ状態通知の内容が、ＣＥ１００内のバッテリ１３０が故障であることを示しているか否かを判定する。バッテリ１３０が故障であることを示している場合、処理をステップＳ３５に進める。バッテリ１３０が故障でないことを示している場合、処理をステップＳ３３に進める。
【００９３】
（Ｓ３３）切り替え判定部１１６は、バッテリ状態通知の内容が、ＣＥ１００内のバッテリ１３０の充電率が閾値未満であることを示しているか否かを判定する。充電率が閾値未満であることを示している場合、処理をステップＳ３５に進める。充電率が閾値未満でないことを示している場合、処理をステップＳ３４に進める。
【００９４】
（Ｓ３４）切り替え判定部１１６は、フラグ管理テーブル１１３ｂの自ＣＥ要因フラグにｆａｌｓｅを設定する。そして、処理をステップＳ３６に進める。
（Ｓ３５）切り替え判定部１１６は、フラグ管理テーブル１１３ｂの自ＣＥ要因フラグにｔｒｕｅを設定する。
【００９５】
（Ｓ３６）切り替え判定部１１６は、ボリューム管理テーブル１１３ａのローカルキャッシュとミラーキャッシュを参照し、ＣＭ１１０内のローカルキャッシュのミラーリング先のＣＭ２１０を特定する。切り替え判定部１１６は、バッテリ状態通知の内容が、ＣＭ２１０を有するＣＥ２００内のバッテリ２３０が故障であることを示しているか否かを判定する。バッテリ２３０が故障であることを示している場合、処理をステップＳ３９に進める。バッテリ２３０が故障でないことを示している場合、処理をステップＳ３７に進める。
【００９６】
（Ｓ３７）切り替え判定部１１６は、バッテリ状態通知の内容が、ミラーリング先のＣＭ２１０を有するＣＥ２００内のバッテリ２３０の充電率が閾値未満であることを示しているか否かを判定する。充電率が閾値未満であることを示している場合、処理をステップＳ３９に進める。充電率が閾値未満でないことを示している場合、処理をステップＳ３８に進める。
【００９７】
（Ｓ３８）切り替え判定部１１６は、フラグ管理テーブル１１３ｂの他ＣＥ要因フラグにｆａｌｓｅを設定する。そして、処理をステップＳ４１に進める。
（Ｓ３９）切り替え判定部１１６は、フラグ管理テーブル１１３ｂの他ＣＥ要因フラグにｔｒｕｅを設定する。そして、処理をステップＳ４１に進める。
【００９８】
図１１は、バッテリ状態通知を受信した場合のＣＭの処理の例（その２）を示すフローチャートである。以下、図１１に示す処理をステップ番号に沿って説明する。
（Ｓ４１）切り替え判定部１１６は、フラグ管理テーブル１１３ｂを参照し、自ＣＥ要因フラグまたは他ＣＥ要因フラグにｔｒｕｅが設定されているか否かを判定する。ｔｒｕｅが設定されている場合、処理をステップＳ４２に進める。ｔｒｕｅが設定されていない場合、処理をステップＳ４３に進める。
【００９９】
（Ｓ４２）切り替え判定部１１６は、ＣＭ１１０の書き込み制御方式をライトスルーと決定する。そして、処理をステップＳ４４に進める。
（Ｓ４３）切り替え判定部１１６は、ＣＭ１１０の書き込み制御方式をライトバックと決定する。
【０１００】
（Ｓ４４）切り替え判定部１１６は、ＣＭ１１０の書き込み制御方式をライトスルーと決定したか否かを判定する。ライトスルーと決定した場合、処理をステップＳ４５に進める。ライトスルーと決定していない場合、処理をステップＳ４８に進める。
【０１０１】
（Ｓ４５）切り替え判定部１１６は、現在、ＣＭ１１０の書き込み制御方式がライトバックであるか否かを判定する。ライトバックである場合、処理をステップＳ４６に進める。ライトバックでない場合、処理をステップＳ４８に進める。
【０１０２】
（Ｓ４６）切り替え判定部１１６は、アクセス制御部１１４に、ローカルキャッシュ１１１に格納されているデータの退避を指示する。指示を受けたアクセス制御部１１４は、ボリューム管理テーブル１１３ａの物理記憶領域の情報に基づいて、ローカルキャッシュ１１１に格納されているデータを、対応するＨＤＤの領域に退避する。
【０１０３】
（Ｓ４７）切り替え判定部１１６は、ミラーリング先のＣＭ２１０にミラーデータ削除通知を送信する。
（Ｓ４８）切り替え判定部１１６は、ＣＭ３２０からミラーデータ削除通知を受信したか否かを判定する。受信した場合、処理をステップＳ４９に進める。受信していない場合、処理をステップＳ５１に進める。
【０１０４】
（Ｓ４９）切り替え判定部１１６は、ミラーキャッシュ１１２に格納されているミラーデータを削除する。
（Ｓ５０）切り替え判定部１１６は、ステップＳ４８で受信したミラーデータ削除通知の送信元であるＣＭ３２０に、ミラーデータ削除完了通知を送信する。そして、処理をステップＳ５１に進める。
【０１０５】
図１２は、バッテリ状態通知を受信した場合のＣＭの処理の例（その３）を示すフローチャートである。以下、図１２に示す処理をステップ番号に沿って説明する。
（Ｓ５１）切り替え判定部１１６は、ＣＭ１１０の書き込み制御方式をライトスルーと決定したか否かを判定する。ライトスルーと決定した場合、処理をステップＳ５２に進める。ライトスルーと決定していない場合、処理をステップＳ５４に進める。
【０１０６】
（Ｓ５２）切り替え判定部１１６は、現在、ＣＭ１１０の書き込み制御方式がライトバックであるか否かを判定する。ライトバックである場合、処理をステップＳ５３に進める。ライトバックでない場合、処理を終了する。
【０１０７】
（Ｓ５３）切り替え判定部１１６は、アクセス制御部１１４に、書き込み制御方式をライトバックからライトスルーに切り替えるように指示する。指示を受けたアクセス制御部１１４は、ライトスルー方式によるＬＵの書き込み制御を開始する。なお、アクセス制御部１１４は、ライトスルー方式によるＬＵの書き込み制御の実行時には、ホスト装置７００から書き込みが要求されたライトデータを、ミラーキャッシュ２１２にミラーリングしない。
【０１０８】
（Ｓ５４）切り替え判定部１１６は、現在、ＣＭ１１０の書き込み制御方式がライトスルーであるか否かを判定する。ライトスルーである場合、処理をステップＳ５５に進める。ライトスルーでない場合、処理を終了する。
【０１０９】
（Ｓ５５）切り替え判定部１１６は、アクセス制御部１１４に、ローカルキャッシュ１１１のコピーを指示する。アクセス制御部１１４は、ボリューム管理テーブル１１３ａのローカルキャッシュとミラーキャッシュを参照し、ローカルキャッシュ１１１のミラーリング先のＣＭ２１０を特定する。アクセス制御部１１４は、ローカルキャッシュ１１１に格納されているデータの複製データをＣＭ２１０に送信して、ミラーキャッシュ２１２に格納させる。
【０１１０】
（Ｓ５６）切り替え判定部１１６は、アクセス制御部１１４に、書き込み制御方式をライトスルーからライトバックに切り替えるように指示する。指示を受けたアクセス制御部１１４は、ライトバック方式によるＬＵの書き込み制御を開始する。また、これ以後、アクセス制御部１１４は、ＬＵへの書き込み要求を受けたときには、ライトデータをミラーキャッシュ２１２にも格納して、ローカルキャッシュ１１１とミラーキャッシュ２１２の内容を同期させる。
【０１１１】
図１３は、バッテリ異常が検出された場合の処理例（その１）を示すシーケンス図である。図１３では、ＣＭ１１０がマスタＣＭに設定されているものとする。また、ＣＭ１１０，２１０，３１０がＣＥ内マスタに設定されているものとする。さらに、全てのＣＭでは、ライトバック方式でＬＵの書き込み制御が行われているものとする。以下、図１３に示す処理をステップ番号に沿って説明する。
【０１１２】
（ＳＴ１０１）ＣＭ２１０は、バッテリ２３０が異常であることを検出する。例えば、ＣＭ２１０は、バッテリ２３０が故障であることを検出する。
（ＳＴ１０２）ＣＭ２１０は、バッテリ２３０が異常である旨を示すバッテリ異常通知をＣＭ１１０に送信する。
【０１１３】
（ＳＴ１０３）ＣＭ１１０は、バッテリ２３０が異常である旨を示す内容のバッテリ状態通知をＣＭ１２０に送信する。
（ＳＴ１０４）ＣＭ１１０は、バッテリ２３０が異常である旨を示す内容のバッテリ状態通知をＣＭ２１０に送信する。
【０１１４】
（ＳＴ１０５）ＣＭ１１０は、バッテリ２３０が異常である旨を示す内容のバッテリ状態通知をＣＭ２２０に送信する。
（ＳＴ１０６）ＣＭ１１０は、バッテリ２３０が異常である旨を示す内容のバッテリ状態通知をＣＭ３１０に送信する。
【０１１５】
（ＳＴ１０７）ＣＭ１１０は、バッテリ２３０が異常である旨を示す内容のバッテリ状態通知をＣＭ３２０に送信する。
（ＳＴ１０８）ＣＭ１１０は、バッテリ１３０が異常でないことを判定する。ＣＭ１１０は、ローカルキャッシュ１１１のミラーリング先のＣＭ２１０を有するＣＥ２００内のバッテリ２３０の異常であることを判定する。ＣＭ１１０は、バッテリ２３０が異常であるため、ＣＭ１１０の書き込み制御方式をライトスルーに決定する。
【０１１６】
（ＳＴ１０９）ＣＭ１２０は、バッテリ状態通知の内容から、バッテリ１３０が異常でないことを特定する。ＣＭ１２０は、バッテリ状態通知の内容から、ローカルキャッシュ１２１のミラーリング先のＣＭ２２０を有するＣＥ２００内のバッテリ２３０の異常であることを判定する。ＣＭ１２０は、バッテリ２３０が異常であるため、ＣＭ１２０の書き込み制御方式をライトスルーに決定する。
【０１１７】
（ＳＴ１１０）ＣＭ２１０は、バッテリ状態通知の内容から、自ＣＥ内のバッテリ２３０が異常であることを判定する。ＣＭ２１０は、バッテリ２３０が異常であるため、ＣＭ２１０の書き込み制御方式をライトスルーに決定する。
【０１１８】
（ＳＴ１１１）ＣＭ２２０は、バッテリ状態通知の内容から、自ＣＥ内のバッテリ２３０が異常であることを判定する。ＣＭ２２０は、バッテリ２３０が異常であるため、ＣＭ２２０の書き込み制御方式をライトスルーに決定する。
【０１１９】
（ＳＴ１１２）ＣＭ３１０は、バッテリ状態通知の内容から、バッテリ３３０が異常でないことを判定する。ＣＭ３１０は、バッテリ状態通知の内容から、ローカルキャッシュ３１１のミラーリング先のＣＭ１２０を有するＣＥ１００内のバッテリ１３０が異常でないことを判定する。よって、ＣＭ３１０は、ライトバック方式によるＬＵの書き込み制御を継続する。
【０１２０】
（ＳＴ１１３）ＣＭ３２０は、バッテリ状態通知の内容から、バッテリ３３０が異常でないことを判定する。ＣＭ３２０は、バッテリ状態通知の内容から、ローカルキャッシュ３２１のミラーリング先のＣＭ１１０を有するＣＥ１００内のバッテリ１３０が異常でないことを判定する。よって、ＣＭ３２０は、ライトバック方式によるＬＵの書き込み制御を継続する。
【０１２１】
（ＳＴ１１４）ＣＭ１１０は、ローカルキャッシュ１１１に格納されているデータを対応するＨＤＤに退避する。
（ＳＴ１１５）ＣＭ１２０は、ローカルキャッシュ１２１に格納されているデータを対応するＨＤＤに退避する。
【０１２２】
（ＳＴ１１６）ＣＭ２１０は、ローカルキャッシュ２１１に格納されているデータを対応するＨＤＤに退避する。
（ＳＴ１１７）ＣＭ２２０は、ローカルキャッシュ２２１に格納されているデータを対応するＨＤＤに退避する。
【０１２３】
図１４は、バッテリ異常が検出された場合の処理例（その２）を示すシーケンス図である。以下、図１４に示す処理をステップ番号に沿って説明する。
（ＳＴ１２１）ＣＭ１１０は、ローカルキャッシュ１１１のミラーリング先のＣＭ２１０にミラーデータ削除通知を送信する。
【０１２４】
（ＳＴ１２２）ＣＭ１２０は、ローカルキャッシュ１２１のミラーリング先のＣＭ２２０にミラーデータ削除通知を送信する。
（ＳＴ１２３）ＣＭ２１０は、ローカルキャッシュ２１１のミラーリング先のＣＭ３１０にミラーデータ削除通知を送信する。
【０１２５】
（ＳＴ１２４）ＣＭ２２０は、ローカルキャッシュ２２１のミラーリング先のＣＭ３２０にミラーデータ削除通知を送信する。
（ＳＴ１２５）ＣＭ２１０は、ミラーキャッシュ２１２に格納されているミラーデータを削除する。
【０１２６】
（ＳＴ１２６）ＣＭ２２０は、ミラーキャッシュ２２２に格納されているミラーデータを削除する。
（ＳＴ１２７）ＣＭ３１０は、ミラーキャッシュ３１２に格納されているミラーデータを削除する。
【０１２７】
（ＳＴ１２８）ＣＭ３２０は、ミラーキャッシュ３２２に格納されているミラーデータを削除する。
（ＳＴ１２９）ＣＭ２１０は、ミラーリング元のＣＭ１１０にミラーデータ削除完了通知を送信する。
【０１２８】
（ＳＴ１３０）ＣＭ２２０は、ミラーリング元のＣＭ１２０にミラーデータ削除完了通知を送信する。
（ＳＴ１３１）ＣＭ３１０は、ミラーリング元のＣＭ２１０にミラーデータ削除完了通知を送信する。
【０１２９】
（ＳＴ１３２）ＣＭ３２０は、ミラーリング元のＣＭ２２０にミラーデータ削除完了通知を送信する。
（ＳＴ１３３）ＣＭ１１０は、ＬＵの書き込み制御方式をライトバックからライトスルーに切り替える。
【０１３０】
（ＳＴ１３４）ＣＭ１２０は、ＬＵの書き込み制御方式をライトバックからライトスルーに切り替える。
（ＳＴ１３５）ＣＭ２１０は、ＬＵの書き込み制御方式をライトバックからライトスルーに切り替える。
【０１３１】
（ＳＴ１３６）ＣＭ２２０は、ＬＵの書き込み制御方式をライトバックからライトスルーに切り替える。
なお、ＣＭ１１０をライトスルーに切り替えた後も、ミラーキャッシュ１１２には、ローカルキャッシュ３２１に格納されたデータがミラーリングされる。これにより、ローカルキャッシュ３２１とミラーキャッシュ１１２とでデータが二重化される。同様に、ＣＭ１２０をライトスルーに切り替えた後もミラーキャッシュ１２２とローカルキャッシュ３１１とでデータが二重化される。したがって、バッテリ２３０の異常が検出された後も、ＣＭ３１０，３２０は、ローカルキャッシュ３１１，３２１の安全性を保ったまま、それまで通り自装置が担当するＬＵに対するアクセス制御を継続できる。
【０１３２】
以上説明したように、バッテリ２３０の異常が検出された場合、バッテリ２３０から停電時に電力の供給を受付けるＣＭ２１０，２２０だけでなく、ＣＭ２１０，２２０内にミラーリングされたデータの元データを有するＣＭ１１０，１２０も、ライトバックからライトスルーに切り替えられる。ＣＭ１１０，１２０をライトスルーに切り替えることで、ローカルキャッシュ１１１，１２１に格納されているデータが対応する物理記憶領域にも格納されるので、ローカルキャッシュ１１１，１２１についてもデータが消失する可能性を低減できる。
【０１３３】
また、ライトスルーに切り替えられたＣＭ２１０，２２０およびライトバックを継続するＣＭ３１０，３２０は、ローカルキャッシュのミラーリングを行わない。これにより、ＣＭ２１０，２２０，３１０，３２０の処理負荷を軽減できる。また、ホスト装置７００からの書き込み要求を受信した際に、対応するミラーキャッシュへライトデータを格納した後に書き込みの応答を送信する、という運用が行われる場合には、ライトスルーに切り替えた後にミラーキャッシュへのミラーリングを行わないようにすることで、ホスト装置７００に対する書き込みの応答時間を短縮できる。
【０１３４】
図１５は、バッテリ正常が検出された場合の処理例を示すシーケンス図である。図１５では、図１４の処理の後に、ＣＥ２００のバッテリ２３０が正常になった場合について示す。以下、図１５に示す処理をステップ番号に沿って説明する。
【０１３５】
（ＳＴ１４１）ＣＭ２１０は、バッテリ２３０が正常になったことを検出する。
（ＳＴ１４２）ＣＭ２１０は、バッテリ２３０が正常になった旨を示すバッテリ正常通知をＣＭ１１０に送信する。
【０１３６】
（ＳＴ１４３）ＣＭ１１０は、バッテリ２３０が正常になった旨を示す内容のバッテリ状態通知をＣＭ１２０に送信する。
（ＳＴ１４４）ＣＭ１１０は、バッテリ２３０が正常になった旨を示す内容のバッテリ状態通知をＣＭ２１０に送信する。
【０１３７】
（ＳＴ１４５）ＣＭ１１０は、バッテリ２３０が正常になった旨を示す内容のバッテリ状態通知をＣＭ２２０に送信する。
（ＳＴ１４６）ＣＭ１１０は、バッテリ２３０が正常になった旨を示す内容のバッテリ状態通知をＣＭ３１０に送信する。
【０１３８】
（ＳＴ１４７）ＣＭ１１０は、バッテリ２３０が正常になった旨を示す内容のバッテリ状態通知をＣＭ３２０に送信する。
（ＳＴ１４８）ＣＭ１１０は、バッテリ１３０が異常でないことを判定する。ＣＭ１１０は、ローカルキャッシュ１１１のミラーリング先のＣＭ２１０を有するＣＥ２００内のバッテリ２３０が異常でないことを判定する。よって、ＣＭ１１０は、書き込み制御方式をライトバックに決定する。
【０１３９】
（ＳＴ１４９）ＣＭ１２０は、バッテリ状態通知の内容から、バッテリ１３０が異常でないことを判定する。ＣＭ１２０は、バッテリ状態通知の内容から、ローカルキャッシュ１２１のミラーリング先のＣＭ２２０を有するＣＥ２００内のバッテリ２３０が異常でないことを判定する。よって、ＣＭ１２０は、書き込み制御方式をライトバックに決定する。
【０１４０】
（ＳＴ１５０）ＣＭ２１０は、バッテリ状態通知の内容から、バッテリ２３０が異常でないことを判定する。ＣＭ２１０は、バッテリ状態通知の内容から、ローカルキャッシュ２１１のミラーリング先のＣＭ３１０を有するＣＥ３００内のバッテリ３３０が異常でないことを判定する。よって、ＣＭ２１０は、書き込み制御方式をライトバックに決定する。
【０１４１】
（ＳＴ１５１）ＣＭ２２０は、バッテリ状態通知の内容から、バッテリ２３０が異常でないことを判定する。ＣＭ２２０は、バッテリ状態通知の内容から、ローカルキャッシュ２２１のミラーリング先のＣＭ３２０を有するＣＥ３００内のバッテリ３３０が異常でないことを判定する。よって、ＣＭ２２０は、書き込み制御方式をライトバックに決定する。
【０１４２】
（ＳＴ１５２）ＣＭ３１０は、バッテリ状態通知の内容から、バッテリ３３０が異常でないことを判定する。ＣＭ３１０は、バッテリ状態通知の内容から、ローカルキャッシュ３１１のミラーリング先のＣＭ１２０を有するＣＥ１００内のバッテリ１３０が異常でないことを判定する。よって、ＣＭ３１０は、ライトバック方式によるＬＵの書き込み制御を継続することを決定する。
【０１４３】
（ＳＴ１５３）ＣＭ３２０は、バッテリ状態通知の内容から、バッテリ３３０が異常でないことを判定する。ＣＭ３２０は、バッテリ状態通知の内容から、ローカルキャッシュ３２１のミラーリング先のＣＭ１１０を有するＣＥ１００内のバッテリ１３０が異常でないことを判定する。よって、ＣＭ３２０は、ライトバック方式によるＬＵの書き込み制御を継続することを決定する。
【０１４４】
（ＳＴ１５４）ＣＭ１１０は、ローカルキャッシュ１１１に格納されているデータをＣＭ２１０のミラーキャッシュ２１２にコピーする。
（ＳＴ１５５）ＣＭ１２０は、ローカルキャッシュ１２１に格納されているデータをＣＭ２２０のミラーキャッシュ２２２にコピーする。
【０１４５】
（ＳＴ１５６）ＣＭ２１０は、ローカルキャッシュ２１１に格納されているデータをＣＭ３１０のミラーキャッシュ３１２にコピーする。
（ＳＴ１５７）ＣＭ２２０は、ローカルキャッシュ２２１に格納されているデータをＣＭ３２０のミラーキャッシュ３２２にコピーする。
【０１４６】
（ＳＴ１５８）ＣＭ１１０は、ＬＵの書き込み制御方式をライトスルーからライトバックに切り替える。
（ＳＴ１５９）ＣＭ１２０は、ＬＵの書き込み制御方式をライトスルーからライトバックに切り替える。
【０１４７】
（ＳＴ１６０）ＣＭ２１０は、ＬＵの書き込み制御方式をライトスルーからライトバックに切り替える。
（ＳＴ１６１）ＣＭ２２０は、ＬＵの書き込み制御方式をライトスルーからライトバックに切り替える。
【０１４８】
このように、異常が起きたバッテリが正常になった場合、ライトスルーに切り替えられていたＣＭは、再度ライトバックに切り替えられる。これとともに、そのＣＭのローカルキャッシュについての他のＣＥ内のＣＭへのミラーリングも再開される。これにより、ローカルキャッシュの安全性が保たれた状態のまま、そのＣＭでのＬＵに対するアクセス性能が改善する。
【０１４９】
なお、第１の実施の形態の情報処理は、制御装置１０，２０，３０に用いられるプロセッサに、プログラムを実行させることで実現できる。第２の実施の形態の情報処理は、プロセッサ１１０ａおよびＣＭ１２０，２１０，２２０，３１０，３２０が有するプロセッサにプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体に記録できる。
【０１５０】
例えば、プログラムを記録した記録媒体を配布することで、プログラムを流通させることができる。また、各ＣＭが有するアクセス制御部、監視部および切り替え判定部に相当する機能を実現するプログラムを別個のプログラムとし、各プログラムを別個に配布してもよい。各ＣＭが有するアクセス制御部、監視部および切り替え判定部の機能が別個のコンピュータにより実現されてもよい。コンピュータは、例えば、記録媒体に記録されたプログラムを、ＲＡＭ１１０ｂやＳＳＤ１１０ｃに格納し（インストールし）、当該記憶装置からプログラムを読み込んで実行してもよい。
【符号の説明】
【０１５１】
１，２，３  記憶装置
１０，２０，３０  制御装置
１１，２１，３１  記憶部
１２，２２，３２  制御部
１３，２３，３３  バッテリ
１１ａ，２１ａ，３１ａ  ローカルキャッシュ
１１ｂ，２１ｂ，３１ｂ  ミラーキャッシュ
【図１】
0006536160.tif 000002
【図２】
0006536160.tif 000003
【図３】
0006536160.tif 000004
【図４】
0006536160.tif 000005
【図５】
0006536160.tif 000006
【図６】
0006536160.tif 000007
【図７】
0006536160.tif 000008
【図８】
0006536160.tif 000009
【図９】
0006536160.tif 000010
【図１０】
0006536160.tif 000011
【図１１】
0006536160.tif 000012
【図１２】
0006536160.tif 000013
【図１３】
0006536160.tif 000014
【図１４】
0006536160.tif 000015
【図１５】
0006536160.tif 000016