(57)【要約】【課題】外部装置からのアクセス要求に対して迅速に応答することのできる技術を提供する。【解決手段】外部装置との間のデータの送受信を行うＣＨＡ１１０と、ＨＤＤ部２００との間のデータの送受信を行うＤＫＡ１４０と、第１キャッシュメモリ１２４を有する１次キャッシュ部１２０と、１次キャッシュ部１２０とＤＫＡ１４０との間に設けられ、２次キャッシュメモリ１３４を有する２次キャッシュ部１３０と、ＣＨＡ１１０が受信したライト対象のデータを１次キャッシュメモリ１２４に格納するＣＣＰ１２１と、ライト対象のデータを２次キャッシュメモリ１３４に格納するとともに、２次キャッシュメモリ１３４に格納されたライト対象のデータをＤＫＡ１４０に渡すＣＣＰ１３１とを有するように構成する。【選択図】図１
2008217527.tif 000002
【特許請求の範囲】
【請求項１】
外部装置と受け渡しを行うデータを記憶可能な記憶装置を有するストレージシステムであって、
前記外部装置との間のデータの送受信を行う第１インタフェース部と、
前記記憶装置との間のデータの送受信を行う第２インタフェース部と、
前記第１インタフェース部が受信したライト対象のデータを格納可能な第１メモリを有する１次キャッシュ部と、
前記１次キャッシュ部と前記第２インタフェース部との間に設けられ、前記第１メモリに格納された前記ライト対象のデータを格納可能な第２メモリを有する２次キャッシュ部と、
前記第１インタフェース部が受信した前記ライト対象のデータを前記第１メモリに格納する第１データ格納制御部と、
前記ライト対象のデータを前記第２メモリに格納する第２データ格納制御部と、
前記第２メモリに格納された前記ライト対象のデータを前記第２インタフェース部に渡す第３データ格納制御部と
を有するストレージシステム。
【請求項２】
前記１次キャッシュ部を複数有し、
前記第１データ格納制御部は、前記第１インタフェース部が受信した前記ライト対象のデータを、複数の前記１次キャッシュ部の前記第１メモリに格納させ、
前記第２データ格納制御部は、前記ライト対象のデータを前記第２メモリに格納させ、
前記第２メモリに前記ライト対象のデータが格納された後に、前記複数の１次キャッシュ部の一部の１次キャッシュ部から前記ライト対象のデータを消去させる１次キャッシュデータ消去部を更に有する
請求項１に記載のストレージシステム。
【請求項３】
前記１次キャッシュデータ消去部は、前記複数の１次キャッシュ部のメモリ使用量に基づいて、前記ライト対象のデータを消去させる前記１次キャッシュ部を決定する
請求項２に記載のストレージシステム。
【請求項４】
前記複数の１次キャッシュ部へ前記ライト対象のデータが格納された後に、前記ライト対象のデータの格納が完了したことを示す処理完了通知を前記ライト要求元の前記外部装置に送信する完了通知送信部を更に有する
請求項２又は請求項３に記載のストレージシステム。
【請求項５】
前記１次キャッシュ部の障害を検出する障害検出部を更に有し、
前記完了通知送信部は、前記障害検出部により障害が検出された場合に、前記２次キャッシュ部へ前記ライト対象のデータが格納された後に、前記処理完了通知を送信する
請求項４に記載のストレージシステム。
【請求項６】
前記１次キャッシュ部を複数有し、
前記１次キャッシュ部のいずれか１つのメモリ使用量が所定の制限量を超過した場合に、全ての前記１次キャッシュ部のメモリ使用量が所定量以下になるまで、前記第１メモリからデータを消去する１次キャッシュ調整部を更に有する
請求項１乃至請求項５のいずれか１項に記載のストレージシステム。
【請求項７】
前記１次キャッシュ部に格納された前記データに対するアクセス履歴情報を記憶する１次キャッシュ履歴情報記憶部を有し、
前記１次キャッシュ調整部は、前記アクセス履歴情報に基づいて消去する前記データを決定する
請求項６に記載のストレージシステム。
【請求項８】
前記２次キャッシュ部を複数有し、
所定数の前記２次キャッシュ部のそれぞれに格納されているデータであって、最終アクセスから所定期間超過したデータを検出する超過データ検出部を有し、
前記第３データ格納制御部は、検出された前記データを前記第２インタフェース部に渡して前記記憶装置に格納させ、
前記記憶装置に前記データを格納させた後に、前記データを格納している前記２次キャッシュ部の少なくとも１つから前記データを消去させる２次キャッシュデータ消去部を更に有する
請求項１乃至請求項７のいずれか１項に記載のストレージシステム。
【請求項９】
前記２次キャッシュ部を複数有し、
前記２次キャッシュ部のいずれか１つのメモリ使用量が所定の制限量を超過した場合に、全ての前記２次キャッシュ部のメモリ使用量が所定量以下になるまで、前記第２メモリからデータを消去する２次キャッシュ調整部を更に有する
請求項１乃至請求項８のいずれか１項に記載のストレージシステム。
【請求項１０】
前記２次キャッシュ部に格納された前記データに対するアクセス履歴情報を記憶する２次キャッシュ履歴情報記憶部を有し、
前記２次キャッシュ調整部は、前記アクセス履歴情報に基づいて消去する前記データを決定する
請求項９に記載のストレージシステム。
【請求項１１】
前記第１インタフェース部は、前記外部装置からリード要求を受信し、
前記１次キャッシュ部及び前記２次キャッシュ部に、リード対象のデータが存在しない場合に、前記リード対象のデータを前記記憶装置から読み出して前記２次キャッシュ部の前記第２メモリに格納するデータ読出部と、
前記格納された前記データを前記第１インタフェース部により前記外部装置に送信させる読出制御部と、
前記２次キャッシュ部に格納された前記データに対するアクセス履歴情報を記憶する２次キャッシュ履歴情報記憶部と、
前記２次キャッシュ部の前記第２メモリに格納された前記データに対するアクセスがあった場合に、前記アクセス履歴情報を更新するアクセス管理部と、
前記第２次キャッシュ部の前記アクセス履歴情報に基づいて、前記１次キャッシュ部の前記第１メモリに前記データを格納するデータ格上格納制御部とを更に有する
請求項１乃至請求項１０のいずれか１項に記載のストレージシステム。
【請求項１２】
前記１次キャッシュ部の第１メモリは、前記ライト要求に対応するデータ内容及び更新順序を含むジャーナルデータを格納するためのジャーナル格納領域を有しており、
前記１次キャッシュ部の前記第１メモリの前記ジャーナル格納領域に空きがある場合には、前記ジャーナルデータを前記第１メモリに格納し、前記第１メモリ部に空きがない場合には、前記ジャーナルデータを前記第２キャッシュ部の第２メモリに格納するジャーナル格納制御部と、
前記第１メモリ又は第２メモリに格納された前記ジャーナルデータを前記更新順序に基づいて取り出して、前記第１インタフェース部により所定の外部装置に送信させるリモート送信制御部と
を更に有する
請求項１乃至請求項１１のいずれか１項に記載のストレージシステム。
【請求項１３】
前記第２メモリは、不揮発メモリである
請求項１乃至請求項１２のいずれか１項に記載のストレージシステム。
【請求項１４】
前記ライト対象のデータが所定量以上のシーケンシャル処理データか否かを判定する判定部と、
前記ライト対象のデータが所定量以上であるシーケンシャル処理データであると判定された場合に、前記ライト対象のデータを前記第２データ格納制御部により前記２次キャッシュ部に格納させずに、前記第２インタフェース部に渡して前記記憶装置に格納させるシーケンシャル処理データ格納制御部と
を更に有する
請求項１３に記載のストレージシステム。
【請求項１５】
前記第２メモリは、複数のメモリモジュールにより構成されており、
前記第２データ格納制御部は、前記複数のメモリモジュールのそれぞれに対する書込み回数が均等となるように、前記ライト対象のデータを格納するメモリモジュールを決定する
請求項１３又は請求項１４に記載のストレージシステム。
【請求項１６】
前記第２メモリは、複数の通常用のメモリモジュールと、少なくとも一の予備用のメモリモジュールとにより構成され、
前記通常用のメモリモジュールのそれぞれに対するデータ書き換え回数を記憶する書換回数記憶部と、
前記通常用のメモリモジュールの或るメモリモジュールに対するデータ書き換え回数が所定数を超えた場合に、前記或るメモリモジュールのデータを前記予備用のメモリモジュールに格納させ、前記予備用のメモリモジュールを前記或るメモリモジュールの代わりとして動作可能にするメモリモジュール交換制御部とを更に有する
請求項１３乃至請求項１５のいずれか１項に記載のストレージシステム。
【請求項１７】
前記第１データ格納制御部は、前記第１インタフェース部が受信した前記ライト対象のデータを、前記１次キャッシュ部の前記第１メモリに格納させ、
前記第２データ格納制御部は、前記ライト対象のデータを前記第２メモリに格納させ、
前記１次キャッシュ部及び前記２次キャッシュ部へ前記ライト対象のデータが格納された後に、前記ライト対象のデータの格納が完了したことを示す処理完了通知を前記ライト要求元の前記外部装置に送信する完了通知送信部を更に有する
請求項１に記載のストレージシステム。
【請求項１８】
前記２次キャッシュ部を複数有し、
前記完了通知送信部は、前記１次キャッシュ部及び複数の前記２次キャッシュ部に前記ライト対象のデータが格納された後に、前記処理完了通知を送信する
請求項１７に記載のストレージシステム。
【請求項１９】
外部装置と受け渡しを行うデータを記憶可能な記憶装置を有するストレージシステムにおけるデータ管理方法であって、
前記ストレージシステムは、前記外部装置から送信されたライト対象のデータを受信する第１インタフェース部と、前記記憶装置にライト対象のデータを書き込む第２インタフェース部と、前記第１インタフェース部が受信したライト対象のデータを格納可能な第１メモリを有する１次キャッシュ部と、前記１次キャッシュ部と前記第２インタフェース部との間に設けられ、前記第１メモリに格納された前記ライトデータを格納可能な第２メモリを有する２次キャッシュ部とを備え、
前記第１インタフェース部が受信したライト対象のデータを第１メモリに格納し、前記ライト対象のデータを前記第２メモリに格納し、前記第２メモリに格納された前記ライト対象のデータを前記記憶装置に格納させる
データ管理方法。
【請求項２０】
データを記憶する記憶装置と、外部装置との間で受け渡されるデータの管理を行う第１クラスタ及び第２クラスタとを有するストレージシステムであって、
前記第１クラスタは、
前記外部装置に接続され、第１プロセッサを有する第１インタフェースと、前記第１プロセッサと通信可能な第２プロセッサと、前記第２プロセッサがアクセス可能な第１メモリと、前記第２プロセッサと通信可能な第３プロセッサと、前記第３プロセッサがアクセス可能な第２メモリと、前記第３プロセッサ及び前記記憶装置に接続される第２インタフェースと、を備え、
前記第２クラスタは、
前記外部装置に接続され、第４プロセッサを有する第３インタフェースと、前記第４プロセッサがアクセス可能な第３メモリと、前記第３メモリにアクセス可能な第５プロセッサと、前記第５プロセッサがアクセス可能な第４メモリと、前記第４メモリにアクセス可能な第６プロセッサと、前記第６プロセッサ及び前記記憶装置に接続される第４インタフェースと、を備え、
前記第１プロセッサは、前記第５プロセッサと通信可能であり、
前記第２プロセッサは、前記第５プロセッサ及び前記第６プロセッサと通信可能であり、
前記第１プロセッサは、前記第１インタフェースによりライト要求を受け付けた時に、ライト対象のデータを第２プロセッサにより前記第１メモリに格納させるとともに、前記第５プロセッサにより前記第３メモリに格納させ、その後、ライト要求元の前記外部装置に前記ライト対象の前記データを格納したことを示す処理完了通知を、前記第１インタフェースにより送信させ、
前記第２プロセッサは、前記第１メモリに格納された前記ライト対象のデータを前記第３プロセッサにより前記第２メモリに格納させるとともに、前記第６プロセッサにより前記第４メモリに格納させ、その後、前記第１メモリに格納されている前記ライト対象のデータを消去するか、又は前記第５プロセッサにより前記第３メモリに格納されている前記ライト対象のデータを消去させる
ストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部装置と受け渡しを行うデータを管理するストレージシステム及びデータ管理方法に関する。
【背景技術】
【０００２】
ストレージシステムは、例えば、ホスト装置からライト要求を受信し、ライト要求の対象（ライト対象）のデータを記憶装置に対して書込み、また、ホスト装置からのリード要求を受信し、記憶装置からリード要求の対象のデータを読み出してホスト装置に送信する。
【０００３】
このようなストレージシステムにおいては、ライト要求に従って記憶装置に書き込むためのデータを一時的に記憶し、或いは、リード要求に従って記憶装置から読み出されたデータを一時的に記憶するためにキャッシュメモリが備えられている。
【０００４】
このキャッシュメモリとしては、例えば、高速アクセス（読み出し及び書込み）が可能なＤＲＡＭ（Dynamic Random Access Memory）が用いられている。このようなＤＲＡＭは、高速アクセスができるほど、記憶容量あたりの単価が高くなる。また、フラッシュメモリ等の他のメモリに比して記憶容量あたりの単価が高い。
【０００５】
キャッシュメモリの記憶容量を大きくすると、ホスト装置からのアクセスに対する応答性能が向上する一方、キャッシュメモリに要するコストが増大する。このため、コスト面を考慮しなければならない一般的なストレージシステムにおいては、キャッシュメモリには、比較的少ない限られた記憶容量しか備えられていない。
【０００６】
キャッシュメモリを備えるストレージシステムにおいては、例えば、通信インタフェースと、キャッシュメモリと、記憶デバイスインタフェースとを互いに通信可能に接続する接続部（バススイッチ）に、キャッシュメモリのデータと同じデータを記憶するメモリを備え、アクセスに対する応答時間を短縮することのできる技術が開示されている（例えば、特許文献１）。
【０００７】
【特許文献１】特開２００５−１１５６０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
特許文献１に記載された技術によると、通信インタフェースと、キャッシュメモリ部と、記憶デバイスインタフェースとを互いに通信可能に接続する接続部にメモリを備えるようにしている。このため、例えば、複数の機能部がメモリに格納されたデータにアクセスしようとした場合には、いずれかの機能部が他の機能部によるアクセスが完了するのを待たなければならず、処理効率が悪くなり、アクセスに対する応答が遅くなるおそれもある。また、接続部がメモリに対するアクセス処理も行うこととなるので、各部間の接続が遅くなるおそれもある
そこで、本発明は、上記課題に鑑みなされたものであり、その目的は、外部装置からのアクセス要求に対して迅速に応答することのできる技術を提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明の一観点に従うストレージシステムは、外部装置と受け渡しを行うデータを記憶可能な記憶装置を有するストレージシステムであって、前記外部装置との間のデータの送受信を行う第１インタフェース部と、前記記憶装置との間のデータの送受信を行う第２インタフェース部と、前記第１インタフェース部が受信したライト対象のデータを格納可能な第１メモリを有する１次キャッシュ部と、前記１次キャッシュ部と、前記第２インタフェース部との間に設けられ、前記第１メモリに格納された前記ライト対象のデータを格納可能な第２メモリを有する２次キャッシュ部と、前記第１インタフェース部が受信した前記ライト対象のデータを前記第１メモリに格納する第１データ格納制御部と、前記ライト対象のデータを前記第２メモリに格納する第２データ格納制御部と、前記第２メモリに格納された前記ライト対象のデータを前記第２インタフェース部に渡す第３データ格納制御部とを有する。
【発明を実施するための最良の形態】
【００１０】
本発明の実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１１】
＜第１実施形態＞
図１は、本発明の第１実施形態に係るストレージシステムの構成図である。
【００１２】
ストレージシステム１０は、ストレージ制御装置１００と、ＨＤＤ部２００と、バッテリ４００とを有する。ストレージシステム１０は、データのリード（読み出し）やライト（書込み）を行う１以上の外部装置の一例であるホスト装置とケーブルやネットワークを介して接続される。ホスト装置と接続するためのネットワークとしては、ＳＡＮ（Storage Area
Network）、ＬＡＮ(Local
Area Network)、インターネット、専用回線、公衆回線等であってもよく、データ通信を行うことのできるネットワークであればよい。また、ネットワークやケーブルにおけるプロトコルとしては、ファイバチャネルプロトコルや、ＴＣＰ／ＩＰプロトコルであってもよく、ホスト装置とストレージシステム１０との間でデータのやりとりが可能なプロトコルであれば、任意のプロトコルであってよい。
【００１３】
ＨＤＤ部２００は、複数のＨＤＤ（ハードディスクドライブ）を有している。ストレージシステム１０においては、ＨＤＤ部２００の複数のＨＤＤの記憶空間を利用して、１又は複数の論理ボリュームを提供することができる。また、ストレージシステム１０においては、複数のＨＤＤの内の２以上のＨＤＤでＲＡＩＤ（Redundant Array of Independent Disks）グループを構成して、ＲＡＩＤグループの記憶空間を論理ボリュームとして提供することもできる。
【００１４】
バッテリ４００は、図示しない主電源に異常が発生した場合に、所定の処理を実行可能にするための電力を蓄積しており、ストレージ制御装置１００の所定の部位に電力を供給できるようになっている。本実施形態では、バッテリ４００は、第1クラスタ１０１ａ及び第２クラスタ１０１ｂの第1キャッシュ部１２０及び第２キャッシュ部１３０の各部に電力を供給できるようになっている。なお、第１クラスタ１０１ａ側と、第２クラスタ１０１ｂ側とに、異なるバッテリ４００により電力を供給するようにしてもよい。
【００１５】
ストレージ制御装置１００は、第１クラスタ１０１ａと第２クラスタ１０１ｂとを有する多重化構成となっている。ストレージ制御装置１００においては、電源境界（図１に一点鎖線で示す）が設けられている。すなわち、ストレージ制御装置１００においては、第１クラスタ１０１aへの電力供給系統と、第２クラスタ１０１ｂへの電力供給系統とは異なっている。
【００１６】
第1クラスタ１０１a及び第２クラスタ１０１ｂは、それぞれ第１インタフェース部の一例であるチャネルアダプタ（ＣＨＡ）１１０と、1次キャッシュ部１２０と、2次キャッシュ部１３０と、第２インタフェース部の一例であるディスクアダプタ（ＤＫＡ）１４０とを有する。
【００１７】
ＣＨＡ１１０は、チャネルプロセッサ（ＣＨＰ）１１１と、信号変換／データ処理部１１２と、ローカルメモリ（ＬＭ）１１３と、データコントローラ（ＤＴＣ）１１４とを有する。
【００１８】
信号変換／データ処理部１１２は、ネットワークやケーブルを介してホスト装置に接続可能であり、ホスト装置とストレージシステム１０との間でのデータの読み出し（リード）及びデータの書込み（ライト）における各種情報の送受信に関する処理を実行する。ここで、ホスト装置から送信されるリード要求には、例えば、リード対象のブロックが管理されているＬＵＮ（Logical Unit Number）及びＬＢＡ（Logical Block Address）が含まれる。また、ホスト装置から送信されるライト要求には、例えば、ライト対象のブロックを書き込むＬＵＮ及びＬＢＡと、ライト対象のデータとが含まれる。
【００１９】
本実施形態では、信号変換／データ処理部１１２は、ホスト装置側の信号をストレージシステム１０側の信号に変換し、また、ストレージシステム１０側の信号をホスト装置側の信号に変換する。また、信号変換／データ処理部１１２は、受信したデータをチェックし、訂正や再送等の処理を行う。また、信号変換／データ処理部１１２は、ホスト装置から受信したデータをストレージシステム１０内で用いるデータ形式に変換し、また、ストレージシステム１０内でのデータをホスト装置側のデータ形式に変換する。ストレージシステム１０内でのデータ形式としては、例えば、実データに対してチェックコードを付加したデータ形式となっている。本実施形態では、チェックコードに、例えば、データの識別情報として実データの格納場所を示すＬＵＮ及びＬＢＡが含まれている。
【００２０】
ＬＭ１１３は、ＣＨＰ１１１により実行される処理のプログラムやデータを記憶する領域として、或いは、ＣＨＰ１１１による処理に使用されているデータを格納する作業領域として利用される。
【００２１】
ＣＨＰ１１１は、ＣＨＡ１１０の各部を統括制御する。また、ＣＨＰ１１１は、ＬＭ１１３に格納されたプログラムを実行することにより各種処理を実行する。なお、各処理については、後述する。ここで、本実施形態では、第１データ格納部、完了通知送信部、及び障害検出部は、主にＣＨＰ１１１によって構成される。
【００２２】
ＤＴＣ１１４は、複数のクラスタ（１０１ａ、１０１ｂ）の１次キャッシュ部１２０とバス１１５を介して接続されており、ＣＨＰ１１１の制御に従って、接続された１以上の１次キャッシュ部１２０へ各種データを送信する。また、ＤＴＣ１１４は、接続された各１次キャッシュ部１２０から送信されるデータを受信し、例えば、ＣＨＰ１１１に渡す。
【００２３】
１次キャッシュ部１２０は、キャッシュ制御プロセッサ（ＣＣＰ）１２１と、データセレクタ（ＳＥＬ）１２２と、キャッシュメモリコントローラ（ＣＭＣ）１２３と、１次キャッシュメモリ１２４と、データコントローラ（ＤＴＣ）１２５と、ローカルメモリ（ＬＭ）１２６とを有する。
【００２４】
ＳＥＬ１２２は、第１クラスタ１０１ａ及び第２クラスタ１０１ｂのＣＨＡ１１０のＤＴＣ１１４にバス１１５を介して接続されている。ＳＥＬ１２２は、ＤＴＣ１１４から送信される各種データを受信し、また、各種データを第１クラスタ１０１ａ又は第２クラスタ１０１ｂのＤＴＣ１１４に送信する。ＬＭ１２６は、ＣＣＰ１２１により実行される処理のプログラムやデータを記憶する領域として、或いは、ＣＣＰ１２１による処理に使用されているデータを格納する作業領域として利用される。ＬＭ１２６は、例えば、１次キャッシュメモリ１２４に格納されているデータ（キャッシュデータ）を管理するための制御情報、例えば、データを識別する情報（例えば、ＬＵＮ及びＬＢＡ）と、当該データを格納している１次キャッシュメモリのアドレスとを記憶する。
【００２５】
ＣＭＣ１２３は、ＣＣＰ１２１と、ＳＥＬ１２２と、１次キャッシュメモリ１２４と、ＤＴＣ１２５とに接続されている。ＣＭＣ１２３は、ＣＣＰ１２１の制御に従って、接続された各部間でのデータの受け渡しを行う。例えば、ＣＭＣ１２３は、ＳＥＬ１２２やＤＴＣ１２５からデータを受け取って１次キャッシュメモリ１２４に格納する処理や、１次キャッシュメモリ１２４から読み出されたデータをＳＥＬ１２２やＤＴＣ１２５に渡す処理等を行う。１次キャッシュメモリ１２４は、揮発メモリ、例えば、ＤＲＡＭ（Dynamic Random Access Memory）である。１次キャッシュメモリ１２４は、ＣＨＡ１１０によって受信されたデータや、２次キャッシュ部１３０から渡されたデータを一時的に記憶する。１次キャッシュメモリ１２４の記憶容量としては、例えば、数百ギガバイトとしてもよい。
【００２６】
ＣＣＰ１２１は、１次キャッシュ部１２０の各部を統括制御する。また、ＣＣＰ１２１は、ＬＭ１２６に格納されたプログラムを実行することにより各種処理を実行する。なお、各処理については、後述する。ここで、本実施形態では、第２データ格納制御部、１次キャッシュデータ消去部、１次キャッシュ調整部は、主に、ＣＣＰ１２１によって構成される。ＤＴＣ１２５は、複数のクラスタ（１０１ａ、１０１ｂ）の２次キャッシュ部１３０とバス１２８を介して接続されており、ＣＣＰ１２１の制御に従って、接続された１以上の２次キャッシュ部１３０へ各種データを送信する。また、ＤＴＣ１２５は、接続された各２次キャッシュ部１３０から送信されるデータを受信し、例えば、ＣＣＰ１２１に渡す。
【００２７】
２次キャッシュ部１３０は、キャッシュ制御プロセッサ（ＣＣＰ）１３１と、データセレクタ（ＳＥＬ）１３２と、キャッシュメモリコントローラ（ＣＭＣ）１３３と、２次キャッシュメモリ１３４と、データコセレクタ（ＳＥＬ）１３５と、ローカルメモリ（ＬＭ）１３６とを有する。
【００２８】
ＳＥＬ１３２は、第１クラスタ１０１ａ及び第２クラスタ１０１ｂの第１キャッシュ部１３０のＤＴＣ１２５にバス１２８を介して接続されている。ＳＥＬ１３２は、ＤＴＣ１２５から送信される各種データを受信し、また、各種データを第１クラスタ１０１ａ又は第２クラスタ１０１ｂのＤＴＣ１２５に送信する。ＬＭ１３６は、ＣＣＰ１３１により実行される処理のプログラムやデータを記憶する領域として、或いは、ＣＣＰ１３１による処理に使用されているデータを格納する作業領域として利用される。ＬＭ１３６は、例えば、２次キャッシュメモリ１３４に格納されているデータ（キャッシュデータ）を管理するための制御情報、例えば、データを識別する情報（例えば、ＬＵＮ及びＬＢＡ）と、当該データを格納している２次キャッシュメモリのアドレスとを記憶する。
【００２９】
ＣＭＣ１３３は、ＣＣＰ１３１と、ＳＥＬ１３２と、２次キャッシュメモリ１３４と、ＳＥＬ１３５とに接続されている。ＣＭＣ１３３は、ＣＣＰ１３１の制御に従って、接続された各部間でのデータの受け渡しを行う。例えば、ＣＭＣ１３３は、ＳＥＬ１３２やＳＥＬ１３５からデータを受け取って２次キャッシュメモリ１３４に格納する処理や、２次キャッシュメモリ１３４から読み出されたデータをＳＥＬ１３２やＳＥＬ１３５に渡す処理等を行う。
【００３０】
２次キャッシュメモリ１３４は、例えば、フラッシュメモリ、ＭＲＡＭ（Magnetoresistive Random Access Memory）、ＰＲＡＭ（Phase change RAM）等の電源を供給せずともデータを記憶しておくことのできる不揮発メモリである。２次キャッシュメモリ１３４は揮発メモリであるので、バッテリ４００によるバックアップをせずともデータの記憶を維持できるという効果がある。このため、バッテリ４００に要求される電力容量を抑えることができる。本実施形態では、２次キャッシュメモリ１３４の記憶容量は、１次キャッシュメモリ１２４の記憶容量よりも大きくなっている。２次キャッシュメモリ１３４の記憶容量としては、例えば、数テラバイト以上としてもよい。なお、ストレージシステム１０に要するコストを考慮すると、２次キャッシュメモリ１３４は、１次キャッシュメモリ１２４よりも所定の記憶容量あたりの単価が安いメモリを使用することが好ましい。２次キャッシュメモリ１３４は、１次キャッシュ部１２０から渡されたデータや、ＤＫＡ１４０から渡されたデータを一時的に記憶する。なお、２次キャッシュメモリ１３４をＤＲＡＭ等の揮発メモリとしてもよい。２次キャッシュメモリ１３４を揮発メモリとすると、不揮発メモリとした場合に比して、データの入出力の速度が高速となる。また、フラッシュメモリに比べて、メモリの書き換え回数の制限がないという効果もある。
【００３１】
ＣＣＰ１３１は、２次キャッシュ部１２０の各部を統括制御する。また、ＣＣＰ１３１は、ＬＭ１３６に格納されたプログラムを実行することにより各種処理を実行する。なお、各処理については、後述する。ここで、本実施形態では、第３データ格納制御部、超過データ検出部、２次キャッシュデータ消去部、２次キャッシュ調整部、及びアクセス管理部は、主にＣＣＰ１３１によって構成される。ＳＥＬ１３５は、複数のクラスタ（１０１ａ、１０１ｂ）のＤＫＡ１４０とバス１３８を介して接続されている。ＳＥＬ１３５は、第１クラスタ１０１ａ又は第２クラスタ１０１ｂのＤＫＡ１４０から送信される各種データを受信し、また、各種データを第１クラスタ１０１ａ又は第２クラスタ１０１ｂのＤＫＡ１４０に送信する。
【００３２】
ＤＫＡ１４０は、（データセレクタ）ＳＥＬ１４１と、ディスクアダプタプロセッサ（ＤＫＰ）１４２と、冗長データ生成／信号変換部１４３とを有する。ＳＥＬ１４１は、第１クラスタ１０１ａ及び第２クラスタ１０１ｂの第２キャッシュ部１４０のＳＥＬ１３５にバス１３８を介して接続されている。ＳＥＬ１４１は、ＳＥＬ１３５から送信される各種データを受信し、また、各種データを第１クラスタ１０１ａ又は第２クラスタ１０１ｂのＳＥＬ１３５に送信する。ＤＫＰ１４２は、ＤＫＡ１４０の各部を統括制御する。また、ＤＫＰ１４２は、図示しないローカルメモリに格納されたプログラムを実行することにより各種処理を実行する。
【００３３】
冗長データ生成／信号変換部１４３は、例えば、ケーブルを介してＨＤＤ部２００と接続されており、ＨＤＤ部２００とリード又はライト対象のデータの受け渡し処理を実行する。冗長データ生成／信号変換部１４３は、ストレージ制御装置１００側の信号をＨＤＤ部２００側の信号に変換し、また、ＨＤＤ部２００側の信号をストレージ制御装置１００側の信号に変換する。また、例えば、ＨＤＤ部２００をＲＡＩＤとして管理している場合には、冗長データ生成／信号変換部１４３は、ストレージ制御装置１００から取得したデータに基づいて、ＲＡＩＤに適応するための冗長データ（例えば、パリティデータ）を生成し、データ及び冗長データを複数のＨＤＤに格納させる。
【００３４】
図２は、本発明の第1実施形態に係る１次キャッシュメモリ及び２次キャッシュメモリに格納されるデータの構造を示す図である。
【００３５】
１次キャッシュメモリ１２４及び２次キャッシュメモリ１３４に格納されるデータ３００は、データアンドチェックコードフィールド３０１と、付加情報フィールド３０２とを含む。データアンドチェックコードフィールド３０１には、データ及びそのチェックコードが格納される。付加情報フィールド３０２は、書込み日時フィールド３０３と、参照履歴フィールド３０４と、読出フラグフィールド３０７と、ＨＤＤ書込みフラグフィールド３０８とを含む。
【００３６】
書込み日時フィールド３０３には、対応するデータが書込まれた日時（書込み日時）が格納される。本実施形態では、書込み日時フィールド３０３には、当初は、１次キャッシュメモリ１２４、２次キャッシュメモリ１３４に書き込まれた日時が格納されるが、当該データがＨＤＤ部２００に書き込まれた場合には、ＨＤＤ部２００に書き込まれた日時が格納される。
【００３７】
参照履歴フィールド３０４には、対応するデータの参照履歴情報が格納される。本実施形態では、参照履歴フィールド３０４は、参照回数フィールド３０５と、最新参照日時フィールド３０６とを有する。参照回数フィールド３０５には、対応するデータが参照された回数（参照回数）が格納される。最新参照日時フィールド３０６には、対応するデータが最後に参照された日時（最新参照日時）が格納される。
【００３８】
読出フラグフィールド３０７には、対応するデータが下位側（例えば、２次キャッシュメモリ１３４に格納されているデータであれば、ＨＤＤ部２００）から読み出されて格納されたデータであるのか、或いは、上位側（例えば、２次キャッシュメモリ１３４に格納されているデータであれば、１次キャッシュ部１２０側）から格納されたデータであるのかを示す読出フラグが格納される。本実施形態では、例えば、読出フラグが“１”であれば、対応するデータが下位側から格納されていることを示し、読出フラグが“０”であれば、対応するデータが上位側から格納されていることを示す。
【００３９】
ＨＤＤ書込みフラグフィールド３０８には、対応するデータがＨＤＤ部２００に書き込まれたデータであるか否かを示すＨＤＤ書込みフラグが格納される。本実施形態では、例えば、ＨＤＤ書込みフラグが“１”であれば、対応するデータがＨＤＤ部２００に格納されていることを示し、ＨＤＤ書込みフラグが“０”であれば、対応するデータがＨＤＤ部２００に格納されていないことを示す。
【００４０】
次に、第１キャッシュ部１２０及び第２キャッシュ部１３０の具体的な構成例について図面を参照して説明する。
【００４１】
図３Ａは、本発明の第1実施形態に係る１次キャッシュボードの構成の一例を示す図である。図３Ｂは、本発明の第1実施形態に係るコントローラボードの構成の一例を示す図である。図４Ａは、本発明の第1実施形態に係るメモリボードの構成の一例を示す図である。図４Bは、本発明の第1実施形態に係るメモリ拡張ボードの構成の一例を示す図である。
【００４２】
１次キャッシュ部１２０は、図３Ａに示すように、一枚の１次キャッシュボード１２００により構成されている。１次キャッシュボード１２００には、複数のメモリモジュール１２４ａで構成される１次キャッシュメモリ１２４、複数のモジュールで構成されるＣＭＣ１２３、ＣＣＰ１２１、コネクタ１２０１等が設けられている。
【００４３】
２次キャッシュ部１３０は、図３Ｂに示すコントローラボード１３００と、図４Ａに示すメモリボード１３１０と、メモリ拡張ボード１３２０とにより構成されている。なお、２次キャッシュ部１３０における２次キャッシュメモリの記憶容量を所定量以下とする場合には、メモリ拡張ボード１３２０を備えなくてもよい。
【００４４】
コントローラボート１３００には、複数のモジュールにより構成されるＣＭＣ１３３、ＣＣＰ１３１、コネクタ１３０１等が設けられている。
【００４５】
メモリボード１３１０には、複数のメモリモジュール１３４ａ及びスペアメモリモジュール１３４ｓａにより構成される２次キャッシュメモリ１３４が設けられている。なお、本実施形態では、メモリボード１３１０を複数備えるようにし、これら複数のメモリボード１３１０のメモリモジュール１３４ａによって２次キャッシュメモリ１３４が構成されている。このように、メモリモジュール１３４ａが設けられるメモリボード１３１０と、２次キャッシュメモリ１３４にアクセスするための制御を行うＣＭＣ１３３及びＣＣＰ１３１とを設けるコントローラボード１３００とを異なるボードとしているので、後述するようにメモリモジュール１３４aを交換する必要がある場合においては、１枚のメモリボード１３１０を取り外すだけで対応することができる。すなわち、メモリモジュール１３４ａを交換する必要がある場合において、１枚のメモリボード１３１０のみを閉塞するだけでよく、２次キャッシュ部１３０において、他のメモリボード１３１０のメモリデバイス１３４ａにキャッシュされたデータを利用可能な状態としておくことができる。
【００４６】
メモリ拡張ボード１３２０は、２次キャッシュメモリ１３４の記憶容量を所定容量以上にするために、所定数以上のメモリボード１３１０により２次キャッシュメモリ１３４を構成する際に必要となるボードであり、コントローラボード１３００によるデータの読み書き等の制御を、所定数を超えるメモリボード１３１０に対して行うことができるようにするためのボードである。
【００４７】
メモリ拡張ボード１３２０には、拡張用インタフェース部１３２２と、コネクタ１３２１と、コネクタ１３２３とが設けられる。
【００４８】
図５Ａは、本発明の第1実施形態に係るストレージシステムの筐体の前面側の外観図である。図５Bは、本発明の第1実施形態に係るストレージシステムの筐体の背面側の外観図である。
【００４９】
ストレージシステム１０の筐体１１の前面側には、図５Ａに示すように、下から順に、給電部１３、基本部ボックス１４、２次キャッシュメモリ拡張ボックス１５、ＨＤＤ実装部１６が配置される。給電部１３には、外部からの電源を各部に供給する図示しない電源回路や、バッテリ４００が配置される。基本部ボックス１４には、ＣＨＡ１１０、１次キャッシュ部１２０、２次キャッシュ部１３０、ＤＫＡ１４０を構成するボードが格納される。２次キャッシュメモリ拡張ボックス１５には、２次キャッシュ部１３０の２次キャッシュメモリ１３４の記憶容量を所定容量以上とする場合に、２次キャッシュメモリ１３４を構成するメモリボード１３１０等が格納される。ＨＤＤ実装部１６には、ＨＤＤ部２００の複数のＨＤＤが実装される。
【００５０】
ストレージシステム１０の筐体１１の後面側にも、図５Ｂに示すように、前面側と同様に、下から順に、給電部１３、基本部ボックス１４、２次キャッシュメモリ拡張ボックス１５、ＨＤＤ実装部１６が配置される。本実施形態では、筐体１１の前面側には、第１クラスタ１０１ａを構成する各部が配置され、筐体１１の後面側には、第２クラスタ１０１ｂを構成する各部が配置されている。
【００５１】
次に、ストレージシステムの筐体１１内の状態を説明する。
【００５２】
図６は、本発明の第1実施形態に係るストレージシステムの筐体内のボードの状態を示す図である。
【００５３】
基本部ボックス１４は、中心に基本部ボックス１４用のバックボード１４ａを備えている。基本部ボックス１４においては、バックボード１４ａを境にして、手前側に第１クラスタ１０１ａが構成され、奥側に第２クラスタ１０１ｂが構成されている。
【００５４】
具体的には、第１クラスタ１０１ａのＣＨＡ１１０と、ＤＫＡ１４０と、1次キャッシュ部１２０とのそれぞれを構成するボードが手前側からバックボード１４ａへ差し込まれている。さらに、第１クラスタ１０１ａの２次キャッシュ部１３０を構成するコントローラボード１３００と、複数のメモリボード１３１０と、メモリ拡張ボード１３２０と、が手前側からバックボード１４ａに差し込まれている。一方、第２クラスタ１０１ｂの各部を構成するボードは、図面奥側からバックボード１４ａに差し込まれている。なお、バックボード１４ａには、各部を図１に示す接続状態とするための配線や、コントローラボード１３００と、メモリボード１３１０と、メモリ拡張ボード１３２０とを接続するための配線が備えられている。
【００５５】
２次キャッシュメモリ拡張ボックス１５においては、拡張ボックス用のバックボード１５ａを備えている。２次キャッシュメモリ拡張ボックス１５においては、バックボード１５ａを境にして、手前側に第１クラスタ１０１ａが構成され、奥側に第２クラスタ１０１ｂが構成されている。バックボード１５ａには、手前側から第１クラスタ１０１ａのメモリ拡張ボード１３２０と、複数のメモリボード１３１０とが差し込まれ、奥側から第２クラスタ１０１ｂのメモリ拡張ボード１３２０と、複数のメモリボード１３１０とが差し込まれている。バックボード１５ａには、メモリ拡張ボード１３２０とメモリボード１３１０とを接続するための配線が備えられている。
【００５６】
基本部ボックス１４に設けられたメモリ拡張ボード１３２０のコネクタ１３２３と、２次キャッシュメモリ拡張ボックス１５に設けられたメモリ拡張ボード１３２０のコネクタ１３２３とは、ケーブル１４ｂによって接続され、メモリ拡張ボード１３２０間での通信が可能になっている。これによって、基本部ボックス１４に設けられているメモリコントローラボード１３００のＣＭＣ１３３が、メモリ拡張ボード１３２０を介して、２次キャッシュメモリ拡張ボックス１５内のメモリボード１３１０に対してアクセスできるようになっている。このため、２次キャッシュメモリ１３４を構成するメモリボード１３１０を、基本部ボックス１４だけでなく、２次キャッシュメモリ拡張ボックス１５にも設けることができ、２次キャッシュメモリ１３４の記憶容量を容易に拡張することができる。
【００５７】
次に、ストレージシステム１０によるＷｒｉｔｅ要求（ライト要求）を受信した際の動作に関わるライト要求受信時処理を説明する。
【００５８】
図７は、本発明の第1実施形態に係るチャネルアダプタにおけるライト要求受信時処理のフローチャートである。
【００５９】
ＣＨＡ１１０において、ＣＨＰ１１１が信号変換／データ処理部１１２を介してホスト装置からＷｒｉｔｅ要求（ライト要求）を受信したか否かを判定し（ステップＳ１１）、受信していない場合には、ステップＳ１１を繰り返し実行する。一方、ライト要求を受信した場合には、ＣＨＰ１１１は、１次キャッシュ部１２０に障害が発生しているか否かを検出し（ステップＳ１２）、障害が発生していない場合には、ライト要求を第１クラスタ１０１ａ及び第２クラスタ１０１ｂのそれぞれの１次キャッシュ部１２０に送信する（ステップＳ１３）。ここで、ＣＨＰ１１１は、ライト対象のデータのデータ容量や、格納先の識別情報（書込み先ブロック）を含む情報を１次キャッシュ部１２０に送信する。
【００６０】
そして、ＣＨＰ１１１が、各クラスタの１次キャッシュ部１２０の双方からＷｒｉｔｅ完了（ライト完了）を受信したか否かを判定し（ステップＳ１４）、双方からライト完了を受信するまでステップＳ１４を繰り返し実行する。そして、ＣＨＰ１１１は、１次キャッシュ部１２０の双方からライト完了を受信した場合には、信号変換／データ処理部１１２を介してライト要求元のホスト装置へＷｒｉｔｅ処理完了通知（ライト処理完了通知）を送信する（ステップＳ１７）。このライト処理完了通知を受信したホスト装置では、データのライト処理を終了することができる。
【００６１】
一方、１次キャッシュ部１２０に障害が発生していることを検出した場合（ステップＳ１２のＹｅｓ）には、ＣＨＰ１１１は、障害時Ｗｒｉｔｅ要求を障害が発生していない１次キャッシュ部１２０に送信し（ステップＳ１５）、ライト要求に対するライト完了を受信したか否かを判定し（ステップＳ１６）、ライト完了を受信した場合に、信号変換／データ処理部１１２を介してライト要求元のホスト装置へライト処理完了通知を送信する（ステップＳ１７）。
【００６２】
図８は、本発明の第1実施形態に係る１次キャッシュ部におけるライト要求受信時処理のフローチャートである。
【００６３】
１次キャッシュ部１２０において、ＣＣＰ１２１がＳＥＬ１２２を介してＣＨＡ１１０からライト要求を受信したか否かを判定し（ステップＳ２１）、受信していない場合には、ステップＳ２１を繰り返し実行する。一方、ライト要求を受信した場合には、ＣＣＰ１２１は、ライト要求が通常のライト要求か、障害時ライト要求かを判定し（ステップＳ２２）、通常のライト要求である場合には、ライト対象のデータを１次キャッシュメモリ１２４に格納する（ステップＳ２３）。この場合、ＣＣＰ１２１は、ライト対象のデータを図２に示す構造として格納し、書込み日時フィールド３０３には、１次キャッシュメモリ１２４に書き込んだ日時を書き込む。さらに、ＣＣＰ１２１は、ライト要求に含まれているデータの識別情報と、当該データを書き込んだ１次キャッシュメモリ１２４の格納先（アドレス）とを対応付けてＬＭ１２６に格納する。
【００６４】
その後、ＣＣＰ１２１は、ライト要求を送信したＣＨＡ１１０にＳＥＬ１２２を介してライト完了を送信する（ステップＳ２４）。
【００６５】
次いで、ＣＣＰ１２１は、２次キャッシュ部１３０の制御指示をする必要があるか否かを判定する（ステップＳ２５）。ここで、２次キャッシュ部１３０の制御指示をする必要があるか否かは、ＣＨＡ１１０から制御指示する要求があったか否かにより判定できる。本実施形態では、一方の２次キャッシュ部１３０に制御指示が要求されている。この結果、制御指示をする必要がある場合（ステップＳ２５のＹｅｓ）には、ライト対象のデータがシーケンシャル処理データであるか否かを更に判定する（ステップＳ２６）。ここで、ＣＣＰ１２１は、ＣＨＡ１１０から送信されるライト対象のデータの書込みブロック数が所定数（例えば、１０）以上連続する場合には、ライト対象のデータがシーケンシャル処理データであると判定している。
【００６６】
シーケンシャル処理データでない場合（ステップＳ２６のＮｏ）には、ＣＣＰ１２１は、２次キャッシュ部１３０に障害が発生しているか否かを判定し（ステップＳ２７）、障害が発生していない場合には、ライト要求を第１クラスタ１０１ａ及び第２クラスタ１０１ｂのそれぞれの２次キャッシュ部１３０に送信する（ステップＳ２８）。
【００６７】
そして、ＣＣＰ１２１が、各クラスタの２次キャッシュ部１３０の双方からライト完了を受信したか否かを判定し（ステップＳ２９）、双方からライト完了を受信するまでステップＳ２９を繰り返し実行する。そして、ＣＣＰ１２１は、２次キャッシュ部１３０の双方からライト完了を受信した場合（ステップＳ２９のＹｅｓ）には、２つの２次キャッシュ部１３０に同じデータを格納したことを示しているので、１次キャッシュ部１２０に格納されている同じデータについて、一方の１次キャッシュ部１２０の１次キャッシュメモリ１２４から削除する処理を実行し（ステップＳ３０）、処理を終了する。本実施形態では、ＣＣＰ１２１は、他方のクラスタの１次キャッシュ部１２０のＣＣＰ１２１との間で、１次キャッシュメモリ１２４の使用量に関する情報を逐次交換しているので、使用量の多いほうの１次キャッシュメモリ１２４からライト対象のデータを削除する。これによって、１次キャッシュメモリ１２４における記憶容量を適切に増加させることができる。また、一方の１次キャッシュメモリ１２４には、ライト対象のデータが格納されているので、当該データに対するリード要求があった場合には、当該１次キャッシュメモリ１２４に格納されたデータがリード要求元に送信されるので、リード要求に対する応答を迅速に行うことができる。
【００６８】
一方、ステップＳ２２で、通常のライト要求ではない、すなわち、１次キャッシュ部１２０の障害時のライト要求であると判定した場合（ステップＳ２２のＮｏ）には、ＣＣＰ１２１は、ライト要求を第１クラスタ１０１ａ及び第２クラスタ１０１ｂのそれぞれの２次キャッシュ部１３０に送信する（ステップＳ３１）。
【００６９】
そして、ＣＣＰ１２１が、各クラスタの２次キャッシュ部１３０の双方からライト完了を受信したか否かを判定し（ステップＳ３２）、双方からライト完了を受信するまでステップＳ３２を繰り返し実行する。そして、２次キャッシュ部１３０の双方からライト完了を受信した場合には、２つの２次キャッシュ部１３０に同じデータが格納されたことを示しているので、ＣＣＰ１２１は、ライト完了をライト要求元のＣＨＡ１１０に送信し（ステップＳ３３）、処理を終了する。これにより、１次キャッシュ部１２０の一方に障害がある場合には、２つの２次キャッシュ部１３０の２次キャッシュメモリ１３４に同じデータが格納された時点で、ライト完了がＣＨＡ１１０に送信され、ライト要求元のホスト装置へライト処理完了通知が送信されることとなる。このため、１次キャッシュ部１２０に障害があっても、アクセス時の応答が遅いＨＤＤ部２００に格納することなく、迅速にホスト装置へライト処理完了通知を送信することができる。
【００７０】
また、ステップＳ２６において、シーケンシャル処理データであると判定した場合には、当該データを２次キャッシュメモリ１３４に書き込むようにすると書込み回数が多くなり、２次キャッシュメモリ１３４の消耗を早めてしまうと考えられるので、ＣＣＰ１２１は、２次キャッシュメモリ１３４への格納をさせないようにするために、ＨＤＤ部２００のＨＤＤへのライト要求を２次キャッシュ部１３０へ送信する（ステップＳ３４）。次いで、ＣＣＰ１２１が、２次キャッシュ部１３０からライト完了を受信したか否かを判定し（ステップＳ３５）、ライト完了を受信するまでステップＳ３５を繰り返し実行する。そして、ＣＣＰ１２１は、２次キャッシュ部１３０からライト完了を受信した場合（ステップＳ３５のＹｅｓ）には、処理を終了する。
【００７１】
また、ステップＳ２７において、２次キャッシュ部１３０に障害が発生していることを検出した場合（ステップＳ２７のＹｅｓ）には、ＣＣＰ１２１は、障害が発生していない２次キャッシュ部１３０に送信し（ステップＳ３６）、ライト要求に対するライト完了を受信したか否かを判定し（ステップＳ３７）、ライト完了を受信するまでステップＳ３７を繰り返し実行する。そして、ＣＣＰ１２１は、２次キャッシュ部１３０からライト完了を受信した場合（ステップＳ３７のＹｅｓ）には、処理を終了する。
【００７２】
図９は、本発明の第1実施形態に係る２次キャッシュ部におけるライト要求受信時処理のフローチャートである。
【００７３】
２次キャッシュ部１３０において、ＣＣＰ１３１がＳＥＬ１３２を介して１次キャッシュ部１２０からライト要求を受信したか否かを判定し（ステップＳ４１）、受信していない場合には、ステップＳ４１を繰り返し実行する。一方、ライト要求を受信した場合には、ＣＣＰ１３１は、ライト要求が２次キャッシュメモリ１３４へのライト要求か、又はＨＤＤ部２００へのライト要求かを判定する（ステップＳ４２）。
【００７４】
この結果、２次キャッシュメモリ１３４へのライト要求である場合（ステップＳ４２のＹｅｓ）には、ＣＣＰ１３１は、ライト対象のデータを格納する２次キャッシュメモリ１３４のメモリモジュール１３４ａを決定する（ステップＳ４３）。なお、ＣＣＰ１３１による２次キャッシュメモリ１３４への格納処理については、後述する。
【００７５】
次いで、ＣＣＰ１３１は、決定した２次キャッシュメモリ１３４のメモリモジュール１３４ａにライト対象のデータを格納する（ステップＳ４４）。この場合、ＣＣＰ１３１は、ライト対象のデータを図２に示す構造として格納し、書込み日時フィールド３０３には、２次キャッシュメモリ１３４に書き込んだ日時を書き込む。さらに、ＣＣＰ１３１は、ライト要求に含まれているデータの識別情報と、当該データを書き込んだ２次キャッシュメモリ１３４の格納先（アドレス）とを対応付けてＬＭ１３６に格納する。その後、ＣＣＰ１３１は、ライト完了を要求元の１次キャッシュ部１２０に送信する（ステップＳ４５）。
【００７６】
一方、２次キャッシュメモリ１３４へのライト要求でない場合（ステップＳ４２のＮｏ）には、ＣＣＰ１３１は、ＨＤＤ部２００のＨＤＤへのライト要求をＤＫＡ１４０へ送信する（ステップＳ４６）。これにより、ＤＫＡ１４０により、ライト対象のデータがＨＤＤ部２００に書き込まれることとなる。次いで、ＣＣＰ１３１が、ＤＫＡ１４０からライト完了を受信したか否かを判定し（ステップＳ４７）、ライト完了を受信するまでステップＳ４７を繰り返し実行する。そして、ＣＣＰ１３１は、ＤＫＡ１４０からライト完了を受信した場合（ステップＳ４７のＹｅｓ）には、ＣＣＰ１３１は、ライト完了を要求元の１次キャッシュ部１２０に送信し（ステップＳ４８）、処理を終了する。
【００７７】
図１０Ａは、本発明の第1実施形態に係る２次キャッシュメモリへのデータ格納処理を説明する図であり、図１０Ｂは、本発明の第1実施形態に係る２次キャッシュメモリのメモリデバイスへのデータ格納処理を説明する図である。
【００７８】
ＬＭ１３６には、２次キャッシュメモリ１３４の各メモリモジュール１３４ａへの書込み回数が記憶されている。ＣＣＰ１３１は、２次キャッシュメモリ１３４へのライト要求を受信した場合には、ＬＭ１３６に格納されている書込み回数に基づいて、メモリモジュール１３４ａへの書込み回数が均等になるようにデータの格納を制御する。ＣＣＰ１３１は、例えば、データを書き込むメモリボード１３１０を順番（１、２、３・・・ｎ）に決定し、図１０Ｂに示すようにメモリボード１３１０内においても、データを書き込む各メモリモジュール１３４ａを順番（１、２、３・・・、ｎ）に決定し、決定したメモリモジュール１３４ａにデータを格納するとともに、ＬＭ１３６に格納されている当該メモリモジュール１３４ａへの書込み回数を加算する。これによって、各メモリモジュール１３４ａへの書込み回数をほぼ均等にすることができる。
【００７９】
次に、図７乃至図９の処理によって実現されるデータの管理処理を具体的に説明する。まず、ライト対象のデータが一般的なデータである場合のデータの管理処理を説明する。
【００８０】
図１１は、本発明の第１実施形態に係るライト対象データの管理処理を説明する図である。ここで、図７乃至図９のステップ番号を適宜用いて説明する。
【００８１】
まず、ストレージシステム１０は、（１）に示すように、ライト対象のデータ（同図では、データＡという）を１次キャッシュメモリ１２４に２重書き、すなわち、２つの１次キャッシュメモリ１２４にそれぞれ同じデータを書き込む。具体的には、ストレージシステム１０のＣＨＡ１１０がライト要求を受信すると（ステップＳ１１）、通常のライト要求を２つの１次キャッシュ部１２０に送信する（ステップＳ１３）。各１次キャッシュ部１２０のＣＣＰ１２１は、通常のライト要求を受信したので（ステップＳ２１、Ｓ２２のＹｅｓ）、１次キャッシュメモリ１２４にライト対象のデータＡを格納する（ステップＳ２３）。これによって、２つの１次キャッシュメモリ１２４に同一のデータＡが格納されることとなる。次に、（２）に示すように、１次キャッシュメモリ１２４に格納したことを示すライト完了を要求元のＣＨＡ１１０に送信する（ステップＳ２４）。次に、（３）に示すように、ＣＨＡ１１０は、双方の１次キャッシュ部１２０からライト完了を受信すると（ステップＳ１４）、ライト要求元のホスト装置へライト処理完了通知を送信する（ステップＳ１７）。このように、１次キャッシュメモリ１２４にデータＡが２重書きされた時点でホスト装置へライト処理完了通知を行うので、ホスト装置の要求に対して迅速に応答することができる。
【００８２】
次に、（４）に示すように、２次キャッシュメモリ１３４に２重書き、すなわち、２つの２次キャッシュメモリ１３４にライト対象のデータＡをそれぞれ書き込む。具体的には、１次キャッシュ部１２０のＣＣＰ１２１が２次キャッシュ部１３０にライト要求を送信し（ステップＳ２８）、２次キャッシュ部１３０のＣＣＰ１３１が、ライト要求を受信し（ステップＳ４１）、データＡを２次キャッシュメモリ１３４に格納する（ステップＳ４３、４４）。
【００８３】
次に、（５）に示すように、ＣＣＰ１３１がライト完了を１次キャッシュ部１２０に送信する（ステップＳ４５）。次に、（６）に示すように、ＣＣＰ１２１が、一方の１次キャッシュ部１２０の１次キャッシュメモリ１２４からライト対象のデータＡを削除する処理を実行する（ステップＳ３０）。
【００８４】
これによって、一方の１次キャッシュメモリ１２４からライト対象のデータＡが削除されることとなり、１次キャッシュメモリ１２４のメモリ効率を向上することができる。この場合には、データＡについては、一方の１次キャッシュメモリ１２４と、２つの２次キャッシュメモリ１３４に格納されており、データ保持に関する信頼性を確保している。また、一方の１次キャッシュメモリ１２４にデータＡを格納しているので、当該データＡに対するリード要求に対しても迅速に応答することができる。
【００８５】
次に、一方の１次キャッシュ部１２０の１次キャッシュメモリ１２４からライト対象のデータを削除する処理（ステップＳ３０）を詳細に説明する。
【００８６】
図１２は、本発明の第１実施形態に係る１次キャッシュ部からのデータの削除を説明する図である。
【００８７】
ＣＣＰ１２１は、他のクラスタの１次キャッシュ部１２０のＣＣＰ１２１との間でそれぞれの１次キャッシュメモリ１２４のメモリ使用量の情報を相互に交換している。そして、ＣＣＰ１２１は、相互に交換しているメモリ使用量の情報に基づいて、メモリ使用量の多いほうから、ライト対象のデータを消去するようにしている。例えば、図１２に示すように、第１クラスタ１０１ａの１次キャッシュメモリ１２４の使用量が６５パーセントで、第２クラスタ１０１ｂの１次キャッシュメモリ１２４の使用量が７０パーセントである場合には、メモリ使用量の多い第２クラスタ１０１の１次キャッシュメモリ１２４からライト対象のデータが消去される。
【００８８】
次に、ライト対象のデータがシーケンシャル処理データである場合のデータの管理処理を説明する。
【００８９】
図１３は、本発明の第１実施形態に係るシーケンシャル処理データの管理処理を説明する図である。ここで、図７乃至図９のステップ番号を適宜用いて説明する。
【００９０】
まず、ストレージシステム１０は、（１）に示すように、ライト対象のデータ（同図では、データＢという）を１次キャッシュメモリ１２４に２重書き、すなわち、２つの１次キャッシュメモリ１２４にそれぞれ書き込む。具体的には、ストレージシステム１０のＣＨＡ１１０がライト要求を受信すると（ステップＳ１１）、通常のライト要求を２つの１次キャッシュ部１２０に送信する（ステップＳ１３）。各１次キャッシュ部１２０のＣＣＰ１２１は、通常のライト要求を受信したので（ステップＳ２１、Ｓ２２のＹｅｓ）、１次キャッシュメモリ１２４にライト対象のデータＢを格納する（ステップＳ２３）。これによって、２つの１次キャッシュメモリ１２４に同一のデータＢが格納されることとなる。次に、（２）に示すように、１次キャッシュメモリ１２４に格納したことを示すライト完了を要求元のＣＨＡ１１０に送信する（ステップＳ２４）。次に、（３）に示すように、ＣＨＡ１１０は、双方の１次キャッシュ部１２０からライト完了を受信すると（ステップＳ１４）、ライト要求元のホスト装置へライト処理完了通知を送信する（ステップＳ１７）。このように、１次キャッシュメモリ１２４にデータＡが２重書きされた時点でホスト装置へライト処理完了通知を行うので、ホスト装置の要求に対して迅速に応答することができる。
【００９１】
ＣＨＰ１１１は、（４）に示すように、ライト対象のデータのデータ容量や、書き込むブロック（トラックともいう）の情報を送信する。
【００９２】
次に、（５）に示すように、ＣＣＰ１２１は、書込みブロックの情報に基づいて、ライト対象のデータＢがシーケンシャル処理データであるか否かを判定し（ステップＳ２６）、シーケンシャル処理データであると判定した場合（ステップＳ２６のＹｅｓ）には、（６）に示すように、ＣＣＰ１３１に、２次キャッシュメモリ１３４へは書込み不要であることを示すＨＤＤ部２００への書込み要求を送信する（ステップＳ３４）。
【００９３】
次に、（７）に示すように、ＣＣＰ１３１は、２次キャッシュメモリ１２４にデータＢの書込みは行わず、当該データＢをＨＤＤ部２００に書き込ませるライト要求をＤＫＡ１４０に送信する（ステップＳ４６）。次に、（８）に示すように、ＤＫＡ１４０がライト要求を受けて、ＨＤＤ部２００にデータＢを格納する。
【００９４】
このように、データがシーケンシャル処理データであると判断される場合には、２次キャッシュメモリ１３４へのデータの書込みが行われないので、２次キャッシュメモリ１３４の消耗を抑え、寿命を効果的に延長することができる。
【００９５】
次に、１つの１次キャッシュ部１２０へ障害が発生した際の１次キャッシュ部障害時処理を説明する。
【００９６】
図１４Ａは、本発明の第１実施形態に係る１次キャッシュ部障害時の処理を説明する図である。ここで、図７乃至図９のステップ番号を適宜用いて説明する。
【００９７】
ＣＨＡ１１０のＣＨＰ１１１は、２つのクラスタの１次キャッシュ部１２０と通信可能であり、それぞれの１次キャッシュ部１２０のいずれかに障害が発生したことを検出することができる。そして、障害が発生したことを検出した以降においては、ストレージシステム１０は、次のように動作する。
【００９８】
すなわち、ＣＨＰ１１１は、ライト要求を受信した場合（ステップＳ１１のＹｅｓ）には、１次キャッシュ部１２０に障害が発生しているので（ステップＳ１２のＮｏ）、障害時Ｗｒｉｔｅ要求を障害が発生していない１次キャッシュ部１２０に送信する（ステップＳ１５）。そして、ライト要求を受信した１次キャッシュ部１２０は、障害時のライト要求であると判定し（ステップＳ２２のＮｏ）、ライト要求を第１クラスタ１０１ａ及び第２クラスタ１０１ｂのそれぞれの２次キャッシュ部１３０に送信する（ステップＳ３１）。これにより、それぞれの２次キャッシュ部１３０のＣＣＰ１３１は、２次キャッシュメモリ１３４へのライト要求であるので（ステップＳ４２のＹｅｓ）、データを格納する２次キャッシュメモリ１３４のメモリモジュール１３４ａを決定し（ステップＳ４３）、決定した２次キャッシュメモリ１３４のメモリモジュール１３４ａにライト対象のデータを格納する（ステップＳ４４）。
【００９９】
その後、ＣＣＰ１３１が、ライト完了を要求元の１次キャッシュ部１２０のＣＣＰ１２１に送信し（ステップＳ４５）、ＣＣＰ１２１が、２つの２次キャッシュ部１３０からライト完了を受信すると（ステップＳ３２のＹｅｓ）、２つの２次キャッシュ部１３０に同じデータが格納されたことを示しているので、ＣＣＰ１２１は、ライト完了をライト要求元のＣＨＡ１１０のＣＨＰ１１１に送信し（ステップＳ３３）、ＣＨＰ１１１は、ライト処理完了通知をホスト装置に送信する（ステップＳ１７）。
【０１００】
このように、１次キャッシュ部１２０の１つに障害が発生した場合には、１つの１次キャッシュメモリ１２４と、２つの２次キャッシュメモリ１３４にライト対象のデータを書き込んだ後に、ホスト装置へライト処理完了通知を行う。このため、１次キャッシュ部１２０に障害が発生しても、２次キャッシュ部１３０に格納させた後にライト処理完了通知をホスト装置に送信できるので、ＨＤＤ部２００への格納を待つ必要がなく、迅速にホスト装置からのライト要求に対応することができる。
【０１０１】
次に、１つの２次キャッシュ部１３０へ障害が発生した際の２次キャッシュ部障害時処理を説明する。
【０１０２】
図１４Ｂは、本発明の第１実施形態に係る２次キャッシュ部障害時の処理を説明する図である。ここで、図７乃至図９のステップ番号を適宜用いて説明する。
【０１０３】
２次キャッシュ部１３０の１つに障害が発生した場合には、ＣＨＰ１１１は、通常と変わりなく、各クラスタ１０１ａ、１０１ｂのＣＣＰ１２１にライト要求を送信する（ステップＳ１３）。各クラスタ１０１ａ、１０１ｂのＣＣＰ１２１は、ライト要求を受信すると（ステップＳ２１）、それぞれの１次キャッシュメモリ１２４にライト対象のデータを格納し（ステップＳ２３）、ライト完了をＣＨＰ１１１に送信する（ステップＳ２４）。
【０１０４】
ＣＨＰ１１１は、双方の１次キャッシュ部１２０からライト完了を受信した場合（ステップＳ１４のＹｅｓ）に、ホスト装置へライト処理完了通知を送信する（ステップＳ１７）。
【０１０５】
したがって、２次キャッシュ部１３０に障害が発生しても、ライト要求に対する応答には、影響が発生しない。
【０１０６】
次に、２次キャッシュメモリ１２４のメモリモジュール１３４ａに書き換え回数の制約がある場合における、メモリモジュール１３４ａのチェック処理を説明する。
【０１０７】
図１５は、本発明の第１実施形態に係るメモリモジュールチェック処理のフローチャートである。
【０１０８】
このメモリモジュールチェック処理は、例えば、所定の時間毎に実行される。２次キャッシュ部１３０のＣＣＰ１３１は、複数のメモリボード１３１０の内の１つのメモリボード１３１０を処理対象として決定し（ステップＳ５１）、次いで、そのメモリボード１３１０のメモリモジュール１３４ａの１つを処理対象として決定する（ステップＳ５２）。次いで、ＣＣＰ１３１は、処理対象のメモリモジュール１３４ａの書き換え回数をＬＭ１３６から取得し（ステップＳ５３）、所定のしきい値を超過しているか否かを判定する（ステップＳ５４）
この結果、しきい値を超過している場合には、当該メモリモジュール１３４ａの寿命が尽きる可能性が高いことを意味しているので、当該メモリモジュール１３４ａに格納されているデータを未使用のスペアメモリモジュール１３４ｓａに移行させ（ステップＳ５５）、交換前のメモリモジュール１３４ａを閉塞し、当該メモリモジュール１３４ａに代えてスペアメモリモジュール１３４ｓａが動作するように、ＬＭ１３６の制御情報に反映させる（ステップＳ５６）。これによって、寿命の尽きる可能性が高いメモリモジュール１３４ａのデータをスペアメモリモジュール１３４ｓａに引き継いで処理に利用することができる。
【０１０９】
一方、しきい値を超過していない場合（ステップＳ５４のＮｏ）、又は、スペアメモリモジュール１３４ｓａと交換させた場合（ステップＳ５６）には、メモリボード１３１０の全てのメモリモジュール１３４ａに対して処理を行ったか否かを判定し（ステップＳ５７）、処理を行っていない場合には、上記ステップＳ５２〜Ｓ５７を再度実行する。
【０１１０】
一方、メモリボード１３１０の全てのメモリモジュール１３４ａに対して処理を行った場合には（ステップＳ５７のＹｅｓ）、メモリボード１３１０上の全てのメモリモジュール１３４ａに対して処理を行ったか否かを判定し（ステップＳ５８）、処理を行っていない場合には、上記ステップＳ５１〜Ｓ５８を再度実行する。
【０１１１】
そして、全てのメモリボード１３１０に対して処理を行った場合（ステップＳ５８のＹｅｓ）には、ＣＣＰ１３１は、例えば、図示しない管理装置等に対してモジュールチェックの情報を出力する。モジュールチェックの情報には、例えば、交換したメモリモジュール１３４ａを搭載したメモリボード１３１０の識別情報や、交換したメモリモジュール１３４ａの識別情報が含まれている。このモジュールチェックの情報に基づいて、ストレージシステム１０の管理者は、該当するメモリボード１３１０をストレージシステム１０から抜去して、該当するメモリモジュール１３４ａを新たなメモリモジュール１３４ａに交換し、交換後に、再度ストレージシステム１０に装填することにより、再度メモリボード１３１０を利用することができるようになる。なお、ストレージシステム１０が電源オン時にメモリボード１３１０を交換できる構成であれば、交換しているメモリボード１３１０以外のメモリボード１３１０によって２次キャッシュ部１３０の動作を継続させておくことができる。
【０１１２】
図１６は、本発明の第１実施形態に係るスペアメモリモジュールへのデータ移行を説明する図である。
【０１１３】
図１６に示すように、図１５に示す処理を実行すると、いずれかのメモリモジュール１３４ａの書き換え回数がしきい値を超えた場合には、そのメモリモジュール１３４ａのデータが同一のメモリボード１３１０上のスペアメモリモジュール１３４ｓａに移行される。したがって、メモリモジュール１３４ａが使用できなくなる前に、適切にデータを移行することができる。
【０１１４】
次に、ストレージシステム１０内に記憶されているデータを管理する処理を説明する。
【０１１５】
図１７Ａは、本発明の第１実施形態に係る１次キャッシュ部における１次キャッシュ整理処理のフローチャートである。
【０１１６】
この１次キャッシュ整理処理は、例えば、所定の時間毎に実行される。１次キャッシュ部１２０のＣＣＰ１２１は、１次キャッシュメモリ１２４からデータを取得し、当該データの付加情報フィールド３０２から参照履歴フィールド３０４を検出する（ステップＳ７１）。次いで、ＣＣＰ１２１は、参照履歴フィールド３０４の最新参照日時フィールド３０６から最新参照日時を取得し、最新参照日時から所定期間超過したか否かを判定し（ステップＳ７２）、所定期間超過した場合には、当該データが長期に亘ってアクセスされておらず、キャッシュしておくことによる効果が少ないと考えられるので、当該データを１次キャッシュメモリ１２４から削除する（ステップＳ７３）とともに、当該データを消去した旨の通知（データ消去通知）を２次キャッシュ部１３０に送信する（ステップＳ７４）。ここで、データ消去通知には、消去されたデータを示す識別情報と、当該データの参照履歴フィールド３０４の情報が含まれている。
【０１１７】
データ消去通知を送信した後、又はデータが所定期間超過していない場合（ステップＳ７２のＮｏ）には、次の処理対象のデータがあるか否かを判定し（ステップＳ７５）、次の処理対象のデータがある場合（ステップＳ７５のＹｅｓ）には、上記ステップＳ７１〜Ｓ７５の処理を引き続き行う一方、他のデータがない場合（ステップＳ７５のＮｏ）には、処理を終了する。この処理によって、１次キャッシュメモリ１２４からデータが削除され、２つの２次キャッシュメモリ１３４上に同一のデータが格納されている状態となる。
【０１１８】
この１次キャッシュ整理処理によると、キャッシュの効果があまりないと考えられるデータを削除でき、１次キャッシュメモリ１２４の空き容量を増加させることができる。
【０１１９】
図１７Ｂは、本発明の第１実施形態に係る２次キャッシュ部における１次キャッシュ整理処理のフローチャートである。
【０１２０】
２次キャッシュ部１３０において、ＣＣＰ１３１は、ＳＥＬ１３２を介して１次キャッシュ部１２０からデータ消去通知を受信したか否かを判定し（ステップＳ８１）、受信していない場合には、ステップＳ８１を繰り返し実行する。一方、データ消去通知を受信した場合（ステップＳ８１のＹｅｓ）には、ＣＣＰ１３１は、２次キャッシュメモリ１３４に格納されている同一のデータの付加情報フィールド３０２の参照履歴フィールド３０４をデータ消去通知に含まれている参照履歴フィールド３０４の情報に更新し（ステップＳ８２）、処理を終了する。これにより、２次キャッシュメモリ１３４のデータに対して、１次キャッシュメモリ１２４での当該データの参照履歴を適切に引き継ぐことができる。すなわち、１次キャッシュメモリ１２４における参照履歴を考慮したデータの管理を行うことができる。
【０１２１】
図１８は、本発明の第１実施形態に係る１次キャッシュ使用量調整処理のフローチャートである。
【０１２２】
この１次キャッシュ使用量調整処理は、例えば、所定の時間毎に実行される。１次キャッシュ部１２０のＣＣＰ１２１は、他のクラスタの１次キャッシュ部１２０のＣＣＰ１２１との間で通信を行うことにより、他の１次キャッシュ部１２０の１次キャッシュメモリ１２４の使用量情報を取得する（ステップＳ９１）。次いで、１次キャッシュ部１２０は、自己又は他のクラスタの第１キャッシュ部１２０の１次キャッシュメモリ１２４の使用量が所定の制限量（例えば、全容量のうちの８０パーセント）を超過しているか否かを判定する（ステップＳ９２）。制限量を超過していると判定した場合には、ＣＣＰ１２１は、データ削除を行う対象のクラスタを決定し（ステップＳ９３）、当該クラスタの１次キャッシュメモリ１２４に格納されているデータから消去するデータを決定する（ステップＳ９４）。消去するデータとしては、例えば、所定の期間以上経過しているデータ、あるいは所定期間で参照回数の少ないデータとしてもよい。次いで、ＣＣＰ１２１は、決定したデータを１次キャッシュメモリ１２４から削除する（ステップＳ９５）とともに、当該データを消去した旨の通知（データ消去通知）を２次キャッシュ部１３０に送信する（ステップＳ９６）。ここで、データ消去通知には、消去されたデータを示す識別情報と、当該データの参照履歴フィールド３０４の情報が含まれている。
【０１２３】
次いで、対象のクラスタの１次キャッシュメモリ１２４の使用量が所定の下限値以下になったか否かを判定し（ステップＳ９７）、下限値以下でない場合には、上記ステップＳ９４〜Ｓ９７の処理を引き続き行ってデータを更に消去する一方、下限値以下である場合には、該当するクラスタの１次キャッシュメモリ１２４に十分な空き容量を確保したことを意味しているので、他の処理すべきクラスタについての処理が終了したかを判定し（ステップＳ９８）、処理すべき全てのクラスタの処理が終了していない場合（ステップＳ９８のＮｏ）には、ステップＳ９３〜Ｓ９８の処理を引き続き実行する一方、処理すべき全てのクラスタの処理が終了した場合（ステップＳ９８のＮｏ）には、処理対象の全てのクラスタの１次キャッシュメモリ１２４に十分な空き容量を確保したことを意味するので処理を終了する。このようにして、１次キャッシュメモリ１２４の空き容量を適切に増やすことができる。
【０１２４】
図１９は、本発明の第１実施形態に係る１次キャッシュ使用量調整処理を説明する図である。
【０１２５】
図１９においては、例えば、第１クラスタ１０１ａの１次キャッシュメモリ１２４のメモリ使用量が７０パーセントで、第２クラスタ１０１ｂの１次キャッシュメモリ１２４のメモリ使用量が８１パーセントとなっている。そして、各クラスタにおける１次キャッシュメモリ１２４の使用量制限量は、例えば、全容量の８０パーセントとなっており、データ残量下限値は、例えば、全容量の５０パーセントとなっている。
【０１２６】
このようなストレージシステム１０において、図１８に示す処理が実行されると、第２クラスタ１０１ｂの１次キャッシュメモリ１２４の使用量が８１パーセントであり、使用量制限量の８０パーセントを超えているために、各クラスタの１次キャッシュメモリ１２４のデータが削除される。そして、両クラスタの１次キャッシュメモリ１２４の使用量がともにデータ残量下限値の５０パーセント以下となるまでデータの削除が行われる。これによって、各クラスタの１次キャッシュメモリ１２４のメモリ使用量をともに５０パーセント以下に抑えることができる。
【０１２７】
次に、１次キャッシュメモリ１２４には格納されておらず、２つの２次キャッシュメモリ１３４に格納されているデータについての第１の２次キャッシュ整理処理を説明する。このようなデータは、図１７Ａ又は図１８の処理によって、１次キャッシュメモリ１２４から削除されたデータに相当する。
【０１２８】
図２０Ａは、本発明の第１実施形態に係る第１の２次キャッシュ整理処理のフローチャートである。
【０１２９】
この第１の２次キャッシュ整理処理は、例えば、所定の時間毎に実行される。２次キャッシュ部１３０のＣＣＰ１３１は、２次キャッシュメモリ１３４からデータの付加情報フィールド３０２のＨＤＤ書込みフラグ３０８に“０”が設定されているデータ、すなわち、ＨＤＤ書込みが行われていないデータを処理対象として検出し、更に、当該データの参照履歴フィールド３０４を検出する（ステップＳ１０１）。次いで、ＣＣＰ１３１は、参照履歴フィールド３０４の最新参照日時フィールド３０６から最新参照日時を取得し、最新参照日時から所定期間超過したか否かを判定する（ステップＳ１０２）。ここで、所定の期間は、例えば、１次キャッシュ部１２０での１次キャッシュメモリ１２４の整理処理における所定の期間よりは長い期間となっている。所定の期間は、例えば、数時間、数日、数週間等のいずれであってもよい。所定期間超過した場合には、当該データをＨＤＤ部２００に格納させる要求を行う（ステップＳ１０３）。なお、ＨＤＤ部２００には、付加情報フィールド３０２は格納されず、データアンドチェックコードフィールド３０１内のデータ及びチェックコードが格納される。そして、ＨＤＤ部２００への格納が終了した後に、ＣＣＰ１３１は、一方の２次キャッシュメモリ１３４から当該データを削除し（ステップＳ１０４）、別のクラスタの２次キャッシュメモリ１３４に格納されている同一のデータの付加情報フィールド３０２の書込み日時フィールド３０３に、ＨＤＤ部２００に書き込んだ日時を格納し、参照履歴３０４フィールドをクリアし、ＨＤＤ書込みフラグフィールド３０８にＨＤＤに格納したことを示す“１”を設定することにより、付加情報の更新を行う（ステップＳ１０５）。
【０１３０】
付加情報を更新した後、又はデータが所定期間超過していない場合（ステップＳ１０２のＮｏ）には、次の処理対象データがあるか否かを判定し（ステップＳ１０６）、次の処理対象のデータがある場合（ステップＳ１０６のＹｅｓ）には、上記ステップＳ１０１〜Ｓ１０６の処理を引き続き行う一方、他の処理対象のデータがない場合（ステップＳ１０６のＮｏ）には、処理を終了する。この処理によって、最新の参照日から所定期間を超過すると、２次キャッシュメモリ１３４の１つからデータが削除され、１つの２次キャッシュメモリ１２４上と、ＨＤＤ部２００に同一のデータが格納されている状態となる。これによって、２次キャッシュメモリ１３４の空き容量を適切に増加させることができる。
【０１３１】
次に、１つの２次キャッシュメモリ１３４に格納されているとともに、ＨＤＤ部２００にも格納されているデータについての第２の２次キャッシュ整理処理を説明する。このようなデータは、例えば、図２０Ａの処理によって、２次キャッシュメモリ１３４の一方から削除されたデータに相当する。
【０１３２】
図２０Ｂは、ＨＤＤ部に格納されたデータに対する第２の２次キャッシュ整理処理のフローチャートである。
【０１３３】
この第２の２次キャッシュ整理処理は、例えば、所定の時間毎に実行される。２次キャッシュ部１３０のＣＣＰ１３１は、２次キャッシュメモリ１３４からデータの付加情報フィールド３０２のＨＤＤ書込みフラグ３０８に“１”が設定されているデータ、すなわち、ＨＤＤ部２００への書込みが行われているデータを処理対象として検出し、更に、当該データの参照履歴フィールド３０４を検出する（ステップＳ１１１）。次いで、ＣＣＰ１３１は、参照履歴フィールド３０４の最新参照日時フィールド３０６から最新参照日時を取得し、最新参照日時から所定期間超過したか否かを判定する（ステップＳ１１２）。所定期間超過した場合には、ＨＤＤ部２００に格納してから所定期間以内参照されなかったことを意味しているので、ＣＣＰ１３１は、当該データを２次キャッシュメモリ１３４から削除させる（ステップＳ１１３）。
【０１３４】
データを削除した後、又はデータが所定期間超過していない場合（ステップＳ１１２のＮｏ）には、次の処理対象データがあるか否かを判定し（ステップＳ１１４）、次の処理対象のデータがある場合（ステップＳ１１４のＹｅｓ）には、上記ステップＳ１１１〜Ｓ１１４の処理を引き続き行う一方、他のデータがない場合（ステップＳ１１４のＮｏ）には、処理を終了する。この処理によって、ＨＤＤ部２００に格納された後、所定期間を超過しても参照されていないデータは、２次キャッシュメモリ１２４から削除されて、ＨＤＤ部２００のみに格納されている状態となる。これにより、２次キャッシュメモリ１２４の空き領域を増加させることができる。
【０１３５】
図２１は、本発明の第１実施形態に係る第２の２次キャッシュ整理処理を説明する図である。
【０１３６】
図２１に示すように、第１クラスタ１０１ａに格納されるとともに、ＨＤＤ部２００に格納されているデータＣが存在する場合において、データＣがＨＤＤ部２００に格納された後、所定の期間に参照されなければ、図２０Ｂに示す処理によって、２次キャッシュメモリ１３４から消去されることとなる。これにより、２次キャッシュメモリ１２４の空き領域を適切に増加させることができる。
【０１３７】
図２２は、本発明の第１実施形態に係るデータの管理処理を説明する図である。ここで、図１７Ａ、図１７Ｂ、図１８、図２０Ａ及び図２０Ｂのステップ番号を適宜用いて説明する。
【０１３８】
まず、ストレージシステム１０においては、（１）に示すように、ＣＣＰ１２１が各クラスタ間で１次キャッシュメモリ１２４の使用量を管理している。そして、（２）に示すように、いずれかの１次キャッシュメモリ１２４の使用量が所定の制限値を超過した場合や、或いは、所定期間を超過しても参照されないデータがある場合には、ＣＣＰ１２１は、所定期間を超過しても参照されないデータ（同図では、データＢという）を消去する（ステップＳ７３、ステップＳ９５）。そして、（３）に示すように、ＣＣＰ１２１は、データ消去通知をＣＣＰ１３１に送信し（ステップＳ７４、ステップＳ９６）、ＣＣＰ１３１は、データ消去通知に含まれている１次キャッシュメモリ１２４での参照履歴によって、２次キャッシュメモリ１３４の同一のデータの参照履歴を更新する（ステップＳ８２）。この状態では、２つの２次キャッシュメモリ１３４に、データＢが格納されることとなる。
【０１３９】
更に期間が経過しても、データＢが参照されない場合には、（４）に示すように、ＣＣＰ１３１は、データＢを２次キャッシュメモリ１３４から消去する（ステップＳ１０４）とともに、（５）に示すように、データＢをＨＤＤ部２００に格納する（ステップＳ１０３）。
【０１４０】
一方、（６）に示すように、ＨＤＤ部２００に既に格納されているとともに、１つの２次キャッシュメモリ１３４に格納されているデータＣについては、ＨＤＤ部２００に格納された後、所定の期間が経過しても参照されていない場合には、ＣＣＰ１３１が２次キャッシュメモリ１３４から削除する（ステップＳ１１３）。
【０１４１】
図２３は、本発明の第１実施形態に係る２次キャッシュ使用量調整処理のフローチャートである。
【０１４２】
この２次キャッシュ使用量調整処理は、例えば、所定の時間毎に実行される。２次キャッシュ部１３０のＣＣＰ１３１は、他のクラスタの２次キャッシュ部１３０のＣＣＰ１３１との間で通信を行うことにより、他の２次キャッシュ部１３０の２次キャッシュメモリ１３４の使用量情報を取得する（ステップＳ１２１）。次いで、２次キャッシュ部１３０のＣＣＰ１３１は、自己又は他のクラスタの第２キャッシュ部１３０の２次キャッシュメモリ１３４の使用量が所定の制限量（例えば、全容量の８０パーセント）を超過しているか否かを判定する（ステップＳ１２２）。制限量を超過していると判定した場合には、ＣＣＰ１３１は、データ削除を行う対象のクラスタを決定し（ステップＳ１２３）、当該クラスタの２次キャッシュメモリ１３４に格納されているデータから消去するデータを決定する（ステップＳ１２４）。消去するデータとしては、例えば、所定の期間以上経過しているデータ、あるいは所定期間で参照回数の少ないデータとしてもよい。次いで、決定したデータをＨＤＤ部２００に格納させる要求を行う（ステップＳ１２５）。なお、ＨＤＤ部２００には、付加情報フィールド３０２は格納されず、データアンドチェックコードフィールド３０１のデータ及びチェックコードが格納される。そして、ＨＤＤ部２００への格納が終了した後に、ＣＣＰ１３１は、一方の２次キャッシュメモリ１３４から決定したデータを削除し（ステップＳ１２６）、別のクラスタの２次キャッシュメモリ１３４に格納されている同一のデータの付加情報フィールド３０２の書込み日時フィールド３０３に、ＨＤＤ部２００に書き込んだ日時を格納し、参照履歴３０４フィールドをクリアし、ＨＤＤ書込みフラグフィールド３０８に“１”を設定することにより、付加情報の更新する（ステップＳ１２７）。
【０１４３】
次いで、対象のクラスタの２次キャッシュメモリ１３４の使用量が所定の下限値以下になったか否かを判定し（ステップＳ１２８）、下限値以下でない場合には、上記ステップＳ１２４〜Ｓ１２８の処理を引き続き行ってデータを更に消去する一方、下限値以下である場合には、該当するクラスタの２次キャッシュメモリ１３４に十分な空き容量を確保したことを意味しているので、他の処理すべきクラスタについての処理が終了したかを判定し（ステップＳ１２９）、処理すべき全てのクラスタの処理が終了していない場合（ステップＳ１２９のＮｏ）には、ステップＳ１２３〜Ｓ１２９の処理を引き続き実行する一方、処理すべき全てのクラスタの処理が終了した場合（ステップＳ１２９のＮｏ）には、処理対象の全てのクラスタの２次キャッシュメモリ１３４に十分な空き容量を確保したことを意味するので処理を終了する。
【０１４４】
図２４は、本発明の第１実施形態に係る２次キャッシュ使用量調整処理を説明する図である。
【０１４５】
図２４においては、例えば、第１クラスタ１０１ａの２次キャッシュメモリ１３４のメモリ使用量が８１パーセントで、第２クラスタ１０１ｂの２次キャッシュメモリ１３４のメモリ使用量が６５パーセントとなっている。そして、使用量制限量は、例えば、全容量の８０パーセントとなっており、データ残量下限値は、例えば、全容量の４０パーセントとなっている。
【０１４６】
このようなストレージシステム１０において、図２３に示す処理が実行されると、第１クラスタ１０１ａの２次キャッシュメモリ１３４の使用量が８１パーセントであり、使用量制限量の８０パーセントを超えているために、各クラスタの２次キャッシュメモリ１３４のデータが削除される。そして、両クラスタの２次キャッシュメモリ１３４の使用量がともにデータ残量下限値の４０パーセント以下となるまでデータの削除が行われる。これによって、各クラスタの２次キャッシュメモリ１３４のメモリ使用量をともに４０パーセント以下に抑えることができる。
【０１４７】
次に、本発明の第１実施形態に係るストレージシステム１０におけるリード要求受信時の処理を説明する。
【０１４８】
図２５は、本発明の第1実施形態に係るチャネルアダプタにおけるリード要求受信時処理のフローチャートである。
【０１４９】
ＣＨＡ１１０において、ＣＨＰ１１１が信号変換／データ処理部１１２を介してホスト装置からＲｅａｄ要求（リード要求）を受信したか否かを判定し（ステップＳ１３１）、受信していない場合には、ステップＳ１３１を繰り返し実行する。一方、リード要求を受信した場合には、リード要求を第１クラスタ１０１ａ及び／又は第２クラスタ１０１ｂの１次キャッシュ部１２０に送信する（ステップＳ１３２）。
【０１５０】
そして、ＣＨＰ１１１が、１次キャッシュ部１２０からリード対象のデータ（リードデータ）を受信したか否かを判定し（ステップＳ１３３）、リードデータを受信するまでステップＳ１３３を繰り返し実行する。そして、ＣＨＰ１１１は、１次キャッシュ部１２０からリードデータを受信した場合には、信号変換／データ処理部１１２を介してリードデータをリード要求元のホスト装置へ送信する（ステップＳ１３４）。これによって、ホスト装置では、リードデータを用いて各種処理を行うことができる。
【０１５１】
図２６Ａは、本発明の第1実施形態に係る１次キャッシュ部におけるリード要求受信時処理のフローチャートである。
【０１５２】
１次キャッシュ部１２０において、ＣＣＰ１２１がＳＥＬ１２２を介してＣＨＡ１１０からリード要求を受信したか否かを判定し（ステップＳ１４１）、受信していない場合には、ステップＳ１４１を繰り返し実行する。一方、リード要求を受信した場合には、ＣＣＰ１２１は、リード要求に含まれているデータの識別情報に基づいて、１次キャッシュメモリ１２４にリードデータが格納されているか否か、すなわちキャッシュされているか否かを判定する（ステップＳ１４２）。１次キャッシュメモリ１２４にリードデータが格納されているか否かは、ＬＭ１２６において、リード要求に含まれているデータ識別情報に１次キャッシュメモリ１２４のアドレスが対応付けられて格納されているかによって判定できる。なお、１次キャッシュメモリ１２４に格納されているデータのデータアンドチェックコードフィールド３０１内のデータ識別情報を参照して、リードデータが格納されているか否かを判定してもよい。
【０１５３】
この結果、リードデータがキャッシュされている場合には、ＣＣＰ１２１は、１次キャッシュメモリ１２４からリードデータを取得し（ステップＳ１４３）、１次キャッシュメモリ１２４に格納されているリードデータの参照履歴を更新する（ステップＳ１４４）。具体的には、ＣＣＰ１２１は、１次キャッシュメモリ１２４に格納されているリードデータの付加情報フィールド３０２の参照回数フィールド３０５の参照回数に１を加算するとともに、最新参照日時フィールド３０６に現在の日時を格納する。
【０１５４】
次いで、ＣＣＰ１２１は、リードデータを要求元のＣＨＡ１１０に送信し（ステップＳ１４５）、処理を終了する。
【０１５５】
一方、１次キャッシュメモリ１２４にリードデータがキャッシュされていない場合（ステップＳ１４２のＮｏ）には、リード要求を第１クラスタ１０１ａ及び／又は第２クラスタ１０１ｂの２次キャッシュ部１３０に送信する（ステップＳ１４６）。そして、ＣＣＰ１２１が、２次キャッシュ部１３０からリードデータを受信したか否かを判定し（ステップＳ１４７）、リードデータを受信するまでステップＳ１４７を繰り返し実行する。そして、ＣＣＰ１２１は、２次キャッシュ部１３０からリードデータを受信した場合には、リードデータをＣＨＡ１１０に送信し（ステップＳ１４５）、処理を終了する。
【０１５６】
図２６Ｂは、本発明の第1実施形態に係る２次キャッシュ部におけるリード要求受信時処理のフローチャートである。
【０１５７】
２次キャッシュ部１３０において、ＣＣＰ１３１がＳＥＬ１３２を介して１次キャッシュ部１２０からリード要求を受信したか否かを判定し（ステップＳ１５１）、受信していない場合には、ステップＳ１５１を繰り返し実行する。一方、リード要求を受信した場合には、ＣＣＰ１３１は、リード要求に含まれているデータの識別情報に基づいて、２次キャッシュメモリ１３４にリードデータが格納されているか否か、すなわちキャッシュされているか否かを判定する（ステップＳ１５２）。２次キャッシュメモリ１３４にリードデータが格納されているか否かは、リード要求に含まれているデータ識別情報に２次キャッシュメモリ１３４のアドレスが対応付けられてＬＭ１３６に格納されているかによって判定できる。なお、２次キャッシュメモリ１３４に格納されているデータのデータアンドチェックコードフィールド３０１内のデータ識別情報を参照して、リードデータが格納されているか否かを判定してもよい。
【０１５８】
この結果、リードデータがキャッシュされている場合には、ＣＣＰ１３１は、２次キャッシュメモリ１３４からリードデータを取得し（ステップＳ１５３）、２次キャッシュメモリ１２４に格納されているリードデータの参照履歴を更新する（ステップＳ１５４）。具体的には、ＣＣＰ１３１は、２次キャッシュメモリ１３４に格納されているリードデータの付加情報フィールド３０２の参照回数フィールド３０５の参照回数に１を加算するとともに、最新参照日時フィールド３０６に現在の日時を格納する。
【０１５９】
次いで、ＣＣＰ１３１は、リードデータを１次キャッシュ部１２０に送信し（ステップＳ１５８）、処理を終了する。
【０１６０】
一方、２次キャッシュメモリ１３４にリードデータがキャッシュされていない場合（ステップＳ１５２のＮｏ）には、第１クラスタ１０１ａ及び／又は第２クラスタ１０１ｂのＤＫＡ１４０にリード要求を送信する（ステップＳ１５５）。これにより、ＤＫＡ１４０は、ＨＤＤ部２００からリードデータを読み出して、２次キャッシュ部１３０へ送信することとなる。
【０１６１】
ここで、ＣＣＰ１３１が、ＤＫＡ１４０からリードデータを受信したか否かを判定し（ステップＳ１５６）、リードデータを受信するまでステップＳ１５６を繰り返し実行する。そして、ＣＣＰ１３１は、ＤＫＡ１４０からリードデータを受信した場合（ステップＳ１５６のＹｅｓ）には、リードデータを２次キャッシュメモリ１３４に格納する（ステップＳ１５７）。本実施形態では、ＣＣＰ１３１は、２次キャッシュメモリ１３４のメモリ使用量の少ないクラスタ側の２次キャッシュメモリ１３４にリードデータを格納する。リードデータは、図２に示すデータ形式により格納される。具体的には、書込み日時フィールド３０３には、格納した日時が格納され、参照回数フィールド３０５には、“１”が格納され、最新参照日時フィールド３０６には、キャッシュされた日時が格納され、読出フラグ３０７には、下位側から格納されたことを示す“１”が格納される。このように、２次キャッシュメモリ１３４にキャッシュするので、データがキャッシュされている確率、すなわち、キャッシュヒット率を向上することができる。
【０１６２】
次いで、ＣＣＰ１３１は、ＤＫＡ１４０から受信したリードデータを１次キャッシュ部１２０に送信し（ステップＳ１５８）、処理を終了する。
【０１６３】
図２７は、本発明の第1実施形態に係るリード要求受信時処理を説明する図である。ここで、図２５、図２６Ａ及び図２６Ｂにおけるステップ番号を適宜用いることとする。
【０１６４】
図２７は、１次キャッシュメモリ１２４及び２次キャッシュメモリ１３４に格納されておらず、ＨＤＤ部２００に格納されているデータ（図中データＣ）に対するリード要求があった場合のリード要求受信時処理を説明する図である。
【０１６５】
ＨＤＤ部２００のみに格納されているデータに対するリード要求を受信すると、ＣＨＰ１１１から１次キャッシュ部１２０にリード要求が送信される（ステップＳ１３２）。そして、第１キャッシュメモリ１２４には、リードデータがキャッシュされていないので（ステップＳ１４２のＮｏ）、ＣＣＰ１２１がリード要求を２次キャッシュ部１３０に送信する（ステップＳ１４６）。
【０１６６】
２次キャッシュ部１３０の２次キャッシュメモリ１３４にも、リードデータがキャッシュされていないので（ステップＳ１５２のＮｏ）、ＤＫＡ１４０にリード要求が送信され（ステップＳ１５５）、ＤＫＡ１４０がＨＤＤ部２００からリードデータを読み出して、第２キャッシュ部１３０に送信する。リードデータを受信した２次キャッシュ部１３０のＣＣＰ１３１は、２次キャッシュメモリ１３４のメモリ使用量の少ないクラスタ、図２７では、第２クラスタ１０１ｂの２次キャッシュメモリ１３４にリードデータを格納し（ステップＳ１５７）、１次キャッシュ部１２０に送信する（ステップＳ１５８）。１次キャッシュ部１２０のＣＣＰ１２１は、受信したリードデータをＣＨＡ１１０に送信し（ステップＳ１４７、Ｓ１４５）、ＣＨＡ１１０のＣＨＰ１１１は、受信したリードデータを要求元のホスト装置へ送信する（ステップＳ１３３、Ｓ１３４）。
【０１６７】
次に、ＨＤＤ部２００から読み出されて２次キャッシュメモリ１３４に格納されたデータの管理に関する上位格納処理を説明する。この上位格納処理は、２次キャッシュメモリ１３４に格納されたデータを参照頻度に応じて、１次キャッシュメモリ１２４に格納させる処理である。
【０１６８】
図２８は、本発明の第1実施形態に係る上位格納処理のフローチャートである。
【０１６９】
この上位格納処理は、例えば、所定の時間毎に実行される。２次キャッシュ部１３０のＣＣＰ１３１は、２次キャッシュメモリ１３４からデータの付加情報フィールド３０２の読出フラグ３０７に“１”が設定されているデータ、すなわち、ＨＤＤ部２００から読み出されて２次キャッシュメモリ１３４に格納されたデータを処理対象として検出し、更に、当該データの参照履歴フィールド３０４を検出する（ステップＳ１６１）。次いで、ＣＣＰ１３１は、参照履歴フィールド３０４の参照回数フィールド３０５から参照回数を取得し、所定数以上であるかを判定する（ステップＳ１６２）。この結果、参照回数が所定数以上である場合には、当該データを１次キャッシュメモリ１２４にキャッシュする要求を第１キャッシュ部１２０に送信する（ステップＳ１６３）。これにより、キャッシュ要求を受信した第１キャッシュ部１２０のＣＣＰ１２１は、当該データを１次キャッシュメモリ１２４に格納することとなる。
【０１７０】
キャッシュ要求を送信した後、又はデータの参照回数が所定数以上ではない場合（ステップＳ１６２のＮｏ）には、他のデータがあるか否かを判定し（ステップＳ１６４）、他のデータがある場合（ステップＳ１６４のＹｅｓ）には、上記ステップＳ１６１〜Ｓ１６４の処理を引き続き行う一方、他のデータがない場合（ステップＳ１６４のＮｏ）には、処理を終了する。この処理によって、２次キャッシュメモリ１３４に格納され、所定数以上参照されたデータは、１次キャッシュメモリ１２４にも格納されることとなる。これによって、当該データに対するホスト装置からのリード要求時に応答を迅速に行うことができる。
【０１７１】
次に、停電時や、計画停止時におけるストレージシステム１０のデータ退避処理について説明する。
【０１７２】
図２９Ａは、本発明の第1実施形態に係るデータ退避処理のフローチャートである。
【０１７３】
１次キャッシュ部１２０のＣＣＰ１２１が、データ退避が必要か否かを判定する（ステップＳ１７１）。データ退避は、例えば、停電時や、計画停止時に行う必要がある。例えば、計画停止であれば、現在の時刻が計画停止を行う時間であるか否かによって判定できる。また、停電時であれば、外部の電源から供給される電力が停止したか否かによって判定できる。
【０１７４】
この結果、データ退避が必要でない場合（ステップＳ１７１のＮｏ）には、ステップＳ１７１を繰り返し実行する一方、データ退避が必要である場合（ステップＳ１７１のＹｅｓ）には、ＣＣＰ１２１が１次キャッシュメモリ１２４上の２次キャッシュメモリ１３４に反映させていないデータを検出し、２次キャッシュ部１３０に当該データについての２次キャッシュメモリ１３４へのライト要求を送信する（ステップＳ１７２）。これによって、当該データが２次キャッシュ部１３０のＣＣＰ１３１により２次キャッシュメモリ１３４に格納される。更に、ＣＣＰ１２１は、１次キャッシュメモリ１２４に格納しているデータについてのデータ構成情報をＬＭ１２６から取得して、データ構成情報を２次キャッシュメモリ１３４に格納させるためのライト要求を送信する（ステップＳ１７３）。これによって、当該データ構成情報が２次キャッシュ部１３０のＣＣＰ１３１により２次キャッシュメモリ１３４に格納される。
【０１７５】
その後、ＣＣＰ１２１は、データ退避が終了したことを、バッテリ４００に通知し、バッテリ４００によるバックアップを終了させる（ステップＳ１７４）。
【０１７６】
このように、１次キャッシュメモリ１２４のデータを２次キャッシュメモリ１３４に退避させることにより、データの消失を防げるので、１次キャッシュメモリ１２４のデータをＨＤＤ部２００に退避させる場合に比して、短時間でデータの退避を行うことができる。また、データを退避させた後には、１次キャッシュ部１２０及び２次キャッシュ部１３０にバッテリ４００により電力を供給しなくてもよい。このため、バッテリ４００の電力容量を抑えることができ、コストを低減することができる。
【０１７７】
図３０Ａ及び図３０Ｂは、本発明の第1実施形態に係るデータ退避処理を説明する図である。
【０１７８】
図３０Ａに示すように、ストレージシステム１０には、ライト要求に応じて、ライトデータ（図中データＢ）が２つの１次キャッシュ部１２０に格納されている。このような状態において、データ退避が必要であるとＣＣＰ１２１が判定すると（ステップＳ１７１のＹｅｓ）、１次キャッシュ部１２０のデータの退避が開始される。例えば、停電等が発生した場合には、図３０Ｂに示すように、バッテリ４００によって１次キャッシュ部１２０への電力が維持され、１次キャッシュメモリ１２４のデータが消失しないようになる。なお、２次キャッシュ部１３０の各機能部に対しても同様にバッテリ４００によって電力が維持されている。
【０１７９】
このような状態において、ＣＣＰ１２１は、１次キャッシュメモリ１２４上の２次キャッシュメモリ１３４に反映させていないデータＢを検出し、２次キャッシュ部１３０に２次キャッシュメモリ１３４へのデータＢについてのライト要求を送信する（ステップＳ１７３）。これによって、データＢが２次キャッシュ部１３０のＣＣＰ１３１により２次キャッシュメモリ１３４に格納される。なお、ＬＭ１２６に格納されたデータ構成情報も同様に２次キャッシュメモリ１３４に格納される。
【０１８０】
次に、電源を復旧させた際のストレージシステム１０における電源復旧時処理を説明する。
【０１８１】
図２９Ｂは、本発明の第１実施形態に係る電源復旧時処理のフローチャートである。
【０１８２】
本実施形態では、電源復旧時においては、１次キャッシュ修復モードと２次キャッシュ開始モードとの２つのいずれで行うかを、設定できるようになっている。
【０１８３】
１次キャッシュ修復モードは、データ退避時に１次キャッシュメモリ１２４に格納されていたデータを修復させた後にホスト装置等からの要求を受け付けるモードであり、２次キャッシュ開始モードは、１次キャッシュメモリ１２４にデータを修復させずにホスト装置等からの要求の受け付けるモードである。
【０１８４】
１次キャッシュ部１２０のＣＣＰ１２１は、１次キャッシュ修復モードの設定がされているか、それとも２次キャッシュ開始モードの設定がされているかを判定する（ステップＳ１８１）。その結果、１次キャッシュ修復モードの設定がされている場合には、ＣＣＰ１２１がＣＣＰ１３１へデータ退避時にＬＭ１２６から２次キャッシュメモリ１３４に格納したデータ構成情報と、当該データ構成情報で管理されているデータ、すなわち、１次キャッシュメモリ１２４に格納されていたデータとを要求し（ステップＳ１８２）、ＣＣＰ１３１からデータ構成情報とデータとを受信し（ステップＳ１８３）、ＣＣＰ１２１が各データを１次キャッシュメモリ１２４に格納し（ステップＳ１８４）、処理を終了する。これによって、１次キャッシュメモリ１２４には、データ退避時に存在していたデータが存在することとなる。このため、ホスト装置からのリード要求に対応するデータが１次キャッシュメモリ１２４にキャッシュされている確率を退避時と同じ状態に復旧することができる。
【０１８５】
一方、２次キャッシュ開始モードが設定されている場合（ステップＳ１８１のＮｏ）には、そのまま処理を終了する。これにより、ホスト装置等からの要求の受け付けを迅速に開始することができる。
【０１８６】
図３０Ｃは、本発明の第１実施形態に係る１次キャッシュ修復（レジューム）モードを説明する図である。
【０１８７】
１次キャッシュ修復モードでは、図３０Ｃに示すように、データ退避時に１次キャッシュ部１２０に存在していたデータＢを１次キャッシュ部１２０に格納させ（ステップＳ１８４）、その後、ホスト装置等からの要求を受け付ける処理を開始する。
【０１８８】
図３０Ｄは、本発明の第１実施形態に係る２次キャッシュ開始モードを説明する図である。
【０１８９】
２次キャッシュ開始モードでは、図３０Ｄに示すように、データ退避時に１次キャッシュ部１２０に存在していたデータＢを１次キャッシュ部１２０に格納させずに、そのまま、ホスト装置等からの要求を受け付ける処理を開始する。これにより、ホスト装置等からの要求の受け付けを迅速に開始することができる。
【０１９０】
次に、本発明の第１実施形態に係るストレージシステム１０における遠隔地にデータをバックアップするいわゆるリモートコピーについて説明する。
【０１９１】
リモートコピーにおいては、まず、コピー元と、コピー先とでデータを一致させておき、コピー元のデータを記憶するストレージシステム１０において、当該データに対する更新が発生する度に、更新データ及び更新順序をジャーナルデータとして記憶するとともに、通信回線を介して記憶したジャーナルデータをコピー先に送信するようにしている。
【０１９２】
このようなリモートコピーにおいては、通信回線での障害が発生することが考えられるため、ストレージシステム１０においては、通信回線の障害が発生したとしても、ジャーナルデータを蓄えておくための記憶領域を用意する必要がある。従来のストレージシステムにおいては、ジャーナルデータを、１次キャッシュメモリ上の記憶領域又はＨＤＤ部の記憶領域に格納するようにしていた。例えば、１次キャッシュメモリ上の記憶領域にジャーナルデータを格納するようにした場合にあっては、１次キャッシュメモリの記憶容量が比較的小さいので、ジャーナルデータが大量となった場合には、ホスト装置からの要求を制限する等しなければならなかった。一方、ＨＤＤ部にジャーナルデータを格納するようにした場合にあっては、ＨＤＤ部の入出力処理速度の影響を受けてジャーナルデータの転送処理が遅くなるという問題があった。
【０１９３】
本実施形態によると、１次キャッシュメモリ１２４の容量不足による影響が発生せず、また、ＨＤＤ部の入出力速度の影響を適切に防止することができる。以下、この点について詳細に説明する。
【０１９４】
図３１Ａは、本発明の第1実施形態に係るチャネルアダプタにおけるジャーナル書込処理のフローチャートである。
【０１９５】
ＣＨＡ１１０において、ＣＨＰ１１１が信号変換／データ処理部１１２を介してホスト装置からリモートコピー対象のデータのライト要求を受信したか否かを判定し（ステップＳ１９１）、受信していない場合には、ステップＳ１９１を繰り返し実行する。一方、リモートコピー対象のデータのライト要求を受信した場合には、ジャーナルデータ書込要求を第１クラスタ１０１ａ及び第２クラスタ１０１ｂの１次キャッシュ部１２０に送信し（ステップＳ１９２）、処理を終了する。ジャーナルデータ書込要求には、データと当該データの更新順序が含まれている。
【０１９６】
図３１Ｂは、本発明の第１実施形態に係る１次キャッシュ部におけるジャーナル書込処理のフローチャートである。
【０１９７】
１次キャッシュ部１２０において、ＣＣＰ１２１がＳＥＬ１２２を介してＣＨＡ１１０からジャーナルデータ書込要求を受信したか否かを判定し（ステップＳ２０１）、受信していない場合には、ステップＳ２０１を繰り返し実行する。一方、ジャーナルデータ書込要求を受信した場合には、ＣＣＰ１２１は、１次キャッシュメモリ１２４のジャーナルデータを書き込むための記憶領域（ジャーナルボリューム）に空きがあるか否かを判定し（ステップＳ２０２）、空きがある場合には、ジャーナルデータを書込み（ステップＳ２０３）、処理を終了する。一方、空きがない場合には、ＣＣＰ１２１は、ジャーナルデータ書込要求を２次キャッシュ部１３０に送信し（ステップＳ２０４）、処理を終了する。
【０１９８】
図３１Ｃは、本発明の第１実施形態に係る２次キャッシュ部におけるジャーナル書込処理のフローチャートである。
【０１９９】
２次キャッシュ部１３０において、ＣＣＰ１３１がＳＥＬ１３２を介して１次キャッシュ部１２０からジャーナルデータ書込要求を受信したか否かを判定し（ステップＳ２１１）、受信していない場合には、ステップＳ２１１を繰り返し実行する。一方、ジャーナルデータ書込要求を受信した場合には、ＣＣＰ１３１は、２次キャッシュメモリ１３４のジャーナルデータを書き込むための記憶領域（ジャーナルボリューム）に空きがあるか否かを判定し（ステップＳ２１２）、空きがある場合には、ジャーナルデータを書込み（ステップＳ２１３）、処理を終了する。一方、空きがない場合には、ＣＣＰ１３１は、ジャーナルデータ書込要求をＤＫＡ１４０に送信し（ステップＳ２１４）、処理を終了する。これにより、ＤＫＡ１４０のＤＫＰ１４１が、ジャーナルデータをＨＤＤ部２００のジャーナルデータを書き込むための記憶領域（拡張ジャーナルボリューム）に格納する。
【０２００】
このように、本実施形態のストレージシステム１０によると、ジャーナルデータを１次キャッシュメモリ１２４に格納できない場合には、２次キャッシュメモリ１３４に格納し、２次キャッシュメモリ１３４にも格納できない場合には、ＨＤＤ部２００に格納することができる。
【０２０１】
図３２は、本発明の第1実施形態に係るチャネルアダプタにおけるリモートコピー処理のフローチャートである。
【０２０２】
ＣＨＡ１１０において、ＣＨＰ１１１が次にリモートコピー先に送信すべきジャーナルデータを読み出す要求を送信する（ステップＳ２２１）。なお、次に送信すべきジャーナルデータは、ジャーナルデータに含まれる更新順序に基づいて特定することができる。次いで、ＣＨＰ１１１は、１次キャッシュ部１２０からジャーナルデータを受信したか否かを判定し（ステップＳ２２２）、受信していない場合には、ステップＳ２２２を繰り返し実行する。一方、ジャーナルデータを受信した場合には、ジャーナルデータをコピー先に送信する（ステップＳ２２３）。
【０２０３】
次いで、ＣＨＰ１１１が、コピー先からジャーナルデータの受領完了を受信したか否かを判定し（ステップＳ２２４）、ジャーナルデータの受領完了を受信するまでステップＳ２２４を繰り返し実行する。そして、ＣＨＰ１１１は、コピー先から受領完了を受信した場合には、１次キャッシュ部１２０にジャーナルデータの消去要求を送信する（ステップＳ２２５）。
【０２０４】
図３３は、本発明の第1実施形態に係る１次キャッシュ部におけるリモートコピー処理のフローチャートである。
【０２０５】
１次キャッシュ部１２０において、ＣＣＰ１２１がＳＥＬ１２２を介してＣＨＡ１１０からジャーナルデータ要求を受信したか否かを判定し（ステップＳ２３１）、受信していない場合には、ステップＳ２３１を繰り返し実行する。一方、ジャーナルデータ要求を受信した場合には、ＣＣＰ１２１は、ジャーナルデータ要求に含まれているジャーナルデータの更新順序に基づいて、１次キャッシュメモリ１２４に対象のジャーナルデータが格納されているか否かを判定する（ステップＳ２３２）。
【０２０６】
この結果、ジャーナルデータが格納されている場合（ステップＳ２３２のＹｅｓ）には、ＣＣＰ１２１は、１次キャッシュメモリ１２４からジャーナルデータを取得し（ステップＳ２３３）、ジャーナルデータをＣＨＡ１１０に送信する（ステップＳ２３４）。そして、ＣＣＰ１２１は、ＣＨＡ１１０からジャーナルデータ消去要求を受信したか否かを判定し（ステップＳ２３５）、ジャーナルデータ消去要求を受信するまでステップＳ２３４を繰り返し実行する。そして、ＣＣＰ１２１は、ＣＨＡ１１０からジャーナルデータ消去要求を受信した場合には、当該消去要求に対応するジャーナルデータを１次キャッシュメモリ１２４から消去し（ステップＳ２３６）、処理を終了する。
【０２０７】
一方、対象のジャーナルデータが格納されていない場合（ステップＳ２３２のＮｏ）には、ＣＣＰ１２１がジャーナルデータ要求を２次キャッシュ部１３０に送信する（ステップＳ２３７）。次いで、ＣＣＰ１２１は、２次キャッシュ部１３０からジャーナルデータを受信したか否かを判定し（ステップＳ２３８）、受信していない場合には、ステップＳ２３８を繰り返し実行する。一方、ジャーナルデータを受信した場合には、ジャーナルデータをＣＨＡ１１０に送信する（ステップＳ２３９）。
【０２０８】
次いで、ＣＣＰ１２１が、ＣＨＡ１１０からジャーナルデータ消去要求を受信したか否かを判定し（ステップＳ２４０）、ジャーナルデータの消去要求を受信するまでステップＳ２４０を繰り返し実行する。そして、ＣＣＰ１２１は、ＣＨＡ１１０からジャーナルデータ消去要求を受信した場合には、２次キャッシュ部１３０にジャーナルデータの消去要求を送信する（ステップＳ２４１）。
【０２０９】
図３４Ａは、本発明の第1実施形態に係る２次キャッシュ部におけるリモートコピー処理のフローチャートである。
【０２１０】
２次キャッシュ部１３０において、ＣＣＰ１３１がＳＥＬ１３２を介して１次キャッシュ部１２０からジャーナルデータ要求を受信したか否かを判定し（ステップＳ２５１）、受信していない場合には、ステップＳ２５１を繰り返し実行する。一方、ジャーナルデータ要求を受信した場合には、ＣＣＰ１３１は、ジャーナルデータ要求に含まれているジャーナルデータの更新順序に基づいて、２次キャッシュメモリ１３４からジャーナルデータを取得し（ステップＳ２５２）、ジャーナルデータを１次キャッシュ部１２０に送信する（ステップＳ２５３）。そして、ＣＣＰ１３１は、１次キャッシュ部１２０からジャーナルデータ消去要求を受信したか否かを判定し（ステップＳ２５４）、ジャーナルデータ消去要求を受信するまでステップＳ２５４を繰り返し実行する。そして、ＣＣＰ１３１は、１次キャッシュ部１２０からジャーナルデータ消去要求を受信した場合には、当該消去要求に対応するジャーナルデータを２次キャッシュメモリ１３４から消去し（ステップＳ２５５）、処理を終了する。
【０２１１】
図３４Ｂは、本発明の第１実施形態に係るジャーナル移動処理のフローチャートである。
【０２１２】
このジャーナル移動処理は、例えば、所定の時間毎に実行される。２次キャッシュ部１３０において、ＣＣＰ１３１が２次キャッシュメモリ１３４にジャーナルデータを書き込むための記憶領域（ジャーナルボリューム）に空きがあるか否かを判定し（ステップＳ２６１）、空きがない場合には、ステップＳ２６１を繰り返し実行する。一方、空きがある場合には、ＣＣＰ１３１は、ＨＤＤ部２００にジャーナルデータがあるか否かを判定する（ステップＳ２６２）。ＨＤＤ部２００にジャーナルデータがあるか否かについては、例えば、ＨＤＤ部２００へジャーナルデータの書込要求を行った数と、ＨＤＤ部２００から読み出したジャーナルデータの数との差があるか否かによって把握できる。
【０２１３】
ＨＤＤ部２００にジャーナルデータがあると判定した場合（ステップＳ２６２のＹｅｓ）には、ＣＣＰ１３１は、ジャーナルデータ要求をＤＫＡ１４０に送信する（ステップＳ２６３）。これにより、ＤＫＡ１４０は、ＨＤＤ部２００から該当するジャーナルデータを読み出して、２次キャッシュ部１３０に送信することとなる。
【０２１４】
ＣＣＰ１３１は、ＤＫＡ１４０からジャーナルデータを受信し（ステップＳ２６４）、受信したジャーナルデータを２次キャッシュメモリ１３４に格納し（ステップＳ２６５）、処理を終了する。なお、ＨＤＤ部２００にジャーナルデータがないと判定した場合（ステップＳ２６２のＮｏ）には、処理を終了する。
【０２１５】
このジャーナル移動処理によって、ＨＤＤ部２００に格納されたジャーナルを適宜２次キャッシュメモリ１３４に格納することができる。このため、ジャーナルデータを送信する際には、ＨＤＤ部２００によるアクセス速度の影響を受けることない。このため、コピー先にジャーナルデータを迅速に送信することができる。
【０２１６】
図３５Ａは、本発明の第1実施形態に係るジャーナル書込処理及びリモートコピー処理を説明する図である。ここで、図３１Ａ乃至図３４Ｂのステップ番号を適宜用いて説明する。
【０２１７】
まず、ストレージシステム１０は、（１）に示すように、リモートコピー対象のデータが更新される場合（ステップＳ１９１）には、（２）に示すように更新データと更新順序とを含むジャーナルデータが、１次キャッシュメモリ１２４に２重書きされる（ステップＳ２０３）。一方、１次キャッシュメモリ１２４に書き込まれたジャーナルデータは、（３）に示すように、１次キャッシュメモリ１２４から取り出され（ステップＳ２３３）、リモートコピー先に転送される（ステップＳ２２３）。
【０２１８】
図３５Ｂは、本発明の第1実施形態に係るジャーナル書込処理及びリモートコピー処理を説明する他の図であり、図３５Ａに示す状態から更にデータが更新される場合の状態の一例を説明する図である。
【０２１９】
図３５Ｂの（４）に示すように、図３５Ａに示す状態において、リモートコピー対象のデータが更新される場合（ステップＳ１９１）には、（５）に示すように更新データと更新順序とを含むジャーナルデータが、１次キャッシュメモリ１２４に２重書きされる（ステップＳ２０３）。
【０２２０】
そして、ジャーナルデータを１次キャッシュメモリ１２４のジャーナルボリューム１２０ｊに格納しきれなくなった場合には、（６）に示すように、２次キャッシュメモリ１３４のジャーナルボリューム１３０ｊにジャーナルデータが格納される（ステップＳ２１３）。
【０２２１】
一方、（７）に示すように、１次キャッシュメモリ１２４及び２次キャッシュメモリ１３４に格納されているジャーナルデータは、更新順序に従ってリモートコピー先に送信される（ステップＳ２３３、ステップＳ２５２、ステップＳ２２３）。
【０２２２】
そして、リモートコピー対象のデータがさらに更新される場合（ステップＳ１９１）において、ジャーナルデータを１次キャッシュメモリ１２４及び２次キャッシュメモリ１３４に格納しきれない場合には、（８）に示すように、ＨＤＤ部２００の拡張ジャーナルボリューム２００ｊにジャーナルデータが格納される（ステップＳ２１４）。
【０２２３】
ＨＤＤ部２００の拡張ジャーナルボリューム２００ｊに格納されたジャーナルデータは、（９）に示すように、２次キャッシュ部１３０のジャーナルボリューム１３０ｊに逐次移動され（ステップＳ２６５）、リモートコピー先に送信される（ステップＳ２５３、ステップＳ２２３）。
【０２２４】
図３５Ｃは、本発明の第１実施形態に係るジャーナルデータの格納状態の一例を示す図である。
【０２２５】
図３５Ｃに示すように、１次キャッシュメモリ１２４及び２次キャッシュメモリ１３４のジャーナルボリューム１２０ｊ，１３０ｊにジャーナルデータを格納できない場合には、それ以降の更新順序（例えば、ｎ＋１番目以降）のジャーナルデータは、ジャーナルボリューム１２０ｊ、１３０ｊに空きができない限り、ＨＤＤ部２００の拡張ジャーナルボリューム２００ｊに格納されることとなる。このため、ジャーナルボリューム１２０ｊ、１３０ｊに格納しきれない場合であっても支障なく、ジャーナルデータを蓄積することができる。
【０２２６】
＜第１実施形態：第１変形例＞
次に、本発明の第１実施形態の第１変形例に係るストレージシステムを説明する。
【０２２７】
図３６は、本発明の第1実施形態の第１変形例に係るストレージシステムを説明する図である。なお、第１実施形態のストレージシステムと同様な部分には同一の番号を付して重複する説明を省略する。
【０２２８】
本変形例に係るストレージシステム１０は、第１実施形態に係るストレージシステム１０において、１次キャッシュ部１２０からＣＣＰ１２１を取り除き、２次キャッシュ部１３０からＣＣＰ１３１を取り除き、ＣＣＰ１２１及びＣＣＰ１３１が制御していた処理をＣＨＰ１１１がすべてを行うように置き換えたものである。このようにすると、ストレージシステム１０にＣＣＰ１２１及びＣＣＰ１３１を備えずとも、第１実施形態と同様な処理を実行することができ、コストを低減することができる。
【０２２９】
例えば、（１）に示すように、ＣＨＰ１１１がライト対象のデータ（同図では、データＡという）を１次キャッシュメモリ１２４に２重書き、すなわち、２つの１次キャッシュメモリ１２４にそれぞれ書き込む。次に、（２）に示すように、ＣＨＰ１１１が双方の１次キャッシュ部１２０の１次キャッシュメモリ１２４にデータを格納するとホスト装置へライト処理完了通知を送信する（ステップＳ１７）。このように、１次キャッシュメモリ１２４にデータＡが２重書きされた時点でホスト装置へライト処理完了通知を行うので、ホスト装置に対して迅速に応答することができる。次に、（３）に示すように、ＣＨＰ１１１が２つの２次キャッシュメモリ１３４にライト対象のデータＡをそれぞれ書き込む。次に、（４）に示すように、ＣＨＰ１１１が一方の１次キャッシュ部１２０の１次キャッシュメモリ１２４からライト対象のデータＡを削除する。
【０２３０】
これによって、一方の１次キャッシュメモリ１２４からライト対象のデータＡが削除されることとなり、１次キャッシュメモリ１２４のメモリ効率を向上することができる。この場合には、データＡについては、一方の１次キャッシュメモリ１２４と、２つの２次キャッシュメモリ１３４に格納されており、データ保持に関する信頼性を確保している。また、一方の１次キャッシュメモリ１２４にデータＡを格納しているので、当該データＡに対するリード要求に対しても迅速に応答することができる。
【０２３１】
＜第１実施形態：第２変形例＞
図３７は、本発明の第1実施形態の第２変形例に係るストレージシステムを説明する図である。なお、第１実施形態のストレージシステムと同様な部分には同一の番号を付して重複する説明を省略する。
【０２３２】
第２変形例に係るストレージシステムは、第１実施形態のストレージシステムと同様な構成を有しており、ＣＨＰ１１１及びＣＣＰ１２１の処理が多少異なっている。簡単に説明すると、第１実施形態では、１次キャッシュメモリ１２４に２重書きした時点で、ホスト装置にライト処理完了通知を送信するようにしていたものを、第２変形例においては、１つの１次キャッシュメモリ１２４に格納し、２次キャッシュメモリ１３４に２重書きした時点で、ホスト装置にライト処理完了通知を送信するようにしたものである。
【０２３３】
図３８は、本発明の第1実施形態の第２変形例に係るチャネルアダプタにおけるライト要求受信時処理のフローチャートである。なお、図７に示す処理と同様な部分には同一の番号を付している。ここでは、図７のフローチャートと異なる部分について説明することとする。
【０２３４】
ステップＳ１１において、ライト要求を受信した場合には、ＣＨＰ１１１は、１つの１次キャッシュ部１２０に対してライト要求を送信し（ステップＳ２７１）、１つの１次キャッシュ部１２０からライト完了を受信したか否かを判定し（ステップＳ２７２）、ライト完了を受信するまでステップＳ２７２を繰り返し実行する。そして、ＣＨＰ１１１は、１次キャッシュ部１２０からライト完了を受信した場合には、信号変換／データ処理部１１２を介してライト要求元のホスト装置へライト処理完了通知を送信する（ステップＳ１７）。
【０２３５】
図３９は、本発明の第1実施形態の第２変形例に係る１次キャッシュ部におけるライト要求受信時処理のフローチャートである。図８に示す処理と同様な部分には同一の番号を付している。ここでは、図８のフローチャートの異なる部分について説明することとする。
【０２３６】
２次キャッシュ部１３０の双方からライト完了を受信した場合（ステップＳ２９のＹｅｓ）には、ＣＣＰ１２１は、ＣＨＰ１１１にライト完了を送信する（ステップＳ２７３）。これによって、２つの２次キャッシュ部１３０に２重書きが行われた時点で、ＣＨＰ１１１にライト完了が送信されることとなる。
【０２３７】
図３７に戻り、図３７を図３８及び図３９のステップ番号を適宜用いて説明する。
【０２３８】
まず、ストレージシステム１０において、（１）に示すように、ＣＨＡ１１０が、ライト要求を受信する（ステップＳ１１）。ここで、ＣＨＰ１１１は、（２）に示すように、各クラスタの１次キャッシュメモリ１２４の使用量を逐次チェックしている。そして、（３）に示すように、一つの１次キャッシュ部１２０がＣＨＰ１１１からライト要求を受信し、ＣＣＰ１２１がライト対象のデータ（同図では、データＡという）を１つの１次キャッシュメモリ１２４に書き込む（ステップＳ２３）とともに、２次キャッシュ部１３０にライト要求を送信する（ステップＳ２８）ことにより、２つの２次キャッシュメモリ１３４にライト対象のデータＡをそれぞれ書き込ませる。
【０２３９】
次に、（４）に示すように、ＣＣＰ１２１が２次キャッシュメモリ１３４に格納したことを示すライト完了をＣＣＰ１３１から受信すると（ステップＳ２９のＹｅｓ）。次に、（５）に示すように、ＣＣＰ１２１は、ＣＨＰ１１１にライト完了を送信する（ステップＳ２７３）。
【０２４０】
ＣＣＰ１２１からライト完了を受信した場合（ステップＳ２７２のＹｅｓ）には、（６）に示すように、ＣＨＰ１１１は、ライト処理完了通知をホスト装置に送信する（ステップＳ１７）。
【０２４１】
この処理により、ライトデータを１つの１次キャッシュメモリ１２４に格納させ、２つの２次キャッシュメモリ１３４に格納させた後に、ホスト装置へライト処理完了通知が送信されることとなる。
【０２４２】
本変形例においては、ライトデータを１つの１次キャッシュメモリ１２４にのみ格納するので、１次キャッシュメモリ１２４の記憶資源を有効に利用することができるとともに、１次キャッシュメモリ１２４及び２つの２次キャッシュメモリ１３４にデータを格納するので、データの高信頼性を確保することができる。
【０２４３】
＜第２実施形態＞
図４０は、本発明の第２実施形態に係るストレージシステムを説明する図である。なお、第１実施形態のストレージシステムと同様な部分には同一の番号を付して重複する説明を省略する。第２実施形態に係るストレージシステムのライト要求受信時処理は、第１実施形態のストレージシステムの図９、図３８及び図３９に示す処理とわずかな差異があるだけであるので、図９、図３８及び図３９のステップ番号を適宜用いて、差異点を含めて以下説明する。
【０２４４】
第２実施形態に係るストレージシステムは、第１実施形態に係るストレージシステムにおいて、１次キャッシュ部１２０を１つ備えるようにしたものである。
【０２４５】
第２実施形態に係るストレージシステムにおいて、（１）に示すように、ＣＨＡ１１０が、ライト要求を受信する（ステップＳ１１）と、ＣＨＰ１１１は、１次キャッシュ部１２０にライト要求を送信する（ステップＳ２７１）。ライト要求を受信したＣＣＰ１２１が１次キャッシュメモリ１２４にライトデータを書き込む（ステップＳ２３）。
【０２４６】
次いで、ＣＣＰ１２１は、いずれか一方の２次キャッシュ部１３０にライト要求を送信し（ステップＳ２８）、ライト要求を受けた２次キャッシュ部１３０のＣＣＰ１３１が、２次キャッシュメモリ１３４にライトデータを書込み（ステップＳ４４）。次いで、ＣＣＰ１３１がライト完了をＣＣＰ１２１に送信し（ステップＳ４５）、ＣＣＰ１２１がライト完了をＣＨＰ１１１に送信する（ステップＳ２７３）。
【０２４７】
ＣＨＰ１１１は、ＣＣＰ１２１からライト完了を受信した場合（ステップＳ２７２のＹｅｓ）には、（２）に示すように、ライト処理完了通知をホスト装置に送信する（ステップＳ１７）。
【０２４８】
この処理により、ライトデータを１つの１次キャッシュメモリ１２４と、いずれか一方の２次キャッシュメモリ１３４に格納させた後に、ホスト装置へライト処理完了通知が送信されることとなる。
【０２４９】
第２実施形態によると、１次キャッシュメモリ１２４を複数備えずともよく、ストレージシステムのコストを低減することができる。また、１次キャッシュメモリ１２４及び２次キャッシュメモリ１３４にデータを格納するので、データの高信頼性を確保することができる。また、１次キャッシュメモリ１２４にデータが存在するので、リード要求に対する応答を迅速に行うことができる。
【０２５０】
第２実施形態においては、１次キャッシュメモリ１２４上のデータの整理処理や、２次キャッシュメモリ１３４上のデータの整理処理としては、第１実施形態における図１７Ａ、図１７Ｂ、図１８、図２０Ａ、図２０Ｂ、及び図２３と同様な処理を実行するようにしてもよい。
【０２５１】
＜第２実施形態：変形例＞
図４１は、本発明の第２実施形態に係るストレージシステムの変形例を説明する図である。なお、第２実施形態のストレージシステムと同様な部分には同一の番号を付して重複する説明を省略する。第２実施形態の変形例に係るストレージシステムのライト要求受信時処理は、第１実施形態のストレージシステムの図９、図３８及び図３９に示す処理とわずかな差異があるだけであるので、図９、図３８及び図３９のステップ番号を適宜用いて、差異点を含めて以下説明する。
【０２５２】
本変形例に係るストレージシステムは、第２実施形態に係るストレージシステムにおいて、複数の２次キャッシュ部１３０のＳＥＬ１３２と、複数のＣＨＡ１１０のＤＴＣ１１４とをバス１１５によって接続するようにしたものである。
【０２５３】
本変形例に係るストレージシステムでは、（１）に示すように、ＣＨＡ１１０が、ライト要求を受信する（ステップＳ１１）と、ＣＨＰ１１１は、１次キャッシュ部１２０及び一方の２次キャッシュ部１３０にライト要求を送信する（ステップＳ２７１）。ライト要求を受信した１次キャッシュ部１２０のＣＣＰ１２１が１次キャッシュメモリ１２４にライトデータを書き込む（ステップＳ２３）。また、ライト要求を受信した２次キャッシュ部１３０のＣＣＰ１３１が２次キャッシュメモリ１３４にライトデータを書き込む（ステップＳ４４）。
【０２５４】
次いで、ＣＣＰ１２１及びＣＣＰ１３１は、それぞれライト完了をＣＨＰ１１１に送信する（ステップＳ２７３、ステップＳ４５）。
【０２５５】
ＣＨＰ１１１は、ＣＣＰ１２１及びＣＣＰ１３１からライト完了を受信した場合（ステップＳ２７２のＹｅｓ）には、（２）に示すように、ライト処理完了通知をホスト装置に送信する（ステップＳ１７）。
【０２５６】
この処理により、ライトデータを１つの１次キャッシュメモリ１２４と、いずれか一方の２次キャッシュメモリ１３４に格納させた後に、ホスト装置へライト処理完了通知が送信されることとなる。本変形例によると、１次キャッシュ部１２０の障害が発生した場合にあっても、２つの２次キャッシュ部１３０にライトデータを格納することもできる。
【０２５７】
本変形例においても、１次キャッシュメモリ１２４上のデータの整理処理や、２次キャッシュメモリ１３４上のデータの整理処理としては、第１実施形態における図１７Ａ、図１７Ｂ、図１８、図２０Ａ、図２０Ｂ、及び図２３と同様な処理を実行するようにしてもよい。
【０２５８】
以上、本発明を一実施形態に基づいて説明したが、本発明は上述した実施形態に限られず、他の様々な態様に適用可能である。
【０２５９】
例えば、上記各実施形態おいて、記憶装置の一例としてＨＤＤ部２００を用いていたが、本発明はこれに限られず、例えば、ハードディスクドライブの少なくとも一部、又は全部を、ＤＶＤドライブ、磁気テープドライブ、フラッシュメモリデバイス等のデータを記憶可能な他の記憶デバイスに置き換えた記憶装置を用いるようにしてもよい。
【０２６０】
上記実施形態では、１次キャッシュメモリ１２４又は２次キャッシュメモリ１３４からデータを削除する際に、参照日時が古いデータを削除するようにしていたが、参照回数が少ないデータを削除するようにしてもよく、また、参照日時及び参照回数を組み合わせた条件に基づいてデータを削除するようにしてもよい。
【０２６１】
また、上記実施形態では、２次キャッシュメモリ１３４のデータを整理する際において、２次キャッシュメモリ１３４からデータを削除するようにしていたが、例えば、２次キャッシュメモリ１３４からデータを削除せずに、当該データが記憶された記憶領域を新たなデータを書き込む際に利用できる記憶領域として管理するようにしてもよい。例えば、２次キャッシュメモリ１３４の記憶領域が利用可能か否かを示す情報をＬＭ１３６に格納し、ＣＣＰ１３１がこの情報に基づいて管理することにより実現できる。このようにすると、２次キャッシュメモリ１３４が不揮発メモリである場合において、データを削除するためのデータを書込む動作を行わずに済むので、２次キャッシュメモリ１３４の寿命を長くすることができる。
【図面の簡単な説明】
【０２６２】
【図１】本発明の第１実施形態に係るストレージシステムの構成図である。
【図２】本発明の第1実施形態に係る１次キャッシュメモリ、及び２次キャッシュメモリに格納するデータの構造を示す図である。
【図３】図３Ａは、本発明の第1実施形態に係る１次キャッシュボードの構成の一例を示す図である。図３Ｂは、本発明の第1実施形態に係るコントローラボードの構成の一例を示す図である。
【図４】図４Ａは、本発明の第1実施形態に係るメモリボードの構成の一例を示す図である。図４Bは、本発明の第1実施形態に係るメモリ拡張ボードの構成の一例を示す図である。
【図５】図５Ａは、本発明の第1実施形態に係るストレージシステムの筐体の前面側の外観図である。図５Bは、本発明の第1実施形態に係るストレージシステムの筐体の背面側の外観図である。
【図６】本発明の第1実施形態に係るストレージシステムの筐体内のボードの状態を示す図である。
【図７】本発明の第1実施形態に係るチャネルアダプタにおけるライト要求受信時処理のフローチャートである。
【図８】本発明の第1実施形態に係る１次キャッシュ部におけるライト要求受信時処理のフローチャートである。
【図９】本発明の第1実施形態に係る２次キャッシュ部におけるライト要求受信時処理のフローチャートである。
【図１０】図１０Ａは、本発明の第1実施形態に係る２次キャッシュメモリへのデータ格納処理を説明する図である。図１０Ｂは、本発明の第1実施形態に係る２次キャッシュメモリのメモリデバイスへのデータ格納処理を説明する図である。
【図１１】本発明の第１実施形態に係るライト対象データの管理処理を説明する図である。
【図１２】本発明の第１実施形態に係る１次キャッシュ部のライト対象のデータの削除を説明する図である。
【図１３】本発明の第１実施形態に係るシーケンシャル処理データの管理処理を説明する図である。
【図１４】図１４Ａは、本発明の第１実施形態に係る１次キャッシュ部障害時の処理を説明する図である。図１４Ｂは、本発明の第１実施形態に係る２次キャッシュ部障害時の処理を説明する図である。
【図１５】本発明の第１実施形態に係るメモリモジュールチェック処理のフローチャートである。
【図１６】本発明の第１実施形態に係るスペアメモリモジュールへのデータ移行を説明する図である。
【図１７】図１７Ａは、本発明の第１実施形態に係る１次キャッシュ部における１次キャッシュ整理処理のフローチャートである。図１７Ｂは、本発明の第１実施形態に係る２次キャッシュにおける１次キャッシュ整理処理のフローチャートである。
【図１８】本発明の第１実施形態に係る１次キャッシュ使用量調整処理のフローチャートである。
【図１９】本発明の第１実施形態に係る１次キャッシュ使用量調整処理を説明する図である。
【図２０】図２０Ａは、本発明の第１実施形態に係る第１の２次キャッシュ整理処理のフローチャートである。図２０Ｂは、ＨＤＤ部に格納されたデータに対する第２の２次キャッシュ整理処理のフローチャートである。
【図２１】本発明の第１実施形態に係る２次キャッシュ整理処理を説明する図である。
【図２２】本発明の第１実施形態に係るデータの管理処理を説明する図である。
【図２３】本発明の第１実施形態に係る２次キャッシュ使用量調整処理のフローチャートである。
【図２４】本発明の第１実施形態に係る２次キャッシュ使用量調整処理を説明する図である。
【図２５】本発明の第1実施形態に係るチャネルアダプタにおけるリード要求受信時処理のフローチャートである。
【図２６】図２６Ａは、本発明の第1実施形態に係る１次キャッシュ部におけるリード要求受信時処理のフローチャートである。図２６Ｂは、本発明の第1実施形態に係る２次キャッシュ部におけるリード要求受信時処理のフローチャートである。
【図２７】本発明の第1実施形態に係るリード要求受信時処理を説明する図である。
【図２８】本発明の第1実施形態に係る上位格納処理のフローチャートである。
【図２９】図２９Ａは、本発明の第1実施形態に係るデータ退避処理のフローチャートである。図２９Ｂは、本発明の第１実施形態に係る電源復旧時処理のフローチャートである。
【図３０】図３０Ａは、本発明の第1実施形態に係るデータ退避処理を説明する図である。図３０Ｂは、本発明の第１実施形態に係るデータ退避処理を説明する第２の図である。図３０Ｃは、本発明の第１実施形態に係る１次キャッシュレジュームモードを説明する図である。図３０Ｄは、本発明の第１実施形態に係る２次キャッシュ開始モードを説明する図である。
【図３１】図３１Ａは、本発明の第1実施形態に係るチャネルアダプタにおけるジャーナル書込処理のフローチャートである。図３１Ｂは、本発明の第１実施形態に係る１次キャッシュ部におけるジャーナル書込処理のフローチャートである。図３１Ｃは、本発明の第１実施形態に係る２次キャッシュ部におけるジャーナル書込処理のフローチャートである。
【図３２】本発明の第1実施形態に係るチャネルアダプタにおけるリモートコピー処理のフローチャートである。
【図３３】本発明の第1実施形態に係る１次キャッシュ部におけるリモートコピー処理のフローチャートである。
【図３４】図３４Ａは、本発明の第1実施形態に係る２次キャッシュ部におけるリモートコピー処理のフローチャートである。図３４Ｂは、本発明の第１実施形態に係るジャーナル移動処理のフローチャートである。
【図３５】図３５Ａは、本発明の第1実施形態に係るジャーナル書込処理及びリモートコピー処理を説明する図である。図３５Ｂは、本発明の第1実施形態に係るジャーナル書込処理及びリモートコピー処理を説明する他の図である。図３５Ｃは、本発明の第１実施形態に係るジャーナルデータの格納状態の一例を示す図である。
【図３６】本発明の第1実施形態の第１変形例に係るストレージシステムを説明する図である。
【図３７】本発明の第1実施形態の第２変形例に係るストレージシステムを説明する図である。
【図３８】本発明の第1実施形態の第２変形例に係るチャネルアダプタにおけるライト要求受信時処理のフローチャートである。
【図３９】本発明の第1実施形態の第２変形例に係る１次キャッシュ部におけるライト要求受信時処理のフローチャートである。
【図４０】本発明の第２実施形態に係るストレージシステムを説明する図である。
【図４１】本発明の第２実施形態に係るストレージシステムの変形例を説明する図である。
【符号の説明】
【０２６３】
１０  ストレージシステム、１００  ストレージ制御装置、１０１ａ  第１クラスタ、１０１ｂ  第２クラスタ、１１０  チャネルアダプタ、１１１  ＣＨＰ、１１２  信号変換／データ処理部、１１４  ＤＴＣ、１１５  バス、１２０  １次キャッシュ部、１２１  ＣＣＰ、１２２  ＳＥＬ、１２３  ＣＭＣ、１２４  １次キャッシュメモリ、１２４a  １次キャッシュメモリモジュール、１２５  ＤＴＣ、１２６  ＬＭ、１２７  バス、１２８  バス、１３０  ２次キャッシュ部、１３１  ＣＣＰ、１３２  ＳＥＬ、１３３  ＣＭＣ、１３４  ２次キャッシュメモリ、１３４ａ  ２次キャッシュメモリモジュール、１３４ａｓ  スペア２次キャッシュメモリモジュール、１３５  ＳＥＬ、１３６  ＬＭ、１３７  バス、１３８  バス、１４０  ディスクアダプタ、１４１  ＳＥＬ、１４２  ＤＫＰ、１４３  冗長データ生成部／信号変換部、２００  ＨＤＤ部、４００  バッテリ。
【図１】
2008217527.tif 000003
【図２】
2008217527.tif 000004
【図３】
2008217527.tif 000005
【図４】
2008217527.tif 000006
【図５】
2008217527.tif 000007
【図６】
2008217527.tif 000008
【図７】
2008217527.tif 000009
【図８】
2008217527.tif 000010
【図９】
2008217527.tif 000011
【図１０】
2008217527.tif 000012
【図１１】
2008217527.tif 000013
【図１２】
2008217527.tif 000014
【図１３】
2008217527.tif 000015
【図１４】
2008217527.tif 000016
【図１５】
2008217527.tif 000017
【図１６】
2008217527.tif 000018
【図１７】
2008217527.tif 000019
【図１８】
2008217527.tif 000020
【図１９】
2008217527.tif 000021
【図２０】
2008217527.tif 000022
【図２１】
2008217527.tif 000023
【図２２】
2008217527.tif 000024
【図２３】
2008217527.tif 000025
【図２４】
2008217527.tif 000026
【図２５】
2008217527.tif 000027
【図２６】
2008217527.tif 000028
【図２７】
2008217527.tif 000029
【図２８】
2008217527.tif 000030
【図２９】
2008217527.tif 000031
【図３０】
2008217527.tif 000032
【図３１】
2008217527.tif 000033
【図３２】
2008217527.tif 000034
【図３３】
2008217527.tif 000035
【図３４】
2008217527.tif 000036
【図３５】
2008217527.tif 000037
【図３６】
2008217527.tif 000038
【図３７】
2008217527.tif 000039
【図３８】
2008217527.tif 000040
【図３９】
2008217527.tif 000041
【図４０】
2008217527.tif 000042
【図４１】
2008217527.tif 000043