JP6256133B2 - ストレージ装置,キャッシュ制御方法及びキャッシュ制御プログラム - Google Patents

ストレージ装置,キャッシュ制御方法及びキャッシュ制御プログラム Download PDF

Info

Publication number
JP6256133B2
JP6256133B2 JP2014055034A JP2014055034A JP6256133B2 JP 6256133 B2 JP6256133 B2 JP 6256133B2 JP 2014055034 A JP2014055034 A JP 2014055034A JP 2014055034 A JP2014055034 A JP 2014055034A JP 6256133 B2 JP6256133 B2 JP 6256133B2
Authority
JP
Japan
Prior art keywords
data
storage device
cache
storage
history
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.)
Expired - Fee Related
Application number
JP2014055034A
Other languages
English (en)
Other versions
JP2015176575A (ja
Inventor
純 加藤
純 加藤
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014055034A priority Critical patent/JP6256133B2/ja
Priority to US14/633,289 priority patent/US9846654B2/en
Publication of JP2015176575A publication Critical patent/JP2015176575A/ja
Application granted granted Critical
Publication of JP6256133B2 publication Critical patent/JP6256133B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/311In host system
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ストレージ装置,キャッシュ制御方法及びキャッシュ制御プログラムに関する。
一般に、ストレージ装置はキャッシュ機構を搭載することでその性能向上を図っている。キャッシュ機構とは、頻繁に使われるデータや時間的局所性のあるデータをメモリ上に配置(キャッシュ)することで、HDD(Hard Disk Drive)への読み出し・書き込みの高レイテンシを隠ぺいする仕組みのことである。このキャッシュ機構は、HDDへの読み込み・書き込みに比べて、CPU(Central Processing Unit)からメモリへのアクセスレイテンシがはるかに小さいという特性を利用している。
ストレージの分野では、近年、ビッグデータをキーワードとした研究・開発が盛んに行なわれている。ビッグデータストレージはその総容量が数十〜数百PB(ペタバイト)にまで達しており、近いうちに1EB(エクサバイト)にまで到達するだろうと言われている。
その中で問題になりつつあるのがTOC(Total Cost of Ownership;総所有コスト)である。例えば、総容量1EBのシステムを組もうとした場合に、1TB(テラバイト)のSAS(Serial Attached SCSI(Small Computer System Interface))ドライブを用いると1,000,000台ものドライブが必要であり電力費用だけで毎月数千万円かかることになる。
この莫大な電力費用を減らすためにはドライブの電源を落とすことが必要不可欠であるが、ドライブの電源を落としたとしても、そのドライブへの読み出し・書き込みが発生してしまうとドライブの電源を入れる必要がある。そのため、ユーザからのリクエスト次第でドライブを不用意に起動させ、その結果、電力削減を果たせない場合がある。
このようなストレージ装置の消費電力量を低減するための手法として、ライトオフローディング(Write Off-Loading)と呼ばれる手法が知られている。
ライトオフローディングにおいては、電源オフになっているドライブに書き込みがあった場合に、一旦、他の電源がオンになっているドライブにおける使用していないデータ格納領域(ログ領域)にデータを書き込む(オフロードする)。そして、電源オフだった本来の書き込み先のドライブが電源オンになると、オフロードしていたデータをこのドライブに書き込む(書き戻す)。
これにより、電源オフのドライブへの書き込みが要求されたとしても、不用意にドライブを起こす必要がなく、消費電力を削減することができる。
特開平11−288387号公報 特開平8−63397号公報 特開2007−226596号公報 特開平4−148225号公報
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
しかしながら、このような従来のストレージシステムにおいて、オフロードしていたデータの書き戻しを行なうと、書き戻し元のドライブにおいては、書き戻したデータはそれ以降使われることはなく、キャッシュしておく価値のないデータとなる。
すなわち、書き戻し元のドライブにおいては、書き戻しを行なった直後においては、キャッシュにはオフロードしていたデータサイズ分だけ価値のないデータを格納している状態と言える。従って、従来のストレージシステムにおいては、オフロードデータの書き戻し後において、キャッシュ領域を効率的に用いることができないという課題がある。
1つの側面では、本発明は、キャッシュメモリを効率的に使用できるようにすることを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
このため、ストレージ装置は、データを格納する第1の記憶装置と、第2の記憶装置の電源断状態において、書き込み先が当該第2の記憶装置である第1データを前記第1の記憶装置に記録し、前記第2の記憶装置の電源投入後に、前記第1の記憶装置に記録された前記第1データを前記第2の記憶装置に移動させる代理格納処理部と、前記代理格納処理部が前記第1の記憶装置に記録された前記第1データを前記第2の記憶装置に格納させた後に、キャッシュメモリから前記第1データを削除するキャッシュ解放部と、書き込み先が前記第1の記憶装置である第2データが前記キャッシュメモリから押し出された場合に、当該押し出された第2データに関する情報を押し出し履歴格納部に格納する押し出し履歴処理部と、前記キャッシュメモリに空き領域が生じると、前記押し出し履歴格納部から前記押し出された前記第2データに関する情報を読み出し、当該第2データに関する情報に基づいて前記第1の記憶装置から読み出した第2データを、前記キャッシュメモリに格納する載せ直し処理部と、前記キャッシュメモリにおける前記第1データの数に応じて、前記押し出し履歴格納部の格納領域サイズを変更する押し出し履歴格納領域調節部とを備える。
一実施形態によれば、キャッシュメモリを効率的に使用できる。
実施形態の一例としてのストレージシステムの構成を模式的に示す図である。 実施形態の一例としてのストレージシステムにおける履歴管理部の処理を説明するための図である。 実施形態の一例としてのストレージシステムにおける載せ直し処理部の処理を説明するための図である。 実施形態の一例としてのストレージシステムにおける各機能構成部の関係を例示する図である。 実施形態の一例としてのストレージシステムにおけるユーザからI/Oアクセスがあった場合のキャッシュ処理の概要を説明するためのフローチャートである。 実施形態の一例としてのストレージシステムにおける履歴格納領域のサイズ変更方法を説明するためのフローチャートである。 実施形態の一例としてのストレージシステムにおける許容サイズの算出アルゴリズムを例示する図である。 実施形態の一例としてのストレージシステムのサイズ調整機能の停止状態の設定方法を説明するためのフローチャートである。 実施形態の一例としてのストレージシステムの載せ直し処理部によるオンロードデータのキャッシュ領域への載せ直し処理を説明するためのフローチャートである。
以下、図面を参照して本ストレージ装置,キャッシュ制御方法及びキャッシュ制御プログラムに係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。又、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
図1は実施形態の一例としてのストレージシステムの構成を模式的に示す図である。
本実施形態のストレージシステム1は、図示しない1つ以上の上位装置に接続され、この上位装置に対して記憶領域を提供するものである。なお、上位装置は、例えば、サーバ機能をそなえたコンピュータ(情報処理装置)である。
本ストレージシステム1は、図1に示すように、ストレージサーバ2及び複数(図1に示す例では2つ)の記憶装置30,40を備える。
記憶装置30,40は、ハードディスクドライブ(HDD)、SSD(Solid State Drive)等の記憶装置であって、種々のデータを格納するものである。これらの記憶装置30,40の記憶領域がストレージサーバ2により上位装置に提供される。
ストレージサーバ2は、サーバ機能を備えるコンピュータ(情報処理装置)であり、例えば、上位装置からの要求に従い、記憶装置30,40へのデータの書き込みや読み出しを制御する。ストレージサーバ2は、例えば、IA(Intel Architecture)サーバである。
ストレージサーバ2は、図2に示すように、CPU201,メモリ202,ディスプレイ205,マウス207及びキーボード206を備える。
ディスプレイ205は種々の情報を表示する表示装置であり、例えば、液晶ディスプレイ装置やCRT(Cathode Ray Tube)ディスプレイ装置である。
マウス207及びキーボード206はオペレータが種々の入力を行なうために操作する入力装置である。
メモリ202はROM(Read Only Memory)及びRAM(Random Access Memory)を含む記憶装置である。メモリ202のROMには、ストレージ制御に係るソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ202上のソフトウェアプログラムは、CPU201に適宜読み込まれて実行される。
また、メモリ202のRAMは、一次記憶メモリあるいはワーキングメモリとして利用される。このメモリ202のRAMは、種々のデータやプログラムを一時的に格納する記憶装置であり、キャッシュ領域202a,履歴格納領域202b及び図示しないメモリ領域をそなえる。
メモリ領域には、CPU201がプログラムを実行する際に、データやプログラムを一時的に格納・展開して用いる。キャッシュ領域202aは、上位装置から受信したデータや、上位装置に対して送信するデータを一時的に格納する。キャッシュ領域202aには、記憶装置30,40に書き込まれるデータや記憶装置30,40から読み出されるデータが一時的に格納される。従って、メモリ202はキャッシュメモリとしての機能を有する。このキャッシュ領域202aへのデータの格納や取り出しは、後述するキャッシュ処理部25によって行なわれる。
なお、記憶装置30,40間でデータの移動を行なう際には、キャッシュ領域202aには、この移動されるデータを一時的に格納してもよい。この場合、例えば、記憶装置30から記憶装置40へデータを移動させる場合には、記憶装置30から読み出されたデータが、一旦、キャッシュ領域202aに格納される。そして、その後、このキャッシュ領域202aに格納されたデータが記憶装置40に格納される。このような記憶装置30から記憶装置40へのデータの移動は、後述するオフロードデータの書き戻し処理において行なわれる。
ただし、書き戻しの際は使われるデータは全てオフロードデータだとわかっているので、書き戻しの処理で読んだり、書いたりしたオフロードデータはキャッシュ領域202aにはわざとおかない(キャッシュ領域202aをバイパスする)、いわゆる最適化を行なってもよい。
履歴格納領域(押し出し履歴格納部)202bには、後述するオンロードデータ(第2データ)がキャッシュ領域202aから押し出された場合に、この押し出されたオンロードデータに関する情報(例えば、データ名)が押し出し履歴として格納される。
CPU201は、種々の制御や演算を行なう処理装置であり、メモリ202に格納されたOS(Operating System)やプログラムを実行することにより、種々の機能を実現する。例えば、CPU201は、図1に示すように、キャッシュ制御部211としての機能を実現する。
すなわち、CPU201が、キャッシュ制御プログラムを実行することにより、キャッシュ制御部211として機能する。
なお、このキャッシュ制御部211としての機能を実現するためのプログラム(キャッシュ制御プログラム)は、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RW等),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD+R,DVD−RW,DVD+RW,HD DVD等),ブルーレイディスク,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
キャッシュ制御部211としての機能を実現する際には、内部記憶装置(本実施形態ではメモリ202のRAMやROM)に格納されたプログラムがコンピュータのマイクロプロセッサ(本実施形態ではCPU201)によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
キャッシュ制御部(メモリ制御部)211は、メモリ202へのデータの書き込みや読み出しを制御する。このキャッシュ制御部211は、図1に示すように、オンロードデータ判定部21,履歴サイズ調節部22,履歴管理部23,載せ直し処理部24,キャッシュ処理部25及びオフロード処理部26としての機能を備える。
オフロード処理部26は、ライトオフローディング機能を実現する。ライトオフローディング機能においては、オフロード処理部26は、電源オフになっている記憶装置に対する書き込み要求があった場合に、一旦、電源がオンになっている他の記憶装置における使用していないデータ格納領域(ログ領域)にデータを書き込む。このように、本来のデータ格納先の記憶装置とは異なる他の記憶装置にデータを格納することをオフロードするという場合がある。
また、このような本来のデータ格納先の記憶装置とは異なる他の記憶装置に格納されているデータをオフロードデータという。これに対して、オフロードされていない、本来のデータ格納先である記憶装置にあるべきデータをオンロードデータという。
そして、ライトオフローディング機能においては、電源オフだった本来の書き込み先の記憶装置が電源オンになると、オフロードしていたデータをこの記憶装置に書き込む(書き戻す)。
図1に例示するストレージシステム1において、記憶装置の消費電力を低減するために、所定期間データアクセスのない記憶装置は電源オフ状態とする制御が行なわれるものとし、例えば記憶装置(第2の記憶装置)40が電源オフの状態であるとする。
この電源オフ状態の記憶装置40に対する書き込み要求が行なわれると、オフロード処理部26は、この記憶装置40が書き込み先であるデータ(第1データ)を、記憶装置40の代わりに、電源オン状態の他の記憶装置(第1の記憶装置)30に一旦書き込む。
つまり、オフロード処理部(代理格納処理部)26は、記憶装置(第2の記憶装置)40の電源断状態において、書き込み先がこの記憶装置40であるオフロードデータ(第1データ)を他の記憶装置(第1の記憶装置)30に記録する制御を行なう。
その後、電源オフ状態であった本来の書き込み先の記憶装置40が電源オンになると、オフロード処理部26は、記憶装置30にオフロードしていたデータを記憶装置40に書き戻す。
つまり、オフロード処理部26は、記憶装置(第2の記憶装置)40の電源投入後に、記憶装置30に記録されたオフロードデータ(第1データ)を記憶装置40に移動させる制御を行なう。
このように、ライトオフローディング機能によれば、電源オフ状態の記憶装置40への書き込みが要求されたとしても記憶装置40を起こす必要がなく、消費電力を削減することができる。なお、このライトオフローディングは既知の技術であり、その詳細な説明は省略する。
オンロードデータ判定部21は、処理対象のデータがオンロードデータであるかオフロードデータであるかを判定する。例えば、オンロードデータ判定部21は、記憶装置30,40に格納されるべきデータの識別情報(例えばデータ名)を管理する管理情報(図示省略)を参照することで、データがオンロードデータであるか否かを判断する。このような管理情報は、例えば、上位装置から受信するI/O(Input/Output)要求等に基づいて作成・管理される。
キャッシュ処理部(キャッシュ解放部)25は、メモリ202のキャッシュ領域202aへのデータの格納や読み出しを制御し、また、キャッシュ領域202aに格納されたデータや出力されたデータを管理する。このキャッシュ処理部25は、既知のキャッシュ置換アルゴリズム(Cache Replacement Algorithm)を実現する。キャッシュ置換アルゴリズムとして、例えば、LRU(Least Recently Used)アルゴリズムを用いることができる。
また、上述したオフロード処理部26によりオフロードされたデータに対してアクセスがあった場合には、キャッシュ処理部25により、このオフロードデータがメモリ202のキャッシュ領域202aに格納される。
ここで、例えば、オフロード処理部26による書き戻しが始まった時点で、すでにオフロードデータがキャッシュ領域202aに載っている場合が考えられる。例えば、書き戻しが始まる少し前にオフロード先に書き込みがあり、そのデータに対してアクセスが発生すると、キャッシュ処理部25は、このオフロードデータをキャッシュ領域202aに格納する。
このような場合は書き戻しが始まる前にまたアクセスされるかもしれないので、キャッシュヒット率の観点からオフロードデータと言えど、キャッシュ領域202aに載せざるを得ない状況となる。このように、オフロードデータの書き戻しが始まる前からキャッシュ領域202aに載っているオフロードデータは、上述の如き最適化をしてもキャッシュ領域202aに載ったままなので、書き戻し後には不要なデータとなる。
また、キャッシュ処理部25は、記憶装置30に記録されたオフロードデータを上述したオフロード処理部(代理格納処理部)26が記憶装置40に書き戻した後に、メモリ202のキャッシュ領域202aからオフロードデータを削除する制御も行なう。なお、メモリ202からのオフロードデータの削除は、既知の種々の手法を用いて実現することができ、その詳細な説明は省略する。
このように、キャッシュ処理部25がオフロードデータをキャッシュ領域202aから削除することによりキャッシュ領域202aに空き領域が生じる。
履歴管理部(押し出し履歴処理部)23は、メモリ202のキャッシュ領域202aから押し出されたオンロードデータを管理するものであり、このキャッシュ領域202aから押し出されたオンロードデータに関する情報をメモリ202の履歴格納領域202bに格納する。オンロードデータに関する情報とは、オンロードデータを特定する情報であり、例えばデータ名や識別番号である。以下、オンロードデータに関する情報としてデータ名を用いる例について示す。例えば、履歴格納領域202bは、オンロードデータのデータ名を格納する可変サイズのリスト構造を有する。
履歴管理部23は、キャッシュ領域202aから押し出されたオンロードデータについて、そのデータ名を履歴格納領域202bに格納する。履歴格納領域202bにおいては、データ名が入力された順に格納される。
履歴格納領域202bにオンロードデータのデータ名が追加されるのは、データにアクセスがあったがキャッシュミスが発生してキャッシュ領域202aからあふれてしまい結果としてオンロードデータが追い出されてしまった場合である。あふれたオンロードデータのデータ名は履歴格納領域202bのリスト構造の最後尾に追加される。
なお、オフロードデータがキャッシュ領域202aからあふれた場合は、履歴格納領域202bへの登録は行なわない。
以下、履歴格納領域202bに格納されたデータ名を履歴情報という場合がある。
図2は実施形態の一例としてのストレージシステムにおける履歴管理部23の処理を説明するための図である。この図2に示す例においては、キャッシュ領域202aは空きがない状態(キャッシュフル)であり、また、この直前の状態では履歴格納領域202bにデータ名D1,D2が格納されているものとする。
この状態において、上位装置からデータ名D4のデータ(以下、データD4という)へのアクセスが生じると、上述したキャッシュ処理部25により、記憶装置30からから読み出されたデータD4がキャッシュ領域202aに格納される。
この際、データD4をキャッシュ領域202aに格納することにより、代わりにキャッシュ領域202aからデータ名D3のデータが追い出されるものとする。この追い出されたデータがオンロードデータである場合に、履歴管理部23は、このキャッシュ領域202aから追い出されたオンロードデータのデータ名“D3”を履歴格納領域202bに格納する。
なお、キャッシュ領域202aから追い出されたデータがオフロードデータである場合には、そのデータ名は履歴格納領域202bに格納されることはなく、当該データは破棄される。
履歴管理部23は、上位装置からのリード要求受信時に、キャッシュ領域202aにおいてキャッシュミスが生じた場合に、そのリード要求に基づいて履歴格納領域202bを検索する。すなわち、押し出し履歴処理部23は、履歴格納領域202bに格納されているデータ名に対して受信したリード要求の対象(リード対象)であるデータ名を検索する。
そして、押し出し履歴処理部23は、履歴格納領域202bにおいてリード対象のデータ名が検出された場合には、その履歴格納領域202bから当該第2データに関する情報を削除する。当該データは、キャッシュミスが生じたデータであることから、記憶装置30もしくは記憶装置40から読み出され、その後、キャッシュ領域202aに格納されることになる。なぜなら、当該データを履歴格納領域202bに格納しておく必要性がなくなるからである。
載せ直し処理部24は、キャッシュ領域202aに空き領域が生じると、履歴格納領域202bからオンロードデータに関する情報(本実施形態ではデータ名)を読み出し、このデータ名で表されるオンロードデータを記憶装置30から読み出す。すなわち、載せ直し処理部24は、履歴格納領域202bを参照して、キャッシュ領域202aから押し出されたオンロードデータのデータ名を知る。
さらに、載せ直し処理部24は、この記憶装置30から読み出したオンロードデータを、メモリ202のキャッシュ領域202aに格納する。すなわち、載せ直し処理部24は、先にキャッシュ領域202aから追い出されたオンロードデータを、当該キャッシュ領域202aに空きが生じると、記憶装置30から読み出し、再度、キャッシュ領域202aに載せ直す。
また、載せ直し処理部24は、履歴格納領域202bに格納されているデータ名を、履歴管理部23により履歴格納領域202bに格納された順とは逆順で読み出す。すなわち、載せ直し処理部24は、履歴格納領域202bから、当該履歴格納領域202bに格納されてから経過した時間が最も短いものから順にデータ名を読み出す。
また、履歴格納領域202bが一杯になった場合には、履歴格納領域202bに格納されてから最も長い時間が経ったものから順番に、履歴格納領域202bから押し出される。つまり、載せ直し処理部24は、LRUアルゴリズムをキャッシュ置換アルゴリズムとして用いて履歴格納領域202bからデータ名を押し出す。
ただし、この載せ直し処理部24や上述したキャッシュ処理部25が用いるキャッシュ置換アルゴリズムはLRUアルゴリズムに限定されるものではなく、適宜、変形して実施することができる。例えば、LRUアルゴリズムに代えて既知のARC(Adaptive Replacement Cache)アルゴリズムを用いてもよい。なお、ARCアルゴリズム等のようにアルゴリズム内部で複数本のLRUリストを用いる場合には、どのリストからあふれたのかを記憶する構造を備える必要がある。これに対して、上述のLRUアルゴリズムをキャッシュ置換アルゴリズムとして用いる場合には、単純にリスト(キュー)のLRU側にデータを追加すればよい。
図3は実施形態の一例としてのストレージシステムにおける載せ直し処理部24の処理を説明するための図である。この図3に示す例においては、キャッシュ領域202aは空きがある状態であり、また、履歴格納領域202bにデータ名D1,D2,D3が格納されている。これらのデータ名は、データ名D1,D2,D3の順で履歴格納領域202bに格納されたものとし、データ名D3がリスト構造の最後尾であるとする。
上述の如く、キャッシュ処理部25が、記憶装置40への書き戻しが完了したオフロードデータをキャッシュ領域202aから削除することによりキャッシュ領域202aに空き領域が生じる。
載せ直し処理部24は、キャッシュ領域202aに空きが生じると、履歴格納領域202bから、格納されてから経過した時間が最も短い(最後尾の)データ名を読み出し、記憶装置30から、このデータ名によって特定されるオンロードデータを読み出す。そして、載せ直し処理部24は、読み出したオンロードデータをキャッシュ領域202aに載せ直す。
図3に示す例においては、載せ直し処理部24は、履歴格納領域202bから、データ名D3を読み出し、記憶装置30から、このデータD3で示されるデータを読み出し、キャッシュ領域202aに格納する。
そして、以下、載せ直し処理部24は、キャッシュ領域202aが満杯になるまで、履歴格納領域202bからのデータ名の読み出しと、このデータ名で特定されるオンロードデータの記憶装置30からの読み出し及びキャッシュ領域202aへの格納とを繰り返し行なう。
また、この載せ直し処理部24によるキャッシュ領域202aへのオンロードデータの載せ直し処理は、ユーザーエクスペリエンスを阻害しないよう記憶装置30へのI/O負荷が低い状態で行なわれる。I/O負荷は、例えば、ディスクビジー率やIOPS(Input Output Per Second)の値を参照することで判断することができる。
上述した載せ直し処理は、キャッシュ領域202aにおいて、オフロードデータの削除により空いた領域が、ユーザからのアクセスのキャッシュミスによるデータの追加と、履歴格納領域202bからの載せ直し機能によるデータの追加とによって満杯になったら停止される。
履歴サイズ調節部22は、キャッシュ領域202aにおけるオフロードデータのデータサイズに応じて、履歴格納領域202bのサイズを変更する。具体的には、履歴サイズ調節部22は、キャッシュ領域202aにおけるオフロードデータの数に合わせて履歴格納領域202bのサイズ調節を行なう。
履歴サイズ調節部22は、履歴格納領域202b内のオンロードデータのデータ名の数が、キャッシュ領域202a内におけるオフロードデータの数に一致するように制御する。キャッシュ領域202aへのデータの格納及び読出は所定サイズ単位で行なわれことを前提とするものである。
キャッシュ領域202aへ書き戻せるデータ量は、最大でキャッシュ領域202aに格納されているオフロードデータのデータ量であり、それ以上の数のデータを履歴格納領域202bで管理しても無駄である。そこで、本ストレージシステム1においては、履歴サイズ調節部22が履歴格納領域202bのサイズ(格納するデータ名の数)をキャッシュ領域202a内におけるオフロードデータの数に一致させるように調節する。
履歴サイズ調節部22は、ユーザからのI/O要求の結果、キャッシュ領域202aに、何が入って、また、キャッシュ置換アルゴリズムの結果として何が出ていったかの情報を、キャッシュ処理部25から取得する。
なお、この履歴サイズ調節部22による履歴格納領域202bのサイズ調節処理手法の詳細は、図6〜図8を用いて後述する。
図4は実施形態の一例としてのストレージシステム1における各機能構成部の関係を例示する図である。
キャッシュ処理部25は、例えば、ユーザから入力されるデータの読み書き処理要求に対して、記憶装置30から読み出したデータや記憶装置30に書き込むデータを、キャッシュ領域202aに格納する制御を行なう。また、これに伴い、キャッシュ処理部25は、キャッシュ置換アルゴリズムによりキャッシュ領域202aからデータを追い出す制御を行なう。
また、キャッシュ処理部25は、記憶装置40への書き戻しが完了したオフロードデータをキャッシュ領域202aから削除する。これによりキャッシュ領域202aに空き領域が生じる。
オンロードデータ判定部21は、キャッシュ処理部25がキャッシュ領域202aにデータを格納する代わりにキャッシュ領域202aから追い出されたデータがオンロードデータであるかオフロードデータであるかを判断する。
履歴管理部23は、メモリ202のキャッシュ領域202aから押し出されたデータがオンロードデータである場合に、このキャッシュ領域202aから押し出されたオンロードデータのデータ名を履歴格納領域202bに格納する。
載せ直し処理部24は、キャッシュ領域202aに空き領域が生じると、履歴格納領域202bから、格納されてから経過した時間が最も短いデータ名を読み出し、記憶装置30から、このデータ名によって特定されるオンロードデータを読み出す。そして、載せ直し処理部24は、読み出したオンロードデータをキャッシュ領域202aに載せ直す。すなわち、オンロードデータの載せ直し処理を行なう。
履歴サイズ調節部22は、履歴格納領域202b内のオフロードデータの数が、キャッシュ領域202a内におけるオフロードデータの数に一致するように制御することで、履歴格納領域202bのサイズを調節する。
上述の如く構成された、実施形態の一例としてのストレージシステム1におけるユーザからI/Oアクセスがあった場合のキャッシュ処理の概要を、図5に示すフローチャート(ステップA1〜A7)に従って説明する。
ストレージシステム1においてユーザからI/O要求のアクセスがあると、ステップA1において、キャッシュ処理部25が、キャッシュ置換アルゴリズムを用いて、キャッシュ領域202aにおいてキャッシュヒットするか否かを判断する。キャッシュヒットしていれば(ステップA1のYesルート参照)、このヒットしたデータをユーザに応答して、処理を終了する。
キャッシュヒットしなかった場合、つまりキャッシュミスの場合は(ステップA1のNoルート参照)、ステップA2において、I/O要求されたデータのデータ名が履歴格納領域202bの履歴情報に含まれているか否かを確認する。
I/O要求されたデータのデータ名が履歴格納領域202bに格納されていない(ヒットしない)場合には(ステップA2のNoルート参照)、ステップA4に移行する。
また、I/O要求されたデータのデータ名が履歴格納領域202bに格納されている場合には(ステップA2のYesルート参照)、ステップA3において、履歴管理部23が、当該ヒットしたデータ名を履歴格納領域202bから削除する。これにより、履歴情報に含まれるデータ名のデータ(データ本体)はどれもキャッシュ領域202aに載っていないオンロードデータということが保証される。その後に、ステップA4に移行する。
ステップA4において、キャッシュ領域202aからあふれたデータがあるか否かを確認する。
キャッシュ領域202aにおいてキャッシュミスが生じた場合に、キャッシュ領域202aがいっぱいである場合には、新たに記憶装置30から読み出されたデータをキャッシュ領域202aに格納することにより、キャッシュ領域202aからあふれるデータが生じる。
キャッシュ領域202aからあふれたデータが無い場合には(ステップA4のNoルート参照)、ステップA7において、履歴サイズ調節部22が履歴格納領域202bのサイズ調節(履歴サイズ調節)を行なった後に、処理を終了する。履歴サイズ調整処理については、図6〜図8を用いて後述する。
一方、キャッシュ領域202aからあふれたデータがある場合には(ステップA4のYesルート参照)、ステップA5において、オンロードデータ判定部21が、あふれたデータがオンロードデータであるか否かを判断する。
キャッシュ領域202aからあふれたデータがオンロードデータである場合には(ステップA5のYesルート参照)、このオンロードデータを将来キャッシュ領域202aに載せ直す可能性があると考えられる。そこで、ステップA6において、履歴管理部23が、キャッシュ領域202aからあふれたオンロードデータのデータ名を履歴格納領域202bの最後尾に格納する。その後、ステップA7に移行する。また、キャッシュ領域202aからあふれたデータがオンロードデータではない場合にも(ステップA5のNoルート参照)、ステップA7に移行する。
次に、実施形態の一例としてのストレージシステム1における履歴格納領域202bのサイズ変更方法を、図7を参照しながら、図6に示すフローチャート(ステップB1〜B4)に従って説明する。図7は実施形態の一例としてのストレージシステム1の履歴サイズ調節部22が用いる変数「許容サイズ」の算出アルゴリズムをテーブル状に示す図である。
履歴サイズ調節部22は、例えば、図7に例示するような算出アルゴリズムで変数「許容サイズ」の値を算出する。後述の如く、履歴サイズ調節部22は、この許容サイズの値を用いて、履歴格納領域202bに格納されるオンロードデータのデータ名の数、すなわち、履歴格納領域202bのサイズ(履歴サイズ)を変更する。
キャッシュ領域202aにおいてキャッシュミスが発生し、その後のI/O要求に応じてキャッシュ領域202aにデータの格納が行なわれた場合に、履歴サイズ調節部22は、図7に例示する算出アルゴリズムを用いて変数「許容サイズ」の値を変更する(ステップB1)。
具体的には、この図7に示す例においては、キャッシュ領域202aにオンロードデータが入り、その代わりにオフロードデータがキャッシュ領域202aから押し出された場合に、許容サイズの値は減算(−1)される。一方、キャッシュ領域202aにオフロードデータが入り、その代わりにオンロードデータがキャッシュ領域202aから押し出された場合に、許容サイズの値は加算(+1)される。
また、キャッシュ領域202aにオフロードデータが入り、その代わりにキャッシュ領域202aから押し出されたデータが無い場合にも、許容サイズの値は加算(+1)される。例えば、起動後間もなくでキャッシュ領域202aに空きがある状態や、オフロードデータの書き戻し完了に伴い、キャッシュ領域202a上のオフロードデータが全削除されてキャッシュ領域202aに空きがあったためキャッシュ処理部25が何も追い出さなかった場合が、これに相当する。
なお、これら以外の場合には、許容サイズの値は変更されない。
履歴サイズ調節部22は、キャッシュ処理部25から取得したキャッシュ領域202aへの入出力の結果に基づき、上述した算出アルゴリズムを適用することで、許容サイズの変更を行なう。
ステップB2において、サイズ調節機能が停止状態であるか否かを確認する。具体的には、履歴サイズ調節部22は、後述するサイズ調整機能の停止状態を示す情報(例えばフラグ)が設定されているか否かを確認する。
サイズ調整機能の停止状態である場合には(ステップB2のYesルート参照)、処理を終了する。
一方、サイズ調整機能の停止状態が解除されている場合には(ステップB2のNoルート参照)、ステップB3において、履歴サイズ調節部22は、履歴格納領域202bに格納されるオフロードデータのデータ名の数、すなわち、履歴サイズと許容サイズの値とを比較する。
この比較の結果、履歴サイズが許容サイズよりも大きい場合には(ステップB3のYesルート参照)、ステップB4において、履歴サイズ調節部22は、履歴格納領域202bに格納されているデータ名のうち、先頭、すなわち、格納されてから経過した時間が最も長いデータ名を削除する。これにより、履歴サイズが減算(−1)されることになる。その後、ステップB3に戻る。従って、実際の履歴格納領域202bのサイズ、すなわち、履歴格納領域202b内のデータ数が許容サイズより多い場合には、データ数が許容サイズになるまで、履歴格納領域202bの先頭からデータ名の削除を行なう。
履歴サイズが許容サイズ以下の場合には(ステップB3のNoルート参照)、処理を終了する。
次に、図6のステップB2に示したサイズ調整機能の停止状態の設定方法を、図8に示すフローチャート(ステップC1〜C4)を用いて説明する。
本ストレージシステム1の起動時等の動作開始時においては、初期状態として、変数「許容サイズ」の値には0が設定され、また、サイズ調節機能の停止状態が設定される。
ステップC1において、履歴サイズ調節部22は、オフロードデータが書き戻し先である記憶装置40に対してオフロード処理部26により書き戻されたか否かを確認する。
この確認の結果、オフロードデータの書き戻しが行なわれていない場合には(ステップC1のNoルート参照)、ステップC1に戻り、書き戻しが行なわれるまでステップC1の確認処理が繰り返し実行される。
オフロードデータの書き戻しが行なわれた場合には(ステップC1のYesルート参照)、ステップC2において、履歴サイズ調節部22は許容サイズの値を0にし、また、サイズ調整機能の停止状態を示す情報を設定する。具体的には、履歴サイズ調節部22は、メモリ202の図示しない領域等にサイズ調整機能の停止状態を示すフラグ等を設定する。
すなわち、オフロードデータの書き戻しが行なわれた直後には、一時的に履歴格納領域202bのサイズ調整機能を停止させる。これにより、書き戻しによりキャッシュ領域202a中においてゼロとなったオフロードデータの数に合わせて、履歴格納領域202bのオンロードデータのデータ名が全削除(サイズが0に)されてしまうことを阻止する。
その後、ステップC3において、履歴サイズ調節部22は、載せ直し処理部24によるキャッシュ領域202aへのオンロードデータの載せ直し処理が完了したか否かを確認する。この載せ直し処理部24による載せ直し処理が完了していない場合には(ステップC3のNoルート参照)ステップC3に戻り、載せ直し処理が完了するまで、ステップC3の確認処理が繰り返し行なわれる。
載せ直し処理が完了すると(ステップC3のYesルート参照)、ステップC4において、ステップC2で停止状態に設定したサイズ調整状態を解除する。
従って、サイズ調整停止状態は、載せ直し処理部24によるキャッシュ領域202aへのオンロードデータの載せ直し処理が実行されている状態を表すと言える。
次に、実施形態の一例としてのストレージシステム1の載せ直し処理部24によるオンロードデータのキャッシュ領域202aへの載せ直し処理を、図9に示すフローチャート(ステップD11〜D13)を用いて説明する。
載せ直し処理部24によるオンロードデータのキャッシュ領域202aへの載せ直し処理は、上述したオフロード処理部26によるオフロードデータの書き戻し処理が完了すると開始される。
ステップD11において、載せ直し処理部24は、メモリ202のキャッシュ領域202aがいっぱいであるか否かを確認する。キャッシュ領域202aに空きがある場合には(ステップD11のNoルート参照)、ステップD12において、載せ直し処理部24は、履歴格納領域202bが空であるか否かを確認する。
履歴格納領域202bが空ではない場合には(ステップD12のNoルート参照)、ステップD13において、載せ直し処理部24は、記憶装置30のI/O負荷が低い状態を見計らって、載せ直し処理を行なう。すなわち、履歴格納領域202bから最後尾のデータ名を取り出し、当該データ名に対応するオンロードデータを記憶装置30から読み出して、キャッシュ領域202aに格納する。その後、ステップD11に戻る。
一方、キャッシュ領域202aがいっぱいである場合や(ステップD11のYesルート参照)、履歴格納領域202bが空である場合(ステップD12のYesルート参照)、処理を終了する。
このように、実施形態の一例としてのストレージシステム1によれば、キャッシュ領域202aのオフロードデータをオフロード処理部26が記憶装置40に書き戻すことにより当該キャッシュ領域202aに生じた空き領域に、せ直し処理部24がオンロードデータを格納する。これにより、キャッシュ領域202aを有効に用いることができる。
また、メモリ202に履歴格納領域202bを設け、I/O要求処理時にキャッシュ領域202aから溢れたオンロードデータのデータ名をこの履歴格納領域202bに格納する。そして、載せ直し処理部24が、この履歴格納領域202bから読み出したデータ名にかかるデータを記憶装置30から読み出してキャッシュ領域202aに格納する。これにより、キャッシュ領域202aのヒット率を向上させることができる。
履歴管理部23が、キャッシュ領域202aからあふれたオンロードデータのデータ名を履歴格納領域202bの最後尾に格納し、載せ直し処理部24がこの最後尾のデータ名のデータから優先してキャッシュ領域202aに載せ直す。
キャッシュ領域202aからあふれたデータがオンロードデータである場合には、このオンロードデータを将来キャッシュ領域202aに載せ直す可能性があると考えられ、履歴格納領域202bを検索することで、このオンロードデータへのアクセスを高速に行なうことができる。
また、載せ直し処理部24が、履歴格納領域202bに格納されたデータ名のうち、最後に格納したデータ名から順番に選択して、当該データ名にかかるデータを記憶装置30ら読み出してキャッシュ領域202aに格納する。これにより、オンロードデータに対するキャッシュヒット率を向上させることができる。
また、具体的には、履歴サイズ調節部22が、キャッシュ領域202a内におけるオフロードデータの数に合わせて履歴格納領域202bのサイズ調節を行なう。具体的には、履歴サイズ調節部22は、履歴格納領域202bのサイズ(格納するデータ名の数)をキャッシュ領域202a内におけるオフロードデータの数に一致させるように調節する。これにより、履歴格納領域202bのサイズを必要最小限に抑えることができ、メモリ202を有効に利用することができる。
さらに、履歴サイズ調節部22は、履歴格納領域202bのサイズを小さくする場合には、履歴格納領域202bの先頭のデータ名から優先して削除を行なう。また、履歴サイズ調節部22は、履歴格納領域202bに含まれるデータ名のデータへのアクセスがあった場合に、そのデータ名を履歴格納領域202bから削除する。これにより、履歴格納領域202bにあるデータ名のデータはキャッシュ領域202aに載っていないオンロードデータであることが保証され、メモリ202を効率的に利用することができる。
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
データを格納する第1の記憶装置と、
第2の記憶装置の電源断状態において、書き込み先が当該第2の記憶装置である第1データを前記第1の記憶装置に記録し、前記第2の記憶装置の電源投入後に、前記第1の記憶装置に記録された前記第1データを前記第2の記憶装置に移動させる代理格納処理部と、
前記代理格納処理部が前記第1の記憶装置に記録された前記第1データを前記第2の記憶装置に格納させた後に、キャッシュメモリから前記第1データを削除するキャッシュ解放部と
を備えることを特徴とする、ストレージ装置。
(付記2)
書き込み先が前記第1の記憶装置である第2データが前記キャッシュメモリから押し出された場合に、当該押し出された第2データに関する情報を押し出し履歴格納部に格納する押し出し履歴処理部と、
前記キャッシュメモリに空き領域が生じると、前記押し出し履歴格納部から前記押し出された前記第2データに関する情報を読み出し、当該第2データに関する情報に基づいて前記第1の記憶装置から読み出した第2データを、前記キャッシュメモリに格納する載せ直し処理部と
を備えることを特徴とする、付記1記載のストレージ装置。
(付記3)
前記キャッシュメモリにおける前記第1データのサイズに応じて、前記押し出し履歴格納部の格納領域サイズを変更する押し出し履歴格納領域調節部をそなえることを特徴とする、付記2記載のストレージ装置。
(付記4)
前記押し出し履歴処理部が、リード要求受信時に前記キャッシュメモリにおいてキャッシュミスが生じた場合に、前記リード要求に基づいて前記押し出し履歴格納部を検索し、当該押し出し履歴格納部において前記リード要求にかかる前記第2データに関する情報が検出された場合には、当該押し出し履歴格納部から当該第2データに関する情報を削除する
ことを特徴とする、付記2又は3記載のストレージ装置。
(付記5)
第2の記憶装置の電源断状態において、書き込み先が当該第2の記憶装置である第1データを第1の記憶装置に記録し、前記第2の記憶装置の電源投入後に、前記第1の記憶装置に記録された前記第1データを前記第2の記憶装置に移動させる処理と、
前記第1の記憶装置に記録された前記第1データを前記第2の記憶装置に格納させた後に、キャッシュメモリから前記第1データを削除する処理と
を備えることを特徴とする、キャッシュ制御方法。
(付記6)
書き込み先が前記第1の記憶装置である第2データが前記キャッシュメモリから押し出された場合に、当該押し出された第2データに関する情報を押し出し履歴格納部に格納する処理と、
前記キャッシュメモリに空き領域が生じると、前記押し出し履歴格納部から前記押し出された前記第2データに関する情報を読み出し、当該第2データに関する情報に基づいて前記第1の記憶装置から読み出した第2データを、前記キャッシュメモリに格納する処理と
を備えることを特徴とする、付記5記載のキャッシュ制御方法。
(付記7)
前記キャッシュメモリにおける前記第1データのサイズに応じて、前記押し出し履歴格納部の格納領域サイズを変更する処理
をそなえることを特徴とする、付記6記載のキャッシュ制御方法。
(付記8)
リード要求受信時に前記キャッシュメモリにおいてキャッシュミスが生じた場合に、前記リード要求に基づいて前記押し出し履歴格納部を検索し、当該押し出し履歴格納部において前記リード要求にかかる前記第2データに関する情報が検出された場合には、当該押し出し履歴格納部から当該第2データに関する情報を削除する処理
を備えることを特徴とする、付記6又は7記載のキャッシュ制御方法。
(付記9)
第2の記憶装置の電源断状態において、書き込み先が当該第2の記憶装置である第1データを第1の記憶装置に記録し、前記第2の記憶装置の電源投入後に、前記第1の記憶装置に記録された前記第1データを前記第2の記憶装置に移動させる処理と、
前記第1の記憶装置に記録された前記第1データを前記第2の記憶装置に格納させた後に、キャッシュメモリから前記第1データを削除する処理と
をコンピュータに実行させることを特徴とする、キャッシュ制御プログラム。
(付記10)
書き込み先が前記第1の記憶装置である第2データが前記キャッシュメモリから押し出された場合に、当該押し出された第2データに関する情報を押し出し履歴格納部に格納する処理と、
前記キャッシュメモリに空き領域が生じると、前記押し出し履歴格納部から前記押し出された前記第2データに関する情報を読み出し、当該第2データに関する情報に基づいて前記第1の記憶装置から読み出した第2データを、前記キャッシュメモリに格納する処理と
を前記コンピュータに実行させることを特徴とする、付記9記載のキャッシュ制御プログラム。
(付記11)
前記キャッシュメモリにおける前記第1データのサイズに応じて、前記押し出し履歴格納部の格納領域サイズを変更する処理
を前記コンピュータに実行させることを特徴とする、付記10記載のキャッシュ制御プログラム。
(付記12)
リード要求受信時に前記キャッシュメモリにおいてキャッシュミスが生じた場合に、前記リード要求に基づいて前記押し出し履歴格納部を検索し、当該押し出し履歴格納部において前記リード要求にかかる前記第2データに関する情報が検出された場合には、当該押し出し履歴格納部から当該第2データに関する情報を削除する処理
を前記コンピュータに実行させることを特徴とする、付記10又は11記載のキャッシュ制御プログラム。
1 ストレージシステム
2 ストレージサーバ
4 上位装置
21 オンロードデータ判定部(代理格納処理部)
22 履歴サイズ調節部(押し出し履歴格納領域調節部)
23 履歴管理部(押し出し履歴処理部)
24 載せ直し処理部
25 キャッシュ処理部(キャッシュ解放部)
26 オフロード処理部(代理格納処理部)
30 記憶装置(第1の記憶装置)
40 記憶装置(第2の記憶装置)
201 CPU
202 メモリ(キャッシュメモリ)
202a キャッシュ領域
202b 履歴格納領域(押し出し履歴格納部)
205 ディスプレイ
206 キーボード
207 マウス
211 キャッシュ制御部

