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