JP4813843B2 - ストレージ装置、ディスクキャッシュ制御方法及びディスクキャッシュの容量割当方法 - Google Patents

ストレージ装置、ディスクキャッシュ制御方法及びディスクキャッシュの容量割当方法 Download PDF

Info

Publication number
JP4813843B2
JP4813843B2 JP2005226418A JP2005226418A JP4813843B2 JP 4813843 B2 JP4813843 B2 JP 4813843B2 JP 2005226418 A JP2005226418 A JP 2005226418A JP 2005226418 A JP2005226418 A JP 2005226418A JP 4813843 B2 JP4813843 B2 JP 4813843B2
Authority
JP
Japan
Prior art keywords
disk cache
storage area
information
partition
disk
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
JP2005226418A
Other languages
English (en)
Other versions
JP2007041904A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2005226418A priority Critical patent/JP4813843B2/ja
Priority to US11/251,213 priority patent/US7769952B2/en
Priority to EP06250641A priority patent/EP1755042A3/en
Publication of JP2007041904A publication Critical patent/JP2007041904A/ja
Priority to US12/833,442 priority patent/US8281076B2/en
Application granted granted Critical
Publication of JP4813843B2 publication Critical patent/JP4813843B2/ja
Expired - Fee Related 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/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/0873Mapping of cache memory to specific storage devices or parts thereof
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/282Partitioned cache

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