Claims (4)

  1. データを格納する第1の記憶装置と、
    第2の記憶装置の電源断状態において、書き込み先が当該第2の記憶装置である第1データを前記第1の記憶装置に記録し、前記第2の記憶装置の電源投入後に、前記第1の記憶装置に記録された前記第1データを前記第2の記憶装置に移動させる代理格納処理部と、
    前記代理格納処理部が前記第1の記憶装置に記録された前記第1データを前記第2の記憶装置に格納させた後に、キャッシュメモリから前記第1データを削除するキャッシュ解放部と
    書き込み先が前記第1の記憶装置である第2データが前記キャッシュメモリから押し出された場合に、当該押し出された第2データに関する情報を押し出し履歴格納部に格納する押し出し履歴処理部と、
    前記キャッシュメモリに空き領域が生じると、前記押し出し履歴格納部から前記押し出された前記第2データに関する情報を読み出し、当該第2データに関する情報に基づいて前記第1の記憶装置から読み出した第2データを、前記キャッシュメモリに格納する載せ直し処理部と、
    前記キャッシュメモリにおける前記第1データの数に応じて、前記押し出し履歴格納部の格納領域サイズを変更する押し出し履歴格納領域調節部と
    を備えることを特徴とする、ストレージ装置
  2. 前記押し出し履歴処理部が、リード要求受信時に前記キャッシュメモリにおいてキャッシュミスが生じた場合に、前記リード要求に基づいて前記押し出し履歴格納部を検索し、当該押し出し履歴格納部において前記リード要求にかかる前記第2データに関する情報が検出された場合には、当該押し出し履歴格納部から当該第2データに関する情報を削除する
    ことを特徴とする、請求項記載のストレージ装置。
  3. プロセッサが、第2の記憶装置の電源断状態において、書き込み先が当該第2の記憶装置である第1データを第1の記憶装置に記録し、前記第2の記憶装置の電源投入後に、前記第1の記憶装置に記録された前記第1データを前記第2の記憶装置に移動させるステップと、
    前記プロセッサが、前記第1の記憶装置に記録された前記第1データを前記第2の記憶装置に格納させた後に、キャッシュメモリから前記第1データを削除するステップ
    前記プロセッサが、書き込み先が前記第1の記憶装置である第2データが前記キャッシュメモリから押し出された場合に、当該押し出された第2データに関する情報を押し出し履歴格納部に格納するステップと、
    前記プロセッサが、前記キャッシュメモリに空き領域が生じると、前記押し出し履歴格納部から前記押し出された前記第2データに関する情報を読み出し、当該第2データに関する情報に基づいて前記第1の記憶装置から読み出した第2データを、前記キャッシュメモリに格納するステップと、
    前記プロセッサが、前記キャッシュメモリにおける前記第1データの数に応じて、前記押し出し履歴格納部の格納領域サイズを変更するステップと
    を備えることを特徴とする、キャッシュ制御方法。
  4. 第2の記憶装置の電源断状態において、書き込み先が当該第2の記憶装置である第1データを第1の記憶装置に記録し、前記第2の記憶装置の電源投入後に、前記第1の記憶装置に記録された前記第1データを前記第2の記憶装置に移動させる処理と、
    前記第1の記憶装置に記録された前記第1データを前記第2の記憶装置に格納させた後に、キャッシュメモリから前記第1データを削除する処理と
    書き込み先が前記第1の記憶装置である第2データが前記キャッシュメモリから押し出された場合に、当該押し出された第2データに関する情報を押し出し履歴格納部に格納する処理と、
    前記キャッシュメモリに空き領域が生じると、前記押し出し履歴格納部から前記押し出された前記第2データに関する情報を読み出し、当該第2データに関する情報に基づいて前記第1の記憶装置から読み出した第2データを、前記キャッシュメモリに格納する処理と、
    前記キャッシュメモリにおける前記第1データの数に応じて、前記押し出し履歴格納部の格納領域サイズを変更する処理と
    をコンピュータに実行させることを特徴とする、キャッシュ制御プログラム。
