(57)【要約】【課題】本発明の課題は、不意の電源遮断等によるバックアップ時に、揮発性キャッシュメモリに保持されているデータを効率的かつ確実に保存し、データの消失を防止することである。【解決手段】本発明のストレージ装置は、不揮発性キャッシュメモリの一部をキャッシュ常駐化領域に設定し、不意の電源遮断等の緊急時には、揮発性キャッシュメモリにキャッシュされているデータのうち、ダーティなデータをそのキャッシュ管理情報とともに不揮発性キャッシュメモリのキャッシュ常駐化領域以外の領域にバックアップする。また、ストレージ装置は、揮発性キャッシュメモリにキャッシュされたダーティデータが不揮発性キャッシュメモリのバックアップ領域内に確実に収まるように、揮発性キャッシュメモリのダーティデータの量を監視し、当該ダーティデータの量が所定の閾値を超える場合には、キャッシュ常駐化領域を解放して、バックアップ領域を確保する。【選択図】図１
2009075759.tif 000002
【特許請求の範囲】
【請求項１】
データセット群を格納するための複数の論理ボリュームが形成されたディスクデバイスと、前記ディスクデバイスを制御するディスクコントローラとを備えたストレージ装置であって、
前記ディスクコントローラは、
ホスト装置からのアクセス要求を受け付けるホストインターフェースと、
前記ディスクデバイスに接続されたディスクインターフェースと、
前記ホストインターフェース及び前記ディスクインターフェースに接続され、揮発性キャッシュメモリ及び不揮発性キャッシュメモリを含むキャッシュメモリ部と、を備え、
前記ディスクコントローラは、
前記ディスクデバイス上の第１の論理ボリュームに格納された第１のデータセットを前記不揮発性キャッシュメモリに形成されたキャッシュ常駐化領域に常駐させ、
前記ホストインターフェースは、
前記ホスト装置から書き込み要求を受け付ける毎に、該書き込み要求に従う第２のデータセットを前記揮発キャッシュメモリの所定の領域に書き込み、該書き込まれた第２のデータセットに対するキャッシュ管理情報のダーティ属性をオンにし、
前記ディスクインターフェースは、
前記揮発性キャッシュメモリの所定の領域に書き込まれた前記第２のデータセットを前記ディスクデバイス上の第２の論理ボリュームにデステージングした場合に、該デステージングされた第２のデータセットに対するキャッシュ管理情報のダーティ属性をオフにし、
前記ディスクコントローラは、
所定のバックアップ要求時に、前記揮発性キャッシュメモリに書き込まれた第２のデータセット群のうち前記ダーティ属性がオンである第２のデータセットを前記不揮発性キャッシュメモリに転送することを特徴とするストレージ装置。
【請求項２】
前記ディスクコントローラは、
前記転送された第２のデータセットを前記不揮発性キャッシュメモリの前記キャッシュ常駐化領域以外の領域に書き込むことを特徴とする請求項１記載のストレージ装置。
【請求項３】
前記ディスクコントローラは、
前記書き込み要求に従う第２のデータセットを前記揮発性キャッシュメモリに書き込む際に、すでに書き込まれた前記ダーティ属性がオンである第２のデータセット群が使用している領域のサイズを取得し、該取得された領域のサイズが所定の閾値を超えているか否かを判断し、該取得された領域のサイズが前記所定の閾値を超えていると判断する場合に、前記常駐化領域に書き込まれている第１のデータセットを前記第１の論理ボリュームにデステージングする、ことを特徴とする請求項２記載のストレージ装置。
【請求項４】
前記ディスクコントローラは、
前記第１のデータセットがデステージングされた前記不揮発性キャッシュメモリに形成されたキャッシュ常駐化領域を解除することを特徴とする請求項３記載のストレージ装置。
【請求項５】
前記ディスクコントローラは、
前記取得された領域のサイズが前記所定の閾値を超えていると判断する場合に、前記取得された領域のサイズが前記所定の閾値を超えている時間を計測し、該計測した時間が所定の時間を経過したか否かを判断し、該計測した時間が所定の時間を経過したと判断する場合に、前記常駐化領域に書き込まれている第１のデータセットを前記第１の論理ボリュームにデステージングする、ことを特徴とする請求項３記載のストレージ装置。
【請求項６】
前記ディスクコントローラは、
前記第１のデータセットに対する第１のキャッシュ管理情報及び前記第２のデータセットに対する第２のキャッシュ管理情報を記憶する共有メモリをさらに備えることを特徴とする請求項２記載のストレージ装置。
【請求項７】
前記ディスクコントローラは、
前記所定のバックアップ要求時に、前記共有メモリに記憶された前記第１のキャッシュ管理情報及び第２のキャッシュ管理情報を前記不揮発性キャッシュメモリに転送することを特徴とする請求項６記載のストレージ装置。
【請求項８】
前記ディスクコントローラは、
前記前記第２のデータセットに対するキャッシュ管理情報を前記揮発性キャッシュメモリに記憶することを特徴とする請求項２記載のストレージ装置。
【請求項９】
前記ディスクコントローラは、
前記所定のバックアップ要求時に、前記揮発性キャッシュメモリに記憶された前記キャッシュ管理情報を前記不揮発性キャッシュメモリに転送することを特徴とする請求項２記載のストレージ装置。
【請求項１０】
前記ディスクコントローラは、
前記ダーティ属性がオンである第２のデータセットが書き込まれた前記揮発性キャッシュメモリのアドレスと、該ダーティ属性がオンである第２のデータセットが書き込まれた前記不揮発性キャッシュメモリのアドレスとを対応付けたアドレスマッピングテーブルを作成することを特徴とする請求項２記載のストレージ装置。
【請求項１１】
前記ディスクコントローラは、
所定のリストア要求時に、前記作成されたアドレスマッピングテーブルに従って、前記不揮発性キャッシュメモリに書き込まれた第２のデータセットを、前記不揮発性キャッシュメモリに書き込むことを特徴とする請求項１０記載のストレージ装置。
【請求項１２】
データセット群を格納するための複数の論理ボリュームが形成されたディスクデバイスと、前記ディスクデバイスを制御するディスクコントローラとを備えたストレージ装置におけるデータバックアップ方法であって、
前記ディスクコントローラが、前記ディスクデバイス上の第１の論理ボリュームに格納された第１のデータセットを不揮発性キャッシュメモリに形成されたキャッシュ常駐化領域に常駐させるステップと、
前記ディスクコントローラが、前記ホスト装置から書き込み要求を受け付ける毎に、該書き込み要求に従う第２のデータセットを揮発キャッシュメモリの所定の領域に書き込むとともに、該書き込まれた第２のデータセットに対するキャッシュ管理情報のダーティ属性をオンにするステップと、
前記ディスクコントローラが、前記揮発性キャッシュメモリの所定の領域に書き込まれた前記第２のデータセットを前記ディスクデバイス上の第２の論理ボリュームにデステージングした場合に、該デステージングされた第２のデータセットに対するキャッシュ管理情報のダーティ属性をオフにするステップと、
前記ディスクコントローラが、所定のバックアップ要求時に、前記揮発性キャッシュメモリに書き込まれた第２のデータセット群のうち前記ダーティ属性がオンである第２のデータセットを前記不揮発性キャッシュメモリに転送するステップと、を含むことを特徴とするストレージ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置及びストレージ装置におけるデータの管理方法に関し、特にストレージ装置内のキャッシュデータのバックアップ技術に関する。
【背景技術】
【０００２】
ストレージ装置（ストレージサブシステム）には、一般に、システムパフォーマンスの向上等の観点から、キャッシュメモリが搭載されている。キャッシュメモリは、典型的には、ＤＲＡＭ等の揮発性メモリから構成されている。大容量のハードディスクドライブ（ＨＤＤ）を搭載した大規模なストレージ装置は、数〜数十ギガバイトオーダの大容量のキャッシュメモリを実装し、その稼働中、そこにアプリケーションデータをキャッシュしながら、ホスト装置に対するＩ／Ｏアクセス要求に応答する。
【０００３】
また、さらなるシステムパフォーマンスの向上を図るため、ハードディスクドライブ上に形成される論理ボリューム全体をキャッシュメモリにキャッシュする「キャッシュ常駐化機能」を備えたストレージ装置が提案されている。
【０００４】
このようなストレージ装置は、キャッシュメモリ上の膨大な量のデータが消失することを防止するため、不意の電源遮断時には二次電源であるバッテリから電源を一時的に供給して稼働状態を維持しつつ、その間に当該キャッシュメモリのデータをハードディスクドライブにデステージング（バックアップ）していた。
【０００５】
一方、近年、フラッシュメモリ等の不揮発性メモリの大容量化・低下価格化が進み、不揮発性メモリの用途は急速に広まりつつある。例えば、下記特許文献１には、キャッシュメモリの一部をフラッシュメモリで構成したハードディスク装置が開示されている。すなわち、当該特許文献１では、ハードディスク上の頻繁にアクセスされる領域のデータはフラッシュメモリに置かれ、これによって、データアクセスに際してディスクヘッドの移動を極力なくして、アクセス効率を高めるとともに、電源遮断によるキャッシュデータの消失を防止している。
【０００６】
また、下記特許文献２には、ＥＥＰＲＯＭから構成される半導体ディスク装置をハードディスクデバイスに対するキャッシュメモリとして機能させるデータ記憶システムが開示されている。具体的には、当該特許文献２では、オペレーティングシステムや使用頻度の高いアプリケーションプログラムの起動に必要な情報は半導体ディスク装置に保存され、これによって、電源投入直後であっても効果的にキャッシュ機能が発揮されるようになっている。
【特許文献１】特開平６−２３６２４１号公報
【特許文献２】特開平１０−１５４１０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
大規模なストレージ装置では、その稼働中、膨大な量のデータがハードディスクドライブにデステージングされずにキャッシュメモリ上に存在している。従って、電源遮断等の緊急時においてもかかるデータが消失しない対策を施すことが必須となる。
【０００８】
バッテリを用いた緊急時の従来のデータバックアップ方式においては、ストレージ装置は、相対的に高価なバッテリをハードディスクドライブの駆動維持のために相当量実装する必要があり、コストが嵩む傾向にあった。このため、消費電力をできるだけ低く抑えることが少ない量のバッテリで駆動を長持ちさせることになるが、データのバックアップ先がハードディスクドライブに設定されている以上、消費電力を効果的に削減することには限界があった。
【０００９】
また、電源遮断等の緊急時に、キャッシュメモリ上の全てのデータをバックアップしたのでは、バックアップ処理によるプロセッサへの負荷が高く、また、バックアップ時間もかかるため、バッテリの消費電力を低く抑えることは困難であった。
【００１０】
さらに、キャッシュメモリの一部が不揮発性メモリで構成されている場合であっても、揮発性のキャッシュメモリに格納されているデータについては、電源遮断等の緊急時にはバックアップされなければ消失してしまうという問題が残されている。しかしながら、揮発性のキャッシュメモリに保持されているデータを、電源遮断等の緊急時にハードディスクドライブにバックアップするのであれば、結局、従来のバッテリバックアップ方式における消費電力の問題に帰結することになる。それにもかかわらず、揮発性メモリ上のキャッシュデータを、キャッシュメモリとして利用している不揮発性メモリにバックアップすることは、これまで提案されていなかった。
【００１１】
さらにまた、不揮発性キャッシュメモリを電源遮断等の緊急時にバックアップメモリとして利用する場合、揮発性キャッシュメモリ上のデータを単に不揮発性キャッシュメモリに転送したのでは、クリーンデータのような本来バックアップしなくてもよいデータも転送されてしまい、効率的なバックアップ処理を実現することができない。また、不揮発性キャッシュメモリにキャッシュされ未だデステージングされていないデータが当該転送されたデータによって上書きされてしまうおそれがある。
【００１２】
そこで、本発明は、不意の電源遮断等による緊急のバックアップ要求が発生した場合においても、二次電源の下で、揮発性キャッシュメモリに保持されているデータを効率的かつ確実に保存し、データの消失を防止できるようにすることを課題とし、ひいては、当該二次電源の消費電力を削減できるようにすることを課題としている。
【００１３】
すなわち、本発明の目的は、不揮発性メモリをキャッシュメモリとして利用しつつ、バックアップ要求の発生時に、揮発性キャッシュメモリ上のデータを当該不揮発性メモリに効率的にバックアップするストレージ装置を提案することである。
【００１４】
また、本発明の目的は、不揮発性キャッシュメモリ上の一部をキャッシュ常駐化領域として利用しつつ、バックアップ要求の発生時に、揮発性キャッシュメモリ上のデータを当該キャッシュ常駐化領域以外の領域（バックアップ領域）に効率的にバックアップするストレージ装置を提案することである。
【００１５】
さらに、本発明の目的は、揮発性キャッシュメモリ上のデータを不揮発性キャッシュメモリ上のバックアップ領域に確実に保存できるようにするため、不揮発性キャッシュメモリ上に常駐するデータの量を調整するストレージ装置を提案することである。
【課題を解決するための手段】
【００１６】
本発明は、上記課題を解決するためになされたものであり、以下のような発明特定事項を含む。すなわち、ある観点によれば、本発明は、データセット群を格納するための複数の論理ボリュームが形成されたディスクデバイスと、前記ディスクデバイスを制御するディスクコントローラとを備えたストレージ装置であって、前記ディスクコントローラは、ホスト装置からのアクセス要求を受け付けるホストインターフェースと、前記ディスクデバイスに接続されたディスクインターフェースと、前記ホストインターフェース及び前記ディスクインターフェースに接続され、揮発性キャッシュメモリ及び不揮発性キャッシュメモリを含むキャッシュメモリ部と、を備える。前記ディスクコントローラは、前記ディスクデバイス上の第１の論理ボリュームに格納された第１のデータセットを前記不揮発性キャッシュメモリに形成されたキャッシュ常駐化領域に常駐させる。前記ホストインターフェースは、前記ホスト装置から書き込み要求を受け付ける毎に、該書き込み要求に従う第２のデータセットを前記揮発キャッシュメモリの所定の領域に書き込み、該書き込まれた第２のデータセットに対するキャッシュ管理情報のダーティ属性をオンにし、前記ディスクインターフェースは、前記揮発性キャッシュメモリの所定の領域に書き込まれた前記第２のデータセットを前記ディスクデバイス上の第２の論理ボリュームにデステージングした場合に、該デステージングされた第２のデータセットに対するキャッシュ管理情報のダーティ属性をオフにする。そして、前記ディスクコントローラは、所定のバックアップ要求時に、前記揮発性キャッシュメモリに書き込まれた第２のデータセット群のうち前記ダーティ属性がオンである第２のデータセットを前記不揮発性キャッシュメモリに転送し、前記キャッシュ常駐化領域以外の領域に書き込む。
【００１７】
また、本発明は、方法の発明としても把握できる。すなわち、ある観点によれば、本発明は、データセット群を格納するための複数の論理ボリュームが形成されたディスクデバイスと、前記ディスクデバイスを制御するディスクコントローラとを備えたストレージ装置におけるデータバックアップ方法であり、前記ディスクコントローラが、前記ディスクデバイス上の第１の論理ボリュームに格納された第１のデータセットを不揮発性キャッシュメモリに形成されたキャッシュ常駐化領域に常駐させるステップと、前記ディスクコントローラが、前記ホスト装置から書き込み要求を受け付ける毎に、該書き込み要求に従う第２のデータセットを揮発キャッシュメモリの所定の領域に書き込むとともに、該書き込まれた第２のデータセットに対するキャッシュ管理情報のダーティ属性をオンにするステップと、前記ディスクコントローラが、前記揮発性キャッシュメモリの所定の領域に書き込まれた前記第２のデータセットを前記ディスクデバイス上の第２の論理ボリュームにデステージングした場合に、該デステージングされた第２のデータセットに対するキャッシュ管理情報のダーティ属性をオフにするステップと、前記ディスクコントローラが、所定のバックアップ要求時に、前記揮発性キャッシュメモリに書き込まれた第２のデータセット群のうち前記ダーティ属性がオンである第２のデータセットを前記不揮発性キャッシュメモリに転送するステップと、を含む。
【００１８】
さらに、本発明は、ストレージ装置に所定の機能を実現させるプログラムの発明としても把握することができる。
【発明の効果】
【００１９】
本発明によれば、不意の電源遮断等による緊急のバックアップ要求が発生した場合においても、二次電源の下で、揮発性キャッシュメモリに保持されているデータを効率的かつ確実に保存し、データの消失を防止できるようになり、ひいては、当該二次電源の消費電力を削減できるようになる。
【発明を実施するための最良の形態】
【００２０】
次に、本発明の実施の形態について、図面を参照しつつ説明する。
【００２１】
本実施形態は、ストレージ装置内の不揮発性キャッシュメモリの一部をキャッシュ常駐化領域に設定し、不意の電源遮断等の緊急時には、揮発性キャッシュメモリにキャッシュされているデータのうち、「ダーティな」データをそのメタデータ（キャッシュ管理情報）とともに不揮発性キャッシュメモリのキャッシュ常駐化領域以外の領域（バックアップ領域）に転送する。また、本実施形態は、揮発性キャッシュメモリにキャッシュされたダーティなデータが不揮発性キャッシュメモリのバックアップ領域内に確実に収まるように、揮発性キャッシュメモリにキャッシュされたダーティデータの量を監視し、ダーティデータの量が所定の閾値を超える場合には、キャッシュ常駐化領域の全部又は一部を解放して、バックアップ領域を確保する。
【００２２】
ダーティなデータとは、キャッシュメモリ上のデータがハードディスクデバイス上の対応するデータと整合性がとれていない（一致していない）状態のデータをいう。典型的には、キャッシュメモリ上のあるデータがホスト装置からの書き込み要求によって更新されたにもかかわらず、ハードディスクデバイス上の対応するデータがまだ更新されていない場合に、キャッシュメモリ上のデータはダーティな状態となる。また、クリーンなデータとは、キャッシュメモリ上のデータとハードディスクデバイス上の対応するデータとの整合性がとれている状態のデータをいう。
【００２３】
そして、不意の電源遮断等による緊急のバックアップ要求が発生した場合には、ストレージ装置は、揮発性キャッシュメモリにキャッシュされているダーティデータ及びそのキャッシュ管理情報を不揮発性キャッシュメモリ上のバックアップ領域に直ちにバックアップする。また、ストレージ装置に揮発性メモリで構成された共有メモリが実装されている場合には、ストレージ装置は、同様に、共有メモリに保持されている各種の情報を不揮発性キャッシュメモリの当該バックアップ領域にバックアップする。
【００２４】
これによって、電源遮断等の緊急時において、揮発性キャッシュメモリ上のデータのうち特定のデータをバックアップすればよく、少ない消費電力で、かつ、高速にバックアップを行うことができるようになる。
【００２５】
図１は、本発明の実施形態に係るストレージ装置におけるデータのバックアップ／リストアメカニズムを説明するための概念図である。
【００２６】
同図に示すように、ストレージ装置４は、チャネル２を介してホスト装置３に接続され、これによってコンピュータシステム１を形成している。
【００２７】
ストレージ装置４は、ハードディスクドライブ（ＨＤＤ）等からなる複数のディスクデバイス４１と、このディスクデバイス４１に対するＩ／Ｏ処理を制御するディスクコントローラ（ＤＫＣ）４２と、これらに必要な電力を供給する電源部４３とを備える。
【００２８】
ディスクコントローラ４２は、典型的には、チャネルアダプタＣＨＡと、キャッシュメモリＣＭと、ディスクアダプタＤＫＡと、共有メモリＳＭと、を備える。本実施形態では、キャッシュメモリＣＭは、ＤＲＡＭで構成された揮発性キャッシュメモリＶＣＭとフラッシュメモリで構成された不揮発性キャッシュメモリＮＶＣＭとを含んで構成されている。また、共有メモリＳＭは、ＤＲＡＭで構成されている。そして、ディスクコントローラ４２内のこれらのコンポーネントは、図示しないプロセッサの制御の下、互いに協働して、ホスト装置３からのアクセス要求に応答して、ディスクデバイス４１にアプリケーションデータを格納し、又はそこからアプリケーションデータを読み出して、これをホスト装置３に提供する。なお、ストレージ装置４の具体的構成例及び動作例については後述する。
【００２９】
揮発性キャッシュメモリＶＣＭは、従来型のキャッシュメモリとして利用される。一方、不揮発性キャッシュメモリＮＶＣＭは、キャッシュ常駐化機能により、キャッシュ常駐化領域を提供するキャッシュメモリとして利用される。キャッシュ常駐化機能とは、特定の論理ボリューム上のデータの全部又は一部をキャッシュメモリ上に常駐させる機能である。データが常駐しているキャッシュメモリ上の領域のキャッシュ常駐化領域と呼んでいる。プロセッサは、特定の論理ボリュームに対するアクセス要求を受け付けると、キャッシュ常駐化領域に対するアクセス要求として処理が行われるように、チャネルアダプタＣＨＡに対して制御を行う。
【００３０】
すなわち、チャネルアダプタＣＨＡは、ホスト装置３からのアクセス要求に従うコマンドを共有メモリＳＭに格納し、プロセッサは、当該コマンドを解釈する。プロセッサは、解釈の結果、キャッシュ常駐化領域に対するアクセス要求であると判断する場合、不揮発性キャッシュメモリＮＶＣＭ上のキャッシュ常駐化領域に対してアクセスするように、チャネルアダプタＣＨＡを制御する。また、解釈の結果、当該アクセス要求がキャッシュ常駐化領域に対するものでないと判断する場合、揮発性キャッシュメモリＶＣＭに対してアクセスするようにチャネルアダプタＣＨＡを制御する。
【００３１】
より具体的には、読み出し要求時においては、揮発性キャッシュメモリＶＣＭに要求されたデータが存在しない場合（キャッシュミスの場合）には、ディスクアダプタＣＨＡは、共有メモリＳＭを参照して、当該要求されたデータをディスクデバイス４１から読み出して、揮発性キャッシュメモリＶＣＭに当該データを書き込み（ステージング）、共有メモリＳＭのキャッシュ管理情報を更新する。一方、書き込み要求時においては、チャネルアダプタＣＨＡは、当該要求されたデータを揮発性キャッシュメモリＶＣＭに書き込み、共有メモリＳＭのキャッシュ管理情報を更新する。この場合、揮発性キャッシュメモリＶＣＭに書き込まれたデータは、ディスクアダプタＤＫＡによってディスクデバイス４１にデステージングされない限り、ダーティな状態のままである。
【００３２】
ストレージ装置４の稼働中に、例えば不意の電源遮断等が発生した場合、データの消失を防ぐため、ストレージ装置４は、二次電源による電力供給の下、揮発性キャッシュメモリＶＣＭに書き込まれているデータを不揮発性キャッシュメモリＮＶＣＭにバックアップする。このとき、バックアップされるデータの揮発性キャッシュメモリＶＣＭ上の位置（アドレス）と不揮発性キャッシュメモリＮＶＣＭ上の位置（アドレス）とを対応付けたアドレスマッピングテーブルを作成しておく。バックアップは、例えばキャッシュメモリを制御するキャッシュメモリコントローラ（図示せず）によって実行される。バックアップされるデータは、揮発性キャッシュメモリＶＣＭに格納されている全てのデータではなく、ダーティデータ及び共有メモリＳＭに格納されたそのキャッシュ管理情報である。また、ストレージ装置４は、共有メモリＳＭに保持されているシステム構成情報等も不揮発性キャッシュメモリＮＶＭにバックアップする。
【００３３】
電源遮断等が復旧した場合、ストレージ装置４は、不揮発性キャッシュメモリＮＶＣＭにバックアップされたデータ及びそのキャッシュ管理情報を、揮発性キャッシュメモリＶＣＭ及び共有メモリＳＭの元の位置にそれぞれにリストアする。これによって、ストレージ装置４は、電源遮断等が発生した時点の状態から、直ちに、ホスト装置３に対してデータストレージサービスを提供することができるようになる。
【００３４】
図２は、本発明の実施形態に係るストレージ装置４を含むコンピュータシステム１の構成を説明するための図である。同図に示すように、コンピュータシステム１は、チャネル２を介して接続されたホスト装置３及びストレージ装置４を含み、例えば、銀行の業務システムや航空機の座席予約業務システム等として構成される。
【００３５】
チャネル２は、例えばＬＡＮ、インターネット、又はＳＡＮ（Storage Area Network）であり、ネットワークスイッチやハブ等を含んで構成される。本実施形態では、チャネル２は、ファイバーチャネルプロトコルを用いたＳＡＮ（ＦＣ−ＳＡＮ）で構成されているものとする。
【００３６】
ホスト装置３は、例えば、銀行の業務システムや航空機の座席予約業務システム等の中核をなすコンピュータである。具体的には、ホスト装置３は、プロセッサと、メインメモリと、通信インターフェースと、ローカル入出力装置等のハードウェア資源を備え、また、デバイスドライバやオペレーティングシステム（ＯＳ）、アプリケーションプログラム等のソフトウェア資源を備えている（図示せず）。これによって、ホスト装置３は、プロセッサの制御の下、各種のプログラムを実行して、ハードウェア資源との協働作用により、所望の処理を実現する。例えば、ホスト装置３は、プロセッサの制御の下、ＯＳ上で業務アプリケーションプログラムを実行することにより、以下に詳述されるストレージ装置４にアクセスし、所望の業務システムを実現する。
【００３７】
ストレージ装置４は、データストレージサービスをホスト装置３に提供する補助記憶装置である。ストレージ装置４は、物理デバイス（ＰＤＥＶ）である複数のディスクデバイス４１と、ディスクデバイス４１に対する書き込み又は読み出しといったＩ／Ｏ処理を制御するディスクコントローラ４２と、これらに必要な電力を供給する電源部４３と、を備える。
【００３８】
図３は、本発明の実施形態に係るストレージ装置４の外観構成を示す図である。同図に示すように、本実施形態のストレージ装置４は、メインユニットＭと、ディスクデバイス４１を増設するための増設ユニットＥとからなる。メインユニットＭは、ディスクデバイス４１及びディスクコントローラ４２を含んでいる。ただし、本例では、ディスクデバイス４１は示されず、これを嵌装するためのスロットＳが示されている。メインユニットＭ及び増設ユニットＥの下部には、二次電源を含む電源部４３が配設される。また、メインユニットＭは、管理装置（図示せず）を含み、システム管理者がストレージ装置４を管理できるようになっている。
【００３９】
図２に戻り、ディスクデバイス４１は、例えば、複数のハードディスクドライブ（ＨＤＤ）等の記憶媒体を含んで構成される。ディスクデバイス４１は、ディスクコントローラ４２の制御の下、ＲＡＩＤ（Redundant Arrays of Independence Disks）技術を用いて、仮想デバイス（ＶＤＥＶ）としてのＲＡＩＤグループを構成することができる。ある仮想デバイス上には、１又は複数の論理デバイス（ＬＤＥＶ）が定義される。
【００４０】
論理デバイスには、論理ユニット（ＬＵ）が割り当てられてもよい。論理デバイス及び論理ユニットはともに、ホスト装置３が認識しうる論理的な記憶装置である。論理デバイス及び論理ユニットは、ストレージ装置４が適用されるシステム環境により区別されうるが、本実施形態では両者を同義に扱うことができる。各論理ユニットには、論理ユニット番号（ＬＵＮ）が付与される。また、論理ユニットは、Ｉ／Ｏアクセスの最小単位であるブロックに分割され、各ブロックには、論理ブロックアドレス（ＬＢＡ）が割り当てられる。これにより、ホスト装置３は、ＬＵＮおよびＬＢＡからなる論理アドレスをストレージ装置４に与えることにより、特定の論理ユニットにおける任意のブロックに記憶されたデータに対してアクセスを行うことができる。
【００４１】
ディスクコントローラ４２は、マイクロプロセッサ（ＭＰ）４２１と、ローカルメモリ（ＬＭ）４２２と、チャネルアダプタ（ＣＨＡ）４２３と、キャッシュメモリ（ＣＭ）部４２４と、ディスクアダプタ（ＤＫＡ）４２５と、共有メモリ（ＳＭ）部４２６と、管理装置４２７とを備え、これらのコンポーネントは、内部スイッチ（ＳＷ）４２８を介して相互に接続されている。本実施形態では、これらのコンポーネントは、それぞれ多重化されている。
【００４２】
マイクロプロセッサ４２１は、メインメモリとして機能するローカルメモリ４２２に保持された制御プログラムを実行することにより、ディスクコントローラ４２を統括的に制御する。ローカルメモリ４２２には、ストレージ装置４のキャッシュ常駐化機能を管理する内部テーブルが保持される。内部メモリについては、後で図６を参照して説明する。
【００４３】
チャネルアダプタ４２３は、各ポート（図示せず）に対応したチャネルプロトコルデバイス（ＣＰ）を備え、チャネル２を介して当該ポートに接続されたホスト装置３との間でアクセス要求に基づく通信を行うホストインターフェースである。チャネルプロトコルデバイスは、個々のプロトコルに応じたプロトコル処理を行うためのプロセッサを備えている。
【００４４】
キャッシュメモリ部４２４は、ホスト装置３に対して高い応答性能を提供するため、ホスト装置３とディスクデバイス４１との間でやり取りされるデータを一時的に記憶（キャッシュ）するメモリである。換言すれば、キャッシュメモリ４２４は、チャネルアダプタ４２３とディスクアダプタ４２３との間のデータの受け渡しに利用される。本実施形態では、キャッシュメモリ４２５は、ＤＲＡＭで構成される揮発性キャッシュメモリ４２４１とフラッシュメモリで構成される不揮発性キャッシュメモリ４２４２とを含んで構成されている。揮発性キャッシュメモリ４２２１及び不揮発性キャッシュメモリ４２４２はそれぞれ、多重化されている。また、個々の揮発性キャッシュメモリ４２４１と不揮発性キャッシュメモリ４２４２とのメモリサイズは同等である。なお、本明細書において、単にキャッシュメモリというときは、揮発性キャッシュメモリ４２４１及び不揮発性キャッシュメモリ４２２２の双方をいうものとする。
【００４５】
キャッシュメモリ部４２４はまた、キャッシュメモリコントローラ（ＣＭＣ）４２４３を備える。キャッシュメモリコントローラ４２４３は、揮発性キャッシュメモリ４２４１及び不揮発性キャッシュメモリ４２４２に対するデータ制御を行う。また、マイクロプロセッサ４２１の指示の下、キャッシュメモリコントローラ４２４３は、後述されるバックアップ／リストア処理を行う。
【００４６】
本実施形態では、揮発性キャッシュメモリ４２４１は、通常のキャッシュメモリとして利用される。一方、不揮発性キャッシュメモリ４２４２は、平常時は、キャッシュ常駐化領域を提供するキャッシュメモリとして利用され、電源遮断等の緊急時には、揮発性キャッシュメモリ４２４１及び共有メモリ部４２６に対するバックアップメモリとして利用される。
【００４７】
すなわち、平常時においては、チャネルアダプタ４２３は、ホスト装置３から書き込み要求を受領すると、当該書き込み要求に従うデータ（書き込みデータ）をキャッシュメモリ４２４の所定の領域に書き込む。この場合、当該書き込み要求が、キャッシュ常駐化領域に常駐している論理ボリュームに対するアクセスであれば、チャネルアダプタ４２３は、不揮発性キャッシュメモリ４２４２のキャッシュ常駐化領域の対応するブロックに書き込みデータを書き込む。一方、当該書き込み要求がキャッシュ常駐化領域に常駐している論理ボリュームに対するアクセスでなければ、チャネルアダプタ４２３は、揮発性キャッシュメモリ４２４１の対応するブロックに書き込む。また、チャネルアダプタ４２３は、ホスト装置３から読み出し要求を受領すると、要求されたデータが存在するキャッシュメモリ４２４上の所定のブロックからデータを読み出して、これをホスト装置３に送出する。
【００４８】
なお、本実施形態では、１つのメモリボードに揮発性キャッシュメモリ４２４１と揮発性キャッシュメモリ４２４２とを含めた構成となっているが、物理的に独立するメモリボードに揮発性キャッシュメモリ４２２１と揮発性キャッシュメモリ４２２２とをそれぞれ含めた構成であってもよい。
【００４９】
ディスクアダプタ４２５は、各ポートに対応したチャネルプロトコルデバイスを備え、ディスクチャネルを介してポートに接続されたディスクデバイス４１に対するＩ／Ｏアクセスの制御を行うディスクインターフェースである。すなわち、ディスクアダプタ５２５は、キャッシュメモリ４２４からデータを取り出して、ディスクデバイス４１に格納し（デステージング）、また、ディスクデバイス４１からデータを読み出して、キャッシュメモリ４２４に書き込む（ステージング）。例えば、ホスト装置３からの読み出し要求を受け付けた場合であって、揮発性キャッシュメモリ４２４１及び不揮発性キャッシュメモリ４２４２のいずれにも要求されたデータが存在しない場合には、必要に応じてデステージングを行ってキャッシュ領域を確保した後、揮発性キャッシュメモリ４２４１に要求されたデータをステージングする。
【００５０】
共有メモリ部４２６は、ストレージ装置４内の各コンポーネントが参照すべき各種の情報を記憶する共有メモリモジュール４２６１と、これを制御するための共有メモリコントローラ（ＳＭＣ）４２６２とを含む。以下では、共有メモリモジュール４２６１を単に共有メモリ４２６１と呼ぶことにする。本実施形態では、共有メモリ４２６１は、ＤＲＡＭ等の揮発性メモリで構成されている。共有メモリ４２４１は、例えば、図４に示すように、システム構成情報及びキャッシュメモリ管理情報等の各種の情報を記憶する。また、共有メモリ４２６１は、揮発性キャッシュメモリ４２４１に現在保持されているダーティデータ量を記憶する。
【００５１】
管理装置４２７は、ストレージ装置４を保守・管理するための端末装置である。管理装置４４は、例えば、汎用のコンピュータが用いられる。システム管理者は、管理装置４４をインタラクティブに操作することにより、例えば、ディスクデバイス４１上に論理デバイスを定義し、またはディスクデバイス４１の増設又は減設、ＲＡＩＤ構成の設定・変更等の指示をストレージ装置４に与えることができる。また、後述するように、システム管理者は、管理装置４４をインタラクティブに操作することにより、キャッシュ常駐化領域の設定・変更・解除等の指示を行うことができる。本例では、ディスクコントローラ４２の内部コンポーネントとして構成されているが、ディスクコントローラ４２と独立のコンポーネントとして構成されても良い。
【００５２】
内部スイッチ４２８は、クロスバースイッチ等により構成されるスイッチングデバイスである。内部スイッチ４２８は、入力されるデータ信号の競合を調停し、データ信号のパスを切り替えて、送出元のモジュールと送出先のモジュールとのパスを構築する。なお、内部スイッチ４２８は、パケット交換方式のスイッチングデバイスであってもよい。
【００５３】
電源部４３は、電源コントローラ（図示せず）の制御の下、ディスクデバイス４１及びディスクコントローラ４２に電力を供給する。電源部４３は、バッテリから構成される二次電源部を含んでいる。電源コントローラは、供給電力の異常変動を監視する電源遮断検出部を備える。電源遮断検出部は、供給電力の急激な低下を検出した場合、電源遮断が発生したものとして、二次電源部からの電力供給に切り替え、マイクロプロセッサ４２１に異常割り込みをかける。
【００５４】
図４は、本発明の一実施形態に係るストレージ装置４の共有メモリ４２６１の内容を示す図である。上述したように、共有メモリ４２６１には、システム構成情報やキャッシュ管理情報が記憶される。同図では、システム構成情報と、揮発性キャッシュメモリ管理情報及び不揮発性キャッシュメモリ管理情報を含むキャッシュ管理情報とが示されている。
【００５５】
システム構成情報は、ストレージ装置４内の各コンポーネントの構成情報や各コンポーネント上で動作する制御プログラムのバージョン情報といったシステムの構成に関する情報である。
【００５６】
キャッシュ管理情報は、キャッシュメモリ上にキャッシュされたデータを管理するためのメタ情報である。すなわち、キャッシュ管理情報は、キャッシュメモリにキャッシュされている各データがディスクデバイス４１上のどの記憶領域（論理ブロック）に格納されるべきものか、当該データがダーティな状態であるか否かを管理する情報である。チャネルアダプタ４２４は、キャッシュ管理情報を参照することによって、Ｉ／Ｏアクセス要求に基づくデータがいずれのキャッシュメモリ上に存在するか否かを判断することができる。また、ディスクアダプタ４２５は、キャッシュ管理情報を参照することによって、キャッシュメモリ４２４にキャッシュされているデータを、ディスクデバイス４１上の指定された記憶領域にデステージングすることができる。
【００５７】
１ユニットのキャッシュメモリ管理情報は、所定サイズのデータブロックを管理する。従って、大きなサイズのデータは、複数ユニットのキャッシュ管理情報によって管理されることになる。キャッシュ管理情報は、テーブル構造を有するキャッシュ管理テーブルとして保持される。本実施形態では、キャッシュ管理情報は、揮発性キャッシュメモリ４２４１用の管理情報（以下、「揮発性キャッシュメモリ管理情報」という。）と不揮発性キャッシュメモリ４２４２用の管理情報（以下、「不揮発性キャッシュメモリ管理情報」という。）とからなる。
【００５８】
図５は、本発明の一実施形態に係るストレージ装置４における共有メモリ４２６１に保持されたキャッシュ管理テーブル５００の一例を示す図である。同図に示すように、キャッシュ管理テーブルにおいて、各エントリは、先頭アドレス欄５０１と、キャッシュメモリ先頭アドレス欄５０２と、ダーティ状態欄５０３と、を含んでいる。
【００５９】
先頭論理アドレス欄５０１は、データが格納される論理デバイス上のブロックの先頭アドレスを示す。キャッシュメモリ先頭アドレス欄５０２は、当該データが格納されたキャッシュメモリ（すなわち、揮発性キャッシュメモリ４２４１又は不揮発性キャッシュメモリ４２４２）上のブロックのアドレスを示す。揮発性キャッシュメモリ４２４１及び不揮発性キャッシュメモリ４２４２に一意のアドレス値を割り当てることにより、アドレス値に基づいて、データの書き込み先が揮発性キャッシュメモリ４２４１であるか、不揮発性キャッシュメモリ４２４２であるかが認識される。ダーティ状態（ダーティビット）欄５０３は、当該データがダーティデータであるか否かを示す。本例では、ダーティ状態欄５０３の値が「０」であれば、クリーンデータであることを示し、「１」であれば、ダーティデータであることを示す。
【００６０】
図６は、本発明の一実施形態に係るストレージ装置４におけるローカルメモリ４２２に保持された内部テーブル６００の一例を示す図である。同図に示すように、内部テーブル６００において、各エントリは、キャッシュメモリ番号欄６０１と、キャッシュ常駐化設定状態欄６０２と、ダーティデータ量閾値欄６０３と、キャッシュ常駐化領域サイズ欄６０４と、キャッシュ常駐化領域先頭アドレス欄６０５と、キャッシュ常駐化領域終了アドレス欄６０６と、を含んでいる。
【００６１】
キャッシュメモリ番号欄６０１は、ストレージ装置４に搭載されているキャッシュメモリを識別するためのキャッシュメモリ番号を示す。本例では、揮発性キャッシュメモリ４２４１として、ＶＣＭ＃０〜３が示され、不揮発性キャッシュメモリ４２４２として、ＮＶＣＭ＃０〜３が示されている。
【００６２】
キャッシュ常駐化設定状態欄６０２は、キャッシュメモリにキャッシュ常駐化領域が設定されているか否かを示す。キャッシュ常駐化領域は、揮発性キャッシュメモリ４２４１及び不揮発性キャッシュメモリ４２４２のいずれにも設定されうるが、本実施形態では、不揮発性キャッシュメモリ４２４２に対してキャッシュ常駐化領域が設定される。本例では、ＮＶＣＭ＃０〜１にキャッシュ常駐化領域が設定され、ＮＶＣＭ＃３にはキャッシュ常駐化領域が設定されていない。ダーティデータ量閾値６０３は、キャッシュメモリ上にキャッシュ可能なダーティデータの量の上限値を示す。ダーティデータ量閾値は、揮発性キャッシュメモリ４２４１及び不揮発性キャッシュメモリ４２４２のいずれにも設定されうるが、本実施形態では、揮発性キャッシュメモリ４２４１のそれぞれに対してダーティデータ量閾値が設定される。
【００６３】
キャッシュ常駐化領域先頭アドレス欄６０４は、設定されたキャッシュ常駐化領域の先頭アドレスを示し、また、キャッシュ常駐化領域終了アドレス欄６０４は、当該領域の終了アドレスを示す。キャッシュ常駐化領域サイズ欄６０６は、設定されたキャッシュ常駐化領域のサイズを示し、キャッシュ常駐化領域の先頭アドレス及び終了アドレスから算出される。
【００６４】
図７は、本発明の一実施形態に係るストレージ装置４に対するキャッシュ常駐化領域の設定ウィンドウを示す図である。
【００６５】
システム管理者は、管理装置４２７の画面上に表示されたキャッシュ常駐化領域の設定ウィンドウ７００を介して、キャッシュ常駐化領域の設定を行う。具体的には、キャッシュ常駐化領域の設定ウィンドウにおいて、システム管理者は、論理デバイス番号（ＬＤＥＶ＃）７０１、開始アドレス７０２及び終了アドレス７０３を入力する。また、終了アドレス７０３を入力する代わりに、キャッシュ常駐化領域サイズ７０４を入力することにより、終了アドレス７０３が自動的に算出される。管理装置４２７は、システム管理者からキャッシュ常駐化領域の設定（又は解除）指示を受け付けると、ディスクコントローラ４２のマイクロプロセッサ４２１に対してキャッシュ常駐化領域設定コマンドを送出する。これを受けて、マイクロプロセッサ４２１は、ローカルメモリ４２２上の内部テーブル６００の内容を更新する。
【００６６】
図８は、本発明の一実施形態に係るストレージ装置４におけるキャッシュ常駐化領域の設定／解除処理を説明するためのフローチャートである。
【００６７】
同図に示すように、マイクロプロセッサ４２１は、キャッシュ常駐化領域の設定コマンドを受け付け、これを解釈する（ＳＴＥＰ８０１）。マイクロプロセッサ４２１は、当該設定コマンドがキャッシュ常駐化領域設定要求であると判断する場合（ＳＴＥＰ８０１のＹｅｓ）、所定の設定許容条件が満たされるか否かを判断する（ＳＴＥＰ８０２）。ここで、所定の設定許容条件とは、ダーティデータ量閾値が、不揮発性キャッシュメモリ４２４２の容量から要求されたキャッシュ常駐化領域サイズを引いた値がよりも小さいことである。つまり、ダーティデータ量が、バックアップ領域として使用される不揮発性キャッシュメモリ４２４２のキャッシュ常駐化領域以外の領域のサイズよりも小さくなるように、キャッシュ常駐化領域が設定されることを保証する。マイクロプロセッサ４２１は、所定の設定許容条件が満たされると判断する場合（ＳＴＥＰ８０２のＹｅｓ）、ローカルメモリ４２２の内部テーブルにおける該当するエントリのキャッシュ常駐化設定状態をＯＮ（つまり「１」）にする（ＳＴＥＰ８０３）。
【００６８】
これに対して、マイクロプロセッサ４２１は、所定の設定許容条件が満たされないと判断する場合（ＳＴＥＰ８０２のＮｏ）、要求されたキャッシュ常駐化領域の設定不可を通知する（ＳＴＥＰ８０４）。
【００６９】
また、ＳＴＥＰ８０１において、マイクロプロセッサ４２１は、当該設定コマンドがキャッシュ常駐化領域解除要求であると判断する場合には（ＳＴＥＰ８０１のＮｏ）、ローカルメモリ４２２の内部テーブルにおける該当するエントリのキャッシュ常駐化設定をＯＦＦ（つまり「０」）にする（ＳＴＥＰ８０５）。
【００７０】
このようにして、ストレージ装置４は、マイクロプロセッサ４２１の制御の下、不揮発性キャッシュメモリ４２４２に対してキャッシュ常駐化領域を設定する。ストレージ装置４は、キャッシュ常駐化領域が設定されると、論理デバイスの対応するデータを不揮発性キャッシュメモリ４２４２の当該キャッシュ常駐化領域にステージングし、ホスト装置３からのアクセス要求に備える。
【００７１】
図９は、本発明の一実施形態に係るストレージ装置４のＩ／Ｏ処理を説明するためのフローチャートである。具体的には、同図は、ホスト装置３から書き込み要求を受け付けた場合の書き込み処理を説明するフローチャートである。
【００７２】
すなわち、同図に示すように、マイクロプロセッサ４２１は、ホスト装置３からチャネルアダプタ４２３を介して書き込み要求を受け付けると、ローカルメモリ４２２を参照し、書き込み要求が指定するデータの書き込み先が不揮発性キャッシュメモリ４２４２のキャッシュ常駐化領域であるか否かを判断する（ＳＴＥＰ９０１）。マイクロプロセッサ４２２は、書き込み先が不揮発性キャッシュメモリ４２４２のキャッシュ常駐化領域であると判断する場合（ＳＴＥＰ９０１のＹｅｓ）、不揮発性キャッシュメモリ４２４２に対する書き込み処理を行う（ＳＴＥＰ９０２）。不揮発性キャッシュメモリ４２４２に対する書き込み処理については、後で図１０を参照して説明する。
【００７３】
これに対して、マイクロプロセッサ４２２は、書き込み先が不揮発性キャッシュメモリ４２４２のキャッシュ常駐化領域でないと判断する場合（ＳＴＥＰ９０１のＮｏ）、書き込み要求に従うデータ（書き込みデータ）を揮発性キャッシュメモリ４２４１にキャッシュし、共有メモリ４２６１上のキャッシュ管理テーブルにおける当該書き込みデータに対するエントリを更新する（ＳＴＥＰ９０３）。このとき、共有メモリ４２６１のキャッシュ管理テーブル５００における該当するエントリのデータ属性（ダーティ状態）は「ダーティ」（つまり「１」）にセットされる。
【００７４】
マイクロプロセッサ４２１は、次に、ローカルメモリ４２２の内部テーブル６００を参照して、ダーティデータ量閾値を取得するとともに（ＳＴＥＰ９０４）、共有メモリ４２６１を参照して、現在のダーティデータ量を取得する（ＳＴＥＰ９０５）。続いて、マイクロプロセッサ４２１は、ダーティデータ量閾値と現在のダーティデータ量とを比較して、現在のダーティデータ量がダーティデータ量閾値を超えているか否かを判断する（ＳＴＥＰ９０６）。
【００７５】
マイクロプロセッサ４２１は、現在のダーティデータ量がダーティデータ量閾値を超えていないと判断する場合（ＳＴＥＰ９０６のＮｏ）、マイクロプロセッサ４２１は、書き込み処理を終了する。これに対して、マイクロプロセッサ４２１は、現在のダーティデータ量がダーティデータ量閾値を超えていると判断する場合（ＳＴＥＰ９０６のＹｅｓ）、揮発性キャッシュメモリ４２４１にキャッシュされた当該データをディスクデバイス４１の対応する領域にデステージし、当該データの属性を「クリーン」（つまり「０」）にセットする（ＳＴＥＰ９０７）。このとき、マイクロプロセッサ４２１は、当該閾値を超えている時間の計測を開始する。
【００７６】
その後、マイクロプロセッサ４２１は、現在のダーティデータ量がダーティデータ量閾値を超えている時間が予め定められた時間を経過したか否かを判断する（ＳＴＥＰ９０８）。マイクロプロセッサ４２１は、現在のダーティデータ量がダーティデータ量閾値を超えている時間が予め定められた時間を経過しなかったと判断する場合（ＳＴＥＰ９０８のＮｏ）、マイクロプロセッサ４２１は、当該書き込み要求に対する書き込み処理を終了する。これに対して、マイクロプロセッサ４２１は、現在のダーティデータ量がダーティデータ量閾値を超えている時間が予め定められた時間を経過したと判断する場合（ＳＴＥＰ９０８のＹｅｓ）、不揮発性キャッシュメモリ４２４２のキャッシュ常駐化領域に常駐しているデータをディスクデバイス４１にデステージする（ＳＴＥＰ９０９）。これにより、ダーティデータ量がバックアップ領域サイズを上回っている状態を防ぐことができる。そして、マイクロプロセッサ４２１は、ローカルメモリ４２２の内部テーブル６００における当該データのキャッシュ常駐化領域設定をＯＦＦにする（ＳＴＥＰ９１０）。
【００７７】
図１０は、本発明の一実施形態に係るストレージ装置４のＩ／Ｏ処理を説明するためのフローチャートであり、具体的には、図９におけるＳＴＥＰ９０２のキャッシュ常駐化領域に対する書き込み処理を説明するためのフローチャートである。
【００７８】
すなわち、マイクロプロセッサ４２１は、ローカルメモリ４２２の内部テーブル６００を参照し、書き込み要求が指定するデータの書き込み先が不揮発性キャッシュメモリ４２４２のキャッシュ常駐化領域であると判断する場合、当該書き込み要求に従うデータを不揮発性キャッシュメモリ４２４２のキャッシュ常駐化領域にキャッシュし（ＳＴＥＰ１００１）、マイクロプロセッサ４２２は、共有メモリ４２６１上のキャッシュ管理テーブル５００における当該書き込みデータに対するエントリを更新する（ＳＴＥＰ１００２）。
【００７９】
次に、マイクロプロセッサ４２１は、所定の設定許容条件が満たされているか否かを判断する（ＳＴＥＰ１００３）。上述したように、所定の設定許容条件とは、ダーティデータ量閾値が、不揮発性キャッシュメモリ４２４２の容量から要求されたキャッシュ常駐化領域サイズを引いた値がよりも小さいことである。マイクロプロセッサ４２１は、所定の設定許容条件が満たされると判断する場合には（ＳＴＥＰ１００３のＹｅｓ）、そのまま処理を終了する。これに対して、マイクロプロセッサ４２１は、所定の設定許容条件が満たされないと判断する場合には（ＳＴＥＰ１００３のＮｏ）、ローカルメモリ４２２の内部テーブル６００における該当するエントリのキャッシュ常駐化領域設定をＯＦＦにセットする（ＳＴＥＰ１００４）。
【００８０】
以上のように、本実施形態のストレージ装置４は、ホスト装置４から書き込み要求があると、指定された書き込み先に応じて、揮発性キャッシュメモリ４２４１又は不揮発性キャッシュメモリ４２４２に書き込みデータをキャッシュする。このとき、所定の設定許容条件が満たされていない場合には、マイクロプロセッサ４２１は、キャッシュ常駐化領域を解除して、バックアップ領域を確保する。これにより、不意の電源遮断等による緊急のバックアップ要求が発生した場合であっても、揮発性キャッシュメモリ４２４１にキャッシュされたダーティデータを、確実に、不揮発性キャッシュメモリ４２４２のバックアップ領域にバックアップすることができるようになる。
【００８１】
図１１は、本発明の一実施形態に係るストレージ装置４のバックアップ処理を説明するためのフローチャートである。バックアップ処理は、マイクロプロセッサ４２１から指示を受けたキャッシュメモリコントローラ４２４３によって行われる。マイクロプロセッサ４２１は、例えば、電源部４３の電源遮断検出部から電源遮断の通知を受けると、バックアップ要求をキャッシュメモリコントローラ４２４３に発行する。
【００８２】
すなわち、不意の電源遮断等による緊急のバックアップ要求が発生した場合、キャッシュメモリコントローラ４２４３は、まず、共有メモリ４２６１上のシステム構成情報を読み出して、不揮発性キャッシュメモリ４２４２のバックアップ領域に書き込む（ＳＴＥＰ１１０１）。システム構成情報は、例えば、共有メモリ４２６１の特定の位置（例えば０番地）に格納されるものと定められ、また、不揮発性キャッシュメモリ４２４２の特定の位置（同様に、例えば０番地）にバックアップされるものと定められている。
【００８３】
次に、キャッシュメモリコントローラ４２４３は、共有メモリ４２４１上のキャッシュ管理テーブル５００を参照し（ＳＴＥＰ１１０２）、アドレスマッピングテーブルを不揮発性キャッシュメモリ４２４２上に作成する（ＳＴＥＰ１１０３）。図１２は、本発明の一実施形態に係るストレージ装置４におけるアドレスマッピングテーブルの一例を示す図である。アドレスマッピングテーブルは、揮発性キャッシュメモリ４２４１上のダーティデータが不揮発性キャッシュメモリ４２４２上のどの位置にバックアップされたかを対応付けるテーブルである。キャッシュメモリコントローラ４２４３は、リストア処理の際に、当該アドレスマッピングテーブルを参照して、バックアップされたデータを揮発性キャッシュメモリ４２４１上の元の位置に書き戻す。
【００８４】
図１１に戻り、キャッシュメモリコントローラ４２４３は、次に、キャッシュ管理テーブル５００を参照し、揮発性キャッシュメモリ４２４１にダーティデータが存在するか否かを判断する（ＳＴＥＰ１１０４）。キャッシュメモリコントローラ４２４３は、揮発性キャッシュメモリ４２４１にダーティデータが存在すると判断する場合（ＳＴＥＰ１１０４のＹｅｓ）、共有メモリ４２６１上のキャッシュ管理テーブルを参照し、揮発性キャッシュメモリ４２４１からダーティデータを読み出す（ＳＴＥＰ１１０５）。キャッシュメモリコントローラ４２４３は、続いて、読み出したダーティデータ及びキャッシュ管理テーブル内のそのキャッシュ管理情報（すなわち揮発性キャッシュメモリ管理情報）を不揮発性キャッシュメモリ４２４１に書き込み（ＳＴＥＰ１１０６）、アドレスマッピングテーブルにおける該当するエントリを更新する（ＳＴＥＰ１１０７）。キャッシュメモリコントローラ４２４３は、揮発性キャッシュメモリ４２４１上のすべてのダーティデータ及びその揮発性キャッシュメモリ管理情報を不揮発性キャッシュメモリ４２４２に転送し終えるまで上記処理を繰り返す。
【００８５】
キャッシュメモリコントローラ４２４３は、揮発性キャッシュメモリ４２４１上のすべてのダーティデータ及びその揮発性キャッシュメモリ管理情報の転送を終えると（ＳＴＥＰ１１０４のＮｏ）、共有メモリ４２６１から不揮発性キャッシュメモリ管理情報を読み出して（ＳＴＥＰ１１０８）、これを不揮発性キャッシュメモリ４２４２に書き込む（ＳＴＥＰ１１０９）。
【００８６】
そして、キャッシュメモリコントローラ４２４３は、バックアップされるべきデータの転送が終了したことをプロセッサ４２１に通知し、これを受けて、プロセッサ４２１は、二次電源からの電源断処理を行って（ＳＴＥＰ１１１０）、一連のバックアップ処理を終了する。
【００８７】
図１３及び１４は、本発明の一実施形態に係るストレージ装置４のリストア処理を説明するためのフローチャートである。リストア処理は、上述したバックアップ処理が行われた後、電源が再投入されたときに、マイクロプロセッサ４２１から指示を受けたキャッシュメモリコントローラ４２４３により行われる。
【００８８】
同図に示すように、まず、キャッシュメモリコントローラ４２４３は、不揮発性キャッシュメモリ４２４２上にバックアップされたデータが存在するか否かを判断する（ＳＴＥＰ１３０１）。キャッシュメモリコントローラ４２４３は、不揮発性キャッシュメモリ４２４２上にバックアップされたデータが存在すると判断する場合（ＳＴＥＰ１３０１のＹｅｓ）、不揮発性キャッシュメモリ４２４２上のシステム構成情報を読み出して（ＳＴＥＰ１３０２）、これを揮発性キャッシュメモリ４２４１の元の位置に書き込む（ＳＴＥＰ１３０３）。
【００８９】
次に、キャッシュメモリコントローラ４２４３は、アドレスマッピングテーブルを参照して（ＳＴＥＰ１３０４）、バックアップデータ及びそのキャッシュ管理情報（すなわち不揮発性キャッシュメモリ管理情報）を読み出す（ＳＴＥＰ１３０５）。続いて、キャッシュメモリコントローラ４２４３は、読み出したバックアップデータ及びその不揮発性キャッシュ管理情報を、アドレスマッピングテーブルに従い、揮発性キャッシュメモリ４２４１及び共有メモリ４２６１の元の位置にそれぞれ書き込む（ＳＴＥＰ１３０６）。キャッシュメモリコントローラ４２４３は、不揮発性キャッシュメモリ４２４２上のバックアップされたデータを全てリストアしたか否かを判断する（ＳＴＥＰ１３０７）。キャッシュメモリコントローラ４２４３は、バックアップデータを全てリストアするまで上記処理を繰り返す。
【００９０】
キャッシュメモリコントローラ４２４３は、すべてのバックアップデータのリストアを終了すると（ＳＴＥＰ１３０７のＹｅｓ）、不揮発性キャッシュメモリ管理情報を読み出して（ＳＴＥＰ１３０８）、これを共有メモリ４２６１の元の位置に書き込む（ＳＴＥＰ１３０９）。
【００９１】
以上により、不揮発性キャッシュメモリ４２４２にバックアップされたデータ及びキャッシュ管理情報は、揮発性キャッシュメモリ４２４１及び共有メモリ４２６１の元の位置にリストアされることになる。
【００９２】
続いて、マイクロプロセッサ４２１は、不揮発性キャッシュメモリ４２４２のキャッシュ常駐化領域のデータは正常であるか否かを判断する（図１４のＳＴＥＰ１４０１）。キャッシュメモリコントローラ４２４３は、キャッシュ常駐化領域のデータは正常であると判断する場合（ＳＴＥＰ１４０１のＹｅｓ）、続いて、ローカルメモリ４２２の内部テーブル６００における各エントリのキャッシュ常駐化領域を有効にするため、プロセッサ４２１に依頼する。これを受けて、マイクロプロセッサ４２１は、内部テーブル６００における各エントリのキャッシュ常駐化領域の設定をＯＮにする（ＳＴＥＰ１４０２）。そして、マイクロプロセッサ４２１は、ローカルメモリ４２２の内部テーブル６００におけるダーティデータ量閾値を設定する（ＳＴＥＰ１４０３）。
【００９３】
これに対して、キャッシュメモリコントローラ４２４３は、キャッシュ常駐化領域のデータは正常でないと判断する場合（ＳＴＥＰ１４０１のＮｏ）、当該キャッシュ常駐化領域を無効にするため、マイクロプロセッサ４２１に依頼する。マイクロプロセッサ４２１は、これを受けて、内部テーブル６００における当該キャッシュ常駐化領域の設定をＯＦＦにする（ＳＴＥＰ１４０４）。そして、プロセッサ４２１は、キャッシュ常駐化領域の異常を管理装置４２７に通知する（ＳＴＥＰ１４０５）。これにより、システム管理者は、キャッシュ常駐化領域の異常を知ることができる。
【００９４】
図１５は、本発明の一実施形態に係るストレージ装置４のバックアップ／リストア処理におけるキャッシュメモリを模式的に説明するための図である。
【００９５】
すなわち、揮発性キャッシュメモリ４２４１及び共有メモリ４２６１は、同図左に示すような使用状態にあるとする。つまり、揮発性キャッシュメモリ４２４１には、実データ（アプリケーションデータ）Ａ〜Ｆがキャッシュされているとする。ここで、ハッチングで示された実データＡ、Ｄ及びＥはダーティな状態にあり、実データＢ、Ｃ及びＦはクリーンな状態にあるとする。共有メモリ４２６１には、システム構成情報が保持され、また、揮発性キャッシュメモリ４２４１にキャッシュされた実データＡ〜Ｆに対応する不揮発性キャッシュメモリ管理情報がＡ〜Ｆが保持されている。さらに、共有メモリ４２６１には、不揮発性キャッシュメモリ管理情報が保持されている。
【００９６】
この状態で、不意の電源遮断等による緊急のバックアップ要求が発生すると、キャッシュメモリコントローラ４２４３は、上述したように、システム構成情報を不揮発性キャッシュメモリ４２４２にバックアップするとともに、アドレスマッピングテーブルを不揮発性キャッシュメモリ４２４２に作成する。また、キャッシュメモリコントローラ４２４３は、ダーティデータである実データＡ、Ｄ及びＥ並びにその揮発性キャッシュメモリ管理情報Ａ、Ｄ及びＥを不揮発性キャッシュメモリ４２４２にバックアップする。さらに、キャッシュメモリコントローラ４２４３は、共有メモリ４２６１上の不揮発性キャッシュメモリ管理情報を不揮発性キャッシュメモリ４２４２にバックアップする。同図中央は、このときの不揮発性キャッシュメモリ４２４２の内容を示している。
【００９７】
また、リストア時には、キャッシュメモリコントローラ４２４３は、バックアップされたシステム構成情報を共有メモリ４２６１に書き戻す。また、キャッシュメモリコントローラ４２４３は、アドレスマッピングテーブルに従って、バックアップされた実データＡ、Ｄ及びＥを揮発性キャッシュメモリ４２４１に書き戻すとともに、その揮発性キャッシュメモリ管理情報Ａ、Ｄ及びＥを共有メモリ４２６１に書き戻す。そして、キャッシュメモリコントローラ４２４３は、不揮発性キャッシュメモリ管理情報を共有メモリ４２６１に書き戻す。同図右は、リストア後の揮発性キャッシュメモリ４２４１及び共有メモリ４２６１の内容を示している。
【００９８】
同図から明らかなように、クリーンデータである実データＢ、Ｃ及びＦは、バックアップ要求の発生時にはディスクデバイス４１上にデステージされているため、不揮発性キャッシュメモリ４２４２にバックアップされない。従って、本実施形態によれば、揮発性キャッシュメモリ４２４１上のダーティデータのみが選択的にバックアップされることになり、バックアップ処理の効率化を図ることができるようになる。
【００９９】
図１６は、本発明の他の実施形態に係るストレージ装置４の構成を示す図である。本実施形態のストレージ装置４は、複数のマイクロプロセッサ４２１がマイクロプロセッサチャネル（ＭＣＨ）４２９を介して内部スイッチ４２８に接続された構成を有する。複数のマイクロプロセッサ４２１は、同一のマイクロプロセッサチャネル４２９に接続された一群のローカルメモリ４２２を共有する。また、本実施形態では、揮発性キャッシュメモリ４２４１の一部は、共有メモリとして利用される。換言すれば、揮発性キャッシュメモリ４２４１には、システム構成情報及びキャッシュ管理情報等が保持される。別個の共有メモリを設ける代わりに、揮発性キャッシュメモリ４２４１の一部を共有メモリとして利用する場合であっても、上述したような、バックアップ／リストア処理は、同様に成し遂げられる。なお、同図では、簡略化のため、管理装置は示されていない。
【０１００】
図１７は、本発明の当該他の実施形態に係るストレージ装置４におけるマイクロプロセッサ４２１とキャッシュメモリ４２６との接続関係を説明するための図である。本例では、二重化された内部スイッチ４２８のそれぞれに、２つのマイクロプロセッサチャネル４２９及び４つのキャッシュメモリ４２４が接続され、さらに、２つのマイクロプロセッサチャネル４２９のそれぞれに４つのマイプロプロセッサ４２１及びこれらに共有されるローカルメモリ４２２が接続されている。キャッシュメモリ４２４は、揮発性キャッシュメモリ４２４１と、不揮発性キャッシュメモリ４２４２と、キャッシュメモリコントローラ４２４３と、を含んでいる。
【０１０１】
このように構成されるストレージ装置４において、複数の揮発性キャッシュメモリ４２４２のそれぞれにキャッシュ常駐化領域は分散して設定される。複数のマイクロプロセッサ４２１は、ローカルメモリ４２２をそれぞれ参照することにより、キャッシュ常駐化領域に対して並列的にアクセスを行うことができる。従って、書き込みアクセス速度が相対的に遅いフラッシュメモリを不揮発性キャッシュメモリ４２４２に利用する場合であっても、並列的なアクセスによってかかる速度低下を吸収することができるようになる。
【０１０２】
上記実施形態は、本発明を説明するための例示であり、本発明は上記実施形態に限定されるものではない。本発明は、その要旨の範囲内でさまざまな形態で実施することができる。例えば、上記実施形態では、ストレージ装置の処理をシーケンシャルに構成したが、これにこだわるものではない。従って、動作乃至は処理の結果に矛盾が生じない限り、各ステップを入れ替え、又は並列に構成しても良い。
【産業上の利用可能性】
【０１０３】
本発明は、キャッシュメモリを搭載したストレージ装置に広く適用することができる。
【図面の簡単な説明】
【０１０４】
【図１】本発明の実施形態に係るストレージ装置におけるデータのバックアップ／リストアメカニズムを説明するための概念図である。
【図２】本発明の実施形態に係るストレージ装置を含むコンピュータシステムの構成を説明するための図である。
【図３】本発明の実施形態に係るストレージ装置の外観構成を示す図である。
【図４】本発明の一実施形態に係るストレージ装置の共有メモリの内容を示す図である。
【図５】本発明の一実施形態に係るストレージ装置における共有メモリに保持されたキャッシュ管理テーブルの一例を示す図である。
【図６】本発明の一実施形態に係るストレージ装置におけるローカルメモリに保持された内部テーブルの一例を示す図である。
【図７】本発明の一実施形態に係るストレージ装置に対するキャッシュ常駐化領域の設定ウィンドウを示す図である。
【図８】本発明の一実施形態に係るストレージ装置におけるキャッシュ常駐化領域の設定／解除処理を説明するためのフローチャートである。
【図９】本発明の一実施形態に係るストレージ装置のＩ／Ｏ処理を説明するためのフローチャートである。
【図１０】本発明の一実施形態に係るストレージ装置のＩ／Ｏ処理を説明するためのフローチャートである。
【図１１】、本発明の一実施形態に係るストレージ装置のバックアップ処理を説明するためのフローチャートである。
【図１２】本発明の一実施形態に係るストレージ装置におけるアドレスマッピングテーブルの一例を示す図である。
【図１３】本発明の一実施形態に係るストレージ装置のリストア処理を説明するためのフローチャートである。
【図１４】本発明の一実施形態に係るストレージ装置のリストア処理を説明するためのフローチャートである。
【図１５】本発明の一実施形態に係るストレージ装置のバックアップ／リストア処理におけるキャッシュメモリを模式的に説明するための図である。
【図１６】本発明の他の実施形態に係るストレージ装置の構成を示す図である。
【図１７】図１６に示したストレージ装置におけるマイクロプロセッサとキャッシュメモリとの接続関係を説明するための図である。
【符号の説明】
【０１０５】
１…コンピュータシステム
２…チャネル
３…ホスト装置
４…ストレージ装置
４１…ディスクデバイス
４２…ディスクコントローラ
４２１…マイクロプロセッサ
４２２…ローカルメモリ
４２３…チャネルアダプタ
４２４…キャッシュメモリ部
４２５…ディスクアダプタ
４２６…共有メモリ部
４２７…管理装置
４２８…内部スイッチ
４３…電源部
【図１】
2009075759.tif 000003
【図２】
2009075759.tif 000004
【図３】
2009075759.tif 000005
【図４】
2009075759.tif 000006
【図５】
2009075759.tif 000007
【図６】
2009075759.tif 000008
【図７】
2009075759.tif 000009
【図８】
2009075759.tif 000010
【図９】
2009075759.tif 000011
【図１０】
2009075759.tif 000012
【図１１】
2009075759.tif 000013
【図１２】
2009075759.tif 000014
【図１３】
2009075759.tif 000015
【図１４】
2009075759.tif 000016
【図１５】
2009075759.tif 000017
【図１６】
2009075759.tif 000018
【図１７】
2009075759.tif 000019