JP6540391B2 - ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法 - Google Patents

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

Info

Publication number
JP6540391B2
JP6540391B2 JP2015173683A JP2015173683A JP6540391B2 JP 6540391 B2 JP6540391 B2 JP 6540391B2 JP 2015173683 A JP2015173683 A JP 2015173683A JP 2015173683 A JP2015173683 A JP 2015173683A JP 6540391 B2 JP6540391 B2 JP 6540391B2
Authority
JP
Japan
Prior art keywords
counter
data
storage volume
write
cache
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.)
Active
Application number
JP2015173683A
Other languages
English (en)
Other versions
JP2017049872A (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 JP2015173683A priority Critical patent/JP6540391B2/ja
Priority to US15/249,515 priority patent/US10528468B2/en
Publication of JP2017049872A publication Critical patent/JP2017049872A/ja
Application granted granted Critical
Publication of JP6540391B2 publication Critical patent/JP6540391B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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
    • G06F12/124Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list being minimized, e.g. non MRU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • G06F2212/262Storage comprising a plurality of storage devices configured as RAID
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/281Single cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/312In storage controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/462Track or segment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/604Details relating to cache allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法に関する。
近年、Redundant Arrays of Independent Disks(RAID)を構成する物理ディスク(記憶装置)の記憶容量の増加により、RAID内に多数の論理ボリュームを構成するストレージ装置が普及している。
このようなストレージ装置には、同じRAID内の複数の論理ボリュームに対する書込要求等のI/O(Input / Output)要求を並列に処理するものがある。I/O要求の並列処理が可能な理由としては、ホスト装置−ストレージ装置間のインタフェースのハードウェアが高性能化されたこと、又は、複数のパスで冗長性を持たせたこと等が挙げられる。
なお、ストレージ装置においては、I/O要求等のアクセス要求に係るデータをキャッシュメモリに格納し、例えばライトバック方式によって、ライトバック実行前のダーティデータをキャッシュメモリから物理ディスクへ追い出す(書き出す)ライトバック処理が行なわれる。ライトバック処理は、例えば定期的に、又は空きキャッシュメモリの容量不足(キャッシュ枯渇)が生じてキャッシュ領域を解放する場合等に行なわれ得る。
特開2005−258789号公報 特開平5−303528号公報
ストレージ装置では、ホスト装置から発行された書込要求のアクセス対象である複数の論理ボリュームが、1つの物理ディスクに割り当てられている場合がある。この場合において、キャッシュメモリの空き容量が不足するとダーティデータのライトバックが行なわれるが、書込要求の並列処理により複数のライトバックが実行されると、ライトバックに係るデータ量に対して物理ディスクの処理性能が追い付かないことがある。
これにより、キャッシュメモリの空き容量の確保に時間がかかり、書込処理における書込要求へのキャッシュメモリの割り当てに遅延が発生し得る。
なお、書込処理に限らず、アクセス要求、例えば読出要求においても、書込処理と同様にI/O要求へのキャッシュメモリの割り当てに遅延が発生し得る。読出要求に係る読出処理において、論理ボリュームから読み出す読出対象のデータを格納するキャッシュメモリの空き容量が不足するとライトバックが発生するためである。
1つの側面では、本発明は、ストレージ装置においてアクセス要求に対するキャッシュメモリの割り当て遅延の発生を抑制することを目的とする。
1つの態様では、本件のストレージ制御装置は、第1カウンタと、判定部と、書戻処理
部とをそなえる。前記第1カウンタは、キャッシュメモリに格納されたアクセス要求に係るデータのうちの、前記アクセス要求の対象の記憶ボリュームへの書き込みが行なわれていないデータの数を前記記憶ボリュームごとにカウントする。また、前記判定部は、第1の記憶ボリュームに対する書込要求又は読出要求である第1のアクセス要求の受信に応じて、前記第1のアクセス要求の対象の前記第1の記憶ボリュームに対して前記キャッシュメモリから割当済のデータ数に対する、前記第1の記憶ボリュームに対応する前記第1カウンタのカウンタ値の第1の割合が第1の閾値を超えるか否かを判定する。さらに、前記書戻処理部は、前記第1の割合が前記第1の閾値を超える場合に、前記第1の記憶ボリュームに対する前記キャッシュメモリからのデータの書戻処理を行なう。
1つの側面では、ストレージ装置においてアクセス要求に対するキャッシュメモリの割り当て遅延の発生を抑制することができる。
比較例に係るストレージシステムの構成例を示す図である。 比較例に係るキャッシュ制御部によるキャッシュヒットの判定処理の動作例を説明するフローチャートである。 比較例に係るストレージ装置においてI/O要求に対するキャッシュ領域を確保できなかった場合の一例を説明する図である。 比較例に係るストレージ装置においてI/O要求に対するキャッシュ領域を確保できなかった場合の一例を説明する図である。 比較例に係るストレージ装置においてI/O要求に対するキャッシュ領域を確保できなかった場合の一例を説明する図である。 一実施形態の一例としてのストレージシステムの構成例を示す図である。 一実施形態に係るストレージ装置においてI/O要求に対するキャッシュ領域を確保できなかった場合の一例を説明する図である。 一実施形態に係るストレージシステムの全体の動作例を説明するシーケンス図である。 一実施形態に係るキャッシュ制御部によるキャッシュヒットの判定処理の動作例を説明するフローチャートである。 一実施形態に係るキャッシュ制御部によるキャッシュヒットの判定処理の動作例を説明するフローチャートである。 一実施形態に係るキャッシュ制御部によるキャッシュ領域の解放処理の動作例を説明するフローチャートである。 一実施形態に係るキャッシュ制御部によるライトバック完了時の割込処理の動作例を説明するフローチャートである。 一実施形態に係るCMのハードウェア構成例を示す図である。
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下実施形態で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
〔1〕比較例
はじめに、一実施形態の比較例について説明する。図1はストレージシステム100の構成例を示す図である。図1に例示するように、ストレージシステム100はホスト装置200及びストレージ装置300をそなえる。
ストレージシステム100では、ホスト装置200−ストレージ装置300間のインタフェースのハードウェアが高性能化されており、また、I/O要求に対して複数のパスで冗長性を持たせており、これによりアクセス要求の並列処理を行なうことができる。
図1に例示するように、ホスト装置200は、複数のインタフェースの一例としてのChannel(CH)200a〜200dをそなえる。また、ストレージ装置300は、複数のインタフェースの一例としてのChannel Adapter(CA)400a〜400d、コントローラの一例としてのController Module(CM)500、及びDrive Enclosure(DE)600をそなえる。
なお、符号が数字及びアルファベットの組み合わせで表される装置のうち、数字部分が共通の装置は同様の機能をそなえることができる。以下の説明において、数字部分が共通の装置を区別しない場合には、符号として単に数字部分を用いて表記する。例えばCA400a〜400dを区別しない場合には、単にCA400と表記する。
DE600は、複数の物理ディスクを搭載するエンクロージャの一例である。ストレージ装置300では、複数の物理ディスクによって物理ボリューム610a〜610cを形成することができる。物理ボリューム610は、例えばRAIDグループに設定されたRAID Logical Unit(RLU)単位で管理されてもよい。以下、物理ボリューム610をRAID又はRLUと表記する場合がある。
物理ボリューム610a〜610cは複数の記憶ボリュームの一例である。物理ボリューム610の各々は、ホスト装置200に認識される単位である論理ボリューム620を複数設定され、当該論理ボリューム620のデータを記憶することができる。論理ボリュームとしては、ホスト装置200がメインフレームである場合、Mainframe Logical Unit(MLU)が挙げられる。
CM500は、例示的に、キャッシュメモリ510、キャッシュ制御部520、及びRAID制御部550をそなえる。キャッシュ制御部520は、Least Recent Used(LRU)テーブル530や、ダーティテーブル540を管理する。
キャッシュ制御部520は、ホスト装置200からのアクセス要求に対してキャッシュメモリ510の割当及び解放を、LRUテーブル530及びダーティテーブル540に基づき、LRU方式によりキャッシュページ単位で実施する。キャッシュページは数十〜数百KB(バイト)程度、例えば128KB等の固定サイズである。
LRUテーブル530は、キャッシュメモリ510の記憶領域についてキャッシュページ単位で、追い出し順序に関するLRU情報を管理するテーブルである。また、ダーティテーブル540には、キャッシュページ単位で、データの書き戻し状態を示す情報、換言すれば、I/O要求の対象の物理ボリューム610への書き込みが行なわれたか否かを示す情報が設定される。一例として、ダーティテーブル540にはキャッシュページごとに、ライトバックが必要なデータを表す“DIRTY”、書き戻しが完了しているデータ又は読み出された後に更新されていないデータを表す“NOT DIRTY”のいずれかが設定される。
RAID制御部550は、DE600(物理ボリューム610)との間のアクセスを制御するコントローラの一例である。
次に、図2を参照して、キャッシュ制御部520によるキャッシュヒットの判定処理の動作例について説明する。キャッシュ制御部520は、ストレージ装置300内でキャッシュメモリ510全体の使用状態を監視する。
ホスト装置200からの新規のI/O要求のコマンドを例えばCA400aから受信すると、キャッシュ制御部520は、当該I/O要求に対して割り当てるキャッシュ領域がヒットしたか否かを判定する(ステップS101)。なお、キャッシュヒットの判定については既知の種々の手法により実現可能であり、その詳細な説明は省略する。
キャッシュ領域がヒットした場合(ステップS101のYesルート)、キャッシュ制御部520はヒットしたキャッシュ領域の情報をCA400aへ通知し(ステップS102)、キャッシュ制御部520によるキャッシュヒットの判定処理が終了する。
なお、キャッシュ領域の情報を通知されたCA400aは、通知された領域へのI/O要求のデータ(書込データ)の書き込みをキャッシュ制御部520へ指示し、キャッシュ制御部520は、当該領域に対して書込データを書き込み、CA400aへ応答を返す。このようなキャッシュヒットの判定後の動作は既知の種々の手法により実現可能であり、その詳細な説明は省略する。
一方、キャッシュ領域がヒットしない場合(ステップS101のNoルート)、キャッシュ制御部520は、キャッシュの枯渇状態の確認を行ない、キャッシュフルであるか否かを判定する(ステップS103)。キャッシュフルではない場合(ステップS103のNoルート)、キャッシュ制御部520は、空きキャッシュ領域を新たなI/O要求に割り当て、割り当てたキャッシュ領域の情報をCA400aへ通知し(ステップS104)、キャッシュ制御部520によるキャッシュヒットの判定処理が終了する。
一方、キャッシュフルである場合(ステップS103のYesルート)、キャッシュ制御部520は、領域確保のためのキャッシュの解放処理を行なう。解放処理では、キャッシュ制御部520は、LRUテーブル530における最もアクセスの古い領域、換言すれば追出対象(解放対象)の領域が、ライトバック済であるか否かを判定する(ステップS105)。この判定は、キャッシュメモリ510上のダーティデータを管理するダーティテーブル540を参照し、追出対象の領域のデータがダーティデータではないか否かを判定すればよい。
追出対象の領域がライトバック済である、換言すればダーティではない場合(ステップS105のYesルート)、キャッシュ制御部520は、LRUテーブル530の追出対象の領域を新たなI/O要求に割り当て、当該領域をCA400aへ通知し(ステップS106)、キャッシュ制御部520によるキャッシュヒットの判定処理が終了する。
一方、追出対象の領域がライトバック済ではない、換言すればダーティデータである場合(ステップS105のNoルート)、キャッシュ制御部520は、RAID制御部550に対してライトバックを指示する。このとき、キャッシュ制御部520は、ライトバックの完了待ちをせずに、LRUテーブル530に基づく次の追出対象の領域について、ライトバック済か否かの判定を行なう(ステップS108)。
次の追出対象の領域がライトバック済である場合(ステップS108のYesルート)、処理がステップS106に移行する。一方、次の追出対象の領域がライトバック済ではない場合(ステップS108のNoルート)、キャッシュ制御部520は、ライトバック済の領域が有るか否かを判定し(ステップS109)、他にライトバック済の領域が有る場合(ステップS109のYesルート)、処理がステップS107に移行する。
また、他にライトバック済の領域が無い場合(ステップS109のNoルート)、キャッシュ制御部520は、キャッシュ枯渇の状態であると判断し、CA400aに対してホスト装置200へのビジー応答を依頼し(ステップS110)、キャッシュ制御部520によるキャッシュヒットの判定処理が終了する。
次に、図3〜図5を参照して、ストレージ装置300においてI/O要求に対するキャッシュ領域を確保できなかった場合、換言すれば、キャッシュフル、且つ、ダーティでない領域が存在しない場合の一例について説明する。
図3〜図5に示すキャッシュメモリ510においては、キャッシュページ単位の領域を、LRUテーブル530で示されるLRU順、換言すればキャッシュメモリ510からデータが追い出される順で示している。なお、図3〜図5に示すCommand Queue(CMDQ)630a〜630cは、それぞれRAID制御部550で管理される物理ボリューム610ごとのコマンドキューの一例である。
図3に示すように、例えばホスト装置200のCH200aからI/O要求が発行されると、ストレージ装置300のCA400aがCM500のキャッシュ制御部520へキャッシュ割当要求を発行する。キャッシュ制御部520は、I/O要求に対してキャッシュメモリ510を割り当てるとき、空き領域が存在しない場合にはLRUの順に従い、既存のデータの追い出しを実施する。なお、ホストI/Oが高負荷状態になると、定期的なライトバックではキャッシュ解放が追いつかず、キャッシュ上がダーティデータのみになるキャッシュの枯渇状態が発生し易くなる。
ここで、キャッシュメモリ510からの既存のデータの追い出しには、当該データの状態が“DIRTY”である場合にはライトバック処理の実施が含まれ得る。一方、当該データの状態が“NOT DIRTY”である場合には当該データが既にライトバック済であるためライトバック処理は行なわれない。
ダーティデータのライトバックは、キャッシュの枯渇を起因として開始されるため、ホストI/Oの高負荷時には、複数のI/O要求が一斉にキャッシュ領域の空き待ち状態になり、ライトバック完了まで処理が待たされる。なお、ライトバックが完了し、キャッシュ領域が確保できたときにホストI/Oの処理が再開される。
このとき、ライトバックが行なわれるデータが1つのRAID(RLU)、例えば図3に示すように物理ボリューム610aに集中する(偏る)と、RAIDの処理能力を超えるライトバック要求が発行される。
これにより、記憶装置への書き戻しコマンド(データ)がCMDQ630aに大量に溜まることになり、記憶装置側のコマンド処理が間に合わず、キャッシュの追い出し処理に遅延が発生する。このキャッシュの追い出し処理の遅延が、ホストI/Oの待ち時間になり、場合によってはキャッシュ制御部520においてホストI/Oの処理監視タイマがタイムアウトを検出し、タイムアウト、すなわちホストI/Oがエラー終了する事象が発生し得る。
また、図4及び図5に示すように、ダーティデータのライトバックのタイミングを、キャッシュメモリ510内のダーティデータの量によって可変とすることで、キャッシュメモリの枯渇に対応することも考えられる。
例えば図4に示すように、キャッシュ制御部520がキャッシュメモリ510内のダーティデータの割合を判定し、ライトバック間隔を変更することで、キャッシュメモリ510がキャッシュフルの状態になる前にLRUに従いキャッシュの追い出しを行なう。
また、図5の例では、キャッシュ制御部520が、ダーティデータの割合が一定量を超えたときにライトバックを開始し、キャッシュメモリ510に常に空き領域を発生させることで、ライトバックによるキャッシュの空き待ち時間の発生を抑制できる。
しかしながら、図4の例では、キャッシュメモリ510全体のダーティデータ量を元に、LRUに従ってライトバックさせており、ライトバック先のRAIDの負荷を考慮していない。このため、ライトバックがステージング等のRAID動作と競合した場合にRAIDの性能が低下する可能性がある。また、LRUにRAIDの偏りがある場合、RAIDに対する負荷の集中を回避できず、書き戻しコマンドが遅滞する可能性もある。
また、図5の例ではさらに、追い出しがLRUテーブル530に従って行なわれ、常にキャッシュ領域に空き領域ができるため、キャッシュメモリ510の記憶領域を100%利用することができず、キャッシュヒット率が低下し得る。
〔2〕一実施形態
〔2−1〕ストレージシステムの構成例
以下、上述した比較例に対する一実施形態に係るストレージシステムについて説明する。
図6は一実施形態の一例としてのストレージシステム1の構成例を示す図である。図6に示すように、ストレージシステム1は、例示的に、ホスト装置2及びストレージ装置3をそなえる。なお、ストレージシステム1は例えば基幹システムの少なくとも一部であってもよい。
ホスト装置2は、ストレージ装置3に対して書込要求及び読出要求を含む種々のアクセス要求(I/O要求)を発行する上位装置の一例である。ホスト装置2としてはコンピュータ、例えばサーバやPersonal Computer(PC)等の情報処理装置が挙げられる。例えばホスト装置2は、メインフレーム等であってもよい。図6に例示するように、ホスト装置2は、複数のインタフェースの一例としてのCH2a〜2dをそなえる。
ストレージ装置3は、複数の物理ディスクをそなえ、ホスト装置2に対して物理ディスクの記憶領域を提供する。図6に示すように、ストレージ装置3は、例示的に、複数のインタフェースの一例としてのCA4a〜4d、コントローラの一例としてのCM5、及びDE6をそなえる。
なお、符号が数字及びアルファベットの組み合わせで表される装置のうち、数字部分が共通の装置は同様の機能をそなえることができる。以下の説明において、数字部分が共通の装置を区別しない場合には、符号として単に数字部分を用いて表記する。例えばCA4a〜4dを区別しない場合には、単にCA4と表記する。
DE6は、複数の物理ディスクを搭載するエンクロージャの一例である。ストレージ装置3では、複数の物理ディスクによって、例えばRAID等の物理ボリューム61a〜61cを形成することができる。なお、物理ディスクとしては、Hard Disk Drive(HDD)等の磁気ディスク装置、Solid State Drive(SSD)等の半導体ドライブ装置等の種々の記憶装置が挙げられる。
物理ボリューム61a〜61cは複数の記憶ボリュームの一例である。物理ボリューム61a〜61cの各々は、複数の論理ボリューム62を割り当てられ、当該論理ボリューム62のデータを記憶することができる。論理ボリュームとしては、ホスト装置2がメインフレームである場合、MLUが挙げられる。
CM5は、ホスト装置2から発行される複数の物理ボリューム61へのアクセス要求に対する制御を行なうストレージ制御装置の一例である。図6に示すように、CM5は、例示的に、キャッシュメモリ51、キャッシュ制御部52、LRUテーブル53、ダーティテーブル54、及びRAID制御部55をそなえる。CM5としては、サーバやPC等の情報処理装置が挙げられる。
キャッシュ制御部52は、ホスト装置2からのアクセス要求に対してキャッシュメモリ51の割当及び解放を、LRUテーブル53及びダーティテーブル54に基づき、LRU方式によりキャッシュページ単位で実施する。キャッシュページは数十〜数百KB(バイト)程度、例えば128KB等の固定サイズである。
LRUテーブル53は、キャッシュメモリ51の記憶領域についてキャッシュページ単位で、追い出し順序に関するLRU情報を管理するテーブルである。
ダーティテーブル54は、キャッシュページごとのデータの書き戻し状態を示す情報が設定される。一例として、ダーティテーブル54に設定される情報には、ダーティテーブル540と同様の“DIRTY”及び“NOT DIRTY”が含まれる(図7参照)。ここで、図7の例において、説明の便宜上、ライトバック処理が実行中であるキャッシュページに対してダーティテーブル54に“WB実行中”と記載しているが、実際には、当該キャッシュページには“DIRTY”の状態が設定される。なお、“WB実行中”はLRUテーブル53で管理される情報である。
RAID制御部55は、物理ボリューム61a〜61cとの間のアクセスを制御するコントローラの一例である。RAID制御部55は、物理ボリューム61ごとにコマンドキュー(CMDQ63;図7参照)を管理することができる。なお、物理ボリューム61においても、入力されるコマンドを格納するバッファが存在し、当該バッファにRAID制御部55から発行されたライトバックに係るコマンドを格納することができる。
なお、CM5は、CM5としての種々の機能を実現するプロセッサの一例としてのCentral Processing Unit(CPU)、及びプロセッサが実行するプログラムを格納するメモリの一例としてのRandom Access Memory(RAM)をそなえることができる。
上述したキャッシュ制御部52及びRAID制御部55の少なくとも一部の機能は、CPUがメモリに格納されたストレージ制御プログラムを実行することにより実現されてもよい。また、上述したキャッシュメモリ51はメモリの少なくとも一部の記憶領域により実現されてもよい。さらに、メモリは、上述したLRUテーブル53及びダーティテーブル54の各情報を記憶する記憶領域を有してもよい。
〔2−2〕キャッシュ制御部の構成例
次に、図6に示すキャッシュ制御部52の構成例について説明する。
キャッシュ制御部52は、キャッシュ枯渇によるキャッシュ領域解放時のライトバック処理を、以下に詳述する構成及び手法により実現することで、上述した比較例に係るライトバック処理でのRLUの偏りを解消することができる。
図6に示すように、キャッシュ制御部52は、例示的に、RLUカウンタ521、ダーティカウンタ522、ライトバックカウンタ523、カウンタ制御部524、及びライトバック実行部525をそなえる。
RLUカウンタ521、ダーティカウンタ522、及びライトバックカウンタ523は、それぞれRLUごと、例えば物理ボリューム61ごとにカウントを行なうカウンタである。カウンタ制御部524は、これらのカウンタ521〜523に対する制御、例えば加算又は減算を行なう。
RLUカウンタ521は、キャッシュメモリ51上に割り当てられたデータ数を、RLU別に記録するためのカウンタである。換言すれば、RLUカウンタ521は、キャッシュメモリ51に割り当てられたデータ数を物理ボリューム61ごとにカウントする第3カウンタの一例である。
一例として、カウンタ制御部524は、キャッシュ制御部52がホスト装置2からのI/O要求、例えば書込要求又は読出要求を受けて、当該I/O要求にキャッシュ領域を割り当てたときに、割り当てられたデータ数をRLUカウンタ521に加算する。また、一例として、カウンタ制御部524は、キャッシュ制御部52がI/O要求に割り当てたキャッシュ領域を解放するとき、解放されるデータ数をRLUカウンタ521から減算する。加算及び減算の対象のカウンタ値は、データの割当又は解放対象のRLU(例えば物理ボリューム61)に対応したカウンタ値である。
ダーティカウンタ522は、キャッシュメモリ51上にステージングされたデータのうちの書込要求に含まれるデータ数を、RLU別に記録するためのカウンタである。換言すれば、ダーティカウンタ522は、キャッシュメモリ51に格納されたアクセス要求に係るデータのうちの、アクセス要求の対象の物理ボリューム61への書き込みが行なわれていないデータの数を物理ボリューム61ごとにカウントする第1カウンタの一例である。
一例として、カウンタ制御部524は、キャッシュ制御部52がホスト装置2からの書込要求を受けて、当該書込要求にキャッシュ領域を割り当てたときに、当該書込要求に含まれるデータ数をダーティカウンタ522に加算する。また、一例として、カウンタ制御部524は、キャッシュ制御部52(ライトバック実行部525)による、書込要求に割り当てたキャッシュ領域を物理ボリューム61へライトバックするライトバックを指示したとき又はライトバック処理が完了したとき、ライトバックされたデータ数をダーティカウンタ522から減算する。加算及び減算の対象のカウンタ値は、データの割当又はライトバック対象のRLU(例えば物理ボリューム61)に対応したカウンタ値である。
ライトバックカウンタ523は、キャッシュ制御により、RLUへのライトバック実行を指示したデータ数をRLU別に記録するためのカウンタである。換言すれば、ライトバックカウンタ523は、ライトバック実行部525によるライトバック(書戻処理)中のデータ数を物理ボリューム61ごとにカウントする第2カウンタの一例である。
一例として、カウンタ制御部524は、キャッシュ制御部52(ライトバック実行部525)がRAID制御部55に対してRLUへのダーティデータのライトバックを指示したときに、ライトバックを指示したデータ数をライトバックカウンタ523に加算する。また、カウンタ制御部524は、ライトバックが完了したときに、ライトバックが完了したデータ数をライトバックカウンタ523から減算する。加算及び減算の対象のカウンタ値は、ライトバック対象のRLU(例えば物理ボリューム61)に対応したカウンタ値である。
なお、上述したカウンタ521〜523においてカウントされるデータ数は、キャッシュメモリ51でデータが管理されるサイズ、例えばキャッシュページを単位とする。
ライトバック実行部525は、定期的なライトバック処理に加えて、I/O要求へのキャッシュメモリ51の割り当ての際に、カウンタ521〜523に基づくライトバック処理を実行することができる。
例えば、ライトバック実行部525は、ライトバック処理において、RLUごとのキャッシュメモリ51の使用率を算出し、使用率が閾値を超えたときにライトバック処理を実施する。
一例として、ライトバック実行部525は、RLUに割り当て可能な最大キャッシュ容量(N)の使用率を、ストレージ装置3の構成情報(図示省略)を参照して求める。なお、Nは『ストレージ装置3の全キャッシュ容量に割り当て可能なデータ数』÷『ストレージ装置3に定義されたRLU数』の算出によって求めることができる。ここで、全キャッシュ容量に割り当て可能なデータ数は、『ストレージ装置3に搭載されたキャッシュメモリ51のサイズ(容量)』÷『キャッシュページサイズ(データ容量)』を算出することで求められる。
そして、ライトバック実行部525は、『ダーティカウンタ522のカウンタ値の総計』÷『全キャッシュ容量に割り当て可能なデータ数』を算出することで、キャッシュメモリ51全体のダーティデータの使用率(以下、全ダーティデータ使用率と表記する)を算出する。
また、ライトバック実行部525は、RLUごとに『ダーティカウンタ522のカウンタ値』÷『RLUカウンタ521のカウンタ値』を算出することで、RLUごとのダーティデータの使用率(以下、RLU別ダーティデータ使用率と表記する)を算出する。
そして、ライトバック実行部525は、全ダーティデータ使用率が全ダーティデータ使用率の閾値を超え、且つ、RLU別ダーティデータ使用率がRLU別ダーティデータ使用率の閾値を超えている場合、当該RLUについては『ライトバック処理を加速させる』ものとして、定期的なライトバック処理を待たずに、ライトバック処理を開始する。
なお、全ダーティデータ使用率の閾値としては、例えば0.5(全キャッシュ領域に格納可能なデータのうちの50%がダーティデータ)等の値が設定され得る。また、RLU別ダーティデータ使用率の閾値としては、例えば0.5(I/O要求のあったRLUに係るキャッシュ領域を使用中のデータのうちの50%がダーティデータ)等の値が設定され得る。なお、これらの閾値は共通のものが用いられてもよい。以下の説明では、全ダーティデータ使用率の閾値及びRLU別ダーティデータ使用率の閾値として、共通のダーティデータ使用率の閾値が用いられるものとする。
上述したライトバック処理の開始の判定は、例えばダーティカウンタ522に値が加算されたとき、換言すれば書込要求に対してキャッシュ領域に書き込みを行なったタイミングを契機に開始してもよい。また、このとき判定の対象となるRLUは、I/O要求の対象のRLUに制限されてもよい。
なお、ライトバック実行部525によるダーティデータ使用率の判定では、全ダーティデータ使用率についての算出及び判定が行なわれなくてもよい(省略されてもよい)。
このように、ライトバック実行部525は、第1のアクセス要求の受信に応じて、第1のアクセス要求の対象の第1の物理ボリューム61に対してキャッシュメモリ51から割当済のデータ数、例えばRLUカウンタ521のカウンタ値に対する、第1の物理ボリューム61に対応するダーティカウンタ522のカウンタ値の第1の割合が第1の閾値を超えるか否かを判定する判定部の一例である。また、判定部の一例としてのライトバック実行部525は、さらに、第1のアクセス要求の受信に応じて、キャッシュメモリ51から割当可能なデータ数に対する、ダーティカウンタ522のカウンタ値の合計の第2の割合が第1の閾値又は他の閾値を超えるか否かを判定することができる。
また、ライトバックカウンタ523は、第1の割合が第1の閾値を超える場合、又は、第1の割合が第1の閾値を超え、第2の割合が第1の閾値又は他の閾値を超える場合に、第1の物理ボリューム61に対するキャッシュメモリ51からのデータの書戻処理を行なう書戻処理部の一例である。
以上の処理により、キャッシュ領域の枯渇前にライトバック処理を行なうことができ、I/O要求へのキャッシュ領域の割り当て時間の遅延を抑制することができる。
また、ライトバックの完了時に、キャッシュメモリ51上にデータが残る。これにより、例えばダーティデータ使用率の閾値を0.5程度に設定した場合、キャッシュメモリ51の容量に対してダーティデータが50%以下の場合にデータの追い出しが動くことで生じる、ステージング(キャッシュ)されたデータの減少を抑制できる。従って、キャッシュメモリ51を効率よく、例えば100%使用することができ、キャッシュヒット率の低下を抑制できる。また、キャッシュメモリ51からのデータの追い出しの際に、ライトバックを行なわなくてもよい領域を増やすことができ、新たなI/O要求を受信したときにキャッシュメモリ51の割り当てにかかる待ち時間を削減できる。
ところで、ライトバック実行部525は、上述したライトバック処理において、RLUに対するコマンド数が、RLUの性能的に遅延が生じ得る量を超える場合に、他のRLUにライトバック処理を切り替える負荷分散処理を行なうことができる。
例えばライトバック実行部525は、RLUごとのライトバックカウンタ523を監視し、ライトバック処理を実施しようとするRLUに係るカウンタ値がライトバック数の閾値を超えている場合、負荷の低い他のRLUにライトバック対象を切り替える。
なお、ライトバック数の閾値は、RLUに指示しているコマンドがRLUの性能に影響し得るコマンド数を表し、例えば40程度の値が設定され得る。換言すれば、ライトバック数の閾値は、物理ボリューム61におけるデータの書込性能に基づき決定される。
以上のように、判定部の一例としてのライトバック実行部525は、第1の物理ボリューム61に対応するライトバックカウンタ523のカウンタ値が第2の閾値を超えるか否かを判定することができる。
また、書戻処理部の一例としてのライトバック実行部525は、第1の物理ボリューム61に対応するライトバックカウンタ523のカウンタ値が第2の閾値を超える場合、第1の物理ボリューム61に対する書戻処理を抑止することができる。そして、ライトバック実行部525は、カウンタ値が第2の閾値以下のライトバック実行部525に対応する第2の物理ボリューム61に対する、キャッシュメモリ51からのデータの書戻処理を行なうことができる。
これにより、ライトバック処理によるRLUへの負荷の集中(高負荷状態)を回避することができ、RLUにおける処理遅延に伴うライトバック処理の遅滞の発生を抑止することができる。
なお、上述した各閾値は、上述した値に限定されるものではなく、装置構成や運用の態様等の種々の条件に応じて適宜決定され、運用開始前に予めCM5に設定されてもよい。また、これらの閾値が運用の過程でCM5又はオペレータ等により変更されてもよい。
また、ライトバック処理では、RAID制御部55に対してライトバック対象のキャッシュページに格納されたデータを物理ボリューム61へ書き込ませる指示が発行される。RAID制御部55によるライトバックの実施については、既知の種々の手法により行なうことが可能であり、その詳細な説明は省略する。
さらに、定期的なライトバック処理では、ライトバック実行部525は、ホストI/Oによるデータ使用が終了したタイミングで、データごとにライトバック用のタイマを起動し、タイムアップしたときに当該データについてのライトバック処理を実施することができる。
次に、図7を参照して、ストレージ装置3においてI/O要求に対するキャッシュ領域を確保できなかった場合、換言すれば、キャッシュフル、且つ、ダーティでない領域が存在しない場合の一例について説明する。なお、説明の便宜上、ライトバック数の閾値が“2”であるものとする。
図7に示すように、例えばホスト装置2のCH2aからI/O要求が発行されると、ストレージ装置3のCA4aがCM5のキャッシュ制御部52へキャッシュ割当要求を発行する。ライトバック実行部525は、I/O要求に対してキャッシュメモリ51を割り当てるとき、空き領域が存在しない場合には、キャッシュ領域の全ダーティデータ使用率及びRLU別ダーティデータ使用率が高く、負荷の少ないRLUに対するダーティデータのライトバック指示を発行する。
例えば図7に示すように、ライトバック実行部525は、RLUカウンタ521及びダーティカウンタ522に基づき、RAID#0、RAID#1、及びRAID#2について、全ダーティデータ使用率及びRLU別ダーティデータ使用率がそれぞれの閾値を超えていると判定した場合、以下の処理を行なう。
ライトバック実行部525は、LRU順でキャッシュメモリ51のダーティデータを追い出す際に、RLU別のライトバックカウンタ523に基づき、ライトバック指示を発行する対象のRLUについて、カウンタ値がライトバック数の閾値を超えないように制御を行なう。
一例として、ライトバック実行部525は、ダーティテーブル54についてLRU順に(図7のダーティテーブル54のうちの下から上に向かって順に)、RAID#0、RAID#0、RAID#1、RAID#0のダーティデータのライトバックを指示する。なお、ライトバックカウンタ523は、RAID#0が“3”、RAID#1が“1”に更新される。
次いで、ライトバック実行部525は、下から5番目のRAID#0のデータについて、RAID#0のライトバックカウンタ523がライトバック数の閾値である“2”を超えているため、RAID#0のデータに係るライトバックを抑止する。同様に、ライトバック実行部525は、下から6番目〜10番目のRAID#0のデータに係るライトバックも抑止する。
一方、ライトバック実行部525は、下から11番目及び12番目のRAID#1のデータについては、RAID#1のライトバックカウンタ523が“1”であり、ライトバック数の閾値以下であるため、RAID#1のデータに係るライトバックを指示する。
このように、ライトバック実行部525は、LRUテーブル53に従って一律にライトバック処理の対象RLU及び対象データを選択するのではなく、RLUが高負荷にならないデータを選択することができる。
以上のように、一実施形態に係るストレージ装置3によれば、RLUごとにキャッシュメモリ51の使用率及びRLUの負荷を監視し、ライトバックの対象RLUが高負荷状態であれば、負荷の低いRLUに対するライトバック処理に切り替えることができる。
これにより、RLUへ過剰にライトバック指示が発行されないようにでき、RLUの負荷を軽減できるため、ライトバックがRLUにおいて例えばステージングのための読出動作等と競合した場合でも、性能低下を軽減するように管理することができる。
従って、上述した比較例において生じ得る、ライトバック対象のRLUの偏りによるキャッシュメモリ51の割り当て待ち時間の遅延発生を抑止することができ、ストレージ装置3においてアクセス要求に対するキャッシュメモリ51の割り当て遅延の発生を抑制することができる。
〔2−3〕ストレージシステムの動作例
次に、上述の如く構成されたストレージシステム1の動作例を、図8〜図12を参照して説明する。
はじめに、図8を参照して、ストレージシステム1における全体の動作例について説明する。ホスト装置2においてI/Oが発生し、例えばCH2aからI/O要求が発行されると(処理T1)、ストレージ装置3の例えばCA4aがI/O要求を受信し、キャッシュ制御部52に対してキャッシュの割当要求を発行する(処理T2)。
キャッシュ制御部52は、キャッシュヒット判定処理を行ない(処理T3、図9及び図10参照)、キャッシュ割当が成功すると、I/O要求に割り当てるキャッシュメモリ51の領域をCA4aに通知する(処理T4)。
CA4aは、キャッシュ制御部52からの通知に応じて、キャッシュ制御部52を介して、ホストI/Oに基づくキャッシュメモリ51へのデータアクセスを実施する(処理T5)。ホストI/Oが書込要求である場合には、キャッシュメモリ51上のデータの更新が行なわれる。なお、CA4aは、事前にCH2aからI/O要求に係るデータ(書込データ)を取得していてもよいし、処理T4の通知を受けたときにCH2aからデータを取得してもよい。
キャッシュメモリ51へのアクセスが終了すると、CA4aはCH2aへ応答を返し、CH2aからホストI/Oの終了を受信すると(処理T6)、CA4aは、キャッシュ制御部52に対して、キャッシュメモリ51の領域使用の解放を通知する(処理T7)。なお、CA4aは、キャッシュメモリ51のデータ更新を実施した場合、キャッシュ制御部52に対してデータ更新を実施した旨を併せて通知する。
CA4aから通知を受けると、キャッシュ制御部52は、キャッシュ領域の解放処理を実施する(処理T8、図11参照)。
キャッシュ制御部52は、定期的なライトバック処理又はダーティデータ使用率の増加に伴うライトバック処理を行なう際に、RAID制御部55に対して、物理ボリューム61の物理ディスクへのキャッシュメモリ51上のデータのライトバックを指示する(処理T9)。
RAID制御部55は、物理ボリューム61に対して、キャッシュ制御部52から指示されたデータのライトバックを実施し(処理T10)、ライトバックが完了すると、キャッシュ制御部52に対してライトバックの完了を通知する(処理T11)。
キャッシュ制御部52は、RAID制御部55からライトバックの完了通知を受信すると、ライトバック完了の割込処理を実施し(処理T12、図12参照)、処理が終了する。
次に、図9及び図10を参照して、キャッシュ制御部52によるキャッシュヒットの判定処理(図8の処理T3参照)の動作例について説明する。
ホスト装置2からの新規のI/O要求のコマンドを例えばCA4aから受信すると、キャッシュ制御部52は、当該I/O要求に対して割り当てるキャッシュ領域がヒットしたか否か、換言すればI/O要求で指示されたデータがキャッシュヒットしたか否かを判定する(ステップS1)。なお、キャッシュヒットの判定については既知の種々の手法により実現可能であり、その詳細な説明は省略する。
キャッシュ領域がヒットした場合(ステップS1のYesルート)、キャッシュ制御部52はヒットしたキャッシュ領域の情報、例えばヒットしたメモリアドレスをCA4aへ通知(応答)し(ステップS2)、キャッシュ制御部52によるキャッシュヒットの判定処理が終了する。
一方、キャッシュ領域がヒットしない場合(ステップS1のNoルート)、キャッシュ制御部52は、キャッシュの枯渇状態の確認を行ない、キャッシュ領域に未割当領域(空き領域)が存在するか否かを判定する(ステップS3)。未割当領域が存在する場合(ステップS3のYesルート)、キャッシュ制御部52は、空きキャッシュ領域を新たなI/O要求に割り当てる(ステップS4)。また、カウンタ制御部524は、当該I/O要求の対象であるRLUのRLUカウンタ521に対して、カウンタ値に1を加算する(ステップS5)。そして、キャッシュ制御部52は、割り当てたキャッシュ領域の情報をCA4aへ通知し(ステップS6)、キャッシュ制御部52によるキャッシュヒットの判定処理が終了する。
ステップS3において、キャッシュ領域に未割当領域が存在しない場合(ステップS3のNoルート)、ライトバック実行部525は、RLUカウンタ521及びダーティカウンタ522を参照し、ダーティデータ使用率を算出する。例えばキャッシュ制御部52は、キャッシュメモリ51全体のダーティデータ使用率と、I/O要求に係るRLUのRLU別ダーティデータ使用率とを算出する。
そして、ライトバック実行部525は、算出した全ダーティデータ使用率及びRLU別ダーティデータ使用率がいずれもダーティデータ使用率の閾値、例えば50%を超えているか否かを判定する(ステップS7)。
全ダーティデータ使用率は、例えば『ダーティカウンタ522のカウンタ値の総計』÷『キャッシュメモリ51に格納可能なデータ数』の算出により求めることができる。また、RLU別ダーティデータ使用率は、例えばI/O要求に係るRLUの『ダーティカウンタ522のカウンタ値』÷『RLUカウンタ521のカウンタ値』の算出により求めることができる。
なお、ライトバック実行部525は、全ダーティデータ使用率の算出を行なわずに、I/O要求に係るRLUのRLU別ダーティデータ使用率の算出を行ない、算出したRLU別ダーティデータ使用率が閾値を超えるか否かを判定してもよい。
ステップS7において、全ダーティデータ使用率又はRLU別ダーティデータ使用率が閾値以下の場合(ステップS7のNoルート)、キャッシュ制御部52は、LRUテーブル53で示される順序に従い、I/O要求に対してキャッシュ領域を割り当てる(ステップS8)。なお、ステップS8では、キャッシュ制御部52は、LRU順で最も更新の古いライトバック済(ダーティではない)のキャッシュ領域に格納されたデータに対応するRLUを追出対象のRLUとして決定する。
また、カウンタ制御部524は、LRU順で追出対象のRLUのRLUカウンタ521に対して、カウンタ値から1を減算し(ステップS9)、I/O要求の対象であるRLUのRLUカウンタ521に対して、カウンタ値に1を加算する(ステップS10)。そして、キャッシュ制御部52は、割り当てたキャッシュ領域の情報をCA4aへ通知し(ステップS11)、キャッシュ制御部52によるキャッシュヒットの判定処理が終了する。
一方、ステップS7において、全ダーティデータ使用率及びRLU別ダーティデータ使用率がいずれも閾値を超える場合(ステップS7のYesルート)、処理が図10のステップS12に移行する。
図10のステップS12では、ライトバック実行部525は、ライトバック済のキャッシュ領域が存在するか否かを判定する。ライトバック済のキャッシュ領域が存在する場合(ステップS12のYesルート)、キャッシュ制御部52は、LRUテーブル53で示される順序に従い、I/O要求に対してキャッシュ領域を割り当てる(ステップS13)。また、カウンタ制御部524は、LRU順で追出対象のRLUのRLUカウンタ521に対して、カウンタ値から1を減算し(ステップS14)、I/O要求の対象であるRLUのRLUカウンタ521に対して、カウンタ値に1を加算する(ステップS15)。そして、キャッシュ制御部52は、割り当てたキャッシュ領域の情報をCA4aへ通知し(ステップS16)、処理がステップS19に移行する。
一方、ステップS12において、ライトバック済のキャッシュ領域が存在しない場合(ステップS12のNoルート)、キャッシュ制御部52は、キャッシュ領域にライトバック済領域が存在しないため、CA4aにビジーを通知する(ステップS17)。これにより、ホスト装置2にキャッシュ領域の空き待ち状態であることが通知される。
また、キャッシュ制御部52は、ライトバックが完了したときに今回のI/O要求に対するキャッシュ領域の割り当てを行なうため、ライトバック処理が完了したときの割込処理としてキャッシュ領域の割り当て及び通知の実施を登録し(ステップS18)、処理がステップS19に移行する。
ステップS19〜S22では、ステップS7の判定でライトバック未実施のダーティ領域が既にダーティデータ使用率の閾値を超えているため、ライトバック実行部525は、ライトバック対象を他のRLUに変更するために、ライトバックを実施するキャッシュ領域を決定する。換言すれば、ステップS19〜S22の処理が、ライトバック実行部525による負荷分散処理に対応するといえる。
例えばステップS19では、ライトバック実行部525は、ライトバックカウンタ523からライトバック数の閾値以下のRLUを検索する。そして、ライトバック実行部525は、ライトバックカウンタ523にライトバック数の閾値以下のRLUが存在するか否かを判定する(ステップS20)。
ライトバックカウンタ523に閾値以下のRLUが存在しない場合(ステップS20のNoルート)、全てのRLUが高負荷の状態である。従って、ライトバック実行部525は、決定済のRLU番号を追出対象のRLU番号として、当該RLUをライトバック対象に設定し(ステップS21)、処理がステップS23に移行する。なお、ライトバック実行部525は、ステップS21において、ライトバックカウンタ523の値が最も小さいRLUをライトバック対象に設定してもよい。
一方、ライトバックカウンタ523に閾値以下のRLUが存在する場合(ステップS20のYesルート)、ライトバック実行部525は、ステップS19の検索で抽出したRLU番号を追出対象のRLU番号として、当該RLUをライトバック対象に設定し(ステップS22)、処理がステップS23に移行する。
ステップS23では、ライトバック実行部525は、RAID制御部55に対して、追出対象として決定したRLU番号を通知し、当該RLUに係るライトバックを指示する(図8の処理T9参照)。
また、カウンタ制御部524は、追出対象のRLUのライトバックカウンタ523に対して、カウンタ値に1を加算し(ステップS24)、追出対象のRLUのダーティカウンタ522に対して、カウンタ値から1を減算する(ステップS25)。
そして、ライトバック実行部525は、ライトバックを指示したRLUのデータに係る、キャッシュメモリ51のキャッシュページに対して、定期的なライトバック処理のタイマを解除し(ステップS26)、キャッシュ制御部52によるキャッシュヒットの判定処理が終了する。
次に、図11を参照して、CA4aへのキャッシュ領域の情報の通知後、CA4aからの通知に応じたキャッシュ制御部52によるキャッシュ領域の解放処理(図8の処理T8参照)の動作例について説明する。
キャッシュ制御部52は、CA4aからキャッシュ領域の解放通知を受信すると、当該通知にデータの更新通知が存在するか否か、例えば含まれているか否かを判定する(ステップS31)。
データの更新通知が存在しない場合(ステップS31のNoルート)、処理がステップS33に移行する。一方、データの更新通知が存在する場合(ステップS31のYesルート)、カウンタ制御部524は、CA4aから通知されたキャッシュ領域のRLUのダーティカウンタ522に対して、カウンタ値に1を加算する(ステップS32)。
そして、キャッシュ制御部52は、解放が指示されたキャッシュ領域の状態を、CA4aによる使用中から未使用に変更し、定期的なライトバック処理用のタイマを起動し(ステップS33)、処理が終了する。なお、キャッシュ領域の状態は、例えばLRUテーブル53に設定される情報であり、例えばキャッシュ制御部52がCA4aへのキャッシュ領域の割当の通知を行なう際に使用中に設定されてもよい。
次に、図12を参照して、キャッシュ制御部52によるライトバック処理における、ライトバック完了時の割込処理(図8の処理T12参照)の動作例について説明する。
RAID制御部55からライトバックの完了を通知されると、カウンタ制御部524は、ライトバックが完了したRLUのライトバックカウンタ523に対して、カウンタ値から1を減算する(ステップS41)。
次いで、キャッシュ制御部52は、キャッシュ領域の割り当ての実施及び通知が登録済か否かを判定する(ステップS42)。なお、割り当ての実施及び通知の登録は、図10のステップS18で行なわれ得る。割り当ての実施及び通知が登録されていない場合(ステップS42のNoルート)、処理が終了する。
一方、割り当ての実施及び通知が登録済の場合(ステップS42のYesルート)、カウンタ制御部524は、ライトバックが完了したRLUのRLUカウンタ521に対して、カウンタ値から1を減算する(ステップS43)。また、カウンタ制御部524は、新たにI/O要求を割り当てるRLUのRLUカウンタ521に対して、カウンタ値に1を加算する(ステップS44)。
そして、キャッシュ制御部52は、キャッシュ領域の割り当てが完了したことをホスト装置2へ報告するため、割り当てたキャッシュ領域の情報をCA4aへ通知し(ステップS45)、処理が終了する。
〔2−4〕ハードウェア構成例
次に、図13を参照して、上述の如く構成されたCM5のハードウェア構成例について説明する。
図13に示すように、CM5は、例示的に、CPU5a、メモリ5b、記憶部5c、インタフェース部5d、及び入出力部5eをそなえる。
CPU5aは、種々の制御や演算を行なうプロセッサの一例である。CPU5aは、CM5内の各ブロックとバスで相互に通信可能に接続されてよい。なお、プロセッサとしては、CPU5aに代えて、他の演算処理装置、例えばMicro Processing Unit(MPU)等の集積回路(Integrated Circuit;IC)が用いられてもよい。
メモリ5bは、種々のデータやプログラムを格納するハードウェアの一例である。図6に示すキャッシュメモリ51はメモリ5bが有する記憶領域によって実現されてもよい。また、メモリ5bは、図6に示すLRUテーブル53及びダーティテーブル54の各情報を記憶する記憶領域を有してもよい。メモリ5bとしては、例えばRAM等の揮発性メモリが挙げられる。
記憶部5cは、種々のデータやプログラム等を格納するハードウェアの一例である。記憶部5cとしては、例えばHDD等の磁気ディスク装置、SSD等の半導体ドライブ装置、フラッシュメモリやRead Only Memory(ROM)等の不揮発性メモリ等の各種記憶装置が挙げられる。
例えば記憶部5cは、CM5の各種機能の全部若しくは一部を実現するストレージ制御プログラム50を格納してもよい。この場合、CPU5aは、記憶部5cに格納されたストレージ制御プログラム50をメモリ5bに展開して実行することにより、CM5の機能を実現することができる。
インタフェース部5dは、ホスト装置2、DE6、又は図示しない管理サーバ等との間の接続及び通信の制御等を行なう通信インタフェースの一例である。なお、図6の例ではCA4がCM5の外部に設けられているが、CA4はCM5のインタフェース部5dにより実現されてもよい。インタフェース部5dとしては、例えばLANカード等のネットワークインタフェースや、Serial Attached SCSI(Small Computer System Interface)(SAS)、ファイバチャネル(Fibre Channel;FC)、インフィニバンド(InfiniBand)等に準拠したインタフェースが挙げられる。
また、インタフェース部5dは、記録媒体5fに記録されたデータやプログラムを読み出す読取部をそなえてもよい。読取部は、コンピュータ読取可能な記録媒体5fを接続又は挿入可能な接続端子又は装置を含んでもよい。読取部としては、例えばUniversal Serial Bus(USB)等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、SDカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体5fにはストレージ制御プログラム50が格納されてもよい。
入出力部5eは、マウス、キーボード、操作ボタン等の入力部、並びにディスプレイ等の出力部の少なくとも一部を含むことができる。例えば入力部は、オペレータ等による設定の登録や変更、システムのモード選択(切替)等の各種操作やデータの入力等の作業に用いられてもよく、出力部は、オペレータ等による設定の確認や各種通知等の出力に用いられてもよい。
なお、上述したCM5のハードウェア構成は例示である。従って、ストレージ装置3及びCM5間、又は、CM5内でのハードウェアの増減(例えば任意のブロックの追加や省略)、分割、任意の組み合わせでの統合、バスの追加又は省略等は適宜行なわれてもよい。
〔3〕その他
上述した一実施形態に係る技術は、以下のように変形、変更して実施することができる。
例えば、図6に示すストレージ装置3のCM5の各機能ブロックは、それぞれ任意の組み合わせで併合してもよく、分割してもよい。
また、ストレージ装置3がRAIDグループの一例としての物理ボリューム61を3つそなえるものとしたが、これに限定されるものではなく、ストレージ装置3には、1以上の物理ディスクをそなえる物理ボリューム61が2以下又は4以上そなえられてもよい。
〔4〕付記
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
キャッシュメモリに格納されたアクセス要求に係るデータのうちの、前記アクセス要求の対象の記憶ボリュームへの書き込みが行なわれていないデータの数を前記記憶ボリュームごとにカウントする第1カウンタと、
第1のアクセス要求の受信に応じて、前記第1のアクセス要求の対象の第1の記憶ボリュームに対して前記キャッシュメモリから割当済のデータ数に対する、前記第1の記憶ボリュームに対応する前記第1カウンタのカウンタ値の第1の割合が第1の閾値を超えるか否かを判定する判定部と、
前記第1の割合が前記第1の閾値を超える場合に、前記第1の記憶ボリュームに対する前記キャッシュメモリからのデータの書戻処理を行なう書戻処理部と、
をそなえることを特徴とする、ストレージ制御装置。
(付記2)
前記判定部は、前記第1のアクセス要求の受信に応じて、前記キャッシュメモリから割当可能なデータ数に対する、前記第1カウンタのカウンタ値の合計の第2の割合が前記第1の閾値又は他の閾値を超えるか否かを判定し、
前記書戻制御部は、前記第1の割合が前記第1の閾値を超え、前記第2の割合が前記第1の閾値又は前記他の閾値を超える場合に、前記第1の記憶ボリュームに対する前記書戻処理を行なう、
ことを特徴とする、付記1記載のストレージ制御装置。
(付記3)
前記書戻処理部による書戻処理中のデータ数を前記記憶ボリュームごとにカウントする第2カウンタをさらにそなえ、
前記判定部は、前記第1の記憶ボリュームに対応する前記第2カウンタのカウンタ値が第2の閾値を超えるか否かを判定し、
前記書戻処理部は、前記第1の記憶ボリュームに対応する前記第2カウンタのカウンタ値が前記第2の閾値を超える場合、前記第1の記憶ボリュームに対する前記書戻処理を抑止し、カウンタ値が前記第2の閾値以下の前記第2カウンタに対応する第2の記憶ボリュームに対する、前記キャッシュメモリからのデータの書戻処理を行なう、
ことを特徴とする、付記1又は付記2記載のストレージ制御装置。
(付記4)
前記第2の閾値は、前記記憶ボリュームにおけるデータの書込性能に基づき決定される
ことを特徴とする、付記3記載のストレージ制御装置。
(付記5)
前記キャッシュメモリに割り当てられたデータ数を前記記憶ボリュームごとにカウントする第3カウンタをさらにそなえ、
前記判定部は、前記第1の記憶ボリュームに対応する前記第3カウンタのカウンタ値に対する、前記第1の記憶ボリュームに対応する前記第1カウンタのカウンタ値の前記第1の割合が前記第1の閾値を超えるか否かを判定する、
ことを特徴とする、付記1〜4のいずれか1項記載のストレージ制御装置。
(付記6)
コンピュータに、
キャッシュメモリに格納されたアクセス要求に係るデータのうちの、前記アクセス要求の対象の記憶ボリュームへの書き込みが行なわれていないデータの数を前記記憶ボリュームごとにカウントする第1カウンタを制御し、
第1のアクセス要求の受信に応じて、前記第1のアクセス要求の対象の第1の記憶ボリュームに対して前記キャッシュメモリから割当済のデータ数に対する、前記第1の記憶ボリュームに対応する前記第1カウンタのカウンタ値の第1の割合が第1の閾値を超えるか否かを判定し、
前記第1の割合が前記第1の閾値を超える場合に、前記第1の記憶ボリュームに対する前記キャッシュメモリからのデータの書戻処理を行なう、
処理を実行させることを特徴とする、ストレージ制御プログラム。
(付記7)
前記コンピュータに、
前記第1のアクセス要求の受信に応じて、前記キャッシュメモリから割当可能なデータ数に対する、前記第1カウンタのカウンタ値の合計の第2の割合が前記第1の閾値又は他の閾値を超えるか否かを判定し、
前記第1の割合が前記第1の閾値を超え、前記第2の割合が前記第1の閾値又は前記他の閾値を超える場合に、前記第1の記憶ボリュームに対する前記書戻処理を行なう、
処理を実行させることを特徴とする、付記6記載のストレージ制御プログラム。
(付記8)
前記コンピュータに、
書戻処理中のデータ数を前記記憶ボリュームごとにカウントする第2カウンタを制御し、
前記第1の記憶ボリュームに対応する前記第2カウンタのカウンタ値が第2の閾値を超えるか否かを判定し、
前記第1の記憶ボリュームに対応する前記第2カウンタのカウンタ値が前記第2の閾値を超える場合、前記第1の記憶ボリュームに対する前記書戻処理を抑止し、カウンタ値が前記第2の閾値以下の前記第2カウンタに対応する第2の記憶ボリュームに対する、前記キャッシュメモリからのデータの書戻処理を行なう、
処理を実行させることを特徴とする、付記6又は付記7記載のストレージ制御プログラム。
(付記9)
前記第2の閾値は、前記記憶ボリュームにおけるデータの書込性能に基づき決定される
ことを特徴とする、付記8記載のストレージ制御プログラム。
(付記10)
前記コンピュータに、
前記キャッシュメモリに割り当てられたデータ数を前記記憶ボリュームごとにカウントする第3カウンタを制御し、
前記第1の記憶ボリュームに対応する前記第3カウンタのカウンタ値に対する、前記第1の記憶ボリュームに対応する前記第1カウンタのカウンタ値の前記第1の割合が前記第1の閾値を超えるか否かを判定する、
処理を実行させることを特徴とする、付記6〜9のいずれか1項記載のストレージ制御プログラム。
(付記11)
キャッシュメモリに格納されたアクセス要求に係るデータのうちの、前記アクセス要求の対象の記憶ボリュームへの書き込みが行なわれていないデータの数を前記記憶ボリュームごとにカウントする第1カウンタを制御し、
第1のアクセス要求の受信に応じて、前記第1のアクセス要求の対象の第1の記憶ボリュームに対して前記キャッシュメモリから割当済のデータ数に対する、前記第1の記憶ボリュームに対応する前記第1カウンタのカウンタ値の第1の割合が第1の閾値を超えるか否かを判定し、
前記第1の割合が前記第1の閾値を超える場合に、前記第1の記憶ボリュームに対する前記キャッシュメモリからのデータの書戻処理を行なう、
ことを特徴とする、ストレージ制御方法。
(付記12)
前記第1のアクセス要求の受信に応じて、前記キャッシュメモリから割当可能なデータ数に対する、前記第1カウンタのカウンタ値の合計の第2の割合が前記第1の閾値又は他の閾値を超えるか否かを判定し、
前記第1の割合が前記第1の閾値を超え、前記第2の割合が前記第1の閾値又は前記他の閾値を超える場合に、前記第1の記憶ボリュームに対する前記書戻処理を行なう、
ことを特徴とする、付記11記載のストレージ制御方法。
(付記13)
書戻処理中のデータ数を前記記憶ボリュームごとにカウントする第2カウンタを制御し、
前記第1の記憶ボリュームに対応する前記第2カウンタのカウンタ値が第2の閾値を超えるか否かを判定し、
前記第1の記憶ボリュームに対応する前記第2カウンタのカウンタ値が前記第2の閾値を超える場合、前記第1の記憶ボリュームに対する前記書戻処理を抑止し、カウンタ値が前記第2の閾値以下の前記第2カウンタに対応する第2の記憶ボリュームに対する、前記キャッシュメモリからのデータの書戻処理を行なう、
ことを特徴とする、付記11又は付記12記載のストレージ制御方法。
(付記14)
前記第2の閾値は、前記記憶ボリュームにおけるデータの書込性能に基づき決定される
ことを特徴とする、付記13記載のストレージ制御方法。
(付記15)
前記キャッシュメモリに割り当てられたデータ数を前記記憶ボリュームごとにカウントする第3カウンタを制御し、
前記第1の記憶ボリュームに対応する前記第3カウンタのカウンタ値に対する、前記第1の記憶ボリュームに対応する前記第1カウンタのカウンタ値の前記第1の割合が前記第1の閾値を超えるか否かを判定する、
処理を実行させることを特徴とする、付記11〜14のいずれか1項記載のストレージ制御方法。
(付記16)
プロセッサをそなえ、
前記プロセッサが、
キャッシュメモリに格納されたアクセス要求に係るデータのうちの、前記アクセス要求の対象の記憶ボリュームへの書き込みが行なわれていないデータの数を前記記憶ボリュームごとにカウントする第1カウンタを制御し、
第1のアクセス要求の受信に応じて、前記第1のアクセス要求の対象の第1の記憶ボリュームに対して前記キャッシュメモリから割当済のデータ数に対する、前記第1の記憶ボリュームに対応する前記第1カウンタのカウンタ値の第1の割合が第1の閾値を超えるか否かを判定し、
前記第1の割合が前記第1の閾値を超える場合に、前記第1の記憶ボリュームに対する前記キャッシュメモリからのデータの書戻処理を行なう、
ことを特徴とする、ストレージ制御装置。
(付記17)
コンピュータが読取可能な記録媒体であって、
前記コンピュータに、
キャッシュメモリに格納されたアクセス要求に係るデータのうちの、前記アクセス要求の対象の記憶ボリュームへの書き込みが行なわれていないデータの数を前記記憶ボリュームごとにカウントする第1カウンタを制御し、
第1のアクセス要求の受信に応じて、前記第1のアクセス要求の対象の第1の記憶ボリュームに対して前記キャッシュメモリから割当済のデータ数に対する、前記第1の記憶ボリュームに対応する前記第1カウンタのカウンタ値の第1の割合が第1の閾値を超えるか否かを判定し、
前記第1の割合が前記第1の閾値を超える場合に、前記第1の記憶ボリュームに対する前記キャッシュメモリからのデータの書戻処理を行なう、
処理を実行させることを特徴とする、記録媒体。
1 ストレージシステム
2 ホスト装置
2,2a〜2d チャネル
3 ストレージ装置
4,4a〜4d チャネルアダプタ
5 コントローラモジュール
50 ストレージ制御プログラム
51 キャッシュメモリ
52 キャッシュ制御部
521 RLUカウンタ
522 ダーティカウンタ
523 ライトバックカウンタ
524 カウンタ制御部
525 ライトバック実行部
53 LRUテーブル
54 ダーティテーブル
55 RAID制御部
6 ドライブエンクロージャ
61,61a〜61c 物理ボリューム
62 論理ボリューム
63,63a〜63c コマンドキュー

Claims (7)

  1. キャッシュメモリに格納されたアクセス要求に係るデータのうちの、前記アクセス要求の対象の記憶ボリュームへの書き込みが行なわれていないデータの数を前記記憶ボリュームごとにカウントする第1カウンタと、
    第1の記憶ボリュームに対する書込要求又は読出要求である第1のアクセス要求の受信に応じて、前記第1のアクセス要求の対象の前記第1の記憶ボリュームに対して前記キャッシュメモリから割当済のデータ数に対する、前記第1の記憶ボリュームに対応する前記第1カウンタのカウンタ値の第1の割合が第1の閾値を超えるか否かを判定する判定部と、
    前記第1の割合が前記第1の閾値を超える場合に、前記第1の記憶ボリュームに対する前記キャッシュメモリからのデータの書戻処理を行なう書戻処理部と、
    をそなえることを特徴とする、ストレージ制御装置。
  2. 前記判定部は、前記第1のアクセス要求の受信に応じて、前記キャッシュメモリから割当可能なデータ数に対する、前記第1カウンタのカウンタ値の合計の第2の割合が前記第1の閾値又は他の閾値を超えるか否かを判定し、
    前記書戻処理部は、前記第1の割合が前記第1の閾値を超え、前記第2の割合が前記第1の閾値又は前記他の閾値を超える場合に、前記第1の記憶ボリュームに対する前記書戻処理を行なう、
    ことを特徴とする、請求項1記載のストレージ制御装置。
  3. 前記書戻処理部による書戻処理中のデータ数を前記記憶ボリュームごとにカウントする第2カウンタをさらにそなえ、
    前記判定部は、前記第1の記憶ボリュームに対応する前記第2カウンタのカウンタ値が第2の閾値を超えるか否かを判定し、
    前記書戻処理部は、前記第1の記憶ボリュームに対応する前記第2カウンタのカウンタ値が前記第2の閾値を超える場合、前記第1の記憶ボリュームに対する前記書戻処理を抑止し、カウンタ値が前記第2の閾値以下の前記第2カウンタに対応する第2の記憶ボリュームに対する、前記キャッシュメモリからのデータの書戻処理を行なう、
    ことを特徴とする、請求項1又は請求項2記載のストレージ制御装置。
  4. 前記第2の閾値は、前記記憶ボリュームにおけるデータの書込性能に基づき決定されることを特徴とする、請求項3記載のストレージ制御装置。
  5. 前記キャッシュメモリに割り当てられたデータ数を前記記憶ボリュームごとにカウントする第3カウンタをさらにそなえ、
    前記判定部は、前記第1の記憶ボリュームに対応する前記第3カウンタのカウンタ値に対する、前記第1の記憶ボリュームに対応する前記第1カウンタのカウンタ値の前記第1の割合が前記第1の閾値を超えるか否かを判定する、
    ことを特徴とする、請求項1〜4のいずれか1項記載のストレージ制御装置。
  6. コンピュータに、
    キャッシュメモリに格納されたアクセス要求に係るデータのうちの、前記アクセス要求の対象の記憶ボリュームへの書き込みが行なわれていないデータの数を前記記憶ボリュームごとにカウントする第1カウンタを制御し、
    第1の記憶ボリュームに対する書込要求又は読出要求である第1のアクセス要求の受信に応じて、前記第1のアクセス要求の対象の前記第1の記憶ボリュームに対して前記キャッシュメモリから割当済のデータ数に対する、前記第1の記憶ボリュームに対応する前記第1カウンタのカウンタ値の第1の割合が第1の閾値を超えるか否かを判定し、
    前記第1の割合が前記第1の閾値を超える場合に、前記第1の記憶ボリュームに対する
    前記キャッシュメモリからのデータの書戻処理を行なう、
    処理を実行させることを特徴とする、ストレージ制御プログラム。
  7. コンピュータが、
    キャッシュメモリに格納されたアクセス要求に係るデータのうちの、前記アクセス要求の対象の記憶ボリュームへの書き込みが行なわれていないデータの数を前記記憶ボリュームごとにカウントする第1カウンタを制御し、
    第1の記憶ボリュームに対する書込要求又は読出要求である第1のアクセス要求の受信に応じて、前記第1のアクセス要求の対象の前記第1の記憶ボリュームに対して前記キャッシュメモリから割当済のデータ数に対する、前記第1の記憶ボリュームに対応する前記第1カウンタのカウンタ値の第1の割合が第1の閾値を超えるか否かを判定し、
    前記第1の割合が前記第1の閾値を超える場合に、前記第1の記憶ボリュームに対する前記キャッシュメモリからのデータの書戻処理を行なう、
    ことを特徴とする、ストレージ制御方法。
JP2015173683A 2015-09-03 2015-09-03 ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法 Active JP6540391B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015173683A JP6540391B2 (ja) 2015-09-03 2015-09-03 ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法
US15/249,515 US10528468B2 (en) 2015-09-03 2016-08-29 Storage controlling apparatus, computer-readable recording medium having storage controlling program stored therein, and storage controlling method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015173683A JP6540391B2 (ja) 2015-09-03 2015-09-03 ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法

Publications (2)

Publication Number Publication Date
JP2017049872A JP2017049872A (ja) 2017-03-09
JP6540391B2 true JP6540391B2 (ja) 2019-07-10

Family

ID=58189547

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015173683A Active JP6540391B2 (ja) 2015-09-03 2015-09-03 ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法

Country Status (2)

Country Link
US (1) US10528468B2 (ja)
JP (1) JP6540391B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10845866B2 (en) * 2017-06-22 2020-11-24 Micron Technology, Inc. Non-volatile memory system or sub-system
US10642797B2 (en) 2017-07-28 2020-05-05 Chicago Mercantile Exchange Inc. Concurrent write operations for use with multi-threaded file logging
CN109840217B (zh) * 2017-11-28 2023-10-20 华为技术有限公司 一种缓存资源分配和装置
JP7292872B2 (ja) * 2018-12-25 2023-06-19 キヤノン株式会社 情報処理装置および情報処理装置の制御方法
JP2020170458A (ja) * 2019-04-05 2020-10-15 富士通株式会社 情報処理装置、制御プログラム、及び制御方法
US11194503B2 (en) * 2020-03-11 2021-12-07 Samsung Electronics Co., Ltd. Storage device having a configurable command response trigger
US20230032137A1 (en) * 2021-08-02 2023-02-02 Red Hat, Inc. Efficient dirty page expiration
US11914512B2 (en) * 2021-09-28 2024-02-27 Red Hat, Inc. Writeback overhead reduction for workloads

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05303528A (ja) 1992-04-27 1993-11-16 Oki Electric Ind Co Ltd ライトバック式ディスクキャッシュ装置
EP0600626A1 (en) * 1992-11-13 1994-06-08 Cyrix Corporation Coherency for write-back cache in a system designed for write-through cache
JPH07168730A (ja) * 1993-12-15 1995-07-04 Toshiba Corp チェックポイント採取方式
JPH09237223A (ja) * 1996-03-02 1997-09-09 Toshiba Corp バスブリッジを用いたコンピュータシステム
JP3484874B2 (ja) * 1996-05-01 2004-01-06 日本電気株式会社 記憶システム
JP4391265B2 (ja) * 2004-02-26 2009-12-24 株式会社日立製作所 ストレージサブシステムおよび性能チューニング方法
JP4189342B2 (ja) 2004-03-11 2008-12-03 東芝ソリューション株式会社 ストレージ装置、ストレージコントローラ及びライトバックキャッシュ制御方法
US7636814B1 (en) * 2005-04-28 2009-12-22 Symantec Operating Corporation System and method for asynchronous reads of old data blocks updated through a write-back cache
US9519540B2 (en) * 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US8402226B1 (en) * 2010-06-18 2013-03-19 Emc Corporation Rate proportional cache write-back in a storage server
US8930619B2 (en) * 2012-05-29 2015-01-06 Dot Hill Systems Corporation Method and apparatus for efficiently destaging sequential I/O streams
US9223713B2 (en) * 2013-05-30 2015-12-29 Hewlett Packard Enterprise Development Lp Allocation of cache to storage volumes
US9317436B2 (en) * 2013-06-21 2016-04-19 Hewlett Packard Enterprise Development Lp Cache node processing
JP2015111334A (ja) 2013-12-06 2015-06-18 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法
US9483402B2 (en) * 2014-09-24 2016-11-01 Netapp, Inc. Methods and systems for dynamically controlled caching

Also Published As

Publication number Publication date
US20170068618A1 (en) 2017-03-09
JP2017049872A (ja) 2017-03-09
US10528468B2 (en) 2020-01-07

Similar Documents

Publication Publication Date Title
JP6540391B2 (ja) ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法
US7814351B2 (en) Power management in a storage array
US8392648B2 (en) Storage system having a plurality of flash packages
US7761684B2 (en) Data management method in storage pool and virtual volume in DKC
US8041914B2 (en) Storage system comprising function for reducing power consumption
JP5134915B2 (ja) 記憶領域の構成最適化方法、計算機システム及び管理計算機
US9658796B2 (en) Storage control device and storage system
JP5073259B2 (ja) 仮想化システム及び領域割当て制御方法
JP5531091B2 (ja) 計算機システム及びその負荷均等化制御方法
US8984352B2 (en) Storage control apparatus and control method of storage control apparatus
JP5882557B2 (ja) 要求優先順位シーク・マネージャ
WO2016075779A1 (ja) 計算機システムおよびストレージ装置
US20090006606A1 (en) Command queue loading
US20070266218A1 (en) Storage system and storage control method for the same
JP2007241593A (ja) 記憶領域の割当ての最適化方法及びそれを実現するための管理計算機
US9015373B2 (en) Storage apparatus and method of controlling storage apparatus
JP2012515371A (ja) 複数のプロセッサユニットを備えたストレージシステム
US7984245B2 (en) Storage system, storage subsystem and storage control method
JP2019191886A (ja) 情報処理装置,情報処理方法およびプログラム
JP7500991B2 (ja) ストレージ制御装置及びストレージ制御プログラム
US9329800B2 (en) Preferred zone scheduling
US20100262777A1 (en) Storage apparatus and method for eliminating redundant data storage using storage apparatus
US8990523B1 (en) Storage apparatus and its data processing method
WO2016006072A1 (ja) 管理計算機およびストレージシステム
JP2021189884A (ja) ストレージ制御装置およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180514

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190123

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190422

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: 20190514

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190527

R150 Certificate of patent or registration of utility model

Ref document number: 6540391

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150