JP2014055034A 2014-03-18 2014-03-18 ストレージ装置,キャッシュ制御方法及びキャッシュ制御プログラム Expired - Fee Related JP6256133B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014055034A JP6256133B2 (ja) 2014-03-18 2014-03-18 ストレージ装置,キャッシュ制御方法及びキャッシュ制御プログラム
US14/633,289 US9846654B2 (en) 2014-03-18 2015-02-27 Storage apparatus, cache control method, and computer-readable recording medium having cache control program recorded thereon

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014055034A JP6256133B2 (ja) 2014-03-18 2014-03-18 ストレージ装置,キャッシュ制御方法及びキャッシュ制御プログラム

Publications (2)

Publication Number Publication Date
JP2015176575A JP2015176575A (ja) 2015-10-05
JP6256133B2 true JP6256133B2 (ja) 2018-01-10

Family

ID=54142253

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014055034A Expired - Fee Related JP6256133B2 (ja) 2014-03-18 2014-03-18 ストレージ装置,キャッシュ制御方法及びキャッシュ制御プログラム

Country Status (2)

Country Link
US (1) US9846654B2 (ja)
JP (1) JP6256133B2 (ja)

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04148225A (ja) 1990-10-08 1992-05-21 Hitachi Ltd ファイルアクセス制御方式および装置
JPH0863397A (ja) 1994-08-24 1996-03-08 Hitachi Ltd ディスクキャッシュ制御方法
JPH11288387A (ja) 1998-12-11 1999-10-19 Fujitsu Ltd ディスクキャッシュ装置
JP4742432B2 (ja) * 2001-03-07 2011-08-10 富士通株式会社 メモリシステム
JP4890048B2 (ja) 2006-02-24 2012-03-07 株式会社日立製作所 記憶制御装置及び記憶制御装置を用いたデータマイグレーション方法
US8074014B2 (en) * 2008-03-31 2011-12-06 Microsoft Corporation Storage systems using write off-loading
US8122217B2 (en) * 2009-05-06 2012-02-21 International Business Machines Corporation Method of a full coverage low power mode for storage systems storing replicated data items
US8868863B2 (en) * 2012-01-12 2014-10-21 Alcatel Lucent Method and apparatus for a frugal cloud file system
JP5843010B2 (ja) 2012-06-25 2016-01-13 富士通株式会社 ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラム
JP6264116B2 (ja) * 2014-03-18 2018-01-24 富士通株式会社 情報処理装置,制御方法及び制御プログラム
JP6269253B2 (ja) * 2014-03-29 2018-01-31 富士通株式会社 分散ストレージシステム、記憶装置制御方法、および記憶装置制御プログラム

