説明

ストレージ装置、ストレージ装置の制御プログラム、及びストレージ装置の制御方法

【課題】プライマリストレージのようなアクセス頻度の低いデータを分類して格納することが困難なストレージ装置に対して性能を落とさずに省電力化を図る。
【解決手段】通常動作状態で運用される動作状態記憶媒体と、通常停止状態で運用される停止状態記憶媒体と、不揮発キャッシュと、停止状態記憶媒体へ第1のデータの書き込み要求が生じた場合、第1のデータを一旦不揮発キャッシュに保持し、第1のデータが一定以上のアクセス頻度を有するデータである場合には、第1のデータの格納場所を停止状態記憶媒体から動作状態記憶媒体に変更し、不揮発キャッシュに保持された第1のデータを動作状態記憶媒体に書き込むように制御する制御部と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の記憶媒体を有するストレージ装置、ストレージ装置の制御プログラム、及びストレージ装置の制御方法に関する。特に、一部の記憶媒体を停止した状態で運用することで、消費電力を削減するとともに、停止することによるストレージ装置のアクセス性能の低下を抑制する機能を備えたストレージ装置、ストレージ装置を制御する処理をコンピュータに実行させるプログラム、及びストレージ装置の制御方法に関する。
【背景技術】
【0002】
昨今の情報通信技術の進化とその適用分野の拡大に伴い、情報処理システムが扱うデータ量、及びデータに対する要求の即時性が日々増加している。そのためこれらのデータを格納するためのストレージ装置について、同時に大容量のデータを短時間で処理するためにアクセス性能の高速化が図られている。
【0003】
また昨今ではストレージ装置を含めた多数の情報通信機器をデータセンターに集約して大規模なシステムとして運用する機会が増加している。このようなデータセンター環境では、一般的に設置場所の広さに比例した運用費用を要する。そのためシステム全体の運用コストの削減を目的としてストレージ装置、ストレージシステムの高密度化が図られている。
【0004】
一方でストレージ装置を含めた情報通信機器に対する省電力化への要求が拡大している。第一の理由は、データセンター等の機器が集約した設置場所における消費電力、発熱の制約である。ストレージ装置の消費電力の増加により、運用時にかかる電気料金が増加する。またデータセンターで情報通信機器が納められるラックは、一般的に全体で許容可能な消費電力の上限が定められている。各装置、機器の消費電力がラックの消費電力の上限を超えた場合、ラック全体の消費電力が許容量に収まるように複数のラックに分離して設置することで設置面積の増大、及び装置、機器の設置コスト増につながる。さらに、消費電力の増加は多くの場合発熱量の増加につながる。そのため消費電力の増加によりデータセンターの空調コストが増加する。これらのコスト増を回避するためにストレージ装置を含めた各装置、機器の消費電力を低減する必要がある。省電力化への要求拡大の第二の理由は、環境に対する社会的要求である。昨今では情報通信機器を利用する企業に対して環境への負荷の低減が求められている。その中で情報通信機器についても、電力消費量の削減を通じて電力生産時に生じる環境への負荷を低減することが求められている。
【0005】
これらのストレージ装置に対する省電力化要求を満たすために、ストレージ装置を構成する記憶媒体に対する省電力化技術が存在する。このような省電力化技術の具体例として、まずMAID(Massive Array of Idle Disks)が挙げられる。MAIDは主に記憶媒体として、一般に広く用いられるHDDを用いたストレージに対して適用される。電源が投入されたHDD(Hard disk drive)は、アクセスが行われない間もデータを記録した円盤を内部で回転させ続けるために多くの電力を消費する。MAIDではこの特性に着目してストレージ内のアクセスされない、またはアクセス頻度が低いHDDを停止して電源投入時の電力消費を抑える。停止したHDDに格納されたデータに対するアクセスを行う場合、HDDの電源を投入する必要があるためアクセス性能は大きく低下する。MAIDではアクセス予定のないデータ、或いはアクセス頻度が低いデータを格納したHDDに限定して停止することで性能低下を抑える。
【0006】
またストレージを構成する記憶媒体として、消費電力が元々低い記憶媒体を使用することで省電力化を実現できる。近年ストレージを構成する記憶媒体として広く用いられるHDDに代わり、フラッシュメモリを用いたSSD(Solid State Drive)が普及し始めている。SSDはHDDに比べてアクセス性能が高い点に加えて物理的な可動部分を持たないため、アクセスの有無に関わらず省電力である特性を持つ。そのため既存のストレージに含まれる記憶媒体をHDDからSSDにそのまま置き換えるだけでストレージの省電力化を達成できる。
【0007】
また、特許文献1には、論理ボリュームに対するデータの読み出し要求又は書き込み要求を受信した時刻をRAIDへのアクセス時刻として記憶し、アクセス時刻が所定の時間を経過している場合、RAIDグループの冗長性に応じた数のHDDを節電モードとし、停止中のHDDへの書き込みはRAIDとは別の異なる更新結果の書き込み用のHDDに対して行うことで省電力化を達成するディスクアレイ装置が記載されている。
【0008】
特許文献2には、ホストコンピュータから送信されるデータを格納するための論理デバイスをホストコンピュータに対して提供するストレージ装置であって、データを格納するためのフラッシュメモリと、データを格納するためのディスク状記憶デバイスと、フラッシュメモリ及びディスク状記憶デバイスを制御する制御部とを備え、制御部は、論理デバイスを、フラッシュメモリ及びディスク状記憶デバイスによる冗長構成とするように制御するストレージ装置が記載されている。
【0009】
非特許文献1には、安価でそれほど信頼性の高くないディスク装置を複数用いた大容量で信頼性の高いディスクシステムであるRAID(Redundant Arrays of Inexpensive Disks)について記載されている。
【0010】
さらに、本願発明者は、本願出願後に公開される予定である特願2010−148589号に以下の発明を開示した。すなわち、ストレージを構成する記憶媒体間のデータの冗長性を利用し、冗長分のデータを記録する記憶媒体を停止する。そして、データの読み出しは他の記憶媒体のみで行う。また、データの更新は、停止した記憶媒体より高速かつ省電力な記憶媒体を配置し、そちらに記録する。更新データは停止した記憶媒体を再起動した際にまとめて反映する。そのように処理することによりプライマリストレージのようにアクセス頻度の低いデータを分類して記録することが困難なストレージに対しても低コストで消費電力を低減したストレージ装置を提供する。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2005−228288号公報
【特許文献2】特開2008−97237号公報
【非特許文献】
【0012】
【非特許文献1】Patterson et al., “A Case for Redundant Arrays of Inexpensive Disks (RAID)”,Proceedings of the 1988 ACM SIGMOD international conference on Management of data, pp. 109−116
【発明の概要】
【発明が解決しようとする課題】
【0013】
なお、上記各特許文献及び非特許文献の全開示内容はその引用をもって本書に繰込み記載する。
【0014】
以下の分析は、本発明によって与えられたものである。ストレージ装置、システムのうち頻繁にアクセスされるデータを格納することを目的としたプライマリストレージは、特に高い性能を求められる。プライマリストレージでは、性能向上を目的として一般的に高回転のHDDが記憶媒体に用いられる。高回転のHDDは回転速度が通常のHDDより高く高性能である代わりに、消費電力、発熱が通常のHDDより大きい。また各記憶媒体の消費電力、発熱が大きいため、通常のHDDを用いた場合に比べてストレージを同一筐体、同一システムに収める場合に電力、発熱の制約がより増大する。つまりプライマリストレージは性能面、電力、発熱の制約を伴う高密度化の面で特に厳しい要件を持つ。
【0015】
しかしながらプライマリストレージに対するMAIDによる省電力化、またはSSDのように省電力な記憶媒体の採用による省電力化の効果は限定的である。まずMAIDについて着目すると、MAIDではアクセスが行われない、またはアクセス頻度の低いHDDを停止することで省電力化を図る。これに対してプライマリストレージは、頻繁にアクセスされるデータのみを格納することを目的としている。つまりプライマリストレージ内の各データを格納するHDD全てに対して頻繁にアクセスが行われる。よってプライマリストレージMAIDによる停止対象のHDDが存在せず、省電力化の効果は得られない。
【0016】
一方ストレージ内でSSDをHDDの代わりに記憶媒体として採用する場合、省電力化と同時にストレージ全体のアクセス性能の向上を達成できる。またアクセス性能の向上により、ストレージ装置の台数がアクセス性能に依存している場合は装置の台数削減による高密度化が可能である。そのため記憶媒体としてHDDを全てSSDに置き換えることが可能であれば、高性能化、高密度化、省電力化の全てを達成するために有効である。しかし記憶媒体のHDDからSSDへの単純な置き換えはコスト的な理由により一般的に困難である。SSDはHDDに比べて記憶容量が小さく、高価であるためHDDの同容量のSSDへの置き換えに要するコストが大きい。
【0017】
つまりプライマリストレージのようにアクセス頻度の低いデータを分類して格納することが困難なストレージ装置に対して、従来の省電力化方法を用いて低コストで性能を落とさずに、高密度化、省電力化を図ることが不可能な点が問題である。そこでかかる問題を解消することが望まれる。
【課題を解決するための手段】
【0018】
本発明の第1の視点によれば、通常動作状態で運用される動作状態記憶媒体と、通常停止状態で運用され、アクセスが必要になったときに動作状態に切り替え、アクセスが終了すると停止状態に戻る停止状態記憶媒体と、を含む複数の記憶媒体と、不揮発キャッシュと、前記停止状態記憶媒体へ第1のデータの書き込み要求が生じた場合、前記第1のデータを一旦前記不揮発キャッシュに保持し、前記第1のデータが一定以上のアクセス頻度を有するデータである場合には、前記第1のデータの格納場所を前記停止状態記憶媒体から前記動作状態記憶媒体に変更し、前記不揮発キャッシュに保持された前記第1のデータを前記格納場所が変更された前記動作状態記憶媒体に書き込むように制御する制御部と、
を備えるストレージ装置が提供される。
【0019】
本発明の第2の視点によれば、通常動作状態で運用される動作状態記憶媒体と、通常停止状態で運用され、アクセスが必要になったときに動作状態に切り替え、アクセスが終了すると停止状態に戻る停止状態記憶媒体と、を含む複数の記憶媒体と、不揮発キャッシュと、を備えるストレージ装置を制御する処理をコンピュータに実行させるプログラムであって、前記停止状態記憶媒体へ第1のデータの書き込み要求が生じた場合、前記第1のデータを一旦前記不揮発キャッシュに保持する処理と、前記第1のデータについてアクセス頻度を判断し、前記第1のデータが一定以上のアクセス頻度を有するデータである場合には、前記第1のデータの格納場所を前記停止状態記憶媒体から前記動作状態記憶媒体に変更する処理と、前記不揮発キャッシュに保持された前記第1のデータを前記格納場所が変更された前記動作状態記憶媒体に書き込む処理と、を前記コンピュータに実行させるプログラムが提供される。
【0020】
本発明の第3の視点によれば、通常動作状態で運用される動作状態記憶媒体と、通常停止状態で運用され、アクセスが必要になったときに動作状態に切り替え、アクセスが終了すると停止状態に戻る停止状態記憶媒体と、を含む複数の記憶媒体と、不揮発キャッシュと、を備えるストレージ装置の制御方法であって、前記停止状態記憶媒体へ第1のデータの書き込み要求が生じた場合、前記第1のデータを前記不揮発キャッシュに保持するステップと、前記第1のデータについてアクセス頻度を判断し、前記第1のデータが一定以上のアクセス頻度を有するデータである場合には、前記第1のデータの格納場所を前記停止状態記憶媒体から前記動作状態記憶媒体に変更するステップと、前記不揮発キャッシュに保持された前記第1のデータを前記格納場所が変更された前記動作状態記憶媒体に書き込むステップと、を備えるストレージ装置の制御方法が提供される。
【発明の効果】
【0021】
本発明の各視点によれば、停止状態記憶媒体に書き込み要求があったデータのうち、一定以上のアクセス頻度のあるデータは、そのデータの格納場所を停止状態記憶媒体から動作状態記憶媒体に変更し、動作状態記憶媒体に書き込む。この間、停止状態記憶媒体を動作させる必要がないので、結果として、アクセス頻度の高いデータを停止状態記憶媒体から動作状態記憶媒体へ、停止状態記憶媒体を停止させたまま移動させることができる。
【図面の簡単な説明】
【0022】
【図1】本発明の一実施形態によるストレージ装置全体のブロック図である。
【図2】ストレージシステム全体のシステム構成図である。
【図3】本発明の一実施形態におけるアクセス要求処理部のブロック図である。
【図4】本発明の一実施形態におけるコマンド実行部のブロック図である。
【図5】本発明の一実施形態におけるアクセス要求管理テーブルの構成図である。
【図6】本発明の一実施形態におけるコマンド管理テーブルの構成図である。
【図7】本発明の一実施形態における不揮発キャッシュ管理テーブルの構成図である。
【図8】本発明の一実施形態におけるマッピングテーブルの構成図である。
【図9】本発明の一実施形態において、ホストからストレージ装置に対するアクセス要求があった場合の全体処理フローチャートの前半である。
【図10】図9に続く全体処理フローチャートの後半である。
【図11】図10におけるリードコマンドに対する処理の詳細フローチャートである。
【図12】図10におけるライトコマンドに対する処理の詳細フローチャートである。
【図13】本発明の一実施形態において、コマンド実行部が不揮発キャッシュの空き領域を確保する処理の詳細フローチャートである。
【図14】本発明の一実施形態において、コマンド実行部が不揮発キャッシュの更新データを記憶媒体に反映させる処理の詳細フローチャートである。
【図15】実施例1におけるストレージ装置における各記憶媒体のアドレス空間と各領域との対応図である。
【図16】実施例1におけるストレージ装置に対するホストからのアクセス要求の順番を示す図である。
【発明を実施するための形態】
【0023】
本発明の実施形態の概要について説明する。なお、概要の説明において付記する図面参照符号は専ら理解を助けるための例示であり、図示の態様に限定することを意図するものではない。
【0024】
一例を図1に示すように本発明の一実施形態のストレージ装置2は、通常動作状態で運用される動作状態記憶媒体211と、通常停止状態で運用され、アクセスが必要になったときに動作状態に切り替え、アクセスが終了すると停止状態に戻る停止状態記憶媒体212と、を含む複数の記憶媒体21と、不揮発キャッシュ22を備える。
【0025】
多くのストレージ装置2では各記憶媒体(211、212)の容量全体を使用しておらず、格納されたデータのうちアクセスされるデータは全容量の一部である。また多くのストレージ装置2では、各記憶媒体(211、212)内に格納された各データへのアクセスに偏りを持つ。そのためストレージ装置2を構成する各記憶媒体(211、212)に格納される、一定以上の頻度でアクセスされるデータの容量に偏りが生じる。アクセス頻度の高いデータが小容量である場合、アクセス頻度の高いデータの全体若しくは大部分を不揮発キャッシュにキャッシュすることで、アクセス頻度の高いデータを記憶している記憶媒体が停止した状態でも、ストレージ装置からのデータのリードが可能である。同様にストレージ装置に対してデータのライトを行う場合も、更新されたデータを不揮発キャッシュに格納することで記憶媒体が停止した状態でもデータの更新が可能である。
【0026】
さらに、本発明の一実施形態のストレージ装置2は、停止状態記憶媒体212へ第1のデータの書き込み要求が生じた場合、第1のデータを一旦不揮発キャッシュ22に保持し、第1のデータが一定以上のアクセス頻度を有するデータである場合には、第1のデータの格納場所を停止状態記憶媒体212から動作状態記憶媒体211に変更し、不揮発キャッシュ22に保持された第1のデータを格納場所が変更された動作状態記憶媒体211に書き込むように制御する制御部(23、24、25、26)を備える。
【0027】
停止状態記憶媒体212への書き込み要求があった第1のデータを一旦不揮発キャッシュに保持し、第1のデータの格納場所を停止状態記憶媒体212から動作状態記憶媒体211に変更することにより停止状態記憶媒体212に格納されていた第1のデータについて、停止状態記憶媒体212を動作状態に切り替えることなく、停止状態を維持したまま、動作状態記憶媒体211に移動させることができる。すなわち、第1のデータがアクセス頻度の高いデータであったならば、停止状態記憶媒体212に在ったアクセス頻度の高いデータについて、書き込み要求が在ったときに不揮発キャッシュを利用して停止状態記憶媒体212から動作状態記憶媒体211に移動させることができるので、停止状態記憶媒体212はより長い時間停止状態を維持できるようになる。
【0028】
なお、不揮発キャッシュ22は、機能として電源が切断されたときにもデータを保持できるものであればよく、電源がバックアップされた揮発性半導体メモリ等を用いてもよい。
【0029】
なお、本発明において、下記の形態が可能である。
[形態1]第1の視点のとおりである。
[形態2]制御部(23、24、25、26)は、第1のデータが一定以上のアクセス頻度を有しないデータである場合には、所定のタイミングで停止状態記憶媒体212を動作状態に切り替え、不揮発キャッシュ22に保持された第1のデータを動作状態に切り替わった停止状態記憶媒体212に書き込み、書き込みが終わった後に当該停止状態記憶媒体212を停止状態に戻すことが好ましい。すなわち、不揮発性キャッシュに保持した第1のデータがアクセス頻度の低いデータであれば、停止状態記憶媒体が動作状態になるまで待って停止状態記憶媒体に書き込むこともできる。
[形態3]制御部は、外部から与えられたデータアクセス要求に基づいて、複数の記憶媒体(211、212)、又は、不揮発キャッシュ22のいずれかへのアクセスを制御するコマンド実行制御部251(図4参照)と、不揮発キャッシュ22の状態を監視し、不揮発キャッシュ22の容量が不足した場合、又は、予め設定した時間に不揮発キャッシュ22のデータに基づいて、記憶媒体(211、212)に格納されたデータの更新を制御するデータ更新制御部253(図4参照)と、を備えることが好ましい。
[形態4]制御部は、仮想アドレスを複数の記憶媒体(211、212)のうち、いずれかの記憶媒体の物理アドレスに変換するマッピングテーブル261(図8参照)を有するアドレス変換部26をさらに備え、アドレス変換部26がマッピングテーブル261に含まれる第1のデータの格納先を停止状態記憶媒体212の物理アドレスから動作状態記憶媒体211の物理アドレスに書き換えることにより、制御部は、不揮発キャッシュ22が保持する第1のデータを停止状態記憶媒体212に替えて、動作状態記憶媒体211に書き込むように制御することが好ましい。すなわち、マッピングテーブルを書き換えることにより、不揮発キャッシュにあるデータの書き込み先を変更することができる。
[形態5]複数の記憶媒体(211,212)の各領域へのアクセス頻度を記録し、動作状態記憶媒体211の各領域に対するアクセス頻度のうち、一定以上のアクセス頻度の領域のデータがすべて不揮発キャッシュ22に存在する場合、当該動作状態記憶媒体211を停止状態記憶媒体212に変更することが好ましい。
形態1がデータの格納場所の変更であるのに対して、形態5は、一つの記憶媒体の運用時の動作についての通常動作状態から通常停止状態への変更である。
[形態6]マッピングテーブル(図8の261)は、複数の記憶媒体(211,212)の各領域へのアクセス頻度を記憶するアクセス頻度情報を含み、アクセス頻度情報に基づいて、一定以上のアクセス頻度の領域のデータがすべて不揮発キャッシュに存在する場合、動作状態記憶媒体211を停止状態記憶媒体212に変更することが好ましい。
なお、上記「アクセス頻度情報」には、「最終アクセス時刻」の情報を含んでもよく、さらには、最終アクセス時刻のみを「アクセス頻度情報」として扱って、一定以上のアクセス頻度の領域のデータがすべて不揮発キャッシュに存在するか否かを判定してもよい。
[形態7]複数の記憶媒体(211,212)は、第1の記憶媒体と、前記第1の記憶媒体の冗長データを記憶する第2の記憶媒体と、を含み、前記第2の記憶媒体は、停止状態記憶媒体212であって、制御部(23、24、25、26)は、前記第2の記憶媒体に冗長データを書き込む必要が生じた場合、前記冗長データを一旦不揮発キャッシュ22に書き込み、前記第2の記憶媒体を動作状態に切り替えてから不揮発キャッシュ22に書き込まれた冗長データを前記第2の記憶媒体に書き込むように制御することが好ましい。
複数の記憶媒体を持つ多くのストレージ装置では記憶媒体に対する耐障害性を確保するためにRAIDをはじめとした、記憶媒体間でデータの冗長性を持つ構成を取る。記憶媒体間でデータの冗長性を持つ構成のストレージ装置では、格納されるデータとそのデータに対するパリティ情報、またはミラー(複製)がそれぞれ異なる記憶媒体に格納される。つまり記憶媒体間で冗長構成を取るストレージ装置からデータをリードする場合、冗長データを格納した第2の記憶媒体へのアクセスは必須ではない。そのため目的とするデータを格納した第1の記憶媒体が利用可能であれば、冗長データを格納した第2の記憶媒体が停止した状態でも、ストレージ装置からのデータのリードが可能である。
一方、ストレージ装置に対してデータのライトを行う場合、データ本体と共にデータに対するパリティ、ミラー等の冗長データの更新が必要である。つまりデータ本体を格納した第1の記憶媒体、及び冗長データを格納した第2の記憶媒体の両方へのライトアクセスが必要である。しかし更新された冗長データを不揮発キャッシュ22に格納することで、第2の記憶媒体へのアクセスを行わずにライト処理が可能である。第2の記憶媒体への冗長データの書き込みは、後で必要になったときに行えばよい。
[形態8]複数の記憶媒体(211,212)はそれぞれディスク装置であり、前記動作状態はディスクが回転している状態であるものであってもよい。
すなわち、記憶媒体は、HDD等の磁気ディスクや光ディスクなどであってもよい。上記ディクス装置に格納されているデータへのアクセスには、ディスクが回転していることが必要であり、消費電力が大きくなるが、回転を停止させることにより、消費電力を抑制することができる。
[形態9]第2の視点のとおりである。
[形態10]第3の視点のとおりである。
[形態11]上記形態5において、停止状態記憶媒体212の各領域のうち、不揮発キャッシュ22にデータが存在しない一定以上のアクセス頻度の領域がある場合、当該停止状態記憶媒体212を動作状態記憶媒体211に変更してもよい。
形態5とは逆に、不揮発キャッシュ22を設けても一定以上のアクセス頻度でアクセスする必要がある記憶媒体は、常時動作状態にすることにより、アクセス時間を短縮できる。
[形態12]上記形態1乃至8、11のいずれかにおいて、不揮発キャッシュ22は、複数の記憶媒体(211、212)より高速にアクセス可能であることが好ましい。
[形態13]上記形態1乃至8、11、12のいずれかにおいて、不揮発キャッシュ22は、複数の記憶媒体(211、212)より動作時の消費電力が小さいことが好ましい。
[形態14]上記形態10において、第1のデータが一定以上のアクセス頻度を有しないデータである場合には、不揮発キャッシュ22の状態を監視し、所定のタイミングで停止状態記憶媒体212を動作状態に切り替えるステップと、不揮発キャッシュ22に保持された第1のデータを動作状態に切り替わった停止状態記憶媒体212に書き込むステップと、をさらに備えることが好ましい。
[形態15]上記形態14において、前記所定のタイミングで停止状態記憶媒体212を動作状態に切り替えるステップは、不揮発キャッシュ22の容量が不足した場合、又は、予め設定した時間に、停止状態記憶媒体212を動作状態に切り替えるステップであることが好ましい。
[形態16]上記形態10、14、15のいずれかにおいて、前記格納場所が変更された前記動作状態記憶媒体に前記第1のデータを書き込むステップは、仮想アドレスを前記複数の記憶媒体のいずれかの物理アドレスに変換するマッピングテーブル(図8の261)を用い、マッピングテーブル261に含まれる第1のデータの格納先を停止状態記憶媒体212の物理アドレスから動作状態記憶媒体211の物理アドレスに書き換えるステップを含むことが好ましい。上記物理アドレスには、記憶媒体のIDを含むことが好ましい。
[形態17]上記形態10、14〜16のいずれかにおいて、複数の記憶媒体(211、212)の各領域へのアクセス頻度を記録するステップと、動作状態記憶媒体211の各領域に対するアクセス頻度のうち、一定以上のアクセス頻度の領域のデータがすべて不揮発キャッシュ22に存在する場合、当該動作状態記憶媒体211を停止状態記憶媒体212に変更するステップと、をさらに含むことが好ましい。
[形態18]上記形態16において、複数の記憶媒体(211、212)の各領域に対するアクセス要求がある毎に、マッピングテーブル(図8の261)に当該記憶媒体の当該領域へのアクセス頻度を記録するステップと、マッピングテーブル261に記録されたアクセス頻度情報に基づいて、一定以上のアクセス頻度の領域のデータがすべて不揮発キャッシュ22に存在する場合、当該動作状態記憶媒体211を停止状態記憶媒体212に変更することが好ましい。
[形態19]複数の記憶媒体(211、212)は、データを格納する第1の記憶媒体と、第1の記憶媒体に格納されているデータの冗長データを記憶する第2の記憶媒体と、を含み、第2の記憶媒体を、停止状態記憶媒体212として扱い、第2の記憶媒体に冗長データを書き込む必要が生じた場合、冗長データを一旦不揮発キャッシュ22に書き込むステップと、第2の記憶媒体を動作状態に切り替えてから不揮発キャッシュ22に書き込まれた冗長データを第2の記憶媒体に書き込むステップと、を備えることが好ましい。
[形態20]通常動作状態で運用される動作状態記憶媒体211と、通常停止状態で運用され、アクセスが必要になったときに動作状態に切り替え、アクセスが終了すると停止状態に戻る停止状態記憶媒体212と、を含む複数の記憶媒体(211、212)と、不揮発キャッシュ22と、停止状態にある停止状態記憶媒体212への書き込み要求が生じた場合、データを一旦不揮発キャッシュ22に書き込み、その後、停止状態記憶媒体212が停止状態にある間に不揮発キャッシュ22の容量が不足した場合は、停止状態記憶媒体212に替えて、動作状態記憶媒体211にデータを書き込むように制御する制御部(23〜26)と、を備える。
【0030】
以上で、概要の説明を終了し、以下、具体的な実施形態について、図面を参照してさらに詳しく説明する。
【0031】
[第1の実施形態]
図2は、ストレージシステム全体のシステム構成図である。図1に示すとおり、ストレージシステム全体の構成はデータにアクセスする1台以上のホスト1、複数の記憶媒体から構成されるストレージ装置2、及びホスト1、ストレージ装置2を接続するネットワーク3を含む。ネットワーク3は、ストレージ装置2に対して複数のホスト1が接続可能な形態のみならず、ホスト1とストレージ装置2が直接接続される形態であってもよい。
【0032】
図1は、第1の実施形態によるストレージ装置2全体のブロック図である。ストレージ装置2は、複数の記憶媒体(211、212)を含む記憶媒体21と、不揮発キャッシュ22と、アクセス要求処理部23と、記憶媒体電源制御部24と、コマンド実行部25と、アドレス変換部26と、を備えている。図1では、複数の記憶媒体を総括して符号21で示すが、符号21で示す記憶媒体には、複数の記憶媒体が含まれる。記憶媒体21と不揮発キャッシュ22は、ストレージ装置2において、データを記憶する機能を果たし、アクセス要求処理部23と、記憶媒体電源制御部24と、コマンド実行部25と、アドレス変換部26と、は、データのリードライトを制御する制御部として機能する。また、記憶媒体21は、動作状態記憶媒体211と、停止状態記憶媒体212と、を含んでいる。
【0033】
動作状態記憶媒体211は、ストレージ装置2に書き込まれたデータを格納する。また動作状態記憶媒体211は常に動作状態で運用され、ストレージ2の外部からのアクセス要求に応じたライトまたはリード処理を行う。
【0034】
一方停止状態記憶媒体212は、ストレージ2に書き込まれたデータを格納する点で動作状態記憶媒体211と同様であるが、停止状態で運用される点が異なる。停止状態記憶媒体212に格納されたデータにアクセスを行う、若しくはデータを更新する場合は、記憶媒体電源制御部24が停止状態記憶媒体212を一時的に動作状態に切り替えて処理を行う。
【0035】
図1の構成では、動作状態記憶媒体211及び停止状態記憶媒体212を各1台で示しているが、これらはストレージ2全体でそれぞれ2台以上の構成であっても良い。
【0036】
不揮発キャッシュ22は、記憶媒体211、212よりアクセス性能が高く、ホスト1からライトされたデータを停止状態記憶媒体212にライトする前に一時的に保持する。不揮発キャッシュ22は、停止状態記憶媒体212が停止状態を維持する間にライトされるデータを、前記停止状態記憶媒体212が一時的に動作状態となるまで保持する。また不揮発キャッシュ22は停止状態記憶媒体212にライトされるデータ以外に、記憶媒体21から読み出されたデータを一時的にキャッシュとして保持することで、ストレージ2に対するホスト1からのリード、ライト要求の処理性能を高める。また不揮発キャッシュ22または後述するコマンド実行部25内に、不揮発キャッシュ22上に格納された動作状態記憶媒体211及び停止状態記憶媒体212を更新するためのデータ、または更新済みのデータを管理する図7に示す不揮発キャッシュ管理テーブル221を格納する。不揮発キャッシュ管理テーブル221は不揮発キャッシュ22に格納する以外に、コマンド実行部25の内部で管理してもよい。
【0037】
アクセス要求処理部23は、ホスト1からのアクセス要求を受け取り、アクセス要求に対応した動作状態記憶媒体211及び停止状態記憶媒体212に対するコマンドを生成する。またアクセス要求処理部23は、リードされた冗長データから元のデータの復元、及びライトデータから記憶媒体21に格納するための冗長データの生成を行う。
【0038】
記憶媒体電源制御部24は、停止状態記憶媒体212の動作または停止状態を記録し、電源を制御することで動作状態と停止状態を切り替える。
【0039】
コマンド実行部25はアクセス要求処理部23から記憶媒体21へのリードまたはライトコマンドを受け取り、リードアクセスの場合は、不揮発キャッシュ22に要求されたデータが格納されている場合は不揮発キャッシュ22から該当するアドレスのデータをリードして結果のデータをアクセス要求処理部23に返す。不揮発キャッシュ22上に要求されたデータが存在しなかった場合は記憶媒体21の動作状態記憶媒体211又は停止状態記憶媒体212から該データまたは該データに対する冗長データをReadする。
【0040】
ライトアクセスの場合はアクセス要求処理部23と共に受理したライトデータについて、冗長データを生成する。そして停止状態記憶媒体212が停止している場合はライトデータ、若しくはその冗長データを不揮発キャッシュ22にライトして、停止状態記憶媒体212が動作状態になるまでライトデータを保持する。
【0041】
またコマンド実行部25は不揮発キャッシュ22でライトデータ、若しくはその冗長データを保持する場合、任意のタイミングで停止状態記憶媒体212を停止状態から動作状態に切り替え、不揮発キャッシュ22で保持するライトデータで停止状態記憶媒体212のライト先領域を更新する。
【0042】
さらにコマンド実行部25は、不揮発キャッシュ22を介さずに記憶媒体21に発行したコマンドが完了、または不揮発キャッシュ22に対するリード、ライトが完了するとアクセス要求処理部23に対してリードコマンドの場合は読み出されたデータ、ライトコマンドの場合は完了通知を返す。
【0043】
アドレス変換部26は、ホスト1が参照可能な、及び各領域に対するアクセス頻度に関する情報を図8に示すマッピングテーブル261として格納する。またアドレス変換部26は、アクセス要求処理部23が記憶媒体21に対するコマンドを生成する際に、ホスト1からストレージ装置2に対するリード、ライト要求で指定されたアドレスを、アクセス先となる記憶媒体211、212と、各記憶媒体211、212にアクセスするために必要なアドレスに変換する。さらにアドレス変換部26に格納された情報は、コマンド実行部25から参照され、コマンド実行部25によってストレージ装置2のアドレス空間と、各領域の記憶媒体211、212における格納位置の対応関係が更新される。
【0044】
図3は、第1の実施形態におけるアクセス要求処理部23のブロック図である。図3を参照してアクセス要求処理部23の構成について説明を行う。図3において、アクセス要求処理部23は、アクセス解釈部231と、アクセス要求情報格納部232と、データ復元部233と、冗長データ生成部234と、を備えている。
【0045】
アクセス解釈部231は、ホスト1からのアクセス要求を受け取り、アクセス要求に対する記憶媒体21へのコマンドを生成する。アクセス解釈部231は、生成したコマンドをコマンド実行部25に渡し、コマンドの管理情報をアクセス要求情報格納部232に格納する。また生成したコマンドがライトである場合、ライト対象となるデータ(以下ライトデータ)を同時にコマンド実行部25に渡す。加えてアクセス解釈部231は、コマンド実行部25からリードコマンドで読み出されたデータ、またはライトコマンドの完了通知を受理して、リードで読み出されたデータ、またはライトの完了通知を対応するアクセス要求発行元であるホスト1に返す。アクセス解釈部231は、ホスト1からのアクセス要求が完了すると任意のタイミングで、アクセス要求情報格納部232に格納された、該当するアクセス要求の管理情報を削除する。
【0046】
アクセス要求情報格納部232は、アクセス解釈部231が受け取ったアクセス要求、及びアクセス解釈部231が生成したコマンドとの対応情報を示した図5に示すアクセス要求管理テーブル2321を格納する。
【0047】
データ復元部233は、記憶媒体21を構成する動作状態記憶媒体211、若しくは停止状態記憶媒体212に格納された冗長データについて、対応する他の記憶媒体211、212からリードされたデータを使用して、冗長データに対するデータ本体を生成する。
【0048】
冗長データ生成部234は、ストレージ装置2に対するライトデータから記憶媒体21に格納するための冗長データを生成する。
【0049】
続いてコマンド実行部25の構成について図面を参照して説明を行う。図4は、第1の実施形態におけるコマンド実行部のブロック図である。図4に示すコマンド実行部25は、コマンド実行制御部251と、コマンド管理情報格納部252と、データ更新制御部253と、を備えている。
【0050】
コマンド実行制御部251は、アクセス要求処理部23からリードまたはライトコマンドを受理する。コマンド実行制御部251は後述するコマンド管理情報格納部252に、アクセスコマンドの実行管理に必要な情報を格納する。コマンド実行制御部251が受理したコマンドがリードコマンドである場合、不揮発キャッシュ22、若しくは記憶媒体211、212からアクセス対象のデータを読み出す。
【0051】
受理したコマンドがライトコマンドである場合は、記憶媒体電源制御部24からライト先の記憶媒体21の動作状態を取得し、ライト先の記憶媒体が動作状態記憶媒体211であればライトデータ、もしくはその冗長データを動作状態記憶媒体211に直接ライトする。一方ライト先の記憶媒体が停止状態記憶媒体212である場合、不揮発キャッシュ22にライトデータまたはその冗長データを一時的に格納する。また不揮発キャッシュ22に格納されており、記憶媒体211、212に格納されていないライトデータを後述するデータ更新制御部253の指示により、記憶媒体211、212に書き込む。発行後記憶媒体211、212または不揮発キャッシュ22へのアクセスにより完了したコマンドは、Readであればデータを、Writeであれば完了通知をアクセス要求処理部23に返す。
【0052】
コマンド管理情報格納部252は、アクセス要求処理部23から受理したコマンドの管理に必要となる、図6に示すコマンド管理テーブル2521を格納する。
【0053】
データ更新制御部253は不揮発キャッシュ22の状態を監視し、不揮発キャッシュ22の更新データを格納する領域の空き容量が不足した場合、または事前に決められた時間に不揮発キャッシュ22に格納された更新データを記憶媒体211、212に反映する。
【0054】
まずデータ更新制御部253は、不揮発キャッシュ管理テーブル221上のデータから更新されていないデータを選択して破棄する。若しくは不揮発キャッシュ管理テーブル221上の更新されたデータから動作状態記憶媒体211に格納されるデータを優先的に動作状態記憶媒体211にライトする。
【0055】
若しくは不揮発キャッシュ管理テーブル221に加えてアドレス変換部26を参照して、不揮発キャッシュ管理テーブル221上の更新されたデータから本来のデータ格納先が停止状態記憶媒体212であったデータから任意のデータを選択し、選択したデータの格納先である記憶媒体を、アドレス変換部26が管理するマッピングテーブル261を更新することで、停止状態記憶媒体212から、よりアクセス頻度の高い任意の動作状態記憶媒体211に変更した後に、前記選択したデータを当該動作状態記憶媒体211にライトする。
【0056】
なお、データの格納先を停止状態記憶媒体212から動作状態記憶媒体211に変更するデータは、マッピングテーブル261を参照し、アクセス頻度の高いデータ、及び/又は、最終アクセス時刻が現在時刻に近いデータであることが好ましい。アクセス頻度の高いデータの格納先を停止状態記憶媒体212から動作状態記憶媒体211に変えることにより、停止状態記憶媒体212が頻繁に動作状態になることを避け、ストレージ装置2全体の消費電力を低減することができるからである。
【0057】
上記処理がいずれも不可能である場合、記憶媒体電源制御部24を通じて不揮発キャッシュ22に更新データが格納されているデータの格納先である停止状態記憶媒体212を動作状態に切り替える。データ更新制御部253は、更新データが格納されるべき停止状態記憶媒体212が動作状態になると、コマンド実行制御部251に対して不揮発キャッシュ22上の更新データを停止状態記憶媒体212にライトする。
【0058】
またデータ更新制御部253は、アドレス変換部26の情報を定期的に取得し、動作状態記憶媒体211において、アクセス頻度に関する情報について事前に決定した一定の条件を満たした領域が全て不揮発キャッシュ22に格納されたことを検出すると、記憶媒体電源制御部24を通して前記動作状態記憶媒体211を停止状態記憶媒体212に変更する。すなわち、この場合は、通常動作状態で運用されていた一つの記憶媒体211(動作状態記憶媒体)全体を通常停止状態で運用される記憶媒体212(停止状態記憶媒体)に変更することにより、ストレージ装置2全体の消費電力を低減する。
【0059】
なお、アクセス頻度に関する情報は、図8に示すマッピングテーブルの「アクセス回数」及び/又は「最終アクセス時刻」の情報を用いることができる。「アクセス回数」のみからアクセス頻度を判断してもよいし、「最終アクセス時刻」も併用してアクセス頻度を判断することができる。また、「最終アクセス時刻」のみからアクセス頻度を判断することも可能である。
【0060】
図5は、第1の実施形態におけるアクセス要求管理テーブル2321の構成図である。図5に示すアクセス要求管理テーブル2321は、アクセス要求情報格納部232に格納される。図5では、アクセス要求管理テーブル2321を構成する情報を示している。
【0061】
アクセス要求管理テーブル2321は、ホスト1からの各アクセス要求に付随する情報を保持する。アクセス要求に付随する情報として、アクセス要求を受けた際に付与されるアクセス要求毎に固有なIDと、リード(Read)であるかライト(Write)であるかのアクセス種別(図5ではR/Wと表現)と、アクセス先のストレージ2全体におけるアドレス空間内での先頭ブロックのアドレスと、アクセス長と、アクセス要求の要求元ホストと、アクセス要求を処理するためにコマンド実行部25に処理を依頼したコマンドに付加される、後述するコマンド管理テーブル2521上に格納される1個以上の各記憶媒体に対するアクセスコマンドのID(以下コマンドID)を記録する。アクセス要求管理テーブル2321は、ホスト1からの各アクセス要求に付随する前記情報が必要になる際に、アクセス解釈部231から参照される。
【0062】
図6は、第1の実施形態におけるコマンド管理テーブル2521の構成図である。コマンド管理テーブル2521は、すでに説明したコマンド管理情報格納部252(図4参照)に格納される。図6では、コマンド管理テーブル2521を構成する情報を示す。
【0063】
コマンド管理テーブル2521では、アクセス要求処理部23から処理を依頼されたコマンドを処理するために記憶媒体211、212または不揮発キャッシュ22に対して発行されるコマンドに付随する情報を保持する。コマンドに付随する情報として、記憶媒体に対する各アクセスコマンドを前記アクセス要求管理テーブル2321において識別するために用いるコマンド毎に固有なIDと、リード(Read)であるかライト(Write)であるかのアクセス種別(図6ではR/Wと表現)と、コマンドを発行するアクセス先の記憶媒体21内の各記憶媒体を識別するIDと、アクセス先の先頭ブロックのアドレスと、アクセス長と、ライトコマンドについては記憶媒体21にライトされるデータ、または冗長データを格納する。
【0064】
図7は、不揮発キャッシュ22またはコマンド実行部25内に格納される不揮発キャッシュ管理テーブル221を構成する情報を表す図である。
【0065】
不揮発キャッシュ管理テーブル221では、不揮発キャッシュ22上に一時的に格納された記憶媒体21のデータ、もしくは冗長データの管理に必要な情報を保持する。管理に必要な情報として、データが更新済みであるため不揮発キャッシュ22上から追い出される際に記憶媒体21に対する更新処理が必要であるかを表すdirtyフラグ(1の場合は更新が必要)と、データの先頭ブロックのアドレスと、アクセス長と、不揮発キャッシュ22上のデータの格納先の先頭ブロックのアドレスを格納する。また記憶媒体21に対して既に更新が完了しているデータについてはリード処理時にキャッシュとして利用する。
【0066】
図8は、アドレス変換部26で管理されるマッピングテーブル261を表す。マッピングテーブル261は、ホスト1がストレージ装置2のアドレス空間上でアクセス可能な各領域をホスト1がアクセスする際に用いるアドレスである仮想アドレスと、その各領域の格納先である記憶媒体211、212を識別する記憶媒体ID、及び記憶媒体IDにより特定される各記憶媒体211、212内の格納先アドレスである物理アドレスの対応関係を記録する。また各領域に対して、動作状態記憶媒体211の停止状態記憶媒体212への切り替えの判断に用いる、一定時間内におけるアクセス回数を記録する。このアクセス回数からアクセス頻度を判断することができる。さらに、アクセス頻度の情報としては、図8に示すように最終アクセス時刻の情報を記録してもよい。なお、アクセス頻度を判断する情報としては、「アクセス回数」、「最終アクセス時刻」は一例であって、「アクセス回数」、「最終アクセス時刻」以外のアクセス間隔等の情報を記録し、それらの情報からアクセス頻度を判断してもよい。
【0067】
なお、「アクセス回数」、「最終アクセス時刻」などのアクセス頻度に関する情報は、実際に記憶媒体211、212にアクセスされたか否かを問わず、記憶媒体211、212に対してアクセス要求がある毎に更新してもよい。不揮発キャッシュ22上にデータが存在する場合には、記憶媒体211、212に対してアクセス要求があった場合であっても、実際は不揮発キャッシュ22上のデータに対してアクセスが行われ、記憶媒体211、212にはアクセスが行われない場合もあるからである。そのようにしてアクセス頻度を把握することにより、データが不揮発性キャッシュに存在するか否かに関わらず、当該データに対するアクセス頻度を把握することができる。
【0068】
(ホストからアクセス要求があった場合の全体動作)
次に、図1〜図12を参照して第1の実施形態の動作について説明する。まず図1〜図10を参照して、ホスト1からストレージ装置2へアクセス要求が行われた際のストレージ2全体の動作について説明する。図9と図10は、それぞれ、第1の実施形態において、ホスト1からストレージ装置2に対するアクセス要求があった場合の全体処理フローチャートの前半と後半である。
【0069】
第1の実施形態では、ホスト1からストレージ装置2へアクセス要求が行われる毎に、図1、図2、図3、図4で表されるストレージ装置2全体が以下の動作を実行する。
【0070】
ホスト1からアクセス要求を受理したアクセス要求処理部23内のアクセス解釈部231は、アクセス要求を解釈し、アドレス変換部26に格納されたマッピングテーブル261の情報を用いてホスト1から指示されたアクセス先のアドレスを、記憶媒体21に対するアドレスに変換し、記憶媒体21に対するアクセスコマンド(Read、Write)を生成する(図9のステップS101)。
【0071】
ステップS101で生成されたコマンドが冗長データに対するWriteコマンド以外の場合(ステップS102のNo判定)、後述するステップS104以降の処理を行う。
【0072】
ステップS101で生成されたコマンドが記憶媒体21に格納される冗長データに対するWriteコマンドである場合(ステップS102のYes判定)、アクセス解釈部231は冗長データ生成部234を用いてステップS101でホスト1から受理したWriteデータからステップS101で生成されたコマンドが記憶媒体21に対して実際にWriteする冗長データを生成する(ステップS103)。
【0073】
アクセス解釈部231は、ステップS101で受理したアクセス要求の管理情報と生成したコマンドの対応情報をアクセス要求情報格納部232に格納する。このとき格納する情報の内容は、アクセス管理情報テーブル2321(図5)で示した通りである。またアクセス解釈部231はコマンド実行部25に対してステップS101で生成したコマンドの処理を要求する。コマンドがWriteである場合は、Write対象のデータを同時にコマンド実行部25に渡す(ステップS104)。
【0074】
コマンド実行制御部251は、ステップS102でコマンド実行部25に渡されたコマンドを受理する。そのコマンドの管理情報をコマンド管理情報格納部252にコマンド管理テーブル2521で示した形式で格納する(ステップS105)。
【0075】
ステップS105に続いて、図10のステップS106では、コマンド実行制御部251が受理したコマンドがWriteである場合(ステップS106のNo判定)、ステップM11及びステップS108からS110までの処理を行わず、ステップM12及びステップS112以降の処理を行う。
【0076】
コマンド実行制御部251が受理したコマンドがReadである場合(ステップS106のYes判定)、コマンド実行制御部251はReadコマンドに対するアクセス処理を実行する。このときコマンド実行制御部251は、Readコマンドを記憶媒体21または不揮発キャッシュ22に対して発行する(ステップM11)。なお、ステップM11の処理の詳細は、後で図11を用いて説明する。
【0077】
コマンド実行制御部251は、発行したReadコマンドが完了すると、結果であるReadされたデータをアクセス要求処理部23に渡す。またコマンド実行制御部251は、コマンド管理情報格納部252に格納された前記Readコマンドの管理情報を以降の任意のタイミングで削除する(ステップS108)。
【0078】
ステップM11及びステップS108で完了したReadコマンドが記憶媒体21に格納された冗長データ以外に対するコマンドである場合(ステップS109のNo判定)、ステップS110の処理は行わずステップS113以降の処理を行う。
【0079】
ステップM11及びステップS108で完了したReadコマンドが記憶媒体21に格納された冗長データに対するコマンドである場合(ステップS109のYes判定)、アクセス要求処理部23内のデータ復元部233は、ステップS108で受理したRead結果の冗長データからホスト1がストレージ2に対してRead要求を行っているデータを復元する(ステップS110)。
【0080】
コマンド実行制御部251が受理したコマンドがWriteである場合(ステップS106のNo判定)、コマンド実行制御部251はWriteコマンドに対するアクセス処理を実行して記憶媒体21、または不揮発キャッシュ22にデータを格納する(ステップM12)。なお、ステップM12の処理の詳細は、後で図12を用いて説明する。
【0081】
コマンド実行制御部251は、ステップM12でWriteデータの格納が完了すると、Write処理の完了をアクセス要求処理部23に通知する。またコマンド実行制御部251は、コマンド管理情報格納部252に格納された前記Writeコマンドの管理情報を以降の任意のタイミングで削除する(ステップS112)。
【0082】
アクセス要求処理部23内のアクセス解釈部231は、コマンド実行制御部251からReadの結果またはWriteの完了通知を受理し、アクセス要求情報格納部232に格納されたアクセス要求管理テーブル2321(図5)からコマンド結果に対応したホスト1のアクセス要求を探す。アクセス解釈部231は該当するアクセス要求の要求元ホスト1に対して、Readアクセス要求の結果であるデータを返信する。またはWriteアクセス要求の完了通知を通知する。アクセス解釈部231はホスト1へのコマンド実行結果の返信または完了の通知処理が完了すると、アクセス要求情報格納部232に格納された該コマンドの管理情報を任意のタイミングで削除する(ステップS113)。
【0083】
以上のステップS101からS113までの処理を行い、ホスト1からストレージ装置2へアクセス要求が行われた際のストレージ装置2全体の処理が終了する。
【0084】
(Readコマンドに対する処理の詳細)
次に図1、図4、図6、図7、図11を参照して図10におけるステップM11の更に詳細な処理手順について説明する。図11は、図10におけるReadコマンドに対する処理(ステップM11)の詳細フローチャートである。
【0085】
コマンド実行制御部251は、アクセス要求処理部23から受理したReadコマンドを不揮発キャッシュ22に発行し、Read先のデータが存在するかどうか問い合わせる。不揮発キャッシュ22は不揮発キャッシュ管理テーブル221を参照してRead先のデータが存在するか確認する(ステップS21)。
【0086】
不揮発キャッシュ22にReadコマンドのアクセス先のデータが存在した場合(ステップS22のYes判定)、コマンド実行制御部251は不揮発キャッシュ22からReadアクセス先のデータを結果として受け取り、ステップM11の処理を終了する(ステップS23)。
【0087】
不揮発キャッシュ22にReadコマンドのアクセス先のデータが存在しなかった場合(ステップS22のNo判定)、コマンド実行制御部251はステップS24以降の処理を実行する。
【0088】
コマンド実行制御部251は、Readコマンドのアクセス先の記憶媒体21が動作状態記憶媒体211、或いはアクセス先の停止状態記憶媒体212が動作状態である場合(ステップS24のNo判定)、ステップS26以降の処理を実行する。
【0089】
Readコマンドのアクセス先の記憶媒体21が停止状態記憶媒体212かつ実際に停止状態である場合(ステップS24のYes判定)、コマンド実行制御部251は、記憶媒体電源制御部24を通じてReadコマンドの発行先となる停止状態記憶媒体212を一時的に動作状態に切り替える(ステップS25)。
【0090】
コマンド実行制御部251はReadコマンドのアクセス先に応じて記憶媒体21にReadコマンドを発行する(ステップS26)。
【0091】
コマンド実行制御部251は、ステップS26で発行した記憶媒体21に対するReadコマンドの結果を受理する。また必要に応じて前記Readコマンドの結果であるデータまたは冗長データを不揮発キャッシュ22に格納し、不揮発キャッシュ管理テーブル221を更新する(ステップS27)。なお、このステップS27の処理は任意の処理であり、不揮発キャッシュ22へのReadコマンドの結果の格納は行わなくてもよい。
【0092】
以上のステップS21からS27までの処理を行い、コマンド実行制御部251のReadコマンドに対するステップM11の処理が完了する。
【0093】
(Writeコマンドに対する処理の詳細)
次に図1、図4、図6、図7、図12を参照して、図10におけるステップM12の更に詳細な処理手順について説明する。図12は、図10におけるWriteコマンドに対する処理(ステップM12)の詳細フローチャートである。
【0094】
コマンド制御部251は、記憶媒体電源制御部24を通じてWrite先の記憶媒体21が動作状態記憶媒体211か、停止状態記憶媒体212であるか確認する(ステップS31)。
【0095】
Writeコマンドのアクセス先となる記憶媒体21が動作状態記憶媒体211であった場合(ステップS32のNo判定)、コマンド制御部251はWriteコマンドをWrite先の動作状態記憶媒体211に発行する。また不揮発キャッシュ22上に更新前のデータが存在する場合は不揮発キャッシュ22上のデータに対する更新も行い、Write処理を終了する(ステップS33)。
【0096】
Writeコマンドのアクセス先が停止状態記憶媒体212であった場合(ステップS32のYes判定)、コマンド制御部251はアクセス要求処理部23から受理したWriteデータを格納するための利用可能な領域が不揮発キャッシュ22に存在するか問い合わせる(ステップS34)。
【0097】
コマンド制御部251による問い合わせの結果、不揮発キャッシュ22上に空き領域が存在しなかった場合(ステップS35のNo判定)、コマンド実行制御部251はアクセス要求処理部23から受理したWriteデータをキャッシュ22に書き込むために利用可能な領域が確保されるまで、Writeコマンドの処理を待機させる。また、空き容量が不足していることをデータ更新制御部253に通知する。待機終了後はステップS35の判定から処理を再開する(ステップS36)。
【0098】
コマンド実行制御部251による問い合わせの結果、不揮発キャッシュ22上に空き領域が存在した場合(ステップS35のYes判定)、コマンド実行制御部251は不揮発キャッシュ22にWriteコマンドを発行し、Writeデータを書き込んで処理を終了する(ステップS37)。
【0099】
以上のステップS31からS37までの処理を行い、コマンド実行制御部251のWriteコマンドに対する処理を行うステップM12の処理が完了する。
【0100】
(キャッシュ容量が不足したときの処理の詳細)
次に図1、図4、図6、図7、図8、図13を参照して前記データ更新制御部253が、不揮発キャッシュ22に格納されたReadデータを破棄、またはWriteデータを記憶媒体21に書き込むことで容量不足を解消する際の処理手順について説明する。図13は、第1の実施形態において、コマンド実行部25が不揮発キャッシュ22の空き領域を確保する処理の詳細フローチャートである。
【0101】
データ更新制御部253は、不揮発キャッシュ管理テーブル221からdirtyフラグが0、つまり更新の反映が不要なデータから任意の1個を選択して削除する(ステップS401)。
【0102】
ステップS401で削除可能なデータが存在せず削除に失敗した場合(ステップS402のNo判定)、ステップS404以降の処理を継続して行う。
【0103】
ステップS401で削除可能なデータが存在して削除に成功した場合(ステップS402のYes判定)、ステップS403の判定を実行する。
【0104】
不揮発キャッシュ22の空き容量が十分な場合(ステップS403のNo判定)、データ更新制御部253は容量不足が解消できたので処理を終了する。
【0105】
不揮発キャッシュ22の空き容量が不足している場合(ステップS403のYes判定)、ステップS401の処理に戻って不揮発キャッシュ22の容量不足の解消処理を続行する。
【0106】
ステップS404では、データ更新制御部253は不揮発キャッシュ管理テーブル221上のdirtyフラグが1、つまり更新を記憶媒体21に反映する必要があるデータから任意の1つを選択してコマンド実行制御部251に更新反映、つまりWriteコマンドの実行を指示する。選択するデータは、更新の反映先の記憶媒体21が動作状態記憶媒体211であるデータが存在する場合、そのデータを優先的に選択する。
【0107】
さらに、ステップS404において、不揮発キャッシュ管理テーブル221に加えてアドレス変換部26のマッピングテーブル261を参照して、不揮発キャッシュ管理テーブル221上のdirtyフラグが1のデータのうち、格納先である記憶媒体21をよりアクセス頻度の高い任意の動作状態記憶媒体211に変更可能である場合、マッピングテーブル261を更新して格納先の記憶媒体21を変更した後、前記データを優先的に選択する。特にdirtyフラグが1のデータのうち、マッピングテーブル261を参照し、アクセス頻度の高いデータについて、優先的に選択し、データの格納先を停止状態記憶媒体212から動作状態記憶媒体211に変更することが好ましい。アクセス頻度の高いデータの格納先を停止状態記憶媒体212から動作状態記憶媒体211に変えることにより、停止状態記憶媒体212が頻繁に動作状態になることを避け、ストレージ装置2全体の消費電力を低減することができる。
【0108】
コマンド実行制御部251は、記憶媒体電源制御部24を通してS404で選択したデータの格納先となる記憶媒体21の動作状態を取得する(ステップS405)。
【0109】
ステップS404で選択したデータの格納先が動作状態記憶媒体211であった場合(ステップS406のNo判定)、コマンド実行制御部251はステップS408以降の処理を実行する。
【0110】
ステップS404で選択したデータの格納先が停止状態記憶媒体212であった場合(ステップS406のYes判定)、コマンド実行制御部251は記憶媒体電源制御部24を通して格納先の停止状態記憶媒体212を動作状態に切り替える(ステップS407)。
【0111】
コマンド実行制御部251は、ステップS404で指示されたWriteコマンドの実行を完了した後、不揮発キャッシュ22に一時的に格納されていたWriteコマンドのデータを削除する(ステップS408)。
【0112】
不揮発キャッシュ22の空き容量が不足していると判断される状態である場合(ステップS409のYes判定)、ステップS404の処理に戻って不揮発キャッシュ22の容量不足の解消処理を続行する。
【0113】
ステップS408までの処理の結果、空き容量が十分と判断される状態である場合(ステップS409のNo判定)、コマンド実行制御部251は記憶媒体電源制御部24を通して動作中の停止状態記憶媒体212を停止する(ステップS410)。
【0114】
以上のステップS401からS410までの処理を行い、データ更新制御部253が、不揮発キャッシュ22に格納されたReadデータを破棄、またはWriteデータを記憶媒体21に書き込むことで不揮発キャッシュ22の容量不足を解消する処理が完了する。
【0115】
(キャッシュデータの記憶媒体への反映処理の詳細)
次に図1、図4、図6、図7、図8、図14を参照して前記データ更新制御部253が、不揮発キャッシュ22に格納されたWriteデータを記憶媒体21に書き込むことで、時間経過、ストレージ2の負荷等の条件によって不揮発キャッシュ上に一時的に格納された更新データを反映する処理手順について説明する。
【0116】
データ更新制御部253は不揮発キャッシュ管理テーブル221上のdirtyフラグが1、つまり更新を記憶媒体21に反映する必要があるデータから任意の1つを選択してコマンド実行制御部251に更新反映、つまりWriteコマンドの実行を指示する。選択するデータは、更新の反映先の記憶媒体21が動作状態記憶媒体211であるデータが存在する場合、前記データを優先的に選択する。若しくは不揮発キャッシュ管理テーブル221に加えてアドレス変換部26のマッピングテーブル261を参照して、不揮発キャッシュ管理テーブル221上のditryフラグが1のデータのうち、格納先である記憶媒体21をよりアクセス頻度の高い任意の動作状態記憶媒体211に変更可能である場合、マッピングテーブル261を更新して格納先の記憶媒体21を変更した後、前記データを優先的に選択する(ステップS51)。格納先である記憶媒体21を停止状態記憶媒体212から動作状態記憶媒体211に変更する場合は、マッピングテーブル261を参照してアクセス頻度の高いデータを選択して変更することが好ましい。
【0117】
コマンド実行制御部251は、記憶媒体電源制御部24を通してS51で選択したデータの格納先記憶媒体21の動作状態を取得する(ステップS52)。
【0118】
ステップS51で選択したデータの格納先が動作状態記憶媒体211であった場合(ステップS53のNo判定)、コマンド実行制御部251はステップS55以降の処理を実行する。
【0119】
ステップS51で選択したデータの格納先が停止状態記憶媒体211であった場合(ステップS53のYes判定)、コマンド実行制御部251は記憶媒体電源制御部24を通して格納先の停止状態記憶媒体212を動作状態に切り替える(ステップS54)。
【0120】
コマンド実行制御部251は、ステップS51で指示されたWriteコマンドの実行を完了した後、不揮発キャッシュ22に一時的に格納されていたWriteコマンドのデータについてdirtyフラグを0にリセットする(ステップS55)。
【0121】
不揮発キャッシュ22に不揮発キャッシュ管理テーブル221上のdirtyフラグがセットされたデータが存在、つまり未更新のデータが残存している場合(ステップS56のYes判定)、ステップS51の処理に戻って不揮発キャッシュ22上のWriteデータの更新反映処理を続行する。
【0122】
ステップS55までの処理の結果、不揮発キャッシュ22に不揮発キャッシュ管理テーブル221上のdirtyフラグがセットされたデータが存在しない、つまり未更新のデータが残存していない場合(ステップS56のNo判定)、コマンド実行制御部251は記憶媒体電源制御部24を通して動作中の停止状態記憶媒体212を停止する(ステップS57)。
【0123】
以上のステップS51からS57までの処理を行い、データ更新制御部253による記憶媒体21への不揮発キャッシュ22上のWriteデータの更新反映処理が完了する。
【0124】
以下に実施例について詳述する。
【実施例1】
【0125】
実施例1は、上記図9〜図14を用いて説明したステップS101からS113、ステップS21からS27、ステップS31からS37、ステップS401からS410、及びステップS51からS57までの処理の具体的な動作を示す実施例である。
【0126】
実施例1では、ストレージ2の記憶媒体21に含まれる動作状態記憶媒体211が1台、停止状態記憶媒体212が2台のHDDからなるRAID4のアレイで構成されており、不揮発キャッシュ22がflash SSDである場合を想定している。実施例1の動作を図1〜図4、図9〜図16を用いて示す。特に、図15は、実施例1におけるストレージ装置における各記憶媒体のアドレス空間と各領域との対応図である。また、図16は、実施例1におけるストレージ装置に対するホストからのアクセス要求の順番を示す図である。
【0127】
実施例1では、記憶媒体21は2台のデータ本体を格納するHDD−A、HDD−Bと、1台のパリティを格納するためのHDD−Pの3台のディスク装置により構成される。図15の格納先アドレスに示すとおり、ストレージ装置2全体のアドレス空間に対して、HDD−A、HDD−Bの領域が、ブロック単位でアドレス0から順番に100ブロック単位で割り当てられているものとする。図15には、ブロックアドレス0から99、200から299のデータはHDD−Aに格納され、ブロックアドレス100から199、300から399のデータはHDD−Bに格納されている例を示す。図15では省略しているが、HDD−Pに格納されるパリティは、アドレス空間の先頭から100ブロック単位でHDD−AとHDD−Bのデータから生成される。HDD−Aは動作状態記憶媒体211であり、HDD−B、HDD−Pは停止状態記憶媒体212であるものとする。
【0128】
HDD−Bに格納された領域へのアクセスが必要である場合、アクセス前にHDD−Bを動作状態に切り替える必要がある。つまりアクセス頻度の高いデータがHDD−Bに格納されている場合、頻繁にHDD−Bを動作状態に切り替える必要が発生する。本実施例では、HDD−Bに格納された領域Xのデータが頻繁にアクセスされ、領域Xのデータは初期状態で不揮発キャッシュ22に格納されているものとする。また不揮発キャッシュ22は最大で600ブロック分のデータを同時に格納可能であるとする。つまり初期状態では領域Xのデータが格納されている領域を除いた500ブロック分のデータを新規に格納可能であるものとする。
【0129】
実施例1では図15に示した領域WからZまでの4つの領域に対してRead、Writeを行った場合の動作例を示す。図15では、各領域に対してストレージ装置2全体のアドレス空間での先頭ブロックとそのブロックサイズ(大きさ)、及びデータ格納先のHDDとそのアドレスを示している。実施例におけるホスト1からストレージ2に対するアクセス要求列は図16に示した順序で行う。
【0130】
まず図16における151の領域Wに対するReadを行う際の動作を示す。151の領域Wに対するRead要求では、HDD−Aのブロックアドレス0から99に対するReadコマンドが生成される。コマンド実行制御部251は生成されたコマンドを、図11に示すステップS21からS27の手順で処理する。ステップS21で領域Wのデータが不揮発キャッシュ上に存在しないことを確認し、領域Wの格納先であるHDD−Aは動作状態記憶媒体であることを確認して、ステップS26以降の処理を行い、HDD−Aからデータを読み出す。HDD−AからReadされた領域Wのデータが、ホスト1に対して結果として返される。また不揮発キャッシュ22に領域Wのデータが格納される。
【0131】
次に図16における152の領域Wに対するWriteを行う際の動作を示す。ストレージ2のアクセス要求受理部23がホスト1からの領域Wに対するWrite要求を受け取ると、HDD−A及びHDD−Pに対するWriteコマンドを生成する。HDD−Aに対するWriteコマンドは、HDD−Aが動作状態記憶媒体211であるため、HDD−Aに対して直接発行される。また、領域Wの更新前のデータが不揮発キャッシュ22上に存在するため、不揮発キャッシュ上の領域Wのデータも更新される。
【0132】
HDD−Pに対するWriteコマンドは、HDD−Pが停止状態記憶媒体であるため、不揮発キャッシュ22上に記録される。不揮発キャッシュ22には500ブロックの空き領域が存在するため、不揮発キャッシュ22上に領域Wに対するパリティデータが格納される。
【0133】
図16における153の領域Xに対するRead処理を行う際の動作を示す。領域Xのデータは停止状態記憶媒体212に含まれるHDD−Bに格納されている。しかし領域Xのデータは既に不揮発キャッシュ22に格納されている。そのため領域Xのデータは不揮発キャッシュ22からReadされる。
【0134】
図16における153までのアクセス処理が終了した段階で、154に示した更新データの反映処理を行う場合の手順を示す。更新データの反映処理は図14に示した手順に従って行われる。不揮発キャッシュ22上には、領域Wのデータと対応するパリティ、及び領域Xのデータが格納されている。これらのデータのうち、領域Wに対応するパリティのみが、格納先であるHDD−Pへの更新が完了されておらずdirtyフラグが1である。コマンド実行制御部251は、記憶媒体電源制御部24に対して停止したHDD−Pを動作状態に切り替えるように指示する。HDD−Pが動作状態に切り替わった後にコマンド実行制御部251は、不揮発キャッシュ22上の領域Wに対応するパリティデータをHDD−PにWriteする。Write完了後にHDD−Pは記憶媒体電源制御部24により、再び停止状態に切り替わる。同時に領域Wに対応するパリティデータのdirtyフラグを0にリセットする。
【0135】
図16における155、156の領域X、領域Yに対するWrite要求は、前記152と同様の手順で行われる。このとき領域X、領域Yに対する更新データはそれぞれ100ブロック分である。図15の154までの時点で不揮発キャッシュ22に格納されたデータの容量は領域Wのデータと対応するパリティ、及び領域Xのデータの300ブロック分のデータのみであるため、領域Xに対応するパリティ、及び領域Yのデータと対応するパリティを不揮発キャッシュ22に新たに格納することが可能である。図15における156のアクセス要求が完了した時点で不揮発キャッシュ22に新たに300ブロック分のデータ、及びパリティが格納されて空き容量は0となる。
【0136】
さらに図16において157の領域Zに対するWrite要求の処理手順について述べる。図16の156の処理までの時点で、不揮発キャッシュ22の空き容量は0である。つまり155、156の処理とは異なり不揮発キャッシュ22に領域Zに対する更新データを格納するためには、不揮発キャッシュ22上に空き領域を作る必要がある。このとき領域Zに対するWrite処理は図12のステップS36で示されたとおり、不揮発キャッシュ22上に必要な空き領域が確保されるまでの間ブロックする。
【0137】
不揮発キャッシュ22上に領域Zの更新データを確保するのに必要な空き領域を確保する処理は図13の処理手順で示した通り行われる。空き領域の確保処理では図13のステップS401で示される通り、データ更新制御部253が不揮発キャッシュ管理テーブル221を参照して不揮発キャッシュ22上のdirtyフラグが0、つまり記憶媒体21を構成する各HDDに対する更新処理が不要なデータを選択する。前記条件に該当するデータは、図16における154で更新の反映が行われた領域Wのデータ、及び対応するパリティのみである。不揮発キャッシュ22に格納された領域Wのデータ及び対応するパリティは、既に停止状態記憶媒体HDD−B、HDD−Pへの更新が完了しているため、不揮発キャッシュ22上及び不揮発キャッシュ管理テーブル221から削除が可能である。
【0138】
領域Wのデータ、及びパリティデータを削除した時点で空き容量が200ブロックに増加するため、領域Zの更新されたデータ、及び対応するパリティを不揮発キャッシュ22に格納可能であり、不揮発キャッシュ22上に必要な空き領域を確保する処理を終了する。
【0139】
必要な空き領域が不揮発キャッシュ22上に確保された後の図16における157の処理は、152、155、156と同様の手順である。
【0140】
以上で図16の151から157までのアクセス処理が完了する。この間に動作状態記憶媒体であるHDD−Aは常時動作状態である一方で、停止状態記憶媒体であるHDD−B、及びHDD−Pは図16の154における処理の間を除いて常に停止状態のまま運用されている。実施例1では不揮発キャッシュ22としてflash SSDを仮定している。これは記憶媒体21で使用しているHDDより消費電力が小さいことが理由である。そのため本発明の適用によりHDD−B、及びHDD−Pが一部の時間を除いて停止状態で運用を行ったことで、ストレージ装置2の消費電力の削減が実現できる。
【0141】
本発明の全開示(特許請求の範囲及び図面を含む)の枠内において、さらにその基本的技術思想に基づいて、実施例ないし実施例の変更・調整が可能である。また、本発明の特許請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、特許請求の範囲及び図面を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【0142】
1:ホスト
2:ストレージ装置
3:ネットワーク
21:記憶媒体
211:動作状態記憶媒体
212:停止状態記憶媒体
22:不揮発キャッシュ
221:不揮発キャッシュ管理テーブル
23:アクセス要求処理部
231:アクセス解釈部
232:アクセス要求情報格納部
2321:アクセス要求管理テーブル
233:データ復元部
234:冗長データ生成部
24:記憶媒体電源制御部
25:コマンド実行部
251:コマンド実行制御部
252:コマンド管理情報格納部
2521:コマンド管理テーブル
253:データ更新制御部
26:アドレス変換部
261:マッピングテーブル
141:アドレスマップ
151、152、153、155、156、157:ホストからストレージ装置に対するアクセス要求
154:不揮発キャッシュ上の更新データの記憶媒体への反映処理

【特許請求の範囲】
【請求項1】
通常動作状態で運用される動作状態記憶媒体と、通常停止状態で運用され、アクセスが必要になったときに動作状態に切り替え、アクセスが終了すると停止状態に戻る停止状態記憶媒体と、を含む複数の記憶媒体と、
不揮発キャッシュと、
前記停止状態記憶媒体へ第1のデータの書き込み要求が生じた場合、前記第1のデータを一旦前記不揮発キャッシュに保持し、前記第1のデータが一定以上のアクセス頻度を有するデータである場合には、前記第1のデータの格納場所を前記停止状態記憶媒体から前記動作状態記憶媒体に変更し、前記不揮発キャッシュに保持された前記第1のデータを前記格納場所が変更された前記動作状態記憶媒体に書き込むように制御する制御部と、
を備えることを特徴とするストレージ装置。
【請求項2】
前記制御部は、前記第1のデータが前記一定以上のアクセス頻度を有しないデータである場合には、所定のタイミングで前記停止状態記憶媒体を動作状態に切り替え、前記不揮発キャッシュに保持された前記第1のデータを前記動作状態に切り替わった停止状態記憶媒体に書き込み、書き込みが終わった後に当該停止状態記憶媒体を停止状態に戻すことを特徴とする請求項1記載のストレージ装置。
【請求項3】
前記制御部は、
外部から与えられたデータアクセス要求に基づいて、前記複数の記憶媒体、又は、前記不揮発キャッシュのいずれかへのアクセスを制御するコマンド実行制御部と、
前記不揮発キャッシュの状態を監視し、不揮発キャッシュの容量が不足した場合、又は、予め設定した時間に前記不揮発キャッシュのデータに基づいて、前記記憶媒体に格納されたデータの更新を制御するデータ更新制御部と、
を備えることを特徴とする請求項1又は2記載のストレージ装置。
【請求項4】
前記制御部は、仮想アドレスを前記複数の記憶媒体のうち、いずれかの記憶媒体の物理アドレスに変換するマッピングテーブルを有するアドレス変換部をさらに備え、
前記アドレス変換部が前記マッピングテーブルに含まれる前記第1のデータの格納先を停止状態記憶媒体の物理アドレスから前記動作状態記憶媒体の物理アドレスに書き換えることにより、
前記制御部は、前記不揮発キャッシュが保持する前記第1のデータを前記停止状態記憶媒体に替えて、前記動作状態記憶媒体に書き込むように制御することを特徴とする請求項1乃至3いずれか1項記載のストレージ装置。
【請求項5】
前記複数の記憶媒体の各領域へのアクセス頻度を記録し、動作状態記憶媒体の各領域に対するアクセス頻度のうち、一定以上のアクセス頻度の領域のデータがすべて不揮発キャッシュに存在する場合、当該動作状態記憶媒体を停止状態記憶媒体に変更することを特徴とする請求項1乃至4いずれか1項記載のストレージ装置。
【請求項6】
前記マッピングテーブルは、前記複数の記憶媒体の各領域へのアクセス頻度を記憶するアクセス頻度情報を含み、
前記アクセス頻度情報に基づいて、一定以上のアクセス頻度の領域のデータがすべて不揮発キャッシュに存在する場合、前記動作状態記憶媒体を前記停止状態記憶媒体に変更することを特徴とする請求項4記載のストレージ装置。
【請求項7】
前記複数の記憶媒体は、第1の記憶媒体と、前記第1の記憶媒体の冗長データを記憶する第2の記憶媒体と、を含み、
前記第2の記憶媒体は、前記停止状態記憶媒体であって、
前記制御部は、前記第2の記憶媒体に冗長データを書き込む必要が生じた場合、前記冗長データを一旦前記不揮発キャッシュに書き込み、前記第2の記憶媒体を動作状態に切り替えてから前記不揮発キャッシュに書き込まれた前記冗長データを前記第2の記憶媒体に書き込むように制御することを特徴とする請求項1乃至6いずれか1項記載のストレージ装置。
【請求項8】
前記複数の記憶媒体はそれぞれディスク装置であり、前記動作状態はディスクが回転している状態であることを特徴とする請求項1乃至7いずれか1項記載のストレージ装置。
【請求項9】
通常動作状態で運用される動作状態記憶媒体と、通常停止状態で運用され、アクセスが必要になったときに動作状態に切り替え、アクセスが終了すると停止状態に戻る停止状態記憶媒体と、を含む複数の記憶媒体と、
不揮発キャッシュと、
を備えるストレージ装置を制御する処理をコンピュータに実行させるプログラムであって、
前記停止状態記憶媒体へ第1のデータの書き込み要求が生じた場合、前記第1のデータを一旦前記不揮発キャッシュに保持する処理と、
前記第1のデータについてアクセス頻度を判断し、前記第1のデータが一定以上のアクセス頻度を有するデータである場合には、前記第1のデータの格納場所を前記停止状態記憶媒体から前記動作状態記憶媒体に変更する処理と、
前記不揮発キャッシュに保持された前記第1のデータを前記格納場所が変更された前記動作状態記憶媒体に書き込む処理と、
を前記コンピュータに実行させることを特徴とするプログラム。
【請求項10】
通常動作状態で運用される動作状態記憶媒体と、通常停止状態で運用され、アクセスが必要になったときに動作状態に切り替え、アクセスが終了すると停止状態に戻る停止状態記憶媒体と、を含む複数の記憶媒体と、
不揮発キャッシュと、
を備えるストレージ装置の制御方法であって、
前記停止状態記憶媒体へ第1のデータの書き込み要求が生じた場合、前記第1のデータを前記不揮発キャッシュに保持するステップと、
前記第1のデータについてアクセス頻度を判断し、前記第1のデータが一定以上のアクセス頻度を有するデータである場合には、前記第1のデータの格納場所を前記停止状態記憶媒体から前記動作状態記憶媒体に変更するステップと、
前記不揮発キャッシュに保持された前記第1のデータを前記格納場所が変更された前記動作状態記憶媒体に書き込むステップと、
を備えることを特徴とするストレージ装置の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate