JP2014010604A - ストレージ装置とプログラムと方法 - Google Patents

ストレージ装置とプログラムと方法 Download PDF

Info

Publication number
JP2014010604A
JP2014010604A JP2012146581A JP2012146581A JP2014010604A JP 2014010604 A JP2014010604 A JP 2014010604A JP 2012146581 A JP2012146581 A JP 2012146581A JP 2012146581 A JP2012146581 A JP 2012146581A JP 2014010604 A JP2014010604 A JP 2014010604A
Authority
JP
Japan
Prior art keywords
intermediate storage
capacity
cache
partition
storage function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012146581A
Other languages
English (en)
Inventor
Shugo Ogawa
周吾 小川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2012146581A priority Critical patent/JP2014010604A/ja
Publication of JP2014010604A publication Critical patent/JP2014010604A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】資源の増加、オーバーヘッドの増加を抑制しながら、階層中間記憶機能の中間記憶領域の容量を、アクセス特性に応じて、性能を向上させるように動的に決定可能とする。
【解決手段】ストレージ装置2は、記憶媒体2−1と複数の中間記憶領域を備えた上位中間記憶機能2−2と複数の中間記憶領域を備えた下位中間記憶機能2−3と、アクセス要求に対して中間記憶機能及び下位中間記憶機能の前記中間記憶領域でのヒット情報に基づき上位中間記憶機能の中間記憶領域を増加させた場合と容量を減少させた場合の一方又は両方におけるヒット情報を収集する中間記憶アクセス情報収集部2−4と、中間記憶アクセス情報収集部2−4で収集されたヒットに関する情報に基づき、上位中間記憶機能2−2と下位中間記憶機能2−3の中間記憶領域の容量を決定する中間記憶領域容量決定部2−5を備えている。
【選択図】図18

Description

本発明はストレージ装置とプログラムと方法に関する。
情報通信技術の進化とその適用分野の拡大に伴い、情報処理システムで扱われるデータ量は増加の一途を辿っている。情報処理システムの種類、数の増加に伴い、データを格納するために多くのストレージが必要とされ、情報処理システムを維持するために多数のストレージの管理が必要となる。このため、ストレージ管理の効率化が求められる。
ストレージ管理の効率化のために、例えば複数システムのデータを単一のストレージに集約するシステムが用いられている。
単一のストレージに複数システムのデータを格納する場合、ストレージには、大容量のデータの格納と、複数のシステムからの大量のアクセスに対応可能とするために、
・大容量化と、
・高性能化と、
が要求される。
近時、HDD(Hard Disk Drive)の記憶容量は大容量化している。記憶媒体としてHDDを用いることで、記憶容量の大容量化の要求に対応することは可能である。また、ストレージを構成する記憶媒体の数の増減等により、要求される記憶容量に柔軟に対応することが可能である。
ストレージの高性能化に対処するためにキャッシュ(キャッシュメモリ)が用いられている。ストレージへの読み出しアクセスの結果、キャッシュにアクセス対象のデータが存在しない(キャッシュミス)時には、ストレージからデータが読み出され、該データはキャッシュに格納され、以降のアクセスに対して、キャッシュ上にアクセス対象のデータが存在する場合(ヒット時)、該データはキャッシュから読み出される。この場合、ストレージへの読み出しアクセスは行われない。データの更新は、該データがキャッシュ上にある場合、キャッシュ上でデータを更新し、例えば、キャッシュの当該更新タイミングから遅れてストレージの対応データの更新が行われる(ライトバック)。このように、キャッシュは、記憶媒体に格納されたデータの複製または更新を格納する。キャッシュにアクセス頻度の高いデータを格納することで、性能の低いHDD等の記憶媒体へのアクセスを削減し、性能向上を図る。なお、ストレージのキャッシュは、例えばDRAM(Dynamic Random Access Memory)又はその他等で構成される
アクセス頻度の高いデータの格納は、キャッシュ上のデータ(該データを含むページ)を置換するアルゴリズムによって実現される。例えばLFU(Least Frequently Used)アルゴリズムは、キャッシュに新規データ(該データを含むページ)を格納する場合に、アクセス頻度が最も低いデータ(該データを含むページ)と置き換えを行うことでアクセス頻度が最も低いデータ(該データを含むページ)をキャッシュから追い出し、新規データを格納する。キャッシュにおいて、最後のアクセスからの経過時間が長いデータほど、アクセス頻度が低いデータであるという想定のもと、キャッシュにおいて、アクセス頻度の低いページを優先的に新規ページと置き換えることで、キャッシュには、アクセス頻度の高いデータが格納されることになる。ページは、キャッシュにおけるデータ管理の参照単位であり、ページ単位で置換が行われる(例えば、アクセス頻度が最低のページの追い出し、新規ページの格納等)。
ストレージにおいて階層キャッシュが用いられている。例えばDRAMによるキャッシュを上位キャッシュ(「1次キャッシュ」ともいう)とし、HDDよりも高速であり、キャッシュとして主に用いられるDRAMよりも低速な記憶媒体を下位のキャッシュ(「2次キャッシュ」ともいう)とする。HDDより高性能な(アクセスが高速な)記憶媒体として、例えばSSD(Solid State Drive)が下位のキャッシュ(2次キャッシュ)として用いられる。SSDは、一般に、NANDフラッシュメモリから構成される。NAND型フラッシュメモリは、HDDよりも容量は小さいものの、DRAMと比べて、容量が大きく、安価である。
一般に、下位キャッシュには、上位キャッシュに格納しきれなくなったデータが格納される。すなわち、上位キャッシュから追い出されたページが下位キャッシュに格納される。なお、下位キャッシュが上位キャッシュの内容を全て含む構成(Inclusive型)と、上位キャッシュの内容が下位キャッシュに含まれない場合を許容する構成(Exclusive型)がある。
上位キャッシュに格納しきれなくなったデータ(上位キャッシュから下位キャッシに追い出されたデータ)に対して、再度、アクセスを行う場合、下位キャッシュにアクセスすることで、低速なHDD等の記憶媒体に対するアクセスの発生を防ぎ、アクセス性能を向上させる。
上位キャッシュでミスしたが、下位キャッシュでヒットしたデータ(該データを含むページ)は、再び、上位キャッシュに格納される。上位キャッシュにデータが格納しきれなくなったデータ(該データを含むページ)は上位キャッシュから追い出され、下位キャッシュに格納する、という一連の動作を繰り返す。この結果、上位キャッシュには、アクセス頻度の高いデータが格納される。下位キャッシュには、上位キャッシュに次いで、アクセス頻度の高いデータが格納される。このようにして各キャッシュ階層が効率的に利用される。
なお、上位キャッシュでミスしたデータを下位キャッシュから読み込んだ時点では、該データは上位キャッシュと下位キャッシュに含まれる。この状態で、下位キャッシュから該データを含むページが追い出されたときに、Inclusive型では上位キャッシュの該データを無効化する。一方、Exclusive型では、上位キャッシュの該データを無効化せずにそのまま残す。特に制限されないが、上位キャッシュのデータを、下位キャッシュにライトバック(WRITE BACK)する場合、下位キャッシュにページが確保され該ページにライトバックする。
複数のシステムのデータを単一ストレージに格納した場合、複数のシステム間で共有されるキャッシュの利用効率が低下することが知られている。複数のシステム(プロセス、スレッド)間でストレージに対して異なるデータに並列にアクセスが行われる。また1回のアクセスあたりのデータ量が増加する。この結果、キャッシュ競合の発生が増加し、ヒット率の低下(キャッシュミスの増加)により、ページの入替えが多発し(スラッシング)、キャッシュの利用効率の低下、ストレージの性能低下が発生する。
キャッシュの競合を防ぐ手法として、キャッシュ・パーティショニング(単に「パーティショニング」ともいう)がある(例えば特許文献1参照)。パーティショニングとは、共有キャッシュをプロセス(スレッド)毎の占有領域であるパーティションに分割(区分)することで、プロセス(又はスレッド)間での競合を防ぐものである。
ストレージのキャッシュのパーティショニングとは、多くの場合、ボリューム(記憶領域の管理単位をなす一定のデータセットであり、「論理ボリューム」ともいう)などを単位として、キャッシュ(共有キャッシュ)を、ボリュームの占有領域であるパーティションに分割(区分)することをいう。パーティショニングを用いない場合、あるボリュームへのアクセスに対してキャッシュミスにより、当該アクセスに対応するデータのキャッシュへの登録にあたり、キャッシュに格納されている他のボリュームのデータを追い出しキャッシュの競合を発生させることになる。
キャッシュをパーティションニングした場合、あるボリュームへのアクセスに対して当該ボリュームに対応するパーティションでミスした時、該パーティション内でデータ(ページ)の置換えが行われ、別のボリュームの占有領域に対応する別のパーティションのデータを追い出すことは無い。このため、キャッシュの競合が回避される。
なお、特許文献1には、キャッシュメモリを複数のパーティションに論理的に分割し、それぞれのパーティションは複数の論理ボリュームに対して割り当てられ、複数のパーティションはセグメントサイズが独立して調整可能なように構成され、パーティションのセグメントサイズを調整することで、キャッシュメモリの性能チューニングを行うようにしたストレージシステムが開示されている。
非特許文献1、2、3には、各パーティションに対するアクセス分布から、各パーティションの容量増減に対するキャッシュヒット数の変化を推測することで、キャッシュ全体でヒット数が最大となる各パーティションの容量を算出する手法が開示されている。
特許第4819369号公報
Stone et al., "Optimal Partitioning of Cache Memory", IEEE Transactions on Computers, Vol. 41, No. 9, pp. 1054-1068, 1992 Suh et al., "Dynamic partitioning of shared cache memory", Journal of Supercomputing, Vol. 28, No. 1, pp. 7-26, 2004 Qureshi et al., "Utility-Based Cache Partitioning: A Low-Overhead, High-Performance, Runtime Mechanism to Partition Shared Caches", Proceedings of the 39th Annual International Symposium on Microarchitecture, pp. 423-432, 2006
以下に関連技術の分析を与える。
階層キャッシュにおいて、上位又は最上位のキャッシュのパーティションの容量をアクセス性能が向上するように動的に決定するには、キャッシュのヒット/ミス情報等、アクセスをモニタする回路等、必要なハードウェア/ソフトウェア・リソースが増大する。また、上位又は最上位キャッシュは、高いアクセス性能を実現するために限界に近い速度での動作が要求されるため、キャッシュにおけるアクセスのモニタ等のオーバーヘッドは最小限とすべきである。
したがって、本発明の目的は、必要な資源の増加、オーバーヘッドを抑制しながら、階層キャッシュ等の階層中間記憶機能の中間記憶領域の容量を、アクセス特性に応じて、性能を向上させるように動的に決定可能とする装置、方法、プログラムを提供することにある。
本発明によれば、データを格納する記憶媒体と、
前記記憶媒体における物理的又は論理的な単位領域に対応する少なくとも1つの中間記憶領域を備えた上位中間記憶機能と、
前記上位中間記憶機能の前記中間記憶領域に対応する少なくとも1つの中間記憶領域を備えた下位中間記憶機能と、
アクセス要求に対して、前記上位中間記憶機能及び前記下位中間記憶機能の前記中間記憶領域でのヒット情報に基づき、前記上位中間記憶機能の前記中間記憶領域を増加させた場合と、前記上位中間記憶機能の前記中間記憶領域の容量を減少させた場合の一方又は両方におけるヒット情報を収集する中間記憶アクセス情報収集部と、
前記中間記憶アクセス情報収集部で収集された前記ヒット情報に基づき、少なくとも前記上位中間記憶機能の前記中間記憶領域の容量を決定する中間記憶領域容量決定部と、
を備えたストレージ装置が提供される。
本発明によれば、データを格納する記憶媒体と、前記記憶媒体における物理的又は論理的な単位領域に対応する少なくとも1つの中間記憶領域を備えた上位中間記憶機能と、前記上位中間記憶機能の前記中間記憶領域に対応する少なくとも1つの中間記憶領域を備えた下位中間記憶機能を備えたストレージの制御方法であって、
アクセス要求に対して、前記上位中間記憶機能及び前記下位中間記憶機能の前記中間記憶領域でのヒット情報に基づき、前記上位中間記憶機能の前記中間記憶領域を増加させた場合と、前記上位中間記憶機能の前記中間記憶領域の容量を減少させた場合の一方又は両方におけるヒット情報を収集する中間記憶アクセス情報収集工程と、
前記中間記憶アクセス情報収集工程で収集された前記ヒット情報に基づき、少なくとも前記上位中間記憶機能の前記中間記憶領域の容量を決定する中間記憶領域容量決定工程と、
を含むストレージ制御方法が提供される。
本発明によれば、データを格納する記憶媒体と、前記記憶媒体における物理的又は論理的な単位領域に対応する少なくとも1つの中間記憶領域を備えた上位中間記憶機能と、前記上位中間記憶機能の前記中間記憶領域に対応する少なくとも1つの中間記憶領域を備えた下位中間記憶機能を備えたストレージを構成するコンピュータに、
アクセス要求に対して、前記上位中間記憶機能及び前記下位中間記憶機能の前記中間記憶領域でのヒット情報に基づき、前記上位中間記憶機能の前記中間記憶領域を増加させた場合と、前記上位中間記憶機能の前記中間記憶領域の容量を減少させた場合の一方又は両方におけるヒット情報を収集する中間記憶アクセス情報収集処理と、
前記中間記憶アクセス情報収集処理で収集された前記ヒット情報に基づき、少なくとも前記上位中間記憶機能の前記中間記憶領域の容量を決定する中間記憶領域容量決定処理と、
を実行させるプログラムが提供される。
本発明によれば、必要な資源の増加、オーバーヘッドの増加を抑制しながら、階層中間記憶機能の中間記憶領域の容量を、アクセス特性に応じて性能を向上させるように動的に決定可能としている。
一実施形態の構成を例示する図である。 一実施形態を例示する図である。 一実施形態の上位キャッシュ、下位キャッシュの構成を例示する図である。 一実施形態におけるマッピング情報を例示する図である。 一実施形態における上位ディレクトリ情報の内容を例示する図である。 一実施形態における下位ディレクトリ情報の詳細を例示する図である。 一実施形態におけるパーティションテーブルを例示する図である。 一実施形態における容量別ヒット頻度テーブルを例示する図である。 一実施形態におけるアクセス要求テーブルを例示する図である。 一実施形態におけるアクセス要求処理の手順を例示するフローチャートである。 一実施形態におけるキャッシュヒット頻度の計測処理の手順を示すフローチャートである。 一実施形態におけるキャッシュヒット頻度の計測処理の手順を示したフローチャートである。 一実施形態における記憶階層間のページ配置を行う手順を示したフローチャートである。 一実施形態における記憶階層間のページ配置を行う手順を示したフローチャートである。 一実施形態における上位パーティションの容量の決定を行う手順を示したフローチャートである。 一実施例を例示する図である。 一実施例における初期状態の記憶階層毎のヒット数分布を例示する図である。 一実施例における容量別ヒット頻度テーブルを例示する図である。 一実施例におけるパーティション容量最適化後の記憶階層毎のヒット数分布を例示する図である。 本発明の実施形態を例示する図である。 本発明の実施形態を例示する図である。 (A)、(B)は階層キャッシュと置換優先度を模式的に説明する図である。
発明の実施形態について説明する。キャッシュがパーティショニングされる場合、各パーティションでは、互いに独立してページの置換(replacement)が行われる。各ボリュームに対するアクセスは、該ボリュームに格納されたデータの種類、用途によって異なる。そのため、通常、ボリュームに対するアクセス頻度はボリューム間で異なる。
各ボリュームに対して各々の占有領域であるパーティションを割り当てる場合、キャッシュの使用効率を向上するために、各ボリュームへのアクセスパターンに応じて、各パーティションの容量を決定するようにしてもよい。例えば、アクセス頻度の高いボリュームとアクセス頻度の低いボリュームに対して、キャッシュ上でパーティションを割り当てる場合、アクセス頻度の高いボリュームに対応するパーティションの容量は、アクセス頻度の低いボリュームに対応するパーティションの容量よりも、大きく設定する。
複数のパーティションに区分されたキャッシュにおいて、ミス時のデータの置換は、ボリュームに対応するパーティション内で、他のボリュームに対応するパーティションとは独立して行われる。その結果、キャッシュにおいて、パーティションの容量の設定が適切でない場合が生じる。例えばパーティション容量が必要量を満たさず、容量不足によって、ボリューム内のアクセス頻度の高いデータを格納することができなくなるパーティションが発生する。逆に、パーティション容量が過剰であるため、アクセス頻度の低いデータを格納するパーティションも発生する。このように、パーティションに区分されたキャッシュにおいて、アクセス頻度が異なる各ボリュームに対する、パーティションの容量の設定の仕方如何で、アクセス頻度の高いデータが必ずしも優先的に格納されないという事態が発生し、キャッシュの使用効率が低下する場合がある。
さらに、キャッシュの使用効率を最大化するパーティションの最適な容量は、
・対応するボリュームに格納されたデータの内容、及び、
・ボリュームにアクセスを行うシステム(例えばホストで実行されるアプリケーション等の種別)、
の組み合わせ如何等によって異なる。また、同一ボリュームにおいても、データの処理内容が変わると、アクセスのパターンが変化する場合がある。
その結果、キャッシュにおけるパーティションの最適容量も、アクセス状況等に応じて変化することになる。キャッシュのパーティションの容量の設定値を固定した場合、アクセス状況等の動的な変化に追従することができず、アクセス性能の低下を招くことになる。
一般にキャッシュのパーティションの容量を最適に維持するためには、
・対応するアクセスの分布を動的に取得し、
・取得した情報から動的に各パーティションの容量を決定する、
必要がある(例えば非特許文献1、2、3)。
キャッシュ上の各パーティションの容量の増減に対するヒット数の変化を推測するには、アクセスの監視(モニタ)、履歴の収集が必要である。
キャッシュ上のパーティションの現在の設定容量Cを、ΔC減少させた場合のパーティションでのヒット数は、例えば容量減少分ΔCに対応するヒット数の差分Δhを、容量Cのパーティションでのヒット数hから差し引くことで推測することができる。
キャッシュのページ置換アルゴリズムとして、最後に参照されてから最も長い時間が経過したページを追い出すLRU(Least Recently Used)を用いた例に即して説明する。
LRUアルゴリズムで制御されるキャッシュでは、キャッシュ(パーティション)が一杯になったとき、最後のアクセスからの経過時刻が長いページほど、置換の優先順位が高く、優先的に、新しいページと置換される。
よって、キャッシュのパーティションの容量が減少した場合、置換の優先順位が高いページは、キャッシュの当該パーティションから追い出され、キャッシュ上には存在しない。置換の優先順位が高いページに含まれるデータに対するアクセスは、パーティションの容量が減少した場合には、ミスとなる。
つまり、キャッシュにおけるページの置換がLRUで管理される場合、置換の優先順位(なお、本明細書では、優先順位を数値化したものを「置換優先度」という)を参照することで、パーティションの容量が減少した場合のヒット数を推測することができる。
一方、キャッシュのパーティションの容量が増加した時のヒット数を推測する場合、パーティション容量の増加によって、キャッシュのミス(パーティション容量を増加する前のミス)がヒットに変化するか(パーティション容量を増加した後にヒットに変化するか)について判定することが必要である。すなわち、キャッシュのパーティションにおいてミスが発生した時に、当該パーティションの容量が増加したと仮定した場合には、ミスではなく、ヒットするものであるか判定を行う必要がある。
ところで、アクセス要求に対してキャッシュミスが発生したということは、アクセス対象のデータはキャッシュ上には存在しない、ということである。キャッシュ上に存在しないデータについて、ヒットの判定を行うためには、キャッシュ上に存在しないデータに関してヒット判定を行うための仕組み(資源)を実装することが必要である。
このように、キャッシュの効率を最大化するように、各パーティションの容量を最適化するためには、余分な資源(ハードウェア、ソフトウェア資源)の実装が必要とされる。
具体的には、キャッシュ上のパーティションの容量の増加に対するヒット数の変化を推測するために、パーティションから置換された各データ(ページ)についても、ヒット判定に使用するアドレス情報を管理する必要がある。例えば上位キャッシュのパーティションから下位キャッシュのパーティションに追い出されたページに関して、下位キャッシュに追い出されたページを、上位キャッシュのパーティションの容量の増加分と看做してヒット判定を行うために、アドレスを管理する必要がある。なお、アクセス対象のデータがキャッシュに存在するか否かの判定(ヒット/ミス判定)は、例えば、アクセス対象のデータのアドレスが、キャッシュに現在格納されているページのアドレス範囲(先頭アドレスとサイズで確定される)にあるか比較することで行われる。
また、データが、現在の設定値よりも大容量のパーティションに格納されている場合を仮定して、キャッシュにおけるページの置換の優先順位情報(置換優先度)を制御する必要がある。
さらに、キャッシュ上の各パーティションの容量の増加に対するヒット数の変化の測定は、アクセス毎に、キャッシュにおける処理(読み出し/複製/更新)の後に、実行する必要がある。このため、アクセス毎にオーバーヘッドが発生する。
ソフトウェアを用いて前記処理(パーティションの容量の増減に対するヒット数の変化の測定処理等)を実現する場合、オーバーヘッドは、レイテンシ(例えば読み出しコマンド入力からデータ出力までの時間)の増加につながる。
本発明の実施形態によれば、必要な資源の増加、オーバーヘッドの増加を抑制しながら、階層キャッシュのパーティション容量を、アクセス特性に応じて、性能を向上させるように動的に決定可能としたものである。
<基本構成1>
図17を参照すると、ストレージ2(ストレージ装置、システム)は、データを格納する記憶媒体2−1と、
記憶媒体2−1における物理的又は論理的な単位領域(例えばボリューム)に対応する少なくとも1つの中間記憶領域を備えた上位中間記憶機能2−2と、
上位中間記憶機能2−2の前記中間記憶領域(例えばパーティション)に対応する少なくとも1つの中間記憶領域(例えばパーティション)を備えた下位中間記憶機能2−3と、
アクセス要求(Read/Write)に対して、上位中間記憶機能2−2及び下位中間記憶機能2−3の前記中間記憶領域(パーティション)でのヒット情報に基づき、前記上位中間記憶機能2−2の前記中間記憶領域を増加させた場合と、前記上位中間記憶機能2−2の前記中間記憶領域の容量を減少させた場合の一方又は両方におけるヒット情報を収集する中間記憶アクセス情報収集部2−4と、
中間記憶アクセス情報収集部2−4で収集されたヒットに関する情報に基づき、少なくとも上位中間記憶機能2−2の前記中間記憶領域の容量を決定する中間記憶領域容量決定部2−5とを備える。中間記憶アクセス情報収集機能2−4は、前記アクセス要求に対する前記下位中間記憶機能2−3の前記中間記憶領域(パーティション)でのヒット情報に基づき、前記アクセス要求に対して前記上位中間記憶機能2−2でヒットするのに必要な前記上位中間記憶機能2−2の前記中間記憶領域(パーティション)の容量を算出し、前記上位中間記憶機能2−2において算出された容量の前記中間記憶領域でヒットしたものとして集計する。中間記憶アクセス情報収集部2−4は、前記アクセス要求に対する前記上位中間記憶機能2−2の前記中間記憶領域でのヒット情報に基づき、前記アクセス要求に対して前記上位中間記憶機能2−2でヒットするのに必要な前記上位中間記憶機能2−2の前記中間記憶領域の容量を算出し、前記上位中間記憶機能2−2において前記算出された前記容量の前記中間記憶領域でヒットしたものとして集計する。図17において、上位中間記憶機能2−2と下位中間記憶機能2−3は、アクセス性能(速度)が記憶媒体2−1よりも高速とされる。上位中間記憶機能2−2と下位中間記憶機能2−3は、同一の記憶装置の異なる記憶領域で構成してもよい。あるいは、上位中間記憶機能2−2と下位中間記憶機能2−3を別々の記憶装置で構成してもよい。この場合、アクセス性能(速度)に関して、上位中間記憶機能2−2が下位中間記憶機能2−3を上回る構成としてもよい。
中間記憶アクセス情報収集部2−4は、上位中間記憶機能2−2上の中間記憶領域(パーティション)でミスし、下位中間記憶機能2−3の対応する中間記憶領域(パーティション)でヒットした場合、下位中間記憶機能2−3の前記中間記憶領域でヒットした箇所(ページ)の情報(例えば置換優先度情報)を用いて、前記アクセス要求に対して上位中間記憶機能2−2の中間記憶機能でヒットするのに必要な中間記憶機能の容量又は容量増加分を算出し、上位中間記憶機能2−2において算出された前記容量、又は前記容量増加分増加させた前記中間記憶領域でのヒットとして集計する。すなわち、上位中間記憶機能2−2の中間記憶機能の容量を、実際には、増加させることなく、上位中間記憶機能2−2の中間記憶領域でのミス時に、下位中間記憶機能2−3の中間記憶領域でのヒット情報に基づき、上位中間記憶機能2−2の中間記憶領域の容量を増加させた場合におけるヒット頻度を算出するようにしてもよい。
中間記憶アクセス情報収集部2−4は、上位中間記憶機能2−2の前記中間記憶領域でヒットした場合、前記上位中間記憶機能2−2の前記中間記憶領域でヒットした箇所(ページ)の情報(置換優先度情報)を用いて、前記アクセス要求に対して前記上位中間記憶機能2−2の前記中間記憶機能でヒットするのに必要な前記中間記憶機能の容量又は容量減少分を算出し、前記上位中間記憶機能2−2において算出された前記容量、又は前記容量減少分減少させた前記中間記憶機能でヒットしたものとして集計するようにしてもよい。
中間記憶領域容量決定部2−5は、上位中間記憶機能2−2におけるヒット頻度がより大となるように、上位中間記憶機能2−2は、中間記憶領域の容量を決定するようにしてもよい。中間記憶領域容量決定部2−5は、上位中間記憶機能2−2の中間記憶領域の容量を決定するとともに、下位中間記憶機能2−3の対応する中間記憶領域の容量を決定するようにしてもよい。
上位中間記憶機能2−2、下位中間記憶機能2−3が、データを格納する1つ又は複数の記憶媒体2−1から、アクセス頻度の高いデータを選択的に格納するための記憶階層であり、データをアクセス頻度に応じて、前記上位中間記憶機能2−2、下位中間記憶機能2−3、及び、記憶媒体2−1に配置するようにしてもよい。
図17において、Readアクセス要求に対して、アクセス対象のデータが上位中間記憶機能2−2の中間記憶領域に格納されていれば(ヒット時)、上位中間記憶機能2−2の中間記憶領域から読み出されたデータがReadアクセス要求に応答として返される。アクセス対象のデータが上位中間記憶機能2−2の中間記憶領域に格納されていない場合(ミス時)、下位中間記憶機能2−3の対応する中間記憶領域に、アクセス対象のデータが格納されている場合(ヒット時)、下位中間記憶機能2−3から読み出された該データが、上位中間記憶機能2−2の中間記憶領域に書き込まれた上で、上位中間記憶機能2−2からReadアクセス要求に応答として返される。下位中間記憶機能2−3の中間記憶領域にアクセス対象のデータが格納されていない場合(ミス)、記憶媒体2−1の対応する単位領域(ボリューム)からデータを読み出し、下位中間記憶機能2−3に書き込んだ上で、上位中間記憶機能2−2を介して、Readアクセス要求に応答として返される。Writeアクセス要求のWriteデータは、上位中間記憶機能2−2の中間記憶領域に書き込まれたのち、下位中間記憶機能2−3の対応する中間記憶領域に書き込まれ(ライトバック)、つづいて、記憶媒体2−1の対応する単位領域(ボリューム)に書き込まれる。特に制限されないが、図17の構成は、上位中間記憶機能2−2の内容を下位中間記憶機能2−3が含む構成(Inclusive型)に適用可能である。
<基本構成2>
図18は、図17の別の形態を説明するための図である。図18の基本構成は、図17と同一であるが、図17のように、記憶媒体2−1からのReadデータ(該データを含むページ)を下位中間記憶機能2−3に一旦格納した上で上位中間記憶機能2−2に格納するのではなく、記憶媒体2−1から読み出したデータ(該データを含むページ)は、上位中間記憶機能2−2にのみ格納され、上位中間記憶機能2−2に格納しきれなくなったデータ(該データを含むページ)が、下位中間記憶機能2−3に格納される。Writeアクセス要求によるWriteデータは、上位中間記憶機能2−2に格納される。上位中間記憶機能2−2に格納しきれなくなったデータ(該データを含むページ)が下位中間記憶機能2−3に格納される。特に制限されないが、図18の構成は、上位中間記憶機能2−2の内容が下位中間記憶機能2−3に含まれない(下位中間記憶機能2−3は上位中間記憶機能2−2の内容を含まない)構成(Exclusive型)に適用可能である。
図17、図18において、前記上位中間記憶機能2−2と下位中間記憶機能2−3が、階層キャッシュの上位キャッシュ(最上位キャッシュ)(後述する実施形態における図2の22)と、下位のキャッシュ(後述する実施形態における図2の23)で構成してもよい。記憶媒体2−1は、後述する実施形態における図2の記憶媒体21で構成してもよい。中間記憶アクセス情報収集部2−4は、実施形態における図2の容量別ヒット頻度計測部26で構成してもよい。中間記憶領域容量決定部2−5は、実施形態における図2のパーティション容量決定部29で構成してもよい。
実施形態においては、それぞれが複数のパーティションに区分された複数階層のキャッシュを備えたストレージにおいて、下位キャッシュにおけるヒット情報を用いて、上位キャッシュにおけるパーティション容量の最適化を行う。
上位キャッシュのパーティションの容量の現在の設定値でヒットした場合、上位キャッシュの当該パーティション内でヒットしたページの置換の優先順位情報を基に、上位キャッシュのパーティションでヒットするためのパーティション容量(最低容量)を推測する。
上位キャッシュのパーティションでミスし、下位キャッシュの対応するパーティションでヒットした場合、下位キャッシュの当該パーティション内でヒットしたページの置換の優先順位情報を基に、上位キャッシュのパーティションでヒットするために必要な最低のパーティション容量(最低容量)を推測する。
上位、下位のキャッシュにおいて、キャッシュの管理単位(ページ)のサイズを共通とする。ページは、予め定められた一定サイズの連続記憶領域である。ページサイズを、複数層のキャッシュ間で共通化することで、階層キャッシュ間におけるページ単位での置換を可能としている。すなわち、例えばLRUに基づき、上位キャッシュのあるページの下位キャッシュへの追い出し、上位キャッシュに新規ページを格納する等、例えば上位、下位キャッシュ間(下位キャッシュ、記憶媒体間)において、ページ単位での置換を可能としている。
特に制限されないが、新規ページの格納は、上位キャッシュに対してのみ行う。下位キャッシュは、上位キャッシュから追い出されたページのデータのみを格納する。
上位、下位キャッシュにおける上記したページ格納方法により、複数階層のキャッシュに格納される新規ページについて、置換の優先順位は、常に同一となる。
さらに、上位キャッシュに格納される新規ページは、データが上位キャッシュのパーティション上に残留している場合、キャッシュの階層構成、及び、階層毎のパーティションの容量によらず、上位キャッシュに、常に同一の置換優先順位で格納される。例えばLRUを使用した場合、新規ページは、上位キャッシュに最低の置換の優先順位で格納される。なお、階層キャッシュの階層数は上位、下位の2層に限定されない。例えば3層以上のキャッシュでは、新規データはページ単位に最上位キャッシュに格納される。
複数階層のキャッシュについて、擬似的に単一のキャッシュと見做してデータを格納した場合に、格納されたデータ(を含むページ)の置換は、各階層のキャッシュの容量の合計に等しい容量を持つ単一のキャッシュにおける置換と、同様とされる。但し、下位のキャッシュは、上位のキャッシュの内容を含まないことが前提とされる。
例えば上位、下位の2階層以上のキャッシュにおいて、各キャッシュにおけるページの置換の優先順位は、各キャッシュの容量の合計容量の単一のキャッシュにおけるページの置換の優先順位と一致する。
<擬似的単一キャッシュ>
上位、下位キャッシュを擬似的に単一キャッシュと見做す仕組みについて図19(A)、図19(B)の模式図を参照して説明する。ページ置換のアルゴリズムとしてLRUを用いた場合、あるボリュームに対応する上位キャッシュのパーティションと、下位キャッシュのパーティションは、上位キャッシュのパーティション上のページを置換の優先順位の順に繋いだ線形リストのテイルに、下位キャッシュのパーティション上のページを置換の優先順位の順に線形に繋いだ線形リストのヘッドを、擬似的に結合した単一の線形リストと看做すことができる(図19(A)、図19(B)参照)。
なお、図19(A)の模式図において、各線形リストのヘッドは、置換の優先順位が最も低いMRU(Most Recently Used)のページを表し、テイルは置換尾優先順位が最も高いLRU(Least Recently Used)のページを表す。図19(A)を参照すると、上位キャッシュ、下位キャッシュのパーティションの複数のページ(パーティションのページ数は、上位キャッシュでは(m+1)、下位キャッシュでは(n+1))を、置換の優先順位情報(図19(A)の各数字は置換優先度を表す)を基に、線形リストにとして模式的に図示されている。キャッシュのページ置換において、置換優先度の値が大きいほど、優先的に追い出されるようにした例が示されている。上位キャッシュのパーティションのページ置換において、上位キャッシュの線形リストのテイルにある置換優先順位が最も高いページ(図19のm)が真っ先に追い出され、下位キャッシュの線形リストのヘッドに挿入される。下位キャッシュのパーティションの線形リストのテイルにあるページ(図19(A)の置換優先度n)は追い出される。新規データを含むページ(新規ページ)は、上位キャッシュのパーティションの線形リストのヘッド(置換優先順位が最も低い:最後に置換される)に挿入される。新規ページの挿入に伴い、上位キャッシュの線形リストにおいて、ページ置換前の元のページは1つ右にシフトし、置換優先度は適宜更新される。また、下位キャッシュの線形リストにおいて、元のページは1つ右にシフトし、その置換優先度も適宜更新される。
図19(B)は、図19(A)と同様、上位キャッシュ、下位キャッシュのパーティションの複数のページ(上位キャッシュではm+1枚のページ、下位キャッシュではn+1枚のページ)を、置換の優先順位情報を基に、線形リストにとして模式的に図示したものであるが、図19(A)とは異なり、キャッシュのページ置換において、置換優先度の値が小さいほど優先的に追い出される(置換優先度0は最優先で追い出される)ようにした例を説明する図である。図19(B)において、各線形リストのヘッドは、図19(A)と同様に、置換の優先順位が最も低いMRU(Most Recently Used)のページを表し、テイルは置換尾優先順位が最も高いLRU(Least Recently Used)のページを表す。上位キャッシュのパーティションのページ置換において、上位キャッシュの線形リストのテイルにある置換優先順位の最も高いページ(図19(B)の置換優先度=0のページ)が追い出され、下位キャッシュの線形リストのヘッドに挿入される。新規データを含むページ(新規ページ)が上位キャッシュのパーティションの線形リストのヘッド(置換優先順位が最も低い)に挿入される。また、下位キャッシュのパーティションの線形リストのテイルにあるページ(図19(B)の置換優先度0)は追い出される。上位キャッシュの線形リストにおいてページ置換前の元のページは右に1つシフトし、それぞれの置換優先度は適宜更新され、また下位キャッシュの線形リストにおいて、元のページは右に1つシフトし、それぞれの置換優先度も適宜更新される。
下位キャッシュのパーティションは、パーティション容量が増加した上位キャッシュのパーティションの領域と看做すことができる。上位キャッシュのパーティションの容量を増加させてヒット数を計測する時に、上位キャッシュのパーティションの容量増加分の記憶領域は、下位キャッシュの対応するパーティションにおける、前記容量増加分の記憶領域で賄われる。下位キャッシュのパーティションにおける前記記憶領域でのヒット数が、上位キャッシュのパーティションにおいて容量を前記容量増加分増加させた領域でのヒット数として集計される。例えば、下位キャッシュでヒットしたページの置換優先度情報から、上位キャッシュにおいて、パーティション容量を増加させた時のヒット数を測定(推測)することができる。
<上位キャッシュのパーティション容量増減時のヒット情報の算出>
例えば図19(A)において、上位キャッシュのパーティションでミスであるが、下位キャッシュの対応するパーティションでヒットした場合、下位キャッシュでヒットしたページの置換優先度がRの場合(ただし、Rは0≦R≦nの非負整数)、1ページのサイズ(容量)をPとすると、上位キャッシュの当該パーティションの容量が現在の設定値よりも少なくとも、(R+1)×P分増加していれば、アクセス対象のデータは、上位キャッシュの当該パーティションでヒットしていたはずである。すなわち、上位キャッシュのパーティションでミスし、下位キャッシュの対応するパーティションでヒットした場合、上位キャッシュにおいて、容量を、現在の設定値から、(R+1)×P分、増加させた容量とした場合の当該パーティションでのヒットとして集計する。なお、図19(A)において、前述したように、各線形リストのヘッドは、置換の優先順位が最も低いMRUのページを表し、テイルは置換尾優先順位が最も高いLRUのページを表す。
一方、図19(A)において、上位キャッシュのパーティションでヒットし、ヒットしたページの置換優先度がRの場合(0≦R≦m)、上位キャッシュのパーティションの容量が少なくとも(R+1)×Pあれば、ヒットしていたはずである。この場合、上位キャッシュのパーティション容量を(R+1)×Pとした場合における、上位キャッシュでのヒットとして集計する。
また図19(B)において、上位キャッシュのパーティションでミスであるが、下位キャッシュの対応するパーティションでヒットした場合、ヒットしたページの置換優先度がRの場合(0≦R≦n;ただし、(n+1)×P=下位パーティション容量D)、1ページのサイズ(容量)をPとすると、上位キャッシュのパーティションの容量が現在の値から、下位キャッシュのパーティション容量Dから、R×P差し引いたD−R×P分、増加していれば、上位キャッシュの該パーティションでヒットしていたはずである。すなわち、上位キャッシュのパーティションでミスし、下位キャッシュの対応するパーティションでヒットした場合、上位キャッシュのパーティションの容量に対して、D−R×P分増加した場合における上位キャッシュでのヒットとして集計する。なお、なお、図19(B)において、前述したように、各線形リストのヘッドは、置換の優先順位が最も低いMRUのページを表し、テイルは置換尾優先順位が最も高いLRUのページを表す。
一方、図19(B)において、上位キャッシュのパーティションでヒットし、ヒットしたページの置換優先度がRの場合(0≦R≦m)、上位キャッシュのパーティションの容量は現在の設定値Cから、R×P分差し引いた容量があれば、ヒットしていたはずである。この場合、上位キャッシュのパーティションの容量をCからR×P分減少した場合の上位キャッシュでのヒットとして計測する。
上位キャッシュのパーティションにおいて、線形リスト(図19(A)、(B))上のあるページでヒットした場合、当該ページは、例えば線形リストのMRUの位置(ヘッド)に再配置される。また、上位キャッシュのパーティションにおいてミスし、下位キャッシュのパーティションの線形リスト上のあるページでヒットした場合、下位キャッシュの当該ページは、上位キャッシュのパーティションの線形リストのMRUの位置(ヘッド)に繋ぎ替えるようにしてもよい。なお、LRUにおける時間ステップ(最後にアクセスされてから未使用時間を計時する時間の単位)を粗くする等して、キャッシュ上のページの置換優先度が、同一値を持つ構成であってもよいことは勿論である。
このように、実際には、上位キャッシュのパーティション容量を増加させていない状況下で、上位キャッシュのパーティションでミス、下位キャッシュの対応するパーティションでのヒットを、上位キャッシュの当該パーティション容量を増加させた場合におけるヒットに対応させる。
<実施形態の概要>
図18(又は図17)の基本構成において、上位中間記憶機能2−2と下位中間記憶機能2−3を、それぞれ上位キャッシュと下位キャッシュで構成し、中間記憶アクセス情報収集部2−4を、容量別ヒット頻度計測部で構成し、中間記憶領域容量決定部2−5を、パーティション容量決定部として実装した例について以下に説明する。図2を参照すると、ストレージ2(ストレージ装置)は、
データを格納する記憶媒体21と、
記憶媒体21上のデータのうちアクセス頻度の高いデータの複製又は更新結果を一時的に保持する上位キャッシュ22、及び、下位キャッシュ23と、
ストレージ2内の各種制御情報、管理情報を格納するための作業メモリ24と、
上位キャッシュのパーティション容量増減時のヒットの頻度を計測する容量別ヒット頻度計測部26と、
キャッシュ上のデータの置換優先順位を制御し、キャッシュ上のデータの置換、階層間のデータ配置を決定するページ配置部27と、
上位キャッシュの各パーティションの容量を決定するパーティション容量決定部29と、を備える。
具体的には、ストレージの全データを格納する記憶媒体21として、例えばHDDまたはNANDフラッシュメモリ等で構成されたSSDが用いられる。記憶媒体21は、単体または複数から構成される。
上位キャッシュ22及び下位キャッシュ23は、記憶媒体21に格納されたデータのうち、アクセス頻度の高いデータの複製または更新を格納する。上位キャッシュ22は、下位キャッシュ23に対して、よりアクセス頻度の高いデータに対する複製または更新を格納する。
作業メモリ24は、ストレージの管理、制御に必要な情報を格納する。作業メモリ24に格納される情報として、例えば、
・記憶媒体の構成情報、
・ストレージ内で定義されたボリュームの情報、
・キャッシュ上の各ページの管理情報(「ディレクトリ情報」という)、
・ボリュームに対応する上位キャッシュ及び下位キャッシュ上のパーティションの管理情報、
・ストレージ外部から受理した処理中のアクセス要求の管理情報、
が含まれる。
容量別ヒット頻度計測部26は、ヒットしたページの置換優先度から、上位キャッシュのパーティション容量増減時のヒット頻度を計測する。
容量別ヒット頻度計測部26は、上位キャッシュ22又は下位キャッシュ23でヒットしたページの置換優先度の情報から、上位キャッシュ22上に定義されたパーティションの容量が任意に増減した場合に、前記ヒットした当該ページが上位キャッシュ22でヒットするか否か判定する。そして、容量別ヒット頻度計測部26は、上位キャッシュ22上のパーティションの容量別にヒット頻度を計測する。
あるアクセスが上位キャッシュ22でミスし、下位キャッシュ23でヒットした場合、ヒットしたページの置換優先度が、例えば最低(例えば0)の場合(直前に上位キャッシュ22から追い出されたページは最低の置換優先度を持つ)、該ページの容量分、上位キャッシュ22のパーティションの容量が増加していれば、該アクセスに対して、上位キャッシュ22の当該パーティションの増加した当該ページでヒットしたことになるので、上位キャッシュ22上の当該パーティションにおいて容量増加分に対応する、容量別のヒット数を1つ増やす。
ページ配置部27は、上位、下位キャッシュ22、23上のページの置換優先度を制御して、上位、下位キャッシュ22、23のデータの置換、上位、下位キャッシュ22、23の階層間でのデータ配置を決定する。またページ配置部27は、決定したデータ配置に従って上位キャッシュ22、下位キャッシュ23の各ページ及び記憶媒体21へのデータ格納、上位キャッシュ22、下位キャッシュ23、記憶媒体21間のデータの移動、更新を行う。
パーティション容量決定部29は、複数のパーティションに区分された上位キャッシュ22の各パーティションの容量を決定する。パーティション容量決定部29は、ヒット数(ヒット頻度)を参照して、ストレージ全体の性能が最大になるように、上位キャッシュ22の各パーティションの容量を決定する。その際、パーティション容量決定部29は、容量別ヒット頻度計測部26によって得られた上位キャッシュ22の各パーティションの容量が任意に変化した場合におけるパーティションの容量別のヒット頻度を参照して、性能が最大になるように、上位キャッシュ22のパーティションの容量を決定する。本実施形態によれば、上位キャッシュにおいて、アクセス頻度の高いボリュームに対応する1つ又は複数のパーティションのアクセス性能を最大化するように、パーティションの容量を設定するようにしてもよい。その際、パーティション間のアクセス性能の均一化を目指すのではなく(ただし、均一化を目指すことも可能)、アクセス頻度の低いボリュームに対応する1つ又は複数のパーティションのアクセス性能の向上は敢えて行わず、最速の性能が求められる1つ又は複数のパーティションに限定してパーティション容量の最適設定(ピーク性能の最大化)を行うようにしてもよい。
実施形態によれば、上位キャッシュにおけるパーティションの容量を最適化し、パーティションでのヒット率の向上を図り、キャッシュ性能を最大化することで、アクセス性能の向上を実現する。
またストレージの上位キャッシュ上に確保された各パーティションについて、限られた容量の範囲内で、性能を最大化する最適なパーティション容量値を動的に算出する。これにより、
・時間の経過、
・動作するアプリケーションの違いによる、ストレージに対するアクセスパターン、負荷の変化、等に動的に対応可能としている。
下位キャッシュ23でのヒット状況の測定から、上位キャッシュ22のパーティション容量を動的に最適化可能としたことで、必要な資源の増大を抑制し、パーティションの容量最適化のための上位キャッシュ22にけるオーバーヘッドの増大を抑え、制御、管理のコストの削減を可能としている。以下、図面を参照して、実施形態の具体例に即して説明する。
<システム構成>
図1は、実施形態1の構成の一例を例示する図である。図1を参照すると、システムは、データにアクセスする1台以上のホスト1、単体又は複数の記憶媒体から構成されるストレージ2、ホスト1、ストレージ2を接続するネットワーク3を含む。
ネットワーク3は、ストレージ2に対して複数のホスト1が接続可能な形態のみならず、ホスト1とストレージ2が直接接続される形態であってもよい。またストレージ2はネットワーク3によって接続された複数の装置、あるいはシステムによって構成されてもよい。
<ストレージの構成>
図2は、ストレージ2の構成例を例示する図である。図2を参照すると、ストレージ2は、記憶媒体21と、上位キャッシュ22と、下位キャッシュ23と、作業メモリ24と、アクセス要求処理部25と、容量別ヒット頻度計測部26と、ページ配置部27と、データアクセス部28と、パーティション容量決定部29と、を備えている。ストレージ2に記録されたデータを格納する記憶媒体21、下位キャッシュ23、上位キャッシュ22は、記憶階層を構成する。下位キャッシュ23、上位キャッシュ22は階層キャッシュを構成する。なお、図2では、下位キャッシュ23、上位キャッシュ22の2階層とされているが、3階層又はそれ以上の階層であってもよいことは勿論である。なお、3階層以上のキャッシュ構成の場合、例えば上位キャッシュを最上位キャッシュ、下位キャッシュを、最上位の1つ下の階層のキャッシュ等と読み替えることで、本発明をそのまま適用することができる。
図2において、アクセス要求処理部25、容量別ヒット頻度計測部26、ページ配置部27、データアクセス部28、パーティション容量決定部29は、ストレージ2を構成するコンピュータ(プロセッサ)で実行されるプログラムによりその機能・処理を実現するようにしてもよい。またプログラムを記録する不揮発性半導体メモリデバイス、磁気ディスク、光ディスク等の記録媒体が提供される。これらの記録媒体とストレージ2を構成するコンピュータ(プロセッサ)との接続、読み出し制御等は当業者には明らかであるため、説明は省略する。
図3は、記憶媒体21、上位キャッシュ22、及び下位キャッシュ23の構成を例示する図である。図2、図3を参照して、記憶媒体21、上位キャッシュ22、及び下位キャッシュ23について説明する。
<記憶媒体>
記憶媒体21は、ストレージ2の記憶領域全体のデータを格納し、例えばHDD又はNANDフラッシュ等で構成されたSSDのような単体又は複数の記憶媒体から構成される。ボリューム211は、記憶媒体21の記憶領域上に格納される。
<上位キャッシュ>
上位キャッシュ22は、上位ページ格納部221と、上位ヒット判定部222を含む。上位ページ格納部221は、上位キャッシュ22上のデータをページ単位で格納する。上位ページ格納部221は、記憶媒体21上の各ボリューム211に対応したデータを格納する複数の上位パーティション2211を備えている。
上位ヒット判定部222は、上位キャッシュ22へのデータアクセス部28からのデータの読み出し要求、書き込み要求に対して、作業メモリ24に格納された上位ディレクトリ情報(後に説明される図5Aの242)を参照し、該当パーティションに、ヒットするページが存在するとき、
・読み出し(Read)アクセスの場合、ヒットしたページの内容をデータアクセス部28に返し、
・書き込み(Write)アクセスの場合、ヒットしたページに、データアクセス部28から受けとったデータを格納する。
上位ヒット判定部222は、上位キャッシュ22の該当パーティションに、ヒットするページが存在しない場合(ミスの場合)、データアクセス部28に対して、ヒットするページが存在しなかったことを通知する。
<下位キャッシュ>
下位キャッシュ23は、下位ページ格納部231と、下位ヒット判定部232を含む。下位ページ格納部231は、下位キャッシュ23上のデータをページ単位で格納する。下位ページ格納部231は、記憶媒体21上の各ボリューム211に対応したデータを格納可能な複数の下位パーティション2311を備えている。
下位ヒット判定部232は、下位キャッシュ23へのデータアクセス部28からのデータの読み出し要求、書き込み要求に対して、作業メモリ24に格納された下位ディレクトリ情報(図5Bの243)を参照し、上位キャッシュ22における上位ヒット判定部222と同様の動作を行う。すなわち、下位ヒット判定部232は、下位キャッシュ23の該当パーティションに、ヒットするページが存在するとき、
・読み出し(Read)アクセスの場合、ヒットしたページの内容をデータアクセス部28に返し、
・書き込み(Write)アクセスの場合、ヒットしたページに、データアクセス部28から受けとったデータを格納する。下位ヒット判定部232は、下位キャッシュ23の該当パーティションに、ヒットするページが存在しない場合(ミスの場合)、データアクセス部28に対して、ヒットするページが存在しなかったことを通知する。
<作業メモリ>
作業メモリ24は、ストレージ2全体の管理、制御に必要な各種情報を格納する。作業メモリ24は、上位キャッシュ22と独立した構成以外に、例えばDRAM等で構成されたメモリ上に上位キャッシュ22と作業メモリ24の全て又は一部が共存する構成であってもよい。
<アクセス要求処理部>
図2のアクセス要求処理部25は、ストレージ2がホスト1から受理したアクセス要求を解釈し、アクセス要求に従った処理を行い、処理結果をアクセス要求元のホスト1に返す。
まず、アクセス要求処理部25は、解釈したアクセス要求の情報(Read/Writeの別、アクセス対象のデータのアドレス、アクセス長等)を、作業メモリ24上のアクセス要求テーブル(図8の246)に登録する。その後、アクセス要求処理部25は、解釈したアクセス要求に従って、データアクセス部28を介して記憶媒体21、上位キャッシュ22、下位キャッシュ23の順番にアクセスを行う。アクセス要求処理部25は、アクセス要求がReadであれば、読み出しデータをホスト1に返す。アクセス要求がWriteであれば、アクセス要求処理部25は、書き込みの完了を通知する。アクセス要求処理部25は、アクセス処理終了に伴い、作業メモリ24上のアクセス要求テーブル(図8の246)に登録されている、完了したアクセス要求の情報を削除する。
<容量別ヒット頻度計測部>
容量別ヒット頻度計測部26は、上位キャッシュ22と下位キャッシュ23へのアクセスを監視する。容量別ヒット頻度計測部26は、上位キャッシュ22又は下位キャッシュ23の各パーティション内でヒットしたページについて、置換優先度の情報を作業メモリ24上の上位ディレクトリ情報(図5Aの242)、又は、下位ディレクトリ情報(図5Bの243)から取得する。
容量別ヒット頻度計測部26は、置換優先度の情報から、ヒットしたページが含まれるボリューム211に対応する上位キャッシュ22上の上位パーティション2211について、その容量が増減した場合に、上位キャッシュ22上の上位パーティション2211において、当該ページがヒットするために必要な最低容量を求める。
例えば、上位キャッシュ22上の上位パーティション2211でミス時、下位キャッシュ23の対応する下位パーティション2311でヒットしたページの置換優先度が例えば最低の場合、該ページ(図19(A)の下位キャッシュのパーティションの線形リストのヘッドの置換優先度が0のページに対応)は、最も最近使用されたページ(一例として上位パーティション2211から直前に下位パーティション2311に追い出されたページ)であり、上位パーティション2211が該ページを含む容量であれば、上位パーティション2211でヒットしているはずである。したがって、上位パーティション2211上において当該ページでヒットするために必要な最低容量は、上位パーティション2211の現在の設定容量に対して当該ページ分増加した値となる。同様にして、上位キャッシュ22上の上位パーティション2211でミス時、下位キャッシュ23の対応する下位パーティション2311でヒットしたページの置換優先度が例えば最低値(0)よりも1単位分の上の場合(図19(A)の下位キャッシュのパーティションの線形リストにおいて置換優先度が1のページ)、該ページは、最も最近使用されたページ(置換優先度0)よりも1つ前の時間単位で使用されたページであり、置換優先度0と1の2つのページを合わせた容量を、上位パーティション2211の現在の設定容量に加算した値が、上位パーティション2211においてヒットするための必要な最低容量となる。
容量別ヒット頻度計測部26は、上の容量別ヒット頻度テーブル(図7の245)の該当するボリュームID(パーティションに対応)の該当する容量欄のヒット頻度を1つ加算する(increment)。図7の例では、容量別ヒット頻度テーブル245は、256MB(megabyte)単位に0〜1280MBまでの5カラムを有するが、これらの数値は、あくまで一例を示したものであり、図7の容量別ヒット頻度テーブル245において、容量別の単位は256MBに限定されるものでなく、またカラム数は5に限定されるものでないことは勿論である。
また、上位パーティション2211、下位パーティション2311でともにミスであった場合、容量別ヒット頻度計測部26は、容量別ヒット頻度テーブル(図7の245)に格納されたボリューム毎のミス頻度の欄の値を1つ加算する。
<ページ配置部>
ページ配置部27は、
・作業メモリ24に格納された上位ディレクトリ情報242、下位ディレクトリ情報243(図5A、図5B)に含まれる各ページの置換優先度の情報、及び、
・パーティションテーブル(図6の244)に含まれるパーティションの容量(ページ数の情報)、
を参照して、上位キャッシュ22、及び下位キャッシュ23から置換によって移動、削除するページを決定する。
ページ配置部27は、決定した結果に基づき、データアクセス部28を介して、
・新規ページの上位キャッシュ22への格納、
・ページの置換に伴い、上位キャッシュ22、下位キャッシュ23の間で発生するページの移動、
・下位キャッシュ23において更新済みのページが削除される場合であって、更新ページがライトバックされていない場合、当該ページの内容を記憶媒体21に格納、
等を行う。
<データアクセス部>
データアクセス部28は、アクセス要求処理部25、及びページ配置部27の指示により、記憶媒体21、上位キャッシュ22、及び下位キャッシュ23の間でデータをページ単位で、
・読み出し、又は書き込み、
・コピー、
・移動、
・更新の反映
を行う。
<パーティション容量決定部>
パーティション容量決定部29は、作業メモリ24上のマッピング情報241、及び、容量別ヒット頻度計測部26によって格納された容量別ヒット頻度テーブル245を参照して、各ボリューム211に対応する上位キャッシュ22上に設定された上位パーティション2211の容量を決定する。
パーティション容量決定部29は、上位パーティション2211の容量の決定にあたり、例えば、上位キャッシュ22によるアクセス性能高速化の効果を最大化するように、各ボリューム211に対応する上位パーティション2211における、ヒット頻度の合計が、最大になるように決定する。
パーティション容量決定部29は、決定した各上位パーティション2211の容量を作業メモリ24上の容量別ヒット頻度テーブル(図7の245)に格納する。
<作業メモリ24>
図2、図3の作業メモリ24に格納される各情報について説明をする。
作業メモリ24には、
・マッピング情報241(図4)と、
・上位ディレクトリ情報242(図5A)と、
・下位ディレクトリ情報243(図5B)と、
・パーティションテーブル244(図6)と、
・容量別ヒット頻度テーブル245(図7)と、
・アクセス要求テーブル246(図8)と、
が格納される。
<マッピング情報>
図4を参照すると、マッピング情報241は、記憶媒体21によって構成される記憶領域内に定義されたボリューム(Volume ID)に対して、
・ボリューム211における記憶領域(容量)、
・記憶媒体21へのマッピング情報を記録する。
<ディレクトリ情報>
図5Aの上位ディレクトリ情報242は、ボリューム211のIDに対して、上位キャッシュの各ページに関するディレクトリ情報を記憶する。Volume ID、ページアドレス、上位キャッシュ内格納先アドレス、更新フラグ、置換優先度を一エントリとして含む。図5Bの下位ディレクトリ情報243は、ボリューム211のIDに対して、下位キャッシュの各ページに関するディレクトリ情報を記憶する。Volume ID、ページアドレス、下位キャッシュ内格納先アドレス、更新フラグ、置換優先度を一エントリとして含む。特に制限されないが、置換優先度は、例えば値0が、最も置換優先度が低い(キャッシュに最も優先的に滞在する)ものとし、値が大きくなるに従い、置換優先度が高くなるものとする。
<パーティションテーブル>
図6は、パーティションテーブル244の一例を例示する図である。図6を参照すると、パーティションテーブル244は、ボリューム211のIDに対して、上位キャッシュ22及び下位キャッシュ23上のパーティションの容量の対応を記録する。ID1の上位キャッシュ22上のパーティション(ボリュームID1の占有領域)、下位キャッシュ23上のパーティション(ボリュームID1の占有領域)の容量は、それぞれ1GB(Gigabyte)、10GBである。上位キャッシュ22及び下位キャッシュ23上のパーティションは、上位キャッシュ22及び下位キャッシュ23において連続記憶領域を指すものではなく(ページは連続記憶領域)、複数のページの合計である。
<容量別ヒット頻度テーブル>
図7は、容量別ヒット頻度テーブル245の一例を例示する図である。図7を参照すると、容量別ヒット頻度テーブル245は、各ボリューム211に対応した上位キャッシュ22上の上位パーティション2211の容量増減時の、容量毎のヒット頻度の増減量を記録する。各ボリューム211について、上位キャッシュ22、下位キャッシュ23が共にミスとなった頻度を記録する。なお、容量別ヒット頻度テーブル245は、図7のように、容量毎のヒット頻度の増減量を記録する以外に、上位キャッシュの容量が、各容量に増減した場合に、ヒットとなる全アクセスの頻度を記録しても良い。特に制限されないが、図7の例では、容量別ヒット頻度テーブル245は、ボリュームIDに関して、容量は、256MB単位で増加し1280MBまで5つのカラムを備え、各容量でのヒット頻度情報が記録され、最後のカラムにミス頻度が格納されるテーブル形式とされる。なお、容量別ヒット頻度テーブル245のテーブル形式(容量の単位、カラム数等)、は、図7の構成に限定されるものでないことは勿論である。
<アクセス要求テーブル>
図8は、アクセス要求テーブル246の一例を例示する図である。図8を参照すると、アクセス要求テーブル246は、ホスト1からストレージ2に対するアクセス要求の情報をアクセス処理が終了し、ホスト1への応答が完了するまで記録する。アクセスID欄と、アクセスの種別(Read/Write)、アクセス先の先頭アドレス(読み出し又は書き込みの先頭アドレス)、アクセス長(読み出し又は書き込みのデータサイズ)、アクセス要求を発行したホスト名、該要求に対応するコマンドのIDからなる。特に制限されないが、アクセス先の先頭アドレスとアクセス長はバイト単位の他に例えばブロック単位などとしてもよい。
<全体の動作>
次に、実施形態1の動作について説明する。全体の動作は、
・アクセス要求の処理中に行われるヒット頻度の計測処理と、
・ヒット頻度の計測の実現に必要な記憶階層(上位キャッシュ22、下位キャッシュ23、記憶媒体21)間のページ配置処理と、
・上位パーティション2211の容量の決定処理、
の3段階の処理で行われ、前記一連の3段階の処理を、1回又は複数回繰り返して行う。
ヒット頻度の計測が行われる、Readアクセス又はWriteアクセス要求処理を行う動作ついて、図9の流れ図、図2乃至図5A、図5B、図8を参照して説明する。
ホスト1からストレージ2に対してアクセス要求が行われると、アクセス要求処理部25が、アクセス要求を解釈し、結果を、作業メモリ24上のアクセス要求テーブル246に登録する(ステップS11)。
アクセス要求処理部25は、作業メモリ24に格納されたマッピング情報241(図4)を参照して、アクセス要求先のボリュームID、及び、ボリューム内のアドレスを計算する(ステップS12)。
アクセス要求処理部25は、データアクセス部28に対して、ステップS12で計算したアクセス要求先のボリュームID、及びボリューム内のアドレスへのアクセスを指示する(ステップS13)。
データアクセス部28は、記憶媒体21、上位キャッシュ22、下位キャッシュ23のいずれかの記憶階層に対してアクセスを行う。データアクセス部28は、アクセス要求処理部25から受け取ったアクセス先ボリュームID及びアドレスに対応したページへのアクセスを実行する(ステップS14)。
データアクセス部28は、ステップS14におけるアクセス先を、ページ配置部27に通知する。ページ配置部27は、受け取ったアクセス先の情報をもとに、作業メモリ24に格納された上位ディレクトリ情報242(図5A)、又は下位ディレクトリ情報243(図5B)に格納されたページの置換優先度情報を更新し、記憶階層間のページの移動を行う(ステップS15)。
データアクセス部28は、ステップS13で指示したReadアクセスの結果、又はWriteアクセスの完了通知を、アクセス要求処理部25に送る。ホスト1からのアクセス要求がReadの場合、アクセス要求処理部25は、Readアクセス要求の結果であるReadデータをアクセス要求元のホスト1に対して返す。ホスト1からのアクセス要求がWriteの場合、アクセス要求処理部25は、Writeアクセスの完了通知をアクセス要求元のホスト1に対して返す。アクセス要求処理部25は、作業メモリ24上のアクセス要求テーブル246(図8)に記録された前記アクセス要求の情報を削除してアクセス処理を終了する(ステップS16)。
以上のステップS11からS16までの処理を行い、ヒット頻度の計測が行われる、Readアクセス又はWriteアクセス要求処理を行う動作が完了する。
<ヒット頻度の計測動作>
次に、図10A、図10Bの流れ図と、図2乃至図6を参照して、アクセス処理内でヒット頻度の計測を行うステップS14の詳細な動作について説明する。
データアクセス部28は、アクセス要求処理部25からRead要求を受け取ると、アクセス先ボリュームID、及びアドレスを用いて、上位キャッシュ22に対して、受け取ったアドレスに対応したページの格納の有無(ヒット/ミス)を問い合わせる(図10AのステップS201)。
上位キャッシュ22の上位ヒット判定部222は、作業メモリ24に格納された上位ディレクトリ情報242(図5A)を参照して、問い合わせが行われたページが格納されている場合(図10AのステップS202のYes判定)、上位キャッシュ22におけるヒットを、アクセス先ボリュームIDと、上位ディレクトリ情報242(図5A)に格納されたヒットしたページの置換優先度と共に、容量別ヒット頻度計測部26に通知する(図10AのステップS203)。
容量別ヒット頻度計測部26は、ステップS203で、上位キャッシュ22から通知されたアクセス先ボリュームIDから、作業メモリ24に格納されたパーティションテーブル244(図6)を参照し、ヒットしたページが含まれるボリューム211に対応した上位パーティション2211の容量を取得する(図10AのステップS204)。
容量別ヒット頻度計測部26は、
・ステップS203で通知されたヒットしたページの置換優先度と、
・ステップS204で取得した上位パーティション2211の容量
から、前記ページが、上位キャッシュ22でヒットするために必要な最低限の容量を算出する。
ヒットしたページの置換優先度をR、ページ容量をP、上位パーティション2211の容量(現在の設定値)をCとする。
一例として、置換優先度Rを0から順番に優先度が高いものと定義すると(非負整数の置換優先度Rの値が小さいほど優先的に追い出され、0が最優先で追い出される:図19(B)参照)、上位キャッシュ22の上位パーティション2211でヒットするための最低容量は次式(1)で計算される。
C−R×P ・・・(1)
式(1)で算出されるパーティション容量は、上位パーティション2211の現在の容量C以下である。ヒットしたページの置換優先度Rが0の場合、上位パーティション2211の最低容量は現在の設定値Cのままとされる。
容量別ヒット頻度計測部26は、
・算出したパーティション容量、及び
・ボリュームIDに該当する作業メモリ24に格納された容量別ヒット頻度テーブル245(図7)のヒット頻度を加算する(図10AのステップS205)。
ステップS204では、
容量別ヒット頻度計測部26は、
上位パーティション2211のパーティション容量を取得し、
ステップS205におけるパーティション容量の算出に用いる。
置換優先度Rの別の付与の仕方として、置換の優先順位が最低のものを0として、優先的に置換されるページほど順位が下がる(置換優先度Rが大きいほど優先的に追い出される:図19(A)参照)ことを仮定した場合、ページの置換優先度をR、ページ容量をPとして、上位キャッシュ22の上位パーティション2211でヒットするための最低容量は、次式(2)で表される。
(R+1)×P ・・・(2)
ヒットしたページの置換優先度Rが0の場合、上位パーティション2211でヒットするための最低容量はPとされる。また、上位パーティション2211の現在の設定容量値が(m+1)×Pであり、ヒットしたページの置換優先度Rがmの場合、上位パーティション2211の最低容量は現在の設定値のままとされる。このように置換優先度Rを付与する場合、ステップS204の処理(ヒットしたページが含まれるボリューム211に対応した上位パーティション2211の容量Cの取得)を省略してもよい。
上位ヒット判定部222は、ステップS201でアクセス要求のあったページに該当する上位ページ格納部221上のページにアクセスを行う。
上位ヒット判定部222は、アクセス要求がReadであればReadしたデータを、Writeであれば、ページへのWrite後に、完了通知をデータアクセス部28に返す。アクセス要求の完了により、容量別ヒット頻度計測部26は、ヒット頻度の計測処理を終了する(図10AのステップS206)。
ステップS206における、上位ヒット判定部222が問い合わせのあったページのデータを、データアクセス部28に返す処理は、ステップS203からS205までの一連の処理の後に行われているが、前記一連の処理と並列、又は事前に行うようにしてもよい。
上位キャッシュ22の上位ヒット判定部222は、問い合わせされたページが格納されていない場合(ステップS202のNo判定)、データアクセス部28に対して要求されたページが存在しなかったことを返す(図10AのステップS207)。
データアクセス部28は、ステップS201で使用したアクセス先ボリュームID及びアドレスを用いて、下位キャッシュ23に対して、受け取ったアドレスに対応したページの格納の有無を問い合わせる(図10BのステップS208)。
下位キャッシュ23の下位ヒット判定部232は、作業メモリ24に格納された下位ディレクトリ情報243(図5B)を参照して、問い合わせがなされたページが格納されている場合(図10BのステップS209のYes判定)、下位キャッシュ23におけるヒットを、アクセス先ボリュームIDと、下位ディレクトリ情報243に格納されたヒットしたページの置換優先度と共に容量別ヒット頻度計測部26に通知する(図10BのステップS210)。
容量別ヒット頻度計測部26は、ステップS210で下位キャッシュ23から通知されたアクセス先ボリュームIDから、作業メモリ24に格納されたパーティションテーブル244(図6参照)を参照し、ヒットしたページが含まれるボリューム211に対応した上位パーティション2211、及び、下位パーティション2311の容量を取得する(図10BのステップS211)。
容量別ヒット頻度計測部26は、
・ステップS210で通知されたヒットしたページの置換優先度と、
・ステップS211で取得した上位パーティション2211のパーティション容量、及び、
・下位パーティション2311のパーティション容量から、
前記ページが下位キャッシュ23ではなく、前記ページが上位キャッシュ22でヒットするために必要な最低限のパーティション容量を算出する。
ページの置換優先度をR、ページ容量をP、上位パーティション2211の容量をC、下位パーティション2311の容量をDとする。置換優先度を0から順番に優先度が高いものと定義すると(非負整数の置換優先度Rの値が小さいほど優先的に追い出され、0が最優先で追い出される:図19(B)参照)、上位キャッシュ22の上位パーティション2211でヒットするための最低容量は、次式(3)で計算される。
C+D−R×P ・・・(3)
下位パーティション2311が(n+1)のページからなり、置換優先度が最も低い値をnとした場合、(n+1)×P=Dの関係が成り立つ。式(3)で算出されるパーティション容量は、上位パーティション2211の現在の容量Cよりも大きい。ヒットした下位パーティションのページの置換優先度Rが0の場合、上位パーティション2211の最低容量はC+Dとなる。ヒットした下位パーティションのページの置換優先度Rがnの場合、上位パーティション2211の最低容量は、C+P、すなわち、1ページ分の増加となる。
容量別ヒット頻度計測部26は、算出した上位パーティション2211のパーティション容量、及び、ボリュームIDに該当する作業メモリ24に格納された容量別ヒット頻度テーブル245(図7)の対応する容量(カラム)のヒット頻度を加算する(ステップS212)。
容量別ヒット頻度計測部26は、ステップS211では、下位パーティション2311の容量を取得し、ステップS212のパーティションの容量算出で使用する。
置換優先度Rの別の付与の仕方として、置換優先度が最低のものを0として、優先的に置換されるページほど順位が下がるもの(置換優先度Rが大きいほど優先的に追い出される:図19(A)参照)と想定した場合、ページの置換優先度をR、ページ容量をP、として上位キャッシュ22の上位パーティション2211でヒットするための最低のパーティション容量は次式(4)で表される。
C+(R+1)×P ・・・(4)
下位パーティション2311が(n+1)のページからなり、置換優先度が最も低い値をnとした場合、(n+1)×P=Dの関係が成り立つ。ヒットした下位パーティションのページの置換優先度Rが0の場合、上位パーティション2211の最低容量CはC+Pとなり、1ページ分の増加となる。ヒットした下位パーティションのページの置換優先度Rがnの場合、上位パーティション2211の容量は、C+(n+1)×P=C+D、上位パーティション2211の最低容量はC+Dとなる。
上位パーティション2211でヒットするための最低のパーティション容量を式(4)で求める場合、ステップS211における下位パーティション2311の容量Dの取得は不要である。
下位ヒット判定部232は、ステップS208でアクセス要求のあったページに該当する下位ページ格納部231上のページにアクセスを行う。
下位ヒット判定部232は、アクセス要求が、Readであれば、Readしたデータを、アクセス要求がWriteであれば、ページへのWrite後に完了通知をデータアクセス部28に返す。アクセスの完了により、容量別ヒット頻度計測部26は、ヒット頻度の計測処理を終了する(ステップS213)。
ステップS213における、上位ヒット判定部222が、問い合わせのあったページデータをデータアクセス部28に返す処理は、ステップS210からS212までの一連の処理の後に行われているが、前記一連の処理と並列又は事前に行うようにしてもよい。
問い合わせされたページが格納されていない場合(ステップS209のNo判定)、下位キャッシュ23の下位ヒット判定部232は、下位キャッシュ23におけるミスをアクセス先ボリュームIDと共に容量別ヒット頻度計測部26に通知する(ステップS214)。
容量別ヒット頻度計測部26は、ステップS214で通知されたアクセス先ボリュームIDに該当する、作業メモリ24に格納された容量別ヒット頻度テーブル245(図7)におけるミスの欄の頻度を1つ加算する(ステップS215)。
下位ヒット判定部232は、データアクセス部28に対して、要求されたページが存在しなかったことを返す(ステップS216)。
ステップS216の処理は、ステップS214からS215の一連の処理後に行われているが、前記一連の処理と並列又は事前に行うようにしてもよい。
データアクセス部28は、ステップS201で使用したアクセス先ボリュームID、及びアドレスを用いて、記憶媒体21にアクセスを行う。ヒット頻度の計測処理を終了する(ステップS217)。
以上のステップS201からS217までの処理を行い、アクセス処理内でヒット頻度の計測を行う動作が完了する。
<記憶装置間のページ配置>
次に、図9のステップS15の詳細な動作について図11A、図11Bの流れ図と、図2乃至図8を参照して説明する。図9のステップS15は、アクセス処理内でヒット頻度の計測の実現に必要な記憶階層間のページ配置を行う。
データアクセス部28は、図9のステップS14において、実際にアクセスが行われたページの属する記憶階層、アクセス先が含まれるボリュームID、ページアドレスをページ配置部27に通知する(図11AのステップS301)。
ステップS301で通知された記憶階層が上位キャッシュ22である場合(図11AのステップS302のYes判定)、ページ配置部27は、作業メモリ24に格納された上位ディレクトリ情報242(図5A)のページの置換優先度を更新する。またページ配置部27は上位ディレクトリ情報242(図5A)に格納された、上位パーティション2211に属する他のページの置換優先度を更新して記憶階層間のページ配置処理を終了する(図11AのステップS303)。
ステップS301で通知された記憶階層が上位キャッシュ22以外の場合(図11AのステップS302のNo判定)で、ステップS301で通知された記憶階層が下位キャッシュ23の場合(図11AのステップS304のYes判定)、ページ配置部27は、データアクセス部28に対してステップS301で通知されたヒットしたページの削除を指示し、ステップS309以降の処理を継続する(図11AのステップS305)。
ステップS301で通知された記憶階層が記憶媒体21の場合(図11AのステップS304のNo判定)、ページ配置部27は、作業メモリ24に格納された下位ディレクトリ情報243(図5B)を参照して、置換優先度が最下位のページの情報を取得する(図11AのステップS306)。
ステップS306で取得した、下位キャッシュ23において置換優先度が最下位のページについて更新済ではない(更新フラグがNo)場合(図11AのステップS307のNo判定)、ページ配置部27は、図11BのステップS309以降の処理を実行する。
ステップS306で取得した、下位キャッシュにおいて置換優先度が最下位のページについて更新済(更新フラグがYes)の場合(図11AのステップS307のYes判定)、ページ配置部27は、データアクセス部28に対して図11AのステップS306で取得した下位キャッシュ23で置換優先度が最下位のページの更新されたデータを記憶媒体21に書き込むように指示する(図11AのステップS308)。
ページ配置部27は、データアクセス部28に対して下位キャッシュ23で置換優先度が最下位のページの削除を指示する(図11BのステップS309)。
ページ配置部27は、作業メモリ24に格納された上位ディレクトリ情報242(図5A)を参照して、上位キャッシュ22において置換優先度が最下位のページの情報を取得する(図11BのステップS310)。
ページ配置部27は、データアクセス部28に対してステップS310で取得した上位キャッシュ22で置換優先度が最下位のページを下位キャッシュ23に移動し、移動完了後に上位キャッシュ22から前記ページを削除するように指示する(図11BのステップS311)。
ページ配置部27は、データアクセス部28に対して、データアクセス部28がステップS14までにおいて下位キャッシュ23又は記憶媒体21から読み込んだReadアクセス先ページのデータ、若しくは、アクセス要求処理部25から受け取ったWriteデータを上位キャッシュ22に格納するように指示する(図11BのステップS312)。
ページ配置部27は、ステップS304からS312までに行った上位キャッシュ22及び下位キャッシュ23に対する更新内容を、作業メモリ24に格納された上位ディレクトリ情報242(図5A)及び下位ディレクトリ情報243(図5B)に反映するように更新して記憶階層間のページ配置処理を終了する(図11BのステップS313)。
以上のステップS301からS313までの処理を行い、アクセス処理内でヒット頻度の計測の実現に必要な記憶階層間のページ配置を行う動作が完了する。
<上位パーティションの容量の決定>
図12は、パーティション容量決定部29において、上位パーティション2211の容量の決定を行う動作について説明するための流れ図である。図12、及び図2乃至図8を参照して、パーティション容量決定部29における上位パーティション2211の容量の決定動作を説明する。
パーティション容量決定部29は、作業メモリ24に格納された容量別ヒット頻度テーブル245を読み込む(図12のステップS401)。
パーティション容量決定部29は、ステップS401で読み込んだ、各上位パーティション2211に割り当てる容量別のヒット頻度を参照して、上位キャッシュ22全体でヒット頻度が最大になるように各上位パーティション2211の容量の組み合わせを決定する。パーティション容量の合計は、上位キャッシュ22全体の容量によって制限される。
前記容量別のヒット頻度からパーティション容量の組み合わせを求めるにあたり、パーティション容量決定部29は、例えば各上位パーティション2211に対して取り得る容量の組み合わせを全て試行したうえで、上位キャッシュ全体のヒット頻度が最大になる容量の組み合わせを選択する。各容量の組み合わせにおける上位キャッシュ22全体のヒット頻度は、各上位パーティション2211の容量毎に決まるヒット頻度の合計で求められる。その他、公知のアルゴリズム等を用いてもよいことは勿論である。パーティション容量決定部29は、例えば非特許文献2、3等に記載されたアルゴリズムを利用することで、上位パーティション2211の容量の組み合わせを決定するようにしてもよい(図12のステップS402)。
パーティション容量決定部29は、ステップS402で決定した上位パーティション2211の容量の組み合わせを、作業メモリ24に格納されたパーティションテーブル244に反映する(図12のステップS403)。
パーティション容量決定部29は、作業メモリ24に格納された容量別ヒット頻度テーブル245の各ヒット頻度、ミス頻度の値をリセットして、上位パーティション2211の容量の決定を行う処理を終了する(図12のステップS404)。
以上のステップS401からS404までの処理を行い、1回の上位パーティション2211の容量の決定を行う動作が完了する。
以上の処理を予め定められた一定間隔で行うか、又は、ストレージ2の内外から指示が行われる毎に実行することで、上位パーティション2211の容量を、上位キャッシュ22の効果(キャッシュ性能)が最大化されるように、動的に可変制御することが可能となる。
<実施例>
以下では、アクセスパターン変化に応じたキャッシュのパーティション容量の自動最適化の一例を説明する。本実施例では、
・ページのサイズPを1MB、
・上位キャッシュ22を容量2GBのDRAM132、
・下位キャッシュ23を容量16GBのSSD133、
・記憶媒体21を容量200GBのHDD134
とする。なお、上記容量はあくまで一例であり、他の設定値であってもよいことは勿論である。
図7の容量別ヒット頻度テーブル245において使用するヒット頻度、ミス頻度として、ヒット数、ミス数を用いる。容量別ヒット頻度テーブル245のヒット頻度、ミス頻度の加算は、ヒット、ミスの発生毎に、1ずつ行う。この結果、容量別ヒット頻度テーブル245にヒット数、ミス数が格納される。
図13は、本実施例におけるストレージ2の構成及びホスト1からの利用形態を示す図である。図13は、前記実施形態で説明した図1と、図2、図3の内容に基づき作成した図であり、その構成、動作は、前記実施形態に従う。ストレージ2はホスト1上で動作する2種類のアプリケーションA1311、アプリケーションB1312から利用されており、それぞれがストレージ2の記憶領域に定義された各100GBの容量のボリュームA1341、ボリュームB1342を使用する。
またボリュームA1341、ボリュームB1342に対応した上位パーティションA1321、上位パーティションB1322が上位キャッシュ22であるDRAM132上に定義され、
下位パーティションA1331、下位パーティションB1332が下位キャッシュ23であるSSD133上に定義される。
上位パーティションA1321、上位パーティションB1322は、初期状態においてそれぞれ1GBずつの容量を持つものとする。
また下位パーティションA1331、下位パーティションB1332は本実施例において常に8GBずつの容量を持つものとする。
図14に、本実施例におけるアプリケーションA1311、アプリケーションB1312が使用する各ボリュームに対応した上位パーティション1321、1322、下位パーティション1331、1332のヒット数の分布を表す。
記憶階層(DRAM132、SSD133、HDD134)毎のヒット数分布141は、一定時間内におけるボリュームA1341、ボリュームB1342に対応したパーティションの、各記憶階層でのヒット数を示す。
記憶階層毎のヒット数分布141を参照すると、アプリケーションA1311、アプリケーションB1312によるストレージ2へのアクセス総数はともに30000回である。アプリケーションA1311に比べて、アプリケーションB1312は、キャッシュミス数が少なく、DRAM132に偏ったヒット数の分布である。
記憶階層毎のヒット数分布141のみでは、アプリケーションA1311、アプリケーションB1312それぞれに対する上位パーティションA1321、上位パーティション1322の最適な容量を算出することはできない。
図15に、本実施例における容量別ヒット頻度テーブル151(図7の245に対応)の例を示す。
容量別ヒット頻度テーブル151は、アプリケーションA1311、アプリケーションB1312からストレージ2に対するアクセス要求において、図9、図10、図11を参照して説明した前記実施形態の処理によって作成される。
上位パーティションA1321、上位パーティションB1322は、1GBずつであるため、パーティション容量毎のヒット数分布141において、
・1024MBまでのヒットはDRAM132において計測されており、
・1025MB以上のヒットはSSD133において計測されている。
図15の容量別ヒット頻度テーブル151によると、DRAM132の容量が2GBの範囲でボリュームA1341、ボリュームB1342の上位パーティションに、256MB単位で容量を割り当てた場合、
・上位パーティションA1321の容量を1536MB、
・上位パーティションB1322の容量を512MB、
とした場合に(合計2GB)、上位キャッシュをなすDRAM132によって最大のヒット数が得られる。
パーティション容量決定部29は、アプリケーションA1311(ボリュームA1341)向きの上位パーティションA1321の容量を設定値1024MBから容量増加分512MB増やした1536MBとし、アプリケーションB1312(ボリュームB1342)向きの上位パーティションB1322の容量を設定値1024MBから512MB減らして512MBとしている。また、パーティション容量決定部29は、SSD133の下位のパーティションA1311の容量を、最適化前の容量から、上位パーティションA1321の容量増加分の512MBだけ差し引いた値とし、SSD133の下位パーティションB1332の容量を、最適化前の容量に対して、上位パーティションB1322の容量減少分の512MBを加算した値に設定している。
すなわち、パーティション容量決定部29は、DRAM132(上位キャッシュ)の上位パーティションA1321の容量と上位パーティションB1322の容量をそれぞれ決定し、その結果、SSD133(下位キャッシュ)の下位のパーティションA1331の容量、及び、下位パーティションB1332の容量をそれぞれ決定している。
図15を参照すると、パーティション容量決定部29により、上位パーティションA1321の容量を、1024MBから容量増加分512MB増やし1536MBとしたことで、アプリケーションAの上位パーティションA1321でのヒット数は、最適化前のヒット数18000(図14参照)に対して、SSD133の下位のパーティションA1331の領域1025MB−1536MBでのヒット数(=3000+3000=6000)分が加わり、18000+6000=24000となる。一方、SSD133の下位のパーティションA1331でのヒット数は、最適化前のヒット数8000(図14参照)から、領域1025MB−1536MBでのヒット数(=3000+3000=6000)分減少し、8000−6000=2000となる。また、上位パーティションB1322の容量を1024MBから容量増加分512MB減らし512MBとしたことで、最適化前のヒット数23000(図14参照)から、アプリケーションBの上位パーティションB1322の領域513MB−1024MB分でのヒット数(=2000+1000=3000)が差し引かれ、23000−3000=20000となる。SSD133の下位のパーティションB1332でのヒット数は、最適化前のヒット数5000(図14参照)に、DRAM132の領域513MB−1024MBでのヒット数(=2000+1000=3000)が加わり、5000+3000=8000となる。
図16に、パーティション容量決定部29により、上位キャッシュをなすDRAM132によって最大のヒット数が得られるように、上位パーティションA1321の容量と上位パーティションB1322の容量を最適化した後の記憶階層(DRAM132、SSD133、HDD134)毎のヒット数分布161を示す。上述したように、DRAM132の上位パーティションA1321の容量を、1024MBから容量増加分512MB増やし1536MBとしたことで、アプリケーションAのDRAM132の上位パーティションA1321でのヒット数は24000となる。DRAM132の上位パーティションB1322の容量を512MBとしたことで、アプリケーションBのDRAM132の上位パーティションB1322でのヒット数は20000となる。図16に示した最適化後の記憶階層のヒット数分布161と、図14の最適化前のヒット数分布141(上位パーティションの容量を変更しない状態での記憶階層毎のヒット数分布141)と比較すると、図16では、DRAM132におけるヒット数(アプリケーションA、Bの総数)が24000+20000=44000となる。図14の18000+23000=41000に対して3000増加する。
図15において、アプリケーションAに関してDRAM132の上位パーティションA1321とSSD133の下位パーティションA1331の容量の合計は、上位パーティションA1321の容量最適化の前後で同一(一定)であり、図16におけるDRAM132とSSD133でのヒット数の合計26000は、図14におけるDRAM132とSSD133でのヒット数の合計と同一である。同様に、図15に示すように、アプリケーションBに関してDRAM132の上位パーティションB1322とSSD133の下位パーティションB1332の容量の合計は、上位パーティションB1322の容量最適化の前後で同一(一定)であり、図16におけるDRAM132とSSD133でのヒット数の合計28000は、図14におけるDRAM132とSSD133でのヒット数の合計と同一である。なお、SSD133の下位パーティションA1331、B1332の容量の値を例えば固定値とし、パーティション容量決定部29では、上位パーティションA1321、上位パーティションB1322の容量だけを決定するようにしてもよい。ただし、この場合、DRAM132の上位パーティションとSSD133の下位パーティションの容量の合計は容量最適化の前後で同一(一定)とはならない。あるいは、SSD133の下位パーティションA1331、B1332の容量を、上記した上位パーティションA1321、A1322の決定とは、別に設定するようにしてもよい。
上記の通り、アクセスパターン変化に応じて、上位キャッシュのパーティション容量の最適化を動的に行うことで、上位キャッシュ22の効果(キャッシュ性能)が最大化され、その結果、ストレージ2の性能が向上することができる。
なお、上記の特許文献、非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施例の各要素、各図面の各要素等を含む)の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
1 ホスト
2 ストレージ
2−1 記憶媒体
2−2 上位中間記憶機能
2−3 下位中間記憶機能
2−4 中間記憶アクセス情報収集部
2−5 中間記憶領域容量決定部
3 ネットワーク
21 記憶媒体
211 ボリューム
22 上位キャッシュ
221 上位ページ格納部
2211 上位パーティション
222 上位ヒット判定部
23 下位キャッシュ
231 下位ページ格納部
2311 下位パーティション
232 下位ヒット判定部
24 作業メモリ
241 マッピング情報
242 上位ディレクトリ情報
243 下位ディレクトリ情報
244 パーティションテーブル
245 容量別ヒット頻度テーブル
246 アクセス要求テーブル
25 アクセス要求処理部
26 容量別ヒット頻度計測部
27 ページ配置部
28 データアクセス部
29 パーティション容量決定部
1311 実施例におけるアプリケーションA
1312 実施例におけるアプリケーションB
132 実施例において上位キャッシュとして使用するDRAM
1321 実施例における上位パーティションA
1322 実施例における上位パーティションB
133 実施例において下位キャッシュとして使用するSSD
1331 実施例における下位パーティションA
1332 実施例における下位パーティションB
134 実施例において記憶媒体として使用するHDD
1341 実施例におけるボリュームA
1342 実施例におけるボリュームB
141 実施例における初期状態の記憶階層毎のヒット数分布
151 実施例における容量別ヒット頻度テーブル
161 実施例におけるパーティション容量最適化後の記憶階層毎のヒット数分布

Claims (23)

  1. データを格納する記憶媒体と、
    前記記憶媒体における物理的又は論理的な単位領域に対応する少なくとも1つの中間記憶領域を備えた上位中間記憶機能と、
    前記上位中間記憶機能の前記中間記憶領域に対応する少なくとも1つの中間記憶領域を備えた下位中間記憶機能と、
    アクセス要求に対して、前記上位中間記憶機能及び前記下位中間記憶機能の前記中間記憶領域でのヒット情報に基づき、前記上位中間記憶機能の前記中間記憶領域の容量を増加させた場合と、前記上位中間記憶機能の前記中間記憶領域の容量を減少させた場合の一方又は両方におけるヒット情報を収集する中間記憶アクセス情報収集部と、
    前記中間記憶アクセス情報収集部で収集された前記ヒット情報に基づき、少なくとも前記上位中間記憶機能の前記中間記憶領域の容量を決定する中間記憶領域容量決定部と、
    を備えたストレージ装置。
  2. 前記中間記憶アクセス情報収集部は、前記アクセス要求に対する前記下位中間記憶機能の前記中間記憶領域でのヒット情報に基づき、前記アクセス要求に対して前記上位中間記憶機能でヒットするのに必要な前記上位中間記憶機能の前記中間記憶領域の容量を算出し、前記上位中間記憶機能において算出された前記容量の前記中間記憶領域でヒットしたものとして集計する、請求項1記載のストレージ装置。
  3. 前記中間記憶アクセス情報収集部は、前記アクセス要求に対する前記上位中間記憶機能の前記中間記憶領域でのヒット情報に基づき、前記アクセス要求に対して前記上位中間記憶機能でヒットするのに必要な前記上位中間記憶機能の前記中間記憶領域の容量を算出し、前記上位中間記憶機能において算出された前記容量の前記中間記憶領域でヒットしたものとして集計する、請求項1又は2記載のストレージ装置。
  4. 前記中間記憶アクセス情報収集部は、前記アクセス要求に対して、前記上位中間記憶機能の前記中間記憶領域でミスし、前記下位中間記憶機能の前記中間記憶領域でヒットした場合に、
    前記下位中間記憶機能の前記中間記憶領域でヒットした箇所の情報を用いて、前記アクセス要求に対して前記上位中間記憶機能でヒットするのに必要な前記上位中間記憶機能の前記中間記憶機能の容量又は容量増加分を算出し、前記上位中間記憶機能において算出された前記容量又は前記容量増加分増加させた前記中間記憶領域でのヒットとして集計する、請求項2記載のストレージ装置。
  5. 前記中間記憶アクセス情報収集部は、前記アクセス要求に対して、前記上位中間記憶機能の前記中間記憶領域でヒットした場合、前記上位中間記憶機能の前記中間記憶領域でヒットした箇所の情報を用いて、前記アクセス要求に対して前記上位中間記憶機能でヒットするのに必要な前記上位中間記憶機能の前記中間記憶機能の容量又は容量減少分を算出し、前記上位中間記憶機能において算出された前記容量又は前記容量減少分減少させた前記中間記憶領域でのヒットとして集計する、請求項3記載のストレージ装置。
  6. 前記上位中間記憶機能と前記下位中間記憶機能に対してデータを格納する場合、前記データは、前記上位中間記憶機能の前記中間記憶領域に格納され、前記上位中間記憶機能の前記中間記憶領域に格納しきれなくなったデータが前記下位中間記憶機能の前記中間記憶領域に格納される、請求項1乃至5のいずれか1項に記載のストレージ装置。
  7. 前記中間記憶領域容量決定部は、前記上位中間記憶機能の前記中間記憶領域におけるヒット頻度がより大となるように、前記上位中間記憶機能の前記中間記憶領域の容量を決定する、請求項1乃至6のいずれか1項に記載のストレージ装置。
  8. 前記上位中間記憶機能と前記下位中間記憶機能が、データを格納する少なくとも1つの前記記憶媒体から、アクセス頻度の高いデータを選択的に格納するための記憶階層であり、データをアクセス頻度に応じて、前記上位中間記憶機能、前記下位中間記憶機能、及び、前記記憶媒体上に配置する、請求項1乃至7のいずれか1項に記載のストレージ装置。
  9. 前記上位中間記憶機能と前記下位中間記憶機能がそれぞれ、上位キャッシュと下位キャッシュである、請求項1乃至8のいずれか1項に記載のストレージ装置。
  10. 前記上位中間記憶機能の前記中間記憶領域と前記下位中間記憶機能の前記中間記憶領域が、それぞれ、前記上位キャッシュと前記下位キャッシュを区分したパーティションであり、
    前記上位キャッシュと前記下位キャッシュの前記パーティションは、前記記憶媒体において前記単位領域をなすボリュームに対応し、
    前記上位キャッシュと前記下位キャッシュの前記パーティションは複数のページからなり、
    前記上位キャッシュのページと前記下位キャッシュのページのサイズを共通とし、
    前記上位キャッシュと前記下位キャッシュのそれぞれにおいてページ置換をLRU(Least Recently Used)アルゴリズムを用いて行い、
    前記上位キャッシュのパーティションのページ置換において、最高の置換優先順位で前記上位キャッシュのパーティションから追い出されたページを、前記下位キャッシュの対応するパーティションに、最低の置換優先順位で挿入し、前記上位キャッシュのパーティションと前記下位キャッシュの対応するパーティションとを、擬似的に1つのキャッシュのパーティションとして管理する請求項9記載のストレージ装置。
  11. 前記中間記憶アクセス情報収集部は、アクセス要求に対して前記上位キャッシュのパーティションでミスし、前記下位キャッシュのパーティションでヒットした場合、前記上位キャッシュの前記パーティションの容量に対して、前記下位キャッシュでヒットしたページの置換優先順位情報に基づき、前記アクセス要求に対して前記上位キャッシュの前記パーティションでヒットするために必要な前記パーティションの容量増加分を算出し、前記パーティションの容量を前記容量増加分増加させた場合における前記上位キャッシュでのヒットとしてヒット頻度を計測する容量別ヒット頻度計測部を含む、請求項10記載のストレージ装置。
  12. 前記中間記憶アクセス情報収集部は、アクセス要求に対して前記上位キャッシュのパーティションでヒットした場合、前記上位キャッシュでヒットしたページのページ置換の優先順位情報に基づき、前記アクセス要求に対して、前記上位キャッシュの前記パーティションでヒットするために必要な前記パーティションの容量を算出し、前記算出された容量の前記パーティションを備えた前記上位キャッシュでのヒットとしてヒット頻度を計測する容量別ヒット頻度計測部を含む、請求項10又は11に記載のストレージ装置。
  13. 新規ページが、前記上位キャッシュに格納され、
    前記上位キャシュから追い出されたページが前記下位キャッシュに格納される、請求項10乃至12のいずれか1項に記載のストレージ装置。
  14. ページの置換優先順位情報と、前記パーティションの容量を参照して、前記上位キャッシュと前記下位キャッシュから置換によって移動又は削除するページを決定するページ配置部と、
    前記記憶媒体、前記上位キャッシュ、及び前記下位キャッシュの間でデータをページ単位で読み出し、書き込み、コピー、移動、更新の反映の少なくとも1つを行うデータアクセス部と、
    を備えた請求項10乃至13のいずれか1項に記載のストレージ装置。
  15. データを格納する記憶媒体と、前記記憶媒体における物理的又は論理的な単位領域に対応する少なくとも1つの中間記憶領域を備えた上位中間記憶機能と、前記上位中間記憶機能の前記中間記憶領域に対応する少なくとも1つの中間記憶領域を備えた下位中間記憶機能を備えたストレージの制御方法であって、
    アクセス要求に対して、前記上位中間記憶機能及び前記下位中間記憶機能の前記中間記憶領域でのヒット情報に基づき、前記上位中間記憶機能の前記中間記憶領域を増加させた場合と、前記上位中間記憶機能の前記中間記憶領域の容量を減少させた場合の一方又は両方におけるヒット情報を収集する中間記憶アクセス情報収集工程と、
    前記中間記憶アクセス情報収集工程で収集された前記ヒット情報に基づき、少なくとも前記上位中間記憶機能の前記中間記憶領域の容量を決定する中間記憶領域容量決定工程と、
    を含む、ストレージの制御方法。
  16. 前記中間記憶アクセス情報収集工程は、前記アクセス要求に対する前記下位中間記憶機能の前記中間記憶領域でのヒット情報に基づき、前記アクセス要求に対して前記上位中間記憶機能でヒットするのに必要な前記上位中間記憶機能の前記中間記憶領域の容量を算出し、前記上位中間記憶機能において算出された前記容量の前記中間記憶領域でヒットしたものとして集計する、請求項15記載のストレージの制御方法。
  17. 前記中間記憶アクセス情報収集工程は、前記中間記憶アクセス情報収集部は、前記アクセス要求に対する前記上位中間記憶機能の前記中間記憶領域でのヒット情報に基づき、前記アクセス要求に対して前記上位中間記憶機能でヒットするのに必要な前記上位中間記憶機能の前記中間記憶領域の容量を算出し、前記上位中間記憶機能において算出された前記容量の前記中間記憶領域でヒットしたものとして集計する、請求項15又は16記載のストレージの制御方法。
  18. 前記上位中間記憶機能と前記下位中間記憶機能に対してデータを格納する場合、前記データを前記上位中間記憶機能に格納し、
    前記上位中間記憶機能に格納しきれなくなったデータが前記下位中間記憶機能に格納される、請求項15乃至17のいずれか1項に記載のストレージの制御方法。
  19. 前記中間記憶領域容量決定工程は、前記上位中間記憶機能の前記中間記憶領域におけるヒット頻度がより大となるように、前記上位中間記憶機能の前記中間記憶領域の容量を決定する、請求項15乃至18のいずれか1項に記載のストレージの制御方法。
  20. データを格納する記憶媒体と、前記記憶媒体における物理的又は論理的な単位領域に対応する少なくとも1つの中間記憶領域を備えた上位中間記憶機能と、前記上位中間記憶機能の前記中間記憶領域に対応する少なくとも1つの中間記憶領域を備えた下位中間記憶機能を備えたストレージを構成するコンピュータに、
    アクセス要求に対して、前記上位中間記憶機能及び前記下位中間記憶機能の前記中間記憶領域でのヒット情報に基づき、前記上位中間記憶機能の前記中間記憶領域を増加させた場合と、前記上位中間記憶機能の前記中間記憶領域の容量を減少させた場合の一方又は両方におけるヒット情報を収集する中間記憶アクセス情報収集処理と、
    前記中間記憶アクセス情報収集処理で収集された前記ヒット情報に基づき、少なくとも前記上位中間記憶機能の前記中間記憶領域の容量を決定する中間記憶領域容量決定処理と、
    を実行させるプログラム。
  21. 前記中間記憶アクセス情報収集処理は、前記アクセス要求に対する前記下位中間記憶機能の前記中間記憶領域でのヒット情報に基づき、前記アクセス要求に対して前記上位中間記憶機能でヒットするのに必要な前記上位中間記憶機能の前記中間記憶領域の容量を算出し、前記上位中間記憶機能において算出された前記容量の前記中間記憶領域でヒットしたものとして集計する、請求項20記載のプログラム。
  22. 前記中間記憶アクセス情報収集処理は、前記アクセス要求に対する前記上位中間記憶機能の前記中間記憶領域でのヒット情報に基づき、前記アクセス要求に対して前記上位中間記憶機能でヒットするのに必要な前記上位中間記憶機能の前記中間記憶領域の容量を算出し、前記上位中間記憶機能において算出された前記容量の前記中間記憶領域でヒットしたものとして集計する、請求項20又は21記載のプログラム。
  23. 前記上位中間記憶機能と前記下位中間記憶機能に対してデータを格納する場合、前記データを前記上位中間記憶機能に格納し、
    前記上位中間記憶機能に格納しきれなくなったデータを前記下位中間記憶機能に格納する処理を、前記コンピュータに実行させる請求項20乃至22のいずれか1項に記載のプログラム。
