(57)【要約】【課題】キャッシュメモリを効率的に使用できるようにする。【解決手段】データを格納する第１の記憶装置３０と、第２の記憶装置４０の電源断状態において、書き込み先が第２の記憶装置４０である第１データを第１の記憶装置３０に記録し、第２の記憶装置４０の電源投入後に、第１の記憶装置３０に記録された第１データを第２の記憶装置４０に移動させる代理格納処理部２６と、代理格納処理部２６が第１の記憶装置３０に記録された第１データを第２の記憶装置４０に格納させた後に、キャッシュメモリ２０２から第１データを削除するキャッシュ解放部２５とを備える。【選択図】図１
2015176575.tif 000002
【特許請求の範囲】
【請求項１】
データを格納する第１の記憶装置と、
第２の記憶装置の電源断状態において、書き込み先が当該第２の記憶装置である第１データを前記第１の記憶装置に記録し、前記第２の記憶装置の電源投入後に、前記第１の記憶装置に記録された前記第１データを前記第２の記憶装置に移動させる代理格納処理部と、
前記代理格納処理部が前記第１の記憶装置に記録された前記第１データを前記第２の記憶装置に格納させた後に、キャッシュメモリから前記第１データを削除するキャッシュ解放部と
を備えることを特徴とする、ストレージ装置。
【請求項２】
書き込み先が前記第１の記憶装置である第２データが前記キャッシュメモリから押し出された場合に、当該押し出された第２データに関する情報を押し出し履歴格納部に格納する押し出し履歴処理部と、
前記キャッシュメモリに空き領域が生じると、前記押し出し履歴格納部から前記押し出された前記第２データに関する情報を読み出し、当該第２データに関する情報に基づいて前記第１の記憶装置から読み出した第２データを、前記キャッシュメモリに格納する載せ直し処理部と
を備えることを特徴とする、請求項１記載のストレージ装置。
【請求項３】
前記キャッシュメモリにおける前記第１データのサイズに応じて、前記押し出し履歴格納部の格納領域サイズを変更する押し出し履歴格納領域調節部をそなえることを特徴とする、請求項２記載のストレージ装置。
【請求項４】
前記押し出し履歴処理部が、リード要求受信時に前記キャッシュメモリにおいてキャッシュミスが生じた場合に、前記リード要求に基づいて前記押し出し履歴格納部を検索し、当該押し出し履歴格納部において前記リード要求にかかる前記第２データに関する情報が検出された場合には、当該押し出し履歴格納部から当該第２データに関する情報を削除する
ことを特徴とする、請求項２又は３記載のストレージ装置。
【請求項５】
第２の記憶装置の電源断状態において、書き込み先が当該第２の記憶装置である第１データを第１の記憶装置に記録し、前記第２の記憶装置の電源投入後に、前記第１の記憶装置に記録された前記第１データを前記第２の記憶装置に移動させる処理と、
前記第１の記憶装置に記録された前記第１データを前記第２の記憶装置に格納させた後に、キャッシュメモリから前記第１データを削除する処理と
を備えることを特徴とする、キャッシュ制御方法。
【請求項６】
第２の記憶装置の電源断状態において、書き込み先が当該第２の記憶装置である第１データを第１の記憶装置に記録し、前記第２の記憶装置の電源投入後に、前記第１の記憶装置に記録された前記第１データを前記第２の記憶装置に移動させる処理と、
前記第１の記憶装置に記録された前記第１データを前記第２の記憶装置に格納させた後に、キャッシュメモリから前記第１データを削除する処理と
をコンピュータに実行させることを特徴とする、キャッシュ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置，キャッシュ制御方法及びキャッシュ制御プログラムに関する。
【背景技術】
【０００２】
一般に、ストレージ装置はキャッシュ機構を搭載することでその性能向上を図っている。キャッシュ機構とは、頻繁に使われるデータや時間的局所性のあるデータをメモリ上に配置（キャッシュ）することで、ＨＤＤ（Hard Disk Drive）への読み出し・書き込みの高レイテンシを隠ぺいする仕組みのことである。このキャッシュ機構は、ＨＤＤへの読み込み・書き込みに比べて、ＣＰＵ（Central Processing Unit）からメモリへのアクセスレイテンシがはるかに小さいという特性を利用している。
【０００３】
ストレージの分野では、近年、ビッグデータをキーワードとした研究・開発が盛んに行なわれている。ビッグデータストレージはその総容量が数十〜数百ＰＢ（ペタバイト）にまで達しており、近いうちに１ＥＢ（エクサバイト）にまで到達するだろうと言われている。
その中で問題になりつつあるのがＴＯＣ（Total Cost of Ownership；総所有コスト）である。例えば、総容量１ＥＢのシステムを組もうとした場合に、１ＴＢ（テラバイト）のＳＡＳ（Serial Attached SCSI（Small Computer System Interface））ドライブを用いると1,000,000台ものドライブが必要であり電力費用だけで毎月数千万円かかることになる。
【０００４】
この莫大な電力費用を減らすためにはドライブの電源を落とすことが必要不可欠であるが、ドライブの電源を落としたとしても、そのドライブへの読み出し・書き込みが発生してしまうとドライブの電源を入れる必要がある。そのため、ユーザからのリクエスト次第でドライブを不用意に起動させ、その結果、電力削減を果たせない場合がある。
このようなストレージ装置の消費電力量を低減するための手法として、ライトオフローディング（Write Off-Loading）と呼ばれる手法が知られている。
【０００５】
ライトオフローディングにおいては、電源オフになっているドライブに書き込みがあった場合に、一旦、他の電源がオンになっているドライブにおける使用していないデータ格納領域（ログ領域）にデータを書き込む（オフロードする）。そして、電源オフだった本来の書き込み先のドライブが電源オンになると、オフロードしていたデータをこのドライブに書き込む（書き戻す）。
【０００６】
これにより、電源オフのドライブへの書き込みが要求されたとしても、不用意にドライブを起こす必要がなく、消費電力を削減することができる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１１−２８８３８７号公報
【特許文献２】特開平８−６３３９７号公報
【特許文献３】特開２００７−２２６５９６号公報
【特許文献４】特開平４−１４８２２５号公報
【非特許文献】
【０００８】
【非特許文献１】Dushyanth Narayanan, et al. “Write Off-Loading: Practical Power Management for Enterprise Storage”, FAST ’08: 6th USENIX Conference on File and Storage Technologies, February 26-29, 2008
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、このような従来のストレージシステムにおいて、オフロードしていたデータの書き戻しを行なうと、書き戻し元のドライブにおいては、書き戻したデータはそれ以降使われることはなく、キャッシュしておく価値のないデータとなる。
すなわち、書き戻し元のドライブにおいては、書き戻しを行なった直後においては、キャッシュにはオフロードしていたデータサイズ分だけ価値のないデータを格納している状態と言える。従って、従来のストレージシステムにおいては、オフロードの書き戻し後において、キャッシュ領域を効率的に用いることができないという課題がある。
【００１０】
１つの側面では、本発明は、キャッシュメモリを効率的に使用できるようにすることを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の１つとして位置付けることができる。
【課題を解決するための手段】
【００１１】
このため、ストレージ装置は、第２の記憶装置の電源断状態において、書き込み先が当該第２の記憶装置である第１データを前記第１の記憶装置に記録し、前記第２の記憶装置の電源投入後に、前記第１の記憶装置に記録された前記第１データを前記第２の記憶装置に移動させる代理格納処理部と、前記代理格納処理部が前記第１の記憶装置に記録された前記第１データを前記第２の記憶装置に格納させた後に、キャッシュメモリから前記第１データを削除するキャッシュ解放部とを備える。
【発明の効果】
【００１２】
一実施形態によれば、キャッシュメモリを効率的に使用できる。
【図面の簡単な説明】
【００１３】
【図１】実施形態の一例としてのストレージシステムの構成を模式的に示す図である。
【図２】実施形態の一例としてのストレージシステムにおける履歴管理部の処理を説明するための図である。
【図３】実施形態の一例としてのストレージシステムにおける載せ直し処理部の処理を説明するための図である。
【図４】実施形態の一例としてのストレージシステムにおける各機能構成部の関係を例示する図である。
【図５】実施形態の一例としてのストレージシステムにおけるユーザからＩ／Ｏアクセスがあった場合のキャッシュ処理の概要を説明するためのフローチャートである。
【図６】実施形態の一例としてのストレージシステムにおける履歴格納領域のサイズ変更方法を説明するためのフローチャートである。
【図７】実施形態の一例としてのストレージシステムにおける許容サイズの算出アルゴリズムを例示する図である。
【図８】実施形態の一例としてのストレージシステムのサイズ調整機能の停止状態の設定方法を説明するためのフローチャートである。
【図９】実施形態の一例としてのストレージシステムの載せ直し処理部によるオンロードデータのキャッシュ領域への載せ直し処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本ストレージ装置，キャッシュ制御方法及びキャッシュ制御プログラムに係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。又、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【００１５】
図１は実施形態の一例としてのストレージシステムの構成を模式的に示す図である。
本実施形態のストレージシステム１は、図示しない１つ以上の上位装置に接続され、この上位装置に対して記憶領域を提供するものである。なお、上位装置は、例えば、サーバ機能をそなえたコンピュータ（情報処理装置）である。
本ストレージシステム１は、図１に示すように、ストレージサーバ２及び複数（図１に示す例では２つ）の記憶装置３０，４０を備える。
【００１６】
記憶装置３０，４０は、ハードディスクドライブ（ＨＤＤ）、ＳＳＤ（Solid State Drive）等の記憶装置であって、種々のデータを格納するものである。これらの記憶装置３０，４０の記憶領域がストレージサーバ２により上位装置に提供される。
ストレージサーバ２は、サーバ機能を備えるコンピュータ（情報処理装置）であり、例えば、上位装置からの要求に従い、記憶装置３０，４０へのデータの書き込みや読み出しを制御する。ストレージサーバ２は、例えば、ＩＡ（Intel Architecture）サーバである。
【００１７】
ストレージサーバ２は、図２に示すように、ＣＰＵ２０１，メモリ２０２，ディスプレイ２０５，マウス２０７及びキーボード２０６を備える。
ディスプレイ２０５は種々の情報を表示する表示装置であり、例えば、液晶ディスプレイ装置やＣＲＴ（Cathode Ray Tube）ディスプレイ装置である。
マウス２０７及びキーボード２０６はオペレータが種々の入力を行なうために操作する入力装置である。
【００１８】
メモリ２０２はＲＯＭ（Read Only Memory）及びＲＡＭ（Random Access Memory）を含む記憶装置である。メモリ２０２のＲＯＭには、ストレージ制御に係るソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ２０２上のソフトウェアプログラムは、ＣＰＵ２０１に適宜読み込まれて実行される。
また、メモリ２０２のＲＡＭは、一次記憶メモリあるいはワーキングメモリとして利用される。このメモリ２０２のＲＡＭは、種々のデータやプログラムを一時的に格納する記憶装置であり、キャッシュ領域２０２ａ，履歴格納領域２０２ｂ及び図示しないメモリ領域をそなえる。
【００１９】
メモリ領域には、ＣＰＵ２０１がプログラムを実行する際に、データやプログラムを一時的に格納・展開して用いる。キャッシュ領域２０２ａは、上位装置から受信したデータや、上位装置に対して送信するデータを一時的に格納する。キャッシュ領域２０２ａには、記憶装置３０，４０に書き込まれるデータや記憶装置３０，４０から読み出されるデータが一時的に格納される。従って、メモリ２０２はキャッシュメモリとしての機能を有する。このキャッシュ領域２０２ａへのデータの格納や取り出しは、後述するキャッシュ処理部２５によって行なわれる。
なお、記憶装置３０，４０間でデータの移動を行なう際には、キャッシュ領域２０２ａには、この移動されるデータを一時的に格納してもよい。この場合、例えば、記憶装置３０から記憶装置４０へデータを移動させる場合には、記憶装置３０から読み出されたデータが、一旦、キャッシュ領域２０２ａに格納される。そして、その後、このキャッシュ領域２０２ａに格納されたデータが記憶装置４０に格納される。このような記憶装置３０から記憶装置４０へのデータの移動は、後述するオフロードデータの書き戻し処理において行なわれる。
【００２０】
ただし、書き戻しの際は使われるデータは全てオフロードデータだとわかっているので、書き戻しの処理で読んだり、書いたりしたオフロードデータはキャッシュ領域２０２ａにはわざとおかない（キャッシュ領域２０２ａをバイパスする）、いわゆる最適化を行なってもよい。
履歴格納領域（押し出し履歴格納部）２０２ｂには、後述するオンロードデータ（第２データ）がキャッシュ領域２０２ａから押し出された場合に、この押し出されたオンロードデータに関する情報（例えば、データ名）が押し出し履歴として格納される。
【００２１】
ＣＰＵ２０１は、種々の制御や演算を行なう処理装置であり、メモリ２０２に格納されたＯＳ（Operating System）やプログラムを実行することにより、種々の機能を実現する。例えば、ＣＰＵ２０１は、図１に示すように、キャッシュ制御部２１１としての機能を実現する。
すなわち、ＣＰＵ２０１が、キャッシュ制御プログラムを実行することにより、キャッシュ制御部２１１として機能する。
【００２２】
なお、このキャッシュ制御部２１１としての機能を実現するためのプログラム（キャッシュ制御プログラム）は、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【００２３】
キャッシュ制御部２１１としての機能を実現する際には、内部記憶装置（本実施形態ではメモリ２０２のＲＡＭやＲＯＭ）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態ではＣＰＵ２０１）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
キャッシュ制御部（メモリ制御部）２１１は、メモリ２０２へのデータの書き込みや読み出しを制御する。このキャッシュ制御部２１１は、図１に示すように、オンロードデータ判定部２１，履歴サイズ調節部２２，履歴管理部２３，載せ直し処理部２４，キャッシュ処理部２５及びオフロード処理部２６としての機能を備える。
【００２４】
オフロード処理部２６は、ライトオフローディング機能を実現する。ライトオフローディング機能においては、オフロード処理部２６は、電源オフになっている記憶装置に対する書き込み要求があった場合に、一旦、電源がオンになっている他の記憶装置における使用していないデータ格納領域（ログ領域）にデータを書き込む。このように、本来のデータ格納先の記憶装置とは異なる他の記憶装置にデータを格納することをオフロードするという場合がある。
【００２５】
また、このような本来のデータ格納先の記憶装置とは異なる他の記憶装置に格納されているデータをオフロードデータという。これに対して、オフロードされていない、本来のデータ格納先である記憶装置にあるべきデータをオンロードデータという。
そして、ライトオフローディング機能においては、電源オフだった本来の書き込み先の記憶装置が電源オンになると、オフロードしていたデータをこの記憶装置に書き込む（書き戻す）。
【００２６】
図１に例示するストレージシステム１において、記憶装置の消費電力を低減するために、所定期間データアクセスのない記憶装置は電源オフ状態とする制御が行なわれるものとし、例えば記憶装置（第２の記憶装置）４０が電源オフの状態であるとする。
この電源オフ状態の記憶装置４０に対する書き込み要求が行なわれると、オフロード処理部２６は、この記憶装置４０が書き込み先であるデータ（第１データ）を、記憶装置４０の代わりに、電源オン状態の他の記憶装置（第１の記憶装置）３０に一旦書き込む。
【００２７】
つまり、オフロード処理部（代理格納処理部）２６は、記憶装置（第２の記憶装置）４０の電源断状態において、書き込み先がこの記憶装置４０であるオフロードデータ（第１データ）を他の記憶装置（第１の記憶装置）３０に記録する制御を行なう。
その後、電源オフ状態であった本来の書き込み先の記憶装置４０が電源オンになると、オフロード処理部２６は、記憶装置３０にオフロードしていたデータを記憶装置４０に書き戻す。
【００２８】
つまり、オフロード処理部２６は、記憶装置（第２の記憶装置）４０の電源投入後に、記憶装置３０に記録されたオフロードデータ（第１データ）を記憶装置４０に移動させる制御を行なう。
このように、ライトオフローディング機能によれば、電源オフ状態の記憶装置４０への書き込みが要求されたとしても記憶装置４０を起こす必要がなく、消費電力を削減することができる。なお、このライトオフローディングは既知の技術であり、その詳細な説明は省略する。
【００２９】
オンロードデータ判定部２１は、処理対象のデータがオンロードデータであるかオフロードデータであるかを判定する。例えば、オンロードデータ判定部２１は、記憶装置３０，４０に格納されるべきデータの識別情報（例えばデータ名）を管理する管理情報（図示省略）を参照することで、データがオンロードデータであるか否かを判断する。このような管理情報は、例えば、上位装置から受信するＩ／Ｏ（Input/Output）要求等に基づいて作成・管理される。
【００３０】
キャッシュ処理部（キャッシュ解放部）２５は、メモリ２０２のキャッシュ領域２０２ａへのデータの格納や読み出しを制御し、また、キャッシュ領域２０２ａに格納されたデータや出力されたデータを管理する。このキャッシュ処理部２５は、既知のキャッシュ置換アルゴリズム（Cache Replacement Algorithm）を実現する。キャッシュ置換アルゴリズムとして、例えば、ＬＲＵ（Least Recently Used）アルゴリズムを用いることができる。
【００３１】
また、上述したオフロード処理部２６によりオフロードされたデータに対してアクセスがあった場合には、キャッシュ処理部２５により、このオフロードデータがメモリ２０２のキャッシュ領域２０２ａに格納される。
ここで、例えば、オフロード処理部２６による書き戻しが始まった時点で、すでにオフロードデータがキャッシュ領域２０２ａに載っている場合が考えられる。例えば、書き戻しが始まる少し前にオフロード先に書き込みがあり、そのデータに対してアクセスが発生すると、キャッシュ処理部２５は、このオフロードデータをキャッシュ領域２０２ａに格納する。
【００３２】
このような場合は書き戻しが始まる前にまたアクセスされるかもしれないので、キャッシュヒット率の観点からオフロードデータと言えど、キャッシュ領域２０２ａに載せざるを得ない状況となる。このように、オフロードデータの書き戻しが始まる前からキャッシュ領域２０２ａに載っているオフロードデータは、上述の如き最適化をしてもキャッシュ領域２０２ａに載ったままなので、書き戻し後には不要なデータとなる。
【００３３】
また、キャッシュ処理部２５は、記憶装置３０に記録されたオフロードデータを上述したオフロード処理部（代理格納処理部）２６が記憶装置４０に書き戻した後に、メモリ２０２のキャッシュ領域２０２ａからオフロードデータを削除する制御も行なう。なお、メモリ２０２からのオフロードデータの削除は、既知の種々の手法を用いて実現することができ、その詳細な説明は省略する。
【００３４】
このように、キャッシュ処理部２５がオフロードデータをキャッシュ領域２０２ａから削除することによりキャッシュ領域２０２ａに空き領域が生じる。
履歴管理部（押し出し履歴処理部）２３は、メモリ２０２のキャッシュ領域２０２ａから押し出されたオンロードデータを管理するものであり、このキャッシュ領域２０２ａから押し出されたオンロードデータに関する情報をメモリ２０２の履歴格納領域２０２ｂに格納する。オンロードデータに関する情報とは、オンロードデータを特定する情報であり、例えばデータ名や識別番号である。以下、オンロードデータに関する情報としてデータ名を用いる例について示す。例えば、履歴格納領域２０２ｂは、オンロードデータのデータ名を格納する可変サイズのリスト構造を有する。
【００３５】
履歴管理部２３は、キャッシュ領域２０２ａから押し出されたオンロードデータについて、そのデータ名を履歴格納領域２０２ｂに格納する。履歴格納領域２０２ｂにおいては、データ名が入力された順に格納される。
履歴格納領域２０２ｂにオンロードデータのデータ名が追加されるのは、データにアクセスがあったがキャッシュミスが発生してキャッシュ領域２０２ａからあふれてしまい結果としてオンロードデータが追い出されてしまった場合である。あふれたオンロードデータのデータ名は履歴格納領域２０２ｂのリスト構造の最後尾に追加される。
【００３６】
なお、オフロードデータがキャッシュ領域２０２ａからあふれた場合は、履歴格納領域２０２ｂへの登録は行なわない。
以下、履歴格納領域２０２ｂに格納されたデータ名を履歴情報という場合がある。
図２は実施形態の一例としてのストレージシステムにおける履歴管理部２３の処理を説明するための図である。この図２に示す例においては、キャッシュ領域２０２ａは空きがない状態（キャッシュフル）であり、また、この直前の状態では履歴格納領域２０２ｂにデータ名Ｄ１，Ｄ２が格納されているものとする。
【００３７】
この状態において、上位装置からデータ名Ｄ４のデータ（以下、データＤ４という）へのアクセスが生じると、上述したキャッシュ処理部２５により、記憶装置３０からから読み出されたデータＤ４がキャッシュ領域２０２ａに格納される。
この際、データＤ４をキャッシュ領域２０２ａに格納することにより、代わりにキャッシュ領域２０２ａからデータ名Ｄ３のデータが追い出されるものとする。この追い出されたデータがオンロードデータである場合に、履歴管理部２３は、このキャッシュ領域２０２ａから追い出されたオンロードデータのデータ名“Ｄ３”を履歴格納領域２０２ｂに格納する。
【００３８】
なお、キャッシュ領域２０２ａから追い出されたデータがオフロードデータである場合には、そのデータ名は履歴格納領域２０２ｂに格納されることはなく、当該データは破棄される。
履歴管理部２３は、上位装置からのリード要求受信時に、キャッシュ領域２０２ａにおいてキャッシュミスが生じた場合に、そのリード要求に基づいて履歴格納領域２０２ｂを検索する。すなわち、押し出し履歴処理部２３は、履歴格納領域２０２ｂに格納されているデータ名に対して受信したリード要求の対象（リード対象）であるデータ名を検索する。
【００３９】
そして、押し出し履歴処理部２３は、履歴格納領域２０２ｂにおいてリード対象のデータ名が検出された場合には、その履歴格納領域２０２ｂから当該第２データに関する情報を削除する。当該データは、キャッシュミスが生じたデータであることから、記憶装置３０もしくは記憶装置４０から読み出され、その後、キャッシュ領域２０２ａに格納されることになる。なぜなら、当該データを履歴格納領域２０２ｂに格納しておく必要性がなくなるからである。
【００４０】
載せ直し処理部２４は、キャッシュ領域２０２ａに空き領域が生じると、履歴格納領域２０２ｂからオンロードデータに関する情報（本実施形態ではデータ名）を読み出し、このデータ名で表されるオンロードデータを記憶装置３０から読み出す。すなわち、載せ直し処理部２４は、履歴格納領域２０２ｂを参照して、キャッシュ領域２０２ａから押し出されたオンロードデータのデータ名を知る。
【００４１】
さらに、載せ直し処理部２４は、この記憶装置３０から読み出したオンロードデータを、メモリ２０２のキャッシュ領域２０２ａに格納する。すなわち、載せ直し処理部２４は、先にキャッシュ領域２０２ａから追い出されたオンロードデータを、当該キャッシュ領域２０２ａに空きが生じると、記憶装置３０から読み出し、再度、キャッシュ領域２０２ａに載せ直す。
【００４２】
また、載せ直し処理部２４は、履歴格納領域２０２ｂに格納されているデータ名を、履歴管理部２３により履歴格納領域２０２ｂに格納された順とは逆順で読み出す。すなわち、載せ直し処理部２４は、履歴格納領域２０２ｂから、当該履歴格納領域２０２ｂに格納されてから経過した時間が最も短いものから順にデータ名を読み出す。
また、履歴格納領域２０２ｂが一杯になった場合には、履歴格納領域２０２ｂに格納されてから最も長い時間が経ったものから順番に、履歴格納領域２０２ｂから押し出される。つまり、載せ直し処理部２４は、ＬＲＵアルゴリズムをキャッシュ置換アルゴリズムとして用いて履歴格納領域２０２ｂからデータ名を押し出す。
【００４３】
ただし、この載せ直し処理部２４や上述したキャッシュ処理部２５が用いるキャッシュ置換アルゴリズムはＬＲＵアルゴリズムに限定されるものではなく、適宜、変形して実施することができる。例えば、ＬＲＵアルゴリズムに代えて既知のＡＲＣ（Adaptive Replacement Cache）アルゴリズムを用いてもよい。なお、ＡＲＣアルゴリズム等のようにアルゴリズム内部で複数本のＬＲＵリストを用いる場合には、どのリストからあふれたのかを記憶する構造を備える必要がある。これに対して、上述のＬＲＵアルゴリズムをキャッシュ置換アルゴリズムとして用いる場合には、単純にリスト（キュー）のＬＲＵ側にデータを追加すればよい。
【００４４】
図３は実施形態の一例としてのストレージシステムにおける載せ直し処理部２４の処理を説明するための図である。この図３に示す例においては、キャッシュ領域２０２ａは空きがある状態であり、また、履歴格納領域２０２ｂにデータ名Ｄ１，Ｄ２，Ｄ３が格納されている。これらのデータ名は、データ名Ｄ１，Ｄ２，Ｄ３の順で履歴格納領域２０２ｂに格納されたものとし、データ名Ｄ３がリスト構造の最後尾であるとする。
【００４５】
上述の如く、キャッシュ処理部２５が、記憶装置４０への書き戻しが完了したオフロードデータをキャッシュ領域２０２ａから削除することによりキャッシュ領域２０２ａに空き領域が生じる。
載せ直し処理部２４は、キャッシュ領域２０２ａに空きが生じると、履歴格納領域２０２ｂから、格納されてから経過した時間が最も短い（最後尾の）データ名を読み出し、記憶装置３０から、このデータ名によって特定されるオンロードデータを読み出す。そして、載せ直し処理部２４は、読み出したオンロードデータをキャッシュ領域２０２ａに載せ直す。
【００４６】
図３に示す例においては、載せ直し処理部２４は、履歴格納領域２０２ｂから、データ名Ｄ３を読み出し、記憶装置３０から、このデータＤ３で示されるデータを読み出し、キャッシュ領域２０２ａに格納する。
そして、以下、載せ直し処理部２４は、キャッシュ領域２０２ａが満杯になるまで、履歴格納領域２０２ｂからのデータ名の読み出しと、このデータ名で特定されるオンロードデータの記憶装置３０からの読み出し及びキャッシュ領域２０２ａへの格納とを繰り返し行なう。
【００４７】
また、この載せ直し処理部２４によるキャッシュ領域２０２ａへのオンロードデータの載せ直し処理は、ユーザーエクスペリエンスを阻害しないよう記憶装置３０へのＩ／Ｏ負荷が低い状態で行なわれる。Ｉ／Ｏ負荷は、例えば、ディスクビジー率やＩＯＰＳ（Input Output Per Second）の値を参照することで判断することができる。
上述した載せ直し処理は、キャッシュ領域２０２ａにおいて、オフロードデータの削除により空いた領域が、ユーザからのアクセスのキャッシュミスによるデータの追加と、履歴格納領域２０２ｂからの載せ直し機能によるデータの追加とによって満杯になったら停止される。
【００４８】
履歴サイズ調節部２２は、キャッシュ領域２０２ａにおけるオフロードデータのデータサイズに応じて、履歴格納領域２０２ｂのサイズを変更する。具体的には、履歴サイズ調節部２２は、キャッシュ領域２０２ａにおけるオフロードデータの数に合わせて履歴格納領域２０２ｂのサイズ調節を行なう。
履歴サイズ調節部２２は、履歴格納領域２０２ｂ内のオンロードデータのデータ名の数が、キャッシュ領域２０２ａ内におけるオフロードデータの数に一致するように制御する。キャッシュ領域２０２ａへのデータの格納及び読出は所定サイズ単位で行なわれことを前提とするものである。
【００４９】
キャッシュ領域２０２ａへ書き戻せるデータ量は、最大でキャッシュ領域２０２ａに格納されているオフロードデータのデータ量であり、それ以上の数のデータを履歴格納領域２０２ｂで管理しても無駄である。そこで、本ストレージシステム１においては、履歴サイズ調節部２２が履歴格納領域２０２ｂのサイズ（格納するデータ名の数）をキャッシュ領域２０２ａ内におけるオフロードデータの数に一致させるように調節する。
【００５０】
履歴サイズ調節部２２は、ユーザからのＩ／Ｏ要求の結果、キャッシュ領域２０２ａに、何が入って、また、キャッシュ置換アルゴリズムの結果として何が出ていったかの情報を、キャッシュ処理部２５から取得する。
なお、この履歴サイズ調節部２２による履歴格納領域２０２ｂのサイズ調節処理手法の詳細は、図６〜図８を用いて後述する。
【００５１】
図４は実施形態の一例としてのストレージシステム１における各機能構成部の関係を例示する図である。
キャッシュ処理部２５は、例えば、ユーザから入力されるデータの読み書き処理要求に対して、記憶装置３０から読み出したデータや記憶装置３０に書き込むデータを、キャッシュ領域２０２ａに格納する制御を行なう。また、これに伴い、キャッシュ処理部２５は、キャッシュ置換アルゴリズムによりキャッシュ領域２０２ａからデータを追い出す制御を行なう。
【００５２】
また、キャッシュ処理部２５は、記憶装置４０への書き戻しが完了したオフロードデータをキャッシュ領域２０２ａから削除する。これによりキャッシュ領域２０２ａに空き領域が生じる。
オンロードデータ判定部２１は、キャッシュ処理部２５がキャッシュ領域２０２ａにデータを格納する代わりにキャッシュ領域２０２ａから追い出されたデータがオンロードデータであるかオフロードデータであるかを判断する。
【００５３】
履歴管理部２３は、メモリ２０２のキャッシュ領域２０２ａから押し出されたデータがオンロードデータである場合に、このキャッシュ領域２０２ａから押し出されたオンロードデータのデータ名を履歴格納領域２０２ｂに格納する。
載せ直し処理部２４は、キャッシュ領域２０２ａに空き領域が生じると、履歴格納領域２０２ｂから、格納されてから経過した時間が最も短いデータ名を読み出し、記憶装置３０から、このデータ名によって特定されるオンロードデータを読み出す。そして、載せ直し処理部２４は、読み出したオンロードデータをキャッシュ領域２０２ａに載せ直す。すなわち、オンロードデータの載せ直し処理を行なう。
【００５４】
履歴サイズ調節部２２は、履歴格納領域２０２ｂ内のオフロードデータの数が、キャッシュ領域２０２ａ内におけるオフロードデータの数に一致するように制御することで、履歴格納領域２０２ｂのサイズを調節する。
上述の如く構成された、実施形態の一例としてのストレージシステム１におけるユーザからＩ／Ｏアクセスがあった場合のキャッシュ処理の概要を、図５に示すフローチャート（ステップＡ１〜Ａ７）に従って説明する。
【００５５】
ストレージシステム１においてユーザからＩ／Ｏ要求のアクセスがあると、ステップＡ１において、キャッシュ処理部２５が、キャッシュ置換アルゴリズムを用いて、キャッシュ領域２０２ａにおいてキャッシュヒットするか否かを判断する。キャッシュヒットしていれば（ステップＡ１のＹｅｓルート参照）、このヒットしたデータをユーザに応答して、処理を終了する。
【００５６】
キャッシュヒットしなかった場合、つまりキャッシュミスの場合は（ステップＡ１のＮｏルート参照）、ステップＡ２において、Ｉ／Ｏ要求されたデータのデータ名が履歴格納領域２０２ｂの履歴情報に含まれているか否かを確認する。
Ｉ／Ｏ要求されたデータのデータ名が履歴格納領域２０２ｂに格納されていない（ヒットしない）場合には（ステップＡ２のＮｏルート参照）、ステップＡ４に移行する。
【００５７】
また、Ｉ／Ｏ要求されたデータのデータ名が履歴格納領域２０２ｂに格納されている場合には（ステップＡ２のＹｅｓルート参照）、ステップＡ３において、履歴管理部２３が、当該ヒットしたデータ名を履歴格納領域２０２ｂから削除する。これにより、履歴情報に含まれるデータ名のデータ（データ本体）はどれもキャッシュ領域２０２ａに載っていないオンロードデータということが保証される。その後に、ステップＡ４に移行する。
【００５８】
ステップＡ４において、キャッシュ領域２０２ａからあふれたデータがあるか否かを確認する。
キャッシュ領域２０２ａにおいてキャッシュミスが生じた場合に、キャッシュ領域２０２ａがいっぱいである場合には、新たに記憶装置３０から読み出されたデータをキャッシュ領域２０２ａに格納することにより、キャッシュ領域２０２ａからあふれるデータが生じる。
【００５９】
キャッシュ領域２０２ａからあふれたデータが無い場合には（ステップＡ４のＮｏルート参照）、ステップＡ７において、履歴サイズ調節部２２が履歴格納領域２０２ｂのサイズ調節（履歴サイズ調節）を行なった後に、処理を終了する。履歴サイズ調整処理については、図６〜図８を用いて後述する。
一方、キャッシュ領域２０２ａからあふれたデータがある場合には（ステップＡ４のＹｅｓルート参照）、ステップＡ５において、オンロードデータ判定部２１が、あふれたデータがオンロードデータであるか否かを判断する。
【００６０】
キャッシュ領域２０２ａからあふれたデータがオンロードデータである場合には（ステップＡ５のＹｅｓルート参照）、このオンロードデータを将来キャッシュ領域２０２ａに載せ直す可能性があると考えられる。そこで、ステップＡ６において、履歴管理部２３が、キャッシュ領域２０２ａからあふれたオンロードデータのデータ名を履歴格納領域２０２ｂの最後尾に格納する。その後、ステップＡ７に移行する。また、キャッシュ領域２０２ａからあふれたデータがオンロードデータではない場合にも（ステップＡ５のＮｏルート参照）、ステップＡ７に移行する。
【００６１】
次に、実施形態の一例としてのストレージシステム１における履歴格納領域２０２ｂのサイズ変更方法を、図７を参照しながら、図６に示すフローチャート（ステップＢ１〜Ｂ４）に従って説明する。図７は実施形態の一例としてのストレージシステム１の履歴サイズ調節部２２が用いる変数「許容サイズ」の算出アルゴリズムをテーブル状に示す図である。
【００６２】
履歴サイズ調節部２２は、例えば、図７に例示するような算出アルゴリズムで変数「許容サイズ」の値を算出する。後述の如く、履歴サイズ調節部２２は、この許容サイズの値を用いて、履歴格納領域２０２ｂに格納されるオンロードデータのデータ名の数、すなわち、履歴格納領域２０２ｂのサイズ（履歴サイズ）を変更する。
キャッシュ領域２０２ａにおいてキャッシュミスが発生し、その後のＩ／Ｏ要求に応じてキャッシュ領域２０２ａにデータの格納が行なわれた場合に、履歴サイズ調節部２２は、図７に例示する算出アルゴリズムを用いて変数「許容サイズ」の値を変更する（ステップＢ１）。
【００６３】
具体的には、この図７に示す例においては、キャッシュ領域２０２ａにオンロードデータが入り、その代わりにオフロードデータがキャッシュ領域２０２ａから押し出された場合に、許容サイズの値は減算（−１）される。一方、キャッシュ領域２０２ａにオフロードデータが入り、その代わりにオンロードデータがキャッシュ領域２０２ａから押し出された場合に、許容サイズの値は加算（＋１）される。
【００６４】
また、キャッシュ領域２０２ａにオフロードデータが入り、その代わりにキャッシュ領域２０２ａから押し出されたデータが無い場合にも、許容サイズの値は加算（＋１）される。例えば、起動後間もなくでキャッシュ領域２０２ａに空きがある状態や、オフロードデータの書き戻し完了に伴い、キャッシュ領域２０２ａ上のオフロードデータが全削除されてキャッシュ領域２０２ａに空きがあったためキャッシュ処理部２５が何も追い出さなかった場合が、これに相当する。
【００６５】
なお、これら以外の場合には、許容サイズの値は変更されない。
履歴サイズ調節部２２は、キャッシュ処理部２５から取得したキャッシュ領域２０２ａへの入出力の結果に基づき、上述した算出アルゴリズムを適用することで、許容サイズの変更を行なう。
ステップＢ２において、サイズ調節機能が停止状態であるか否かを確認する。具体的には、履歴サイズ調節部２２は、後述するサイズ調整機能の停止状態を示す情報（例えばフラグ）が設定されているか否かを確認する。
【００６６】
サイズ調整機能の停止状態である場合には（ステップＢ２のＹｅｓルート参照）、処理を終了する。
一方、サイズ調整機能の停止状態が解除されている場合には（ステップＢ２のＮｏルート参照）、ステップＢ３において、履歴サイズ調節部２２は、履歴格納領域２０２ｂに格納されるオフロードデータのデータ名の数、すなわち、履歴サイズと許容サイズの値とを比較する。
【００６７】
この比較の結果、履歴サイズが許容サイズよりも大きい場合には（ステップＢ３のＹｅｓルート参照）、ステップＢ４において、履歴サイズ調節部２２は、履歴格納領域２０２ｂに格納されているデータ名のうち、先頭、すなわち、格納されてから経過した時間が最も長いデータ名を削除する。これにより、履歴サイズが減算（−１）されることになる。その後、ステップＢ３に戻る。従って、実際の履歴格納領域２０２ｂのサイズ、すなわち、履歴格納領域２０２ｂ内のデータ数が許容サイズより多い場合には、データ数が許容サイズになるまで、履歴格納領域２０２ｂの先頭からデータ名の削除を行なう。
【００６８】
履歴サイズが許容サイズ以下の場合には（ステップＢ３のＮｏルート参照）、処理を終了する。
次に、図６のステップＢ２に示したサイズ調整機能の停止状態の設定方法を、図８に示すフローチャート（ステップＣ１〜Ｃ４）を用いて説明する。
本ストレージシステム１の起動時等の動作開始時においては、初期状態として、変数「許容サイズ」の値には０が設定され、また、サイズ調節停止状態が設定される。
【００６９】
ステップＣ１において、履歴サイズ調節部２２は、オフロードデータが書き戻し先である記憶装置４０に対してオフロード処理部２６により書き戻されたか否かを確認する。
この確認の結果、オフロードデータの書き戻しが行なわれていない場合には（ステップＣ１のＮｏルート参照）、ステップＣ１に戻り、書き戻しが行なわれるまでステップＣ１の確認処理が繰り返し実行される。
【００７０】
オフロードデータの書き戻しが行なわれた場合には（ステップＣ１のＹｅｓルート参照）、ステップＣ２において、履歴サイズ調節部２２は許容サイズの値を０にし、また、サイズ調整機能の停止状態を示す情報を設定する。具体的には、履歴サイズ調節部２２は、メモリ２０２の図示しない領域等にサイズ調整機能の停止状態を示すフラグ等を設定する。
【００７１】
すなわち、オフロードデータの書き戻しが行なわれた直後には、一時的に履歴格納領域２０２ｂのサイズ調整機能を停止させる。これにより、書き戻しによりキャッシュ領域２０２ａ中においてゼロとなったオフロードデータの数に合わせて、履歴格納領域２０２ｂのオンロードデータのデータ名が全削除（サイズが０に）されてしまうことを阻止する。
その後、ステップＣ３において、履歴サイズ調節部２２は、載せ直し処理部２４によるキャッシュ領域２０２ａへのオンロードデータの載せ直し処理が完了したか否かを完了する。この載せ直し処理部２４による載せ直し処理が完了していない場合には（ステップＣ３のＮｏルート参照）ステップＣ３に戻り、載せ直し処理が完了するまで、ステップＣ３の確認処理が繰り返し行なわれる。
【００７２】
載せ直し処理が完了すると（ステップＣ３のＹｅｓルート参照）、ステップＣ４において、ステップＣ２で停止状態に設定したサイズ調整状態を解除する。
従って、サイズ調整停止状態は、載せ直し処理部２４によるキャッシュ領域２０２ａへのオンロードデータの載せ直し処理が実行されている状態を表すと言える。
次に、実施形態の一例としてのストレージシステム１の載せ直し処理部２４によるオンロードデータのキャッシュ領域２０２ａへの載せ直し処理を、図９に示すフローチャート（ステップＤ１１〜Ｄ１３）を用いて説明する。
【００７３】
載せ直し処理部２４によるオンロードデータのキャッシュ領域２０２ａへの載せ直し処理は、上述したオフロード処理部２６によるオフロードデータの書き戻し処理が完了すると開始される。
ステップＤ１１において、載せ直し処理部２４は、メモリ２０２のキャッシュ領域２０２ａがいっぱいであるか否かを確認する。キャッシュ領域２０２ａに空きがある場合には（ステップＤ１１のＮｏルート参照）、ステップＤ１２において、載せ直し処理部２４は、履歴格納領域２０２ｂが空であるか否かを確認する。
【００７４】
履歴格納領域２０２ｂが空ではない場合には（ステップＤ１２のＮｏルート参照）、ステップＤ１３において、載せ直し処理部２４は、記憶装置３０のＩ／Ｏ負荷が低い状態を見計らって、載せ直し処理を行なう。すなわち、履歴格納領域２０２ｂから最後尾のデータ名を取り出し、当該データ名に対応するオンロードデータを記憶装置３０から読み出して、キャッシュ領域２０２ａに格納する。その後、ステップＤ１１に戻る。
【００７５】
一方、キャッシュ領域２０２ａがいっぱいである場合や（ステップＤ１１のＹｅｓルート参照）、履歴格納領域２０２ｂが空である場合（ステップＤ１２のＹｅｓルート参照）、処理を終了する。
このように、実施形態の一例としてのストレージシステム１によれば、キャッシュ領域２０２ａのオフロードデータをオフロード処理部２６が記憶装置４０に書き戻すことにより当該キャッシュ領域２０２ａに生じた空き領域に、乗せ直し処理部２４がオンロードデータを格納する。これにより、キャッシュ領域２０２ａを有効に用いることができる。
【００７６】
また、メモリ２０２に履歴格納領域２０２ｂを設け、Ｉ／Ｏ要求処理時にキャッシュ領域２０２ａから溢れたオンロードデータのデータ名をこの履歴格納領域２０２ｂに格納する。そして、載せ直し処理部２４が、この履歴格納領域２０２ｂから読み出したデータ名にかかるデータを記憶装置３０から読み出してキャッシュ領域２０２ａに格納する。これにより、キャッシュ領域２０２ａのヒット率を向上させることができる。
【００７７】
履歴管理部２３が、キャッシュ領域２０２ａからあふれたオンロードデータのデータ名を履歴格納領域２０２ｂの最後尾に格納し、載せ直し処理部２４がこの最後尾のデータ名のデータから優先してキャッシュ領域２０２ａに載せ直す。
キャッシュ領域２０２ａからあふれたデータがオンロードデータである場合には、このオンロードデータを将来キャッシュ領域２０２ａに載せ直す可能性があると考えられ、履歴格納領域２０２ｂを検索することで、このオンロードデータへのアクセスを高速に行なうことができる。
【００７８】
また、載せ直し処理部２４が、履歴格納領域２０２ｂに格納されたデータ名のうち、最後に格納したデータ名から順番に選択して、当該データ名にかかるデータを記憶装置３０ら読み出してキャッシュ領域２０２ａに格納する。これにより、オンロードデータに対するキャッシュヒット率を向上させることができる。
また、具体的には、履歴サイズ調節部２２が、キャッシュ領域２０２ａ内におけるオフロードデータの数に合わせて履歴格納領域２０２ｂのサイズ調節を行なう。具体的には、履歴サイズ調節部２２は、履歴格納領域２０２ｂのサイズ（格納するデータ名の数）をキャッシュ領域２０２ａ内におけるオフロードデータの数に一致させるように調節する。これにより、履歴サイズ調節部２２のサイズを必要最小限に抑えることができ、メモリ２０２を有効に利用することができる。
【００７９】
さらに、履歴サイズ調節部２２は、履歴格納領域２０２ｂのサイズを小さくする場合には、履歴格納領域２０２ｂの先頭のデータ名から優先して削除を行なう。また、履歴サイズ調節部２２は、履歴格納領域２０２ｂに含まれるデータ名のデータへのアクセスがあった場合に、そのデータ名を履歴格納領域２０２ｂから削除する。これにより、履歴格納領域２０２ｂにあるデータ名のデータはキャッシュ領域２０２ａに載っていないオンロードデータであることが保証され、メモリ２０２を効率的に利用することができる。
【００８０】
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
【００８１】
以上の実施形態に関し、更に以下の付記を開示する。
（付記１）
データを格納する第１の記憶装置と、
第２の記憶装置の電源断状態において、書き込み先が当該第２の記憶装置である第１データを前記第１の記憶装置に記録し、前記第２の記憶装置の電源投入後に、前記第１の記憶装置に記録された前記第１データを前記第２の記憶装置に移動させる代理格納処理部と、
前記代理格納処理部が前記第１の記憶装置に記録された前記第１データを前記第２の記憶装置に格納させた後に、キャッシュメモリから前記第１データを削除するキャッシュ解放部と
を備えることを特徴とする、ストレージ装置。
【００８２】
（付記２）
書き込み先が前記第１の記憶装置である第２データが前記キャッシュメモリから押し出された場合に、当該押し出された第２データに関する情報を押し出し履歴格納部に格納する押し出し履歴処理部と、
前記キャッシュメモリに空き領域が生じると、前記押し出し履歴格納部から前記押し出された前記第２データに関する情報を読み出し、当該第２データに関する情報に基づいて前記第１の記憶装置から読み出した第２データを、前記キャッシュメモリに格納する載せ直し処理部と
を備えることを特徴とする、付記１記載のストレージ装置。
【００８３】
（付記３）
前記キャッシュメモリにおける前記第１データのサイズに応じて、前記押し出し履歴格納部の格納領域サイズを変更する押し出し履歴格納領域調節部をそなえることを特徴とする、付記２記載のストレージ装置。
（付記４）
前記押し出し履歴処理部が、リード要求受信時に前記キャッシュメモリにおいてキャッシュミスが生じた場合に、前記リード要求に基づいて前記押し出し履歴格納部を検索し、当該押し出し履歴格納部において前記リード要求にかかる前記第２データに関する情報が検出された場合には、当該押し出し履歴格納部から当該第２データに関する情報を削除する
ことを特徴とする、付記２又は３記載のストレージ装置。
【００８４】
（付記５）
第２の記憶装置の電源断状態において、書き込み先が当該第２の記憶装置である第１データを第１の記憶装置に記録し、前記第２の記憶装置の電源投入後に、前記第１の記憶装置に記録された前記第１データを前記第２の記憶装置に移動させる処理と、
前記第１の記憶装置に記録された前記第１データを前記第２の記憶装置に格納させた後に、キャッシュメモリから前記第１データを削除する処理と
を備えることを特徴とする、キャッシュ制御方法。
【００８５】
（付記６）
書き込み先が前記第１の記憶装置である第２データが前記キャッシュメモリから押し出された場合に、当該押し出された第２データに関する情報を押し出し履歴格納部に格納する処理と、
前記キャッシュメモリに空き領域が生じると、前記押し出し履歴格納部から前記押し出された前記第２データに関する情報を読み出し、当該第２データに関する情報に基づいて前記第１の記憶装置から読み出した第２データを、前記キャッシュメモリに格納する処理と
を備えることを特徴とする、付記５記載のキャッシュ制御方法。
【００８６】
（付記７）
前記キャッシュメモリにおける前記第１データのサイズに応じて、前記押し出し履歴格納部の格納領域サイズを変更する処理
をそなえることを特徴とする、付記６記載のキャッシュ制御方法。
（付記８）
リード要求受信時に前記キャッシュメモリにおいてキャッシュミスが生じた場合に、前記リード要求に基づいて前記押し出し履歴格納部を検索し、当該押し出し履歴格納部において前記リード要求にかかる前記第２データに関する情報が検出された場合には、当該押し出し履歴格納部から当該第２データに関する情報を削除する処理
を備えることを特徴とする、付記６又は７記載のキャッシュ制御方法。
【００８７】
（付記９）
第２の記憶装置の電源断状態において、書き込み先が当該第２の記憶装置である第１データを第１の記憶装置に記録し、前記第２の記憶装置の電源投入後に、前記第１の記憶装置に記録された前記第１データを前記第２の記憶装置に移動させる処理と、
前記第１の記憶装置に記録された前記第１データを前記第２の記憶装置に格納させた後に、キャッシュメモリから前記第１データを削除する処理と
をコンピュータに実行させることを特徴とする、キャッシュ制御プログラム。
【００８８】
（付記１０）
書き込み先が前記第１の記憶装置である第２データが前記キャッシュメモリから押し出された場合に、当該押し出された第２データに関する情報を押し出し履歴格納部に格納する処理と、
前記キャッシュメモリに空き領域が生じると、前記押し出し履歴格納部から前記押し出された前記第２データに関する情報を読み出し、当該第２データに関する情報に基づいて前記第１の記憶装置から読み出した第２データを、前記キャッシュメモリに格納する処理と
を前記コンピュータに実行させることを特徴とする、付記９記載のキャッシュ制御プログラム。
【００８９】
（付記１１）
前記キャッシュメモリにおける前記第１データのサイズに応じて、前記押し出し履歴格納部の格納領域サイズを変更する処理
を前記コンピュータに実行させることを特徴とする、付記１０記載のキャッシュ制御プログラム。
【００９０】
（付記１２）
リード要求受信時に前記キャッシュメモリにおいてキャッシュミスが生じた場合に、前記リード要求に基づいて前記押し出し履歴格納部を検索し、当該押し出し履歴格納部において前記リード要求にかかる前記第２データに関する情報が検出された場合には、当該押し出し履歴格納部から当該第２データに関する情報を削除する処理
を前記コンピュータに実行させることを特徴とする、付記１０又は１１記載のキャッシュ制御プログラム。
【符号の説明】
【００９１】
１    ストレージシステム
２    ストレージサーバ
４    上位装置
２１    オンロードデータ判定部（代理格納処理部）
２２    履歴サイズ調節部（押し出し履歴格納領域調節部）
２３    履歴管理部（押し出し履歴処理部）
２４    載せ直し処理部
２５    キャッシュ処理部（キャッシュ解放部）
２６    オフロード処理部（代理格納処理部）
３０    記憶装置（第１の記憶装置）
４０    記憶装置（第２の記憶装置）
２０１    ＣＰＵ
２０２    メモリ（キャッシュメモリ）
２０２ａ    キャッシュ領域
２０２ｂ    履歴格納領域（押し出し履歴格納部）
２０５    ディスプレイ
２０６    キーボード
２０７    マウス
２１１    キャッシュ制御部
【図１】
2015176575.tif 000003
【図２】
2015176575.tif 000004
【図３】
2015176575.tif 000005
【図４】
2015176575.tif 000006
【図５】
2015176575.tif 000007
【図６】
2015176575.tif 000008
【図７】
2015176575.tif 000009
【図８】
2015176575.tif 000010
【図９】
2015176575.tif 000011