ストレージ装置及びストレージ装置におけるデータの管理方法
【課題】本発明の課題は、不意の電源遮断時であっても、揮発性キャッシュメモリに保持されているデータの消失を防止することである。
【解決手段】本発明は、揮発性及び不揮発性メモリで構成されたキャッシュメモリを含むストレージ装置であって、揮発性キャッシュメモリには、ホスト装置からの書き込み要求に従うデータ及びディスクドライブからステージングされたデータをキャッシュする一方、不揮発性キャッシュメモリには、ディスクドライブからステージングされたデータのみをキャッシュするように構成されたストレージ装置である。不意の電源遮断時には、ストレージ装置は、揮発性キャッシュメモリにキャッシュされているダーティデータ及びその他の情報を不揮発性キャッシュメモリに直ちにバックアップする。
【解決手段】本発明は、揮発性及び不揮発性メモリで構成されたキャッシュメモリを含むストレージ装置であって、揮発性キャッシュメモリには、ホスト装置からの書き込み要求に従うデータ及びディスクドライブからステージングされたデータをキャッシュする一方、不揮発性キャッシュメモリには、ディスクドライブからステージングされたデータのみをキャッシュするように構成されたストレージ装置である。不意の電源遮断時には、ストレージ装置は、揮発性キャッシュメモリにキャッシュされているダーティデータ及びその他の情報を不揮発性キャッシュメモリに直ちにバックアップする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストレージ装置及びストレージ装置におけるデータの管理方法に関し、特にストレージ装置内のキャッシュデータの管理技術に関する。
【背景技術】
【0002】
ストレージ装置(ストレージサブシステム)は、一般に、システムパフォーマンス等の観点から、キャッシュメモリを備えている。キャッシュメモリは、典型的には、DRAM等の揮発性メモリから構成されている。大容量のハードディスクドライブを搭載した大規模なストレージ装置は、数〜数十ギガバイトオーダの大容量のキャッシュメモリを実装し、稼働中、そこにデータをキャッシュしながら、ホスト装置に対するI/Oアクセス要求に応答している。従って、このようなストレージ装置は、不意の電源遮断によってキャッシュメモリ上のデータが消失することを防止するため、不意の電源遮断時には二次電源であるバッテリから電源を一時的に供給して稼働状態を維持しつつ、その間に当該キャッシュメモリのデータをハードディスクドライブにデステージング(バックアップ)していた。
【0003】
一方、近年、フラッシュメモリ等の不揮発性メモリの大容量化・低下価格化が進み、不揮発性メモリの用途が広まりつつある。例えば、下記特許文献1には、キャッシュメモリの一部をフラッシュメモリで構成したハードディスク装置が開示されている。すなわち、当該特許文献1では、ハードディスク上の頻繁にアクセスされる領域のデータはフラッシュメモリに置かれ、これによって、データアクセスに際してディスクヘッドの移動を極力なくして、アクセス効率を高めるとともに、電源遮断によるキャッシュデータの消失を防止している。
【0004】
また、下記特許文献2には、EEPROMから構成される半導体ディスク装置をハードディスクドライブに対するキャッシュメモリとして機能させるデータ記憶システムが開示されている。具体的には、当該特許文献2では、オペレーティングシステムや使用頻度の高いアプリケーションプログラムの起動に必要な情報は半導体ディスク装置に保存され、電源投入直後であっても効果的にキャッシュ機能が発揮されるようにしている。
【特許文献1】特開平6−236241号公報
【特許文献2】特開平10−154101号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
大規模なストレージ装置では、その稼働中、大容量のデータがハードディスクドライブにデステージングされずにキャッシュメモリ上に存在している。従って、電源遮断等の緊急時においてもかかるデータが消失しないように対策を施すこと必須となる。
【0006】
バッテリを用いた緊急時の従来のデータバックアップ方式においては、ストレージ装置は、相対的に高価なバッテリをハードディスクドライブの駆動維持のために相当量実装する必要があり、コストが嵩む傾向にあった。このため、消費電力をできるだけ低く抑えることが少ない量のバッテリで駆動を長持ちさせることになるが、データのバックアップ先がハードディスクドライブに設定されている以上、消費電力を効果的に削減することは困難であった。
【0007】
一方、フラッシュメモリに代表される不揮発性メモリは、その構造上、ブロック(領域)に対する消去・書き込み回数に制限があるため、頻繁に書き込みアクセスが行われるようなハードディスクドライブのキャッシュメモリとして用いる場合には、書き込みアクセスが特定のブロックに集中しないように制御する必要がある。従って、現実的な問題として、不揮発性メモリをストレージ装置におけるキャッシュメモリとして積極的に利用しづらかった。
【0008】
また、キャッシュメモリの一部が不揮発性メモリで構成されている場合であっても、揮発性のキャッシュメモリに格納されているデータについては、電源遮断等の緊急性時にはハードディスクドライブにバックアップしなければ消失してしまうという問題があった。このため、揮発性のキャッシュメモリに保持されているデータを、電源遮断等の緊急時にハードディスクドライブにバックアップするのであれば、結局、従来のバッテリバックアップ方式における消費電力の問題に帰結することになる。
【0009】
そこで、本発明は、電源遮断等の緊急のバックアップ要求が発生した場合においても、二次電源の下で、揮発性キャッシュメモリに保持されているデータを効率的かつ確実に保存し、データの消失を防止できるようにすることを課題とし、ひいては、当該二次電源の消費電力を削減できるようにすることを課題としている。
【0010】
また、本発明は、不揮発性キャッシュメモリを効率的に利用することで、ハードディスクドライブに対する電源供給を停止して、消費電力の低減を図ることを課題としている。
【課題を解決するための手段】
【0011】
本発明は、上記課題に鑑みてなされたものである。
【0012】
ある観点に従う本発明は、データセット群を格納するための記憶媒体を含むディスクドライブと、前記ディスクドライブを制御するディスク制御装置とを備えたストレージ装置であって、前記ディスク制御装置が、ホスト装置からのI/O要求を受け付けるホストインターフェースと、前記ディスクドライブに接続されたディスクインターフェースと、前記ホストインターフェース及び前記ディスクインターフェースに接続され、揮発性メモリからなる第1のキャッシュメモリと不揮発性メモリからなる第2のキャッシュメモリとを含むキャッシュ機構とを備え、前記ディスクドライブに格納されたデータセット群のそれぞれに関連付けられた属性値を管理するように構成されたストレージ装置である。
【0013】
また、前記ディスクインターフェースは、前記属性値のそれぞれに基づいて、前記ディスクドライブに格納されたデータセット群の中から特定される第1のデータセットを前記第2のキャッシュメモリに書き込む。
【0014】
そして、前記ディスク制御装置は、所定のバックアップ要求時に、前記第1のキャッシュメモリに書き込まれたデータセット群の中から特定される第2のデータセットを前記第2のキャッシュメモリに転送する。
【0015】
また、他の観点に従う本発明は、データセットを格納するための記憶媒体を含むディスクドライブと、前記ディスクドライブを制御するディスク制御装置とを備えたストレージ装置であって、前記ディスク制御装置が、プロセッサと、前記プロセッサによって制御される、ホスト装置からのI/O要求を受け付けるホストインターフェースと、前記プロセッサによって制御される、前記ディスクドライブに接続されたディスクインターフェースと、前記ホストインターフェース及び前記ディスクインターフェースに接続され、揮発性メモリからなる第1のキャッシュメモリと不揮発性メモリからなる第2のキャッシュメモリとを含むキャッシュ機構とを備え、前記ディスクドライブに格納されたデータセット群のそれぞれに関連付けられた属性値を管理するように構成されたストレージ装置である。
【0016】
また、前記プロセッサは、前記属性値に基づいて、前記ディスクドライブに格納されたデータセット群の中から特定される第1のデータセットが前記第2のキャッシュメモリに書き込まれるように、前記ディスクインターフェースを制御する。
【0017】
そして、前記ディスク制御装置は、所定のバックアップ要求時に、前記第1のキャッシュメモリに書き込まれたデータセット群の中から特定される第2のデータセットを前記第2のキャッシュメモリに転送する。
【0018】
さらに、他の観点に従う本発明は、データセットを格納するための記憶媒体を含むディスクドライブと、前記ディスクドライブを制御するディスク制御装置とを備えたストレージ装置におけるデータ管理方法である。すなわち、本発明は、揮発性メモリからなる第1のキャッシュメモリ及び不揮発性メモリからなる第2のキャッシュメモリを提供するステップと、前記ディスクドライブに格納されたデータセット群のそれぞれに属性値を与えるステップと、前記第1のキャッシュメモリに第1のデータセットを書き込むステップと、前記格納されたデータセット群のそれぞれに与えられた属性値に基づいて、前記ディスクドライブに格納されたデータセット群の中から第2のデータセットを特定するステップと、前記特定したデータセットを前記第2のキャッシュメモリに書き込むステップと、ホスト装置から書き込み要求を受け付けた場合に、前記書き込み要求に従うデータセットに対応するデータセットが前記第2のデータセットとして前記第2のキャッシュメモリにすでに書き込まれているか否かを判断するステップと、前記判断するステップにおいて、前記書き込み要求に従うデータセットに対応するデータセットが前記第2のデータセットとして前記第2のキャッシュメモリにすでに書き込まれていると判断される場合に、前記第2のキャッシュメモリ上の前記第2のデータセットが書き込まれいた領域を無効化するステップと、前記第2のキャッシュメモリにおける前記無効化された領域に、前記属性値に基づいて特定される新たなデータセットを書き込むステップと、バックアップ要求時に、前記第1のキャッシュメモリに書き込まれた前記第1のデータセットを前記第2のキャッシュメモリに転送するストレージ装置のデータ管理方法である。
【0019】
さらにまた、他の観点に従う本発明は、データセットを格納する記憶媒体を含む複数のディスクドライブと、前記複数のディスクドライブを制御するディスク制御装置とを備えたストレージ装置におけるデータ管理方法であって、前記複数のディスクドライブのそれぞれに、異なるデータセットを格納するステップと、前記データセットのそれぞれに所定の属性値を与えるステップと、前記与えられた所定の属性値に基づいて、前記データセットのそれぞれを前記複数のディスクドライブのいずれかに再配置するステップと、前記複数のディスクドライブのうち少なくとも1つのディスクドライブを特定するステップと、前記特定された少なくとも1つのディスクドライブに再配置された全データセットを不揮発性メモリからなるキャッシュメモリに書き込むステップと、前記特定された少なくとも1つのディスクドライブに対する電源供給を停止するステップと、を含むストレージ装置におけるデータの管理方法である。
【発明の効果】
【0020】
本発明によれば、キャッシュメモリの一部として構成された不揮発性メモリには「クリーンなデータ」を格納するようにしているので、当該不揮発性メモリを緊急時のバックアップ先として有効に利用することができるようになる。
【0021】
また、本発明によれば、不揮発性メモリをハードディスクドライブに代わる緊急時のバックアップ先として利用しているので、消費電力を抑えることができ、従って、特に、二次電源として実装されるべきバッテリの量を削減することができるようになる。
【0022】
さらに、本発明によれば、特定のディスクドライブに格納された全データを不揮発性キャッシュメモリにステージングし、当該特定のディスクドライブの電源供給を停止しているので、高キャッシュヒット率が期待でき、システムパフォーマンスが向上するとともに、消費電力の低減を図ることができるようになる。
【発明を実施するための最良の形態】
【0023】
次に、本発明の実施の形態について、図面を参照しつつ説明する。
【0024】
本実施形態は、ストレージ装置内のキャッシュメモリ上のデータ(データセット)がいわゆる「ダーティな」状態又はいわゆる「クリーンな」状態になりうることに着目して、キャッシュされるべきデータを、その状態に応じて揮発性キャッシュメモリ又は不揮発性キャッシュメモリのいずれかに最適に配置することを特徴とする。ここで、ダーティデータとは、キャッシュメモリ上のデータがハードディスクドライブ上の対応するデータと整合性がとれていない(一致していない)状態のデータをいう。典型的には、キャッシュメモリ上のあるデータがホスト装置からの書き込み要求によって更新されたにもかかわらず、ハードディスクドライブ上の対応するデータがまだ更新されていない場合に、キャッシュメモリ上のデータはダーティな状態となる。また、クリーンデータとは、キャッシュメモリ上のデータとハードディスクドライブ上の対応するデータと整合性がとれている状態のデータをいう。
【0025】
すなわち、本実施形態は、揮発性メモリと不揮発性メモリとで構成されたキャッシュメモリを含んで構成されたストレージ装置であって、揮発性キャッシュメモリには、ホスト装置からの書き込み要求に従うデータ及びディスクドライブからステージングされたデータをキャッシュする一方、不揮発性キャッシュメモリには、ディスクドライブからステージングされたデータのみをキャッシュするように構成されたストレージ装置である。つまり、ホスト装置からの書き込み要求は、ダーティデータを作り出すため、ストレージ装置は、揮発性キャッシュメモリにはホスト装置からの書き込み要求に従うデータをキャッシュする一方、不揮発性キャッシュメモリにはクリーンデータのみをキャッシュしておき、ホスト装置からの読み出し要求に備える。
【0026】
これによって、従来、データのバックアップのために用意されていた不揮発性メモリをキャッシュメモリとして有効に利用することができるようになる。
【0027】
そして、電源遮断等による緊急のバックアップ要求が発生した場合には、ストレージ装置は、揮発性キャッシュメモリにキャッシュされているダーティデータ及びその他の情報を不揮発性キャッシュメモリに直ちにバックアップする。また、ストレージ装置が、揮発性メモリで構成された共有メモリを備えている場合には、同様に、共有メモリに保持されている各種の情報を不揮発性キャッシュメモリにバックアップする。つまり、不揮発性キャッシュメモリにはクリーンデータのみがキャッシュされており、従って、当該データについては、別段、バックアップする必要がないため、不揮発性キャッシュメモリの内容が揮発性キャッシュメモリの内容で上書きされることを許容する。
【0028】
これによって、電源遮断等の緊急時において、揮発性キャッシュメモリ上のデータのうち特定のデータをバックアップすればよく、少ない消費電力で、かつ、高速にバックアップすることができるようになる。
【0029】
図1は、本発明の実施形態に係るストレージ装置におけるデータのバックアップ/リストアメカニズムを説明するための概念図である。
【0030】
同図に示すように、チャネル2を介して相互に接続されたホスト装置3及びストレージ装置4は、コンピュータシステム1を構成している。
【0031】
ストレージ装置4は、例えば、チャネルアダプタ(CHA)421、キャッシュ機構422、ディスクアダプタ(DKA)423、及び共有メモリ(SM)4241を備える。キャッシュ機構422は、揮発性キャッシュメモリ(VCM)4221と不揮発性キャッシュメモリ(NVCM)4222とを含んで構成されている。そして、これらは互いに協働して、ホスト装置3からのI/Oアクセス要求に応答して、ハードディスクドライブ(HDD)41にデータを格納し、又はそこからデータを読み出して、これをホスト装置3に提供する。なお、ストレージ装置4の具体的構成例及び動作例については後述する。
【0032】
揮発性キャッシュメモリ4221は、読み出し/書き込み用のキャッシュメモリとして機能し、不揮発性キャッシュメモリ4222は、読み出し専用のキャッシュメモリとして機能する。従って、チャネルアダプタ421は、ホスト装置3から書き込み要求を受け取ると、揮発性キャッシュメモリ4222に当該書き込み要求に従うデータを書き込み、不揮発性キャッシュメモリ4221に当該書き込み要求に従うデータを書き込むことはない。不揮発性キャッシュメモリ4221には、後述する属性値に応じて、ディスクアダプタ423によってディスクドライブ41から読み出されたデータが書き込まれる。
【0033】
より具体的には、ホスト装置3からのI/O要求に従って、チャネルアダプタ421は、共有メモリ4241を参照して、揮発性キャッシュメモリ4221又は不揮発性キャッシュメモリ4222のいずれかにアクセスする。読み出し要求時においては、揮発性キャッシュメモリ4221及び不揮発性キャッシュメモリ4222のいずれにも要求されたデータが存在しない場合(キャッシュミスの場合)には、ディスクアダプタ423は、共有メモリ4241を参照して、当該要求されたデータをディスクドライブ41から読み出して、揮発性キャッシュメモリ4221又は不揮発性キャッシュメモリ4222のいずれかに当該データを書き込み(ステージング)、共有メモリ4241の内容を更新する。揮発性キャッシュメモリ4221又は不揮発性キャッシュメモリ4222のどちらにステージングするかは、当該データに与えられた属性に依存する。一方、書き込み要求時においては、チャネルアダプタ421は、当該要求されたデータを揮発性キャッシュメモリ4221に書き込み、共有メモリ4241の内容を更新する。この場合、当該要求されたデータに対応するデータが不揮発性キャッシュメモリ4221にすでに存在していた場合には、当該対応するデータを無効化して、当該要求されたデータを揮発性キャッシュメモリ4221に書き込む。
【0034】
ストレージ装置4の稼働中に、例えば電源遮断等が発生した場合、ストレージ装置4は、揮発性キャッシュメモリ4221に書き込まれているデータ及び管理情報を不揮発性キャッシュメモリ4222にバックアップする。バックアップは、例えばキャッシュメモリ機構を管理するキャッシュメモリアダプタ(図示せず)によって実行される。バックアップされるデータは、揮発性キャッシュメモリ4221に書き込まれている全てのデータではなく、ダーティデータ及びその管理情報であればよい。また、ストレージ装置4は、共有メモリ4241に保持されているシステム構成情報等も不揮発性キャッシュメモリ4222にバックアップする。
【0035】
電源遮断等が復旧した場合、ストレージ装置4は、不揮発性キャッシュメモリ4222にバックアップされたデータ及び他の情報を揮発性キャッシュメモリ4221及び共有メモリ4241のそれぞれにリストアする。これによって、ストレージ装置4は、電源遮断等が発生した時点の状態に復元され、ホスト装置3にI/Oサービスを提供することができるようになる。
【0036】
図2は、本発明の実施形態に係るストレージ装置を含むコンピュータシステムの構成を説明するための図である。同図に示すように、コンピュータシステム1は、チャネル2を介して接続されたホスト装置3及びストレージ装置4を含み、例えば、銀行の業務システムや航空機の座席予約業務システム等として構成される。
【0037】
チャネル2は、例えばLAN、インターネット、又はSAN(Storage Area Network)であり、ネットワークスイッチやハブ等を含んで構成される。本実施形態では、チャネル2は、ファイバーチャネルプロトコルを用いたSAN(FC−SAN)で構成されているものとする。
【0038】
ホスト装置3は、例えば、銀行の業務システムや航空機の座席予約業務システム等の中核をなすコンピュータである。具体的には、ホスト装置3は、プロセッサと、メインメモリと、通信インターフェースと、ローカル入出力装置等のハードウェア資源を備え、また、デバイスドライバやオペレーティングシステム(OS)、アプリケーションプログラム等のソフトウェア資源を備えている(図示せず)。これによって、ホスト装置3は、プロセッサの制御の下、各種のプログラムを実行して、ハードウェア資源との協働作用により、所望の処理を実現する。例えば、ホスト装置3は、プロセッサの制御の下、OS上で業務アプリケーションプログラムを実行することにより、以下に詳述されるストレージ装置4にアクセスし、所望の業務システムを実現する。
【0039】
ストレージ装置4は、データを格納するための記憶領域をホスト装置3に提供する。ストレージ装置4は、物理デバイス(PDEV)である複数のディスクドライブ41と、ディスクドライブ41に対する書き込み又は読み出しといったI/Oアクセスを制御するディスク制御装置42とを備える。ディスクドライブ41とディスク制御装置42とは、ディスクチャネル43を介して接続される。
【0040】
ディスクドライブ41は、例えばハードディスクドライブや不揮発性メモリ等の記憶媒体を含んで構成される。ディスクドライブ41は、RAID(Redundant Arrays of Independence Disks)を構成するかも知れない。RAID構成においては、いくつかのディスクドライブ41は、1つの仮想デバイス(VDEV)を構成し、当該仮想デバイス上に1又は複数の論理デバイス(LDEV)が定義される。論理デバイスは、ホスト装置3が認識しうる論理的なデバイスである。
【0041】
論理デバイスには、論理ユニット(LU)が定義される。各論理ユニットには、論理ユニット番号(LUN)が付与される。また、論理ユニットは、I/Oアクセスの最小単位であるブロックに分割され、各ブロックには、論理ブロックアドレス(LBA)が割り当てられる。これにより、ホスト装置3は、LUNおよびLBAからなる論理アドレスをストレージ装置4に与えることにより、特定の論理ユニットにおける任意のブロックに記憶されたデータに対してアクセスを行うことができる。
【0042】
ディスク制御装置42は、チャネルアダプタ(CHA)421と、キャッシュ機構422と、ディスクアダプタ(DKA)423と、共有メモリ(SM)ボード424とを備え、これらのモジュール乃至はコンポーネントは、内部スイッチ425を介して相互に接続されている。これらのモジュールは、冗長化構成により、それぞれ多重化されている。
【0043】
チャネルアダプタ421は、各ポートに対応したチャネルプロトコルデバイス(CP)を備え、チャネル2を介してポートに接続されたホスト装置3との間でI/Oアクセス要求に基づく通信を行うホストインターフェースとして機能するシステム回路である。チャネルプロトコルデバイスは、個々のプロトコルに応じたプロトコル処理を行うためのプロセッサを備えている。
【0044】
キャッシュ機構422は、キャッシュメモリを備え、ホスト装置3に対して高いシステムパフォーマンスを提供するため、ホスト装置3とディスクドライブ51との間でやり取りされるデータを一時的に記憶(キャッシュ)する。つまり、キャッシュ機構422は、チャネルアダプタ421とディスクアダプタ423との間のデータの受け渡しに利用される。本実施形態では、キャッシュ機構422のキャッシュメモリは、DRAM等で構成される揮発性キャッシュメモリ(第1のキャッシュメモリ)4221とフラッシュメモリ等で構成される不揮発性キャッシュメモリ(第2のキャッシュメモリ)4222とによって構成されている。揮発性キャッシュメモリ4221及び不揮発性キャッシュメモリ4222は、冗長化構成により、それぞれ多重化されている。なお、本明細書において、単にキャッシュメモリというときは、揮発性キャッシュメモリ4221及び不揮発性キャッシュメモリ4222をいうものとする。
【0045】
キャッシュ機構422はまた、キャッシュメモリアダプタ(CMA)4223を備える。キャッシュメモリアダプタ4223は、揮発性キャッシュメモリ4221と不揮発性キャッシュメモリ4222との間のデータ制御を行う。
【0046】
本実施形態では、揮発性キャッシュメモリ4221は、データの読み出し/書き込みに使用される。一方、不揮発性キャッシュメモリ4222は、データの読み出しのみに使用される。すなわち、チャネルアダプタ421は、ホスト装置3から書き込み要求を受領した場合には、揮発性キャッシュメモリ4221に対して書き込み要求に従うデータを書き込む。また、ホスト装置3からの読み出し要求に基づくステージング時には、チャネルアダプタ423は、ディスクドライブ41から要求されたデータを揮発性キャッシュメモリ4221又は揮発性キャッシュメモリ4222のいずれかに書き込む。従って、不揮発性キャッシュメモリ4222にキャッシュされるデータは、ディスクアダプタ423によってディスクドライブ41からステージングされたデータのみである。
【0047】
なお、本実施形態では、1つのキャッシュ機構422に揮発性キャッシュメモリ4221と揮発性キャッシュメモリ4222とを含めた構成となっているが、物理的に独立するキャッシュ機構に揮発性キャッシュメモリ4221と揮発性キャッシュメモリ4222とをそれぞれ含めた構成であってもよい。また、キャッシュ機構422内にキャッシュメモリアダプタ4223を設けずに、同等の機能を有する外部のプロセッサが制御するような構成であってもよい。
【0048】
ディスクアダプタ423は、各ポートに対応したチャネルプロトコルデバイスを備え、ディスクチャネル43を介してポートに接続されたディスクドライブ41に対するI/Oアクセスの制御を行うディスクインターフェースとして機能するシステム回路である。すなわち、ディスクアダプタ523は、キャッシュ機構422内のキャッシュメモリからデータを取り出して、ディスクドライブ41に格納し(デステージング)、また、ディスクドライブ41からデータを読み出して、キャッシュメモリ522に書き込む(ステージング)。例えば、ホスト装置3からの読み出し要求を受け付けた場合であって、揮発性キャッシュメモリ4221及び不揮発性キャッシュメモリ4222のいずれにも要求されたデータが存在しない場合には、必要に応じてデステージングを行ってキャッシュ領域を確保した後、揮発性キャッシュメモリ4221及び不揮発性キャッシュメモリ4222のいずれかに要求されたデータをステージングする。
【0049】
共有メモリボード424は、ストレージ装置4内の各モジュールが参照すべき各種の情報を記憶する共有メモリ4241と、これを制御するための共有メモリアダプタ(SMA)4242とを含む。本実施形態では、共有メモリ4241は、DRAM等の揮発性メモリで構成されている。共有メモリ4241は、例えば、図3に示すように、システム構成情報、アドレス対応テーブル、データ属性管理テーブル、書き換え回数管理テーブル、及びキャッシュメモリ管理情報等の各種の情報を記憶する。共有メモリ4241はまた、ストレージ装置4内のモジュールが使用する各種の制御プログラムを記憶するかも知れない。
【0050】
システム構成情報は、ストレージ装置4内の各モジュールの構成情報や各モジュール上で動作する制御プログラムのバージョン情報といったシステムの構成に関する情報である。
【0051】
アドレス対応テーブルは、キャッシュメモリにキャッシュされているデータがディスクドライブ41上のどの記憶領域(論理ブロック)に格納されるべきものかを管理する情報である。すなわち、ディレクトリ情報は、キャッシュメモリにキャッシュされているデータについて、ホスト装置3が認識する論理アドレスと、キャッシュメモリ上のキャッシュメモリアドレスとを対応付けたアドレス管理情報を含んでいる。本実施形態では、キャッシュメモリアドレスの値によって、揮発性キャッシュメモリ4221上のアドレスであるのか、不揮発性キャッシュメモリ4222上のアドレスであるのかが、認識できるようになっている。
【0052】
従って、チャネルアダプタ421は、アドレス対応テーブルを参照することによって、I/Oアクセス要求に基づくデータがいずれのキャッシュメモリ上に存在するか否かを判断することができる。また、チャネルアダプタ421は、アドレス対応テーブルを参照することによって、キャッシュメモリにキャッシュされているデータを、ディスクドライブ41上の指定された記憶領域にデステージングすることができる。
【0053】
なお、より具体的には、キャッシュメモリ上のデータにアクセスするためには、アドレス対応テーブルとともに上述したキャッシュメモリ管理情報が参照される。チャネルアダプタ421は、データをステージングした場合に、アドレス対応テーブル及びキャッシュメモリ管理情報を更新する。また、ディスクアダプタ423は、データをデステージングした場合に、アドレス対応テーブル及びキャッシュメモリ管理情報を更新する。
【0054】
キャッシュ管理情報は、揮発性キャッシュメモリ4221用の管理情報(揮発性キャッシュメモリ管理情報)と不揮発性キャッシュメモリ4222用の管理情報(不揮発性キャッシュメモリ管理情報)とからなり、それぞれのキャッシュメモリ上にキャッシュされたデータを管理するためのメタ情報である。1ユニット当たりのキャッシュメモリ管理情報が管理可能なデータサイズの上限が定められている。従って、大きなサイズのデータは、複数ユニットのキャッシュ管理情報によって管理される。
【0055】
図2に戻り、内部スイッチ425は、クロスバースイッチ等により構成されるスイッチングデバイスである。内部スイッチ425は、入力されるデータ信号の競合を調停し、データ信号のパスを切り替えて、送出元のモジュールと送出先のモジュールとのパスを構築する。なお、内部スイッチ425は、パケット交換方式のスイッチングデバイスであってもよい。
【0056】
図4は、本発明の実施形態に係るストレージ装置4におけるアドレス対応テーブル400の一例を示す図である。
【0057】
同図に示すように、アドレス対応テーブル400は、先頭論理アドレス欄401及びキャッシュメモリ先頭アドレス欄402を含んでいる。先頭論理アドレス欄401は、ホスト装置3によって指定されたデータについてのディスクドライブ41上の記憶領域の先頭論理アドレスを示す。キャッシュメモリ先頭アドレス欄402は、当該データについてのキャッシュメモリ上のブロックの先頭アドレスを示す。本実施形態では、アドレス位置によって、揮発性キャッシュメモリ4221又は不揮発性キャッシュメモリ4222のいずれであるかが区別される。同図では、“x”で始まるアドレスは、揮発性キャッシュメモリ4221の先頭アドレスを示し、“y”で始まるアドレスは、不揮発性キャッシュメモリ4222の先頭アドレスを示している。
【0058】
図5は、本発明の実施形態に係るストレージ装置4におけるデータ属性管理テーブル500の一例を示す図である。データ属性管理テーブル500は、例えば、共有メモリ4241に保持される。本実施形態では、データ属性管理テーブル500は、ディスクドライブ41に格納されるべき各データについてのI/O要求の頻度をデータ属性として管理している。
【0059】
すなわち、同図に示すように、データ属性管理テーブル500は、データ名欄501と、先頭論理アドレス欄502と、データ長欄503と、最終アクセス時刻欄504と、頻度値欄505と、を含んでいる。
【0060】
データ識別子欄501は、ホスト装置3上のアプリケーションデータを一意に識別するための識別子を示す。先頭アドレス欄502は、当該データが格納されているディスクドライブ41上の記憶領域(論理ブロック)の先頭アドレスを示し、データ長欄503は、当該データの長さ(サイズ)を示す。最終アクセス時刻欄504は、当該データに対する最後のI/O要求があった時刻を示す。そして、頻度値欄は、当該データに対するI/O要求の回数を示す。後述するように、当該データに対する読み込み要求があった場合には、現在の頻度値に1を加え、書き込み要求があった場合には現在の頻度値から−1を引く。また、一定時間I/Oアクセス要求がないデータについては、現在の頻度値から−1を引く。あるいは頻度値を0にリセットしてもよい。これは、長期間I/O要求がないデータは将来に亘ってもI/O要求がないという経験的な仮定に基づいている。これによって、読み込み要求の頻度が多いデータほど、高い頻度値を示すことになる。従って、頻度値を参照することにより、どのデータを不揮発性キャッシュメモリ4222にステージングすることが有効であるかが判断できることになる。
【0061】
図6は、本発明の実施形態に係るストレージ装置4における書き換え回数管理テーブル600の一例を示す図である。書き換え回数管理テーブル600は、例えば、共有メモリ4241に保持される。書き換え回数管理テーブル600は、不揮発性キャッシュメモリ4222における各ブロックに対する書き換え回数を管理している。
【0062】
同図(a)は、不揮発性キャッシュメモリ4222における各ブロックが、1つのアドレスで管理されている例を示している。また、同図(b)は、各ブロックが、複数のアドレスで管理されている例を示している。つまり、チャネルアダプタ421(及びディスクアダプタ423)によって扱われる各アドレスが、不揮発性キャッシュメモリ4222の1ブロックを参照している。さらに、同図(b)は、複数のブロックが、1つのアドレスで管理されている例を示している。つまり、チャネルアダプタ421(及びディスクアダプタ423)によって扱われる各アドレスが、不揮発性キャッシュメモリ4222の複数のブロックを参照している。
【0063】
図7は、本発明の実施形態に係るストレージ装置4における読み出し要求時の処理を説明するためのフローチャートである。
【0064】
同図を参照して、チャネルアダプタ421は、ホスト装置3から読み出し要求を受け取ると、共有メモリ4241に格納されたアドレス対応テーブル400を参照して、キャッシュメモリ上の当該読み出し要求に従うデータを検索する(STEP701)。その結果、チャネルアダプタ421は、当該要求されたデータが揮発性キャッシュメモリ4221に存在すると判断する場合には(STEP702のYes)、揮発性キャッシュメモリ4221上のデータを読み出して、ホスト装置3に送出する(STEP703)。そして、チャネルアダプタ421は、データ属性管理テーブル500上の当該データについての頻度値を1つ増加させる(STEP704)。
【0065】
また、当該要求されたデータが揮発性キャッシュメモリ4221に存在せず(STEP702のNo)、不揮発性キャッシュメモリ4222に存在すると判断する場合には(STEP705のYes)、チャネルアダプタ421は、同様に、揮発性キャッシュメモリ4221上のデータを読み出して、ホスト装置3に送出する(STEP706)。そして、チャネルアダプタ421は、データ属性管理テーブル500上の当該データについての頻度値を1つ増加させる(STEP704)。
【0066】
このように、読み出し要求に従うデータが揮発性キャッシュメモリ4221又は不揮発性キャッシュメモリ4222のいずれかに存在する場合には、チャネルアダプタ421は、そこから当該要求されたデータを読み出すことによって、当該読み出し要求に対して応答することができる。
【0067】
当該要求されたデータが揮発性キャッシュメモリ4221に存在せず(STEP702のNo)、不揮発性キャッシュメモリ4222にも存在しないと判断する場合には(STEP705のNo)、チャネルアダプタ421は、当該読み出し要求に従うデータをディスクドライブ41の記憶領域からステージングするように、共有メモリ4241を介して、ディスクアダプタ423に指示を出す。ディスクアダプタ423は、当該指示に基づいて、当該要求されたデータを揮発性キャッシュメモリ4221にステージングする(STEP707)。この場合、揮発性キャッシュメモリ4221上に当該データをステージングする空き領域がない場合には、例えばLRUアルゴリズムに従って所定のデータについてデステージングにより空き領域が確保される。また、当該要求されたデータについての頻度値が高いと判断される場合には、ディスクアダプタ423は、不揮発性キャッシュメモリ4222にステージングするようにしてもよい。
【0068】
チャネルアダプタ421は、揮発性キャッシュメモリ4221に当該要求されたデータがステージングされたことを確認すると、当該要求されたデータをホスト装置3に送出する(STEP708)。そして、チャネルアダプタ421は、データ属性管理テーブル500上の当該データについての頻度値を1つ増加させる(STEP704)。
【0069】
以上のように、ホスト装置3から読み出し要求があった場合には、チャネルアダプタ421は、揮発性キャッシュメモリ4221又は不揮発性キャッシュメモリ4222のいずれかから当該読み出し要求に従うデータを読み出して、これをホスト装置3に送出することができるようになる。
【0070】
図8乃至図10は、本発明の実施形態に係るストレージ装置4における書き込み要求時の処理を説明するためのフローチャートである。
【0071】
まず、図8を参照して、チャネルアダプタ421は、ホスト装置3から書き込み要求を受け取ると、共有メモリ4241に格納されたアドレス対応テーブル400を参照して、キャッシュメモリ上に当該書き込み要求に従うデータを検索する(STEP801)。その結果、チャネルアダプタ421は、当該データが揮発性キャッシュメモリ4221に存在すると判断する場合には(STEP802のYes)、揮発性キャッシュメモリ4221上にすでにキャッシュされているデータを、当該書き込み要求に従うデータで書き換える(STEP803)。そして、チャネルアダプタ421は、データ属性管理テーブル500上の当該データについての頻度値を1つ減じる(STEP804)。
【0072】
また、当該要求されたデータが揮発性キャッシュメモリ4221に存在せず(STEP802のNo)、不揮発性キャッシュメモリ4222に存在すると判断する場合には(STEP805のYes)、チャネルアダプタ421は、不揮発性キャッシュメモリ4221上のデータを無効化する(STEP806)。これは、不揮発性キャッシュメモリ4222上のデータは読み出し専用であり、当該書き込み要求によってデータの整合性を保てなくなるためである。続いて、チャネルアダプタ421は、揮発性キャッシュメモリ4221上にキャッシュ領域を確保して、当該書き込み要求に従うデータを当該キャッシュ領域に書き込む(STEP807)。この場合、揮発性キャッシュメモリ4221上に当該データを書き込むための空き領域がない場合には、例えばLRUアルゴリズムに従って所定のデータについてデステージングにより空き領域が確保される。
【0073】
次に、チャネルアダプタ421は、データ属性管理テーブル500上の当該データについての頻度値を1つ減じる(図9のSTEP901)。さらに、チャネルアダプタ421は、書き換え回数管理テーブル600を参照して、当該書き込み要求が指定したアドレスに対応する不揮発性キャッシュメモリ4222の領域に対応する書き換え回数を取得する(STEP902)。これは、不揮発性キャッシュメモリ4222の構造上の問題から、当該書き込み回数が上限値に達した領域を使用しないようにするためである。
【0074】
チャネルアダプタ421は、当該取得した書き換え回数が書き換え上限値を超えたか否かを判断し(STEP903)、超えていれば、そのまま終了する(STEP903のYes)。これに対して、当該取得した書き換え回数が書き換え上限値を超えていない場合(STEP903のNo)、チャネルアダプタ421は、キャッシュメモリ上にステージングされていないディスクドライブ41上のデータであって、頻度値が最も高いデータを特定する(STEP904)。そして、チャネルアダプタ421は、当該特定したデータを不揮発性キャッシュメモリ4222の領域にステージングする(STEP905)。
【0075】
一方、当該要求されたデータが揮発性キャッシュメモリ4221に存在せず(STEP802のNo)、不揮発性キャッシュメモリ4222にも存在しないと判断する場合には(STEP805のNo)、チャネルアダプタ421は、揮発性キャッシュメモリ4221上にキャッシュ領域を確保して、当該書き込み要求に従うデータを当該キャッシュ領域に書き込む(STEP808)。
【0076】
次に、チャネルアダプタ421は、不揮発性キャッシュメモリ用キャッシュ管理情報を参照して、不揮発性キャッシュメモリ4222上に空き領域があるか否かを判断し(図10のSTEP1001)、空き領域があると判断する場合には(STEP1001のYes)、続いて、書き換え回数管理テーブル600を参照して、当該領域に対する書き換え回数が上限値以下であるか否かを判断する(STEP1002)。これは、不揮発性キャッシュメモリ4222の構造上の問題から、当該書き込み回数が上限値に達した領域を使用しないようにするためである。チャネルアダプタ421は、当該領域に対する書き換え回数が上限値以下であると判断する場合(STEP1002のYes)、キャッシュメモリにステージングされていないディスクドライブ41上の記憶領域にあるデータであって、頻度値が最も高いデータを特定する(STEP1003)。
【0077】
チャネルアダプタ421は、次に、当該特定したデータの頻度値が下限値以上であるか否かを判断する(STEP1004)。これは、例えばシステム起動の直後のように、各データに対するI/O要求の頻度にばらつきがなく、I/O要求の傾向が現れないため、ある一定の頻度値以上になるまではデータに対するI/O要求の頻度値を考慮に入れないようにするためである。チャネルアダプタ421は、当該特定したデータの頻度値が下限値以上であると判断する場合(STEP1005のYes)、ディスクドライブ41上の記憶領域から不揮発性キャッシュメモリ4222の当該空き領域に当該特定したデータをステージングする(STEP1006)。
【0078】
次に、本発明の実施形態に係るストレージ装置4における緊急時のバックアップ処理及びバックアップ後のリストア処理について説明する。
【0079】
図11は、本発明の実施形態に係るストレージ装置4におけるバックアップ/リストア処理を説明するための図である。同図は、図2に示したストレージ装置4の構成のうち、バックアップ/リストア処理に関わる部分に着目している。また、図の簡略化のため、冗長化構成は省略されている。
【0080】
図11を参照して、ストレージ装置4内で電源遮断が検出されると、例えば、供給電源は二次電源に切り替えられ、割り込み信号がキャッシュメモリアダプタ4223及び共有メモリアダプタ4242に与えられる。割り込み信号を検出したキャッシュメモリアダプタ4223及び共有メモリアダプタ4242は、予め定められた制御シーケンスに従ってバックアップ処理を行う。
【0081】
すなわち、キャッシュメモリアダプタ4223は、揮発性キャッシュメモリ4221上にキャッシュされたダーティデータを不揮発性キャッシュメモリ4222にバックアップする一方、共有メモリアダプタ4242は、共有メモリ4241上の各種の情報を不揮発性キャッシュメモリ4222にバックアップする。この場合、キャッシュメモリアダプタ4223は、共有メモリ4241を参照して、揮発性キャッシュメモリ4221上のどのデータがダーティであるかを認識してもよい。あるいは、バックアップされるべきデータのキャッシュメモリ管理情報がパラメータとしてキャッシュメモリアダプタ4223にセットされ、バックアップが実行されるようにしてもよい。
【0082】
また、電源遮断の復旧後、ストレージ装置4が再起動されて、リストア要求が与えられた場合、キャッシュメモリアダプタ4223及び共有メモリアダプタ4242は、予め定められた制御シーケンスに従ってリストア処理を行う。
【0083】
すなわち、共有メモリアダプタ4242は、不揮発性キャッシュメモリ4221上にバックアップされた各種の情報を共有メモリ4241にリストアする。その後、キャッシュメモリアダプタ4223は、リストアされた共有メモリ4241の内容に従って、バックアップされたデータを揮発性キャッシュメモリ4221にリストアする。
【0084】
図12は、本発明の実施形態の変形例に係るストレージ装置4におけるバックアップ処理時の各メモリの内容の対応関係を説明するための図である。本例は、揮発性キャッシュメモリ4221が実データを保持し、共有メモリ4241がシステム構成情報及びキャッシュメモリ用管理情報を保持する形態である。
【0085】
上述したように、緊急時には、揮発性キャッシュメモリ4221上の実データのうち、ダーティデータ(すなわち実データA及びC)のみ不揮発性キャッシュメモリ4222にバックアップされ、クリーンデータ(すなわち実データB)はバックアップされない。従って、共有メモリ4241上の各種の情報のうち、揮発性キャッシュメモリ4221上のバックアップされないクリーンデータについての揮発性キャッシュメモリ用管理情報はバックアップされない。
【0086】
ただし、共有メモリ4241上の不揮発性キャッシュメモリ用管理情報については、リストア処理の高速化の観点から、不揮発性キャッシュメモリ4222にバックアップされることが好ましい。つまり、不揮発性キャッシュメモリ4222上のデータはクリーンデータであるため、上書きされることによって消失したとしても、ディスクドライブ41上のデータを用いて再現可能であるが、不揮発性キャッシュメモリ4222に使用可能なデータが残っていれば、リストア要求に基づくリストア処理時において、ディスクドライブ41から読み出すデータを最小限にすることができるからである。この意味で、バックアップ処理時に利用される不揮発性キャッシュメモリ4222のメモリサイズ(S)は、少なくとも、揮発性キャッシュメモリ4221のメモリサイズ(S1)と、共有メモリ4241のメモリサイズ(S2)から不揮発性キャッシュメモリ用管理情報のサイズ(S21)を引いたメモリサイズ(S2−S21)との和以上である(S≧S1+S2−S21)ことが好ましい。
【0087】
より好ましくは、共有メモリ4241上の不揮発性キャッシュメモリ用管理情報のうち、揮発性キャッシュメモリ4221からのバックアップデータによって上書きされない、不揮発性キャッシュメモリ4222上の実データについての不揮発性キャッシュメモリ用管理情報が、不揮発性キャッシュメモリ4222にバックアップされる。これによって、バックアップ処理後の不揮発性キャッシュメモリ4222には、実データのうちの一部が上書きされずに残るので、当該上書きされなかった実データの不揮発性キャッシュメモリ用管理情報を共有メモリ4241にリストアすることで、当該上書きされなかった実データを直ちにキャッシュデータとして利用することが可能になる。
【0088】
なお、本実施形態のように不揮発性キャッシュメモリ4222が多重化されている場合には、データを多重化して不揮発性キャッシュメモリ4222にバックアップするようにしてもよいし、あるいはデータを適宜に配分してバックアップするようにしてもよい。また、1つの不揮発性キャッシュメモリ4222がバックアップデータで満杯になったら、次の不揮発性キャッシュメモリ4222にバックアップするようにしてもよい。
【0089】
図13は、本発明の実施形態に係るストレージ装置4におけるバックアップ処理を説明するためのフローチャートである。
【0090】
上述したように、ストレージ装置4内で電源遮断が検出されると、例えば、供給電源は二次電源に切り替えられ、割り込み信号がキャッシュメモリアダプタ4223及び共有メモリアダプタ4242に与えられる。割り込み信号を検出したキャッシュメモリアダプタ4223及び共有メモリアダプタ4242は、予め定められた制御シーケンスに従って以下に示すバックアップ処理を行う。
【0091】
すなわち、同図に示すように、キャッシュメモリアダプタ4223は、共有メモリ4241上の揮発性キャッシュメモリ用キャッシュ管理情報を参照し、揮発性キャッシュメモリ4221上のダーティな状態の実データ(ダーティデータ)を特定する(STEP1301)。次に、キャッシュメモリアダプタ4223は、揮発性キャッシュメモリ4221上の当該特定されたダーティデータを不揮発性キャッシュメモリ4222に転送する(STEP1302)。この場合、キャッシュメモリアダプタ4223は、転送されるダーティデータを不揮発性キャッシュメモリ4222の例えば先頭領域から書き込んでいく。
【0092】
次に、共有メモリアダプタ4242は、共有メモリ4241上のシステム構成情報を不揮発性キャッシュメモリ4222上に転送する(STEP1303)。ここで、共有メモリアダプタ4242は、転送されるシステム構成情報を、転送されたダーティデータが書き込まれた最終領域の次の領域から書き込んでいく。続いて、共有メモリアダプタ4242は、特定されたダーティデータについての共有メモリ4241上の揮発性キャッシュメモリ用管理情報を不揮発性キャッシュメモリ4222に転送する(STEP1304)。
【0093】
また、共有メモリアダプタ4242は、上記の処理の結果、不揮発性キャッシュメモリ4222上の上書きされない領域を特定し、当該特定した領域を管理する不揮発性キャッシュメモリ用管理情報を特定する(STEP1305)。そして、共有メモリアダプタ4242は、共有メモリ4241上の当該特定した不揮発性キャッシュメモリ用管理情報を不揮発性キャッシュメモリ4222に転送する(STEP1306)。この場合、ダーティデータ等によって上書きされなかった領域の一部が、共有メモリ4241から転送された不揮発性キャッシュメモリ用管理情報によって後から上書きされることがあることを考慮して、上書きされない領域及びその不揮発性キャッシュメモリ用管理情報が特定されることが好ましい。あるいは、不揮発性キャッシュメモリ用管理情報を書き込むための十分な領域を予め加味して、上書きされない領域が特定されることが好ましい。
【0094】
さらに、一連のバックアップ処理の内容を記述したバックアップ構成情報が不揮発性キャッシュメモリ4222上に作成されることが好ましい。あるいは、システム構成情報の一部として構成されていてもよい。バックアップ構成情報は、バックアップされたデータ乃至は情報が保持されていた元のメモリのアドレス情報を含む。つまり、バックアップされた実データであれば、当該実データがキャッシュされていた揮発性キャッシュメモリ4222上のアドレス情報である。また、バックアップされたシステム構成情報やキャッシュ管理情報であれば、当該情報が書き込まれていた共有メモリ4241上のアドレス情報である。バックアップ構成情報は不揮発性キャッシュメモリ4222の予め定められた領域(例えば最後の領域)に書き込まれる。
【0095】
これにより、リストア処理時においては、キャッシュメモリアダプタ4223は、まず、バックアップ構成情報を参照することで、不揮発性キャッシュメモリ4222上にバックアップされたデータ乃至は情報を元の位置(すなわち、揮発性キャッシュメモリ4221又は共有メモリ4241)に確実にリストアすることができるようになる。
【0096】
図14は、本発明の実施形態の変形例に係るストレージ装置4におけるバックアップ処理時の各メモリの内容の対応関係を説明するための図である。つまり、本実施形態では、ストレージ装置4は、不揮発性キャッシュメモリ用管理情報を共有メモリ4241に保持するのではなく、不揮発性キャッシュメモリ4222自身に保持するように、構成されている。
【0097】
不揮発性キャッシュメモリ4222自身が不揮発性キャッシュメモリ用管理情報を保持する場合、バックアップ処理によって実データの領域が上書きされているにもかかわらず、上書きされた領域についての不揮発性キャッシュメモリ用管理情報がそのまま残ってしまうおそれがある。
【0098】
従って、キャッシュメモリアダプタ4223は、揮発性キャッシュメモリ4221及び共有メモリ4241からデータ乃至は情報を不揮発性キャッシュメモリ4222にバックアップした後、このような使用不能の不揮発性キャッシュメモリ用管理情報の領域を特定し、当該特定した領域を無効化する。
【0099】
図15は、本発明の別の実施形態におけるストレージ装置4の構成を示す図である。同図において、上記実施形態と同じ構成要素には同じ符号が付されている。
【0100】
同図に示すように、本実施形態のストレージ装置4は、ホスト装置3に接続するためのインターフェースボートを含むフロントエンド426と、ディスクドライブ41に接続するためのインターフェースボードを含むバックエンド427と、これらを含むストレージ装置4内の各モジュールを制御するためのマイクロプロセッサ(MP)428とを備える。すなわち、上記実施形態のチャネルアダプタ421及びディスクアダプタ423はそれぞれ、本実施形態のフロントエンド426及びバックエンド427に対応するが、本実施形態は、独立に設けられたマイクロプロセッサ428がこれらを制御する点で上記実施形態と異なっている。また、本実施形態のストレージ装置4は、共有メモリボード424を備えていない。上記実施形態において共有メモリ4241に保持されていた各種の情報は、本実施形態では、揮発性キャッシュメモリ4221に保持される。
【0101】
このような構成のストレージ装置4において、電源遮断等の緊急時には、キャッシュメモリアダプタ4223は、揮発性キャッシュメモリ4221に保持されているダーティな実データ及び各種の情報(例えばシステム構成情報及びキャッシュ管理情報)を不揮発性キャッシュメモリ4222にバックアップする。すなわち、本実施形態では、共有メモリ4241が存在しないため、バックアップ処理は、揮発性キャッシュメモリ4221上のデータ及び各種の情報が不揮発性キャッシュメモリ4222に転送されるだけで達成される。
【0102】
図16は、本発明の上記別の実施形態に係るストレージ装置におけるデータのバックアップ/リストアメカニズムを説明するための概念図である。
【0103】
ストレージ装置4の稼働中に、例えば電源遮断等が発生した場合、ストレージ装置4は、揮発性キャッシュメモリ4221に書き込まれているデータ及び管理情報を不揮発性キャッシュメモリ4222にバックアップする。バックアップは、例えばキャッシュメモリ機構を管理するキャッシュメモリアダプタ(図示せず)によって実行される。バックアップされるデータは、揮発性キャッシュメモリ4221に書き込まれているダーティデータ及び各種の情報である。従って、バックアップ処理時の各メモリの内容の対応関係は、例えば、図17に示すようになる。
【0104】
電源遮断等が復旧した場合、ストレージ装置4は、不揮発性キャッシュメモリ4222にバックアップされたデータ及び各種の情報を揮発性キャッシュメモリ4221にリストアする。これによって、ストレージ装置4は、電源遮断等が発生した時点の状態に復元され、ホスト装置3にI/Oサービスを提供することができるようになる。
【0105】
また、図18は、本発明の当該別の実施形態の変形例に係るストレージ装置4におけるバックアップ処理時の各メモリの内容の対応関係を説明するための図である。本例は、揮発性キャッシュメモリ4221が実データ及び各種の情報を保持するが、不揮発性キャッシュメモリ管理情報については、不揮発性キャッシュメモリ4222が保持する形態である。この場合も同様に、キャッシュメモリアダプタ4223は、揮発性キャッシュメモリ4221から必要な実データ乃至は情報を不揮発性キャッシュメモリ4222にバックアップした後、上書きによって使用不能となった不揮発性キャッシュメモリ4222上の実データについての不揮発性キャッシュメモリ管理情報の領域を特定し、当該特定した領域を無効化する。
【0106】
次に、本発明に係るさらに別の実施形態について説明する。
【0107】
本実施形態は、1つ又は複数のディスクドライブ41によってそれぞれ構成された複数のRAIDグループ(仮想デバイス)の中の特定の仮想デバイスに、上述した属性に応じてデータを集約し、当該特定の仮想デバイス上の全データを不揮発性キャッシュメモリ4222にステージングして、さらに、当該特定の仮想デバイスに対する電力供給を自発的に停止することを特徴とする。電力供給の停止は、電力供給がゼロの状態のみならず、例えば、スリープ状態のように、必要最小限の電力が供給されている状態を含む、広い意味で用いられる。
【0108】
これにより、ディスクドライブ41に対する電源供給量を減らすことができ、ストレージ装置4全体の消費電力を低減ることができるようになる。
【0109】
なお、以下では、RAID構成による仮想デバイスを前提に説明するが、1つの仮想デバイスを1つのディスクドライブ41として考えても同様に説明することができる。
【0110】
図19は、本発明の当該別の実施形態に係るストレージ装置4における消費電力低減メカニズムを説明するための概念図である。同図は、上述したストレージ装置4の構成のうち、消費電力低減処理に関わる部分に着目している。また、図の簡略化のため、冗長化構成は省略されている。なお、同図は、ディスクアダプタ423によりディスクドライブ41を制御する構成を採用しているが、バックエンド427によりディスクドライブ41を制御する構成であってもよい。
【0111】
まず、ディスクアダプタ423は、仮想デバイスA〜Cに格納されたデータのうち、頻度値の高いデータを仮想デバイスAに最適再配置する(同図(1))。つまり、仮想デバイスB及びCに格納されたデータのうち、頻度値が高いデータを仮想デバイスAに移行し、仮想デバイスAに格納されたデータのうち、頻度値が低いデータを仮想デバイスB又はCに移行する。頻度値が高いか低いかは、例えば、所定のしきい値を設定しておき、当該しきい値を上回ったか、又は下回ったかによって判断する。
【0112】
次に、仮想デバイスAに格納されたデータが、頻度値が高いもので満たされた場合、ディスクアダプタ423は、当該仮想デバイスA上の再配置された全データを不揮発性キャッシュメモリ4222にステージングする(同図(2))。
【0113】
そして、ディスクアダプタ423は、仮想デバイスAに対する電力供給を停止するように、ディスクドライブ41に指示し、これを受けて、ディスクドライブ41内の電源制御部は、仮想デバイスAに対する電力供給を停止する(同図(3))。
【0114】
なお、停止された仮想デバイスAは、読み出し要求の頻度が高いデータが集約されているため、当該データに対する書き込み要求が与えられる可能性は低い。しかしながら、ストレージ装置4の稼働中、停止された仮想デバイスAに格納されたデータに対するホスト装置3からのアクセス要求が与えられた場合には、仮想デバイスAを再起動(スピンアップ)すればよい。
【0115】
図20は、本発明の当該別の実施形態に係るストレージ装置4における消費電力低減処理を説明するためのフローチャートである。消費電力低減処理は、システム管理者による指示を受けて、又は所定のタイミングで、ディスクアダプタ423によって実行される。
【0116】
すなわち、ディスクアダプタ423は、不揮発性キャッシュメモリ4222の現在の有効メモリ容量を取得する(STEP2001)。有効メモリ容量とは、不揮発性キャッシュメモリ4222上の実際に使用可能な領域の総容量である。つまり、書き込み回数が上限値に達した領域やエラーの発生した領域は使用対象から除外されるため、不揮発性キャッシュメモリ4222の初期容量からそのような領域の容量を差し引いた容量が有効メモリ容量となる。有効メモリ容量は、例えば、システム構成情報の一部として共有メモリ4241に保持される。
【0117】
次に、ディスクアダプタ423は、ある1つの仮想デバイスの容量が不揮発性キャッシュメモリ4222の有効メモリ容量以下であるか否かを判断する(STEP2002)。
ある仮想デバイスの容量が不揮発性キャッシュメモリ4222の有効メモリ容量以下でないと判断する場合(STEP2002のNo)、ディスクアダプタ423は、当該消費電力低減処理によってスピンダウンできる仮想デバイスがないため、処理を終了する。
【0118】
これに対して、ある仮想デバイスの容量が不揮発性キャッシュメモリ4222の有効メモリ容量以下であると判断する場合(STEP2002のYes)、ディスクアダプタ423は、各仮想デバイスに格納されたデータのうち、頻度値が所定のしきい値を上回っているデータを抽出し、これを当該仮想デバイスに再配置する(STEP2003)。すなわち、他の仮想デバイスに格納されたデータのうち、頻度値が高いデータは当該仮想デバイスに移行し、当該仮想デバイスに格納されたデータのうち、頻度値が低いデータを他の仮想デバイスに移行する。これによって、当該仮想デバイスには、頻度値の高いデータが集約されることになる。
【0119】
データの再配置後、ディスクアダプタ423は、当該仮想デバイスに再配置された全データを不揮発性キャッシュメモリ4222にステージングする(STEP2004)。そして、ディスクアダプタ423は、当該仮想デバイスを構成するディスクドライブ41をスピンダウンさせるために、ディスクドライブ41に電力供給の停止を指示する(STEP2005)。これを受けて、ディスクドライブ41は、指示されたディスクドライブ41の電力供給を停止する。
【0120】
なお、上述した例では、1つの仮想デバイスについてスピンダウンさせることとしたが、不揮発性キャッシュメモリ4222のメモリ容量がある限り、複数の仮想デバイスについて上記の処理を行うことができる。
【産業上の利用可能性】
【0121】
本発明は、キャッシュメモリを採用するストレージ装置に広く適用することができる。
【図面の簡単な説明】
【0122】
【図1】本発明の実施形態に係るストレージ装置におけるデータのバックアップ/リストアメカニズムを説明するための概念図である。
【図2】本発明の実施形態に係るストレージ装置を含むコンピュータシステムの構成を説明するための図である。
【図3】本発明の実施形態に係るストレージ装置における共有メモリの内容を説明するための図である。
【図4】本発明の実施形態に係るストレージ装置におけるアドレス対応テーブルの一例を示す図である。
【図5】本発明の実施形態に係るストレージ装置におけるデータ属性管理テーブルの一例を示す図である。
【図6】本発明の実施形態に係るストレージ装置における書き換え回数管理テーブルの一例を示す図である。
【図7】本発明の実施形態に係るストレージ装置における読み出し要求時の処理を説明するためのフローチャートである。
【図8】本発明の実施形態に係るストレージ装置における書き込み要求時の処理を説明するためのフローチャートである。
【図9】本発明の実施形態に係るストレージ装置における書き込み要求時の処理を説明するためのフローチャートである。
【図10】本発明の実施形態に係るストレージ装置における書き込み要求時の処理を説明するためのフローチャートである。
【図11】本発明の実施形態に係るストレージ装置におけるバックアップ/リストア処理を説明するための図である。
【図12】本発明の実施形態の変形例に係るストレージ装置におけるバックアップ処理時の各メモリの内容の対応関係を説明するための図である。
【図13】本発明の実施形態に係るストレージ装置におけるバックアップ処理を説明するためのフローチャートである。
【図14】本発明の実施形態の変形例に係るストレージ装置におけるバックアップ処理時の各メモリの内容の対応関係を説明するための図である。
【図15】本発明の実施形態におけるストレージ装置の構成を示す図である。
【図16】本発明の実施形態に係るストレージ装置におけるデータのバックアップ/リストアメカニズムを説明するための概念図である。
【図17】本発明の実施形態に係るストレージ装置におけるバックアップ処理時の各メモリの内容の対応関係を説明するための図である。
【図18】本発明の実施形態の変形例に係るストレージ装置におけるバックアップ処理時の各メモリの内容の対応関係を説明するための図である。
【図19】本発明の実施形態に係るストレージ装置における消費電力低減メカニズムを説明するための概念図である。
【図20】本発明の実施形態に係るストレージ装置における消費電力低減処理を説明するためのフローチャートである。
【符号の説明】
【0123】
1…コンピュータシステム
2…ネットワーク
3…ホスト装置
4…ストレージ装置
41…ディスクドライブ
42…ディスク制御装置
43…ディスクチャネル
421…チャネルアダプタ
422…キャッシュ機構
4221…揮発性キャッシュメモリ
4222…不揮発性キャッシュメモリ
4223…キャッシュメモリアダプタ
423…ディスクアダプタ
424…共有メモリボード
4241…共有メモリ
4242…共有メモリアダプタ
425…内部スイッチ
【技術分野】
【0001】
本発明は、ストレージ装置及びストレージ装置におけるデータの管理方法に関し、特にストレージ装置内のキャッシュデータの管理技術に関する。
【背景技術】
【0002】
ストレージ装置(ストレージサブシステム)は、一般に、システムパフォーマンス等の観点から、キャッシュメモリを備えている。キャッシュメモリは、典型的には、DRAM等の揮発性メモリから構成されている。大容量のハードディスクドライブを搭載した大規模なストレージ装置は、数〜数十ギガバイトオーダの大容量のキャッシュメモリを実装し、稼働中、そこにデータをキャッシュしながら、ホスト装置に対するI/Oアクセス要求に応答している。従って、このようなストレージ装置は、不意の電源遮断によってキャッシュメモリ上のデータが消失することを防止するため、不意の電源遮断時には二次電源であるバッテリから電源を一時的に供給して稼働状態を維持しつつ、その間に当該キャッシュメモリのデータをハードディスクドライブにデステージング(バックアップ)していた。
【0003】
一方、近年、フラッシュメモリ等の不揮発性メモリの大容量化・低下価格化が進み、不揮発性メモリの用途が広まりつつある。例えば、下記特許文献1には、キャッシュメモリの一部をフラッシュメモリで構成したハードディスク装置が開示されている。すなわち、当該特許文献1では、ハードディスク上の頻繁にアクセスされる領域のデータはフラッシュメモリに置かれ、これによって、データアクセスに際してディスクヘッドの移動を極力なくして、アクセス効率を高めるとともに、電源遮断によるキャッシュデータの消失を防止している。
【0004】
また、下記特許文献2には、EEPROMから構成される半導体ディスク装置をハードディスクドライブに対するキャッシュメモリとして機能させるデータ記憶システムが開示されている。具体的には、当該特許文献2では、オペレーティングシステムや使用頻度の高いアプリケーションプログラムの起動に必要な情報は半導体ディスク装置に保存され、電源投入直後であっても効果的にキャッシュ機能が発揮されるようにしている。
【特許文献1】特開平6−236241号公報
【特許文献2】特開平10−154101号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
大規模なストレージ装置では、その稼働中、大容量のデータがハードディスクドライブにデステージングされずにキャッシュメモリ上に存在している。従って、電源遮断等の緊急時においてもかかるデータが消失しないように対策を施すこと必須となる。
【0006】
バッテリを用いた緊急時の従来のデータバックアップ方式においては、ストレージ装置は、相対的に高価なバッテリをハードディスクドライブの駆動維持のために相当量実装する必要があり、コストが嵩む傾向にあった。このため、消費電力をできるだけ低く抑えることが少ない量のバッテリで駆動を長持ちさせることになるが、データのバックアップ先がハードディスクドライブに設定されている以上、消費電力を効果的に削減することは困難であった。
【0007】
一方、フラッシュメモリに代表される不揮発性メモリは、その構造上、ブロック(領域)に対する消去・書き込み回数に制限があるため、頻繁に書き込みアクセスが行われるようなハードディスクドライブのキャッシュメモリとして用いる場合には、書き込みアクセスが特定のブロックに集中しないように制御する必要がある。従って、現実的な問題として、不揮発性メモリをストレージ装置におけるキャッシュメモリとして積極的に利用しづらかった。
【0008】
また、キャッシュメモリの一部が不揮発性メモリで構成されている場合であっても、揮発性のキャッシュメモリに格納されているデータについては、電源遮断等の緊急性時にはハードディスクドライブにバックアップしなければ消失してしまうという問題があった。このため、揮発性のキャッシュメモリに保持されているデータを、電源遮断等の緊急時にハードディスクドライブにバックアップするのであれば、結局、従来のバッテリバックアップ方式における消費電力の問題に帰結することになる。
【0009】
そこで、本発明は、電源遮断等の緊急のバックアップ要求が発生した場合においても、二次電源の下で、揮発性キャッシュメモリに保持されているデータを効率的かつ確実に保存し、データの消失を防止できるようにすることを課題とし、ひいては、当該二次電源の消費電力を削減できるようにすることを課題としている。
【0010】
また、本発明は、不揮発性キャッシュメモリを効率的に利用することで、ハードディスクドライブに対する電源供給を停止して、消費電力の低減を図ることを課題としている。
【課題を解決するための手段】
【0011】
本発明は、上記課題に鑑みてなされたものである。
【0012】
ある観点に従う本発明は、データセット群を格納するための記憶媒体を含むディスクドライブと、前記ディスクドライブを制御するディスク制御装置とを備えたストレージ装置であって、前記ディスク制御装置が、ホスト装置からのI/O要求を受け付けるホストインターフェースと、前記ディスクドライブに接続されたディスクインターフェースと、前記ホストインターフェース及び前記ディスクインターフェースに接続され、揮発性メモリからなる第1のキャッシュメモリと不揮発性メモリからなる第2のキャッシュメモリとを含むキャッシュ機構とを備え、前記ディスクドライブに格納されたデータセット群のそれぞれに関連付けられた属性値を管理するように構成されたストレージ装置である。
【0013】
また、前記ディスクインターフェースは、前記属性値のそれぞれに基づいて、前記ディスクドライブに格納されたデータセット群の中から特定される第1のデータセットを前記第2のキャッシュメモリに書き込む。
【0014】
そして、前記ディスク制御装置は、所定のバックアップ要求時に、前記第1のキャッシュメモリに書き込まれたデータセット群の中から特定される第2のデータセットを前記第2のキャッシュメモリに転送する。
【0015】
また、他の観点に従う本発明は、データセットを格納するための記憶媒体を含むディスクドライブと、前記ディスクドライブを制御するディスク制御装置とを備えたストレージ装置であって、前記ディスク制御装置が、プロセッサと、前記プロセッサによって制御される、ホスト装置からのI/O要求を受け付けるホストインターフェースと、前記プロセッサによって制御される、前記ディスクドライブに接続されたディスクインターフェースと、前記ホストインターフェース及び前記ディスクインターフェースに接続され、揮発性メモリからなる第1のキャッシュメモリと不揮発性メモリからなる第2のキャッシュメモリとを含むキャッシュ機構とを備え、前記ディスクドライブに格納されたデータセット群のそれぞれに関連付けられた属性値を管理するように構成されたストレージ装置である。
【0016】
また、前記プロセッサは、前記属性値に基づいて、前記ディスクドライブに格納されたデータセット群の中から特定される第1のデータセットが前記第2のキャッシュメモリに書き込まれるように、前記ディスクインターフェースを制御する。
【0017】
そして、前記ディスク制御装置は、所定のバックアップ要求時に、前記第1のキャッシュメモリに書き込まれたデータセット群の中から特定される第2のデータセットを前記第2のキャッシュメモリに転送する。
【0018】
さらに、他の観点に従う本発明は、データセットを格納するための記憶媒体を含むディスクドライブと、前記ディスクドライブを制御するディスク制御装置とを備えたストレージ装置におけるデータ管理方法である。すなわち、本発明は、揮発性メモリからなる第1のキャッシュメモリ及び不揮発性メモリからなる第2のキャッシュメモリを提供するステップと、前記ディスクドライブに格納されたデータセット群のそれぞれに属性値を与えるステップと、前記第1のキャッシュメモリに第1のデータセットを書き込むステップと、前記格納されたデータセット群のそれぞれに与えられた属性値に基づいて、前記ディスクドライブに格納されたデータセット群の中から第2のデータセットを特定するステップと、前記特定したデータセットを前記第2のキャッシュメモリに書き込むステップと、ホスト装置から書き込み要求を受け付けた場合に、前記書き込み要求に従うデータセットに対応するデータセットが前記第2のデータセットとして前記第2のキャッシュメモリにすでに書き込まれているか否かを判断するステップと、前記判断するステップにおいて、前記書き込み要求に従うデータセットに対応するデータセットが前記第2のデータセットとして前記第2のキャッシュメモリにすでに書き込まれていると判断される場合に、前記第2のキャッシュメモリ上の前記第2のデータセットが書き込まれいた領域を無効化するステップと、前記第2のキャッシュメモリにおける前記無効化された領域に、前記属性値に基づいて特定される新たなデータセットを書き込むステップと、バックアップ要求時に、前記第1のキャッシュメモリに書き込まれた前記第1のデータセットを前記第2のキャッシュメモリに転送するストレージ装置のデータ管理方法である。
【0019】
さらにまた、他の観点に従う本発明は、データセットを格納する記憶媒体を含む複数のディスクドライブと、前記複数のディスクドライブを制御するディスク制御装置とを備えたストレージ装置におけるデータ管理方法であって、前記複数のディスクドライブのそれぞれに、異なるデータセットを格納するステップと、前記データセットのそれぞれに所定の属性値を与えるステップと、前記与えられた所定の属性値に基づいて、前記データセットのそれぞれを前記複数のディスクドライブのいずれかに再配置するステップと、前記複数のディスクドライブのうち少なくとも1つのディスクドライブを特定するステップと、前記特定された少なくとも1つのディスクドライブに再配置された全データセットを不揮発性メモリからなるキャッシュメモリに書き込むステップと、前記特定された少なくとも1つのディスクドライブに対する電源供給を停止するステップと、を含むストレージ装置におけるデータの管理方法である。
【発明の効果】
【0020】
本発明によれば、キャッシュメモリの一部として構成された不揮発性メモリには「クリーンなデータ」を格納するようにしているので、当該不揮発性メモリを緊急時のバックアップ先として有効に利用することができるようになる。
【0021】
また、本発明によれば、不揮発性メモリをハードディスクドライブに代わる緊急時のバックアップ先として利用しているので、消費電力を抑えることができ、従って、特に、二次電源として実装されるべきバッテリの量を削減することができるようになる。
【0022】
さらに、本発明によれば、特定のディスクドライブに格納された全データを不揮発性キャッシュメモリにステージングし、当該特定のディスクドライブの電源供給を停止しているので、高キャッシュヒット率が期待でき、システムパフォーマンスが向上するとともに、消費電力の低減を図ることができるようになる。
【発明を実施するための最良の形態】
【0023】
次に、本発明の実施の形態について、図面を参照しつつ説明する。
【0024】
本実施形態は、ストレージ装置内のキャッシュメモリ上のデータ(データセット)がいわゆる「ダーティな」状態又はいわゆる「クリーンな」状態になりうることに着目して、キャッシュされるべきデータを、その状態に応じて揮発性キャッシュメモリ又は不揮発性キャッシュメモリのいずれかに最適に配置することを特徴とする。ここで、ダーティデータとは、キャッシュメモリ上のデータがハードディスクドライブ上の対応するデータと整合性がとれていない(一致していない)状態のデータをいう。典型的には、キャッシュメモリ上のあるデータがホスト装置からの書き込み要求によって更新されたにもかかわらず、ハードディスクドライブ上の対応するデータがまだ更新されていない場合に、キャッシュメモリ上のデータはダーティな状態となる。また、クリーンデータとは、キャッシュメモリ上のデータとハードディスクドライブ上の対応するデータと整合性がとれている状態のデータをいう。
【0025】
すなわち、本実施形態は、揮発性メモリと不揮発性メモリとで構成されたキャッシュメモリを含んで構成されたストレージ装置であって、揮発性キャッシュメモリには、ホスト装置からの書き込み要求に従うデータ及びディスクドライブからステージングされたデータをキャッシュする一方、不揮発性キャッシュメモリには、ディスクドライブからステージングされたデータのみをキャッシュするように構成されたストレージ装置である。つまり、ホスト装置からの書き込み要求は、ダーティデータを作り出すため、ストレージ装置は、揮発性キャッシュメモリにはホスト装置からの書き込み要求に従うデータをキャッシュする一方、不揮発性キャッシュメモリにはクリーンデータのみをキャッシュしておき、ホスト装置からの読み出し要求に備える。
【0026】
これによって、従来、データのバックアップのために用意されていた不揮発性メモリをキャッシュメモリとして有効に利用することができるようになる。
【0027】
そして、電源遮断等による緊急のバックアップ要求が発生した場合には、ストレージ装置は、揮発性キャッシュメモリにキャッシュされているダーティデータ及びその他の情報を不揮発性キャッシュメモリに直ちにバックアップする。また、ストレージ装置が、揮発性メモリで構成された共有メモリを備えている場合には、同様に、共有メモリに保持されている各種の情報を不揮発性キャッシュメモリにバックアップする。つまり、不揮発性キャッシュメモリにはクリーンデータのみがキャッシュされており、従って、当該データについては、別段、バックアップする必要がないため、不揮発性キャッシュメモリの内容が揮発性キャッシュメモリの内容で上書きされることを許容する。
【0028】
これによって、電源遮断等の緊急時において、揮発性キャッシュメモリ上のデータのうち特定のデータをバックアップすればよく、少ない消費電力で、かつ、高速にバックアップすることができるようになる。
【0029】
図1は、本発明の実施形態に係るストレージ装置におけるデータのバックアップ/リストアメカニズムを説明するための概念図である。
【0030】
同図に示すように、チャネル2を介して相互に接続されたホスト装置3及びストレージ装置4は、コンピュータシステム1を構成している。
【0031】
ストレージ装置4は、例えば、チャネルアダプタ(CHA)421、キャッシュ機構422、ディスクアダプタ(DKA)423、及び共有メモリ(SM)4241を備える。キャッシュ機構422は、揮発性キャッシュメモリ(VCM)4221と不揮発性キャッシュメモリ(NVCM)4222とを含んで構成されている。そして、これらは互いに協働して、ホスト装置3からのI/Oアクセス要求に応答して、ハードディスクドライブ(HDD)41にデータを格納し、又はそこからデータを読み出して、これをホスト装置3に提供する。なお、ストレージ装置4の具体的構成例及び動作例については後述する。
【0032】
揮発性キャッシュメモリ4221は、読み出し/書き込み用のキャッシュメモリとして機能し、不揮発性キャッシュメモリ4222は、読み出し専用のキャッシュメモリとして機能する。従って、チャネルアダプタ421は、ホスト装置3から書き込み要求を受け取ると、揮発性キャッシュメモリ4222に当該書き込み要求に従うデータを書き込み、不揮発性キャッシュメモリ4221に当該書き込み要求に従うデータを書き込むことはない。不揮発性キャッシュメモリ4221には、後述する属性値に応じて、ディスクアダプタ423によってディスクドライブ41から読み出されたデータが書き込まれる。
【0033】
より具体的には、ホスト装置3からのI/O要求に従って、チャネルアダプタ421は、共有メモリ4241を参照して、揮発性キャッシュメモリ4221又は不揮発性キャッシュメモリ4222のいずれかにアクセスする。読み出し要求時においては、揮発性キャッシュメモリ4221及び不揮発性キャッシュメモリ4222のいずれにも要求されたデータが存在しない場合(キャッシュミスの場合)には、ディスクアダプタ423は、共有メモリ4241を参照して、当該要求されたデータをディスクドライブ41から読み出して、揮発性キャッシュメモリ4221又は不揮発性キャッシュメモリ4222のいずれかに当該データを書き込み(ステージング)、共有メモリ4241の内容を更新する。揮発性キャッシュメモリ4221又は不揮発性キャッシュメモリ4222のどちらにステージングするかは、当該データに与えられた属性に依存する。一方、書き込み要求時においては、チャネルアダプタ421は、当該要求されたデータを揮発性キャッシュメモリ4221に書き込み、共有メモリ4241の内容を更新する。この場合、当該要求されたデータに対応するデータが不揮発性キャッシュメモリ4221にすでに存在していた場合には、当該対応するデータを無効化して、当該要求されたデータを揮発性キャッシュメモリ4221に書き込む。
【0034】
ストレージ装置4の稼働中に、例えば電源遮断等が発生した場合、ストレージ装置4は、揮発性キャッシュメモリ4221に書き込まれているデータ及び管理情報を不揮発性キャッシュメモリ4222にバックアップする。バックアップは、例えばキャッシュメモリ機構を管理するキャッシュメモリアダプタ(図示せず)によって実行される。バックアップされるデータは、揮発性キャッシュメモリ4221に書き込まれている全てのデータではなく、ダーティデータ及びその管理情報であればよい。また、ストレージ装置4は、共有メモリ4241に保持されているシステム構成情報等も不揮発性キャッシュメモリ4222にバックアップする。
【0035】
電源遮断等が復旧した場合、ストレージ装置4は、不揮発性キャッシュメモリ4222にバックアップされたデータ及び他の情報を揮発性キャッシュメモリ4221及び共有メモリ4241のそれぞれにリストアする。これによって、ストレージ装置4は、電源遮断等が発生した時点の状態に復元され、ホスト装置3にI/Oサービスを提供することができるようになる。
【0036】
図2は、本発明の実施形態に係るストレージ装置を含むコンピュータシステムの構成を説明するための図である。同図に示すように、コンピュータシステム1は、チャネル2を介して接続されたホスト装置3及びストレージ装置4を含み、例えば、銀行の業務システムや航空機の座席予約業務システム等として構成される。
【0037】
チャネル2は、例えばLAN、インターネット、又はSAN(Storage Area Network)であり、ネットワークスイッチやハブ等を含んで構成される。本実施形態では、チャネル2は、ファイバーチャネルプロトコルを用いたSAN(FC−SAN)で構成されているものとする。
【0038】
ホスト装置3は、例えば、銀行の業務システムや航空機の座席予約業務システム等の中核をなすコンピュータである。具体的には、ホスト装置3は、プロセッサと、メインメモリと、通信インターフェースと、ローカル入出力装置等のハードウェア資源を備え、また、デバイスドライバやオペレーティングシステム(OS)、アプリケーションプログラム等のソフトウェア資源を備えている(図示せず)。これによって、ホスト装置3は、プロセッサの制御の下、各種のプログラムを実行して、ハードウェア資源との協働作用により、所望の処理を実現する。例えば、ホスト装置3は、プロセッサの制御の下、OS上で業務アプリケーションプログラムを実行することにより、以下に詳述されるストレージ装置4にアクセスし、所望の業務システムを実現する。
【0039】
ストレージ装置4は、データを格納するための記憶領域をホスト装置3に提供する。ストレージ装置4は、物理デバイス(PDEV)である複数のディスクドライブ41と、ディスクドライブ41に対する書き込み又は読み出しといったI/Oアクセスを制御するディスク制御装置42とを備える。ディスクドライブ41とディスク制御装置42とは、ディスクチャネル43を介して接続される。
【0040】
ディスクドライブ41は、例えばハードディスクドライブや不揮発性メモリ等の記憶媒体を含んで構成される。ディスクドライブ41は、RAID(Redundant Arrays of Independence Disks)を構成するかも知れない。RAID構成においては、いくつかのディスクドライブ41は、1つの仮想デバイス(VDEV)を構成し、当該仮想デバイス上に1又は複数の論理デバイス(LDEV)が定義される。論理デバイスは、ホスト装置3が認識しうる論理的なデバイスである。
【0041】
論理デバイスには、論理ユニット(LU)が定義される。各論理ユニットには、論理ユニット番号(LUN)が付与される。また、論理ユニットは、I/Oアクセスの最小単位であるブロックに分割され、各ブロックには、論理ブロックアドレス(LBA)が割り当てられる。これにより、ホスト装置3は、LUNおよびLBAからなる論理アドレスをストレージ装置4に与えることにより、特定の論理ユニットにおける任意のブロックに記憶されたデータに対してアクセスを行うことができる。
【0042】
ディスク制御装置42は、チャネルアダプタ(CHA)421と、キャッシュ機構422と、ディスクアダプタ(DKA)423と、共有メモリ(SM)ボード424とを備え、これらのモジュール乃至はコンポーネントは、内部スイッチ425を介して相互に接続されている。これらのモジュールは、冗長化構成により、それぞれ多重化されている。
【0043】
チャネルアダプタ421は、各ポートに対応したチャネルプロトコルデバイス(CP)を備え、チャネル2を介してポートに接続されたホスト装置3との間でI/Oアクセス要求に基づく通信を行うホストインターフェースとして機能するシステム回路である。チャネルプロトコルデバイスは、個々のプロトコルに応じたプロトコル処理を行うためのプロセッサを備えている。
【0044】
キャッシュ機構422は、キャッシュメモリを備え、ホスト装置3に対して高いシステムパフォーマンスを提供するため、ホスト装置3とディスクドライブ51との間でやり取りされるデータを一時的に記憶(キャッシュ)する。つまり、キャッシュ機構422は、チャネルアダプタ421とディスクアダプタ423との間のデータの受け渡しに利用される。本実施形態では、キャッシュ機構422のキャッシュメモリは、DRAM等で構成される揮発性キャッシュメモリ(第1のキャッシュメモリ)4221とフラッシュメモリ等で構成される不揮発性キャッシュメモリ(第2のキャッシュメモリ)4222とによって構成されている。揮発性キャッシュメモリ4221及び不揮発性キャッシュメモリ4222は、冗長化構成により、それぞれ多重化されている。なお、本明細書において、単にキャッシュメモリというときは、揮発性キャッシュメモリ4221及び不揮発性キャッシュメモリ4222をいうものとする。
【0045】
キャッシュ機構422はまた、キャッシュメモリアダプタ(CMA)4223を備える。キャッシュメモリアダプタ4223は、揮発性キャッシュメモリ4221と不揮発性キャッシュメモリ4222との間のデータ制御を行う。
【0046】
本実施形態では、揮発性キャッシュメモリ4221は、データの読み出し/書き込みに使用される。一方、不揮発性キャッシュメモリ4222は、データの読み出しのみに使用される。すなわち、チャネルアダプタ421は、ホスト装置3から書き込み要求を受領した場合には、揮発性キャッシュメモリ4221に対して書き込み要求に従うデータを書き込む。また、ホスト装置3からの読み出し要求に基づくステージング時には、チャネルアダプタ423は、ディスクドライブ41から要求されたデータを揮発性キャッシュメモリ4221又は揮発性キャッシュメモリ4222のいずれかに書き込む。従って、不揮発性キャッシュメモリ4222にキャッシュされるデータは、ディスクアダプタ423によってディスクドライブ41からステージングされたデータのみである。
【0047】
なお、本実施形態では、1つのキャッシュ機構422に揮発性キャッシュメモリ4221と揮発性キャッシュメモリ4222とを含めた構成となっているが、物理的に独立するキャッシュ機構に揮発性キャッシュメモリ4221と揮発性キャッシュメモリ4222とをそれぞれ含めた構成であってもよい。また、キャッシュ機構422内にキャッシュメモリアダプタ4223を設けずに、同等の機能を有する外部のプロセッサが制御するような構成であってもよい。
【0048】
ディスクアダプタ423は、各ポートに対応したチャネルプロトコルデバイスを備え、ディスクチャネル43を介してポートに接続されたディスクドライブ41に対するI/Oアクセスの制御を行うディスクインターフェースとして機能するシステム回路である。すなわち、ディスクアダプタ523は、キャッシュ機構422内のキャッシュメモリからデータを取り出して、ディスクドライブ41に格納し(デステージング)、また、ディスクドライブ41からデータを読み出して、キャッシュメモリ522に書き込む(ステージング)。例えば、ホスト装置3からの読み出し要求を受け付けた場合であって、揮発性キャッシュメモリ4221及び不揮発性キャッシュメモリ4222のいずれにも要求されたデータが存在しない場合には、必要に応じてデステージングを行ってキャッシュ領域を確保した後、揮発性キャッシュメモリ4221及び不揮発性キャッシュメモリ4222のいずれかに要求されたデータをステージングする。
【0049】
共有メモリボード424は、ストレージ装置4内の各モジュールが参照すべき各種の情報を記憶する共有メモリ4241と、これを制御するための共有メモリアダプタ(SMA)4242とを含む。本実施形態では、共有メモリ4241は、DRAM等の揮発性メモリで構成されている。共有メモリ4241は、例えば、図3に示すように、システム構成情報、アドレス対応テーブル、データ属性管理テーブル、書き換え回数管理テーブル、及びキャッシュメモリ管理情報等の各種の情報を記憶する。共有メモリ4241はまた、ストレージ装置4内のモジュールが使用する各種の制御プログラムを記憶するかも知れない。
【0050】
システム構成情報は、ストレージ装置4内の各モジュールの構成情報や各モジュール上で動作する制御プログラムのバージョン情報といったシステムの構成に関する情報である。
【0051】
アドレス対応テーブルは、キャッシュメモリにキャッシュされているデータがディスクドライブ41上のどの記憶領域(論理ブロック)に格納されるべきものかを管理する情報である。すなわち、ディレクトリ情報は、キャッシュメモリにキャッシュされているデータについて、ホスト装置3が認識する論理アドレスと、キャッシュメモリ上のキャッシュメモリアドレスとを対応付けたアドレス管理情報を含んでいる。本実施形態では、キャッシュメモリアドレスの値によって、揮発性キャッシュメモリ4221上のアドレスであるのか、不揮発性キャッシュメモリ4222上のアドレスであるのかが、認識できるようになっている。
【0052】
従って、チャネルアダプタ421は、アドレス対応テーブルを参照することによって、I/Oアクセス要求に基づくデータがいずれのキャッシュメモリ上に存在するか否かを判断することができる。また、チャネルアダプタ421は、アドレス対応テーブルを参照することによって、キャッシュメモリにキャッシュされているデータを、ディスクドライブ41上の指定された記憶領域にデステージングすることができる。
【0053】
なお、より具体的には、キャッシュメモリ上のデータにアクセスするためには、アドレス対応テーブルとともに上述したキャッシュメモリ管理情報が参照される。チャネルアダプタ421は、データをステージングした場合に、アドレス対応テーブル及びキャッシュメモリ管理情報を更新する。また、ディスクアダプタ423は、データをデステージングした場合に、アドレス対応テーブル及びキャッシュメモリ管理情報を更新する。
【0054】
キャッシュ管理情報は、揮発性キャッシュメモリ4221用の管理情報(揮発性キャッシュメモリ管理情報)と不揮発性キャッシュメモリ4222用の管理情報(不揮発性キャッシュメモリ管理情報)とからなり、それぞれのキャッシュメモリ上にキャッシュされたデータを管理するためのメタ情報である。1ユニット当たりのキャッシュメモリ管理情報が管理可能なデータサイズの上限が定められている。従って、大きなサイズのデータは、複数ユニットのキャッシュ管理情報によって管理される。
【0055】
図2に戻り、内部スイッチ425は、クロスバースイッチ等により構成されるスイッチングデバイスである。内部スイッチ425は、入力されるデータ信号の競合を調停し、データ信号のパスを切り替えて、送出元のモジュールと送出先のモジュールとのパスを構築する。なお、内部スイッチ425は、パケット交換方式のスイッチングデバイスであってもよい。
【0056】
図4は、本発明の実施形態に係るストレージ装置4におけるアドレス対応テーブル400の一例を示す図である。
【0057】
同図に示すように、アドレス対応テーブル400は、先頭論理アドレス欄401及びキャッシュメモリ先頭アドレス欄402を含んでいる。先頭論理アドレス欄401は、ホスト装置3によって指定されたデータについてのディスクドライブ41上の記憶領域の先頭論理アドレスを示す。キャッシュメモリ先頭アドレス欄402は、当該データについてのキャッシュメモリ上のブロックの先頭アドレスを示す。本実施形態では、アドレス位置によって、揮発性キャッシュメモリ4221又は不揮発性キャッシュメモリ4222のいずれであるかが区別される。同図では、“x”で始まるアドレスは、揮発性キャッシュメモリ4221の先頭アドレスを示し、“y”で始まるアドレスは、不揮発性キャッシュメモリ4222の先頭アドレスを示している。
【0058】
図5は、本発明の実施形態に係るストレージ装置4におけるデータ属性管理テーブル500の一例を示す図である。データ属性管理テーブル500は、例えば、共有メモリ4241に保持される。本実施形態では、データ属性管理テーブル500は、ディスクドライブ41に格納されるべき各データについてのI/O要求の頻度をデータ属性として管理している。
【0059】
すなわち、同図に示すように、データ属性管理テーブル500は、データ名欄501と、先頭論理アドレス欄502と、データ長欄503と、最終アクセス時刻欄504と、頻度値欄505と、を含んでいる。
【0060】
データ識別子欄501は、ホスト装置3上のアプリケーションデータを一意に識別するための識別子を示す。先頭アドレス欄502は、当該データが格納されているディスクドライブ41上の記憶領域(論理ブロック)の先頭アドレスを示し、データ長欄503は、当該データの長さ(サイズ)を示す。最終アクセス時刻欄504は、当該データに対する最後のI/O要求があった時刻を示す。そして、頻度値欄は、当該データに対するI/O要求の回数を示す。後述するように、当該データに対する読み込み要求があった場合には、現在の頻度値に1を加え、書き込み要求があった場合には現在の頻度値から−1を引く。また、一定時間I/Oアクセス要求がないデータについては、現在の頻度値から−1を引く。あるいは頻度値を0にリセットしてもよい。これは、長期間I/O要求がないデータは将来に亘ってもI/O要求がないという経験的な仮定に基づいている。これによって、読み込み要求の頻度が多いデータほど、高い頻度値を示すことになる。従って、頻度値を参照することにより、どのデータを不揮発性キャッシュメモリ4222にステージングすることが有効であるかが判断できることになる。
【0061】
図6は、本発明の実施形態に係るストレージ装置4における書き換え回数管理テーブル600の一例を示す図である。書き換え回数管理テーブル600は、例えば、共有メモリ4241に保持される。書き換え回数管理テーブル600は、不揮発性キャッシュメモリ4222における各ブロックに対する書き換え回数を管理している。
【0062】
同図(a)は、不揮発性キャッシュメモリ4222における各ブロックが、1つのアドレスで管理されている例を示している。また、同図(b)は、各ブロックが、複数のアドレスで管理されている例を示している。つまり、チャネルアダプタ421(及びディスクアダプタ423)によって扱われる各アドレスが、不揮発性キャッシュメモリ4222の1ブロックを参照している。さらに、同図(b)は、複数のブロックが、1つのアドレスで管理されている例を示している。つまり、チャネルアダプタ421(及びディスクアダプタ423)によって扱われる各アドレスが、不揮発性キャッシュメモリ4222の複数のブロックを参照している。
【0063】
図7は、本発明の実施形態に係るストレージ装置4における読み出し要求時の処理を説明するためのフローチャートである。
【0064】
同図を参照して、チャネルアダプタ421は、ホスト装置3から読み出し要求を受け取ると、共有メモリ4241に格納されたアドレス対応テーブル400を参照して、キャッシュメモリ上の当該読み出し要求に従うデータを検索する(STEP701)。その結果、チャネルアダプタ421は、当該要求されたデータが揮発性キャッシュメモリ4221に存在すると判断する場合には(STEP702のYes)、揮発性キャッシュメモリ4221上のデータを読み出して、ホスト装置3に送出する(STEP703)。そして、チャネルアダプタ421は、データ属性管理テーブル500上の当該データについての頻度値を1つ増加させる(STEP704)。
【0065】
また、当該要求されたデータが揮発性キャッシュメモリ4221に存在せず(STEP702のNo)、不揮発性キャッシュメモリ4222に存在すると判断する場合には(STEP705のYes)、チャネルアダプタ421は、同様に、揮発性キャッシュメモリ4221上のデータを読み出して、ホスト装置3に送出する(STEP706)。そして、チャネルアダプタ421は、データ属性管理テーブル500上の当該データについての頻度値を1つ増加させる(STEP704)。
【0066】
このように、読み出し要求に従うデータが揮発性キャッシュメモリ4221又は不揮発性キャッシュメモリ4222のいずれかに存在する場合には、チャネルアダプタ421は、そこから当該要求されたデータを読み出すことによって、当該読み出し要求に対して応答することができる。
【0067】
当該要求されたデータが揮発性キャッシュメモリ4221に存在せず(STEP702のNo)、不揮発性キャッシュメモリ4222にも存在しないと判断する場合には(STEP705のNo)、チャネルアダプタ421は、当該読み出し要求に従うデータをディスクドライブ41の記憶領域からステージングするように、共有メモリ4241を介して、ディスクアダプタ423に指示を出す。ディスクアダプタ423は、当該指示に基づいて、当該要求されたデータを揮発性キャッシュメモリ4221にステージングする(STEP707)。この場合、揮発性キャッシュメモリ4221上に当該データをステージングする空き領域がない場合には、例えばLRUアルゴリズムに従って所定のデータについてデステージングにより空き領域が確保される。また、当該要求されたデータについての頻度値が高いと判断される場合には、ディスクアダプタ423は、不揮発性キャッシュメモリ4222にステージングするようにしてもよい。
【0068】
チャネルアダプタ421は、揮発性キャッシュメモリ4221に当該要求されたデータがステージングされたことを確認すると、当該要求されたデータをホスト装置3に送出する(STEP708)。そして、チャネルアダプタ421は、データ属性管理テーブル500上の当該データについての頻度値を1つ増加させる(STEP704)。
【0069】
以上のように、ホスト装置3から読み出し要求があった場合には、チャネルアダプタ421は、揮発性キャッシュメモリ4221又は不揮発性キャッシュメモリ4222のいずれかから当該読み出し要求に従うデータを読み出して、これをホスト装置3に送出することができるようになる。
【0070】
図8乃至図10は、本発明の実施形態に係るストレージ装置4における書き込み要求時の処理を説明するためのフローチャートである。
【0071】
まず、図8を参照して、チャネルアダプタ421は、ホスト装置3から書き込み要求を受け取ると、共有メモリ4241に格納されたアドレス対応テーブル400を参照して、キャッシュメモリ上に当該書き込み要求に従うデータを検索する(STEP801)。その結果、チャネルアダプタ421は、当該データが揮発性キャッシュメモリ4221に存在すると判断する場合には(STEP802のYes)、揮発性キャッシュメモリ4221上にすでにキャッシュされているデータを、当該書き込み要求に従うデータで書き換える(STEP803)。そして、チャネルアダプタ421は、データ属性管理テーブル500上の当該データについての頻度値を1つ減じる(STEP804)。
【0072】
また、当該要求されたデータが揮発性キャッシュメモリ4221に存在せず(STEP802のNo)、不揮発性キャッシュメモリ4222に存在すると判断する場合には(STEP805のYes)、チャネルアダプタ421は、不揮発性キャッシュメモリ4221上のデータを無効化する(STEP806)。これは、不揮発性キャッシュメモリ4222上のデータは読み出し専用であり、当該書き込み要求によってデータの整合性を保てなくなるためである。続いて、チャネルアダプタ421は、揮発性キャッシュメモリ4221上にキャッシュ領域を確保して、当該書き込み要求に従うデータを当該キャッシュ領域に書き込む(STEP807)。この場合、揮発性キャッシュメモリ4221上に当該データを書き込むための空き領域がない場合には、例えばLRUアルゴリズムに従って所定のデータについてデステージングにより空き領域が確保される。
【0073】
次に、チャネルアダプタ421は、データ属性管理テーブル500上の当該データについての頻度値を1つ減じる(図9のSTEP901)。さらに、チャネルアダプタ421は、書き換え回数管理テーブル600を参照して、当該書き込み要求が指定したアドレスに対応する不揮発性キャッシュメモリ4222の領域に対応する書き換え回数を取得する(STEP902)。これは、不揮発性キャッシュメモリ4222の構造上の問題から、当該書き込み回数が上限値に達した領域を使用しないようにするためである。
【0074】
チャネルアダプタ421は、当該取得した書き換え回数が書き換え上限値を超えたか否かを判断し(STEP903)、超えていれば、そのまま終了する(STEP903のYes)。これに対して、当該取得した書き換え回数が書き換え上限値を超えていない場合(STEP903のNo)、チャネルアダプタ421は、キャッシュメモリ上にステージングされていないディスクドライブ41上のデータであって、頻度値が最も高いデータを特定する(STEP904)。そして、チャネルアダプタ421は、当該特定したデータを不揮発性キャッシュメモリ4222の領域にステージングする(STEP905)。
【0075】
一方、当該要求されたデータが揮発性キャッシュメモリ4221に存在せず(STEP802のNo)、不揮発性キャッシュメモリ4222にも存在しないと判断する場合には(STEP805のNo)、チャネルアダプタ421は、揮発性キャッシュメモリ4221上にキャッシュ領域を確保して、当該書き込み要求に従うデータを当該キャッシュ領域に書き込む(STEP808)。
【0076】
次に、チャネルアダプタ421は、不揮発性キャッシュメモリ用キャッシュ管理情報を参照して、不揮発性キャッシュメモリ4222上に空き領域があるか否かを判断し(図10のSTEP1001)、空き領域があると判断する場合には(STEP1001のYes)、続いて、書き換え回数管理テーブル600を参照して、当該領域に対する書き換え回数が上限値以下であるか否かを判断する(STEP1002)。これは、不揮発性キャッシュメモリ4222の構造上の問題から、当該書き込み回数が上限値に達した領域を使用しないようにするためである。チャネルアダプタ421は、当該領域に対する書き換え回数が上限値以下であると判断する場合(STEP1002のYes)、キャッシュメモリにステージングされていないディスクドライブ41上の記憶領域にあるデータであって、頻度値が最も高いデータを特定する(STEP1003)。
【0077】
チャネルアダプタ421は、次に、当該特定したデータの頻度値が下限値以上であるか否かを判断する(STEP1004)。これは、例えばシステム起動の直後のように、各データに対するI/O要求の頻度にばらつきがなく、I/O要求の傾向が現れないため、ある一定の頻度値以上になるまではデータに対するI/O要求の頻度値を考慮に入れないようにするためである。チャネルアダプタ421は、当該特定したデータの頻度値が下限値以上であると判断する場合(STEP1005のYes)、ディスクドライブ41上の記憶領域から不揮発性キャッシュメモリ4222の当該空き領域に当該特定したデータをステージングする(STEP1006)。
【0078】
次に、本発明の実施形態に係るストレージ装置4における緊急時のバックアップ処理及びバックアップ後のリストア処理について説明する。
【0079】
図11は、本発明の実施形態に係るストレージ装置4におけるバックアップ/リストア処理を説明するための図である。同図は、図2に示したストレージ装置4の構成のうち、バックアップ/リストア処理に関わる部分に着目している。また、図の簡略化のため、冗長化構成は省略されている。
【0080】
図11を参照して、ストレージ装置4内で電源遮断が検出されると、例えば、供給電源は二次電源に切り替えられ、割り込み信号がキャッシュメモリアダプタ4223及び共有メモリアダプタ4242に与えられる。割り込み信号を検出したキャッシュメモリアダプタ4223及び共有メモリアダプタ4242は、予め定められた制御シーケンスに従ってバックアップ処理を行う。
【0081】
すなわち、キャッシュメモリアダプタ4223は、揮発性キャッシュメモリ4221上にキャッシュされたダーティデータを不揮発性キャッシュメモリ4222にバックアップする一方、共有メモリアダプタ4242は、共有メモリ4241上の各種の情報を不揮発性キャッシュメモリ4222にバックアップする。この場合、キャッシュメモリアダプタ4223は、共有メモリ4241を参照して、揮発性キャッシュメモリ4221上のどのデータがダーティであるかを認識してもよい。あるいは、バックアップされるべきデータのキャッシュメモリ管理情報がパラメータとしてキャッシュメモリアダプタ4223にセットされ、バックアップが実行されるようにしてもよい。
【0082】
また、電源遮断の復旧後、ストレージ装置4が再起動されて、リストア要求が与えられた場合、キャッシュメモリアダプタ4223及び共有メモリアダプタ4242は、予め定められた制御シーケンスに従ってリストア処理を行う。
【0083】
すなわち、共有メモリアダプタ4242は、不揮発性キャッシュメモリ4221上にバックアップされた各種の情報を共有メモリ4241にリストアする。その後、キャッシュメモリアダプタ4223は、リストアされた共有メモリ4241の内容に従って、バックアップされたデータを揮発性キャッシュメモリ4221にリストアする。
【0084】
図12は、本発明の実施形態の変形例に係るストレージ装置4におけるバックアップ処理時の各メモリの内容の対応関係を説明するための図である。本例は、揮発性キャッシュメモリ4221が実データを保持し、共有メモリ4241がシステム構成情報及びキャッシュメモリ用管理情報を保持する形態である。
【0085】
上述したように、緊急時には、揮発性キャッシュメモリ4221上の実データのうち、ダーティデータ(すなわち実データA及びC)のみ不揮発性キャッシュメモリ4222にバックアップされ、クリーンデータ(すなわち実データB)はバックアップされない。従って、共有メモリ4241上の各種の情報のうち、揮発性キャッシュメモリ4221上のバックアップされないクリーンデータについての揮発性キャッシュメモリ用管理情報はバックアップされない。
【0086】
ただし、共有メモリ4241上の不揮発性キャッシュメモリ用管理情報については、リストア処理の高速化の観点から、不揮発性キャッシュメモリ4222にバックアップされることが好ましい。つまり、不揮発性キャッシュメモリ4222上のデータはクリーンデータであるため、上書きされることによって消失したとしても、ディスクドライブ41上のデータを用いて再現可能であるが、不揮発性キャッシュメモリ4222に使用可能なデータが残っていれば、リストア要求に基づくリストア処理時において、ディスクドライブ41から読み出すデータを最小限にすることができるからである。この意味で、バックアップ処理時に利用される不揮発性キャッシュメモリ4222のメモリサイズ(S)は、少なくとも、揮発性キャッシュメモリ4221のメモリサイズ(S1)と、共有メモリ4241のメモリサイズ(S2)から不揮発性キャッシュメモリ用管理情報のサイズ(S21)を引いたメモリサイズ(S2−S21)との和以上である(S≧S1+S2−S21)ことが好ましい。
【0087】
より好ましくは、共有メモリ4241上の不揮発性キャッシュメモリ用管理情報のうち、揮発性キャッシュメモリ4221からのバックアップデータによって上書きされない、不揮発性キャッシュメモリ4222上の実データについての不揮発性キャッシュメモリ用管理情報が、不揮発性キャッシュメモリ4222にバックアップされる。これによって、バックアップ処理後の不揮発性キャッシュメモリ4222には、実データのうちの一部が上書きされずに残るので、当該上書きされなかった実データの不揮発性キャッシュメモリ用管理情報を共有メモリ4241にリストアすることで、当該上書きされなかった実データを直ちにキャッシュデータとして利用することが可能になる。
【0088】
なお、本実施形態のように不揮発性キャッシュメモリ4222が多重化されている場合には、データを多重化して不揮発性キャッシュメモリ4222にバックアップするようにしてもよいし、あるいはデータを適宜に配分してバックアップするようにしてもよい。また、1つの不揮発性キャッシュメモリ4222がバックアップデータで満杯になったら、次の不揮発性キャッシュメモリ4222にバックアップするようにしてもよい。
【0089】
図13は、本発明の実施形態に係るストレージ装置4におけるバックアップ処理を説明するためのフローチャートである。
【0090】
上述したように、ストレージ装置4内で電源遮断が検出されると、例えば、供給電源は二次電源に切り替えられ、割り込み信号がキャッシュメモリアダプタ4223及び共有メモリアダプタ4242に与えられる。割り込み信号を検出したキャッシュメモリアダプタ4223及び共有メモリアダプタ4242は、予め定められた制御シーケンスに従って以下に示すバックアップ処理を行う。
【0091】
すなわち、同図に示すように、キャッシュメモリアダプタ4223は、共有メモリ4241上の揮発性キャッシュメモリ用キャッシュ管理情報を参照し、揮発性キャッシュメモリ4221上のダーティな状態の実データ(ダーティデータ)を特定する(STEP1301)。次に、キャッシュメモリアダプタ4223は、揮発性キャッシュメモリ4221上の当該特定されたダーティデータを不揮発性キャッシュメモリ4222に転送する(STEP1302)。この場合、キャッシュメモリアダプタ4223は、転送されるダーティデータを不揮発性キャッシュメモリ4222の例えば先頭領域から書き込んでいく。
【0092】
次に、共有メモリアダプタ4242は、共有メモリ4241上のシステム構成情報を不揮発性キャッシュメモリ4222上に転送する(STEP1303)。ここで、共有メモリアダプタ4242は、転送されるシステム構成情報を、転送されたダーティデータが書き込まれた最終領域の次の領域から書き込んでいく。続いて、共有メモリアダプタ4242は、特定されたダーティデータについての共有メモリ4241上の揮発性キャッシュメモリ用管理情報を不揮発性キャッシュメモリ4222に転送する(STEP1304)。
【0093】
また、共有メモリアダプタ4242は、上記の処理の結果、不揮発性キャッシュメモリ4222上の上書きされない領域を特定し、当該特定した領域を管理する不揮発性キャッシュメモリ用管理情報を特定する(STEP1305)。そして、共有メモリアダプタ4242は、共有メモリ4241上の当該特定した不揮発性キャッシュメモリ用管理情報を不揮発性キャッシュメモリ4222に転送する(STEP1306)。この場合、ダーティデータ等によって上書きされなかった領域の一部が、共有メモリ4241から転送された不揮発性キャッシュメモリ用管理情報によって後から上書きされることがあることを考慮して、上書きされない領域及びその不揮発性キャッシュメモリ用管理情報が特定されることが好ましい。あるいは、不揮発性キャッシュメモリ用管理情報を書き込むための十分な領域を予め加味して、上書きされない領域が特定されることが好ましい。
【0094】
さらに、一連のバックアップ処理の内容を記述したバックアップ構成情報が不揮発性キャッシュメモリ4222上に作成されることが好ましい。あるいは、システム構成情報の一部として構成されていてもよい。バックアップ構成情報は、バックアップされたデータ乃至は情報が保持されていた元のメモリのアドレス情報を含む。つまり、バックアップされた実データであれば、当該実データがキャッシュされていた揮発性キャッシュメモリ4222上のアドレス情報である。また、バックアップされたシステム構成情報やキャッシュ管理情報であれば、当該情報が書き込まれていた共有メモリ4241上のアドレス情報である。バックアップ構成情報は不揮発性キャッシュメモリ4222の予め定められた領域(例えば最後の領域)に書き込まれる。
【0095】
これにより、リストア処理時においては、キャッシュメモリアダプタ4223は、まず、バックアップ構成情報を参照することで、不揮発性キャッシュメモリ4222上にバックアップされたデータ乃至は情報を元の位置(すなわち、揮発性キャッシュメモリ4221又は共有メモリ4241)に確実にリストアすることができるようになる。
【0096】
図14は、本発明の実施形態の変形例に係るストレージ装置4におけるバックアップ処理時の各メモリの内容の対応関係を説明するための図である。つまり、本実施形態では、ストレージ装置4は、不揮発性キャッシュメモリ用管理情報を共有メモリ4241に保持するのではなく、不揮発性キャッシュメモリ4222自身に保持するように、構成されている。
【0097】
不揮発性キャッシュメモリ4222自身が不揮発性キャッシュメモリ用管理情報を保持する場合、バックアップ処理によって実データの領域が上書きされているにもかかわらず、上書きされた領域についての不揮発性キャッシュメモリ用管理情報がそのまま残ってしまうおそれがある。
【0098】
従って、キャッシュメモリアダプタ4223は、揮発性キャッシュメモリ4221及び共有メモリ4241からデータ乃至は情報を不揮発性キャッシュメモリ4222にバックアップした後、このような使用不能の不揮発性キャッシュメモリ用管理情報の領域を特定し、当該特定した領域を無効化する。
【0099】
図15は、本発明の別の実施形態におけるストレージ装置4の構成を示す図である。同図において、上記実施形態と同じ構成要素には同じ符号が付されている。
【0100】
同図に示すように、本実施形態のストレージ装置4は、ホスト装置3に接続するためのインターフェースボートを含むフロントエンド426と、ディスクドライブ41に接続するためのインターフェースボードを含むバックエンド427と、これらを含むストレージ装置4内の各モジュールを制御するためのマイクロプロセッサ(MP)428とを備える。すなわち、上記実施形態のチャネルアダプタ421及びディスクアダプタ423はそれぞれ、本実施形態のフロントエンド426及びバックエンド427に対応するが、本実施形態は、独立に設けられたマイクロプロセッサ428がこれらを制御する点で上記実施形態と異なっている。また、本実施形態のストレージ装置4は、共有メモリボード424を備えていない。上記実施形態において共有メモリ4241に保持されていた各種の情報は、本実施形態では、揮発性キャッシュメモリ4221に保持される。
【0101】
このような構成のストレージ装置4において、電源遮断等の緊急時には、キャッシュメモリアダプタ4223は、揮発性キャッシュメモリ4221に保持されているダーティな実データ及び各種の情報(例えばシステム構成情報及びキャッシュ管理情報)を不揮発性キャッシュメモリ4222にバックアップする。すなわち、本実施形態では、共有メモリ4241が存在しないため、バックアップ処理は、揮発性キャッシュメモリ4221上のデータ及び各種の情報が不揮発性キャッシュメモリ4222に転送されるだけで達成される。
【0102】
図16は、本発明の上記別の実施形態に係るストレージ装置におけるデータのバックアップ/リストアメカニズムを説明するための概念図である。
【0103】
ストレージ装置4の稼働中に、例えば電源遮断等が発生した場合、ストレージ装置4は、揮発性キャッシュメモリ4221に書き込まれているデータ及び管理情報を不揮発性キャッシュメモリ4222にバックアップする。バックアップは、例えばキャッシュメモリ機構を管理するキャッシュメモリアダプタ(図示せず)によって実行される。バックアップされるデータは、揮発性キャッシュメモリ4221に書き込まれているダーティデータ及び各種の情報である。従って、バックアップ処理時の各メモリの内容の対応関係は、例えば、図17に示すようになる。
【0104】
電源遮断等が復旧した場合、ストレージ装置4は、不揮発性キャッシュメモリ4222にバックアップされたデータ及び各種の情報を揮発性キャッシュメモリ4221にリストアする。これによって、ストレージ装置4は、電源遮断等が発生した時点の状態に復元され、ホスト装置3にI/Oサービスを提供することができるようになる。
【0105】
また、図18は、本発明の当該別の実施形態の変形例に係るストレージ装置4におけるバックアップ処理時の各メモリの内容の対応関係を説明するための図である。本例は、揮発性キャッシュメモリ4221が実データ及び各種の情報を保持するが、不揮発性キャッシュメモリ管理情報については、不揮発性キャッシュメモリ4222が保持する形態である。この場合も同様に、キャッシュメモリアダプタ4223は、揮発性キャッシュメモリ4221から必要な実データ乃至は情報を不揮発性キャッシュメモリ4222にバックアップした後、上書きによって使用不能となった不揮発性キャッシュメモリ4222上の実データについての不揮発性キャッシュメモリ管理情報の領域を特定し、当該特定した領域を無効化する。
【0106】
次に、本発明に係るさらに別の実施形態について説明する。
【0107】
本実施形態は、1つ又は複数のディスクドライブ41によってそれぞれ構成された複数のRAIDグループ(仮想デバイス)の中の特定の仮想デバイスに、上述した属性に応じてデータを集約し、当該特定の仮想デバイス上の全データを不揮発性キャッシュメモリ4222にステージングして、さらに、当該特定の仮想デバイスに対する電力供給を自発的に停止することを特徴とする。電力供給の停止は、電力供給がゼロの状態のみならず、例えば、スリープ状態のように、必要最小限の電力が供給されている状態を含む、広い意味で用いられる。
【0108】
これにより、ディスクドライブ41に対する電源供給量を減らすことができ、ストレージ装置4全体の消費電力を低減ることができるようになる。
【0109】
なお、以下では、RAID構成による仮想デバイスを前提に説明するが、1つの仮想デバイスを1つのディスクドライブ41として考えても同様に説明することができる。
【0110】
図19は、本発明の当該別の実施形態に係るストレージ装置4における消費電力低減メカニズムを説明するための概念図である。同図は、上述したストレージ装置4の構成のうち、消費電力低減処理に関わる部分に着目している。また、図の簡略化のため、冗長化構成は省略されている。なお、同図は、ディスクアダプタ423によりディスクドライブ41を制御する構成を採用しているが、バックエンド427によりディスクドライブ41を制御する構成であってもよい。
【0111】
まず、ディスクアダプタ423は、仮想デバイスA〜Cに格納されたデータのうち、頻度値の高いデータを仮想デバイスAに最適再配置する(同図(1))。つまり、仮想デバイスB及びCに格納されたデータのうち、頻度値が高いデータを仮想デバイスAに移行し、仮想デバイスAに格納されたデータのうち、頻度値が低いデータを仮想デバイスB又はCに移行する。頻度値が高いか低いかは、例えば、所定のしきい値を設定しておき、当該しきい値を上回ったか、又は下回ったかによって判断する。
【0112】
次に、仮想デバイスAに格納されたデータが、頻度値が高いもので満たされた場合、ディスクアダプタ423は、当該仮想デバイスA上の再配置された全データを不揮発性キャッシュメモリ4222にステージングする(同図(2))。
【0113】
そして、ディスクアダプタ423は、仮想デバイスAに対する電力供給を停止するように、ディスクドライブ41に指示し、これを受けて、ディスクドライブ41内の電源制御部は、仮想デバイスAに対する電力供給を停止する(同図(3))。
【0114】
なお、停止された仮想デバイスAは、読み出し要求の頻度が高いデータが集約されているため、当該データに対する書き込み要求が与えられる可能性は低い。しかしながら、ストレージ装置4の稼働中、停止された仮想デバイスAに格納されたデータに対するホスト装置3からのアクセス要求が与えられた場合には、仮想デバイスAを再起動(スピンアップ)すればよい。
【0115】
図20は、本発明の当該別の実施形態に係るストレージ装置4における消費電力低減処理を説明するためのフローチャートである。消費電力低減処理は、システム管理者による指示を受けて、又は所定のタイミングで、ディスクアダプタ423によって実行される。
【0116】
すなわち、ディスクアダプタ423は、不揮発性キャッシュメモリ4222の現在の有効メモリ容量を取得する(STEP2001)。有効メモリ容量とは、不揮発性キャッシュメモリ4222上の実際に使用可能な領域の総容量である。つまり、書き込み回数が上限値に達した領域やエラーの発生した領域は使用対象から除外されるため、不揮発性キャッシュメモリ4222の初期容量からそのような領域の容量を差し引いた容量が有効メモリ容量となる。有効メモリ容量は、例えば、システム構成情報の一部として共有メモリ4241に保持される。
【0117】
次に、ディスクアダプタ423は、ある1つの仮想デバイスの容量が不揮発性キャッシュメモリ4222の有効メモリ容量以下であるか否かを判断する(STEP2002)。
ある仮想デバイスの容量が不揮発性キャッシュメモリ4222の有効メモリ容量以下でないと判断する場合(STEP2002のNo)、ディスクアダプタ423は、当該消費電力低減処理によってスピンダウンできる仮想デバイスがないため、処理を終了する。
【0118】
これに対して、ある仮想デバイスの容量が不揮発性キャッシュメモリ4222の有効メモリ容量以下であると判断する場合(STEP2002のYes)、ディスクアダプタ423は、各仮想デバイスに格納されたデータのうち、頻度値が所定のしきい値を上回っているデータを抽出し、これを当該仮想デバイスに再配置する(STEP2003)。すなわち、他の仮想デバイスに格納されたデータのうち、頻度値が高いデータは当該仮想デバイスに移行し、当該仮想デバイスに格納されたデータのうち、頻度値が低いデータを他の仮想デバイスに移行する。これによって、当該仮想デバイスには、頻度値の高いデータが集約されることになる。
【0119】
データの再配置後、ディスクアダプタ423は、当該仮想デバイスに再配置された全データを不揮発性キャッシュメモリ4222にステージングする(STEP2004)。そして、ディスクアダプタ423は、当該仮想デバイスを構成するディスクドライブ41をスピンダウンさせるために、ディスクドライブ41に電力供給の停止を指示する(STEP2005)。これを受けて、ディスクドライブ41は、指示されたディスクドライブ41の電力供給を停止する。
【0120】
なお、上述した例では、1つの仮想デバイスについてスピンダウンさせることとしたが、不揮発性キャッシュメモリ4222のメモリ容量がある限り、複数の仮想デバイスについて上記の処理を行うことができる。
【産業上の利用可能性】
【0121】
本発明は、キャッシュメモリを採用するストレージ装置に広く適用することができる。
【図面の簡単な説明】
【0122】
【図1】本発明の実施形態に係るストレージ装置におけるデータのバックアップ/リストアメカニズムを説明するための概念図である。
【図2】本発明の実施形態に係るストレージ装置を含むコンピュータシステムの構成を説明するための図である。
【図3】本発明の実施形態に係るストレージ装置における共有メモリの内容を説明するための図である。
【図4】本発明の実施形態に係るストレージ装置におけるアドレス対応テーブルの一例を示す図である。
【図5】本発明の実施形態に係るストレージ装置におけるデータ属性管理テーブルの一例を示す図である。
【図6】本発明の実施形態に係るストレージ装置における書き換え回数管理テーブルの一例を示す図である。
【図7】本発明の実施形態に係るストレージ装置における読み出し要求時の処理を説明するためのフローチャートである。
【図8】本発明の実施形態に係るストレージ装置における書き込み要求時の処理を説明するためのフローチャートである。
【図9】本発明の実施形態に係るストレージ装置における書き込み要求時の処理を説明するためのフローチャートである。
【図10】本発明の実施形態に係るストレージ装置における書き込み要求時の処理を説明するためのフローチャートである。
【図11】本発明の実施形態に係るストレージ装置におけるバックアップ/リストア処理を説明するための図である。
【図12】本発明の実施形態の変形例に係るストレージ装置におけるバックアップ処理時の各メモリの内容の対応関係を説明するための図である。
【図13】本発明の実施形態に係るストレージ装置におけるバックアップ処理を説明するためのフローチャートである。
【図14】本発明の実施形態の変形例に係るストレージ装置におけるバックアップ処理時の各メモリの内容の対応関係を説明するための図である。
【図15】本発明の実施形態におけるストレージ装置の構成を示す図である。
【図16】本発明の実施形態に係るストレージ装置におけるデータのバックアップ/リストアメカニズムを説明するための概念図である。
【図17】本発明の実施形態に係るストレージ装置におけるバックアップ処理時の各メモリの内容の対応関係を説明するための図である。
【図18】本発明の実施形態の変形例に係るストレージ装置におけるバックアップ処理時の各メモリの内容の対応関係を説明するための図である。
【図19】本発明の実施形態に係るストレージ装置における消費電力低減メカニズムを説明するための概念図である。
【図20】本発明の実施形態に係るストレージ装置における消費電力低減処理を説明するためのフローチャートである。
【符号の説明】
【0123】
1…コンピュータシステム
2…ネットワーク
3…ホスト装置
4…ストレージ装置
41…ディスクドライブ
42…ディスク制御装置
43…ディスクチャネル
421…チャネルアダプタ
422…キャッシュ機構
4221…揮発性キャッシュメモリ
4222…不揮発性キャッシュメモリ
4223…キャッシュメモリアダプタ
423…ディスクアダプタ
424…共有メモリボード
4241…共有メモリ
4242…共有メモリアダプタ
425…内部スイッチ
【特許請求の範囲】
【請求項1】
データセット群を格納するための記憶媒体を含むディスクドライブと、前記ディスクドライブを制御するディスク制御装置とを備えたストレージ装置であって、
前記ディスク制御装置は、
ホスト装置からのI/O要求を受け付けるホストインターフェースと、
前記ディスクドライブに接続されたディスクインターフェースと、
前記ホストインターフェース及び前記ディスクインターフェースに接続され、揮発性メモリからなる第1のキャッシュメモリと不揮発性メモリからなる第2のキャッシュメモリとを含むキャッシュ機構と、を備え、
前記ディスク制御装置は、
前記ディスクドライブに格納されたデータセット群のそれぞれに関連付けられた属性値を管理するように構成され、
前記ディスクインターフェースは、
前記属性値のそれぞれに基づいて、前記ディスクドライブに格納されたデータセット群の中から特定される第1のデータセットを前記第2のキャッシュメモリに書き込み、
前記ディスク制御装置は、
所定のバックアップ要求時に、前記第1のキャッシュメモリに書き込まれたデータセット群の中から特定される第2のデータセットを前記第2のキャッシュメモリに転送することを特徴とするストレージ装置。
【請求項2】
前記ディスク制御装置は、
前記第1のキャッシュメモリに書き込まれたデータセット群のうち、前記第1のキャッシュメモリ上のデータセットの内容と、当該データセットに対応する前記ディスクドライブに格納されたデータセットの内容との間に整合性がないデータセットを前記第2のデータセットとして特定することを特徴とする請求項1記載のストレージ装置。
【請求項3】
前記ディスク制御装置は、
揮発性メモリからなる共有メモリをさらに備え、
前記共有メモリは、前記第1のキャッシュメモリを管理するための第1のキャッシュメモリ管理情報を保持するように構成され、
前記ディスク制御装置は、
前記所定のバックアップ要求時に、前記共有メモリに保持された前記第1のキャッシュメモリ管理情報を前記第2のキャッシュメモリに転送することを特徴とする請求項1記載のストレージ装置。
【請求項4】
前記共有メモリは、前記第2のキャッシュメモリを管理するための第2のキャッシュメモリ管理情報を保持するように構成され、
前記ディスク制御装置は、
前記所定のバックアップ要求時に、前記共有メモリに保持された前記第2のキャッシュメモリ管理情報を前記第2のキャッシュメモリに転送することを特徴とする請求項3記載のストレージ装置。
【請求項5】
前記ホストインターフェースは、
前記アクセス要求が書き込み要求である場合には、当該書き込み要求に従うデータセットを、前記第2のキャッシュメモリに書き込まずに、前記第1のキャッシュメモリに書き込むことを特徴とする請求項1記載のストレージ装置。
【請求項6】
前記ディスクインターフェースは、
前記アクセス要求が読み込み要求であって、前記第1のキャッシュメモリ及び前記第2のキャッシュメモリのいずれにも、当該読み込み要求に従うデータセットが存在しない場合には、前記読み込みに従うデータセットを前記ディスクドライブから読み出して、前記第1のキャッシュメモリ及び前記第2のキャッシュメモリのいずれかに書き込むことを特徴とする請求項5記載のストレージ装置。
【請求項7】
前記ホストインターフェースは、
前記アクセス要求が書き込み要求であって、当該書き込み要求に従うデータセットに対応するデータセットが前記第2のキャッシュメモリに存在する場合には、前記第2のキャッシュメモリに存在する当該データセットを無効化することを特徴とする請求項5記載のストレージ装置。
【請求項8】
前記属性値は、前記データセットに対する前記アクセス要求の頻度に基づく値であることを特徴とする請求項1記載のストレージ装置。
【請求項9】
前記ディスク制御装置は、前記アクセス要求が読み込み要求である場合に、前記属性値を増加させることを特徴とする請求項8記載のストレージ装置。
【請求項10】
前記ディスク制御装置は、前記アクセス要求が書き込み要求である場合に、前記属性値を減少させることを特徴とする請求項9記載のストレージ装置。
【請求項11】
前記ディスク制御装置は、前記アクセス要求が所定の期間与えられなかったデータセットに対する属性値を減少させることを特徴とする請求項9記載のストレージ装置。
【請求項12】
前記ディスクインターフェースは、
前記第2のキャッシュメモリ上に存在しないデータセットであって、最も高い属性値を持つ、前記ディスクドライブに格納されたデータセットを前記第1のデータセットとして特定し、前記第2のキャッシュメモリに書き込むことを特徴とする請求項11記載のストレージ装置。
【請求項13】
前記第1のキャッシュメモリは、前記第1のキャッシュメモリを管理するための第1のキャッシュメモリ管理情報を保持するように構成され、
前記ディスク制御装置は、
前記所定のバックアップ要求時に、前記第1のキャッシュメモリに保持された前記第1のキャッシュメモリ管理情報を前記第2のキャッシュメモリに転送することを特徴とする請求項1記載のストレージ装置。
【請求項14】
前記ディスク制御装置は、
前記所定のバックアップ要求時に前記第2のキャッシュメモリに転送された前記第2のデータセットを前記第1のキャッシュメモリにリストアすることを特徴とする請求項1記載のストレージ装置。
【請求項15】
データセットを格納するための記憶媒体を含むディスクドライブと、前記ディスクドライブを制御するディスク制御装置とを備えたストレージ装置におけるデータ管理方法であって、
揮発性メモリからなる第1のキャッシュメモリ及び不揮発性メモリからなる第2のキャッシュメモリを提供するステップと、
前記ディスクドライブに格納されたデータセット群のそれぞれに属性値を与えるステップと、
前記第1のキャッシュメモリに第1のデータセットを書き込むステップと、
前記格納されたデータセット群のそれぞれに与えられた属性値に基づいて、前記ディスクドライブに格納されたデータセット群の中から第2のデータセットを特定するステップと、
前記特定したデータセットを前記第2のキャッシュメモリに書き込むステップと、
ホスト装置から書き込み要求を受け付けた場合に、前記書き込み要求に従うデータセットに対応するデータセットが前記第2のデータセットとして前記第2のキャッシュメモリにすでに書き込まれているか否かを判断するステップと、
前記判断するステップにおいて、前記書き込み要求に従うデータセットに対応するデータセットが前記第2のデータセットとして前記第2のキャッシュメモリにすでに書き込まれていると判断される場合に、前記第2のキャッシュメモリ上の前記第2のデータセットが書き込まれいた領域を無効化するステップと、
前記第2のキャッシュメモリにおける前記無効化された領域に、前記属性値に基づいて特定される新たなデータセットを書き込むステップと、
バックアップ要求時に、前記第1のキャッシュメモリに書き込まれた前記第1のデータセットを前記第2のキャッシュメモリに転送することを特徴とするストレージ装置のデータ管理方法。
【請求項16】
データセットを格納する記憶媒体を含む複数のディスクドライブと、前記複数のディスクドライブを制御するディスク制御装置とを備えたストレージ装置におけるデータ管理方法であって、
前記複数のディスクドライブのそれぞれに、異なるデータセットを格納するステップと、
前記データセットのそれぞれに所定の属性値を与えるステップと、
前記与えられた所定の属性値に基づいて、前記データセットのそれぞれを前記複数のディスクドライブのいずれかに再配置するステップと、
前記複数のディスクドライブのうち少なくとも1つのディスクドライブを特定するステップと、
前記特定された少なくとも1つのディスクドライブに再配置された全データセットを不揮発性メモリからなるキャッシュメモリに書き込むステップと、
前記特定された少なくとも1つのディスクドライブに対する電源供給を停止するステップと、を含むことを特徴とするストレージ装置におけるデータの管理方法。
【請求項1】
データセット群を格納するための記憶媒体を含むディスクドライブと、前記ディスクドライブを制御するディスク制御装置とを備えたストレージ装置であって、
前記ディスク制御装置は、
ホスト装置からのI/O要求を受け付けるホストインターフェースと、
前記ディスクドライブに接続されたディスクインターフェースと、
前記ホストインターフェース及び前記ディスクインターフェースに接続され、揮発性メモリからなる第1のキャッシュメモリと不揮発性メモリからなる第2のキャッシュメモリとを含むキャッシュ機構と、を備え、
前記ディスク制御装置は、
前記ディスクドライブに格納されたデータセット群のそれぞれに関連付けられた属性値を管理するように構成され、
前記ディスクインターフェースは、
前記属性値のそれぞれに基づいて、前記ディスクドライブに格納されたデータセット群の中から特定される第1のデータセットを前記第2のキャッシュメモリに書き込み、
前記ディスク制御装置は、
所定のバックアップ要求時に、前記第1のキャッシュメモリに書き込まれたデータセット群の中から特定される第2のデータセットを前記第2のキャッシュメモリに転送することを特徴とするストレージ装置。
【請求項2】
前記ディスク制御装置は、
前記第1のキャッシュメモリに書き込まれたデータセット群のうち、前記第1のキャッシュメモリ上のデータセットの内容と、当該データセットに対応する前記ディスクドライブに格納されたデータセットの内容との間に整合性がないデータセットを前記第2のデータセットとして特定することを特徴とする請求項1記載のストレージ装置。
【請求項3】
前記ディスク制御装置は、
揮発性メモリからなる共有メモリをさらに備え、
前記共有メモリは、前記第1のキャッシュメモリを管理するための第1のキャッシュメモリ管理情報を保持するように構成され、
前記ディスク制御装置は、
前記所定のバックアップ要求時に、前記共有メモリに保持された前記第1のキャッシュメモリ管理情報を前記第2のキャッシュメモリに転送することを特徴とする請求項1記載のストレージ装置。
【請求項4】
前記共有メモリは、前記第2のキャッシュメモリを管理するための第2のキャッシュメモリ管理情報を保持するように構成され、
前記ディスク制御装置は、
前記所定のバックアップ要求時に、前記共有メモリに保持された前記第2のキャッシュメモリ管理情報を前記第2のキャッシュメモリに転送することを特徴とする請求項3記載のストレージ装置。
【請求項5】
前記ホストインターフェースは、
前記アクセス要求が書き込み要求である場合には、当該書き込み要求に従うデータセットを、前記第2のキャッシュメモリに書き込まずに、前記第1のキャッシュメモリに書き込むことを特徴とする請求項1記載のストレージ装置。
【請求項6】
前記ディスクインターフェースは、
前記アクセス要求が読み込み要求であって、前記第1のキャッシュメモリ及び前記第2のキャッシュメモリのいずれにも、当該読み込み要求に従うデータセットが存在しない場合には、前記読み込みに従うデータセットを前記ディスクドライブから読み出して、前記第1のキャッシュメモリ及び前記第2のキャッシュメモリのいずれかに書き込むことを特徴とする請求項5記載のストレージ装置。
【請求項7】
前記ホストインターフェースは、
前記アクセス要求が書き込み要求であって、当該書き込み要求に従うデータセットに対応するデータセットが前記第2のキャッシュメモリに存在する場合には、前記第2のキャッシュメモリに存在する当該データセットを無効化することを特徴とする請求項5記載のストレージ装置。
【請求項8】
前記属性値は、前記データセットに対する前記アクセス要求の頻度に基づく値であることを特徴とする請求項1記載のストレージ装置。
【請求項9】
前記ディスク制御装置は、前記アクセス要求が読み込み要求である場合に、前記属性値を増加させることを特徴とする請求項8記載のストレージ装置。
【請求項10】
前記ディスク制御装置は、前記アクセス要求が書き込み要求である場合に、前記属性値を減少させることを特徴とする請求項9記載のストレージ装置。
【請求項11】
前記ディスク制御装置は、前記アクセス要求が所定の期間与えられなかったデータセットに対する属性値を減少させることを特徴とする請求項9記載のストレージ装置。
【請求項12】
前記ディスクインターフェースは、
前記第2のキャッシュメモリ上に存在しないデータセットであって、最も高い属性値を持つ、前記ディスクドライブに格納されたデータセットを前記第1のデータセットとして特定し、前記第2のキャッシュメモリに書き込むことを特徴とする請求項11記載のストレージ装置。
【請求項13】
前記第1のキャッシュメモリは、前記第1のキャッシュメモリを管理するための第1のキャッシュメモリ管理情報を保持するように構成され、
前記ディスク制御装置は、
前記所定のバックアップ要求時に、前記第1のキャッシュメモリに保持された前記第1のキャッシュメモリ管理情報を前記第2のキャッシュメモリに転送することを特徴とする請求項1記載のストレージ装置。
【請求項14】
前記ディスク制御装置は、
前記所定のバックアップ要求時に前記第2のキャッシュメモリに転送された前記第2のデータセットを前記第1のキャッシュメモリにリストアすることを特徴とする請求項1記載のストレージ装置。
【請求項15】
データセットを格納するための記憶媒体を含むディスクドライブと、前記ディスクドライブを制御するディスク制御装置とを備えたストレージ装置におけるデータ管理方法であって、
揮発性メモリからなる第1のキャッシュメモリ及び不揮発性メモリからなる第2のキャッシュメモリを提供するステップと、
前記ディスクドライブに格納されたデータセット群のそれぞれに属性値を与えるステップと、
前記第1のキャッシュメモリに第1のデータセットを書き込むステップと、
前記格納されたデータセット群のそれぞれに与えられた属性値に基づいて、前記ディスクドライブに格納されたデータセット群の中から第2のデータセットを特定するステップと、
前記特定したデータセットを前記第2のキャッシュメモリに書き込むステップと、
ホスト装置から書き込み要求を受け付けた場合に、前記書き込み要求に従うデータセットに対応するデータセットが前記第2のデータセットとして前記第2のキャッシュメモリにすでに書き込まれているか否かを判断するステップと、
前記判断するステップにおいて、前記書き込み要求に従うデータセットに対応するデータセットが前記第2のデータセットとして前記第2のキャッシュメモリにすでに書き込まれていると判断される場合に、前記第2のキャッシュメモリ上の前記第2のデータセットが書き込まれいた領域を無効化するステップと、
前記第2のキャッシュメモリにおける前記無効化された領域に、前記属性値に基づいて特定される新たなデータセットを書き込むステップと、
バックアップ要求時に、前記第1のキャッシュメモリに書き込まれた前記第1のデータセットを前記第2のキャッシュメモリに転送することを特徴とするストレージ装置のデータ管理方法。
【請求項16】
データセットを格納する記憶媒体を含む複数のディスクドライブと、前記複数のディスクドライブを制御するディスク制御装置とを備えたストレージ装置におけるデータ管理方法であって、
前記複数のディスクドライブのそれぞれに、異なるデータセットを格納するステップと、
前記データセットのそれぞれに所定の属性値を与えるステップと、
前記与えられた所定の属性値に基づいて、前記データセットのそれぞれを前記複数のディスクドライブのいずれかに再配置するステップと、
前記複数のディスクドライブのうち少なくとも1つのディスクドライブを特定するステップと、
前記特定された少なくとも1つのディスクドライブに再配置された全データセットを不揮発性メモリからなるキャッシュメモリに書き込むステップと、
前記特定された少なくとも1つのディスクドライブに対する電源供給を停止するステップと、を含むことを特徴とするストレージ装置におけるデータの管理方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【公開番号】特開2008−276646(P2008−276646A)
【公開日】平成20年11月13日(2008.11.13)
【国際特許分類】
【出願番号】特願2007−121656(P2007−121656)
【出願日】平成19年5月2日(2007.5.2)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
【公開日】平成20年11月13日(2008.11.13)
【国際特許分類】
【出願日】平成19年5月2日(2007.5.2)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
[ Back to top ]