本発明は、ストレージ装置に関し、特に、ディスクキャッシュの制御技術に関する。
近年、半導体技術の進歩に伴い、計算機システムにおける半導体メモリの高速化は目覚しいものがある。その一方で、磁気ディスクドライブに代表されるストレージ装置は、モータによる機械的な動作機構を採用しているため、半導体メモリほど高速化していない。例えば、代表的な半導体メモリのアクセス時間(レイテンシ)は、数十nsecから数百nsecのオーダであるのに対して、磁気ディスクドライブのレイテンシは、数msecである。このように、半導体メモリと磁気ディスクドライブのレイテンシの乖離が大きいため、磁気ディスクドライブがシステムのボトルネックとなりやすい。
この乖離を緩和するために、ストレージ装置に半導体メモリを搭載し、利用頻度の高いデータを前記半導体メモリに格納することで、ストレージ装置のレイテンシを短縮する技術が開発されている。前記半導体メモリは、CPUにおけるキャッシュと同様の性質を持つため、ディスクキャッシュと呼ばれている。
ホストコンピュータから要求されるデータがディスクキャッシュに格納されていれば、ホストコンピュータは原理的には半導体メモリのレイテンシで当該データにアクセスすることができる。前述したように、半導体メモリと磁気ディスクドライブのレイテンシの差は数万倍であるため、ディスクキャッシュのレイテンシに対する効果は非常に大きい。
ホストコンピュータがストレージ装置内のあるデータにアクセスしたときに、当該データがディスクキャッシュに格納されている場合、キャッシュヒットといい、ディスクキャッシュに格納されていない場合、キャッシュミスという。そして、キャッシュヒットとなる確率をキャッシュヒット率又はヒット率という。そして、ヒット率が高ければ高いほど、統計的にみてストレージ装置のレイテンシは短くなり、当該ストレージ装置の性能は向上する。
このため、ストレージ装置の性能を向上させるには、ディスクキャッシュ(半導体メモリ)を多く搭載すればよい。しかし、半導体メモリの容量あたりの価格(ビットコストという)は磁気ディスクドライブのビットコストの数百倍であり、無限にディスクキャッシュ(半導体メモリ)を搭載できるわけではない。言い換えれば、ディスクキャッシュに関して、性能とコストはトレードオフの関係にあるといえる。
さて、近年、企業において、複数のストレージ装置で分担していた業務を大型のストレージ装置1台に集約する動きが起こっている。これをストレージ集約という。ストレージ集約には、いくつかの利点がある。
まず、第1の利点として、管理業務の簡略化及び一元化ができる点がある。
ストレージ装置が複数、それも機種が異なっている場合、ストレージ装置毎に管理手法が異なるので、別な管理者を配置する必要があった。ストレージ装置を集約することで、管理者を1人にすることができ、管理者の人件費を削減することができる。
また、複数のストレージ装置を1人の管理者が管理することもできるが、管理業務が煩雑になり、管理者の負担が大きくなる。具体的には、機種が異なるストレージ装置は管理の操作が異なるので、管理者はストレージ装置毎に異なる操作方法を習得する必要があり、管理者の負担が大きかった。ストレージ装置を1台に集約することで、管理業務の簡略化が可能になり、管理者の負担を軽減することができる。
次に、第2の利点として、ストレージ資源の利用効率が向上する点がある。
一般的に、ストレージ装置では、その容量をすべて使い切ることはない。利用者が容量をすべて使い切ったとき、業務を継続できなくなる。そのため、管理者は業務が停止しないようにするために、予備の容量を常にストレージ装置内に用意している。複数のストレージ装置があった場合、各装置に予備の容量を持つことになる。
例えば、あるストレージ装置の予備容量が十分にあり、別のストレージ装置の予備容量が少なくなったとき、管理者は、前者から後者に予備容量を移すことはできない。管理者は後者のストレージ装置のために、追加の磁気ディスクドライブを購入しなくてはならない。言い換えれば、複数のストレージ装置全体としては、予備の容量があるのに、有効に活用することができない状態になっている。
ストレージ装置を1台に集約すると、前述したような、全体としては十分に予備の容量があるのに、予備容量を使えないという事態は発生しない。従って、管理者は、予備の容量を集約しないときよりも、ストレージ装置に実装するディスク容量少なくすることができ、全体としてのコストが低下することになる。言い換えれば、ストレージ集約は、購入したストレージ資源の利用効率の向上を、利用者にもたらす。
ストレージ集約は、利用者に前述した利益をもたらすが、必要な注意も存在する。
ストレージ集約によって、複数のホストコンピュータが1台のストレージ装置に接続された構成となる。そのため、ディスクキャッシュを複数のホストコンピュータが共有する。ホストコンピュータは、さまざまな業務を担っており、ストレージ装置に対するアクセスのパターンも様々である。
例えば、あるホストコンピュータは、ストレージ装置に対するアクセス頻度が他のストレージ装置と比較して大きい例を考えてみる。最も一般的に利用されるLRU(Least Recently Used)アルゴリズムを使用したディスクキャッシュの場合、アクセス頻度の高いホストコンピュータがディスクキャッシュの容量の大半を使用し、他のホストコンピュータが利用できるディスクキャッシュの容量が極めて小さくなる。
なぜなら、LRUアルゴリズムが、近い過去にアクセスされたデータをディスクキャッシュに残すからである。これでは、アクセス頻度の小さい、他のホストコンピュータの業務に支障をきたしてしまう。
そこで、それぞれのホストコンピュータに対して、使用できるディスクキャッシュの容量を管理者が設定できる技術が考案されている。これらの技術は、特許文献1〜3において開示されている。特許文献1〜3では、ディスクキャッシュの容量をそれぞれのホストコンピュータごとに割り当てる。すなわち、各ホストコンピュータが使用できるディスクキャッシュの容量の上限を指定するため、一つのホストコンピュータがディスクキャッシュの大半を占有して、他のホストコンピュータに対するストレージ装置のレイテンシを悪化させることはない。
特開平8−147218号公報 特開2004−139349号公報 米国特許第6728836号明細書
このように、特許文献1〜3記載の技術によって、各ホストコンピュータに対して、ディスクキャッシュの容量を割り当てることが可能になった。本明細書では、各ホストコンピュータに割り当てたディスクキャッシュをディスクキャッシュ区画と呼ぶ。
これらの公知技術では、それぞれのディスクキャッシュ区画が独立したディスクキャッシュとして機能している。そのため、あるディスクキャッシュ区画にロードされたデータを、他のディスクキャッシュ区画を使用するホストコンピュータは参照することはできない。
従って、ストレージ装置は、当該データを複数のディスクキャッシュ区画に格納せざるを得ないが、これら公知技術ではこの処理について言及していない。仮に、この処理が実行されると、同一のデータであるにもかかわらず、ディスクキャッシュの記憶領域を二重に使用する重複キャッシュの状態になっている。
前述したように、ディスクキャッシュは、性能に大きな影響を持つ要素であり、さらにビットコストも磁気ディスクドライブより高い。従って、同一内容のデータを重複してディスクキャッシュ上に保持することは、著しい性能劣化を招く。
さらに、管理者がストレージ装置に対して、同一性能を維持しようとすれば、より多量のディスクキャッシュ(半導体メモリ)を搭載することになり、コストの上昇を招く。これは、ストレージ装置に対する投資効率の低下を意味する。
また、磁気ディスクドライブのデータを同時に異なる二つのディスクキャッシュ区画にロードできない場合、磁気ディスクドライブをコピーして、前記二つのディスクキャッシュ区画に対応して二つの磁気ディスクドライブを配置する必要がある。この処理によって、同じデータが異なる磁気ディスクドライブに格納されるので、異なるデータとして取り扱われる。そのため、二つの異なるディスクキャッシュ区画に同じデータを格納することができる。
しかし、管理者は同一内容の複数の磁気ディスクドライブを設置することになり、磁気ディスクドライブの利用効率が下がることになる。
そこで、本発明は、ディスクキャッシュを複数の区画に分割したストレージ装置において、同一のデータを前記区画間で共有し、重複キャッシュを避けることを目的とする。
上記目的を達成するため、本発明のストレージ装置は、ディスクキャッシュの各領域が磁気ディスクドライブ内のどのデータを保持しているかを記述する第1の管理情報と、各ディスクキャッシュ区画に割り当てられた領域の状態を記述する第2の管理情報と、を記憶し、当該要求をしたホストコンピュータと対応するディスクキャッシュ区画を特定し、前記第1の情報を参照し、前記要求されたデータがディスクキャッシュ内の記憶領域に格納されているか否かを判定し、前記要求されたデータがディスクキャッシュのいずれの記憶領域にも格納されていなかった場合には、前記特定されたディスクキャッシュ区画が利用可能な記憶領域の容量を計算し、当該ディスクキャッシュ区画に利用可能な記憶領域がない場合には、前記ディスクキャッシュに記憶されたデータのうち、アクセス頻度が低いデータを、前記不揮発媒体に書き込む又は破棄するという第1掃きだし処理を実行することによって、未使用の記憶領域を確保し、ディスクキャッシュの各記憶領域の状態を記述した第1の情報のうち当該確保された記憶領域の情報を変更し、前記ディスクキャッシュ区画によって使用されているディスクキャッシュの各記憶領域の状態を記述した第2の情報に、当該記憶領域の情報を追加し、前記要求されたデータを前記不揮発性媒体から前記確保された記憶領域に転送し、前記ディスクキャッシュの当該記憶領域に転送されたデータを前記ホストコンピュータへ転送する。
本発明によると、ストレージ装置のディスクキャッシュを複数の区画に分割したときに、前記複数の区画間でデータを共有することができ、重複キャッシュを避けることができる。
以下、本発明の実施の形態を、図面を参照して説明する。
(第1の実施の形態)
図1に、第1の実施の形態の計算機システムのハードウェア構成を示す。
第1の実施の形態の計算機システムは、ホストコンピュータ100、ストレージ装置101及び管理端末102を備える。
ストレージ装置101は、ホストインタフェース部103、制御CPU104、システムメモリ105、ディスクキャッシュ106、磁気ディスクドライブ107、ディスクインタフェース部108及びシステムバス109を備える。
ホストインタフェース部103は、ホストコンピュータ100と通信する。制御CPU104は、ストレージ装置全体を制御する。システムメモリ105は、制御CPU104がストレージ装置の制御に用いる制御情報及びプログラムを格納する。
ディスクキャッシュ106は、磁気ディスクドライブ107に入出力されるデータを一時的に保存する。磁気ディスクドライブ107は、不揮発性の記憶媒体であり、ホストコンピュータ100が使用するデータを格納する。ディスクインタフェース部108は、磁気ディスクドライブ107を制御し、磁気ディスクドライブと通信する。
システムバス109は、ホストインタフェース部103、制御CPU104、ディスクキャッシュ106及びディスクインタフェース部108を結合する。
ディスクキャッシュ106は、ある固定されたサイズの領域を単位として管理される。すなわち、制御プログラム110は、前記固定サイズの単位の集合として、ディスクキャッシュ106を認識する。本明細書では、このディスクキャッシュ106の管理単位をセグメントと呼ぶ。いうまでもないが、本発明はセグメントの容量には依存しない。
磁気ディスクドライブ107は、ある固定されたサイズの領域を単位として管理される。すなわち、制御プログラム110は、前記固定サイズの単位の集合として、磁気ディスクドライブ107を認識する。本願明細書では、この磁気ディスクドライブ107の管理単位をトラックと呼ぶ。いうまでもないが、本発明は、トラックの容量には依存しない。
本明細書では、トラック容量とセグメント容量とが等しいとして説明するが、トラック容量とセグメント容量とは異なってもよい。すなわち、本発明は、トラック容量とセグメント容量の関係に依存しない。
システムメモリ105内には、制御CPU104が使用する制御プログラム及び様々な制御情報が格納される。
制御プログラム110は、制御CPU104によって実行されるプログラムである。制御CPU104は、制御プログラム110を実行することによって、ストレージ装置101を制御する。制御プログラム110は通常はフラッシュメモリのような不揮発性のメモリ(図示せず)に格納される。制御プログラム110は、ストレージ装置101の電源投入直後に、前記不揮発性のメモリからシステムメモリ105に転送され、制御CPU104が実行する。なお、制御プログラム110は不揮発性のメモリではなく磁気ディスクドライブ107に保存されてもよい。
制御CPU104(制御CPU104によって実行される制御プログラム110)が使用する制御情報には、ディスクキャッシュ管理テーブル111、未使用キャッシュ管理テーブル112、キャッシュ区画管理テーブル113、キャッシュ区画管理情報114、多重キャッシュ管理テーブル115及び共有状態情報116がある。
ディスクキャッシュ管理テーブル111は、ディスクキャッシュ106のセグメントが磁気ディスクドライブ107内のどのトラックのデータを保持しているかを記述する情報である。未使用ディスクキャッシュ管理テーブル112は、ディスクキャッシュ106内で未使用のセグメントを記述する情報である。ディスクキャッシュ区画管理テーブル113は、各ディスクキャッシュ区画(各ホストコンピュータに割り当てたディスクキャッシュ)の容量等の情報を記述する情報である。
ディスクキャッシュ区画管理情報114は、各ディスクキャッシュ区画に割り当てられたディスクキャッシュ106のセグメントを個々に記述した情報である。多重キャッシュ管理テーブル115は、ディスクキャッシュ106の個々のセグメントを、複数のディスクキャッシュ区画が使用した状態を記述する情報である。共有状態情報116は、多重キャッシュ管理テーブル115の一部であり、当該セグメントを使用しているディスクキャッシュ区画を記述した情報である。
本実施の形態では、一つの制御CPU104だけを備えるストレージ装置101を例示するが、制御CPU104は複数あってもよい。その場合、ディスクキャッシュ管理テーブル111、未使用キャッシュ管理テーブル112、キャッシュ区画管理テーブル113、キャッシュ区画管理情報114、多重キャッシュ管理テーブル115及び共有状態情報116は、複数の制御CPU104が参照及び変更できる記憶媒体上に配置される。さらに、データの一貫性を保証するため、制御CPU104がアトミック的にこれら情報を変更できることも必要である。
本実施の形態の磁気ディスクドライブ107は、RAID(Redundant Array of Independent Disks)構成であってもよい。いうまでもないが、本発明は、磁気ディスクドライブ107の構成に依存しない。
管理端末102は、管理者がストレージ装置を操作するために使用するコンピュータである。
図2に、ディスクキャッシュ管理テーブル111を示す。
ディスクキャッシュ管理テーブル111は、エントリ番号200、トラック番号201、セグメント番号202、共有区画数203及び状態204を含む。
エントリ番号200は、本テーブルに記述された情報の一意の識別子である。各エントリは、ディスクキャッシュ106の使用されているセグメントに対応する。
トラック番号201は、磁気ディスクドライブ107内のトラックに付与された番号であり、当該セグメントに保持されたデータを記録しているトラックの番号である。
セグメント番号202は、当該セグメントに付与された番号である。制御プログラム110は、トラック番号201は及びセグメント番号202の二つの項目によって、ディスクキャッシュ106上に保持されたデータが磁気ディスクドライブ107内のどこに保存されるべきかを知ることができる。
本明細書では、磁気ディスクドライブ107内のデータの保存場所をトラック番号で指定するが、他の指定方法でもよい。例えば、SCSI(Small Computer System Interface)規格では、磁気ディスクドライブ107の識別子である、LUN(Logical Unit Number)と磁気ディスクドライブ107内部のアドレスであるLBA(Logical Block Address)の組み合わせによって、データの保存場所を指定することができる。
共有区画数203は、当該セグメントを使用しているディスクキャッシュ区画の数を示す。当該セグメントを使用しているディスクキャッシュ区画が一つならば、共有区画数203には、”1”が設定される。当該セグメントを使用しているディスクキャッシュ区画が二つならば、共有区画数203には、”2”が設定される。
状態204は、当該セグメントの状態を表す。すなわち、ホストコンピュータ100がデータをディスクキャッシュ106に書き込んだ後、磁気ディスクドライブ107に未反映の状態ならば、状態204は”dirty”である。ホストコンピュータ100がデータをディスクキャッシュ106に書き込んだ後、磁気ディスクドライブ107に反映された状態ならば、状態204は”clean”である。
図3に、未使用ディスクキャッシュ管理テーブル112を示す。
未使用セグメント管理テーブル112は、未使用セグメント管理テーブルポインタ300及び未使用セグメント番号301を含み、連結リスト(linked list)の形式である。
未使用セグメント管理テーブルポインタ300は、連結リストの先頭の情報へのポインタである。制御プログラム110は、このポインタを常に保持し、未使用セグメントの情報を検索できるようにしている。
未使用セグメント番号301は、それぞれ、ディスクキャッシュ106の未使用のセグメントの番号を記述した情報である。未使用セグメント番号301は、前方参照ポインタを含み、前の未使用セグメント番号301を参照できるようにしている。また、未使用セグメント番号301は、後方参照ポインタを含み、次の未使用セグメント番号301を参照できるようにしている。この前方参照ポインタ及び後方参照ポインタによって、連結リストが形成される。
いわば、未使用セグメント番号301は、未使用のディスクキャッシュ106のセグメント番号とポインタからなる構造体といえる。
図4に、ディスクキャッシュ区画管理テーブル113を示す。
ディスクキャッシュ区画管理テーブル113は、区画番号400、リクエスタID401、割り当て容量402、使用容量403及びディスクキャッシュ区画管理情報ポインタ404を含む。
区画番号400は、ディスクキャッシュ区画の一意な識別子である。
リクエスタID401は、ホストコンピュータ100に対する識別子を登録するエントリである。この識別子は、ホストコンピュータ100を一意に識別できる情報であればよい。
例えば、ホストコンピュータ100とストレージ装置101がファイバチャネルインタフェースによって接続されている場合、ホストコンピュータ100のファイバチャネルホストアダプタ(図示せず)に一意に付与されたWWN(World Wide Name)が識別子になりうる。
また、一つのディスクキャッシュ区画に複数のホストコンピュータを割り当てる構成も考えられる。この場合は、リクエスタID401に複数のホストコンピュータ100の識別子を登録してもよい。また、複数のホストコンピュータ100に同一の識別子を割り当ててもよい。このような識別子は、ホストコンピュータ100がストレージ装置101にディスク入出力コマンドを送信するときに、同時にストレージ装置101に送信される。
制御CPU104(制御プログラム110)は、識別子(リクエスタID401)を参照して、当該命令がどのディスクキャッシュ区画に対する命令かを判断できる。
割り当て容量402は、ストレージ装置101の管理者が、当該ディスクキャッシュ区画に割り当てたディスクキャッシュ容量であり、制御CPU104によって登録される。
使用容量403は、当該ディスクキャッシュ区画で使用されている容量であり、制御CPU104によって登録される。
ディスクキャッシュ区画管理情報ポインタ404は、ディスクキャッシュ区画管理情報114へのポインタである。ディスクキャッシュ区画管理情報114は、ディスクキャッシュ区画ごとに存在し、当該ディスクキャッシュ区画で使用しているセグメントの連結リストである。
図5に、ディスクキャッシュ区画管理情報114のデータ構造を示す。
ディスクキャッシュ区画管理情報114は、ディスクキャッシュ区画管理情報ポインタ404及びディスクキャッシュ管理テーブルエントリ番号500を含み、連結リスト(linked list)の形式である。
ディスクキャッシュ区画管理情報ポインタ404は、連結リストの先頭エントリへのポインタを示す。
ディスクキャッシュ管理テーブルエントリ番号500は、当該ディスクキャッシュ区画が使用しているセグメントに対応するディスクキャッシュ管理テーブルのエントリ番号200を示す。さらに、ディスクキャッシュ管理テーブルエントリ番号500は、前方参照ポインタを含み、前のエントリ番号500を参照できるようにしている。また、エントリ番号500は、後方参照ポインタを含み、次のエントリ番号500を参照できるようにしている。この前方参照ポインタ及び後方参照ポインタによって、連結リストが形成される。
いわば、ディスクキャッシュ管理テーブルエントリ番号500は、当該ディスクキャッシュ区画が使用しているセグメントに対応するディスクキャッシュ管理テーブルのエントリ番号200前方ポインタ及び後方ポインタからなる構造体である。そして、ディスクキャッシュ区画管理情報114は、それぞれのディスクキャッシュ区画が使用しているセグメントを連結リストの形式の情報である。
図6に、多重キャッシュ管理テーブル115を示す。
多重キャッシュ管理テーブル115は、エントリ番号600、トラック番号601及び共有状態情報ポインタ602を含む。
エントリ番号600は、ディスクキャッシュ管理テーブル111のエントリ番号200と同じ番号であり、制御CPU104によって登録される。
トラック番号601は、ディスクキャッシュ管理テーブル111のトラック番号201と同じ番号であり、制御CPU104によって登録される。
共有状態情報ポインタ602は、共有状態情報116へのポインタである。
すなわち、図6からわかるように、複数のディスクキャッシュ区画が使用しているセグメントの状態を個別に記述するテーブルが、多重キャッシュ管理テーブルである。
図7に、共有状態情報116のデータ構造を示す。
共有状態情報116は、共有状態情報ポインタ602及び区画番号700を含み、連結リスト(linked list)の形式である。
共有状態情報ポインタ602は、リストの先頭エントリ示す。
区画番号700は、当該セグメントを使用しているディスクキャッシュ区画の番号が制御CPU104によって登録される。
すなわち、制御プログラム110は、多重キャッシュ管理テーブル115及び共有状態情報116によって、複数のディスクキャッシュ区画間で共有されたセグメントの状態を記述することができる。本実施の形態において、ディスクキャッシュ106のセグメントが共有された状態を示すには、ディスクキャッシュ管理テーブル111の共有区画数203の情報だけで十分である。しかし、実際の製品では、このセグメントのような資源を複数の主体が共有するところに不具合が発生しやすい。このような不具合を修正するためには、原因の特定が必要であり、当該資源の状態をより詳細に知る必要がある。そのときに、多重キャッシュ管理テーブル115及び共有状態情報116のような詳細情報があると、不具合の原因を容易に特定することができる。
次に、ホストコンピュータ100がストレージ装置101にディスク入出力コマンドを発行したときの、ストレージ装置101の動作を説明する。
図8に、ストレージ装置101がディスク入出力コマンドを処理するフローチャートを示す。
まず、ストレージ装置101は、ホストコンピュータ101が発行したディスク入出力コマンドを受信する(ステップ801)。
次に、制御CPU104(制御CPU104によって実行される制御プログラム110)は、ディスク入出力コマンドを解析して、コマンドに応じた処理を実行する(ステップ802)。例えば、ストレージ装置101がSCSI規格に準拠する装置である場合、ディスク入出力コマンドとしては、READコマンド及びWRITEコマンドのような入出力のコマンドや、REQUEST SENSEのような磁気ディスクドライブ107の制御を行うコマンドがある。
次に、制御CPU104は、当該コマンドの実行結果をホストコンピュータ100に送信する(ステップ803)。例えば、ストレージ装置101がSCSI規格に準拠する場合、実行結果(ステータス)が送信される。ステータス”GOOD”は正常終了を意味し、ステータス”CHECK CONDITION”は当該コマンドの異常終了を意味する。ホストコンピュータ100は、ステータスを確認して、次の動作を決定する。
その後、ストレージ装置101は、ディスク入出力コマンド処理を終了する。
次に、ディスク入出力コマンドの中でも最も頻繁に用いられるリードコマンド及びライトコマンドの処理の詳細を説明する。
図9に、リードコマンドの処理のフローチャートを示す。リードコマンド処理は制御CPU104によって実行される。
まず、ホストコンピュータ100からリードコマンドを受信すると、制御CPU104は、リードコマンドの内容を解析する(ステップ901)。具体的には、リードコマンドには、トラック番号とホストコンピュータ100が要求するデータのサイズが含まれる。そのため、制御CPU104は、ディスクキャッシュ管理テーブル111を検索し、該当するトラック番号のトラックに格納されたデータを保持したセグメントを調べる。
さらに、ホストコンピュータ100は、コマンドとともにホストコンピュータの識別子もストレージ装置101に送信する。そのため、制御CPU104は、当該ディスク入出力コマンドに対応するディスクキャッシュ区画を特定することができる。
次に、制御CPU104は、ディスクキャッシュ管理テーブル111に該当するセグメントがあるか否かを判定する。そして、ディスクキャッシュ管理テーブル111に該当するセグメントがあれば、キャッシュヒットと判定しステップ903に進む。一方、ディスクキャッシュ管理テーブル111に該当するセグメントがなければ、キャッシュミスと判定し、ステップ913に進む(ステップ902)。
キャッシュヒットと判定された場合、次に、制御CPU104は、当該ホストコンピュータ100に割り当てられたディスクキャッシュ区画内でヒットしたか判定する必要がある。なぜなら、各ディスクキャッシュ区画には容量の上限が設定されているからである。
具体的には、制御CPU104は、共有状態情報116を検索し(ステップ903)、当該ディスクキャッシュ区画が共有状態情報116にすでに登録されているか判定する(ステップ904)。判定の結果、当該ディスクキャッシュ区画がすでに登録されていれば、”ヒット”と判定し、ステップ905に進む。一方、当該ディスクキャッシュ区画が登録されていなければ、”ミス”と判定し、ステップ908に進む。
当該ディスクキャッシュ区画のエントリが存在すると判定された場合、当該ディスクキャッシュ区画のディスクキャッシュ区画管理情報114を変更する(ステップ905)。すなわち、当該セグメントに対応するディスクキャッシュ管理テーブルエントリ番号500の情報を連結リストの先頭に移動させる。この処理を繰り返すことによって、ディスクキャッシュ区画管理情報114のエントリはアクセス頻度の順に並ぶ。つまり、ディスクキャッシュ区画管理情報114の末尾に存在するエントリに対応するセグメントがもっともアクセス頻度が少ないようになる。制御CPUがLRUアルゴリズムを採用した場合、データの追い出しが必要になったときは、末尾のエントリに対応するセグメントのデータを追い出すことができる。
次に、制御CPU104は、ホストコンピュータ100によって要求されたデータを、ディスクキャッシュ106からホストコンピュータ100に転送して(ステップ906)、リードコマンド処理を終了する。
一方、当該ディスクキャッシュ区画のエントリが存在しないと判定された場合、ディスクキャッシュ106に目的のデータは存在したものの、当該ディスクキャッシュ区画には登録されていない状態である。各ディスクキャッシュ区画には、容量の上限がある。そこで制御CPU104は、ディスクキャッシュ区画管理テーブル113を参照して、当該ディスクキャッシュ区画に空き容量があるか否かを判定する(ステップ908)。
その結果、当該ディスクキャッシュ区画に空き容量がない場合、制御CPU104は、当該ディスクキャッシュ区画が使用中のセグメントを必要数だけ解放する(ステップ909)。解放の手順は後述する。その後、ステップ910へ進む。
当該ディスクキャッシュ区画に空き容量がある場合、制御CPU104は、当該ディスクキャッシュ区画のディスクキャッシュ区画管理情報114に、当該セグメントに対応するディスクキャッシュ管理テーブルエントリ番号500を追加する(ステップ910)。エントリ番号500を追加する位置は、連結リストの先頭である。この処理も、LRUアルゴリズムに従った結果である。
その後、制御CPU104は、ディスクキャッシュ区画管理テーブル113及び共有状態情報116を変更する(ステップ911)。具体的には、制御CPU104は、ディスクキャッシュ区画管理テーブル113の使用容量403を当該セグメントのサイズだけ加算する。共有状態情報116には、当該ディスクキャッシュ区画番号を設定した、当該ディスクキャッシュ区画番号700を追加する。
そして、制御CPU104は、ディスクキャッシュ管理テーブル111を変更する(ステップ912)。具体的には、制御CPU104が、ディスクキャッシュ管理テーブル111において当該セグメントの共有区画数203に”1”を加算する。これは、新たに当該セグメントを当該ディスクキャッシュ区画が共有したためである。
一方、ステップ902にて、キャッシュミスと判定された場合、ディスクキャッシュ106に目的のデータが存在しない。よって、ストレージ装置101は、当該データを磁気ディスクドライブ107からディスクキャッシュ106に読み込まなくてはならない。そこで、制御CPU104は、未使用セグメント管理テーブル112を参照し、未使用のセグメントがあるか否かを判定する(ステップ913)。
その結果、ディスクキャッシュ106に未使用のセグメントがなかった場合、すでに使用しているセグメントを解放する(ステップ914)。当該セグメントの状態が”dirty”であれば、制御CPU104は、当該セグメントに保存されたデータを磁気ディスクドライブ107に書き戻す。手順の詳細は後述する。そして、ステップ916に進む。
一方、ディスクキャッシュ106に未使用のセグメントがあれば、制御CPU104は未使用セグメント管理テーブル112の未使用セグメント番号301のエントリを取り出す(ステップ915)。
そして、制御CPU104は、ディスクキャッシュ管理テーブル111に当該セグメントの情報を登録する(ステップ916)。すなわち、エントリ番号200、トラック番号201及びセグメント番号202が設定され、共有区画数203に”1”が設定される。さらに、状態204に”clean”が設定される。
その後、制御CPU104は、当該ディスクキャッシュ区画のディスクキャッシュ区画管理情報114に、当該セグメントに対応するディスクキャッシュ管理テーブルエントリ番号500を追加する(ステップ917)。エントリ番号500を追加する位置は、連結リストの先頭である。この処理も、LRUアルゴリズムに従った結果である。
その後、制御CPU104は、ディスクキャッシュ区画管理テーブル114及び共有状態情報117を変更する(ステップ918)。具体的には、制御CPU104は、ディスクキャッシュ区画管理テーブル114の使用容量403を当該セグメントのサイズだけ加算し、共有状態情報117には、当該ディスクキャッシュ区画番号を設定した、当該ディスクキャッシュ区画番号700を追加する。
その後、制御CPU104は、ホストコンピュータ100が要求したデータを磁気ディスクドライブ107から当該セグメントへ転送する(ステップ919)。そして、ステップ906に進み、制御CPU104は、当該データをホストコンピュータ100に転送する。
次に、ライトコマンドに対する制御CPU104の処理を説明する。
図10に、ライトコマンドに対する制御CPU104の処理のフローチャートを示す。図10に示すライトコマンド処理は、リードコマンド処理(図9)とほぼ同じである。
実際には、ストレージ装置101は、ホストコンピュータ100からデータを受け取り、ディスクキャッシュ106内に保存した時点で、ライトコマンドの完了を報告することが可能である。そのため、リードコマンドの処理と異なり、設計者は、キャッシュがヒットしたか、ミスしたかを判定せずに、未使用セグメントにホストコンピュータ100が送信するデータを書き込む処理を考えることができる。従って、図10と異なるフローチャートもありうるが、理解の助けとなることを考慮して、リードコマンドと対称な処理で本発明を説明する。
まず、ホストコンピュータ100からライトコマンドを受信すると、制御CPU104は、ライトコマンドの内容を解析する(ステップ1001)。具体的には、ライトコマンドには、トラック番号とホストコンピュータ100が要求するデータのサイズが含まれる。そのため、制御CPU104は、ディスクキャッシュ管理テーブル111を検索し、該当するトラック番号のトラックに格納されたデータを保持したセグメントを調べる。
さらに、ホストコンピュータ100は、コマンドとともにホストコンピュータの識別子もストレージ装置101に送信する。そのため、制御CPU104は、当該ディスク入出力コマンドに対応するディスクキャッシュ区画を特定することができる。
次に、制御CPU104は、ディスクキャッシュ管理テーブル111に該当するセグメントがあるか否かを判定する。そして、ディスクキャッシュ管理テーブル111に該当するセグメントがあれば、キャッシュヒットと判定しステップ1003に進む。一方、ディスクキャッシュ管理テーブル111に該当するセグメントがなければ、キャッシュミスと判定し、ステップ1013に進む(ステップ1002)。
キャッシュヒットと判定された場合、次に、制御CPU104は、当該ホストコンピュータ100に割り当てられたディスクキャッシュ区画内でヒットしたか判定する必要がある。なぜなら、各ディスクキャッシュ区画には容量の上限が設定されているからである。
具体的には、制御CPU104は、共有状態情報116を検索し(ステップ1003)、当該ディスクキャッシュ区画が共有状態情報116にすでに登録されているか判定する(ステップ1004)。判定の結果、当該ディスクキャッシュ区画がすでに登録されていれば、”ヒット”と判定し、ステップ1005に進む。一方、当該ディスクキャッシュ区画が登録されていなければ、”ミス”と判定し、ステップ1008に進む。
当該ディスクキャッシュ区画のエントリが存在すると判定された場合、当該ディスクキャッシュ区画のディスクキャッシュ区画管理情報114を変更する(ステップ1005)。すなわち、当該セグメントに対応するディスクキャッシュ管理テーブルエントリ番号500の情報を連結リストの先頭に移動させる。この処理を繰り返すことによって、ディスクキャッシュ区画管理情報114のエントリはアクセス頻度の順に並ぶ。つまり、ディスクキャッシュ区画管理情報114の末尾に存在するエントリに対応するセグメントがもっともアクセス頻度が少ないようになる。制御CPUがLRUアルゴリズムを採用した場合、データの追い出しが必要になったときは、末尾のエントリに対応するセグメントのデータを追い出すことができる。
次に、制御CPU104は、ホストコンピュータ100が送信するデータをディスクキャッシュ106に転送して(ステップ1006)、ライトコマンド処理を終了する。なお、ステップ1006は、ライトコマンド処理の最初に行ってもよい。
一方、当該ディスクキャッシュ区画のエントリが存在しないと判定された場合、ディスクキャッシュ106に目的のデータは存在したものの、当該ディスクキャッシュ区画には登録されていない状態である。各ディスクキャッシュ区画には、容量の上限がある。そこで制御CPU104は、ディスクキャッシュ区画管理テーブル113を参照して、当該ディスクキャッシュ区画に空き容量があるか否かを判定する(ステップ1008)。
その結果、当該ディスクキャッシュ区画に空き容量がない場合、制御CPU104は、当該ディスクキャッシュ区画が使用中のセグメントを必要数だけ解放する(ステップ1009)。解放の手順は後述する。その後、ステップ1010へ進む。
当該ディスクキャッシュ区画に空き容量がある場合、制御CPU104は、当該ディスクキャッシュ区画のディスクキャッシュ区画管理情報114に、当該セグメントに対応するディスクキャッシュ管理テーブルエントリ番号500を追加する(ステップ1010)。エントリ番号500を追加する位置は、連結リストの先頭である。この処理も、LRUアルゴリズムに従った結果である。
その後、制御CPU104は、ディスクキャッシュ区画管理テーブル114及び共有状態情報117を変更する(ステップ1011)。具体的には、制御CPU104は、ディスクキャッシュ区画管理テーブル114の使用容量403を当該セグメントのサイズだけ加算する。共有状態情報117には、当該ディスクキャッシュ区画番号を設定した、当該ディスクキャッシュ区画番号700を追加する。
そして、制御CPU104は、ディスクキャッシュ管理テーブル111を変更する(ステップ1012)。具体的には、制御CPU104が、ディスクキャッシュ管理テーブル111において当該セグメントの共有区画数203に”1”を加算する。これは、新たに当該セグメントを当該ディスクキャッシュ区画が共有したためである。さらに制御CPU104は、状態204に”dirty”を設定する。
一方、ステップ1002にて、キャッシュミスと判定された場合、ディスクキャッシュ106に目的のデータが存在しない。よって、ストレージ装置101は、当該データを磁気ディスクドライブ107からディスクキャッシュ106に読み込まなくてはならない。そこで、制御CPU104は、未使用セグメント管理テーブル112を参照し、未使用のセグメントがあるか否かを判定する(ステップ1013)。
その結果、ディスクキャッシュ106に未使用のセグメントがなかった場合、すでに使用しているセグメントを解放する(ステップ1014)。当該セグメントの状態が”dirty”であれば、制御CPU104は、当該セグメントに保存されたデータを磁気ディスクドライブ107に書き戻す。手順の詳細は後述する。そして、ステップ1016に進む。
一方、ディスクキャッシュ106に未使用のセグメントがあれば、制御CPU104は未使用セグメント管理テーブル112の未使用セグメント番号301のエントリを取り出す(ステップ1015)。
そして、制御CPU104は、ディスクキャッシュ管理テーブル111に当該セグメントの情報を登録する(ステップ1016)。すなわち、エントリ番号200、トラック番号201及びセグメント番号202が設定され、共有区画数203に”1”が設定される。さらに、状態204に”dirty”が設定される。
その後、制御CPU104は、当該ディスクキャッシュ区画のディスクキャッシュ区画管理情報114に、当該セグメントに対応するディスクキャッシュ管理テーブルエントリ番号500を追加する(ステップ1017)。エントリ番号500を追加する位置は、連結リストの先頭である。この処理も、LRUアルゴリズムに従った結果である。
その後、制御CPU104は、ディスクキャッシュ区画管理テーブル114及び共有状態情報117を変更する(ステップ1018)。具体的には、制御CPU104は、ディスクキャッシュ区画管理テーブル114の使用容量403を当該セグメントのサイズだけ加算し、共有状態情報117には、当該ディスクキャッシュ区画番号を設定した、当該ディスクキャッシュ区画番号700を追加する。
その後、ステップ1006に進み、制御CPU104は、ホストコンピュータ100からディスクキャッシュ106へデータを転送する。
次に、ステップ909及び1009のデータ追い出し処理を説明する。
図11に、データ追い出し処理のフローチャートを示す。図11に示すデータ追い出し処理は、ディスクキャッシュ106全体としては未使用セグメントがあるが、当該ディスクキャッシュ区画の容量がその上限に達している場合に実行される。ディスクキャッシュ106全体で未使用セグメントがない場合の追い出し処理は図12を用いて説明する。
まず、制御CPU104は、当該ディスクキャッシュ区画のディスクキャッシュ区画管理情報114の最後尾のエントリのディスクキャッシュ管理テーブルエントリ番号500を取り出す(ステップ1101)。
その後、制御CPU104は、当該ディスクキャッシュ区画のディスクキャッシュ区画管理テーブル113を変更する(ステップ1102)。具体的には、当該ディスクキャッシュ区画の使用容量403を解放するセグメントのサイズだけ減算する。
次に、制御CPU104は、ディスクキャッシュ管理テーブル111の共有区画数203を参照する(ステップ1103)。
そして、制御CPU104は、共有区画数が2以上か、1であるかを判定する(ステップ1104)。共有区画数が自然数でない場合は、不当な値であるため、制御CPU104は処理を中止する(この不当な値に関する処理は、図示されていない)。
共有区画数が2以上の場合、他のディスクキャッシュ区画が当該セグメントを使用していることを意味する。そこで、制御CPU104は、当該セグメントの共有状態情報116の当該ディスクキャッシュ区画を示す区画番号700を削除する(ステップ1105)。
そして、制御CPU104は、ディスクキャッシュ管理テーブル111の当該セグメントの共有区画数203から”1”を減算して(ステップ1106)、データ追い出し処理を終了する。
一方、共有区画数が1だった場合、他のディスクキャッシュ区画が当該セグメントを使用していないため、当該セグメントを未使用の状態にすることができる。そこで、制御CPU104は、多重キャッシュ管理テーブル115の当該セグメントに対応するエントリを削除する(ステップ1107)。
制御CPU104は、ディスクキャッシュ管理テーブル111の当該セグメントに対応するエントリを削除する(ステップ1108)。このとき当該セグメントの状態204が”dirty”だったときには、当該セグメントに保持されていたデータを磁気ディスクドライブ107に書き戻してから、当該エントリを削除する。なお、追い出しの対象とするセグメントを”clean”の状態のセグメントに限ってもよい。
その後、制御CPU104は、当該セグメントのセグメント番号を未使用セグメント管理テーブル112に追加して(ステップ1109)、データ追い出し処理を終了する。
図12に、別の追い出し処理のフローチャートを示す。
図11に示す追い出し処理は、ディスクキャッシュ106全体としては未使用セグメントが存在したが、ディスク入出力コマンドの対象となったディスクキャッシュ区画に関しては、その容量の上限に達していた場合である。一方、ステップ914及び1014の追い出し処理は、ディスクキャッシュ106全体に未使用セグメントがない場合である。
まず、制御CPU104は、ディスクキャッシュ管理テーブル111のエントリを一つ又は複数選択する(ステップ1200)。例えば、状態が”clean”のセグメントを選択する方法もある。また、LRUアルゴリズムに従って、アクセス頻度が最も少ないセグメントを選択する方法もある。さらに、複数のセグメントにおいて、格納されたデータのトラック番号が連続していた場合は、一つのまとまったデータと判断して、これらのセグメントを一括して選択する方法もある。いうまでもないが、本発明はこの選択の方法に依存しない。
その後、制御CPU104は、多重キャッシュ管理テーブル115の、ステップ1200で選択されたセグメントに対応するエントリを参照する(ステップ1201)。
その後、制御CPU104は、ステップ1201で得た情報に基づいて、当該セグメントを使用しているディスクキャッシュ区画を特定する(ステップ1202)。
その後、制御CPU104は、ステップ1202で特定されたディスクキャッシュ区画のディスクキャッシュ区画管理情報114から、当該セグメントに対応するディスクキャッシュ管理テーブルエントリ番号500を削除する(ステップ1203)。
その後、制御CPU104は、ディスクキャッシュ区画管理テーブル113の当該ディスクキャッシュ区画の使用容量403から、解放したセグメントのサイズを減算する(ステップ1204)。
その後、制御CPU104は、当該セグメントを使用したディスクキャッシュ区画すべてに対して、ステップ1203から1204の処理を実行したか否かを判定する(ステップ1205)。そして、すべてディスクキャッシュ区画において前述した処理が実行されたならば、ステップ1206に進む。一方、前述した処理が実行されていないディスクキャッシュ区画があれば、ステップ1203に戻る。
制御CPU104は、多重キャッシュ管理テーブル115から当該セグメントの情報を削除する(ステップ1206)。
次に、ストレージ装置101の管理者が、各ディスクキャッシュ区画に対して、容量などを設定する方法を説明する。
図13に、管理端末102の画面の一例を示す。
管理端末の画面1300内にディスクキャッシュ区画の設定情報1301が表示されている。設定情報1301は、区画番号1302、リクエスタID1303及び割り当て容量1304を含む。
区画番号1302は、ディスクキャッシュ区画の番号を表示、設定される欄であり、ディスクキャッシュ区画管理テーブル113の区画番号400と同じ情報が表示される。
リクエスタID1303には、ディスクキャッシュ区画管理テーブル113のリクエスタID401と同じ情報が表示される。
割り当て容量1304は、当該ディスクキャッシュ区画に管理者が割り当てるディスクキャッシュ容量を設定及び表示する欄である。割り当て容量1304に設定された情報は、ディスクキャッシュ区画管理テーブル113の割り当て容量402に反映される。
管理者がOKボタン1307を操作すると、設定情報1301に設定したそれぞれの情報は制御CPU104に転送される。制御CPU104は、転送された情報をディスクキャッシュ区画管理テーブル113に反映させる。管理者がCancelボタン1308を操作すると、設定情報1301に設定したそれぞれの情報は、制御CPU104に転送されずに破棄される。
管理者が、各ディスクキャッシュ区画に容量を割り当てるには様々な方針がある。例えば、使用する磁気ディスクドライブ107の容量が大きいディスクキャッシュ区画には、多くの容量を設定することができる。また、ディスクキャッシュ区画に対応するホストコンピュータ100が実行する業務の性質から必要な容量を見積り、容量を設定する方法もある。
本実施の形態では、ストレージ装置101として、SCSI規格に代表されるブロックストレージを想定している。ブロックストレージとは、磁気ディスクドライブ107を固定サイズの記憶領域の単位(第1の実施の形態における「トラック」)に分割し、ホストコンピュータからみて、この単位の集合として磁気ディスクドライブ107を取り扱うストレージである。
一方、ホストコンピュータ100内で稼動するオペレーティングシステムは、磁気ディスク107内のデータをファイルという可変サイズの単位で、利用者に使用させる。ファイルは前述した磁気ディスクドライブ107の複数のトラックからなる単位である。ストレージ装置の中には、ホストコンピュータ100とのインタフェースをファイル単位とする装置もある。このようなストレージ装置は、従来より、ファイルサーバ、NAS(Network Attached Storage)と呼ばれてきた。これらをブロックストレージと区別してファイルストレージと呼ぶ。
本発明は、ホストコンピュータ100とストレージ装置101とのインタフェースに依存しないため、ファイルストレージにも適用可能であることはいうまでもない。すなわち、ファイルは磁気ディスクドライブ107の一つ又は複数のトラックから構成される。従って、ファイルを構成するトラックに対して本実施の形態で説明した方法を適用することができる。
(第2の実施の形態)
これまで本発明の第1の実施の形態を説明してきたが、ディスクキャッシュ区画間(ホストコンピュータ間)でデータを共有する機器構成が前提である。あるホストコンピュータが使用しているデータを別のホストコンピュータが変更してしまうと、データを使用しているホストコンピュータにとってデータに不整合が生じる可能性がある。
従来は、複数のユーザ間で同一のデータを共有したとき、データの一貫性の保証は、ホストコンピュータ内で稼動するオペレーティングシステムの役割であった。しかし、ストレージ集約の環境下では、ホストコンピュータ間の同期機構が設けられていないため、オペレーティングシステムでは一貫性を保証できない。そこで、ストレージ装置が一貫性を保証する必要がある。
第2の実施の形態においてこの機構を説明する。
図14に、第2の実施の形態の計算機システムのハードウェア構成を示す。
ストレージ装置101には、新たに磁気ディスク属性テーブル1400が追加されている。他の要素は、図1と同様であるため、説明を省略する。磁気ディスク属性テーブル1400は、各磁気ディスクドライブ107について、ディスクキャッシュ区画に許可されたコマンドの種別を記述したテーブルである。
図15に、磁気ディスク属性テーブル1400を示す。
磁気ディスク属性テーブル1400は、磁気ディスクドライブ番号1500、トラック番号1501区画0(1502)及び区画1(1503)を含む。
磁気ディスクドライブ番号1500は、磁気ディスクドライブ107の識別子が設定される欄である。
トラック番号1501は、磁気ディスクドライブに含まれるトラック番号の範囲が設定される欄である。
区画0(1502)及び区画1(1503)は、各ディスクキャッシュ区画に許可されたコマンドが記述される欄である。
図15では、磁気ディスクドライブ番号0の磁気ディスクドライブに対して、ディスクキャッシュ区画0は、READ及びWRITEがともに可能である。ディスクキャッシュ区画1は、READ及びWRITEがともに可能である。
一方、磁気ディスクドライブ番号1の磁気ディスクドライブは、区画0は、READ及びWRITEがともに可能であるが、区画1はREADのみ可能である。このようにディスクキャッシュ区画(ホストコンピュータ)それぞれに対して、許可された磁気ディスクドライブに対するコマンドを記述できる。
図16に、ストレージ装置のディスク入出力コマンドの処理のフローチャートを示す。
まず、ストレージ装置101は、ホストコンピュータ100が送信したディスク入出力コマンドを受信する(ステップ1601)。
そして、ストレージ装置101は、コマンドを解析して、対象となる磁気ディスクドライブとディスクキャッシュ区画を特定し、磁気ディスク属性テーブル1400を参照する。そして、ストレージ装置101は、当該ディスク入出力コマンドが許可されたコマンドか否かを判定する(ステップ1602)。
当該コマンドが許可されていれば、ストレージ装置101は当該コマンドを実行する(ステップ1603)。そして、ストレージ装置101は、ホストコンピュータ100に当該コマンドの処理完了を報告する(ステップ1604)。
一方、当該コマンドが許可されていなければ、ストレージ装置101は、ホストコンピュータ100に当該コマンドの異常終了を報告する(ステップ1605)。
以上説明したように、本発明では、従来のように同一データを重複してディスクキャッシュに格納することを避けることができる。よって、従来技術と比較すると、重複してデータを配置していた容量分だけ利用者がディスクキャッシュの容量を多く利用することが可能になる。
図17に、ディスクキャッシュの割り当て容量算出処理のフローチャートを示す。
まず、管理者は、ディスクキャッシュ容量の割当を算出する磁気ディスクの区画を選択する(ステップ2001)。
制御CPU104は、ディスクキャッシュ区画管理テーブル113を参照して、管理者の選択に基づいて、ディスクキャッシュ容量の割当の算出対象となる区画のために使用される磁気ディスクの容量を算出する(ステップ2002)。
各区画のために使用される磁気ディスクの容量の比率に従って、各区画に割り当てられるディスクキャッシュの容量を決定する(ステップ2003)。
その後、区画間で共有される磁気ディスクの容量を計算する(ステップ2004)。
そして、共有される磁気ディスクの容量に比例した容量を、各区画のディスクキャッシュ容量に加算する(ステップ2005)。
図18〜図20に、ディスクキャッシュ割当容量算出処理(図17)による算出結果を示す。
図18は、区画間で共有する磁気ディスクがないときのディスクキャッシュ容量配分を示す。
磁気ディスクの全容量がY(GB)であり、区画0が使用する磁気ディスクの容量と区画1が使用する磁気ディスクの容量との比がα:(1−α)であった場合、区画0が使用する磁気ディスクの容量はαY(GB)となり、区画1が使用する磁気ディスクの容量は(1−α)Y(GB)となる。
各区画に割り当てられるディスクキャッシュの容量は、各区画に割り当てられた磁気ディスクの容量に比例する。よって、区画0に使用されるディスクキャッシュの容量と区画1に使用されるディスクキャッシュの容量との比がα:(1−α)となる。
ディスクキャッシュの全容量がX(GB)であると、区画0に使用されるディスクキャッシュ容量はαX(GB)となり、区画1に使用されるディスクキャッシュ容量は(1−α)X(GB)となる。
図19は、区画間で共有する磁気ディスクがあるときのディスクキャッシュ容量配分を示す。
磁気ディスクの全容量がY(GB)であり、区画0が使用する磁気ディスクの容量と区画1が使用する磁気ディスクの容量と区画間で共有される磁気ディスクの容量との比がα:(1−α):βであった場合、区画0が使用する磁気ディスクの容量はαY(GB)となり、区画1が使用する磁気ディスクの容量は(1−α)Y(GB)となり、区画間で共有される磁気ディスクの容量はβY(GB)となる。
各区画に割り当てられるディスクキャッシュの容量は、各区画に割り当てられた磁気ディスクの容量に比例する。よって、区画0に使用されるディスクキャッシュの容量と区画1に使用されるディスクキャッシュの容量との比がα:(1−α)となる。
ディスクキャッシュの全容量がX(GB)であると、区画間で共有される磁気ディスクの容量はβX(GB)となる。このβX(GB)を各区画で使用されるディスクキャッシュ容量で均等に配分することにすると、区画0に使用されるディスクキャッシュ容量は(α+β/2)X(GB)となり、区画1に使用されるディスクキャッシュ容量は(1−α+β/2)X(GB)となる。
区画間で共有する磁気ディスクがあるときとないときの、各区画が有効に使えるディスクキャッシュの容量を比較すると、区画間で共有する磁気ディスクがあるときの方が、各区画が有効に使えるディスクキャッシュの容量を比較すると、共有される磁気ディスクがあるときの方が、各区画で有効に使えるディスクキャッシュの容量が大きくなる。
これは、図20に示すように、ディスクを区画間で共有しないときには、区画0が使用するディスクキャッシュ容量はαX(GB)である。一方、ディスクを区画間で共有するときには、区画0が使用するディスクキャッシュ容量(α+β/2)X(GB)に増加する。
以上説明したように、管理者は、ディスクキャッシュ区画間で共有される磁気ディスクドライブ107の容量はあらかじめわかっているはずである。管理者がディスクキャッシュ区画に割り当てる容量の配分率を、使用する磁気ディスクドライブ107の容量に比例する方針を採った場合、共有される磁気ディスクドライブ107の容量の比率分だけ、ディスクキャッシュ区画に割り当てるディスクキャッシュ容量を従来と比較して増やすことができる。
また、従来よりディスクキャッシュの利用容量が増えるため、ストレージ装置101自身の機能のためにこれらを利用してもよい。近年、ストレージ装置101の高機能化は著しい。例えば、遠隔地へデータをコピーする機能や、ストレージ装置101内で短時間に磁気ディスクドライブ107の複製を行う機能が考えられる。
ディスクキャッシュ106は、前述のように性能に大きく影響するコンポーネントであり、その利用効率が向上することは、利用者に大きな利益をもたらすといえる。
第1の実施の形態の計算機システムのハードウェア構成を示すブロック図である。 第1の実施の形態におけるストレージ装置のディスクキャッシュ管理テーブルの説明図である。 第1の実施の形態におけるストレージ装置の未使用セグメント管理テーブルの説明図である。 第1の実施の形態におけるストレージ装置のディスクキャッシュ区画管理テーブルの説明図である。 第1の実施の形態におけるストレージ装置のディスクキャッシュ区画管理情報の説明図である。 第1の実施の形態におけるストレージ装置の多重キャッシュ管理テーブルの説明図である。 第1の実施の形態におけるストレージ装置の共有状態情報の説明図である。 第1の実施の形態におけるストレージ装置のディスク入出力処理を示すフローチャートである。 第1の実施の形態におけるストレージ装置のリード処理を示すフローチャートである。 第1の実施の形態におけるストレージ装置のライト処理を示すフローチャートである。 第1の実施の形態におけるストレージ装置の追い出し処理を示すフローチャートである。 第1の実施の形態におけるストレージ装置の追い出し処理を示すフローチャートである。 第1の実施の形態における管理端末の設定画面を示す説明図である。 第2の実施の形態の計算機システムのハードウェア構成を示すブロック図である。 第2の実施の形態の磁気ディスク属性テーブルの説明図である。 第2の実施の形態のストレージ装置のディスク入出力コマンドの処理を示すフローチャートである 第2の実施の形態のディスクキャッシュの割り当て容量算出処理を示すフローチャートである。 第2の実施の形態のディスクキャッシュ割当容量の算出の説明図である。 第2の実施の形態のディスクキャッシュ割当容量の算出の説明図である。 第2の実施の形態のディスクキャッシュ割当容量の算出の説明図である。
符号の説明
100 ホストコンピュータ
101 ストレージ装置
102 管理端末
103 ホストインタフェース部
104 制御CPU
105 システムメモリ
106 ディスクキャッシュ
107 磁気ディスクドライブ
108 ディスクインタフェース部
109 システムバス
110 制御プログラム
111 ディスクキャッシュ管理テーブル
112 未使用セグメント管理テーブル
113 ディスクキャッシュ区画管理テーブル
114 ディスクキャッシュ区画管理情報
115 多重キャッシュ管理テーブル
116 共有状態情報
1400 磁気ディスク属性テーブル