Also Published As

Publication number Publication date
US9846654B2 (en) 2017-12-19
US20150269078A1 (en) 2015-09-24
JP2015176575A (ja) 2015-10-05

Similar Documents

Publication Publication Date Title
CN103562843B (zh) 用于管理顺序存取存储设备中的数据的方法和设备
JP6016939B2 (ja) テープ・ドライブ・システム・サーバ、それを含むテープ・アライアンス・システムおよびシステム、ならびにコンピュータ・プログラム
US10503423B1 (en) System and method for cache replacement using access-ordering lookahead approach
US8327076B2 (en) Systems and methods of tiered caching
JP6870246B2 (ja) ストレージ装置、及びストレージ制御装置
US10540296B2 (en) Thresholding task control blocks for staging and destaging
US20120089782A1 (en) Method for managing and tuning data movement between caches in a multi-level storage controller cache
CN103688249B (zh) 固态盘的自适应记录高速缓存
JP6099059B2 (ja) ストレージのためのトラックのキャッシュ管理するプログラム、システム、および方法
CN103703440A (zh) 预取用于使更新轨道离台的数据轨道和奇偶校验数据
CN103907096A (zh) 闪存高速缓存中的部分数据片段的提升
KR20140142154A (ko) 솔리드 스테이트 드라이브 캐싱 환경에서 디스크 조각 모음 관리 방법
JP2017204037A (ja) 情報処理装置、重複除去プログラム、及び重複除去方法
US10719240B2 (en) Method and device for managing a storage system having a multi-layer storage structure
US9471253B2 (en) Use of flash cache to improve tiered migration performance
JP5729479B2 (ja) 仮想テープ装置及び仮想テープ装置の制御方法
JP2000330729A (ja) オンラインバックアップ機能を持つディスクアレイシステム
JP6256133B2 (ja) ストレージ装置,キャッシュ制御方法及びキャッシュ制御プログラム
JP6521694B2 (ja) 記憶制御システム及び記憶制御装置
WO2016001959A1 (ja) ストレージシステム
WO2015145707A1 (ja) 追記型記憶装置への書き込みデータ決定方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170823

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170905

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171027

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171120

R150 Certificate of patent or registration of utility model

Ref document number: 6256133

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees