(57)【要約】      （修正有）【課題】アクセス密度の変動に対応するようにデータをキャッシュに保持できるキャッシュ装置及びその制御方法を提供する。【解決手段】キャッシュ装置は、キャッシュ１と、アクセス密度変動分析手段２と、キャッシュ保持優先度設定手段３と、キャッシュデータ制御手段４と、を有している。キャッシュは、記憶装置のデータを一時的に保持する。アクセス密度変動分析手段は、記憶装置に対するアクセスを監視し前記アクセスの密度変動を分析する。キャッシュ保持優先度設定手段は、アクセス密度変動分析手段の分析結果に基づいてキャッシュに保持するデータの優先度を設定する。キャッシュデータ制御手段は、優先度に基づいてキャッシュに保持されたデータを配置を制御する。【選択図】図１
2017058904.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置のデータを一時的に保持するキャッシュと、
前記記憶装置に対するアクセスを監視し前記アクセスの密度の変動を分析するアクセス密度変動分析手段と、
前記アクセス密度変動分析手段の分析結果に基づいて前記キャッシュに保持するデータの優先度を設定するキャッシュ保持優先度設定手段と、
前記優先度に基づいて前記キャッシュに保持するデータの配置を制御するキャッシュデータ制御手段と、
を有することを特徴とするキャッシュ装置。
【請求項２】
前記アクセス密度変動分析手段が、
前記記憶デバイスへのアクセス密度が定期的に所定値より大きくなる時間帯を抽出する、
ことを特徴とするキャッシュ装置。
【請求項３】
前記キャッシュ保持優先度設定手段が、
前記時間帯にアクセスのあったデータに前記時間帯にアクセスが無かったデータよりも高い優先度を付与する、
ことを特徴とする請求項２に記載のキャッシュ装置。
【請求項４】
前記キャッシュ保持優先度設定手段が、
前記分析結果に基づいて前記アクセス密度に対応する優先度の重み係数を設定し、
前記優先度を前記重み係数とアクセス回数とに基づいて数値化し前記データに設定する、
ことを特徴とする請求項１に記載のキャッシュ装置。
【請求項５】
請求項１乃至請求項４いずれか一項に記載のキャッシュ装置と、
前記キャッシュよりアクセス性能が低くデータを永続的に記憶する記憶デバイスと、
前記キャッシュに保持されたデータと前記記憶デバイスに記憶されたデータとを制御するデータ制御装置と、
を有することを特徴とするストレージシステム。
【請求項６】
記憶装置のデータを一時的にキャッシュ保持し、
前記記憶装置に対するアクセスを監視し前記アクセスの密度の変動を分析し、
前記アクセスの密度の変動の分析結果に基づいて前記キャッシュに保持するデータの優先度を設定し、
前記優先度に基づいて前記キャッシュに保持するデータの配置を制御する、
ことを特徴とするキャッシュ装置の制御方法。
【請求項７】
前記アクセス密度変動分析手段が、
前記記憶デバイスへのアクセス密度が定期的に所定値より大きくなる時間帯を抽出する、
ことを特徴とする請求項６に記載のキャッシュ装置の制御方法。
【請求項８】
前記キャッシュ保持優先度設定手段が、
前記時間帯にアクセスのあったデータに前記時間帯にアクセスが無かったデータよりも高い優先度を付与する、
ことを特徴とする請求項７に記載のキャッシュ装置の制御方法。
【請求項９】
前記キャッシュ保持優先度設定手段が、
前記分析結果に基づいて前記アクセス密度に対応する優先度の重み係数を設定し、
前記優先度を前記重み係数とアクセス回数とに基づいて数値化してデータに設定する、
ことを特徴とする請求項７に記載のキャッシュ装置の制御方法。
【請求項１０】
記憶装置のデータを一時的にキャッシュ保持するステップと、
前記記憶装置に対するアクセスを監視し前記アクセスの密度の変動を分析するステップと、
前記アクセスの密度の変動の分析結果に基づいて前記キャッシュに保持するデータの優先度を設定するステップと、
前記優先度に基づいて前記キャッシュに保持するデータの配置を制御するステップと、
を有することを特徴とするキャッシュ装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュ装置およびキャッシュ装置の制御方法に関する。
【背景技術】
【０００２】
近年、ストレージシステムの大容量化が進んでいる。大容量のストレージシステムでは、記憶手段として、ディスクアレイに代表される大容量の記憶デバイスが用いられる。しかしながら、上記の大容量記憶デバイスは多くの場合、レスポンス性能が低い。このため、記憶デバイスに比べ、レスポンス性能が高く、容量が小さいキャッシュを用いてレスポンス性能の向上を図っている。
【０００３】
キャッシュは記憶デバイスにアクセスのあったデータを一時的に保持する。このデータが保持されている間に、次のアクセス要求があった場合は、記憶デバイスにアクセスすることなくレスポンスを返すことができるため、レスポンスを高速化することができる。
【０００４】
一般的な動作として、あるデータにアクセスがあると、当該データは、新しいデータとしてキャッシュの保持順の先頭に配置される。この時、キャッシュが一杯であった場合は、保持順が最後尾のデータがキャッシュから破棄される。したがって、アクセス要求があった時にキャッシュ上にデータがある場合と無い場合が存在する。データがキャッシュ上にある場合は、キャッシュヒットと呼ばれる。一方、要求されたデータがキャッシュ上に無い場合は、キャッシュミスヒットと呼ばれる。上記の動作から明らかなように、ストレージのパフォーマンスを向上するためにはキャッシュヒット率を高くする仕組みが必要になる。
【０００５】
最も一般的な方式は、ＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）である。ＬＲＵでは、キャッシュに保持されたデータの中で、参照されていない時間が最も長いデータを破棄する。これは、長い時間参照されていないデータは、今後も参照される蓋然性が低いとの仮定に基づいた概念である。ところが、ＬＲＵでは、最近参照されたが、使用頻度が低いデータがあると、使われないまま長くキャッシュに残ってしまう、という問題がある。
【０００６】
その問題点を解決する方法の一つに、使用頻度が最も少ないデータを破棄するＬＦＵ（Ｌｅａｓｔ  Ｆｒｅｑｕｅｎｔｌｙ  Ｕｓｅｄ）がある。ＬＦＵでは、一定期間に各データが参照された回数のテーブルを作成し、そのテーブルに基づいて破棄するデータを決定する。このため、使用頻度が少ないデータが残るという問題は解決される。ところがＬＦＵでは、上記のテーブルを作成した期間と、当該テーブルを使用してデータを制御する期間とにずれがある。このため、アクセス頻度が動的に変化する環境では有効に機能しないという問題がある。
【０００７】
上記のＬＲＵやＬＦＵの問題点を解決する方法が種々提案されている。例えば特許文献１には、ＬＦＵの課題である、アクセス頻度が動的に変化する環境に対応する技術が開示されている。この技術では、アクセス頻度採取用のテーブルとデータ制御用のテーブルを同時に用意し、所定間隔（例えば１秒）で交互に切り替える。これにより、アクセス頻度の採取と制御のタイムラグを小さくし、アクセス頻度が動的に変化しても、それに追従することができるようにしている。
【０００８】
また例えば、特許文献２には、レスポンス性能の高さで階層化した階層的なキャッシュシステムを構成し、動的なアクセス環境下でも、データを適切な階層に保持させる技術が開示されている。この技術では、上位のキャッシュから降格されたデータを下位のキャッシュが受け入れるか否かの閾値を設け、閾値を動的に調整する。具体的には、下位キャッシュに最後に挿入されたデータＭＲＩと最後に削除されたデータのキャッシュＭＲＥのヒットカウントを比較し、ＭＲＩ＞ＭＲＥであれば閾値を小さくし、ＭＲＩ＜ＭＲＥであれば、閾値を大きくする。このように動的に閾値を調整することで、アクセス頻度が動的に変化しても、適切なデータをキャッシュに保持することができる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】再特ＷＯ１０９９／４０５１６号公報
【特許文献２】特表２０１４−５３５１０６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかし、特許文献１、２の技術には、アクセスの全体量があまり変化せず、個々のデータへのアクセス頻度が変化する場合には有効であるが、アクセスの全体量が変化する場合には有効でない、という問題がある。
【００１１】
例えば、近年問題となっている、ログオンストームには効果を発揮しない。ログオンストームとは、仮想化デスクトップ環境などで、多数のクライアント端末がサーバやストレージに一斉にログオンし、レスポンスが著しく低下する問題のことである。例えば、企業等の始業時を例に取ると、ログオンストームは、平日では１日に１回の頻度で発生する。ここでアクセスが集中したデータは、他の時間には、ほとんど参照されることがないので、特許文献１、２いずれの技術でも、翌日の始業前までにキャッシュから破棄されてしまう。このため、翌日の始業時に、再びアクセスが集中するとともに、一斉にキャッシュデータの入れ替えが起こる。その結果、キャッシュが無い場合よりも、逆に負荷が大きくなってしまう。
【００１２】
本発明は、上記の問題点に鑑みてなされたものであり、アクセス密度の時間変動に対応するようにデータをキャッシュに保持できるキャッシュ装置、を提供することを目的としている。
【課題を解決するための手段】
【００１３】
上記の課題を解決するため、本発明のキャッシュ装置は、キャッシュと、アクセス密度変動分析手段と、キャッシュ保持優先度設定手段と、キャッシュデータ制御手段と、を有している。キャッシュは、記憶装置のデータを一時的に保持する。アクセス密度変動分析手段は、記憶装置に対するアクセスを監視し前記アクセスの密度変動を分析する。キャッシュ保持優先度設定手段は、アクセス密度変動分析手段の分析結果に基づいてキャッシュに保持するデータの優先度を設定する。キャッシュデータ制御手段は、優先度に基づいてキャッシュに保持されたデータを配置を制御する。
【発明の効果】
【００１４】
本発明の効果は、アクセス密度の変動に対応するようにデータをキャッシュに保持できるキャッシュ装置を、提供できることである。
【図面の簡単な説明】
【００１５】
【図１】第１の実施形態を示すブロック図である。
【図２】第２の実施形態を示すブロック図である。
【図３】アクセス密度の変動を表すグラフの一例である。
【図４】第２の実施形態の動作を示すフローチャートである。
【図５】第２の実施形態の定義済み処理を示すフローチャートである。
【図６】第３の実施形態のデータ配置例を示す概念図である。
【図７】第３の実施形態の重み付け例を示す表である。
【図８】第３の実施形態の動作の一例を示す模式図である。
【図９】第３の実施形態の動作の別の一例を示す模式図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照しながら、本発明の実施形態を詳細に説明する。但し、以下に述べる実施形態には、本発明を実施するために技術的に好ましい限定がされているが、発明の範囲を以下に限定するものではない。なお各図面の同様の構成要素には同じ番号を付し、説明を省略する場合がある。
【００１７】
（第１の実施形態）
図１は、第１の実施形態を示すブロック図である。キャッシュ装置は、キャッシュ１と、アクセス密度変動分析手段２と、キャッシュ保持優先度設定手段３と、キャッシュデータ制御手段４と、を有している。キャッシュ１は、記憶装置のデータを一時的に保持する。アクセス密度変動分析手段２は、記憶装置に対するアクセスを監視し前記アクセスの密度変動を分析する。キャッシュ保持優先度設定手段３は、アクセス密度変動分析手段の分析結果に基づいてキャッシュに保持するデータの優先度を設定する。キャッシュデータ制御手段４は、優先度に基づいて前記キャッシュに保持されたデータを配置を制御する。
【００１８】
以上の構成により、アクセス密度の変動に応じた優先度をデータに設定し、データをキャッシュに保持することができる。
【００１９】
（第２の実施形態）
第１の実施形態のキャッシュ装置を用いて、ストレージシステムを構成することができる。図２は、本実施の形態のストレージシステムを示すブロック図である。ストレージシステムは、記憶デバイス１００と、キャッシュ装置２００と、ストレージ制御装置３００と、を有する。なお、図２では記憶デバイス１００は１つしか描いていないが、複数であってもよい。
【００２０】
記憶デバイス１００は、データを永続的に記憶する。具体的には、磁気ディスク、光学ディスクや、これらをアレイ化したディスクアレイなどとすることができる。なお、本実施の形態は、記憶デバイスの記憶方式には制限されない。
【００２１】
キャッシュ装置２００は、アクセス密度変動分析部２１０と、キャッシュ保持優先度設定部２２０と、データ配置制御部２３０と、キャッシュ２４０と、を有している。
【００２２】
キャッシュ２４０は、記憶デバイス１００よりアクセス性能が高く、一時的にデータを保持する記憶装置である。例えば、不揮発性メモリを用いたＳＳＤ（ｓｏｌｉｄ  ｓｔａｔｅ  ｄｒｉｖｅ）を用いることができる。ただし、これに限られるものではない。
【００２３】
アクセス密度変動分析部２１０は、所定の単位時間におけるアクセス数をアクセス密度としてカウントし、その変動を分析する。分析により、定期的にアクセス密度が高くなる時間帯がある等の、アクセス密度変動の傾向を把握することができる。
【００２４】
キャッシュ保持優先度設定部２３０は、アクセス密度変動分析部２２０の分析結果に基づいて、キャッシュに保持するデータに対して、その保持を続ける優先度を設定する。
【００２５】
データ配置制御部２３０は、キャッシュ保持優先度設定部２２０が設定した優先度に従ってキャッシュ２１０にデータを配置する。その配置は、例えば優先度の高いものから低いものが順番に並ぶようにする。
【００２６】
本実施の形態の動作について説明する前に、本実施の形態が解決する問題について説明する。
【００２７】
近年、仮想マシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ、ＶＭ）やデスクトップ仮想化（Ｖｉｒｔｕａｌ  Ｄｅｓｋｔｏｐ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ、ＶＤＩ）の導入が進んでいる。このような環境では、特定の時間にアクセスが集中するという問題がある。図２はアクセス密度の時間変動の一例を表すグラフである。この例では、８：２０過ぎから８：５０前の時間帯に、アクセスが集中するログオンストームの状態になっている。このような状況は、例えば、平日の始業時の同じ時間帯に定期的に発生する。
【００２８】
前述したように、一般的な技術では、キャッシュ装置は、短期間におけるアクセス頻度についてキャッシュに保持するデータの最適化を行っている。そして、上述のような、所定期間におけるアクセスの総量、すなわち密度の変動についてはキャッシュ装置が解決する課題とはしていない。本実施の形態は、上記のログオンストームのような、アクセス密度の急上昇によるパフォーマンス低下の改善に、キャッシュ装置を積極的に利用するものである。
【００２９】
次に、ストレージシステムにおけるキャッシュ装置の動作について説明する。図４は、キャッシュ装置の動作を示すフローチャートである。
【００３０】
まず、アクセス密度変動分析部がアクセス密度変動を分析する（Ｓ１）。そして、例えば、アクセス密度が急増する時間帯と、その時にアクセスされる記憶装置の領域を、分析結果として抽出する。具体的には、図３のようなアクセス密度の変動からは、毎日８：２０から８：５０の間にアクセス密度が急増するといった分析結果を得る。
【００３１】
次に時間帯ごとにデータに付与する係数として重みａを設定する（Ｓ２）。次にストレージシステムが、キャッシュに保持されていないデータへのアクセスを受け付けると、キャッシュ装置は当該データを新規にキャッシュに保持する（Ｓ３）。このとき、最も優先度の低いデータをキャッシュから破棄し、新規に保持するデータに重み係数ａを付与してキャッシュの先頭（最も優先度が高い位置）に保持する（Ｓ４）。以降、キャッシュ保持優先度設定の定義済み処理を行う（Ｓ５）。次に、データ配置制御部がＳ５で設定された優先度の順にキャッシュにデータを配置する（Ｓ６）。
【００３２】
次にＳ５のキャッシュ保持優先度設定の動作の一例にについて説明する。ここでは、優先度を累積重みで定量化する方法について述べる。累積重みとは、その大きさで優先度を数値化したものである。そして累積重みは、それぞれのデータに付与され、以下の手順で更新されるものとする。
【００３３】
まず、優先度設定部が、アクセス密度変動分析結果に基づいて重み係数ａを決定する。重み係数ａは、ａ≧１として、アクセス密度が高い時間帯で大きくなり、アクセス密度が低い時間帯で小さくなるように設定する。
【００３４】
まず、キャッシュに未保持のデータにアクセスがあり、新規にキャッシュに保持されるときに、未保持の時の累積重みを１として、保持した段階で１×ａ＝ａを初期値として付与する。
【００３５】
次に、キャッシュに保持中のデータにアクセスがあったら、現在の累積重みにａを乗じた値で累積重みを更新する。
【００３６】
上記の動作をフローチャートで示すと図５のようになる。まず外部からのアクセス要求により、キャッシュに保持中のデータへのアクセスを受付ける（Ｓ５１）。当該データへのアクセスがあると、キャッシュ保持優先度設定部は、当該データが持つ元の累積重みに重み係数ａを乗じた値を算出し、これを新しい値として累積重みを更新する（Ｓ５２）。以上により、１回のアクセスによる累積重みの更新が完了する。
【００３７】
上記の動作によれば、データにアクセスがある度に累積重みが増加するため、アクセスがあればあるほどキャッシュ保持優先度が高くなる。
【００３８】
ここで、アクセス密度変動分析で高密度（高負荷）と判定された時間帯について考える。まず、この時間帯にアクセスされるデータには大きな重み係数が付与されている。さらに当該データはこの時間帯に繰り返しアクセスを受け、その度に累積重みが増加する。その結果、当該データの累積重みは非常に大きくなり、二次キャッシュ上に保持する期間が非常に長くなる。他方、この時間帯にアクセスを受けないデータは、累積重みが小さいためキャッシュから優先的に破棄される。上記の動作により、特定の時間帯に高頻度のアクセスが発生するデータは当該時間帯でのキャッシュヒット率が高くなり、低速の記憶デバイスにアクセスせずにデータをホストへ出力できる。こうして、ストレージシステムの性能低下を抑制することが可能になる。
【００３９】
なお、上記では重み係数をアクセスの度に乗じる算出方法を例示したが、アクセス回数が増えるごとに優先度が高くなるような他の計算方法で優先度を数値化しても良い。
【００４０】
以上、説明したように、本実施の形態によれば、定期的にアクセス密度が急増する時間帯にアクセスされるデータのキャッシュヒット率を高くすることができる。その結果、上記の時間帯におけるストレージシステムのパフォーマンスを大幅に向上することができる。
（第３の実施形態）
本実施の形態では、キャッシュ装置の構成と動作の具体例について説明する。
【００４１】
図６は、キャッシュ内のデータ配置を示す概念図である。ここでは、キャッシュが一次キャッシュ２４１、二次キャッシュ２４２の階層構造を有しているとしている。一次キャッシュ２４１はＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）で動作し、二次キャッシュ２４２は、第２の実施形態の累積重みによる優先度設定にしたがって動作する。
【００４２】
データにアクセスがあると、当該データは、一次キャッシュ２４１の先頭に配置される。図６では、アクセスが新しい順番にＨ、Ｇ，Ｆの順でデータが配置されている。この配置はＦＩＦＯで行われ、各データの累積重みは無視される。
【００４３】
一次キャッシュ２４１から追い出されたデータは二次キャッシュ２４２に保持される。二次キャッシュ２４２では、データは累積重みによって優先順付されて保持される。図６では、累積重みにしたがって、データＡ、Ｃ、Ｂ、Ｅ、Ｄ、・・・ＺＺの順で並んでいる。この場合、次に新しいデータが保持されるときの追い出し対象はＺＺである。
【００４４】
図７は重み係数の一設定例を示す表である。この例では、論理ディスクごとに各時間帯における重み係数が設定されている。この例では論理ディスク００においては、０８：２０で重み係数が１から２に切り替わり、０８：２０〜０８：３０では２となっている（その他の時間帯は図示なし）。０８：２０で重み係数が１から２に切り替わるのは、例えば図３のようなアクセス密度の急増を反映したものである。また論理ディスク１０も同様である。なお、ここでは、論理ディスク００と論理ディスク１０に同じ重み係数を設定しているが、異なる値とすることもできる。論理ディスクあるいは記憶デバイスを区切った領域に分けて別々に重み係数を設定しても良い。また、特定のホストからのアクセスに対し、大きな重み係数を設定しても良い。例えば、高速なレスポンスを保証するライセンスを導入しているホストに対して、大きな重み係数を設定することができる。これにより、高速なレスポンスのサービスを提供することが可能である。
【００４５】
次にデータの配置動作の具体例について説明する。ここでは、重み係数が２の時間帯の動作であるとする。図８（ａ）は、キャッシュ内の初期のデータ配置である。ここでキャッシュに無く、記憶デバイス１００に格納されたデータＫにアクセスがあると、データＫは図２（ｂ）のように重み係数２を付加されて一次キャッシュ２４１の先頭に配置される（図の実線矢印）。一方、二次キャッシュ２４２の中で最も優先順位の低いＺＺが追い出されて記憶デバイス１００に格納される（図の点線矢印）。
【００４６】
図８（ｂ）の状態から、一次キャッシュ内のデータＨにアクセスがあると、元の累積重みに重み係数２を乗じ、１６×２＝３２を累積重みとして一次キャッシュ２４１の先頭に配置される（図９（ａ））。次に二次キャッシュ２４２内のデータＡにアクセスがあると、元の累積重みに重み係数２を乗じ、６４×２＝１２８を累積重みとして一次キャッシュ２４１の先頭に配置される（図９（ｂ））。一方一次キャッシュから追い出されたデータＧは、累積重みが２であるため、二次キャッシュ２４２内で累積重みが１６のデータＢの下に配置される。
【００４７】
以上に例を示したように、本実施の形態によれば、アクセス密度の高い時間帯にアクセスを受けたデータが、二次キャッシュにとどまりやすくなる。このため定期的にアクセス密度が高くなる場面において、二次キャッシュのデータを利用できる確率が上がり、パフォーマンスを向上することができる。
【００４８】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上記実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【００４９】
１    キャッシュ
２    アクセス密度変動分析手段
３    キャッシュ保持優先度設定手段
４    キャッシュデータ制御手段
１００    記憶デバイス
２００    キャッシュ装置
２１０    アクセス密度変動分析部
２２０    キャッシュ保持優先度設定部
２３０    データ配置制御部
２４０    キャッシュ
２４１    一次キャッシュ
２４２    二次キャッシュ
３００    ストレージ制御装置
【図１】
2017058904.tif 000003
【図２】
2017058904.tif 000004
【図３】
2017058904.tif 000005
【図４】
2017058904.tif 000006
【図５】
2017058904.tif 000007
【図６】
2017058904.tif 000008
【図７】
2017058904.tif 000009
【図８】
2017058904.tif 000010
【図９】
2017058904.tif 000011