(57)【要約】【課題】不揮発メモリの容量を抑えつつ、キャッシュメモリに格納されたデータを適切に退避させることのできる技術を提供する。【解決手段】Ｉ／Ｏプロセッサ２２０が、キャッシュメモリ２５３上のダーティデータ量がしきい値を超えるか否かを判定し、超えると判定した場合に、キャッシュメモリ２５３のダーティデータの一部を記憶デバイス３１０へ書き込み、電源監視制御部２５７により供給される電力の電圧異常が検出された場合に、電力監視制御部２５７がバッテリ５００からの電力を用いて電力の供給を維持し、プロセッサ２５２がバッテリ５００からの電力の供給を受けて、キャッシュメモリ２５３に格納されているダーティデータを不揮発メモリ２５５に退避させる。【選択図】図２
2008192028.tif 000002
【特許請求の範囲】
【請求項１】
外部装置からライトアクセス要求を受信し、ライトアクセス要求対象のデータを記憶装置へ書き込む制御を行うストレージ制御装置であって、
電源からの電力の供給を行う電力供給部と、
電力を供給可能に蓄えるバッテリと、
電力の供給を受けてデータを記憶可能な揮発メモリであるキャッシュメモリと、
電力の供給を受けずともデータを記憶し続けることのできる不揮発メモリと、
前記電力の供給を受けて、ライトアクセス要求を受信する要求受信部と、
前記ライトアクセス要求の対象のデータをキャッシュデータとして前記キャッシュメモリに格納する第１データ格納部と、
前記キャッシュメモリの前記キャッシュデータのうちの前記記録装置への反映がされていないダーティデータのデータ量が所定のしきい値を超えるか否かを判定する判定部と、
前記しきい値を超えると判定された場合に、前記キャッシュメモリの前記ダーティデータの少なくとも一部を前記記憶装置へ格納する第２データ格納部と、
前記電力供給部から供給される電力の電圧異常を検出する電源監視部と、
前記電源監視部により前記電圧異常が検出された場合に、前記バッテリからの前記電力の供給を受けて、前記キャッシュメモリに格納されているダーティデータを前記不揮発メモリに退避させる退避格納部と、
前記電源監視部により前記電圧異常が検出された場合に、前記バッテリからの電力を用いて前記キャッシュメモリ及び前記退避格納部への電力の供給を維持する電力供給制御部と
を有するストレージ制御装置。
【請求項２】
前記しきい値は、前記不揮発メモリの容量に基づいて決定されている請求項１に記載のストレージ制御装置。
【請求項３】
前記しきい値を前記不揮発メモリの容量に基づいて決定するしきい値決定部を有する請求項２に記載のストレージ制御装置。
【請求項４】
前記退避格納部は、前記ダーティデータを暗号化して前記不揮発メモリに退避させる請求項１乃至請求項３のいずれか１項に記載のストレージ制御装置。
【請求項５】
前記退避格納部は、前記ダーティデータのデータ量を変化させない暗号化を実行する請求項４に記載のストレージ制御装置。
【請求項６】
前記退避格納部は、前記ダーティデータを圧縮して前記不揮発メモリに退避させる請求項１乃至請求項５のいずれか１項に記載のストレージ制御装置。
【請求項７】
前記ダーティデータの前記キャッシュメモリにおける格納先情報を前記不揮発メモリに退避させる格納先情報格納部を更に有する請求項１乃至請求項６のいずれか１項に記載のストレージ制御装置。
【請求項８】
前記不揮発メモリに退避されたダーティデータを、前記キャッシュメモリに復旧させるデータ復旧部を更に有する請求項１乃至請求項７のいずれか１項に記載のストレージ制御装置。
【請求項９】
前記不揮発メモリを保持するメモリボードを着脱可能であり、
装着されていた前記メモリボードの第１識別情報を保持する装着ボード情報保持部と、
不揮発メモリを保持するメモリボードが新たに装着されたことを検出する装着検出部と、
前記新たに装着されたメモリボードの第２識別情報を取得するボード情報取得部と、
取得した前記第２識別情報と、前記装着ボード情報保持部が保持する前記第１識別情報とが一致するか否かを判定する装着判定部と、
一致しないと判定した場合に、前記データ復旧部によるダーティデータの復旧をさせずに、前記新たに装着されたメモリボードの不揮発メモリのデータの初期化を実行する初期化部とを有する請求項８に記載のストレージ制御装置。
【請求項１０】
前記不揮発メモリを保持するメモリボードを着脱可能な複数のスロットを備え、
前記装着ボード情報保持部は、前記第１識別情報と、前記第１識別情報のメモリボードが装着されていたスロットの第１スロット識別情報とを対応付けて記憶し、
前記ボード情報取得部は、前記第２識別情報と、当該第２識別情報のメモリボードが装着されたスロットの第２スロット識別情報とを取得し、
前記装着判定部は、前記第１識別情報及び前記第１スロット識別情報と、前記第２識別情報及び前記第２スロット識別情報とが一致するか否かを判定し、
前記初期化部は、前記第１識別情報及び前記第１スロット識別情報と、前記第２識別情報及び前記第２スロット識別情報とが一致しない場合に、前記データ復旧部によるダーティデータの復旧をさせずに、前記新たに装着されたメモリボードの不揮発メモリのデータの初期化を実行する
請求項９に記載のストレージ制御装置。
【請求項１１】
前記不揮発メモリは、複数の不揮発メモリデバイスを有し、
前記退避格納部は、前記複数の不揮発メモリデバイスによって構成されるＲＡＩＤグループに対して、前記ダーティデータを格納する請求項１乃至請求項１０のいずれか１項に記載のストレージ制御装置。
【請求項１２】
前記退避格納部は、前記ダーティデータを所定の大きさの複数のデータ単位に分割して、前記ＲＡＩＤグループの複数の前記不揮発メモリデバイスに分散させて格納するとともに、所定数のデータ単位のデータに基づいて作成されるパリティを前記ＲＡＩＤグループの前記不揮発メモリデバイスに格納する請求項１１に記載のストレージ制御装置。
【請求項１３】
前記電力供給制御部は、前記ダーティデータの前記不揮発メモリへの退避が終了した後に、前記バッテリから前記揮発メモリへの電力供給を切断する
請求項１乃至請求項１２のいずれか１項に記載のストレージ制御装置。
【請求項１４】
前記キャッシュメモリは、複数の揮発メモリデバイスにより構成されており、
前記電力供給制御部は、前記退避格納部により前記ダーティデータの退避を終えた各前記揮発メモリデバイスから電力供給を逐次切断していく
請求項１乃至請求項１３のいずれか１項に記載のストレージ制御装置。
【請求項１５】
前記電力供給制御部は、前記電源監視部により前記電圧異常が検出された場合に、前記要求受信部に電力を供給することなく、前記キャッシュメモリ及び前記退避格納部に電力を供給する
請求項１乃至請求項１４のいずれか１項に記載のストレージ制御装置。
【請求項１６】
前記キャッシュメモリ、前記不揮発メモリ、前記退避格納部、及び前記電力供給制御部は、同一のボードに備えられ、
前記バッテリは、前記ボードに対して電力を供給可能となっている
請求項１５に記載のストレージ制御装置。
【請求項１７】
前記退避格納部と前記第２データ格納部とは、異なるデバイスによって構成されており、
前記電力供給制御部は、前記電源監視部により前記電圧異常が検出された場合に、前記第２データ格納部に電力を供給することなく、前記退避格納部に電力を供給する
請求項１乃至請求項１６のいずれか１項に記載のストレージ制御装置。
【請求項１８】
前記キャッシュメモリ及び前記不揮発メモリの組を複数有し、
前記第１データ格納部は、前記ライトアクセス要求対象のデータを各組の前記キャッシュメモリのそれぞれに格納し、
前記退避格納部は、前記電源監視部により前記電圧異常が検出された場合に、前記バッテリからの前記電力の供給を受けて、前記複数のキャッシュメモリのいずれか１つのキャッシュメモリからダーティデータを読み出して、前記複数の不揮発メモリに分散させて退避させる
請求項１乃至請求項１７のいずれか１項に記載のストレージ制御装置。
【請求項１９】
外部装置からライトアクセス要求を受信し、ライトアクセス要求対象のデータを記憶装置へ書き込む制御を行うストレージ制御装置によるデータ管理方法であって、
前記ストレージ制御装置は、電源からの電力の供給を行う電力供給部と、電力を供給可能に蓄えるバッテリと、電力の供給を受けてデータを記憶可能な揮発メモリであるキャッシュメモリと、電力の供給を受けずともデータを記憶し続けることのできる不揮発メモリと、前記電力供給部から供給される電力の電圧異常を検出する電源監視部とを備えており、
ライトアクセス要求を受信し、前記ライトアクセス要求の対象のデータをキャッシュデータとして前記キャッシュメモリに格納し、前記キャッシュメモリの前記キャッシュデータのうちの前記記録装置への反映がされていないダーティデータのデータ量が所定のしきい値を超えるか否かを判定し、前記しきい値を超えると判定された場合に、前記キャッシュメモリの前記ダーティデータの少なくとも一部を前記記憶装置へ格納し、前記電源監視部により前記電圧異常が検出された場合に、前記バッテリからの電力を用いて前記キャッシュメモリへの電力の供給を維持させ、前記バッテリからの前記電力の供給を受けて、前記キャッシュメモリに格納されているダーティデータを前記不揮発メモリに退避させる
データ管理方法。
【請求項２０】
外部装置からライトアクセス要求を受信し、ライトアクセス要求対象のデータを記憶装置へ書き込む制御を行うストレージ制御装置であって、
電源からの電力の供給を行う電源回路と、
電力を供給可能に蓄えるバッテリと、
電力の供給を受けてデータを記憶可能な揮発メモリであるキャッシュメモリと、
電力の供給を受けずともデータを記憶し続けることのできる不揮発メモリと、
前記外部装置からのライトアクセス要求を受信するインタフェースと、
前記インタフェースに接続されるとともに、前記キャッシュメモリとのデータの入出力可能な第１プロセッサと、
前記キャッシュメモリと前記不揮発メモリとの間でデータの入出力可能な第２プロセッサと、
前記電源回路からの電圧異常を検出する電源監視制御部と、
を備え、
前記第１プロセッサは、前記インタフェースが受信したライトアクセス要求を受け付け、前記ライトアクセス要求の対象のデータをキャッシュデータとして前記キャッシュメモリに格納し、前記キャッシュメモリの前記キャッシュデータのうちの前記記録装置への反映がされていないダーティデータのデータ量が所定のしきい値を超えるか否かを判定し、前記しきい値を超えると判定した場合に、前記キャッシュメモリの前記ダーティデータの少なくとも一部を前記記憶装置へ格納し、
前記第２プロセッサは、前記電源監視制御部により前記電圧異常が検出された場合に、前記バッテリからの前記電力の供給を受けて、前記キャッシュメモリに格納されているダーティデータを前記不揮発メモリに退避させ、
前記電源監視制御部は、前記電圧異常を検出した場合に、前記バッテリからの電力を用いて前記キャッシュメモリ及び前記第２プロセッサへの電力の供給を維持する
ストレージ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、電源障害が発生した際に、揮発メモリに格納されたデータを不揮発メモリに退避するストレージ制御装置及びデータ管理方法に関する。
【背景技術】
【０００２】
ストレージ制御装置には、例えば、ハードディスクドライブのような記憶デバイスが複数接続されている。ストレージ制御装置は、ホスト計算機からライトコマンドを受信し、複数の記憶装置のうちの少なくとも一つの記憶装置に対してデータを書き込み、また、ホスト計算機からのリードコマンドを受信し、複数の計億装置のうちの少なくとも一つの記憶装置からデータを読み出してホスト計算機に送信する。
【０００３】
このようなストレージ制御装置においては、ライトコマンドに従って記憶装置に書き込まれるデータを一時的に記憶するため、あるいは、リードコマンドに従って記憶装置から読み出されたデータを一時的に記憶するためにキャッシュメモリが備えられている。
【０００４】
このキャッシュメモリとしては、一般には、電力が供給されることによりデータを記憶しておくことのできる揮発メモリが使用される。
【０００５】
揮発メモリをキャッシュメモリとして備えているストレージ制御装置においては、例えば、外部電源の障害が発生した等によってキャッシュメモリへの電力の供給が行われなくなると、キャッシュメモリに記憶されたデータが失われてしまう。
【０００６】
そこで、このような外部電源の障害等に対応するために、ストレージ制御装置において電力を供給することのできるバッテリを備え、外部電源の障害が発生した場合には、バッテリからキャッシュメモリに対して電力を供給することにより、キャッシュメモリに記憶されたデータを保持することが行われている。
【０００７】
しかしながら、障害が解消されるまでキャッシュメモリへの電力の供給を維持する必要があるため、バッテリの容量を比較的大きくしておく必要がある。このため、ストレージ制御装置の製造原価が増大してしまう問題が発生する。
【０００８】
これに対して、キャッシュメモリのデータを不揮発メモリに退避させることにより、バッテリによってキャッシュメモリへの電力の供給を障害の解消まで維持しなくてもデータを保全することのできる技術が開示されている（例えば、特許文献１）。
【０００９】
【特許文献１】特開２００４−２１８１１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
例えば、キャッシュメモリに記憶されたデータを不揮発メモリに退避させることを想定した場合において、キャッシュメモリのすべてのデータを適切に退避させる場合には、キャッシュメモリの容量と同等の容量を有する不揮発メモリを用意しておく必要がある。この場合には、ストレージ制御装置の製造原価が増大してしまう。
【００１１】
一方、製造原価を抑えるために、キャッシュメモリよりも容量の少ない不揮発メモリを用意してデータを退避させるようにした場合にあっては、キャッシュメモリのデータを不揮発メモリに適切に退避させることができず、必要なデータが消失してしまうという事態が発生する虞がある。
【００１２】
そこで、本発明は、上記課題に鑑みなされたものであり、その目的は、不揮発メモリの容量を抑えつつ、キャッシュメモリに格納されたデータを適切に退避させることのできる技術を提供することにある。
【課題を解決するための手段】
【００１３】
上記課題を解決するため、本発明の一観点に従うストレージ制御装置は、キャッシュメモリ中に格納されているデータには、記憶装置に反映されているデータ（クリーンデータ）と、記憶装置に反映されていないデータ（ダーティデータ）とがあることに着目してなされたものである。すなわち、本発明の一観点に従うストレージ制御装置は、キャッシュメモリに格納されているダーティデータのデータ量に基づいて、ダーティデータを記憶装置に格納するか否かを決定し、電圧異常の場合に、キャッシュメモリのダーティデータを不揮発メモリに退避する。
【００１４】
具体的には、本発明の一観点に従うストレージ制御装置は、外部装置からライトアクセス要求を受信し、ライトアクセス要求対象のデータを記憶装置へ書き込む制御を行うストレージ制御装置であって、電源からの電力の供給を行う電力供給部と、電力を供給可能に蓄えるバッテリと、電力の供給を受けてデータを記憶可能な揮発メモリであるキャッシュメモリと、電力の供給を受けずともデータを記憶し続けることのできる不揮発メモリと、前記電力の供給を受けて、ライトアクセス要求を受信する要求受信部と、前記ライトアクセス要求の対象のデータをキャッシュデータとして前記キャッシュメモリに格納する第１データ格納部と、前記キャッシュメモリの前記キャッシュデータのうちの前記記録装置への反映がされていないダーティデータのデータ量が所定のしきい値を超えるか否かを判定する判定部と、前記しきい値を超えると判定された場合に、前記キャッシュメモリの前記ダーティデータの少なくとも一部を前記記憶装置へ格納する第２データ格納部と、前記電力供給部から供給される電力の電圧異常を検出する電源監視部と、前記電源監視部により前記電圧異常が検出された場合に、前記バッテリからの前記電力の供給を受けて、前記キャッシュメモリに格納されているダーティデータを前記不揮発メモリに退避させる退避格納部と、前記電源監視部により前記電圧異常が検出された場合に、前記バッテリからの電力を用いて前記キャッシュメモリ及び前記退避格納部への電力の供給を維持する電力供給制御部とを有する。
【発明を実施するための最良の形態】
【００１５】
本発明の実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
＜第１実施形態＞
図１は、本発明の第１実施形態に係る計算機システムの構成図である。
【００１６】
計算機システムは、１台以上のホスト装置１０と、一台以上のディスクサブシステム１００とを備えている。ホスト装置１０とディスクサブシステム１００とは、ネットワーク２０を介して接続されている。ネットワークとしては、ＳＡＮ（Storage Area Network）、ＬＡＮ(Local Area Network)、インターネット、専用回線、公衆回線等であってもよく、データ通信を行うことのできるネットワークであればよい。また、ネットワーク２０におけるプロトコルとしては、ファイバチャネルプロトコルや、ＴＣＰ／ＩＰプロトコルであってもよく、ホスト装置１０とディスクサブシステム１００との間でデータのやりとりが可能なプロトコルであれば、任意のプロトコルであってよい。なお、ネットワーク２０に代えて、ケーブルによってホスト装置１０とディスクサブシステム１００とを直接接続するようにしてもよい。
【００１７】
ホスト装置１０は、図示しないＣＰＵ（Central Processing Unit）、図示しないメモリ、キーボード等の入力装置、ディスプレイ等を備えている。ホスト装置１０は、例えば、汎用のコンピュータ（パーソナルコンピュータ）によって構成することができる。ホスト装置１０には、アプリケーションプログラム１１が備えられている。また、ホスト装置１０には、ネットワーク２０との接続を可能にするポート（ＰＯＲＴ）１２が備えられている。
【００１８】
ホスト装置１０のＣＰＵがアプリケーションプログラム１１を実行することにより、ディスクサブシステム１００に対して、データの書き込みアクセス（ライトアクセス）や、データの読み出しアクセス（リードアクセス）することができる。
【００１９】
ディスクサブシステム１００は、ストレージ制御装置の一例としてのディスク制御装置２００と、記憶装置３００と、複数の電源回路４００と、複数のバッテリ５００とを有している。
【００２０】
記憶装置３００は、複数の記憶デバイス３１０を含む。記憶デバイス３１０は、例えば、ハードディスクドライブ（ＨＤＤ）である。ディスクサブシステム１００においては、複数の記憶デバイス３１０の記憶空間を基に１又は複数の論理ボリュームを提供することができる。また、ディスクサブシステム１００においては、複数の記憶デバイス３１０の内の２以上の記憶デバイス３１０でＲＡＩＤ（Redundant Array of Independent Disks）グループを構成して、ＲＡＩＤグループの記憶空間を論理ボリュームとして提供することもできる。
【００２１】
電源回路４００は、例えば、外部の商用電源から供給される電力をディスク制御装置２００の各部に供給する。本実施形態では、図面右側の電源回路４００は、ディスク制御装置２００の破線で区切られた右側の各部に電力を供給し、図面左側の電源回路４００は、ディスク制御装置２００の破線で区切られた左側の各部に電力を供給するようになっている。
【００２２】
バッテリ５００は、電力を蓄積しており、ディスク制御装置２００の所定の部位に供給できるようになっている。本実施形態では、図面右側のバッテリ５００は、図面右側のメモリボード２５０上の各部に電力を供給できるようになっており、図面左側のバッテリ５００は、図面左側のメモリボード２５０上の各部に電力を供給できるようになっている。
【００２３】
ディスク制御装置２００は、複数のチャネルアダプタ２１０と、複数のＩ／Ｏプロセッサ２２０と、コントロールユニット２３０と、接続部２４０と、複数のメモリボード２５０と、複数のディスクアダプタ２７０とを有している。チャネルアダプタ２１０と、Ｉ／Ｏプロセッサ２２０と、コントロールユニット２３０と、メモリボード２５０と、ディスクアダプタ２７０は、接続部２４０を介してそれぞれ接続されている。
【００２４】
接続部２４０は、チャネルアダプタ２１０と、Ｉ／Ｏプロセッサ２２０と、コントロールユニット２３０と、メモリボード２５０と、ディスクアダプタ２７０との間の相互通信を可能にする。接続部２４０は、例えば、スイッチング動作によってデータ伝送を行うクロスバスイッチであってもよい。
【００２５】
チャネルアダプタ２１０は、ネットワーク２０と接続するためのポート２１１を有している。チャネルアダプタ２１０は、ポート２１１を介して接続されているホスト装置１０との間での通信を実行する。本実施形態では、ホスト装置１０との間でのデータの読み出し（データリード）及びデータの書き込み（データライト）における各種情報の送受信を実行する。
【００２６】
コントロールユニット２３０は、接続部２４０を介して、チャネルアダプタ２１０と、Ｉ／Ｏプロセッサ２２０と、コントロールユニット２３０と、メモリボード２５０と、ディスクアダプタ２７０とに対してアクセス可能であり、これら各部を管理者が保守管理するために用いられる。コントロールユニット２３０は、例えば、管理者が入力するキーボード、マウス等の入力装置、ＣＰＵ、ＲＯＭ、ＲＡＭ、ハードディスクドライブ、情報を表示出力するためのディスプレイ等を備えていてもよい。本実施形態では、コントロールユニット２３０は、ディスク制御装置２００のメモリボード用スロットに装着されたメモリボード２５０の固有識別子をメモリボード２５０から取得するとともに、装着されているスロットの識別番号（スロット番号）とを取得し、それらを対応付けて記憶する。
【００２７】
ディスクアダプタ２７０は、記憶装置３００の各記憶デバイス３１０と接続するためのポート２７１を有している。ディスクアダプタ２７０は、記憶デバイス３１０との間でデータの授受を行う。
【００２８】
Ｉ／Ｏプロセッサ２２０は、メモリボード２５０上の共有メモリ２５４（図２参照）に読み出されたプログラムを実行することにより各種制御処理を実行する。Ｉ／Ｏプロセッサ２２０は、チャネルアダプタ２１０と、メモリボード２５０と、ディスクアダプタ２７０との間でのデータの受け渡しを制御する。例えば、チャネルアダプタ２１０が受信したデータをメモリボード２５０上のキャッシュメモリ２５３（図２参照）に格納させる制御を行う。また、Ｉ／Ｏプロセッサ２２０は、キャッシュメモリ２５３に格納されたデータを、ディスクアダプタ２７０に渡したり、チャネルアダプタ２１０に渡したりする制御を行う。また、Ｉ／Ｏプロセッサ２２０は、ディスクアダプタ２７０が記憶デバイス３１０から取得したデータをキャッシュメモリ２５３に格納させる制御を行う。また、Ｉ／Ｏプロセッサ２２０は、不揮発メモリ２５５に退避格納したデータをキャッシュメモリ２５３に復旧するための処理を行う。
【００２９】
メモリボード２５０は、ディスク制御装置２００のメモリボード用スロットに対して着脱可能になっている。
【００３０】
図２は、本発明の第1実施形態に係るメモリボードの構成図である。
【００３１】
メモリボード２５０は、メモリコントローラ２５１と、プロセッサ（プロセサ）２５２と、キャッシュメモリ２５３と、共有メモリ２５４と、不揮発メモリ２５５と、不揮発メモリ２５６と、電圧監視制御部２５７とを有する。
【００３２】
メモリコントローラ２５１は、接続部２４０に接続されるとともに、プロセッサ２５２と、キャッシュメモリ２５３と、共有メモリ２５４と、不揮発メモリ２５５と、不揮発メモリ２５６とに接続されている。
【００３３】
メモリコントローラ２５１は、Ｉ／Ｏプロセッサ２２０、コントロールユニット２３０又は、プロセッサ２５２の制御によって、接続部２４０から送信されるデータをメモリボード２５０内のメモリ（キャッシュメモリ２５３、共有メモリ２５４、不揮発メモリ２５５、又は不揮発メモリ２５６）に格納する処理や、メモリボード２５０内のメモリに格納されたデータを接続部２４０へ送信する処理や、メモリボード２５０内のメモリ間でのデータの受け渡しの処理を実行する。また、メモリコントローラ２５１は、不揮発メモリ２５５に退避格納するデータについて暗号化する処理を行う。本実施形態では、メモリコントローラ２５１は、データのデータ量が変わらない暗号化、例えば、シーザー暗号を用いて暗号化している。
【００３４】
電圧監視制御部２５７は、電源回路４００からメモリボード２５０に供給される電力の電圧を監視し、電圧に異常がないか、例えば、所定の電圧以下でないかを判定し、異常があると判定した場合には、その旨をプロセッサ２５２に通知すると共に、バッテリ５００からの電力がメモリボード２５０の所定の部位（例えば、プロセッサ２５２、メモリコントローラ２５１、キャッシュメモリ２５３、共有メモリ２５４、及び不揮発メモリ２５５、２５６）へ供給されるように制御する。また、電圧監視制御部２５７は、後述するデータ退避処理においてバッテリ５００からの電力の供給を切断する制御を行う。
【００３５】
キャッシュメモリ２５３は、揮発メモリ、例えば、ＤＲＡＭ（Dynamic Random Access Memory）である。キャッシュメモリ２５３は、チャネルアダプタ２１０により受信されたデータや、ディスクアダプタ２７０により記憶デバイス３１０から取得されたデータを一時的に記憶する。キャッシュメモリ２５３は、例えば、個別に入出力動作が可能な複数のキャッシュメモリデバイスによって構成されている。
【００３６】
プロセッサ２５２は、共有メモリ２５４に読み出されたプログラムを実行することにより各種制御処理を実行する。例えば、プロセッサ２５２は、キャッシュメモリ２５３に格納されたキャッシュデータを不揮発メモリ２５５に退避格納する処理を実行する。
【００３７】
共有メモリ２５４は、揮発メモリであり、各種情報を記憶する。記憶する情報としては、例えば、ホスト装置とのやりとりが行われるデータに関する構成情報２６１（例えば、データが記憶デバイス３１０のどこに格納されるかを示す情報）及び制御情報２６０（例えば、データがキャッシュメモリ２５３のどこに格納されるかを示す情報）とがある。
【００３８】
不揮発メモリ２５５及び２５６は、例えば、フラッシュメモリ、ＭＲＡＭ（Magnetoresistive Random Access Memory）、ＰＲＡＭ（Phase change RAM）等の電源を供給せずともデータを記憶しておくことのできるメモリである。
【００３９】
不揮発メモリ２５５は、例えば、キャッシュメモリ２５３や共有メモリ２５４に格納されたデータを退避格納するために用いられる。本実施形態では、不揮発メモリ２５５には、ダーティデータを格納することとなるので、当該不揮発メモリ２５５には、キャッシュメモリ２５５に格納されたダーティデータを格納することのできるだけの容量を有しておく必要がある。このことは、データ退避を確実に行うためには、不揮発メモリ２５５の容量によってキャッシュメモリ２５５に格納させておくことのできるダーティデータの量が決まることを意味している。また、本実施形態では、メモリボード２５５毎に、キャッシュメモリ２５３のデータを当該メモリボード２５０内の不揮発メモリ２５５に退避格納させることができるので、各メモリボード２５０毎に確実にデータを退避格納しておくことができる。不揮発メモリ２５６は、不揮発メモリ２５５に退避格納されたデータを元の状態に復旧するためのアドレス管理テーブル２６２と、メモリボード２５０を一意に識別する固有識別子２６３（例えば、メモリボード２５０の製造番号）を記憶する。
【００４０】
次に、共有メモリ２５４に記憶された構成情報及び制御情報の一例について図面を参照して説明する。
【００４１】
図３は、本発明の第1実施形態に係る制御情報及び構成情報の一例を示す図である。図３Ａは、本発明の第1実施形態に係る制御情報の一例を示し、図３Ｂは、本発明の第1実施形態に係る構成情報の一例を示す。
【００４２】
制御情報２６０は、図３Ａに示すように、論理アドレス２６０１と、キャッシュアドレス２６０２と、ステージングｂｉｔ２６０３と、ダーティｂｉｔ２６０４とを対応付けたレコードを含む。
【００４３】
論理アドレス２６０１には、データを特定するための論理的なアドレス（論理アドレス）が格納される。論理アドレスとしては、例えば、ホスト装置１０から送信されるアクセス要求中のＬＵＮ（Logical Unit Number）とＬＢＡ（Logical Block Address）との組み合わせがある。本実施形態では、論理アドレスを単位として管理しているので、各レコードが管理するデータのデータ量は、論理アドレスに対応する所定のデータ量となっている。
【００４４】
キャッシュアドレス２６０２には、対応するデータが格納されているキャッシュメモリ２５３のアドレスが格納される。
【００４５】
ステージングｂｉｔ２６０３には、対応するデータが記憶デバイス３１０に格納されたデータと一致しているか否かを示すビットが格納される。例えば、ステージングｂｉｔ２６０３には、対応するデータが記憶デバイス３１０に格納されたデータと一致している場合には、“１”が格納され、一致しない場合には、“０”が格納される。
【００４６】
ダーティｂｉｔ２６０４には、対応するデータが記憶デバイス３１０に反映されているデータ（クリーンデータ）か、又は反映されていないデータ（ダーティデータ）かを示すビットが格納される。例えば、ダーティｂｉｔ２６０４には、対応するデータがクリーンデータである場合には、“０”が格納され、ダーティデータである場合には、“１”が格納される。ダーティｂｉｔ２６０４に“０”が格納されているデータ、すなわちクリーンデータは、記憶デバイス３１０に存在する。このため、キャッシュメモリ２５３への電力供給が停止して、キャッシュメモリ２５３から消去されてしまっても記憶デバイス３１０から取り出すことができる。したがって、電力供給が停止しても、ディスクサブシステム１００からデータが消失してしまうことはない。一方、ダーティｂｉｔ２６０４に“１”が格納されているデータ、すなわちダーティデータは、キャッシュメモリ２５３上に存在するが、記憶デバイス３１０に反映されていない。このため、キャッシュメモリ２５３への電力供給が停止してしまうと、データが消失してしまい、ディスクサブシステム１００から完全に消失してしまうこととなる。そこで、ディスク制御装置２００においては、電圧異常が発生した場合に、ダーティデータをキャッシュメモリ２５３から不揮発メモリ２５５に退避することとしている。このように、ダーティデータを不揮発メモリ２５５に退避させるので、データがディスクサブシステム１００から完全に消失してしまうことを防止することができる。本実施形態では、退避する対象をダーティデータとし、クリーンデータを退避する対象としていないので、データの退避に必要な不揮発メモリの容量を低減することができるとともに、データ退避処理を迅速に行うことができる。
【００４７】
構成情報２６１は、図３Ｂに示すように、論理アドレス２６１１と、物理アドレス２６１２とを対応付けたレコードを含む。
【００４８】
論理アドレス２６１１には、データを特定するための論理アドレスが格納される。論理アドレスとしては、例えば、ホスト装置１０から送信されるアクセスコマンド中のＬＵＮ（Logical Unit Number）とＬＢＡ（Logical Block Address）との組み合わせがある。物理アドレス２６１２には、対応する論理アドレスのデータが格納されている記憶デバイス３１０及び当該記憶デバイス３１０における格納領域を示す物理的なアドレス（物理アドレス）が格納される。
【００４９】
次に、不揮発メモリ２５６に格納されたアドレス管理テーブルの一例について図面を参照して説明する。
【００５０】
図４は、本発明の第１実施形態に係るアドレス管理テーブルの一例を示す図である。図４Ａは、本発明の第1実施形態に係る制御情報についてのアドレス管理テーブルの一例を示し、図４Bは、本発明の第1実施形態に係る構成情報についてのアドレス管理テーブルの一例を示し、図４Cは、本発明の第1実施形態に係るキャッシュデータについてのアドレス管理テーブルの一例を示す。
【００５１】
アドレス管理テーブル２６２は、不揮発メモリ２５５に格納された制御情報のアドレスを管理するための制御情報のアドレス管理テーブル２６２Ａと、不揮発メモリ２５５に格納された構成情報のアドレスを管理するためのアドレス管理テーブル２６２Ｂと、不揮発メモリ２５５に格納されたキャッシュデータのアドレスを管理するためのアドレス管理テーブル２６２Ｃとを含む。
【００５２】
制御情報のアドレス管理テーブル２６２Ａは、不揮発メモリアドレス２６２１と、共有メモリアドレス２６２２と、データ長２６２３とを対応付けたレコードを含む。
【００５３】
不揮発メモリアドレス２６２１には、制御情報の格納に割り当て可能な不揮発メモリ２５５上のアドレス（不揮発メモリアドレス）が格納される。共有メモリアドレス２６２２には、対応する不揮発メモリアドレスからの記憶領域が割り当てられた制御情報が共有メモリ２５４上で格納されていたアドレス（共有メモリアドレス）が格納される。データ長２６２３には、対応する制御情報についての不揮発メモリ２５５上におけるデータ長が格納される。
【００５４】
構成情報のアドレス管理テーブル２６２Ｂは、不揮発メモリアドレス２６２４と、共有メモリアドレス２６２５と、データ長２６２６とを対応付けたレコードを含む。
【００５５】
不揮発メモリアドレス２６２４には、構成情報の格納に割り当て可能な不揮発メモリ２５５上のアドレス（不揮発メモリアドレス）が格納される。共有メモリアドレス２６２５には、対応する不揮発メモリアドレスからの記憶領域が割り当てられた構成情報が共有メモリ２５４上で格納されていたアドレス（共有メモリアドレス）が格納される。データ長２６２６には、対応する構成情報についての不揮発メモリ２５５上におけるデータ長が格納される。
【００５６】
キャッシュデータのアドレス管理テーブル２６２Ｃは、不揮発メモリアドレス２６２７と、キャッシュメモリアドレス２６２８と、データ長２６２９とを対応付けたレコードを含む。
【００５７】
不揮発メモリアドレス２６２７には、キャッシュデータの格納に割り当て可能な不揮発メモリ２５５上のアドレス（不揮発メモリアドレス）が格納される。キャッシュメモリアドレス２６２８には、対応する不揮発メモリアドレスからの記憶領域が割り当てられたキャッシュデータがキャッシュメモリ２５３上で格納されていたアドレス（キャッシュメモリアドレス）が格納される。データ長２６２９には、対応するキャッシュデータについての不揮発メモリ２５５上におけるデータ長が格納される。
【００５８】
次に、本発明の第１実施形態に係るディスク制御装置の処理動作について説明する。
【００５９】
図５Ａは、本発明の第1実施形態に係るライトアクセス要求時処理のフローチャートである。
【００６０】
ライトアクセス要求時処理は、ホスト装置１０から送信されたライトアクセス要求をディスクサブシステム１００のチャネルアダプタ２１０がポート２１１を介して受信し、当該ライトアクセス要求をＩ／Ｏプロセッサ２２０が取得した場合に、実行が開始される。
【００６１】
まず、Ｉ／Ｏプロセッサ２２０が、チャネルアダプタ２１０からライトアクセス要求を取得すると（ステップＳ１１）、Ｉ／Ｏプロセッサ２２０が、ライトアクセス要求の対象のデータ（ライトデータ）をチャネルアダプタ２１０から取得し、当該ライトデータをキャッシュメモリ２５３に書き込む（ステップＳ１２）。次いで、Ｉ／Ｏプロセッサ２２０は、共有メモリ２５４の構成情報２６１の当該ライトデータに対応するレコードを更新する（ステップＳ１３）。すなわち、Ｉ／Ｏプロセッサ２２０は、構成情報２６１中のライトデータに対応するレコードのキャッシュアドレス２６０２に、ライトデータを格納したキャッシュメモリ２５３のキャッシュアドレスを格納し、更に、ダーティｂｉｔ２６０４にダーティデータであることを示す“１”を格納する。
【００６２】
次いで、Ｉ／Ｏプロセッサ２２０は、キャッシュメモリ２５３に格納されているダーティデータのデータ量を検出し、予め設定されているしきい値（ライトキャッシュしきい値）を超えるか否かを判定する（ステップＳ１４）。ここで、キャッシュメモリ２５３に格納されているダーティデータのデータ量は、共有メモリ２５４の構成情報２６１を参照し、構成情報２６１のダーティｂｉｔ２６０４に“１”が格納されているアドレス数に基づいて検出することができる。また、ライトキャッシュしきい値は、キャッシュメモリ２５３のダーティデータのデータ量が当該しきい値以下であれば、当該ダーティデータを不揮発メモリ２５５へ確実に退避格納できることを示すしきい値である。このライトキャッシュしきい値は、例えば、管理者により入力された指示に応じてコントロールユニット２３０が設定するようにしてもよく、また、コントロールユニット２３０が不揮発メモリ２５５のデータ容量に基づいて、一のしきい値に設定するようにしてもよく、また、コントロールユニット２３０がストレージサブシステム１００の動作状態及び不揮発メモリ２５５のデータ容量に基づいて、動的にしきい値を設定するようにしてもよい。ライトキャッシュしきい値としては、不揮発メモリ２５５の容量の、例えば、５０〜８０パーセントの間のいずれかの容量に設定してもよい。
【００６３】
ステップＳ１４での判定の結果、ダーティデータのデータ量がライトキャッシュしきい値を超えると判定した場合（ステップＳ１４のＹｅｓ）には、Ｉ／Ｏプロセッサ２２０は、少なくとも一部のダーティデータをデステージさせる（ステップＳ１５）。すなわち、Ｉ／Ｏプロセッサ２２０は、キャッシュメモリ２５３のダーティデータの少なくとも一部を記憶デバイス３１０に格納させる。これによって、当該データは、キャッシュメモリ２５３の内容が記憶デバイス３１０に反映されることとなる。なお、デステージさせるダーティデータとしては、例えば、アクセス頻度が少ないダーティデータを対象としてもよく、また、前回のアクセスから最も時間が経過しているダーティデータを対象としてもよい。
【００６４】
次いで、Ｉ／Ｏプロセッサ２２０は、共有メモリ２５４の構成情報２６１のデステージしたデータに対応するレコードを更新する（ステップＳ１６）。すなわち、Ｉ／Ｏプロセッサ２２０は、構成情報２６１中のデステージしたデータに対応するレコードのダーティｂｉｔ２６０４にクリーンデータであることを示す“０”を格納し、ライトアクセス要求時処理を終了する。これによって、後述するデータ退避処理において、キャッシュメモリ２５３内のダーティデータを不揮発メモリ２５５に確実に退避格納できることとなる。
【００６５】
一方、ステップＳ１４での判定の結果、ダーティデータのデータ量がライトキャッシュしきい値を超えないと判定した場合（ステップＳ１４のＮｏ）には、キャッシュメモリ２５３内のダーティデータが不揮発メモリ２５５に確実に退避格納できることを示しているので、Ｉ／Ｏプロセッサ２２０は、ライトアクセス要求時処理を終了する。なお、キャッシュメモリ２５３のダーティデータを記憶デバイス３１０に格納するデステージ処理（ステップＳ１５及びステップＳ１６と同様な処理）は、ライトアクセス要求時処理においてだけでなく、例えば、Ｉ／Ｏプロセッサ２２０の処理負荷が軽い場合等において、適宜Ｉ／Ｏプロセッサ２２０が実行するようにしてもよい。
【００６６】
図５Bは、本発明の第1実施形態に係るリードアクセス要求時処理のフローチャートである。
【００６７】
リードアクセス要求時処理は、ホスト装置１０から送信されたリードアクセス要求をディスクサブシステム１００のチャネルアダプタ２１０がポート２１１を介して受信し、当該リードアクセス要求をＩ／Ｏプロセッサ２２０が取得した場合に、実行が開始される。
【００６８】
まず、Ｉ／Ｏプロセッサ２２０が、チャネルアダプタ２１０からリードアクセス要求を取得すると（ステップＳ２１）、Ｉ／Ｏプロセッサ２２０が、リードアクセス要求の対象のデータ（リードデータ）がキャッシュメモリ２５３に格納されているか否かを判定する（ステップＳ２２）。ここで、リードデータがキャッシュメモリ２５３に格納されているか否かは、例えば、共有メモリ２５４中の制御情報２６０に、リードアクセス要求内に含まれる論理アドレスに対応するレコードが格納されているか否かを確認することによって判定することができる。
【００６９】
ステップＳ２２での判定の結果、キャッシュメモリ２５３に格納されていると判定した場合（ステップＳ２２のＹｅｓ）には、Ｉ／Ｏプロセッサ２２０が、キャッシュメモリ２５３から対応するキャッシュデータを読み出して、チャネルアダプタ２１０により要求元のホスト装置１０に読み出したデータを送信させ（ステップＳ２３）、リードアクセス要求時処理を終了する。
【００７０】
一方、ステップＳ２２での判定の結果、キャッシュメモリ２５３に格納されていないと判定した場合（ステップＳ２２のＮｏ）には、Ｉ／Ｏプロセッサ２２０が、対応するデータをステージさせる（ステップＳ２４）。すなわち、Ｉ／Ｏプロセッサ２２０が、対応するデータを格納している記憶デバイス３１０から当該データを読み出して、キャッシュメモリ２５３に格納する。次いで、Ｉ／Ｏプロセッサ２２０は、共有メモリ２５４の構成情報２６１中の読み出したデータに対応するレコードを更新する（ステップＳ２５）。すなわち、Ｉ／Ｏプロセッサ２２０は、共有メモリ２５４の制御情報２６０中に、読み出したデータに対応するレコードを追加し、当該レコードのキャッシュアドレス２６０２に、読み出したデータを格納したキャッシュメモリ２５３のキャッシュアドレスを格納し、更に、ダーティｂｉｔ２６０４にクリーンデータであることを示す“０”を格納する。そして、Ｉ／Ｏプロセッサ２２０が、当該キャッシュメモリ２５３に読み出したデータをチャネルアダプタ２１０により要求元のホスト装置１０に送信させて、リードアクセス要求時処理を終了する。
【００７１】
図６は、本発明の第1実施形態に係るディスクサブシステムにおけるステージ及びデステージを説明する図である。
【００７２】
ステージとは、図６に示すように、記憶デバイス３１０に格納されたデータをキャッシュメモリ２５３に格納することをいい、デステージとは、図６に示すように、キャッシュメモリ２５３に格納されたキャッシュデータを記憶デバイス３１０に反映させることをいう。
【００７３】
次に、本発明の第１実施形態に係るストレージサブシステム１００におけるデータ退避処理を説明する。
【００７４】
図７は、本発明の第1実施形態に係るデータ退避処理のフローチャートである。
【００７５】
データ退避処理は、電圧監視制御部２５７が、電源障害、例えば、電源回路４００から供給される電圧が異常値を示していることを検出したことによって開始される（ステップＳ３１）。電圧監視制御部２５７は、メモリボード２５０のプロセッサ２５２に、電圧異常が発生したことを通知するとともに、メモリボード２５０の各部に供給する電力を、電源回路４００から供給される電力からバッテリ５００から供給される電力に切り替える（ステップＳ３２）。これによって、メモリボード２５０の各部は、バッテリ５００から供給される電力によって動作を継続することができる。このため、キャッシュメモリ２５３及び共有メモリ２５４は、データの記憶を維持しておくことができる。なお、以下の処理は、バッテリ５００の電力がメモリボード２５０のみに供給されていればよい。このため、バッテリ５００に蓄えておくべき電力量を低減することができる。
【００７６】
プロセッサ２５２は、共有メモリ２５４の制御情報２６０を参照し（ステップＳ３３）、キャッシュメモリ２５３中の１つのキャッシュメモリデバイスを処理対象として未退避のダーティデータがあるか否かを判定する（ステップＳ３４）。
【００７７】
ステップＳ３４の判定の結果、キャッシュメモリデバイスに未退避のダーティデータがあると判定した場合（ステップＳ３４のＹｅｓ）には、プロセッサ２５２は、当該キャッシュメモリデバイスからダーティデータを読み出し（ステップＳ３５）、不揮発メモリ２５６のアドレス管理テーブル２６２に従って、当該ダーティデータを格納する不揮発メモリ２５５のアドレス（不揮発メモリアドレス）を決定し、当該不揮発メモリアドレスに対応するレコードのキャッシュメモリアドレス２６２８に、当該ダーティデータが格納されていたキャッシュメモリ２５３のアドレスを格納するとともに、データ長２６２９に、当該ダーティデータのデータ長を格納する（ステップＳ３６）。
【００７８】
次いで、プロセッサ２５２は、ダーティデータと共に、当該ダーティデータを格納する不揮発メモリアドレスをメモリコントローラ２５１に渡す。メモリコントローラ２５１は、プロセッサ２５２から渡されたダーティデータを暗号化して（ステップＳ３７）、不揮発メモリ２５５の指定された不揮発メモリアドレスに格納する（ステップＳ３８）。このように、ダーティデータは、暗号化されて不揮発メモリ２５５に格納されているので、不揮発メモリ２５５からデータが読取られても、当該データからもとのデータを容易に把握することができないため、情報が漏洩することを適切に防止することができる。
【００７９】
次いで、プロセッサ２５２は、同じキャッシュメモリデバイスを対象に、上記したステップＳ３３からの処理を繰り返す。このように処理を繰り返すことによって、同じキャッシュメモリデバイスに格納されているすべてのダーティデータを不揮発メモリ２５５に退避させることができる。
【００８０】
一方、ステップＳ３４の判定の結果、キャッシュメモリデバイスに未退避のダーティデータがないと判定した場合（ステップＳ３４のＮｏ）には、対象のキャッシュメモリデバイスにダーティデータが存在しない、又は当該キャッシュメモリデバイスのすべてのダーティデータを退避させたことを示しているので、プロセッサ２５２は、電圧監視制御部２５７により、当該キャッシュメモリデバイスへの電力供給を切断させ（ステップＳ３９）、ダーティデータを退避する処理の対象となる他のキャッシュメモリデバイスがあるか否かを判定する（ステップＳ４０）。
【００８１】
ステップＳ４０の結果、ダーティデータを退避する処理の対象となる他のキャッシュメモリデバイスがある場合（ステップＳ４０のＹｅｓ）には、他のキャッシュメモリデバイスに対して上記同様のステップＳ３３からの処理を実行する。
【００８２】
一方、ステップＳ４０の結果、ダーティデータを退避する処理の対象となる他のキャッシュメモリデバイスがない場合（ステップＳ４０のＮｏ）には、キャッシュメモリ２５３のすべてのダーティデータの退避が完了したことを意味しているので、プロセッサ２５２は、共有メモリ２５４から構成情報２６１と、制御情報２６０のうちのダーティデータに関する制御情報を読み出し（ステップＳ４１）、不揮発メモリ２５６の制御情報のアドレス管理テーブル２６２Ａ及び構成情報のアドレス管理テーブル２６２Ｂに従って、構成情報及び制御情報を格納する不揮発メモリ２５５のアドレス（不揮発メモリアドレス）を決定し、当該不揮発メモリアドレスに対応するレコードの共有メモリアドレス２６２２、２６２５に、当該構成情報又は制御情報が格納されていた共有メモリ２５４のアドレスを格納するとともに、データ長２６２３、２６２６に、当該構成情報又は制御情報のデータ長を格納する（ステップＳ４２）。
【００８３】
次いで、プロセッサ２５２は、構成情報及び制御情報と共に、当該構成情報及び制御情報を格納する不揮発メモリアドレスをメモリコントローラ２５１に渡す。メモリコントローラ２５１は、プロセッサ２５２から渡された構成情報及び制御情報を暗号化して（ステップＳ４３）、不揮発メモリ２５５の指定された不揮発メモリアドレスに格納する（ステップＳ４４）。次いで、プロセッサ２５２は、電圧監視制御部２５７により、当該メモリボード２５０への電力供給を切断させる（ステップＳ４５）。
【００８４】
本実施形態においては、上記データ退避処理に係るメモリコントローラ２５１、キャッシュメモリ２５３、共有メモリ２５４、不揮発メモリ２５５、２５６、及びプロセッサ２５２が同一のメモリボード上２５０にあるので、データ退避処理を迅速に行うことができる。
【００８５】
図８は、本発明の第1実施形態に係るデータの退避を説明する図である。
【００８６】
上記した図７に示すデータ退避処理が実行されると、キャッシュメモリ２５３に格納されたダーティデータであるデータｄ２が不揮発メモリ２５５に退避される。また、共有メモリ２５４の構成情報２６１も不揮発メモリ２５５に退避される。また、共有メモリ２５４の制御情報２６０の内でデータｄ２の制御情報も不揮発メモリ２５５に退避される。この際には、不揮発メモリ２５６には、不揮発メモリ２５５に退避させた、データｄ２、構成情報、及び制御情報の元の格納先を示すアドレス管理テーブル２６２が格納される。
【００８７】
図９は、本発明の第1実施形態に係るデータ復旧処理のフローチャートである。
【００８８】
データ復旧処理は、ディスク制御装置２００の電源が復帰した場合に開始され（ステップＳ５１）、まず、Ｉ／Ｏプロセッサ２２０が、不揮発メモリ２５６内のアドレス管理テーブル２６２を参照し（ステップＳ５２）、復旧すべきデータ等（キャッシュデータ、構成情報、制御情報）が格納されているか否かを判定する（ステップＳ５３）。なお、データ等が格納されているか否かは、アドレス管理テーブル２６２の共有メモリアドレス２６２２、２６２５、又はキャッシュメモリアドレス２６２８にアドレスが格納されているか否かによって判定できる。
【００８９】
この判定の結果、復旧すべきデータ等が格納されている場合（ステップＳ５３のＹｅｓ）には、Ｉ／Ｏプロセッサ２２０は、メモリコントローラ２５１にアドレス管理テーブル２６２に従って不揮発メモリ２５５の対応するアドレスからデータ等をリードさせ、更に当該リードしたデータ等を復号化させ、該当するデータ等のアドレスを揮発メモリ（キャッシュメモリ２５３又は共有メモリ２５４）用のアドレスに変換する（ステップＳ５６）。すなわち、アドレス管理テーブル２６２から対応するデータ等の共有メモリアドレス２６２２、２６２５、又はキャッシュメモリアドレス２６２８を取得する。
【００９０】
次いで、Ｉ／Ｏプロセッサ２２０は、メモリコントローラ２５１により、変換したアドレスに基づいてデータ等を共有メモリ２５４又はキャッシュメモリ２５３に書き込ませ（ステップＳ５７）、復旧すべき他のデータ等があるか否かを判定し（ステップＳ５８）、復旧すべき他のデータがある場合（ステップＳ５８のＹｅｓ）には、上記ステップＳ５４からの処理を繰り返し実行することにより、データ退避前のダーティデータ及びダーティデータに関する構成情報及び制御情報を元の状態に復旧する。これにより、ダーティデータについてデータ退避前と同様に各種処理に利用することができるようになる。
【００９１】
一方、復旧すべきデータ等が格納されていない場合（ステップＳ５３のＮｏ）、又は復旧すべき全てのデータの復旧を終えた場合（ステップＳ５８のＮｏ）には、通常のＩ／Ｏ処理に移行する（ステップＳ５９）。
【００９２】
本実施形態にかかるメモリボード２５０は、上述のようにディスク制御装置２００に対して着脱可能であり、また、メモリボード２５０の不揮発メモリ２５５には、キャッシュデータが退避される。このため、キャッシュデータが退避されたメモリボード２５０がディスク制御装置２００から取り外されて、他のディスク制御装置２００に装着されるとキャッシュデータの内容が漏洩してしまう虞がある。そこで、本実施形態では、以下のデータ復旧判定処理を実行するようにして、メモリボード２５０に退避されているデータが漏洩しないようにしている。
【００９３】
図１０は、本発明の第1実施形態に係るデータ復旧判定処理のフローチャートである。
【００９４】
Ｉ／Ｏプロセッサ２２０は、ディスク制御装置２００のメモリボードスロットにメモリボード２５０が挿入されたことを検出すると（ステップＳ６１）、装着されたメモリボード２５０の不揮発メモリ２５６からメモリボード２５０の固有識別子２６３を取得し、当該固有識別子２６３と、当該メモリボード２５０が装着されたスロットの番号とに基づいてデータ復旧の要否を判定する（ステップＳ６２）。本実施形態では、Ｉ／Ｏプロセッサ２２０は、コントロールユニット２３０から以前に装着されていたメモリボード２５０の固有識別子及びスロット番号を取得し、新たに装着されたメモリボード２５０の固有識別子２６３及びスロット番号と一致するか否かにより復旧の要否を判定している。すなわち、固有識別子２６３及びスロット番号が一致する場合には、メモリボード２５０を一時的に取り除き、同一のメモリボード２５０を再び同じスロットに挿入したことを意味しているので、データの復旧を行うこととし、固有識別子２６３が違う場合には、メモリボードが当該ディスク制御装置２００に以前に装着されていたものではないので、当該メモリボードのデータが漏洩することを防止するためにデータの復旧を行わず、また、固有識別子が同じでもスロット番号が違うと、データ退避時とは違う接続をしていることを意味しているので、データの復旧を行わないこととしている。
【００９５】
上記判定の結果、データ復旧が必要ないと判定した場合（ステップＳ６３のＮｏ）には、確実にデータの漏洩を防止するために、Ｉ／Ｏプロセッサ２２０は、メモリコントローラ２５１により、不揮発メモリ２５５のデータを初期化し、例えば、全ての記憶領域に“０”を書き込み（ステップＳ６４）、通常Ｉ／Ｏの処理へ移行する（ステップＳ６６）。
【００９６】
一方、データ復旧が必要あると判定した場合（ステップＳ６３のＹｅｓ）には、データ復旧処理（ステップＳ６５：図９のステップＳ５２以降の処理と同様）を実行し、通常Ｉ／Ｏの処理へ移行する（ステップＳ６６）。
【００９７】
次に、上記第１実施形態に係る計算機システムの変形例について説明する。
【００９８】
図１１は、本発明の変形例に係る計算機システムの構成図である。なお、第１実施形態と同様な機能部分には、同一番号を付し、説明を省略する。
【００９９】
変形例に係るディスクサブシステム１０１のディスク制御装置２０１は、第１実施形態に係るディスク制御装置２００におけるチャネルアダプタ２１０に代えてチャネルアダプタ２１２を備え、ディスクアダプタ２７０に代えてディスクアダプタ２７２を備え、メモリボード２５０の共有メモリ２５４をメモリボード２５０と異なる共有メモリボード２６５に備え、Ｉ／Ｏプロセッサ２２０を取り除いた構成となっている。
【０１００】
チャネルアダプタ２１２は、チャネルアダプタ２１０に対してプロセッサ２１３を更に備えている。ディスクアダプタ２７２は、ディスクアダプタ２７０にプロセッサ２７３を更に備えている。プロセッサ２１３及びプロセッサ２７３は、Ｉ／Ｏプロセッサ２２０によって実現されていた処理を分散して実行する。
【０１０１】
このようなディスク制御装置２０１においても、上記した図７、図９、図１０と同様な処理を実行することができ、同様な効果を得ることができる。この場合においては、図７、図９においてプロセッサ２５２が実行していた処理は、例えば、プロセッサ２１３、２７３のいずれかが実行すればよく、また、図１０におけるＩ／Ｏプロセッサ２２０の処理は、例えば、プロセッサ２１３、２７３のいずれかが実行すればよい。
＜第２実施形態＞
図１２は、本発明の第２実施形態に係る計算機システムの構成図である。なお、第１実施形態と同様な機能部分には、同一番号を付すこととする。
【０１０２】
ディスク制御装置２０２は、同一の構成を有する複数のクラスタ２０３を有している。各クラスタ２０３は、例えば、一つの制御ボードサブシステム制御ボードにより構成され、チャネルアダプタ２１０と、Ｉ／Ｏプロセッサ２８０と、サブシステムコントローラ２８１と、揮発メモリ２８２と、不揮発メモリ２８３と、ディスクアダプタ２７０と、電圧監視制御部２５７とを有している。
【０１０３】
電源回路４００は、例えば、外部の商用電源から供給される電力をディスク制御装置２０２の各部に供給する。本実施形態では、電源回路４００は、多重化されておらず、複数のクラスタ２０３の各部に電力を供給するようになっている。なお、電源回路４００を複数備えるようにして、それぞれが各クラスタ２０３に電力を供給するようにしてもよい。
【０１０４】
バッテリ５００は、電力を蓄積しており、ディスク制御装置２０２の所定の部位に供給できるようになっている。本実施形態では、本実施形態では、バッテリ５００は、多重化されておらず、複数のクラスタ２０３の所定の部位に電力を供給するようになっている。なお、バッテリ５００を複数備えるようにして、それぞれが各クラスタ２０３の所定の部位に電力を供給するようにしてもよい。
【０１０５】
Ｉ／Ｏプロセッサ２８０は、揮発メモリ２８２に読み出されたプログラムを実行することによりクラスタ２０３の全体の動作を制御する。Ｉ／Ｏプロセッサ２８０は、チャネルアダプタ２１０と、揮発メモリ２８２と、不揮発メモリ２８３と、ディスクアダプタ２７０との間でのサブシステムコントローラ２８１によるデータの受け渡しを制御する。例えば、チャネルアダプタ２１０が受信したデータを揮発メモリ２８２に格納させる制御を行う。また、Ｉ／Ｏプロセッサ２８０は、揮発メモリ２８２に格納されたデータを、ディスクアダプタ２７０に渡したり、チャネルアダプタ２１０に渡したりする制御を行う。また、Ｉ／Ｏプロセッサ２８０は、ディスクアダプタ２７０が記憶デバイス３１０から取得したデータを揮発メモリ２８２に格納させる制御を行う。また、Ｉ／Ｏプロセッサ２８０は、不揮発メモリ２８３に退避格納したデータを揮発メモリ２８２に復旧するための処理を行う。
【０１０６】
サブシステムコントローラ２８１は、チャネルアダプタ２１０、ディスクアダプタ２７０、揮発メモリ２８２、不揮発メモリ２８３、プロセッサ２８０、及び他のクラスタ２０３のサブシステムコントローラ２８１に接続されており、各部でやりとりするデータの中継を行う。この構成により、サブシステムコントローラ２８１は、Ｉ／Ｏプロセッサ２８０の制御によって、チャネルアダプタ２１０を介してホスト装置１０から受信したライトデータを揮発メモリ２８２に格納させると共に、ライトデータを他のクラスタ２０３のサブシステムコントローラ２８１に送信して、ライトデータを他のクラスタ２０３側の揮発メモリ２８２に格納させることができる。また、本実施形態では、サブシステムコントローラ２８１は、Ｉ／Ｏプロセッサ２８０の制御によって、データを他のクラスタ２０３のサブシステムコントローラ２８１に送信して、他のクラスタ２０３の不揮発メモリ２８３に格納させることや、他のクラスタ２０３の不揮発メモリ２８３からデータを読み出すことができる。
【０１０７】
また、サブシステムコントローラ２８１は、不揮発メモリ２８３の複数の不揮発メモリデバイス２８３１（図１３参照）により構成されるＲＡＩＤグループへのデータ格納処理を実行する。例えば、サブシステムコントローラ２８１は、ＲＡＩＤグループに格納する際には、格納対象のデータを所定のデータ単位に分割すると共に、複数個（例えば、３つ）のデータ単位毎に、それらデータ単位毎のパリティをパリティ生成回路２８１１により生成し、これら複数個のデータ単位と作成したパリティとをＲＡＩＤグループ内の異なる不揮発メモリデバイス２８３１に格納する。本実施形態では、サブシステムコントローラ２８１は、データ単位と、パリティとを暗号化して不揮発メモリデバイス２８３１に格納する。
【０１０８】
次に、揮発メモリ２８２及び不揮発メモリ２８３について詳細に説明する。
【０１０９】
図１３は、本発明の第２実施形態に係るストレージ制御装置の一部を詳細に説明する図である。
【０１１０】
揮発メモリ２８２は、第１実施形態の共有メモリ２５４及びキャッシュメモリ２５３と同様な各種情報を記憶する。記憶する情報としては、例えば、ホスト装置１０とのやりとりが行われるデータに関する構成情報２６１（例えば、記憶デバイス３１０のどこに格納されるかを示す情報）及び制御情報２６０（例えば、揮発メモリ２８２のどこに格納されるかを示す情報）とがある。また、揮発メモリ２８２は、チャネルアダプタ２１０により受信されたデータや、ディスクアダプタ２７０により記憶デバイス３１０から取得されたデータを一時的に記憶する。揮発メモリ２８２は、例えば、個別に入出力動作が可能な複数の揮発メモリデバイスによって構成されている。
【０１１１】
不揮発メモリ２８３は、例えば、フラッシュメモリ、ＭＲＡＭ（Magnetoresistive Random Access Memory）、ＰＲＡＭ（Phase change RAM）等の電源を供給せずともデータを記憶しておくことのできるメモリである。不揮発メモリ２８３は、複数の不揮発メモリデバイス２８３１によって構成されている。不揮発メモリ２８３は、例えば、揮発メモリ２８２に格納されたデータ（キャッシュデータ、構成情報、制御情報）を退避格納するために用いられる。本実施形態では、キャッシュデータ、構成情報、及び制御情報については、複数のクラスタ２０３の不揮発メモリ２８３の複数の不揮発メモリデバイス２８３１によって構成されたＲＡＩＤグループに対して格納するようにしている。ＲＡＩＤグループに格納する際には、例えば、ＲＡＩＤレベル２〜５のいずれであってもよい。これらのＲＡＩＤレベルであれば、不揮発メモリ２８３に必要となる容量を抑えつつ、データの信頼性を向上することができる。また、不揮発メモリ２８３は、不揮発メモリ２８３に退避格納されたデータを元の状態に復旧するためのアドレス管理テーブル２６２を記憶する。なお、アドレス管理テーブル２６２における不揮発メモリアドレス２６２１、２６２４、２６２７は、第２実施形態では、不揮発メモリ２８３の物理的なアドレスでなく、ＲＡＩＤグループの論理的な記憶領域でのアドレス（論理アドレス）となっている。サブシステムコントローラ２８１は、この論理アドレスから物理的なアドレス（すなわち、どの不揮発メモリデバイス２８３１（他のクラスタ２０３の不揮発メモリデバイス２８３１も含む）のどのアドレスであるか）を特定することができるようになっている。また、アドレス管理テーブル２６２の共有メモリアドレス２６２２、共有メモリアドレス２６２５、及びキャッシュメモリアドレス２６２８には、揮発メモリ２８２におけるアドレスが格納される。
【０１１２】
図１４は、本発明の第２実施形態に係るデータ退避処理のフローチャートである。
【０１１３】
データ退避処理は、電圧監視制御部２５７が、電源障害、例えば、電源回路４００から供給される電圧が異常値を示していることを検出したことによって開始される（ステップＳ７１）。電圧監視制御部２５７は、Ｉ／Ｏプロセッサ２８０に、電圧異常が発生したことを通知するとともに、クラスタ２０３（サブシステム制御ボード）の各部に供給する電力を、電源回路４００から供給される電力からバッテリ５００から供給される電力に切り替える（ステップＳ７２）。これによって、サブシステム制御ボードの各部は、バッテリ５００から供給される電力によって動作を継続することができる。このため、揮発メモリ２８２は、データの記憶を維持しておくことができる。
【０１１４】
Ｉ／Ｏプロセッサ２８０は、揮発メモリ２８２の制御情報２６０を参照し（ステップＳ７３）、揮発メモリ２８２中の１つの揮発メモリデバイスを処理対象として未退避のダーティデータがあるか否かを判定する（ステップＳ７４）。
【０１１５】
ステップＳ７４の判定の結果、揮発メモリデバイスに未退避のダーティデータがあると判定した場合（ステップＳ７４のＹｅｓ）には、Ｉ／Ｏプロセッサ２８０は、当該揮発メモリデバイスからダーティデータを読み出し（ステップＳ７５）、不揮発メモリ２８３のアドレス管理テーブル２６２に従って、当該ダーティデータを格納する不揮発メモリ２８３の論理アドレスを決定し、当該不揮発メモリ２８３の論理アドレスに対応するレコードのキャッシュメモリアドレス２６２８に、当該ダーティデータが格納されていた揮発メモリ２８２のアドレスを格納し、また、データ長２６２９に当該ダーティデータのデータ長を格納する（ステップＳ７６）。
【０１１６】
次いで、Ｉ／Ｏプロセッサ２８０は、ダーティデータと共に、当該ダーティデータを格納する不揮発メモリ２８３の論理アドレスをサブシステムコントローラ２８１に渡す。サブシステムコントローラ２８１は、Ｉ／Ｏプロセッサ２８０から渡されたダーティデータを所定の大きさ（データ量）のデータ単位に分割して、複数のデータ単位毎に、それらデータ単位に対応するパリティを生成し（ステップＳ７７）、複数のデータ単位及び作成したパリティを暗号化する（ステップＳ７８）。次いで、サブシステムコントローラ２８１は、指定された不揮発メモリ２８３の論理アドレスに基づいて、各データ単位及びパリティのそれぞれを格納する物理アドレスを特定し、対応する物理アドレスが示す不揮発メモリデバイス２８３１に各データ単位及びパリティを格納する（ステップＳ７９）。本実施形態では、他のクラスタ２０３の不揮発メモリデバイス２８１３にも格納される。これによって、データ及びそれらデータに対応するパリティが複数の不揮発メモリデバイス２８３１に亘って分散して格納されることになる。したがって、いずれか１つの不揮発メモリデバイス２８３１に障害が発生しても元のデータが復元できることとなる。また、ダーティデータは、暗号化されて不揮発メモリ２８３に格納されているので、不揮発メモリ２８３からデータが読取られても、当該データからもとのデータを容易に把握することができないため、情報が漏洩することを適切に防止することができる。
【０１１７】
次いで、Ｉ／Ｏプロセッサ２８０は、同じ揮発メモリデバイスを対象に、上記したステップＳ７３からの処理を繰り返す。このように処理を繰り返すことによって、同じ揮発メモリデバイスに格納されているすべてのダーティデータを不揮発メモリ２８３に退避させることができる。
【０１１８】
一方、ステップＳ７４の判定の結果、揮発メモリデバイスに未退避のダーティデータがないと判定した場合（ステップＳ７４のＮｏ）には、対象の揮発メモリデバイスにダーティデータが存在しない、又は当該揮発メモリデバイスのすべてのダーティデータを退避させたことを示しているので、Ｉ／Ｏプロセッサ２８０は、電圧監視制御部２５７により、当該揮発メモリデバイスへの電力供給を切断させ（ステップＳ８０）、ダーティデータを退避する処理の対象となる他の揮発メモリデバイスがあるか否かを判定する（ステップＳ８１）。
【０１１９】
ステップＳ８１の結果、ダーティデータを退避する処理の対象となる他の揮発メモリデバイスがある場合（ステップＳ８１のＹｅｓ）には、他の揮発メモリデバイスに対して上記同様のステップＳ７３からの処理を実行する。
【０１２０】
一方、ステップＳ８１の結果、ダーティデータを退避する処理の対象となる他の揮発メモリデバイスがない場合（ステップＳ８１のＮｏ）には、揮発メモリ２８２のすべてのダーティデータの退避が完了したことを意味しているので、Ｉ／Ｏプロセッサ２８０は、揮発メモリ２８２から構成情報２６１と、制御情報２６０のうちのダーティデータに関する制御情報を読み出し（ステップＳ８１）、不揮発メモリ２８３のアドレス管理テーブル２６２に従って、当該構成情報２６１及び制御情報２６０を格納する不揮発メモリ２８３の論理アドレスを決定し、当該不揮発メモリの論理アドレスに対応するレコードの共有メモリアドレス２６２２又は２６２５に、当該構成情報２６１又は制御情報２６０が格納されていた揮発メモリ２８２のアドレスを格納し、また、データ長２６２３、２６２６に当該構成情報２６１又は制御情報２６０のデータ長を格納する（ステップＳ８３）。
【０１２１】
次いで、Ｉ／Ｏプロセッサ２８０は、構成情報２６１及び制御情報２６０と共に、格納する不揮発メモリ２８３の論理アドレスをサブシステムコントローラ２８１に渡す。サブシステムコントローラ２８１は、Ｉ／Ｏプロセッサ２８０から渡された構成情報２６１及び制御情報２６０を所定の大きさ（データ量）のデータ単位に分割して、所定数のデータ単位毎に、それらデータ単位に対応するパリティを生成し（ステップＳ８４）、複数のデータ単位及び作成したパリティを暗号化する（ステップＳ８５）。次いで、サブシステムコントローラ２８１は、指定された不揮発メモリ２８３の論理アドレスに基づいて、各データ単位及びパリティのそれぞれを格納する物理アドレスを特定し、対応する物理アドレスが示す不揮発メモリデバイス２８３１に各データ単位及びパリティを格納する（ステップＳ８６）。これによって、データ及びそれらデータに対応するパリティが複数の不揮発メモリデバイス２８３１に亘って分散して格納されることになる。したがって、いずれか１つの不揮発メモリデバイス２８３１に障害が発生しても元のデータが復元できることとなる。
【０１２２】
次いで、Ｉ／Ｏプロセッサ２８０は、電圧監視制御部２５７により、クラスタ２０３のすべての部位への電力供給を切断させる（ステップＳ８７）。
【０１２３】
図１５は、本発明の第２実施形態に係るデータ復旧処理のフローチャートである。
【０１２４】
データ復旧処理は、ディスク制御装置２０２の電源が復帰した場合に開始され（ステップＳ９１）、まず、Ｉ／Ｏプロセッサ２８０が、不揮発メモリ２８３内のアドレス管理テーブル２６２を参照し（ステップＳ９２）、復旧すべきデータ等（キャッシュデータ、構成情報、及び制御情報）が格納されているか否かを判定する（ステップＳ９３）。なお、データ等が格納されているか否かは、アドレス管理テーブル２６２の共有メモリアドレス２６２２、２６２５、又はキャッシュメモリアドレス２６２８にアドレスが格納されているか否かによって判定できる。
【０１２５】
この判定の結果、復旧すべきデータ等が格納されている場合（ステップＳ９３のＹｅｓ）には、Ｉ／Ｏプロセッサ２８０は、サブシステムコントローラ２８１にアドレス管理テーブル２６２から取得した不揮発メモリ２８３の論理アドレスを渡す。サブシステムコントローラ２８１は、当該論理アドレスに対応する物理アドレスを特定し、当該物理アドレスが示す不揮発メモリ２８３からデータ等をリードし、更に当該リードしたデータ等を復号化し（ステップＳ９５）、各データ等のパリティチェックを行う（ステップＳ９６）。これによって、所定数のデータ単位と、これに対応するパリティとが所定の関係を有する場合には、データが正しいことを意味しているのでそのまま次の処理を行う一方、所定の関係を有していない場合には、データを再生して次の処理を行う。
【０１２６】
次いで、サブシステムコントローラ２８１は、複数のデータ単位をもとの並びに並べることによりもとのデータにし、Ｉ／Ｏプロセッサ２８０に渡す。Ｉ／Ｏプロセッサ２８０は、アドレス管理テーブル２６２の共有メモリアドレス２６２２、共有メモリアドレス２６２５、又はキャッシュメモリアドレス２６２８からデータが退避時に格納されていた揮発メモリ２８２のアドレスを取得する（ステップＳ９７）。次いで、Ｉ／Ｏプロセッサ２８０は、サブシステムコントローラ２８１により、取得した揮発メモリ２８２のアドレスに不揮発メモリ２８３から取得したデータを格納させる（ステップＳ９８）。なお、本実施形態では、他のクラスタのサブシステムコントローラ２８１に対しても、同様に、他のクラスタ２０３の揮発メモリ２８２に対してデータを格納させる。これにより、複数のクラスタの不揮発メモリ２８２の状態を同じにすることができる。
【０１２７】
次いで、Ｉ／Ｏプロセッサ２８０は、復旧すべき他のデータ等があるか否かを判定し（ステップＳ９９）、復旧すべき他のデータがある場合（ステップＳ９９のＹｅｓ）には、上記ステップＳ９４からの処理を繰り返し実行することにより、データ退避前のダーティデータ及ぶダーティデータに関する構成情報及び制御情報を元の状態に復旧する。これにより、ダーティデータについてデータ退避前と同様に各種処理に利用することができるようになる。
【０１２８】
一方、復旧すべきデータ等が格納されていない場合（ステップＳ９３のＮｏ）、又は復旧すべき全てのデータの復旧を終えた場合（ステップＳ９９のＮｏ）には、通常のＩ／Ｏ処理に移行する（ステップＳ１００）。
【０１２９】
以上、本発明を一実施形態に基づいて説明したが、本発明は上述した実施形態に限られず、他の様々な態様に適用可能である。
【０１３０】
例えば、上記各実施形態おいて、記憶デバイス３１０として、ハードディスクドライブ（ＨＤＤ）を用いた例を示していたが、本発明はこれに限られず、例えば、ハードディスクドライブの少なくとも一部、又は全部を、ＤＶＤドライブ、磁気テープドライブ、フラッシュメモリデバイス等のデータを記憶可能な他の記憶デバイスに置き換えるようにしてもよい。
【０１３１】
また、上記第１実施形態において、共有メモリ２５４を揮発メモリとして説明していたが、本発明はこれに限られず、例えば、不揮発メモリとしてもよい。共有メモリ２５４を不揮発メモリとした場合にあっては、データ退避を行う際に制御情報２６０、構成情報２６１の退避処理を行わずに済む。
【０１３２】
また、上記第１実施形態では、キャッシュメモリ２５３と共有メモリ２５４とを物理的に分離した構成として説明したが、これに限られず、キャッシュメモリ２５３と共有メモリ２５４とを１つの集合体としてもよい。
【０１３３】
また、上記第１実施形態では、不揮発メモリ２５５と不揮発メモリ２５６とを物理的に分離した構成として説明したが、これに限られず、不揮発メモリを１つの集合体として構成してもよい。
【０１３４】
上記各実施形態では、データ量が変化しない暗号化を用いていたが、本発明はこれに限られず、例えば、データ量が変化する暗号化を行うようにしてもよい。なお、この場合には、アドレス管理テーブル２６２に格納するデータ長を暗号化後のデータ長にするようにする必要がある。
【０１３５】
また、上記各実施形態において、キャッシュメモリ２５３のダーティデータをそのままのデータ長で不揮発メモリ２５５に格納していたが、本発明はこれに限られず、例えば、キャッシュメモリ２５３のダーティデータを圧縮した後に、不揮発メモリ２５５に格納するようにしてもよい。このようにすると、不揮発メモリ２５５における記憶効率を向上させることができると共に、不揮発メモリ２５５への書き込み処理に要する時間を短縮することができる。
【０１３６】
また、上記第２実施形態において、各クラスタ２０３に同様に不揮発メモリ２８３を備えるようにし、複数のクラスタ２０３の不揮発メモリ２８３により構成されたＲＡＩＤグループにダーティデータを退避するようにしていたが、本発明はこれに限られず、例えば、一方のクラスタ２０３にのみ不揮発メモリ２８３を備え、ダーティデータの退避に用いるようにしてもよい。
【図面の簡単な説明】
【０１３７】
【図１】本発明の第１実施形態に係る計算機システムの構成図である。
【図２】本発明の第1実施形態に係るメモリボードの構成図である。
【図３】図３Ａは、本発明の第1実施形態に係る制御情報及び構成情報の一例を示す図である。図３Ｂは、本発明の第1実施形態に係る制御情報及び構成情報の一例を示す図である。
【図４】図４Ａは、本発明の第1実施形態に係る制御情報についてのアドレス管理テーブルの一例を示す図である。図４Bは、本発明の第1実施形態に係る構成情報についてのアドレス管理テーブルの一例を示す図である。図４Cは、本発明の第1実施形態に係るキャッシュデータについてのアドレス管理テーブルの一例を示す図である。
【図５】図５Ａは、本発明の第1実施形態に係るライトアクセス要求時処理のフローチャートである。図５Bは、本発明の第1実施形態に係るリードアクセス要求時処理のフローチャートである。
【図６】本発明の第1実施形態に係るディスクサブシステムにおけるステージ及びデステージを説明する図である。
【図７】本発明の第1実施形態に係るデータ退避処理のフローチャートである。
【図８】本発明の第1実施形態に係るデータの退避を説明する図である。
【図９】本発明の第1実施形態に係るデータ復旧処理のフローチャートである。
【図１０】本発明の第1実施形態に係るデータ復旧判定処理のフローチャートである。
【図１１】本発明の変形例に係る計算機システムの構成図である。
【図１２】本発明の第２実施形態に係る計算機システムの構成図である。
【図１３】本発明の第２実施形態に係るストレージ制御装置の一部を詳細に説明する図である。
【図１４】本発明の第２実施形態に係るデータ退避処理のフローチャートである。
【図１５】本発明の第２実施形態に係るデータ復旧処理のフローチャートである。
【符号の説明】
【０１３８】
１０  ホスト装置、２０  ネットワーク、１００  ディスクサブシステム、２００  ディスク制御装置、２１０  チャネルアダプタ、２２０  Ｉ／Ｏプロセッサ、２３０  コントロールユニット、２４０  接続部、２５０  メモリボード、２５１  メモリコントローラ、２５２  プロセッサ、２５３  キャッシュメモリ、２５４  共有メモリ、２５５  不揮発メモリ、２５６  不揮発メモリ、２５７  電圧監視制御部、２７０  ディスクアダプタ、３００  記憶装置、３１０  記憶デバイス、４００  電源回路、５００  バッテリ。
【図１】
2008192028.tif 000003
【図２】
2008192028.tif 000004
【図３】
2008192028.tif 000005
【図４】
2008192028.tif 000006
【図５】
2008192028.tif 000007
【図６】
2008192028.tif 000008
【図７】
2008192028.tif 000009
【図８】
2008192028.tif 000010
【図９】
2008192028.tif 000011
【図１０】
2008192028.tif 000012
【図１１】
2008192028.tif 000013
【図１２】
2008192028.tif 000014
【図１３】
2008192028.tif 000015
【図１４】
2008192028.tif 000016
【図１５】
2008192028.tif 000017