Claims (12)

  1. ホストコンピュータと接続されたストレージ装置であって、
    データを格納する不揮発性媒体と、
    前記不揮発性媒体に格納されるデータを一時的に記憶するディスクキャッシュと、
    前記不揮発性媒体に対するデータの入出力を制御する制御部と、
    前記制御部によって使用される情報を記憶する記憶部と、を備え、
    前記制御部は、前記ディスクキャッシュを一つ又は複数の独立したディスクキャッシュ区画に分割し、
    前記記憶部は、前記ディスクキャッシュの各記憶領域の状態を記述した第1の情報と、前記分割されたディスクキャッシュ区画が使用しているディスクキャッシュの各記憶領域の状態を記述した第2の情報と、を記憶し、
    前記制御部は、
    当該要求をしたホストコンピュータと対応するディスクキャッシュ区画を特定し、
    前記第1の情報を参照し、前記要求されたデータがディスクキャッシュ内の記憶領域に格納されているか否かを判定し、
    前記要求されたデータがディスクキャッシュのいずれの記憶領域にも格納されていなかった場合には、前記特定されたディスクキャッシュ区画が利用可能な記憶領域の容量を計算し、
    当該ディスクキャッシュ区画に利用可能な記憶領域がない場合には、前記ディスクキャッシュに記憶されたデータのうち、アクセス頻度が低いデータを、前記不揮発媒体に書き込む又は破棄するという第1掃きだし処理を実行することによって、未使用の記憶領域を確保し、
    ディスクキャッシュの各記憶領域の状態を記述した第1の情報のうち当該確保された記憶領域の情報を変更し、
    前記ディスクキャッシュ区画によって使用されているディスクキャッシュの各記憶領域の状態を記述した第2の情報に、当該記憶領域の情報を追加し、
    前記要求されたデータを前記不揮発性媒体から前記確保された記憶領域に転送し、
    前記ディスクキャッシュの当該記憶領域に転送されたデータを前記ホストコンピュータへ転送することを特徴とするストレージ装置。
  2. 前記制御部は、
    前記第1掃きだし処理として、
    前記第1の情報から掃きだし対象の記憶領域を選択し、
    前記第1の情報を用いて掃きだし対象の記憶領域を使用しているディスクキャッシュ区画を特定し、
    当該各ディスクキャッシュ区画の第2の情報から、掃きだし対象の記憶領域の情報を削除し、
    必要があれば、当該掃きだし対象の記憶領域のデータを前記不揮発媒体に書き戻し、第1の情報のうち当該掃きだし対象の記憶領域の状態を未使用に変更することを特徴とする請求項1に記載のストレージ装置。
  3. 前記制御部は、
    前記要求されたデータがディスクキャッシュの記憶領域に格納されていた場合には、さらに前記第2の情報を参照して、対応するディスクキャッシュ区画が当該記憶領域を使用しているか否かを判定し、
    前記対応するディスクキャッシュ区画が当該記憶領域を使用していた場合には、当該記憶領域に格納されたデータをホストコンピュータに転送し、
    前記対応するディスクキャッシュ区画が当該記憶領域を使用していなかった場合には、当該記憶領域が使用中である情報を前記第2の情報に追加し、前記第1の情報のうち当該記憶領域の共有状態を当該ディスクキャッシュ区画が使用している状態に変更することを特徴とする請求項1に記載のストレージ装置。
  4. 前記制御部は、
    前記対応するディスクキャッシュ区画が当該記憶領域を使用していなかった場合には、
    当該ディスクキャッシュ区画に空き容量があるか否かを判定し、
    当該ディスクキャッシュ区画に空き容量がない場合には、前記ディスクキャッシュに記憶されたデータのうち、アクセス頻度が低いデータを、前記不揮発媒体に書き込む又は破棄するという第2掃きだし処理を実行して、未使用の記憶領域を確保し、
    当該ディスクキャッシュ区画に空き容量がある場合には、当該記憶領域に格納されたデータをホストコンピュータに転送することを特徴とする請求項3に記載のストレージ装置。
  5. 前記制御部は、
    前記第2掃きだし処理として、
    当該ディスクキャッシュ区画の前記第2の情報から、掃きだし対象の記憶領域の情報を削除し、
    前記第1の情報の共有状態を参照し、他のディスクキャッシュ区画が当該記憶領域を使用中であるか否かを判定し、
    当該他のディスクキャッシュ区画が当該記憶領域を使用中であれば、前記参照した共有状態を、当該ディスクキャッシュ区画が当該記憶領域を使用していないことを示す状態に変更し、
    当該他のディスクキャッシュ区画が当該記憶領域を使用していない場合には、必要があれば、当該記憶領域のデータを前記不揮発媒体に書き戻し、前記第1の情報のうち当該記憶領域の状態を未使用に変更することを特徴とする請求項4に記載のストレージ装置。
  6. 前記記憶部には、前記各ディスクキャッシュ区画に対応する前記ホストコンピュータが前記不揮発媒体に対して実行可能な操作を記述した第3の情報が記憶されており、
    前記制御部は、
    前記ディスクキャッシュ区画に対応する前記ホストコンピュータが前記不揮発媒体にアクセスしたときに、前記第3の情報を参照し、
    前記アクセスが不可能な操作に関するものであれば、当該操作の失敗を前記ホストコンピュータに報告することを特徴とする請求項1に記載のストレージ装置。
  7. ホストコンピュータと接続されたストレージ装置において、前記ホストコンピュータからデータの読出要求時にディスクキャッシュを制御する方法であって、
    前記ストレージ装置は、データを格納する不揮発性媒体と、前記不揮発性媒体に格納されるデータを一時的に記憶するディスクキャッシュと、前記不揮発性媒体に対するデータの入出力を制御する制御部と、前記制御部によって使用される情報を記憶する記憶部と、を備え、
    前記制御部は、
    当該要求をしたホストコンピュータと対応するディスクキャッシュ区画を特定し、
    前記第1の情報を参照し、前記要求されたデータがディスクキャッシュ内の記憶領域に格納されているか否かを判定し、
    前記要求されたデータがディスクキャッシュのいずれの記憶領域にも格納されていなかった場合には、前記特定されたディスクキャッシュ区画が利用可能な記憶領域の容量を計算し、
    当該ディスクキャッシュ区画に利用可能な記憶領域がない場合には、前記ディスクキャッシュに記憶されたデータのうち、アクセス頻度が低いデータを、前記不揮発媒体に書き込む又は破棄するという第1掃きだし処理を実行することによって、未使用の記憶領域を確保し、
    ディスクキャッシュの各記憶領域の状態を記述した第1の情報のうち当該確保された記憶領域の情報を変更し、
    前記ディスクキャッシュ区画によって使用されているディスクキャッシュの各記憶領域の状態を記述した第2の情報に、当該記憶領域の情報を追加し、
    前記要求されたデータを前記不揮発性媒体から前記確保された記憶領域に転送し、
    前記ディスクキャッシュの当該記憶領域に転送されたデータを前記ホストコンピュータへ転送することを特徴とするディスクキャッシュ制御方法。
  8. 前記第1掃きだし処理は、
    前記制御部が、
    前記第1の情報から掃きだし対象の記憶領域を選択し、
    前記第1の情報を用いて掃きだし対象の記憶領域を使用しているディスクキャッシュ区画を特定し、
    当該各ディスクキャッシュ区画の第2の情報から、掃きだし対象の記憶領域の情報を削除し、
    必要があれば、当該掃きだし対象の記憶領域のデータを前記不揮発媒体に書き戻し、第1の情報のうち当該掃きだし対象の記憶領域の状態を未使用に変更することを特徴とする請求項7に記載のディスクキャッシュ制御方法。
  9. 前記制御部は、
    前記要求されたデータがディスクキャッシュの記憶領域に格納されていた場合には、さらに前記第2の情報を参照して、対応するディスクキャッシュ区画が当該記憶領域を使用しているか否かを判定し、
    前記対応するディスクキャッシュ区画が当該記憶領域を使用していた場合には、当該記憶領域に格納されたデータをホストコンピュータに転送し、
    前記対応するディスクキャッシュ区画が当該記憶領域を使用していなかった場合には、当該記憶領域が使用中である情報を前記第2の情報に追加し、前記第1の情報のうち当該記憶領域の共有状態を当該ディスクキャッシュ区画が使用している状態に変更することを特徴とする請求項7に記載のディスクキャッシュ制御方法。
  10. 前記制御部は、
    前記対応するディスクキャッシュ区画が当該記憶領域を使用していなかった場合には、
    当該ディスクキャッシュ区画に空き容量があるか否かを判定し、
    当該ディスクキャッシュ区画に空き容量がない場合には、前記ディスクキャッシュに記憶されたデータのうち、アクセス頻度が低いデータを、前記不揮発媒体に書き込む又は破棄するという第2掃きだし処理を実行して、未使用の記憶領域を確保し、
    当該ディスクキャッシュ区画に空き容量がある場合には、当該記憶領域に格納されたデータをホストコンピュータに転送することを特徴とする請求項9に記載のディスクキャッシュ制御方法。
  11. 前記第2掃きだし処理は、
    前記制御部が、
    当該ディスクキャッシュ区画の前記第2の情報から、掃きだし対象の記憶領域の情報を削除し、
    前記第1の情報の共有状態を参照し、他のディスクキャッシュ区画が当該記憶領域を使用中であるか否かを判定し、
    当該他のディスクキャッシュ区画が当該記憶領域を使用中であれば、前記参照した共有状態を、当該ディスクキャッシュ区画が当該記憶領域を使用していないことを示す状態に変更し、
    当該他のディスクキャッシュ区画が当該記憶領域を使用していない場合には、必要があれば、当該記憶領域のデータを前記不揮発媒体に書き戻し、前記第1の情報のうち当該記憶領域の状態を未使用に変更することを特徴とする請求項10に記載のディスクキャッシュ制御方法。
  12. 前記記憶部には、前記各ディスクキャッシュ区画に対応する前記ホストコンピュータが前記不揮発媒体に対して実行可能な操作を記述した第3の情報が記憶されており、
    前記制御部は、
    前記ディスクキャッシュ区画に対応する前記ホストコンピュータが前記不揮発媒体にアクセスしたときに、前記第3の情報を参照し、
    前記アクセスが不可能な操作に関するものであれば、当該操作の失敗を前記ホストコンピュータに報告することを特徴とする請求項7に記載のディスクキャッシュ制御方法。