JP2012146581A 2012-06-29 2012-06-29 ストレージ装置とプログラムと方法 Pending JP2014010604A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012146581A JP2014010604A (ja) 2012-06-29 2012-06-29 ストレージ装置とプログラムと方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012146581A JP2014010604A (ja) 2012-06-29 2012-06-29 ストレージ装置とプログラムと方法

Publications (1)

Publication Number Publication Date
JP2014010604A true JP2014010604A (ja) 2014-01-20

Family

ID=50107280

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012146581A Pending JP2014010604A (ja) 2012-06-29 2012-06-29 ストレージ装置とプログラムと方法

Country Status (1)

Country Link
JP (1) JP2014010604A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016035687A (ja) * 2014-08-04 2016-03-17 日本電気株式会社 ディスクアレイ装置およびディスクアレイ装置の制御方法
US9632950B2 (en) 2014-09-01 2017-04-25 Fujitsu Limited Storage control device controlling access to a storage device and access controlling method of a storage device
JP2017533532A (ja) * 2015-04-08 2017-11-09 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 大容量メモリ内データベース用の負荷分散
US11669450B2 (en) 2021-03-09 2023-06-06 Fujitsu Limited Computer including cache used in plural different data sizes and control method of computer

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016035687A (ja) * 2014-08-04 2016-03-17 日本電気株式会社 ディスクアレイ装置およびディスクアレイ装置の制御方法
US9632950B2 (en) 2014-09-01 2017-04-25 Fujitsu Limited Storage control device controlling access to a storage device and access controlling method of a storage device
JP2017533532A (ja) * 2015-04-08 2017-11-09 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 大容量メモリ内データベース用の負荷分散
US10445344B2 (en) 2015-04-08 2019-10-15 Huawei Technologies Co., Ltd. Load balancing for large in-memory databases
US11669450B2 (en) 2021-03-09 2023-06-06 Fujitsu Limited Computer including cache used in plural different data sizes and control method of computer

