(57)【要約】【課題】停電時のバックアップ処理を不要としたことが書き込み応答性能に与える影響を軽減する。【解決手段】ストレージ制御装置１０は、ミラーリング領域１１ａを含む揮発性メモリ１１を有する。ストレージ制御装置２０は、キャッシュ領域２１ａを含む不揮発性メモリ２１と、記憶装置３０に対する書き込みデータの書き込み要求を受信すると、書き込みデータをキャッシュ領域２１ａとミラーリング領域１１ａの両方に書き込み、キャッシュ領域２１ａとミラーリング領域１１ａの両方に対する書き込みデータの書き込みが完了すると、書き込み完了通知を送信し、書き込み完了通知の送信後にキャッシュ領域２１ａ内の書き込みデータを記憶装置３０に書き込む制御部２２とを有する。【選択図】図１
2018022404.tif 000002
【特許請求の範囲】
【請求項１】
ミラーリング領域を含む揮発性メモリを有する第１のストレージ制御装置と、
キャッシュ領域を含む不揮発性メモリ、および、
記憶領域に対する書き込みデータの書き込み要求を受信すると、前記書き込みデータを前記キャッシュ領域と前記ミラーリング領域の両方に書き込み、前記キャッシュ領域と前記ミラーリング領域の両方に対する前記書き込みデータの書き込みが完了すると、書き込み完了通知を送信し、前記書き込み完了通知の送信後に前記キャッシュ領域内の前記書き込みデータを前記記憶領域に書き込む制御部、
を有する第２のストレージ制御装置と、
を有するストレージシステム。
【請求項２】
前記制御部は、
前記第１のストレージ制御装置と前記第２のストレージ制御装置が停電による動作停止状態から起動した場合、前記キャッシュ領域に格納されているデータを前記ミラーリング領域にコピーする、
請求項１記載のストレージシステム。
【請求項３】
前記制御部は、
前記第２のストレージ制御装置が所定の停止要求に応じて動作を停止する場合に、前記第２のストレージ制御装置が備える不揮発性記憶領域に正常に停止したことを示す正常停止情報を書き込み、
前記第２のストレージ制御装置が起動したとき、前記正常停止情報が記録されていない場合に、前記キャッシュ領域に格納されているデータを前記ミラーリング領域にコピーする、
請求項１記載のストレージシステム。
【請求項４】
前記第１のストレージ制御装置は、前記第２のストレージ制御装置が異常停止すると、前記キャッシュ領域を用いた前記記憶装置に対するアクセス制御を、前記ミラーリング領域をキャッシュとして用いて続行する他の制御部をさらに有する、
請求項１乃至３のいずれか１項に記載のストレージシステム。
【請求項５】
前記ストレージシステムは、他のミラーリング領域を含む他の揮発性メモリを有する第３のストレージ制御装置をさらに有し、
前記第１のストレージ制御装置は、
他のキャッシュ領域を含む他の不揮発性メモリと、
他の記憶領域に対する他の書き込みデータの書き込み要求を受信すると、前記他の書き込みデータを前記他のキャッシュ領域と前記他のミラーリング領域の両方に書き込み、前記他のキャッシュ領域と前記他のミラーリング領域の両方に対する前記他の書き込みデータの書き込みが完了すると、前記他の書き込みデータの書き込み完了を示す完了通知を送信し、前記完了通知の送信後に前記他のキャッシュ領域内の前記他の書き込みデータを前記他の記憶領域に書き込む他の制御部と、
をさらに有する、
請求項１乃至３のいずれか１項に記載のストレージシステム。
【請求項６】
前記不揮発性メモリは、ＳＣＭ（Storage Class Memory）である、
請求項１乃至５のいずれか１項に記載のストレージシステム。
【請求項７】
キャッシュ領域を含む不揮発性メモリと、
記憶領域に対する書き込みデータの書き込み要求を受信すると、前記書き込みデータを、前記キャッシュ領域と、他のストレージ制御装置が備える揮発性メモリ内のミラーリング領域の両方に書き込み、前記キャッシュ領域と前記ミラーリング領域の両方に対する前記書き込みデータの書き込みが完了すると、書き込み完了通知を送信し、前記書き込み完了通知の送信後に前記キャッシュ領域内の前記書き込みデータを前記記憶領域に書き込む制御部と、
を有するストレージ制御装置。
【請求項８】
コンピュータに、
記憶領域に対する書き込みデータの書き込み要求を受信すると、前記書き込みデータを、前記コンピュータが備える不揮発性メモリ内のキャッシュ領域と、他のコンピュータが備える揮発性メモリ内のミラーリング領域の両方に書き込み、
前記キャッシュ領域と前記ミラーリング領域の両方に対する前記書き込みデータの書き込みが完了すると、書き込み完了通知を送信し、
前記書き込み完了通知の送信後に前記キャッシュ領域内の前記書き込みデータを前記記憶領域に書き込む、
処理を実行させるストレージ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム、ストレージ制御装置およびストレージ制御プログラムに関する。
【背景技術】
【０００２】
記憶装置からの読み出し性能を向上させる技術として、キャッシュを用いたアクセス制御技術が広く利用されている。この技術では、記憶装置内のデータの一部がキャッシュに一時的に保持され、データの読み出しが要求されたとき、そのデータがキャッシュに保持されていれば、そのデータは記憶装置の代わりにキャッシュから読み出される。
【０００３】
また、キャッシュに格納されたデータを二重化することで、障害に対する耐性を高める技術も知られている。例えば、ライトデータが、２つのキャッシュユニットのいずれかと２つの不揮発性メモリユニットのいずれかとに格納される技術が提案されている。また、ホストコンピュータからの正ドライブへの書き込みデータを、ディスクキャッシュとバックアップメモリの両方に書き込んだ時点で、書き込み命令を完了させる技術が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−１５８７９７号公報
【特許文献２】特開平４−８４２１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、キャッシュの領域は、読み出し性能を高くするために揮発性メモリに確保されることが多い。しかし、この構成では、停電が発生した場合、キャッシュに格納されたデータが失われる。このため、キャッシュのデータをバックアップするための不揮発性記憶装置と、停電発生直後にキャッシュのデータを不揮発性記憶装置へコピーするための電力を供給するバッテリが必要となる。
【０００６】
一方、このようなバックアップ用の不揮発性記憶装置やバッテリを不要とする方法としては、キャッシュの領域を不揮発性記憶装置に確保する方法が考えられる。しかし、この場合には、キャッシュへの書き込み速度が低下するため、ホスト装置に対する書き込みの応答性能が劣化するという問題がある。
【０００７】
１つの側面では、本発明は、停電時のバックアップ処理を不要としたことが書き込み応答性能に与える影響を軽減可能なストレージシステム、ストレージ制御装置およびストレージ制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
１つの案では、第１のストレージ制御装置と、第２のストレージ制御装置とを有するストレージシステムが提供される。第１のストレージ制御装置は、ミラーリング領域を含む揮発性メモリを有する。第２のストレージ制御装置は、キャッシュ領域を含む不揮発性メモリと、記憶領域に対する書き込みデータの書き込み要求を受信すると、書き込みデータをキャッシュ領域とミラーリング領域の両方に書き込み、キャッシュ領域とミラーリング領域の両方に対する書き込みデータの書き込みが完了すると、書き込み完了通知を送信し、書き込み完了通知の送信後にキャッシュ領域内の書き込みデータを記憶領域に書き込む制御部とを有する。
【０００９】
また、１つの案では、上記の第２のストレージ制御装置と同様の処理を実行するストレージ制御装置が提供される。
さらに、１つの案では、上記の第２のストレージ制御装置と同様の処理をコンピュータに実行させるストレージ制御プログラムが提供される。
【発明の効果】
【００１０】
１つの側面では、停電時のバックアップ処理を不要としたことが書き込み応答性能に与える影響を軽減できる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態に係るストレージシステムの構成例および処理例を示す図である。
【図２】第２の実施の形態に係るストレージシステムの構成例を示す図である。
【図３】ＣＭおよびＦＲＴのハードウェア構成例を示す図である。
【図４】ＣＭが備える処理機能の例を示すブロック図である。
【図５】一方のＣＭの動作が停止した場合の処理例を示す図である。
【図６】ストレージ装置の比較例におけるキャッシュのミラーリング方法を示す図である。
【図７】ストレージ装置の比較例における停電発生時の動作を示す図である。
【図８】第２の実施の形態におけるローカルキャッシュおよびミラーキャッシュの配置を示す図である。
【図９】停電発生時のストレージ装置の状態を示す図である。
【図１０】書き込みが要求された場合におけるストレージ装置の処理手順の例を示すシーケンス図である。
【図１１】アクセス制御部による書き込み制御の処理例を示すフローチャートである。
【図１２】正常にシャットダウンする場合のＣＭの処理例を示すフローチャートである。
【図１３】起動時におけるＣＭの処理例を示すフローチャートである。
【図１４】第３の実施の形態に係るストレージシステムの構成例を示す図である。
【図１５】ローカルキャッシュとそのミラーリング先との関係を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について図面を参照して説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態に係るストレージシステムの構成例および処理例を示す図である。図１に示すストレージシステムは、ストレージ制御装置１０，２０を含む。また、ストレージ制御装置２０には、例えば、記憶装置３０とホスト装置４０とが接続されている。
【００１３】
ストレージ制御装置１０は、揮発性メモリ１１を有する。揮発性メモリ１１としては、例えば、ＤＲＡＭ（Dynamic RAM，RAM：Random Access Memory）が用いられる。揮発性メモリ１１は、後述するキャッシュ領域２１ａのデータがミラーリングされるミラーリング領域１１ａを含む。
【００１４】
ストレージ制御装置２０は、ホスト装置４０からの要求に応じて、記憶装置３０へのアクセスを制御する。なお、記憶装置３０は、ホスト装置４０からのアクセス対象の記憶領域の一例である。このストレージ制御装置２０は、不揮発性メモリ２１と制御部２２とを有する。
【００１５】
不揮発性メモリ２１は、記憶装置３０より書き込み速度が高速である。不揮発性メモリ２１としては、例えば、ＳＣＭ（Storage Class Memory）が用いられる。不揮発性メモリ２１は、キャッシュ領域２１ａを含む。
【００１６】
制御部２２は、例えば、１または複数のプロセッサである。この場合、制御部２２の処理は、プロセッサが所定のプログラムを実行することで実現される。制御部２２は、キャッシュ領域２１ａを用いて、ホスト装置４０からの要求に応じた記憶装置３０へのアクセスを制御する。具体的には、制御部２２は、次のような手順で記憶装置３０への書き込みを制御する。
【００１７】
制御部２２は、ホスト装置４０から書き込みデータの書き込み要求を受信する。すると、ホスト装置４０は書き込みデータを、不揮発性メモリ２１のキャッシュ領域２１ａと、揮発性メモリ１１のミラーリング領域１１ａの両方に書き込む（ステップＳ１）。そして、制御部２２は、これらの両方に対する書き込みデータの書き込みが完了すると、ホスト装置４０に対して書き込み完了通知を送信する（ステップＳ２）。
【００１８】
また、制御部２２は、書き込み完了通知の送信後のタイミング、すなわちその送信とは非同期のタイミングで、ステップＳ１でキャッシュ領域２１ａに書き込んだ書き込みデータを、記憶装置３０の所定領域に書き込む（ステップＳ３）。ステップＳ３の実行タイミングは、例えば、キャッシュ領域２１ａの空き領域が不足し、かつ、ステップＳ１で書き込まれた書き込みデータのアクセス頻度が、キャッシュ領域２１ａ内で最も低くなったタイミングである。
【００１９】
以上のストレージ制御装置２０では、キャッシュ領域２１ａが不揮発性メモリ２１に確保されているので、停電によってストレージ制御装置１０，２０の両方の動作が停止した場合でも、キャッシュ領域２１ａのデータが失われずに維持される。このため、停電時にキャッシュ領域２１ａのデータをバックアップするための別の不揮発性記憶装置や、そのバックアップ処理を実行するためのバッテリを、ストレージ制御装置２０に搭載しておく必要がない。したがって、ストレージ制御装置２０の製造コストや装置の大きさを抑制できる。
【００２０】
また、図１の構成では、キャッシュ領域２１ａをＤＲＡＭなどの揮発性メモリに確保した場合と比較して、キャッシュ領域２１ａに対する書き込みデータの書き込み時間が長くなる可能性が高い。このような書き込み時間の増加は、ホスト装置４０に対する書き込み応答性能を低下させる原因になり得る。その一方、ミラーリング領域１１ａに対する書き込みデータのミラーリング処理には、揮発性メモリ１１への書き込み処理の他、ストレージ制御装置１０とストレージ制御装置２０との間のデータ転送処理なども含まれる。
【００２１】
このため、上記のようなキャッシュ領域２１ａに対する書き込み時間の増加分の少なくとも一部は、ミラーリング領域１１ａに対するミラーリング処理時間によって相殺される。したがって、停電時のバックアップ処理を不要にするためにキャッシュ領域２１ａを不揮発性メモリ２１に確保したことが、ホスト装置４０に対する書き込み応答性能に与える影響を軽減できる。例えば、書き込み応答性能が低下したとしても、その低下幅を抑制できる。
【００２２】
なお、キャッシュ領域２１ａのミラーデータがミラーリング領域１１ａに保持されることで、例えば、ストレージ制御装置２０が異常停止した場合、キャッシュ領域２１ａと同じデータをミラーリング領域１１ａに残すことができる。これにより、例えば、ストレージ制御装置２０がキャッシュ領域２１ａを用いて実行していた記憶装置３０に対するアクセス制御を、ストレージ制御装置１０がミラーリング領域１１ａのデータを用いてすぐに引き継ぐことができる。
【００２３】
〔第２の実施の形態〕
図２は、第２の実施の形態に係るストレージシステムの構成例を示す図である。図２に示すストレージシステムは、ストレージ装置１００と、ホスト装置２１０，２２０とを含む。ストレージ装置１００は、例えばＳＡＮ（Storage Area Network）２３０を介して、ホスト装置２１０，２２０と接続している。
【００２４】
ストレージ装置１００は、ＣＭ（Controller Module）１１０，１２０、ＦＲＴ（Frontend RouTer）１３０、ＤＥ（Drive Enclosure）１４０およびＰＳＵ（Power Supply Unit）１５０を有する。
【００２５】
ＣＭ１１０，１２０は、ホスト装置２１０またはホスト装置２２０からの要求に応じて、ＤＥ１４０に搭載された記憶装置に対するアクセスを制御するストレージ制御装置である。ＣＭ１１０は、ＣＭ１２０の内部のキャッシュを用いて、ＤＥ１４０内の記憶装置に対するアクセスを制御する。ＣＭ１２０も同様に、ＣＭ１２０の内部のキャッシュを用いて、ＤＥ１４０内の記憶装置に対するアクセスを制御する。
【００２６】
また、ＣＭ１１０とＣＭ１２０は、ＦＲＴ１３０を介して互いに接続され、データを互いに送受信することができる。特に、後述するように、ＣＭ１１０とＣＭ１２０との間では、それぞれが備えるＤＭＡ（Direct Memory Access）コントローラにより、一方が備えるＲＡＭから他方が備えるＲＡＭへのデータの転送が可能になっている。
【００２７】
本実施の形態では、このようなＦＲＴ１３０を介したＲＡＭ間のデータ転送が、キャッシュのミラーリングに利用される。ＣＭ１１０は、ＣＭ１１０のＲＡＭ内のキャッシュ領域に書き込んだデータを、ＦＲＴ１３０を介してＣＭ１２０のＲＡＭにも書き込む。ＣＭ１２０も同様に、ＣＭ１２０のＲＡＭ内のキャッシュ領域に書き込んだデータを、ＦＲＴ１３０を介してＣＭ１１０のＲＡＭにも書き込む。
【００２８】
ＤＥ１４０には、ホスト装置２１０，２２０からのアクセス対象となる複数台の記憶装置が搭載されている。本実施の形態では例として、ＤＥ１４０は、このような記憶装置としてＨＤＤ（Hard Disk Drive）１４１，１４２，１４３，・・・が搭載されたディスクアレイ装置であるものとする。なお、ホスト装置２１０，２２０からのアクセス対象となる記憶装置は、ＳＳＤ（Solid State Drive）などの他の種類の不揮発性記憶装置であってもよい。
【００２９】
ＰＳＵ１５０は、外部から供給される電力に基づいて、ストレージ装置１００内の各部に電力を供給する。
ホスト装置２１０，２２０は、ＣＭ１１０，１２０のいずれかを介してＤＥ１４０内の記憶装置にアクセスするコンピュータである。
【００３０】
図３は、ＣＭおよびＦＲＴのハードウェア構成例を示す図である。
ＣＭ１１０は、ＣＰＵ（Central Processing Unit）１１１、ＤＲＡＭ１１２、ＳＣＭ１１３、ＳＳＤ１１４、ＰＣＩｅ（PCI express，PCI：Peripheral Component Interconnect）スイッチ１１５、ＣＡ（Channel Adapter）１１６、ＤＩ（Drive Interface）１１７およびＤＭＡコントローラ１１８を有する。
【００３１】
ＣＰＵ１１１は、ＣＭ１１０全体を統括的に制御する。ＣＰＵ１１１は、例えば、１または複数のプロセッサを備える。また、図示しないが、ＣＰＵ１１１は、メモリコントローラを備えている。メモリコントローラを介することで、ＤＭＡコントローラ１１８によるＤＲＡＭ１１２およびＳＣＭ１１３に対するデータの読み書きが、ＣＰＵ１１１のプロセッサを介さずに実行可能となる。
【００３２】
ＤＲＡＭ１１２は、ＣＭ１１０の主記憶装置として使用される。ＤＲＡＭ１１２には、ＣＰＵ１１１に実行させるＯＳ（Operating System）プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＤＲＡＭ１１２には、ＣＰＵ１１１による処理に必要な各種データが格納される。
【００３３】
ＳＣＭ１１３は、アクセス性能がＳＳＤ１１４より高く、ＤＲＡＭ１１２より低い不揮発性メモリである。ＳＣＭ１１３には、ホスト装置２１０，２２０からの要求に応じたＤＥ１４０内の記憶装置へのアクセス制御の際に用いられるキャッシュの領域が確保される。なお、ＳＣＭ１１３は、例えば、ＭＲＡＭ（Magnetoresistive RAM）、ＦｅＲＡＭ（Ferroelectric RAM）、ＰＲＡＭ（Phase change RAM）、ＲｅＲＡＭ（Resistive RAM）として実現される。
【００３４】
ＳＳＤ１１４は、ＣＭ１１０の補助記憶装置として使用される。ＳＳＤ１１４には、ＯＳプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、ＨＤＤなどの他の種類の不揮発性記憶装置が用いられてもよい。また、ＳＳＤ１１４は、バスコントローラが搭載されたチップセットなどを介してＣＰＵ１１１と接続されていてもよい。
【００３５】
ＣＰＵ１１１とＣＡ１１６、ＤＩ１１７、ＤＭＡコントローラ１１８との間は、ＰＣＩｅスイッチ１１５を介してＰＣＩｅバスによって接続されている。ＰＣＩｅスイッチ１１５は、ＣＰＵ１１１とＣＡ１１６、ＤＩ１１７、ＤＭＡコントローラ１１８との間のデータ送受信を制御する。
【００３６】
ＣＡ１１６は、ＳＡＮ２３０を介してホスト装置２１０，２２０と通信するためのインタフェースである。ＣＡ１１６は、例えば、ＦＣ（Fibre Channel）インタフェースである。ＤＩ１１７は、ＤＥ１４０内の記憶装置と通信するためのインタフェースである。ＤＩ１１７は、例えば、ＳＡＳ（Serial Attached SCSI，SCSI：Small Computer System Interface）インタフェースである。ＤＭＡコントローラ１１８は、ＤＲＡＭ１１２およびＳＣＭ１１３と、ＣＭ１２０のＤＲＡＭ１２２およびＳＣＭ１２３との間のデータ転送を、ＣＰＵ１１１の介在なしに制御する。
【００３７】
ＣＭ１２０は、ＣＭ１１０と同様のハードウェア構成を有する。ＣＭ１２０は、ＣＰＵ１２１、ＤＲＡＭ１２２、ＳＣＭ１２３、ＳＳＤ１２４、ＰＣＩｅスイッチ１２５、ＣＡ１２６、ＤＩ１２７およびＤＭＡコントローラ１２８を有する。ＣＰＵ１２１、ＤＲＡＭ１２２、ＳＣＭ１２３、ＳＳＤ１２４、ＰＣＩｅスイッチ１２５、ＣＡ１２６、ＤＩ１２７およびＤＭＡコントローラ１２８は、ＣＰＵ１１１、ＤＲＡＭ１１２、ＳＣＭ１１３、ＳＳＤ１１４、ＰＣＩｅスイッチ１１５、ＣＡ１１６、ＤＩ１１７およびＤＭＡコントローラ１１８にそれぞれ対応する構成要素であるので、ここでは説明を省略する。
【００３８】
ＦＲＴ１３０は、ＰＣＩｅスイッチ１３１を有する。ＰＣＩｅスイッチ１３１は、ＣＭ１１０のＤＭＡコントローラ１１８およびＣＭ１２０のＤＭＡコントローラ１２８に接続されている。ＤＭＡコントローラ１１８、ＰＣＩｅスイッチ１３１およびＤＭＡコントローラ１２８を介することで、ＣＭ１１０のＤＲＡＭ１１２およびＳＣＭ１１３とＣＭ１２０のＤＲＡＭ１２２およびＳＣＭ１２３との間のデータ転送が、ＣＰＵ１１１，１２１を介さずに実行される。
【００３９】
なお、以上の構成において、ＣＭ１１０，１２０は、図１のストレージ制御装置１０，２０の少なくとも一方の一例である。ＣＭ１１０をストレージ制御装置１０の一例とした場合、ＤＲＡＭ１１２は、図１の揮発性メモリ１１の一例である。また、ＣＭ１２０をストレージ制御装置２０の一例とした場合、ＳＣＭ１２３は、図１の不揮発性メモリ２１の一例であり、ＣＰＵ１２１は、図１の制御部２２の一例であり、ＤＥ１４０は、図１の記憶装置３０の一例である。
【００４０】
図４は、ＣＭが備える処理機能の例を示すブロック図である。
ＣＭ１１０は、アクセス制御部１１１ａと起動制御部１１１ｂとを有する。アクセス制御部１１１ａおよび起動制御部１１１ｂの処理は、例えば、ＣＰＵ１１１が所定のプログラムを実行することで実現される。また、ＳＣＭ１１３には、ローカルキャッシュ１１３ａの領域が確保され、ＤＲＡＭ１１２には、ミラーキャッシュ１１２ａの領域が確保される。
【００４１】
一方、ＣＭ１２０は、アクセス制御部１２１ａと起動制御部１２１ｂとを有する。アクセス制御部１２１ａおよび起動制御部１２１ｂの処理は、例えば、ＣＰＵ１２１が所定のプログラムを実行することで実現される。また、ＳＣＭ１２３には、ローカルキャッシュ１２３ａの領域が確保され、ＤＲＡＭ１２２には、ミラーキャッシュ１２２ａの領域が確保される。
【００４２】
ＣＭ１１０において、アクセス制御部１１１ａは、ホスト装置２１０，２２０からの要求に応じて、ＤＥ１４０内の記憶装置に対するアクセスを制御する。本実施の形態では、ＣＭ１１０の通常運用時には、アクセス制御部１１１ａは、ＤＥ１４０の記憶領域を用いた論理ボリュームＬＶ１に対するアクセスを、ホスト装置２１０からの要求に応じて制御するものとする。
【００４３】
アクセス制御部１１１ａは、ローカルキャッシュ１１３ａをキャッシュとして利用しながら、論理ボリュームＬＶ１に対するアクセスを制御する。また、アクセス制御部１１１ａは、論理ボリュームＬＶ１に対する書き込みが要求された場合、書き込みデータをローカルキャッシュ１１３ａだけでなくＣＭ１２０のミラーキャッシュ１２２ａにも書き込む。これにより、ローカルキャッシュ１１３ａのデータはミラーキャッシュ１２２ａにミラーリングされる。
【００４４】
起動制御部１１１ｂは、アクセス制御機能に関する終了時および起動時の処理を実行する。ＣＭ１１０が正常に終了されるとき、起動制御部１１１ｂは、シャットダウン（Ｓ／Ｄ）フラグ１１９を「０」から「１」に更新する。なお、シャットダウンフラグ１１９は、ＣＭ１１０内の不揮発性記憶装置（例えば、ＳＳＤ１１４）に記憶されている。また、シャットダウンフラグ１１９の初期値は「０」とされる。
【００４５】
ＣＭ１１０が起動したとき、起動制御部１１１ｂは、シャットダウンフラグ１１９に応じた起動処理を実行する。シャットダウンフラグ１１９が「１」の場合、起動制御部１１１ｂは、アクセス制御を開始するための通常起動処理を実行する。一方、シャットダウンフラグ１１９が「０」の場合、起動制御部１１１ｂは、停電による異常終了状態から復帰するための復旧処理を実行する。この復旧処理には、ＣＭ１２０のローカルキャッシュ１２３ａからデータを読み込んでミラーキャッシュ１１２ａに格納することで、停電発生前のミラーキャッシュ１１２ａのデータを復元する処理が含まれる。
【００４６】
ＣＭ１２０のアクセス制御部１２１ａおよび起動制御部１２１ｂは、それぞれＣＭ１１０のアクセス制御部１１１ａおよび起動制御部１１１ｂと同様の処理を実行する。
アクセス制御部１２１ａは、ＣＭ１２０の通常運用時には、ＤＥ１４０の記憶領域を用いた論理ボリュームＬＶ２に対するホスト装置２２０からの要求に応じたアクセスを、ローカルキャッシュ１２３ａをキャッシュとして利用しながら制御する。また、アクセス制御部１２１ａは、ローカルキャッシュ１２３ａのデータをＣＭ１１０のミラーキャッシュ１１２ａへミラーリングする。
【００４７】
起動制御部１２１ｂは、シャットダウン（Ｓ／Ｄ）フラグ１２９を用いて、アクセス制御機能に関する終了時および起動時の処理を実行する。なお、シャットダウンフラグ１２９は、ＣＭ１２０内の不揮発性記憶装置（例えば、ＳＳＤ１２４）に記憶されている。起動制御部１２１ｂは、シャットダウンフラグ１２９の値に基づいて停電からの復旧処理を実行する際、ＣＭ１１０のローカルキャッシュ１１３ａからデータを読み込んでミラーキャッシュ１２２ａに格納する。
【００４８】
以上のように、ＣＭ１１０の通常運用時には、アクセス制御部１１１ａは、ローカルキャッシュ１１３ａをキャッシュとして利用しながら論理ボリュームＬＶ１に対するアクセスを制御する。また、アクセス制御部１１１ａは、ローカルキャッシュ１１３ａのデータをミラーキャッシュ１２２ａにミラーリングする。一方、ＣＭ１２０の通常運用時には、アクセス制御部１２１ａは、ローカルキャッシュ１２３ａをキャッシュとして利用しながら論理ボリュームＬＶ２に対するアクセスを制御する。また、アクセス制御部１２１ａは、ローカルキャッシュ１２３ａのデータをミラーキャッシュ１１２ａにミラーリングする。
【００４９】
ここで、図５を用いて、ＣＭ１１０，１２０の一方が故障などの異常発生によって停止した場合の処理について説明する。
図５は、一方のＣＭの動作が停止した場合の処理例を示す図である。この図５では、例としてＣＭ１１０の動作が異常発生によって停止した場合を示す。この場合、ＣＭ１１０のローカルキャッシュ１１３ａのデータと同一のデータが、ＣＭ１２０のミラーキャッシュ１２２ａに残る。そのため、ＣＭ１２０のアクセス制御部１２１ａは、ミラーキャッシュ１２２ａをキャッシュとして利用しながら、論理ボリュームＬＶ１に対するアクセスの制御をＣＭ１１０から引き継ぐことができる。
【００５０】
また、図示しないが、上記と同様に、ＣＭ１２０の動作が停止した場合、ＣＭ１１０のアクセス制御部１１１ａは、ミラーキャッシュ１１２ａをキャッシュとして利用しながら、論理ボリュームＬＶ２に対するアクセスの制御をＣＭ１２０から引き継ぐことができる。
【００５１】
次に、図６、図７にストレージ装置の比較例を示し、比較例における問題点について説明する。そして、図８以降において、本実施の形態のストレージ装置１００についての説明を続ける。
【００５２】
図６は、ストレージ装置の比較例におけるキャッシュのミラーリング方法を示す図である。図６に示すストレージ装置９００は、ＣＭ９１０，９２０とＦＲＴ９３０とを有する。
【００５３】
ＣＭ９１０は、ＤＲＡＭ９１１を有し、ＤＲＡＭ９１１には、ローカルキャッシュ９１１ａおよびミラーキャッシュ９１１ｂの各領域が確保されている。ＣＭ９２０は、ＤＲＡＭ９２１を有し、ＤＲＡＭ９２１には、ローカルキャッシュ９２１ａおよびミラーキャッシュ９２１ｂの各領域が確保されている。
【００５４】
ＣＭ９１０は、ローカルキャッシュ９１１ａをキャッシュとして利用しながら、所定の論理ボリュームに対するアクセスを制御する。これとともに、ＣＭ９１０は、ローカルキャッシュ９１１ａのデータを、ＦＲＴ９３０を介して、ＣＭ９２０のミラーキャッシュ９２１ｂにミラーリングする。
【００５５】
ＣＭ９２０は、ローカルキャッシュ９２１ａをキャッシュとして利用しながら、所定の論理ボリュームに対するアクセスを制御する。これとともに、ＣＭ９２０は、ローカルキャッシュ９２１ａのデータを、ＦＲＴ９３０を介して、ＣＭ９１０のミラーキャッシュ９１１ｂにミラーリングする。
【００５６】
図７は、ストレージ装置の比較例における停電発生時の動作を示す図である。停電が発生してＣＭ９１０，９２０への電力供給が停止すると、ローカルキャッシュ９１１ａ，９２１ａのデータが失われてしまう。このようなデータロスを防止する方法として、バックアップ用の不揮発性記憶装置と、停電後にローカルキャッシュのデータを不揮発性記憶装置に退避させるための電力を供給するバッテリとを設ける方法がある。
【００５７】
図７の例では、ＣＭ９１０には不揮発性記憶装置９１２が設けられ、ＣＭ９２０には不揮発性記憶装置９２２が設けられている。また、停電を検出するとストレージ装置９００に電力を供給するＵＰＳ（Uninterruptible Power Supply）９４０が、ストレージ装置９００に接続されている。ＵＰＳ９４０は、バッテリを内蔵している。
【００５８】
停電が発生すると、ＣＭ９１０は、ＵＰＳ９４０からの電力を用いて、ＤＲＡＭ９１１内のデータのうち少なくともローカルキャッシュ９１１ａ内のデータを不揮発性記憶装置９１２に退避させる。また、ＣＭ９２０は、ＵＰＳ９４０からの電力を用いて、ＤＲＡＭ９２１内のデータのうち少なくともローカルキャッシュ９２１ａ内のデータを不揮発性記憶装置９２２に退避させる。
【００５９】
これにより、ＣＭ９１０は、電力供給が再開されたとき、不揮発性記憶装置９１２に格納されたデータをローカルキャッシュ９１１ａに書き戻し、論理ボリュームに対するアクセス制御を正しく再開できる。また、ＣＭ９２０も、電力供給が再開されたとき、不揮発性記憶装置９２２に格納されたデータをローカルキャッシュ９２１ａに書き戻し、論理ボリュームに対するアクセス制御を正しく再開できる。
【００６０】
しかし、図７に示したデータロスの防止方法では、キャッシュデータを退避させるための電力を供給するためのバッテリや、キャッシュデータをバックアップするためのある程度大容量の不揮発性記憶装置が必要となる。このため、装置のコストが増大する、筐体が大きくなるという問題がある。
【００６１】
このような問題に対して、第２の実施の形態のストレージ装置１００では、ローカルキャッシュの領域が不揮発性のＳＣＭに確保される。以下、本実施の形態のストレージ装置１００についての説明を続ける。
【００６２】
図８は、第２の実施の形態におけるローカルキャッシュおよびミラーキャッシュの配置を示す図である。本実施の形態のストレージ装置１００では、ローカルキャッシュ１１３ａの領域は、ＣＭ１１０のＳＣＭ１１３に確保され、ローカルキャッシュ１２３ａの領域は、ＣＭ１２０のＳＣＭ１２３に確保される。また、ミラーキャッシュ１２４ａの領域は、他方のＣＭ１２０のＤＲＡＭ１２４に確保され、ミラーキャッシュ１１２ａの領域は、他方のＣＭ１１０のＤＲＡＭ１１２に確保される。
【００６３】
ＣＭ１１０は、ホスト装置２１０から書き込みが要求されたデータを、ＳＣＭ１１３のローカルキャッシュ１１３ａに書き込むとともに、ＣＭ１２０に転送し、ＤＲＡＭ１２４のミラーキャッシュ１２４ａにも書き込む。これにより、書き込みデータをミラーリングする。同様に、ＣＭ１２０は、ホスト装置２２０から書き込みが要求されたデータを、ＳＣＭ１２３のローカルキャッシュ１２３ａに書き込むとともに、ＣＭ１１０に転送し、ＤＲＡＭ１１２のミラーキャッシュ１１２ａにも書き込む。これにより、書き込みデータをミラーリングする。
【００６４】
図９は、停電発生時のストレージ装置の状態を示す図である。図９に示すように、停電によってストレージ装置１００への電力供給が停止したとき、ＳＣＭ１１３のローカルキャッシュ１１３ａおよびＳＣＭ１２３のローカルキャッシュ１２３ａにそれぞれ記憶されたデータは、失われずに維持される。このように、ローカルキャッシュ１１３ａ，１２３ａの領域が不揮発性のＳＣＭ１１３，１２３に確保されることにより、停電が発生した場合でもローカルキャッシュ１１３ａ，１２３ａに格納されたデータが保護される。このため、バッテリや、バックアップ用の他の不揮発性記憶装置が不要になる。
【００６５】
ここで、ＳＣＭは、ＳＳＤよりはアクセス性能が高い。また、容量当たりのコストもＳＳＤよりＳＣＭの方が低く、将来的にはさらなるコスト低減が予想されている。さらに、ＳＣＭは、ビットアクセスが可能である。これらの理由から、ローカルキャッシュ１１３ａ，１２３ａの領域としてＳＣＭを用いることで、ＳＳＤを用いる場合よりアクセス性能を向上させることができ、容量コストも下げることができる。
【００６６】
ただし、ＳＣＭのアクセス性能は、一般的にＤＲＡＭよりは低い。ローカルキャッシュ１１３ａ，１２３ａの領域をＳＣＭに確保する場合、ＳＣＭのアクセス性能がホスト装置２１０，２２０に対する応答性能に影響を与える可能性がある。しかしながら、本実施の形態では、次の図１０に示すように、ミラーキャッシュ１１２ａ，１２４ａの領域はＳＣＭでなく高速なＤＲＡＭに確保されている。このため、データの書き込みが要求された際、書き込み性能の低下に伴うローカルキャッシュへの書き込み処理時間の増加分の少なくとも一部は、ミラーキャッシュへのミラーリング処理時間によって相殺される。したがって、ローカルキャッシュの領域を不揮発性記憶装置に確保したことが書き込み応答性能に与える影響を軽減できる。
【００６７】
図１０は、書き込みが要求された場合におけるストレージ装置の処理手順の例を示すシーケンス図である。図１０では例として、ホスト装置２１０からＣＭ１１０に対してデータの書き込みが要求された場合を示す。なお、図１０において、ＣＰＵ１１１の処理はアクセス制御部１１１ａの処理に対応し、ＣＰＵ１２１の処理はアクセス制御部１２１ａの処理に対応する。
【００６８】
ホスト装置２１０は、ＣＭ１１０に対して書き込み要求のコマンドを送信した後、書き込みデータを送信する（ステップＳ１１）。ＣＭ１１０では、書き込みデータはＣＡ１１６によって受信され、ＰＣＩｅスイッチ（ＳＷ）１１５を介してＣＰＵ１１１に伝送される（ステップＳ１２，Ｓ１３）。このとき、書き込みデータはＤＲＡＭ１１２のバッファ領域に一時的に格納される。
【００６９】
ＣＰＵ１１１は、書き込みデータをＤＲＡＭ１１２のバッファ領域から読み出してＳＣＭ１１３のローカルキャッシュ１１３ａに書き込む処理を開始する（ステップＳ１４）。これとともに、ＣＰＵ１１１は、書き込みデータをＣＭ１２０のＤＲＡＭ１２２に書き込むための指示を、ＤＭＡコントローラ（ＤＭＡＣ）１１８に出力する（ステップＳ１５）。
【００７０】
ステップＳ１４で開始されたローカルキャッシュ１１３ａへの書き込みデータの書き込み処理が完了すると、その旨がＣＰＵ１１１に通知される（ステップＳ１６）。
その一方で、ＤＭＡコントローラ１１８は、ステップＳ１５の指示を受信すると、ＤＲＡＭ１１２のバッファ領域から書き込みデータを読み出し、ＣＭ１２０へ転送する（ステップＳ１７）。転送された書き込みデータは、ＦＲＴ１３０のＰＣＩｅスイッチ（ＳＷ）１３１を介してＣＭ１２０に転送される（ステップＳ１８）。ＣＭ１２０では、転送された書き込みデータは、ＤＭＡコントローラ（ＤＭＡＣ）１２８を介してＰＣＩｅスイッチ（ＳＷ）１２５に受信され、ＣＰＵ１２１に伝送される（ステップＳ１９）。
【００７１】
ＣＰＵ１２１は、書き込みデータをＤＲＡＭ１２２のミラーキャッシュ１２２ａに書き込む（ステップＳ２０）。書き込みが完了すると、その旨がＣＰＵ１２１に通知される（ステップＳ２１）。ＣＰＵ１２１は、書き込みの完了通知をＣＭ１１０宛てに送信する（ステップＳ２２）。完了通知は、ＰＣＩｅスイッチ１２５、ＦＲＴ１３０のＰＣＩｅスイッチ１３１を介して、ＣＭ１１０のＤＭＡコントローラ１１８に送信される（ステップＳ２３，Ｓ２４）。ＤＭＡコントローラ１１８は、例えば割り込みの発生により、書き込みデータの完了をＣＰＵ１１１に通知する（ステップＳ２５）。
【００７２】
ＣＰＵ１１１は、書き込み完了通知をホスト装置２１０宛てに送信する（ステップＳ２６）。書き込み完了通知は、ＰＣＩｅスイッチ１１５、ＣＡ１１６を介して、ホスト装置２１０に送信される（ステップＳ２７，Ｓ２８）。
【００７３】
以上の図１０の処理では、ＣＭ１１０のＣＰＵ１１１は、ステップＳ１４で開始された書き込み処理と、ステップＳ１５で実行を指示した書き込み処理の両方が完了するのを待ち合わせる。そして、ＣＰＵ１１１は、これら両方の処理が完了すると、ステップＳ２６においてホスト装置２１０に対して応答する。
【００７４】
図１０の例では、ステップＳ１４で開始された書き込み処理にかかる時間より、ステップＳ１５で実行を指示した書き込み処理にかかる時間の方が長い。このため、ステップＳ１６において前者の書き込み処理の完了が通知された後に、ステップＳ２５において後者の書き込み処理の完了が通知される。このケースでは、ローカルキャッシュ１１３ａへの書き込みにかかる時間が、その領域がＤＲＡＭに確保されている場合より長くなっているにもかかわらず、ホスト装置２１０に対する応答までにかかる時間は遅延しない。したがって、ローカルキャッシュ１１３ａの領域を不揮発性記憶装置に確保したことは、書き込み応答性能に影響を与えない。
【００７５】
また、仮に、前者の書き込み処理にかかる時間の方が後者より長かったとしても、ローカルキャッシュ１１３ａの領域がＤＲＡＭに確保されている場合を基準とした書き込み応答時間の増加分は、前者の書き込み処理と後者の書き込み処理との時間差分のみとなる。このケースでは、ローカルキャッシュ１１３ａへの書き込み時間の増加分のうちの多くが、ミラーリング処理にかかる時間によって相殺される。このため、ローカルキャッシュ１１３ａの領域を不揮発性記憶装置に確保したことが書き込み応答性能に与える影響は小さい。
【００７６】
したがって、本実施の形態によれば、停電時のキャッシュデータの退避処理が不要になり、装置コストや筐体のサイズを抑制できるとともに、ホスト装置２１０に対する書き込み応答性能が大きく低下することを防止できる。
【００７７】
図１１は、アクセス制御部による書き込み制御の処理例を示すフローチャートである。図１１では例として、ＣＭ１１０のアクセス制御部１１１ａの処理について示す。
［ステップＳ３１］アクセス制御部１１１ａは、ホスト装置２１０から論理ボリュームに対する書き込み要求を受信し、さらに、書き込みデータを受信する。
【００７８】
［ステップＳ３２］アクセス制御部１１１ａは、受信した書き込みデータを、ＳＣＭ１１３のローカルキャッシュ１１３ａに書き込む処理を開始する。
［ステップＳ３３］アクセス制御部１１１ａは、受信した書き込みデータを、ＣＭ１２０のＤＲＡＭ１２２のミラーキャッシュ１２２ａに書き込むように、ＤＭＡコントローラ１１８に指示する。ＤＭＡコントローラ１１８は、指示に応じて、書き込みデータをＦＲＴ１３０のＰＣＩｅスイッチ１３１を介してＣＭ１２０に転送する。
【００７９】
なお、ステップＳ３２，Ｓ３３の処理順は、逆であってもよい。
［ステップＳ３４］アクセス制御部１１１ａは、ステップＳ３２で開始した書き込み処理と、ステップＳ３３で指示した書き込み処理の両方が完了したかを判定する。アクセス制御部１１１ａは、書き込み処理が一方でも完了していない場合、一定時間後にステップＳ３４の処理を再度実行する。また、アクセス制御部１１１ａは、両方の書き込み処理が完了した場合、ステップＳ３５の処理を実行する。
【００８０】
［ステップＳ３５］アクセス制御部１１１ａは、ホスト装置２１０に対して、書き込みが完了したことを通知するために応答する。
［ステップＳ３６］アクセス制御部１１１ａは、ステップＳ３５の実行後の所定のタイミングで、ステップＳ３２でローカルキャッシュ１１３ａに書き込んだ書き込みデータを、ＤＥ１４０内の記憶装置へ書き込む。このステップＳ３６の実行タイミングは、例えば、ローカルキャッシュ１１３ａの空き領域が不足し、かつ、ステップＳ３２で書き込まれた書き込みデータのアクセス頻度が、ローカルキャッシュ１１３ａ内で最も低くなったタイミングである。
【００８１】
次に、図１２は、正常にシャットダウンする場合のＣＭの処理例を示すフローチャートである。図１２では例として、ＣＭ１１０が正常にシャットダウンする場合について説明する。なお、図１２の処理の開始時には、シャットダウンフラグ１１９は「０」になっているものとする。
【００８２】
［ステップＳ４１］ＣＭ１１０の起動制御部１１１ｂは、シャットダウン指示に応じてシャットダウン処理を開始する。シャットダウン指示は、例えば、ホスト装置２１０，２２０や管理端末などの外部装置から指示される。あるいは、ＣＭ１１０またはストレージ装置１００に搭載されたシャットダウンスイッチの操作に応じてシャットダウンが指示されてもよい。
【００８３】
［ステップＳ４２］起動制御部１１１ｂは、シャットダウンフラグ１１９を「０」から「１」に更新する。この更新処理は、シャットダウン処理に含まれ、シャットダウン処理が終了すると、ＣＭ１１０の動作は停止する。
【００８４】
なお、停電によりＣＭ１１０の動作が異常停止した場合には、シャットダウンフラグ１１９は「０」のまま更新されない。
図１３は、起動時におけるＣＭの処理例を示すフローチャートである。図１３では例として、ＣＭ１１０が起動した場合について説明する。
【００８５】
［ステップＳ５１］ＣＭ１１０の起動制御部１１１ｂは、起動指示に応じて起動処理を開始する。起動指示は、例えば、ＣＭ１１０またはストレージ装置１００に搭載された起動スイッチの操作に応じて指示される。
【００８６】
［ステップＳ５２］起動制御部１１１ｂは、シャットダウンフラグ１１９を読み込み、その値を判定する。起動制御部１１１ｂは、シャットダウンフラグ１１９が「１」の場合、ステップＳ５３の処理を実行し、「０」の場合、ステップＳ５５の処理を実行する。
【００８７】
［ステップＳ５３］起動制御部１１１ｂは、前回のシャットダウン時にＣＭ１１０が正常に起動したと判定し、正常起動シーケンスを実行する。
［ステップＳ５４］正常起動シーケンスの実行により、アクセス制御部１１１ａが論理ボリュームＬＶ１に対するアクセス制御を開始できる状態となる。起動制御部１１１ｂは、正常起動シーケンスが終了すると、シャットダウンフラグ１１９を「１」から「０」に更新する。この更新後に、アクセス制御部１１１ａのアクセス制御が開始される。
【００８８】
［ステップＳ５５］起動制御部１１１ｂは、前回のＣＭ１１０が異常停止したと判定し、復旧シーケンスを実行する。復旧シーケンスには、起動制御部１１１ｂが、ローカルキャッシュ１１３ａに格納されたデータをＣＭ１２０のＤＲＡＭ１２２に書き込んで、ＤＲＡＭ１２２内のミラーキャッシュ１２２ａのデータを復元する処理が含まれる。復旧シーケンスが完了すると、アクセス制御部１１１ａによる、論理ボリュームＬＶ１に対するアクセス制御が開始される。
【００８９】
以上のように、起動制御部１１１ｂは、シャットダウンフラグ１１９に基づいてＣＭ１１０の前回の停止状況を判定することができる。そして、起動制御部１１１ｂは、ＣＭ１１０が異常停止したと判定した場合、他方のＣＭ１２０のミラーキャッシュ１２２ａのデータをローカルキャッシュ１１３ａに保持されているデータによって復元できる。このように、異常停止後にＣＭ１１０が起動する場合には、ローカルキャッシュ１１３ａの復旧の必要はないので、ＣＭ１１０のアクセス制御部１１１ａがアクセス制御を開始できるまでの時間を短縮できる。
【００９０】
なお、ステップＳ５２では、起動制御部１１１ｂは、ＣＭ１１０内のシャットダウンフラグ１１９だけでなく、ＣＭ１２０内のシャットダウンフラグ１２９も「０」であることを確認した場合に、ステップＳ５５の処理を実行してもよい。これにより、起動制御部１１１ｂは、前回のＣＭ１１０の停止時には、ＣＭ１１０だけでなくＣＭ１２０も停止したことを判断でき、前回の停止要因が停電であったことを正確に判定できる。
【００９１】
〔第３の実施の形態〕
図１４は、第３の実施の形態に係るストレージシステムの構成例を示す図である。図１４に示すストレージシステムは、ＣＥ（Controller Enclosure）３００，４００、ＤＥ５１０，５２０、ＦＲＴ５３０およびホスト装置５４０を含む。
【００９２】
ＣＥ３００は、ＣＭ３１０，３２０とＰＳＵ３３０とを有する。ＣＥ４００は、ＣＭ４１０，４２０とＰＳＵ４３０とを有する。ＣＭ３１０，３２０，４１０，４２０は、ＦＲＴ５３０を介して相互に接続されている。また、ＣＭ３１０，３２０，４１０，４２０には、例えばファイバチャネルやｉＳＣＳＩなどを用いたＳＡＮを介して、ホスト装置５４０が接続されている。なお、図１４では例として１台のホスト装置５４０がＣＭ３１０，３２０，４１０，４２０に接続されているが、例えば、複数台のホスト装置のそれぞれが１台以上のＣＭに接続されてもよい。
【００９３】
ＣＭ３１０，３２０には、ＤＥ５１０が接続されており、ＣＭ４１０，４２０には、ＤＥ５２０が接続されている。ＤＥ５１０，５２０には、ホスト装置５４０からのアクセス対象となる複数台の記憶装置が搭載されている。本実施の形態では例として、ＤＥ５１０，５２０は、記憶装置としてＨＤＤを備えたディスクアレイ装置である。ＣＭ３１０，３２０は、ＤＥ５１０に搭載された記憶装置に対するアクセスを制御する。ＣＭ４１０，４２０は、ＤＥ５２０に搭載された記憶装置に対するアクセスを制御する。
【００９４】
ＰＳＵ３３０は、外部から供給される電力に基づいて、ＣＭ３１０，３２０に電力を供給する。ＰＳＵ４３０は、外部から供給される電力に基づいて、ＣＭ４１０，４２０に電力を供給する。ただし、ＰＳＵ３３０，４３０には、共通の外部電源からの電力が供給されるものとする。このため、停電が発生すると、ＣＭ３１０，３２０，４１０，４２０のいずれの動作も停止する。
【００９５】
なお、ＣＭ３１０，３２０，４１０，４２０のいずれも、図３に示したＣＭ１１０，１２０と同様のハードウェア構成を有する。したがって、ＣＭ３１０，３２０，４１０，４２０のいずれも、ＤＲＡＭおよびＳＣＭを備える。
【００９６】
また、ストレージシステムに含まれるＣＥの数は２台に限定されるものではなく、各ＣＥに含まれるＣＭの数も２台に限定されるものではない。例えば、ストレージシステムには、それぞれ２台のＣＭを備えるＤＥが１２台含まれてもよい。
【００９７】
ＦＲＴ５３０は、ＰＣＩｅスイッチ５３１を備えている。ＣＭ３１０，３２０，４１０，４２０は、ＦＲＴ５３０のＰＣＩｅスイッチ５３１を介して、相互に通信できるようになっている。
【００９８】
図１５は、ローカルキャッシュとそのミラーリング先との関係を示す図である。本実施の形態のストレージシステムでは、ＣＭとホスト装置５４０との間のデータの読み書きは論理ボリュームを単位として行われる。ストレージシステム内には複数の論理ボリュームが設定され、各論理ボリュームにはその論理ボリュームに対するホスト装置５４０からのアクセスを制御するＣＭが割り当てられる。ＣＭは、自装置に割り当てられた論理ボリュームに対するアクセスを、自装置内のＳＣＭに確保したローカルキャッシュの領域を用いて制御する。ＳＣＭには、ローカルキャッシュの領域が論理ボリューム毎に確保される。
【００９９】
図１５では、説明を簡単にするために、ＣＭ３１０，３２０，４１０，４２０はそれぞれ、ホスト装置５４０からのアクセス要求に応じて、１つの論理ボリュームに対するアクセスを制御するものとする。この場合、ＣＭ３１０，３２０，４１０，４２０の各ＳＣＭ３１３，３２３，４１３，４２３には、１つのローカルキャッシュ３１３ａ，３２３ａ，４１３ａ，４２３ａの領域が確保される。
【０１００】
なお、各論理ボリュームに対応する物理記憶領域は、ＤＥ５１０，５２０に搭載された１台以上のＨＤＤによって実現される。最も簡単な例では、あるＣＭがアクセス制御を担当する論理ボリュームに対応する物理記憶領域は、そのＣＭに接続されたＤＥ内の１台以上のＨＤＤによって実現される。例えば、ＣＭ３１０がアクセス制御を担当する論理ボリュームに対応する物理記憶領域として、ＤＥ５１０内の１台以上のＨＤＤが割り当てられる。
【０１０１】
また、ＣＭ３１０，３２０，４１０，４２０の各ＤＲＡＭ３１２，３２２，４１２，４２２には、ミラーキャッシュ３１２ａ，３２２ａ，４１２ａ，４２２ａの領域がそれぞれ確保される。ミラーキャッシュ３１２ａ，３２２ａ，４１２ａ，４２２ａには、それぞれに対応するローカルキャッシュのデータがミラーリングされる。
【０１０２】
ローカルキャッシュのデータのミラーリング先は、次のように割り当てられる。ＣＭ３１０のローカルキャッシュ３１３ａのデータは、ＣＭ４１０のミラーキャッシュ４１２ａにミラーリングされる。ＣＭ４１０のローカルキャッシュ４１３ａのデータは、ＣＭ３２０のミラーキャッシュ３２２ａにミラーリングされる。ＣＭ３２０のローカルキャッシュ３２３ａのデータは、ＣＭ４２０のミラーキャッシュ４２２ａにミラーリングされる。ＣＭ４２０のローカルキャッシュ４２３ａのデータは、ＣＭ３１０のミラーキャッシュ３１２ａにミラーリングされる。
【０１０３】
このように、あるＣＭのローカルキャッシュは、隣接するＣＥ内のＣＭにサイクリックにミラーリングされる。このとき、あるＣＭのローカルキャッシュは、必ず、そのＣＭが搭載されたＣＥとは異なるＣＥ内のＣＭにミラーリングされる。このような構成により、ＣＥ単位で動作が停止した場合でも、どの論理ボリュームについてもローカルキャッシュまたはミラーキャッシュのどちらかが利用可能な状態となり、可用性が向上する。
【０１０４】
例えば、ＣＭ３１０のローカルキャッシュ３１３ａのデータがＣＭ３２０のミラーキャッシュ３２２ａにミラーリングされると仮定する。この構成で、ＣＥ３００の動作が停止した場合、ローカルキャッシュ３１３ａもミラーキャッシュ３２２ａも利用できなくなり、対応する論理ボリュームへのアクセスが不可能になる。
【０１０５】
これに対して、図１５の例では、ＣＭ３１０のローカルキャッシュ３１３ａのデータがＣＭ４１０のミラーキャッシュ４１２ａにミラーリングされている。このため、ＣＥ３００の動作が停止したとしても、ミラーキャッシュ４１２ａのデータが利用可能になっている。したがって、ＣＭ４１０は、ミラーキャッシュ４１２ａのデータを利用して、対応する論理ボリュームに対するアクセス制御をＣＭ３１０から引き継ぐことができる。逆に、ＣＥ４００の動作が停止したとしても、ＣＭ３１０は、ローカルキャッシュ３１３ａのデータを利用して、対応する論理ボリュームに対するアクセス制御を継続できる。
【０１０６】
ここで、ＣＭ３１０，３２０，４１０，４２０のそれぞれは、図４に示したアクセス制御部１１１ａ（またはアクセス制御部１２１ａ）と起動制御部１１１ｂ（または起動制御部１２１ｂ）と同様の処理機能を有する。なお、ＣＭ３１０，３２０，４１０，４２０のそれぞれが有するアクセス制御部および起動制御部の処理は、ＣＭ３１０，３２０，４１０，４２０のそれぞれに搭載されたＣＰＵが所定のプログラムを実行することで実行される。
【０１０７】
例えば、ＣＭ３１０のアクセス制御部は、ホスト装置５４０から書き込みが要求されると、書き込みデータを、ＣＭ３１０のローカルキャッシュ３１３ａに書き込むとともに、ＣＭ４１０のミラーキャッシュ４１２ａにも書き込む。ＣＭ３１０のアクセス制御部は、ローカルキャッシュ３１３ａおよびミラーキャッシュ４１２ａのそれぞれに対する書き込みが完了すると、ホスト装置５４０に対して書き込み完了を通知する。
【０１０８】
このようなＣＭ３１０では、ローカルキャッシュ３１３ａの領域が不揮発性のＳＣＭ３１３に確保されたことで、停電によってＣＥ３００，４００の動作が停止した場合でも、ローカルキャッシュ３１３ａのデータが失われずに維持される。このため、バッテリや、バックアップ用の他の不揮発性記憶装置が不要になり、ＣＭ３１０の製造コストや筐体の大きさを抑制できる。
【０１０９】
これに加えて、ローカルキャッシュ３１３ａの領域をＤＲＡＭではなくＳＣＭ３１３に確保したことによる書き込み処理時間の増加分の少なくとも一部は、ミラーキャッシュ４１２ａへのミラーリング処理時間によって相殺される。このため、ローカルキャッシュ３１３ａの領域をＳＣＭ３１３に確保したことが書き込み応答性能に与える影響を軽減できる。
【０１１０】
また、ＣＭ３１０の起動制御部１１１ｂは、停電から電力供給が復旧してＣＭ３１０が起動したとき、ローカルキャッシュ３１３ａのデータをＣＭ４１０に転送して、ミラーキャッシュ４１２ａのデータを復元する。このように、復電時にローカルキャッシュ３１３ａの復旧の必要がないので、ＣＭ３１０のアクセス制御部がアクセス制御を開始できるまでの時間を短縮できる。
【０１１１】
なお、上記の各実施の形態に示した装置（例えば、ストレージ制御装置１０，２０、ＣＭ１１０，１２０，３１０，３２０，４１０，４２０）の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１１２】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１１３】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【０１１４】
以上の各実施の形態に関し、さらに以下の付記を開示する。
（付記１）  ミラーリング領域を含む揮発性メモリを有する第１のストレージ制御装置と、
キャッシュ領域を含む不揮発性メモリ、および、
記憶領域に対する書き込みデータの書き込み要求を受信すると、前記書き込みデータを前記キャッシュ領域と前記ミラーリング領域の両方に書き込み、前記キャッシュ領域と前記ミラーリング領域の両方に対する前記書き込みデータの書き込みが完了すると、書き込み完了通知を送信し、前記書き込み完了通知の送信後に前記キャッシュ領域内の前記書き込みデータを前記記憶領域に書き込む制御部、
を有する第２のストレージ制御装置と、
を有するストレージシステム。
【０１１５】
（付記２）  前記制御部は、
前記第１のストレージ制御装置と前記第２のストレージ制御装置が停電による動作停止状態から起動した場合、前記キャッシュ領域に格納されているデータを前記ミラーリング領域にコピーする、
付記１記載のストレージシステム。
【０１１６】
（付記３）  前記制御部は、
前記第２のストレージ制御装置が所定の停止要求に応じて動作を停止する場合に、前記第２のストレージ制御装置が備える不揮発性記憶領域に正常に停止したことを示す正常停止情報を書き込み、
前記第２のストレージ制御装置が起動したとき、前記正常停止情報が記録されていない場合に、前記キャッシュ領域に格納されているデータを前記ミラーリング領域にコピーする、
付記１記載のストレージシステム。
【０１１７】
（付記４）  前記第１のストレージ制御装置は、前記第２のストレージ制御装置が異常停止すると、前記キャッシュ領域を用いた前記記憶装置に対するアクセス制御を、前記ミラーリング領域をキャッシュとして用いて続行する他の制御部をさらに有する、
付記１乃至３のいずれか１つに記載のストレージシステム。
【０１１８】
（付記５）  前記ストレージシステムは、他のミラーリング領域を含む他の揮発性メモリを有する第３のストレージ制御装置をさらに有し、
前記第１のストレージ制御装置は、
他のキャッシュ領域を含む他の不揮発性メモリと、
他の記憶領域に対する他の書き込みデータの書き込み要求を受信すると、前記他の書き込みデータを前記他のキャッシュ領域と前記他のミラーリング領域の両方に書き込み、前記他のキャッシュ領域と前記他のミラーリング領域の両方に対する前記他の書き込みデータの書き込みが完了すると、前記他の書き込みデータの書き込み完了を示す完了通知を送信し、前記完了通知の送信後に前記他のキャッシュ領域内の前記他の書き込みデータを前記他の記憶領域に書き込む他の制御部と、
をさらに有する、
付記１乃至３のいずれか１つに記載のストレージシステム。
【０１１９】
（付記６）  前記不揮発性メモリは、ＳＣＭ（Storage Class Memory）である、
付記１乃至５のいずれか１つに記載のストレージシステム。
（付記７）  キャッシュ領域を含む不揮発性メモリと、
記憶領域に対する書き込みデータの書き込み要求を受信すると、前記書き込みデータを、前記キャッシュ領域と、他のストレージ制御装置が備える揮発性メモリ内のミラーリング領域の両方に書き込み、前記キャッシュ領域と前記ミラーリング領域の両方に対する前記書き込みデータの書き込みが完了すると、書き込み完了通知を送信し、前記書き込み完了通知の送信後に前記キャッシュ領域内の前記書き込みデータを前記記憶領域に書き込む制御部と、
を有するストレージ制御装置。
【０１２０】
（付記８）  前記制御部は、
前記ストレージ制御装置と前記他のストレージ制御装置が停電による動作停止状態から起動した場合、前記キャッシュ領域に格納されているデータを前記ミラーリング領域にコピーする、
付記７記載のストレージ制御装置。
【０１２１】
（付記９）  前記制御部は、
前記ストレージ制御装置が所定の停止要求に応じて動作を停止する場合に、前記ストレージ制御装置が備える不揮発性記憶領域に正常に停止したことを示す正常停止情報を書き込み、
前記ストレージ制御装置が起動したとき、前記正常停止情報が記録されていない場合に、前記キャッシュ領域に格納されているデータを前記ミラーリング領域にコピーする、
付記７記載のストレージ制御装置。
【０１２２】
（付記１０）  コンピュータに、
記憶領域に対する書き込みデータの書き込み要求を受信すると、前記書き込みデータを、前記コンピュータが備える不揮発性メモリ内のキャッシュ領域と、他のコンピュータが備える揮発性メモリ内のミラーリング領域の両方に書き込み、
前記キャッシュ領域と前記ミラーリング領域の両方に対する前記書き込みデータの書き込みが完了すると、書き込み完了通知を送信し、
前記書き込み完了通知の送信後に前記キャッシュ領域内の前記書き込みデータを前記記憶領域に書き込む、
処理を実行させるストレージ制御プログラム。
【０１２３】
（付記１１）  前記コンピュータに、
前記コンピュータと前記他のコンピュータが停電による動作停止状態から起動した場合、前記キャッシュ領域に格納されているデータを前記ミラーリング領域にコピーする、
処理をさらに実行させる付記１０記載のストレージ制御プログラム。
【０１２４】
（付記１２）  前記コンピュータに、
前記コンピュータが所定の停止要求に応じて動作を停止する場合に、前記コンピュータが備える不揮発性記憶領域に正常に停止したことを示す正常停止情報を書き込み、
前記コンピュータが起動したとき、前記正常停止情報が記録されていない場合に、前記キャッシュ領域に格納されているデータを前記ミラーリング領域にコピーする、
処理をさらに実行させる付記１０記載のストレージ制御プログラム。
【符号の説明】
【０１２５】
１０，２０  ストレージ制御装置
１１  揮発性メモリ
１１ａ  ミラーリング領域
２１  不揮発性メモリ
２１ａ  キャッシュ領域
２２  制御部
３０  記憶装置
４０  ホスト装置
【図１】
2018022404.tif 000003
【図２】
2018022404.tif 000004
【図３】
2018022404.tif 000005
【図４】
2018022404.tif 000006
【図５】
2018022404.tif 000007
【図６】
2018022404.tif 000008
【図７】
2018022404.tif 000009
【図８】
2018022404.tif 000010
【図９】
2018022404.tif 000011
【図１０】
2018022404.tif 000012
【図１１】
2018022404.tif 000013
【図１２】
2018022404.tif 000014
【図１３】
2018022404.tif 000015
【図１４】
2018022404.tif 000016
【図１５】
2018022404.tif 000017