JP2005226418A 2005-08-04 2005-08-04 ストレージ装置、ディスクキャッシュ制御方法及びディスクキャッシュの容量割当方法 Expired - Fee Related JP4813843B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2005226418A JP4813843B2 (ja) 2005-08-04 2005-08-04 ストレージ装置、ディスクキャッシュ制御方法及びディスクキャッシュの容量割当方法
US11/251,213 US7769952B2 (en) 2005-08-04 2005-10-17 Storage system for controlling disk cache
EP06250641A EP1755042A3 (en) 2005-08-04 2006-02-07 Storage system for controlling disk cache
US12/833,442 US8281076B2 (en) 2005-08-04 2010-07-09 Storage system for controlling disk cache

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005226418A JP4813843B2 (ja) 2005-08-04 2005-08-04 ストレージ装置、ディスクキャッシュ制御方法及びディスクキャッシュの容量割当方法

Publications (2)

Publication Number Publication Date
JP2007041904A JP2007041904A (ja) 2007-02-15
JP4813843B2 true JP4813843B2 (ja) 2011-11-09

Family

ID=37400920

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005226418A Expired - Fee Related JP4813843B2 (ja) 2005-08-04 2005-08-04 ストレージ装置、ディスクキャッシュ制御方法及びディスクキャッシュの容量割当方法