Similar Documents

Publication Publication Date Title
EP3210121B1 (en) Cache optimization technique for large working data sets
US9529724B2 (en) Layered architecture for hybrid controller
US10877664B2 (en) Memory system having a plurality of writing modes
JP4813843B2 (ja) ストレージ装置、ディスクキャッシュ制御方法及びディスクキャッシュの容量割当方法
JP6678230B2 (ja) ストレージ装置
US10671309B1 (en) Predicting usage for automated storage tiering
US9971698B2 (en) Using access-frequency hierarchy for selection of eviction destination
JP6323445B2 (ja) ストレージ装置と方法及びプログラム
CN106648469B (zh) 一种缓存数据处理方法、装置和存储控制器
JP5531091B2 (ja) 計算機システム及びその負荷均等化制御方法
JP6711121B2 (ja) 情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラム
JP2003131946A (ja) キャッシュメモリ制御装置及び方法
US20130046931A1 (en) Optimizing locations of data accessed by client applications interacting with a storage system
JP6283770B2 (ja) ストレージシステム
US10853252B2 (en) Performance of read operations by coordinating read cache management and auto-tiering
US9699254B2 (en) Computer system, cache management method, and computer
JP2014010604A (ja) ストレージ装置とプログラムと方法
JP7197783B2 (ja) 情報処理システム、管理装置および管理プログラム
US20170024147A1 (en) Storage control device and hierarchized storage control method
JP3431581B2 (ja) ディスク制御システムおよびデータ再配置方法
JP6353981B2 (ja) ストレージシステム、及び、記憶制御方法
Li et al. Efficient LSM-tree Key-value data management on hybrid SSD/HDD zoned storage
WO2014147840A1 (ja) アクセス制御プログラム、ディスク装置及びアクセス制御方法
JP6273678B2 (ja) ストレージ装置
KR102529333B1 (ko) 캐시 관리 장치 및 방법