Country Status (3)

Country Link
US (2) US7769952B2 (ja)
EP (1) EP1755042A3 (ja)
JP (1) JP4813843B2 (ja)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8010753B2 (en) * 2005-09-28 2011-08-30 International Business Machines Corporation Systems and methods for temporarily transferring use of portions of partitioned memory between host computers
US8862813B2 (en) 2005-12-29 2014-10-14 Datacore Software Corporation Method, computer program product and appartus for accelerating responses to requests for transactions involving data operations
US7752386B1 (en) * 2005-12-29 2010-07-06 Datacore Software Corporation Application performance acceleration
US7461222B2 (en) * 2006-02-14 2008-12-02 Hitachi, Ltd. Method for mirroring data between clustered NAS systems
US7600073B2 (en) * 2006-09-26 2009-10-06 International Business Machines Corporation Cache disk storage upgrade
JP2009043030A (ja) * 2007-08-09 2009-02-26 Hitachi Ltd ストレージシステム
JP5141234B2 (ja) 2007-12-19 2013-02-13 日本電気株式会社 階層記憶制御装置、階層記憶制御システム及びそれらに用いる階層記憶制御方法及びそのプログラム
JP2009181484A (ja) * 2008-01-31 2009-08-13 Panasonic Corp 計算機システムとその制御方法
US8959280B2 (en) * 2008-06-18 2015-02-17 Super Talent Technology, Corp. Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear
US9547589B2 (en) * 2008-06-18 2017-01-17 Super Talent Technology, Corp. Endurance translation layer (ETL) and diversion of temp files for reduced flash wear of a super-endurance solid-state drive
US9548108B2 (en) * 2008-06-18 2017-01-17 Super Talent Technology, Corp. Virtual memory device (VMD) application/driver for enhanced flash endurance
JP5294742B2 (ja) * 2008-07-14 2013-09-18 インターナショナル・ビジネス・マシーンズ・コーポレーション 機器の間のアクセスを管理する装置及び方法
US8190823B2 (en) * 2008-09-18 2012-05-29 Lenovo (Singapore) Pte. Ltd. Apparatus, system and method for storage cache deduplication
CN101566933B (zh) * 2009-06-11 2012-07-04 成都市华为赛门铁克科技有限公司 一种配置缓存的方法、装置和电子设备及数据读写装置
JP5526697B2 (ja) * 2009-10-14 2014-06-18 ソニー株式会社 ストレージ装置およびメモリシステム
US8347033B2 (en) * 2009-12-01 2013-01-01 Hitachi, Ltd. Storage system having power saving function
CN102508619B (zh) 2011-11-21 2014-09-17 华为数字技术(成都)有限公司 存储系统服务质量控制方法、系统和存储系统
US9009416B1 (en) * 2011-12-30 2015-04-14 Emc Corporation System and method for managing cache system content directories
US9053033B1 (en) * 2011-12-30 2015-06-09 Emc Corporation System and method for cache content sharing
US8627012B1 (en) 2011-12-30 2014-01-07 Emc Corporation System and method for improving cache performance
US9235524B1 (en) 2011-12-30 2016-01-12 Emc Corporation System and method for improving cache performance
US8930947B1 (en) 2011-12-30 2015-01-06 Emc Corporation System and method for live migration of a virtual machine with dedicated cache
US9104529B1 (en) 2011-12-30 2015-08-11 Emc Corporation System and method for copying a cache system
US9158578B1 (en) 2011-12-30 2015-10-13 Emc Corporation System and method for migrating virtual machines
KR20130079706A (ko) * 2012-01-03 2013-07-11 삼성전자주식회사 휘발성 메모리를 포함하는 저장 장치의 구동 방법
US9047195B2 (en) 2012-07-05 2015-06-02 Hitachi, Ltd. Computer system with virtualization mechanism and management table, cache control method and computer program
US20140058717A1 (en) * 2012-08-24 2014-02-27 Hitachi, Ltd. Simulation system for simulating i/o performance of volume and simulation method
US9098417B2 (en) * 2012-12-13 2015-08-04 Advanced Micro Devices, Inc. Partitioning caches for sub-entities in computing devices
US9280472B1 (en) 2013-03-13 2016-03-08 Western Digital Technologies, Inc. Caching data in a high performance zone of a data storage system
US9766824B2 (en) * 2013-11-26 2017-09-19 Hitachi, Ltd. Storage device and computer system
TWI530787B (zh) * 2014-06-05 2016-04-21 宏碁股份有限公司 電子裝置以及資料寫入方法
US9594628B2 (en) * 2014-07-30 2017-03-14 Segate Technology Llc Operational vibration compensation through media cache management
CN105824570B (zh) * 2015-01-04 2018-11-23 致伸科技股份有限公司 可降低耗电的硬盘装置以及降低硬盘装置耗电的方法
JP2019168733A (ja) * 2016-07-08 2019-10-03 日本電気株式会社 情報処理システム、キャッシュ容量配分方法、記憶制御装置およびその方法とプログラム
US9984004B1 (en) * 2016-07-19 2018-05-29 Nutanix, Inc. Dynamic cache balancing
US10503635B2 (en) 2016-09-22 2019-12-10 Dell Products, Lp System and method for adaptive optimization for performance in solid state drives based on segment access frequency
CN111201517A (zh) * 2017-10-17 2020-05-26 索尼半导体解决方案公司 存储器存取装置、存储系统和信息处理系统
JP2021115764A (ja) * 2020-01-24 2021-08-10 キヤノン株式会社 画像処理装置、画像処理方法
KR20210101969A (ko) * 2020-02-11 2021-08-19 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이의 동작 방법
US11893277B2 (en) * 2020-10-14 2024-02-06 Western Digital Technologies, Inc. Data storage device managing low endurance semiconductor memory write cache
CN112329919B (zh) * 2020-11-05 2022-07-29 北京百度网讯科技有限公司 模型训练方法及装置
CN113590520B (zh) * 2021-06-15 2024-05-03 珠海一微半导体股份有限公司 Spi系统自动写入数据的控制方法及spi系统

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4425615A (en) * 1980-11-14 1984-01-10 Sperry Corporation Hierarchical memory system having cache/disk subsystem with command queues for plural disks
US4442487A (en) * 1981-12-31 1984-04-10 International Business Machines Corporation Three level memory hierarchy using write and share flags
EP0389151A3 (en) * 1989-03-22 1992-06-03 International Business Machines Corporation System and method for partitioned cache memory management
JP3308554B2 (ja) * 1991-02-20 2002-07-29 株式会社日立製作所 制御装置及び制御装置の制御方法
JPH05289824A (ja) * 1992-04-13 1993-11-05 Hitachi Ltd ディスク装置に内蔵されるキャッシュメモリの制御方式
US5434992A (en) * 1992-09-04 1995-07-18 International Business Machines Corporation Method and means for dynamically partitioning cache into a global and data type subcache hierarchy from a real time reference trace
AU5442494A (en) * 1992-10-13 1994-05-09 Compaq Computer Corporation Disk array controller having advanced internal bus protocol
US5542066A (en) * 1993-12-23 1996-07-30 International Business Machines Corporation Destaging modified data blocks from cache memory
US5701503A (en) * 1994-01-04 1997-12-23 Intel Corporation Method and apparatus for transferring information between a processor and a memory system
US6161208A (en) * 1994-05-06 2000-12-12 International Business Machines Corporation Storage subsystem including an error correcting cache and means for performing memory to memory transfers
JPH08147218A (ja) 1994-11-24 1996-06-07 Fujitsu Ltd キャッシュ制御装置
JP3963049B2 (ja) 1998-11-13 2007-08-22 カワサキ機工株式会社 生葉管理装置における鮮度保持方法並びにその装置
US6542961B1 (en) * 1998-12-22 2003-04-01 Hitachi, Ltd. Disk storage system including a switch
JP4123621B2 (ja) * 1999-02-16 2008-07-23 株式会社日立製作所 主記憶共有型マルチプロセッサシステム及びその共有領域設定方法
US6341331B1 (en) * 1999-10-01 2002-01-22 International Business Machines Corporation Method and system for managing a raid storage system with cache
US6457102B1 (en) 1999-11-05 2002-09-24 Emc Corporation Cache using multiple LRU's
US6615322B2 (en) * 2001-06-21 2003-09-02 International Business Machines Corporation Two-stage request protocol for accessing remote memory data in a NUMA data processing system
JP2003131946A (ja) * 2001-10-19 2003-05-09 Nec Corp キャッシュメモリ制御装置及び方法
JP4186509B2 (ja) * 2002-05-10 2008-11-26 株式会社日立製作所 ディスクシステムとそのキャッシュ制御方法
US7269709B2 (en) * 2002-05-15 2007-09-11 Broadcom Corporation Memory controller configurable to allow bandwidth/latency tradeoff
US6976131B2 (en) * 2002-08-23 2005-12-13 Intel Corporation Method and apparatus for shared cache coherency for a chip multiprocessor or multiprocessor system
US7120746B2 (en) * 2002-09-09 2006-10-10 International Business Machines Corporation Technique for data transfer
JP3933027B2 (ja) * 2002-10-17 2007-06-20 日本電気株式会社 ディスクアレイ装置におけるキャッシュメモリ分割管理方式
US7296121B2 (en) * 2002-11-04 2007-11-13 Newisys, Inc. Reducing probe traffic in multiprocessor systems
JP3944449B2 (ja) * 2002-12-19 2007-07-11 株式会社日立製作所 計算機システム、磁気ディスク装置、および、ディスクキャッシュ制御方法
US7039763B2 (en) * 2003-04-11 2006-05-02 Intel Corporation Apparatus and method to share a cache memory
JP2005165441A (ja) 2003-11-28 2005-06-23 Hitachi Ltd ストレージ制御装置、及びストレージ制御装置の制御方法
US7343451B2 (en) * 2003-12-25 2008-03-11 Hitachi, Ltd. Disk array device and remote copying control method for disk array device
JP4141391B2 (ja) 2004-02-05 2008-08-27 株式会社日立製作所 ストレージサブシステム
US7627617B2 (en) * 2004-02-11 2009-12-01 Storage Technology Corporation Clustered hierarchical file services
JP4477906B2 (ja) * 2004-03-12 2010-06-09 株式会社日立製作所 ストレージシステム
US7475190B2 (en) * 2004-10-08 2009-01-06 International Business Machines Corporation Direct access of cache lock set data without backing memory
US7624235B2 (en) * 2006-11-30 2009-11-24 Apple Inc. Cache used both as cache and staging buffer

Also Published As

Publication number Publication date
US8281076B2 (en) 2012-10-02
JP2007041904A (ja) 2007-02-15
EP1755042A3 (en) 2007-04-18
US7769952B2 (en) 2010-08-03
EP1755042A2 (en) 2007-02-21
US20100274964A1 (en) 2010-10-28
US20070033341A1 (en) 2007-02-08

Similar Documents

Publication Publication Date Title
JP4813843B2 (ja) ストレージ装置、ディスクキャッシュ制御方法及びディスクキャッシュの容量割当方法
JP5944587B2 (ja) 計算機システム及び制御方法
JP6000376B2 (ja) 特性の異なる複数種類のキャッシュメモリを有する情報処理装置
US9069476B2 (en) Method for managing storage system using flash memory, and computer
US8195913B2 (en) Data storage control on storage devices
US8959286B2 (en) Hybrid storage subsystem with mixed placement of file contents
US11347428B2 (en) Solid state tier optimization using a content addressable caching layer
US8429346B1 (en) Automated data relocation among storage tiers based on storage load
JP5593577B2 (ja) ストレージシステム及びその制御情報の管理方法
JP5531091B2 (ja) 計算機システム及びその負荷均等化制御方法
JP2009043030A (ja) ストレージシステム
US20100100680A1 (en) Storage apparatus and cache control method
JP6011153B2 (ja) ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
JPH11288387A (ja) ディスクキャッシュ装置
US9864688B1 (en) Discarding cached data before cache flush
JP7011156B2 (ja) ストレージ制御装置およびプログラム
JP5597266B2 (ja) ストレージシステム
US20240111429A1 (en) Techniques for collecting and utilizing activity metrics
US11740792B2 (en) Techniques for data storage management
US20210263648A1 (en) Method for managing performance of logical disk and storage array
JP6273678B2 (ja) ストレージ装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080110

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100910

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100921

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101117

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110825

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140902

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees