JP5187017B2 - 分散ディスクキャッシュシステム及び分散ディスクキャッシュ方法 - Google Patents

分散ディスクキャッシュシステム及び分散ディスクキャッシュ方法 Download PDF

Info

Publication number
JP5187017B2
JP5187017B2 JP2008158591A JP2008158591A JP5187017B2 JP 5187017 B2 JP5187017 B2 JP 5187017B2 JP 2008158591 A JP2008158591 A JP 2008158591A JP 2008158591 A JP2008158591 A JP 2008158591A JP 5187017 B2 JP5187017 B2 JP 5187017B2
Authority
JP
Japan
Prior art keywords
cache
access
server
data area
information
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
JP2008158591A
Other languages
English (en)
Other versions
JP2010002942A (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 JP2008158591A priority Critical patent/JP5187017B2/ja
Priority to EP09156350A priority patent/EP2136299A1/en
Priority to US12/471,940 priority patent/US8166242B2/en
Publication of JP2010002942A publication Critical patent/JP2010002942A/ja
Application granted granted Critical
Publication of JP5187017B2 publication Critical patent/JP5187017B2/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
    • 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/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

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

本発明は、分散ディスクキャッシュシステム及び分散ディスクキャッシュ方法に関し、特に、ディスクにおいてアクセスが集中する領域を特定してキャッシュする分散ディスクキャッシュシステム及び分散ディスクキャッシュ方法に関する。
コンピュータが複数のディスク装置とネットワークを介して接続される構成を備えるコンピュータシステムが知られている。このようなコンピュータシステムでは、キャッシュを設けることにより、データのアクセス性能を向上させている。
例えば、コンピュータとストレージデバイスとをバスで接続したコンピュータシステムにおいて、コンピュータの入出力部にキャッシュを設けると共に、ディスク装置へのアクセス頻度をカウントして、その頻度に応じてデータをキャッシュすることが知られている。
また、ホストコンピュータと共有メモリとをネットワークで接続したコンピュータシステムにおいて、他のネットワークで接続したキャッシュを設けると共に、ディスク制御装置内のアクセス状況を監視し、ディスク装置間でアクセスが頻発している論理ボリュームに関してデータの移動等の推奨する情報を管理者に提供するシステムが知られている。
特開2001−134522号公報 特開2002−333956号公報
本発明者は、コンピュータと複数のRAID(Redundant Arrays of Inexpensive Disks)装置を備えるストレージとをネットワークを介して接続し、コンピュータに仮想(論理)ボリュームを提供するコンピュータシステムにおける、ストレージへのアクセスについて検討した。その結果、このようなコンピュータシステムでは、ファイルシステムの構成やアプリケーションのアクセスパターンに依存して、ある時間帯にある特定のRAID装置の記憶領域(以下、ホットスポットと言う)にアクセスが集中する傾向があることを見出した。ホットスポットのような負荷は、アクセス性能の向上におけるボトルネックとなる。
図10及び図11は、本発明者が検討した本発明の背景を示す図である。
図10は、ネットワークストレージシステム(以下、ネットワークストレージ)におけるパケットキャプチャの結果を示す図である。図10において、横軸は、ディスク装置のセグメントID(1ギガバイト単位)を示し、縦軸は、対応するセグメントIDへの書込み又は読出し動作が行われた回数(アクセス回数)を示す。セグメントは論理ボリュームの分割単位であり、その大きさは図10では1ギガバイトである(図11においても同じ)。
図10は、アクセス条件として、ext3ファイルシステムにおいてジャーナルマウント状態で、ストレージのディスク装置へのアクセス(I/Oアクセス)を実行した場合について示す。図10から判るように、セグメントIDが“1”即ち論理ボリュームの最初の1ギガバイトに対して、書き込みのアクセスが20万回近く集中している。それ以外のセグメントでは、アクセスが5万回以下である。
この例は、ディスク装置へのアクセスの集中がファイルシステムの構成に依存する場合を示す。ファイルシステムによっては、その管理データ(例えば、メタデータ等)を先頭の記憶領域に持つ。図10は、この特定領域にアクセスが集中する状況が発生する例である。
図11は、ネットワークストレージへのI/Oアクセスの状態を、時間帯毎に示す図である。図11において、横軸は、ディスク装置のセグメントID(1ギガバイト単位)を示し、縦軸は、アクセスされたブロック数をそのアクセスの時間帯と共に示す。例えば、アクセスのパターンAは、セグメントIDが“100”の領域について、時間帯毎にアクセスされたブロック数の変化(アクセスパターン)を示す。
図11は、アクセス条件として、ある1個のアプリケーションを実行し、500ギガバイトの容量のネットワークストレージでの負荷状態を監視した場合について示したものである。監視は、アクセス装置のネットワークアクセスのコピーをネットワークスイッチで生成し、パケット解析装置に転送することによって行った。
図11から判るように、特定の時間帯に、特定の一部の領域にI/Oアクセスが集中して発生している。これは、動作しているアプリケーションが使用する特定の領域へのアクセスが集中したことによる。
なお、この明細書においては、図11に示すように、I/Oアクセスが集中して発生している領域(点線の枠で示す)を、ホットスポットという。図11に示すアクセスの時間変化のパターンA〜Fにおいて、例えば、パターンB、C、Eの各々における記号△又は◎で表される領域がホットスポットである。
以上のように、本発明者の検討によれば、アクセスの集中は、ファイルシステムやアプリケーション等の種々の条件に依存しているが、当該条件に応じて種々の集中の形態が存在する。また、ホットスポットは、図11に矢印で示すように、固定されておらず移動し、その移動時間も固定されていない。例えば、1日単位では移動しないが、1週間単位で移動する場合がある。本発明者は、このようなアクセスの集中の形態を利用することにより、データを効率良くキャッシュすれば、更にアクセスの性能を向上することができると考えた。
本発明は、ディスクへのアクセスが集中する領域を特定して、その領域をキャッシュする分散ディスクキャッシュシステムを提供することを目的とする。
また、本発明は、ディスクへのアクセスが集中する領域を特定して、その領域をキャッシュする分散ディスクキャッシュ方法を提供することを目的とする。
この分散ディスクキャッシュシステムは、ストレージ装置と、キャッシュサーバと、アクセス装置と、監視装置と、情報管理テーブルと、情報蓄積テーブルとを備える。ストレージ装置は、複数のデータ領域に分割される。キャッシュサーバは、前記ストレージ装置の1又は複数のデータ領域をキャッシュする。アクセス装置は、ネットワークを介して、前記ストレージ装置又はキャッシュサーバにアクセスする。監視装置は、前記ネットワークに接続され、前記アクセス装置からの前記ストレージ装置への前記ネットワークを介してのアクセスを監視し、前記アクセスの集中度が予め定められた第1の閾値を超えるデータ領域を、前記キャッシュサーバにキャッシュする。情報管理テーブルは、前記データ領域毎に設定され、前記キャッシュサーバにキャッシュされた前記データ領域のキャッシュの継続を制御する制御情報を格納する。情報蓄積テーブルは、前記アクセス装置からの前記ストレージ装置へのアクセスを監視した結果を統計処理することにより生成した統計情報を格納する。前記監視装置は、前記キャッシュサーバにキャッシュされた前記データ領域の制御情報を前記情報管理テーブルに格納し、所定の時間帯毎に又は所定の単位時間毎に前記ストレージ装置の前記データ領域についての前記統計情報を更新し、前記データ領域毎に設定された前記制御情報に従って、更新された前記統計情報に基づいて、前記ストレージ装置の前記データ領域への前記アクセスの集中度が前記第1の閾値を超えるか否かを監視し、前記キャッシュされたデータ領域への前記アクセスの集中度が予め定められた第2の閾値を下回るか否かを監視する。
また、この分散ディスクキャッシュ方法は、分散ディスクキャッシュシステムにおける分散ディスクキャッシュ方法である。分散ディスクキャッシュシステムは、ストレージ装置と、キャッシュサーバと、アクセス装置と、監視装置と、情報管理テーブルと、情報蓄積テーブルとを備える。ストレージ装置は、複数のデータ領域に分割される。キャッシュサーバは、前記ストレージ装置の1又は複数のデータ領域をキャッシュする。アクセス装置は、ネットワークを介して、前記ストレージ装置又はキャッシュサーバにアクセスする。情報管理テーブルは、前記データ領域毎に設定され、前記キャッシュサーバにキャッシュされた前記データ領域のキャッシュの継続を制御する制御情報を格納する。情報蓄積テーブルは、前記アクセス装置からの前記ストレージ装置へのアクセスを監視した結果を統計処理することにより生成した統計情報を格納する。監視装置は、前記アクセス装置からの前記ストレージ装置への前記ネットワークを介してのアクセスを監視し、前記アクセスの集中度が予め定められた第1の閾値を超えるデータ領域を、前記キャッシュサーバにキャッシュし、前記キャッシュサーバにキャッシュされた前記データ領域の制御情報を前記情報管理テーブルに格納し、所定の時間帯毎に又は所定の単位時間毎に前記ストレージ装置の前記データ領域についての前記統計情報を更新し、前記データ領域毎に設定された前記制御情報に従って、更新された前記統計情報に基づいて、前記ストレージ装置の前記データ領域への前記アクセスの集中度が前記第1の閾値を超えるか否かを監視し、前記キャッシュされたデータ領域への前記アクセスの集中度が予め定められた第2の閾値を下回るか否かを監視する。
この分散ディスクキャッシュシステム及び分散ディスクキャッシュ方法によれば、データ領域毎に設定された制御情報に従って、更新された統計情報に基づいて、アクセス装置からのストレージ装置へのアクセスの集中度が第1の閾値を超えるデータ領域が、キャッシュサーバにキャッシュされ、アクセスの集中度が第2の閾値を下回るデータ領域が、キャッシュを解消される。これにより、データ領域毎に設定された制御情報に従って、アクセスの集中度が閾値を超えてホットスポットとなったデータ領域を、オペレータが介在することなく、動的に抽出してキャッシュすることができ、また、キャッシュを解消することができる。従って、ファイルシステムやアプリケーション等の種々の条件に依存してアクセスの集中が種々の形態で発生しても、また、ホットスポットが変動しても、ホットスポットを抽出してキャッシュすることができ、また、キャッシュを解消することができる。この結果、データを効率良くキャッシュし、また、キャッシュを解消して、ディスク装置のアクセスの性能を向上することができる。
図1は、分散ディスクキャッシュシステムの構成を示す図である。図2は、図1に示すストレージ装置の論理ボリュームの構成を示す図である。
分散ディスクキャッシュシステムは、ストレージ装置1、キャッシュ管理サーバ2、アクセス装置3、パケット解析装置4、1又は複数のキャッシュサーバ5、これらの間を接続するネットワーク6を備える。
ストレージ装置1は、複数のストレージサーバ10と、複数のディスク装置11を備えるストレージ装置である。各々のストレージサーバ10は、少なくとも1個のディスク装置11を備える。ストレージサーバ10は、各々、ネットワーク6を介して、相互に接続される。ディスク装置11は、例えばRAID等の磁気ディスクからなる大容量の記憶装置である。ストレージ装置1は、後述するように、仮想的に(論理的に)複数のデータ領域に分割される。1個のデータ領域は、後述するように、例えば論理ボリュームに含まれるセグメントにより構成される。
ストレージ装置1において、アクセス装置3からのデータ読出し要求又は書込み要求に応じて、ストレージサーバ10は、対応するディスク装置11を制御する。即ち、ストレージサーバ10は、対応するディスク装置11について、要求されたデータの読出し又は書込みを行う。
複数のストレージサーバ10を区別する場合には、例えばストレージサーバ10Aと表すこととする。これは、ディスク装置11、キャッシュサーバ5、キャッシュ51についても、同様である。なお、ストレージサーバ10Aを“ストレージサーバA”と表示している。これは、キャッシュサーバ5、キャッシュ51についても、同様である。また、ディスク装置11Aを“RAID−A”と表示している。
キャッシュサーバ5は、キャッシュ51を備えるサーバ(サーバ装置)であり、キャッシュ51にストレージ装置1の1又は複数のデータ領域をキャッシュする。キャッシュ51は、ディスク装置11よりも十分に高速の記憶装置、例えば半導体メモリ、ディスク装置等である。
キャッシュサーバ5として、複数のキャッシュサーバ5A及び5Bがネットワーク6に接続されている。キャッシュサーバ5は、キャッシュ管理サーバ2のキャッシュ領域の割当て要求に応じて、キャッシュ51に、ディスク装置11のセグメントをキャッシュするための領域(キャッシュ領域)を確保する。この例では、キャッシュされるデータ領域は、例えばホットスポットとして検出されたセグメントである。
なお、この例では、キャッシュサーバ5Aがプライマリのキャッシュサーバとされ、キャッシュサーバ5Bがセカンダリのキャッシュサーバとされる。これにより、キャッシュサーバ5をミラーリングして二重化することができる。更に、プライマリのキャッシュ51Aを高速の半導体メモリとし、セカンダリのキャッシュ51Bを高速のRAIDとするようにしても良い。このような冗長化構成を採用することにより、キャッシュサーバの信頼性を高めることができる。
キャッシュ管理サーバ2は、キャッシュサーバ5を管理するサーバ(サーバ装置)である。具体的には、キャッシュ管理サーバ2は、キャッシュサーバ5のキャッシュ51における記憶領域(キャッシュ領域)の割当及び開放を管理する。例えば、キャッシュ管理サーバ2は、ストレージサーバ10からのキャッシュ領域の割当て要求に対応して、要求されたキャッシュ領域の割当てを行う。また、キャッシュ管理サーバ2は、ストレージサーバ10からのキャッシュ領域の開放要求に対応して、開放要求されたキャッシュ領域の開放を行う。
アクセス装置3は、クライアントがアプリケーション(アプリケーションプログラム)を実行するコンピュータ(クライアント装置)である。アプリケーションの実行のために、アクセス装置3は、ネットワーク6を介して、ストレージ装置1及びキャッシュサーバ5にアクセスする。アクセス装置3は、実際には、図2に示すように、複数のアクセス装置3を含む。複数のアクセス装置3を区別する場合には、例えばアクセス装置Aと表すこととする。
図2において、各々のアクセス装置3は、少なくとも1個のアプリケーション(アプリ)を備える。例えば、アクセス装置Aの備えるアプリケーションをアプリAと表すこととする。ストレージ装置1において、仮想的な単位記憶装置である論理ボリュームは、アプリケーション毎に割当てられる。例えば、アプリAに割当てられた論理ボリュームを、論理ボリュームAと表すこととする。実際には、複数のストレージ装置1の複数の物理ディスクの一部領域を結合して、1個の論理ボリュームを作っている。
このように、アプリケーション毎に論理ボリュームを割当てることにより、パケット解析装置4が、論理ボリュームを単位として、アクセスを監視することができる。また、その監視結果に基づいて、例えば論理ボリュームに含まれるセグメントを単位として、キャッシュの要否を制御することができる。
パケット解析装置4は、例えば、ネットワークスイッチによりネットワーク6に接続される。パケット解析装置4は、ネットワークスイッチによりネットワーク6に接続されたアクセス装置3の送受信パケットを監視する監視装置である。即ち、パケット解析装置4は、アクセス装置3からのストレージ装置1へのネットワーク6を介してのアクセスを監視し、この監視結果に基づいて、例えばアクセスの集中度が第1の閾値を超えるデータ領域(例えば、セグメント)を、キャッシュサーバ5にキャッシュする(格納する)。パケット解析装置4は、例えば、監視するパケットを受信するための通信インタフェース、受信したパケットを保持するバッファ領域、パケット解析処理及び統計処理を実行するCPU及びメモリ等を備える。
アクセスの集中度としては、種々のパラメータを用いることができる。例えば、所定の時間における、データ領域当たりのアクセスの回数、データ領域当たりのアクセスされたブロック数、データ領域当たりの読出し又は書き込みのパケット数等が用いられる。アクセスの集中度として用いられるパラメータに応じて、第1の閾値が定まる。
第1の閾値は、キャッシュサーバ5にキャッシュすべきデータ領域を定める値であり、ホットスポットを定義する値である。第1の閾値は、過去のアクセス状況を分析することなどで定めることができ、予め定められる。アクセスの集中度としてパケット数を用いる場合、第1の閾値は、詳しくは後述するように、例えば“500”とされる。
また、パケット解析装置4は、アクセス装置3からのキャッシュサーバ5へのネットワーク6を介してのアクセスを監視する。この監視結果に基づいて、パケット解析装置4は、キャッシュサーバ5にキャッシュされたデータ領域へのアクセスの集中度が第2の閾値を下回る場合に、キャッシュされたデータ領域のキャッシュサーバ5へのキャッシュを解消する。
第2の閾値は、キャッシュサーバ5にキャッシュしたデータ領域の解消(キャッシュの解消)を定める値であり、データ領域をホットスポットではなくする値である。第2の閾値は、過去のアクセス状況を分析することなどで定めることができ、予め定められる。アクセスの集中度としてパケット数を用いる場合、第2の閾値は、詳しくは後述するように、例えば“700”とされる。
パケット解析装置4は、情報蓄積テーブル41と、情報管理テーブル42とを備える。情報蓄積テーブル41及び情報管理テーブル42は、パケット解析装置4が備える記憶装置に設けられ、パケット解析装置4により作成される。
パケット解析装置4は、前記監視によりアクセス装置3の送受信パケットを収集し、監視結果としての前記収集したパケットについて統計処理して、統計情報を生成する。統計処理は、例えば、図11に示すように、所定の時間帯毎に又は所定の単位時間毎に、セグメントID毎のアクセスされたブロック数を求めることである。統計情報は、情報蓄積テーブル41に格納される。情報蓄積テーブル41については、図3(B)を参照して後述する。情報蓄積テーブル41は、統計情報に応じて逐次更新される。
更に、パケット解析装置4は、情報蓄積テーブル41の統計情報に基づいて、ホットスポットとなったデータ領域を特定し、当該データ領域毎に、キャッシュ制御状態を情報管理テーブル42に設定する。情報管理テーブル42については、図3(C)を参照して後述する。情報管理テーブル42は、キャッシュ制御状態に応じて逐次更新される。
具体的には、パケット解析装置4は、統計情報が格納された情報蓄積テーブル41に基づいて、ストレージ装置1へのアクセスの集中度が第1の閾値を超えるか否かを監視する。この結果に基づいて、パケット解析装置4は、ホットスポットを検出し、検出したホットスポットについての情報を情報管理テーブル42に格納する。パケット解析装置4は、情報管理テーブル42に基づいて、ホットスポットとされたデータ領域をキャッシュサーバ5にキャッシュする。
また、パケット解析装置4は、情報蓄積テーブル41に基づいて、キャッシュされたデータ領域へのアクセスの集中度が第2の閾値を下回るかを監視する。この結果に基づいて、パケット解析装置4は、解除すべきホットスポットを検出し、検出した解除すべきホットスポットについての情報を情報管理テーブル42から削除する。パケット解析装置4は、情報管理テーブル42に基づいて、ホットスポットではなくなったデータ領域をキャッシュサーバ5から消去する。
ネットワーク6は、例えば、ギガビット・イーサネット(IEEE802.3z標準、イーサネットは登録商標)により構成される。パケット解析装置4は、ネットワーク6に含まれるギガビット・イーサネットスイッチのようなネットワーク機器(図示せず)から、ストレージサーバ10のパケットを監視する。具体的には、ネットワーク6は、前記ネットワーク機器におけるアクセス装置3との通信ポートを監視するミラーリングポートを備える。パケット解析装置4は、その通信インタフェースがミラーリングポートに接続されることにより、パケットを解析する。
図3(A)は、ディスク装置11のディスクデータ構造を示す図である。図3(B)は、パケット解析装置4が統計収集する情報蓄積テーブル41を示し、また、図3(C)は、パケット解析装置4が管理する情報管理テーブル42を示している。
ディスク装置11においては、図3(A)に示すように、スライス(又はセグメント)110毎に、データ領域が管理される。1個のディスク装置11は、複数のスライスを含む。ディスク装置11におけるスライスの数はディスク装置11の容量に依存する。
1個のスライス110は、データ管理の単位であり、例えば1ギガバイトとされる。1個のスライス110は、例えばデバイスメタ情報111、スライスアクセスカウンタ112、スライスメタ情報113、スライスデータ114を備える。
デバイスメタ情報111は、当該ディスク装置11の全体情報であり、その記憶領域である。スライスアクセスカウンタ112は、当該スライス110へのアクセスの回数であり、その記憶領域である。スライスメタ情報113は、データ管理情報であり、その記憶領域である。スライスデータ114は、当該スライス110に格納されたデータであり、その記憶領域である。
前記データ管理情報は、キャッシュ制御情報と、キャッシュサーバ5のIPアドレスと、キャッシュ領域情報とを含む。キャッシュ制御情報は、当該スライス110についてのキャッシュが有効又は無効であることを示す。キャッシュが有効である場合は、当該スライス110がキャッシュサーバ5にキャッシュされていることを示し、キャッシュが無効である場合は、当該スライス110がキャッシュサーバ5にキャッシュされていないことを示す。キャッシュが有効である場合に、キャッシュサーバ5のIPアドレスと、キャッシュ領域情報とが格納される。キャッシュ領域情報は、例えば当該キャッシュサーバ5における当該キャッシュ領域のアドレスである。
なお、「スライスxメタ情報」と言う場合、「x」は、整数であり、スライスの数を先頭論理アドレスから順に割振った場合における当該スライスの順番を表す番号である。例えば、図3(A)において、「スライス1」のスライスメタ情報113を「スライス1メタ情報」と表示しており、また、xが2以上については図示を省略している。スライスxデータも、同様であり、スライスxメタ情報が当該データ領域の情報を管理する。なお、スライスxメタ情報及びスライスxデータにおけるxの値は、ディスク装置11の容量に依存する。
情報蓄積テーブル41は、図3(B)に示すように、セグメント毎に、論理ボリューム、アクセスの種別、サイズ等の情報を格納する。セグメントは、当該アクセスの対象とされたデータ領域である。従って、この例では、アクセスの有無は、セグメントを単位として管理される。論理ボリュームは、当該セグメントが属するデータ領域である。論理ボリュームは当該論理ボリュームのIDを用いて表され、セグメントは当該セグメントのIDを用いて表される。アクセスの種別は、読出し処理(read)又は書込み処理(write)である。サイズは、当該アクセスによりアクセスされたデータのサイズである。
例えば、IDが“A”である論理ボリュームに属するIDが“SA”であるセグメントについて、“64M”バイトのサイズのデータの“読出し処理”が発生したとする。この場合、図3(B)に示すように、論理ボリュームID“A”、セグメントID“SA”、アクセス種別“read”、サイズ“64M(バイト)”が、その発生時刻(図示せず)と共に、記録される。パケット解析装置4は、これらの情報を解析して、ホットスポットを検出する。即ち、情報蓄積テーブル41は、ホットスポットの検出のための情報(統計情報)を、セグメント毎に格納する。
なお、この例は、説明の簡単化のために、セグメントをアクセスの有無の管理、キャッシュの単位等における単位データ領域として、説明している。しかし、セグメントは1ギガバイトと大きいので、実際には、セグメントよりも小さいデータ領域が、アクセスの有無の管理、キャッシュの単位等における単位データ領域として用いられる。単位データ領域の大きさは、例えば64キロバイトとされる。この例では、ストレージ装置1は、各々が64キロバイトの大きさの複数の単位データ領域に分割され管理される。情報蓄積テーブル41は、実際には、単位データ領域の識別情報をも格納し、当該単位データ領域毎に、アクセス種別、サイズ、発生時刻等を格納する。後述する情報管理テーブル42においても、実際には、同様に単位データ領域の識別情報をも格納し、当該単位データ領域毎に、必要な情報を格納する。このように単位データ領域を小さい領域とすることにより、キャッシュに起因するオーバーヘッドを減らすことができる。
情報管理テーブル42は、図3(C)に示すように、セグメント毎に、論理ボリューム、ロジック制御、キャッシュ容量等を格納する。セグメントは、パケット解析装置4によりホットスポットとして検出されたデータ領域である。論理ボリュームは、当該セグメントが属するデータ領域である。論理ボリュームは当該論理ボリュームのIDを用いて記述され、セグメントは当該セグメントのIDを用いて記述される。ロジック制御は、当該ホットスポットとして検出されたデータ領域が依然としてホットスポットであるか否かを調べるための情報(従って、当該キャッシュの継続を制御する情報)である。キャッシュ容量は、当該キャッシュのために獲得すべきキャッシュメモリの容量である。
例えば、IDが“A”である論理ボリュームに属するIDが“SA”であるセグメントが、ホットスポットとして検出されたとする。この場合、図3(C)に示すように、論理ボリュームID“A”、セグメントID“SA”、ロジック制御“10分”、キャッシュ容量“256M(バイト)”が、その検出時刻(図示せず)と共に、情報管理テーブル42に、ホットスポットとして記録される。
パケット解析装置4は、情報管理テーブル42に基づいて、論理ボリューム“A”のセグメント“SA”についてキャッシュ指示する。このキャッシュ指示の際、対応するストレージサーバ10に対し、情報管理テーブル42に基づいて、キャッシュ容量情報(図3(C)の例では、256メガバイト)が通知される。
ロジック制御は、セグメント(又は、論理ボリューム)に応じて、経験的に定めることができ、予め定められる。キャッシュ容量も、同様である。セグメントIDが例えば“SA”であるとすると、ロジック制御として“所定の検出時間”が格納され、キャッシュ容量として“256M(バイト)”が格納される。この検出時間は、例えば10分である。これらの値は、予めパケット解析装置4が保持する。
なお、セグメントIDが例えば“SC”であるとすると、ロジック制御として“(キャッシュ)しない”が格納される。これにより、ユーザは、データをキャッシュしないことを選択することができる。
パケット解析装置4は、当該キャッシュの後、セグメントIDが“SA”であるセグメントについてのキャッシュ制御のために、情報蓄積テーブル41に基づいて、その後の“10分”におけるアクセスの集中度を解析する。そして、パケット解析装置4は、当該解析に基づいて、当該セグメントが依然としてホットスポットであるか否かを判断する。パケット解析装置4は、当該セグメントが最早ホットスポットでないと判断した場合、キャッシュ解除を対応するストレージサーバ10に通知する。この通知を受信したストレージサーバ10は、キャッシュ管理サーバ2にキャッシュ領域の開放を要求する。
このように、パケット解析装置4は、ホットスポットとされたセグメントに応じた所定の検出時間を用いて、当該セグメントがホットスポットであるか否かを継続して監視する。これにより、突発的なアクセスについては、ホットスポットとして検出することを防止することができるので、キャッシュに起因するオーバーヘッドを回避して、ネットワーク負荷の増加を抑えることができる。
パケット解析装置4は、所定の監視時間毎に、情報蓄積テーブル41に基づいて、ストレージ装置1に対するアクセスの集中度が第1の閾値を超えるデータ領域を監視する。パケット解析装置4は、アクセスの集中度が第1の閾値を超えると、当該データ領域がディスク装置11のいずれのデータ領域であるかを特定し、特定したデータ領域を情報管理テーブル42に登録する。
パケット解析装置4は、アクセスの集中度が第1の閾値を超えるデータ領域をキャッシュサーバ5にキャッシュするキャッシュ指示をストレージ装置1に送信する。具体的には、パケット解析装置4は、特定されたデータ領域を含むディスク装置11を管理するストレージサーバ10に対し、特定されたデータ領域のキャッシュ指示を行う。
パケット解析装置4は、特定されたデータ領域のデータがキャッシュサーバ5の割当てられた記憶領域(キャッシュ領域)にキャッシュされた後、前記所定の監視時間毎に、情報蓄積テーブル41に基づいて、アクセスの集中度が第1の閾値を超えた後に、第2の閾値を下回るかを監視する。パケット解析装置4は、アクセスの集中度が第2の閾値を下回った場合、ストレージサーバ10にキャッシュ解除(キャッシュ領域の開放)を指示する。
ストレージサーバ10は、パケット解析装置4からキャッシュ指示を受信すると、これに応じて、特定されたデータ領域をキャッシュする。このため、ストレージサーバ10は、特定されたデータ領域(のデータ)を、当該ディスク装置11から読み出して、キャッシュサーバ5に転送する。
このデータ転送に先立って、ストレージサーバ10は、前記キャッシュ指示を受信すると、これに応じて、キャッシュ管理サーバ2にキャッシュ領域の割当て要求を行う。キャッシュ管理サーバ2は、割り当て要求を受信すると、これに応じて、キャッシュサーバ5における記憶領域を割り当て、この後、当該割当て要求の応答確認を送信元のストレージサーバ10に返信する。ストレージサーバ10は、割当て要求の応答確認を受信すると、これに応じて、特定されたデータ領域のデータをキャッシュサーバ5の割当てられたキャッシュ領域へ転送する。ストレージサーバ10は、このデータ転送の後、ディスク装置11のデータ領域情報にキャッシュ制御の設定、キャッシュ先のキャッシュサーバ5のアドレス情報を格納する。
アクセス装置3からの入出力アクセスにおいて、ストレージサーバ10は、前記データ領域情報に基づいて、キャッシュヒットするか否かを調べる。キャッシュヒットした場合、ストレージサーバ10は、アクセス装置3にキャッシュサーバ5にアクセスするように応答を返す。また、ストレージサーバ10は、キャッシュヒットしなかった場合、ディスク装置11における対応するデータ領域から当該データを読出し、前述のキャッシュ領域の割当て要求、データ転送、データ領域情報の更新を行った後、アクセス装置3にキャッシュサーバ5にアクセスするように応答を返す。
キャッシュ管理サーバ2は、ストレージサーバ10からのキャッシュ領域の割当て要求を受信すると、これに応じて、キャッシュ領域を割当てて、これを管理する。キャッシュ管理サーバ2は、キャッシュ領域を割当てたキャッシュサーバ5に対して、ストレージサーバ10からのデータを受信して、当該キャッシュ領域に書き込むように指示する。これと共に、キャッシュ管理サーバ2は、キャッシュ領域の割当てが設定された際、ストレージサーバ10にキャッシュ領域の割当て完了通知を行う。
また、キャッシュ管理サーバ2は、ストレージサーバ10からのキャッシュ領域の開放要求を受信すると、これに応じて、キャッシュサーバ5に対して当該キャッシュ領域の開放を指示する。これと共に、キャッシュ管理サーバ2は、ストレージサーバ10へキャッシュ領域のデータを転送するように、キャッシュサーバ5に指示する。
キャッシュサーバ5は、キャッシュ管理サーバ2のキャッシュ領域の割当て指示を受信すると、これに応じて、キャッシュ51上において、当該指示されたキャッシュ領域を確保する。この後、キャッシュサーバ5は、ストレージサーバ10から特定されたデータ領域のデータを受信する。
アクセス装置3からの入出力アクセスにおいて、キャッシュヒットした場合、キャッシュサーバ5は、アクセス装置3に対してデータ転送を行う。キャッシュヒットしなかった場合、キャッシュサーバ5は、ディスク装置11からキャッシュ51上にキャッシュした後に、アクセス装置3に対してデータ転送を行う。
以下、図4乃至図7に従って、図1の分散ディスクキャッシュシステムにおけるホットスポットの検出処理と、キャッシュの割当及び開放等の制御処理とについて説明する。
図4は、パケット解析装置4が、アクセス装置3の入出力パケットを監視する処理を示す。
アクセス装置3AのアプリAが起動されると、アプリAは、ネットワーク6を介して、ストレージサーバ10Aに対し、データの読出し又は書込み要求を行う(T1)。この要求を受信したストレージサーバ10Aは、対応するディスク装置11Aについて、データの読出し又は書込みを行う(T2)。
同様にして、起動されたアクセス装置3BのアプリBがストレージサーバ10Bとの間でデータの読出し要求又は書込み要求を行い(T3)、ストレージサーバ10Bがディスク装置11Bについてデータ読出し又は書込みを行う(T4)。アクセス装置3CのアプリCがストレージサーバ10Cとの間でデータの読出し要求又は書込み要求を行い(T5)、ストレージサーバ10Cがディスク装置11Cについてデータ読出し又は書込みを行う(T6)。
このようなアクセス処理と並行して、パケット解析装置4は、ネットワーク6を介したパケットモニタリングにより、T1においてアクセス装置3Aが送受信したパケットと同一のパケット(アクセス装置3Aについてのモニタパケット)PAを取得し(T7)、その内容を解析する。同様にして、パケット解析装置4は、アクセス装置3BについてのモニタパケットPBを取得し(T8)、アクセス装置3CについてのモニタパケットPCを取得し(T9)、これらの内容を解析する。
パケット解析装置4は、以上の解析の結果について統計処理を行い、その結果である統計情報を情報蓄積テーブル41に格納する。これにより、情報蓄積テーブル41が作成され、又は、逐次更新される。
図5は、ホットスポット検出及びキャッシュ制御の動作概要を示す。図5は、パケット解析装置4が、ストレージサーバ10のディスク装置11に対するアクセスにおいて、ホットスポットを検出し、キャッシュ指示を行う場合の動作を示す。
例えば、アクセス装置3BのアプリBが起動されると、アプリBにより、論理ボリュームB(RAID−B)であるディスク装置11Bに対し、頻繁にアクセスが生じる。例えば、アプリBがストレージサーバ10Bにあるデータの書込み要求を行い(T10)、ストレージサーバ10Bがディスク装置11Bについて当該データの書込みを行う(T11)。また、アプリBがストレージサーバ10Bに当該データの読出し要求を行うと、ストレージサーバ10Bがディスク装置11Bについて当該データの読出しを行い(T12)、読み出した当該データをアクセス装置3のアプリBに送信する(T13)。これらのアクセスはストレージサーバ10Bの特定のスライスに集中するので、当該スライスはホットスポットHとなる。
パケット解析装置4は、アクセス装置3BについてのモニタパケットPBを取得して解析し、その解析結果である統計情報を情報蓄積テーブル41に格納し、これを逐次更新する。そして、パケット解析装置4は、情報蓄積テーブル41に基づいて、当該スライスへのアクセスの集中度が第1の閾値を超えたことを検出して、当該スライスをホットスポットHとして検出する(T14)。ホットスポットHは、例えば図11のパターンBにおけるホットスポットである。パケット解析装置4は、検出したホットスポットHを所定の情報と共に情報管理テーブル42に登録し、当該ホットスポットHを管理するストレージサーバ10Bを検出し、検出したストレージサーバ10Bに対して、キャッシュ指示を送信する(T15)。
キャッシュ指示を受信したストレージサーバ10Bは、キャッシュサーバ5におけるキャッシュ領域の割当要求を、当該キャッシュ領域のサイズと共に、キャッシュ管理サーバ2に対して送信する(T16)。
この割当要求を受信したキャッシュ管理サーバ2は、キャッシュ領域の割当指示を、当該キャッシュ領域のサイズと共に、キャッシュサーバ5Aに対して送信し(T17)、また、キャッシュ領域の割当指示を、当該キャッシュ領域のサイズと共に、キャッシュサーバ5Bに対して送信する(T18)。
例えば、この割当指示を受信したキャッシュサーバ5Aは、キャッシュ51A上に割当指示されたサイズのキャッシュ領域52Aを確保し、そのアドレス(キャッシュ領域情報)と共に、キャッシュ管理サーバ2に通知する。キャッシュサーバ5Bも同様である。この後、キャッシュ管理サーバ2は、ストレージサーバ10Bに対して、キャッシュ領域52A及び52Bの確保を通知する(T19)。この時、キャッシュ領域52Aと共に、これが属するキャッシュサーバ5AのIPアドレス、及びキャッシュサーバ5Aにおけるキャッシュ領域情報も通知される。キャッシュ領域52Bについても同様である。
図6は、キャッシュサーバ5のキャッシュ領域割当後のI/Oアクセス処理の動作概要を示す。
キャッシュ領域確保の通知を受信したストレージサーバ10Bは、当該ホットスポットHとして検出されたディスク装置11Bのスライスのデータを、キャッシュのために読出す(T20)。この後、ストレージサーバ10Bは、読出したデータをプライマリディスクであるキャッシュサーバ5Aに転送する(T21)。更に、ストレージサーバ10Bは、対応するディスク装置11Bのスライスxメタ情報(図3(A)参照)に、キャッシュの有効(当該スライスがキャッシュされたことを示す情報)、キャッシュサーバ5AのIPアドレス及びキャッシュ領域情報、キャッシュサーバ5BのIPアドレス及びキャッシュ領域情報を書込む。キャッシュサーバ5A及び5BのIPアドレス及びキャッシュ領域情報は、キャッシュ領域確保の通知と共に受信されたものである。
キャッシュサーバ5Aは、転送されたデータを受信すると、これをキャッシュ領域52Aに書込む。この後、キャッシュサーバ5Aは、キャッシュ領域52Aに書込んだデータを、セカンダリディスクであるキャッシュサーバ5Bに転送する(T22)。キャッシュサーバ5Bは、転送されたデータを受信すると、これをキャッシュ領域52Bに書込む。これにより、当該ホットスポットHのデータはキャッシュされ、ミラーリングされる。
この後、アクセス装置3が、ストレージサーバ10Bに対してI/O要求を送信する(T23)。ストレージサーバ10Bは、このI/O要求に対して、以下のような処理を行う。
即ち、アクセス処理が読出し処理の場合、ストレージサーバ10Bは、読み出すべきスライスから、そのスライスメタ情報113を読出し、これに基づいて当該スライスについてキャッシュが有効であるか否かを調べる。キャッシュが有効である場合、ストレージサーバ10Bは、アクセス装置3に対して、当該データをキャッシュサーバ5Aから読出すように応答を返す(T24)。
キャッシュが有効でない場合、ストレージサーバ10Bは、当該スライスのデータをキャッシュサーバ5Aに転送する(以下、キャッシュ転送と言う)。この後、ストレージサーバ10Bは、当該スライスのスライスメタ情報113にキャッシュが有効であることを書き込む。この後、ストレージサーバ10Bは、アクセス装置3に対して、当該データをキャッシュサーバ5Aから読出すように応答する(T24と同様のタイミング)。
一方、アクセス処理が書込み処理の場合、ストレージサーバ10Bは、書き込むべきスライスから、そのスライスメタ情報113を読出し、これに基づいて当該スライスについてキャッシュが有効であるか否かを調べる。キャッシュが有効である場合、ストレージサーバ10Bは、アクセス装置3に対して、データをキャッシュサーバ5Aに書込むように応答を返す(T24と同様のタイミング)。
キャッシュが有効でない場合、ストレージサーバ10Bは、当該スライスのデータをキャッシュサーバ5Aにキャッシュ転送する。この後、ストレージサーバ10Bは、当該スライスのスライスメタ情報113にキャッシュが有効であることを書き込む。この後、ストレージサーバ10Bは、アクセス装置3に対して、データをキャッシュサーバ5Aに書込むように応答する(T24と同様のタイミング)。
この通知を受けたアクセス装置3は、当該アクセスのアクセス先を、ディスク装置11Bからキャッシュサーバ5Aに切替える(T25)。即ち、アクセス装置3は、キャッシュサーバ5Aに対して当該I/O要求を送信し、データの読出し又は書込みを行う(T26)。
この後、キャッシュサーバ5Aにおいて読出し又は書込みされたデータは、キャッシュサーバ5Bにミラーリングされる。このミラーリングは、例えば当該読出し又は書込みの終了時に実行される。又は、このミラーリングは、例えば一定時間間隔で行うようにしても良く、読出し及び書込み回数が予め定められた回数を超えた場合に行うようにしても良い。
図7は、キャッシュサーバ5のキャッシュ領域開放の処理を示す。
キャッシュサーバ5にキャッシュしたホットスポットHに対するI/Oアクセスが、アクセス装置3とキャッシュサーバ5Aとの間において実行される(T30、T31)。例えば、このアクセスは、最初は極めて頻繁に実行されるが、その後急激に減少する。
パケット解析装置4は、情報蓄積テーブル41に基づいて、当該スライスへのアクセスの集中度が第2の閾値を下回ったことを検出して、当該スライスがホットスポットではないことを検出する(T32)。この検出処理は、情報管理テーブル42に登録されたロジック制御における所定の単位時間毎に実行される。
そこで、パケット解析装置4は、ストレージサーバ10Bに対して、ホットスポットHである当該スライスのキャッシュの解除を通知する(T33)。キャッシュの解除を受信したストレージサーバ10Bは、キャッシュ管理サーバ2に対し、キャッシュの解除を通知する(T34)。キャッシュの解除を受信したキャッシュ管理サーバ2は、当該キャッシュの解除を、キャッシュサーバ5Aに通知し(T35)、また、キャッシュサーバ5Bに通知する(T36)。
この後、キャッシュサーバ5Aは、キャッシュ領域52A(図6参照)の内容であるキャッシュデータを、キャッシュサーバ5Bのキャッシュ領域52B(図6参照)に格納する(T37)。なお、T37の処理は省略するようにしても良い。この後、キャッシュサーバ5Aは、キャッシュ領域52Aの内容を、ストレージサーバ10Bに転送する(T38)。これを受信したストレージサーバ10Bは、受信したデータを、ディスク装置11Bの対応するスライスに書込む(T39)。
この後、ディスク装置11Bは、データ領域110の対応するスライスメタ情報113に、当該スライスについてのキャッシュが無効であることを書込み、この書込みの終了をストレージサーバ10Bに通知する。この書込み終了を受信したストレージサーバ10Bは、キャッシュ領域52Aの内容のディスク装置11Bへの書込み完了通知を、キャッシュサーバ5Aに通知する。
この完了通知を受信したキャッシュサーバ5Aは、キャッシュサーバ5Bに対して、キャッシュ領域52Bの開放を通知する。この開放の通知を受信したキャッシュサーバ5Bは、キャッシュ領域52Bを開放する。この後、キャッシュサーバ5Bは、キャッシュ領域52Bの開放の完了をキャッシュサーバ5Aに通知する。これを受信したキャッシュサーバ5Aは、キャッシュ領域52Aを開放し、この後、キャッシュ管理サーバ2に対し、キャッシュ領域52A及び52Bの開放の完了を通知する。
この後、例えば、キャッシュ管理サーバ2は、キャッシュ領域52A及び52Bの開放の完了を、パケット解析装置4に通知する。これに応じて、パケット解析装置は、情報管理テーブル42からホットスポットHを削除する。
図8は、パケット解析装置4のホットスポット判断処理フローを示す。
パケット解析装置4は、ネットワーク6に含まれるネットワークスイッチ等において、アクセス装置3との通信インタフェースのミラーポートから受信されるパケットを待つ(ステップS1)。パケットが受信されない場合、ステップS1を繰り返す。
パケットが受信された場合、パケット解析装置4は、取得したモニタパケットを解析して、論理ボリュームID、セグメントID等のアクセス先の情報、読出し処理及び書込み処理のアクセス種別、パケットサイズ等の情報を読取り、情報蓄積テーブル41に保存する(ステップS2)。
パケット解析装置4は、直前のホットスポットの検出(ステップS4〜S11の処理)から、当該セグメント(又は論理ボリューム)についての所定の検出時間が経過したか否かを監視する(ステップS3)。セグメントIDが“SA”であるとすると、所定の検出時間は10分である。所定の検出時間が経過していない場合、ステップS1以下を繰り返す。なお、当該セグメントが情報管理テーブル42に登録されていなければ、所定の検出時間は経過していないものとされる。所定の検出時間が経過した場合、パケット解析装置4は、情報管理テーブル42に登録されているセグメント(以下、ホットスポット登録セグメント)について、所定の検出時間即ち直前の10分間における入出力パケット数iopsを求める(ステップS4)。
パケット解析装置4は、直前の所定の検出時間、即ち、10分間におけるiopsが500(図8においては、500iopsと表す)を下回るか否かを調べる(ステップS5)。即ち、この例における第2の閾値は500iopsである。iopsが500を下回る場合、パケット解析装置4は、iopsが500を下回ったセグメントを管理するストレージサーバ10に対し、ホットスポットHの解除を指令する(ステップS6)。即ち、パケット解析装置4は、キャッシュ解除を通知する。
パケット解析装置4は、情報管理テーブル42(以下、ホットスポット管理テーブル)から該当するセグメントを削除し(ステップS7)、ホットスポットとして、ホットスポット管理テーブルに登録されていないスライス即ちセグメント(以下、未登録セグメント)について直前の10分間におけるiopsを求める(ステップS8)。
パケット解析装置4は、直前の10分間におけるiopsが700を上回るか否かを調べる(ステップS9)。即ち、この例における第1の閾値は700iopsである。iopsが700を上回らない場合、ステップS1以下を繰り返す。
iopsが700を上回る場合、パケット解析装置4は、iopsが700を上回ったセグメントを管理するストレージサーバ10に対し、ホットスポットの設定指令を出す(ステップS10)。即ち、パケット解析装置4は、キャッシュ指示を通知する。該当ストレージサーバ10の応答確認後、パケット解析装置4は、ホットスポット管理テーブルへ該当するセグメントを登録(ステップS11)し、ステップS1以下を繰り返す。
なお、第1の閾値を第2の閾値よりも大きい値とすることにより、確実にホットスポットであると判断されるデータ領域をホットスポット管理テーブルに登録することができ、また、一旦ホットスポットとして検出したデータ領域のキャッシュを継続することができ、これにより、オーバーヘッドの発生を防止することができる。
図9は、分散ディスクキャッシュシステムの一実施例による他の構成を示す。図9は、図1の構成にキャッシュサーバ5Cを増設した構成である。図9の分散ディスクキャッシュシステムは、ストレージ装置1のディスク容量、アクセス装置3のI/O負荷に応じて、キャッシュサーバ5をネットワーク6に容易に増設することができる。なお、図9の分散ディスクキャッシュシステムにおいては、パケット解析装置4を1台としているが、アクセス装置3の数や、監視する通信ポートの数等に応じて、複数のパケット解析装置4を接続するようにしても良い。
本発明の一実施形態による分散ディスクキャッシュシステムの構成を示す図である。 ストレージ装置の論理ボリュームの構成を示す図である。 ディスク装置のディスクデータ構造、情報蓄積テーブル及び情報管理テーブルを示す図である。 パケット解析装置の入出力パケットを監視する動作概要を示す図である。 パケット解析装置のホットスポット検出及びキャッシュ制御の動作概要を示す図である。 キャッシュサーバのキャッシュ領域割当後のI/Oアクセス処理の動作概要を示す図である。 キャッシュサーバのキャッシュ領域開放後の動作概要を示す図である。 パケット解析装置のホットスポット判断処理フローを示す図である。 本発明の他の実施形態による分散ディスクキャッシュシステムの構成を示す図である。 本発明の背景となったネットワークストレージの負荷状態におけるパケットキャプチャ結果を示す図である。 本発明の背景となったネットワークストレージの時間帯分布毎のI/Oアクセス状態の概要を示す図である。
符号の説明
1 ストレージ装置
2 キャッシュ管理サーバ
3 アクセス装置
4 パケット解析装置
5 キャッシュサーバ
6 ネットワーク
10 ストレージサーバ
11 ディスク装置(RAID)
41 情報蓄積テーブル
42 情報管理テーブル
51 キャッシュ
52 割当てキャッシュ領域
110 スライス(セグメント)
111 デバイスメタ情報
112 スライスアクセスカウンタ
113 スライスメタ情報
114 スライスデータ

Claims (4)

  1. 複数のデータ領域に分割されたストレージ装置と、
    前記ストレージ装置の1又は複数のデータ領域をキャッシュするキャッシュサーバと、
    ネットワークを介して、前記ストレージ装置又はキャッシュサーバにアクセスするアクセス装置と、
    前記ネットワークに接続され、前記アクセス装置からの前記ストレージ装置への前記ネットワークを介してのアクセスを監視し、前記アクセスの集中度が予め定められた第1の閾値を超えるデータ領域を、前記キャッシュサーバにキャッシュする監視装置と
    前記データ領域毎に設定され、前記キャッシュサーバにキャッシュされた前記データ領域のキャッシュの継続を制御する制御情報を格納する情報管理テーブルと、
    前記アクセス装置からの前記ストレージ装置へのアクセスを監視した結果を統計処理することにより生成した統計情報を格納する情報蓄積テーブルとを備え
    前記監視装置が、前記キャッシュサーバにキャッシュされた前記データ領域の制御情報を前記情報管理テーブルに格納し、所定の時間帯毎に又は所定の単位時間毎に前記ストレージ装置の前記データ領域についての前記統計情報を更新し、前記データ領域毎に設定された前記制御情報に従って、更新された前記統計情報に基づいて、前記ストレージ装置の前記データ領域への前記アクセスの集中度が前記第1の閾値を超えるか否かを監視し、前記キャッシュされたデータ領域への前記アクセスの集中度が予め定められた第2の閾値を下回るか否かを監視する
    ことを特徴とする分散ディスクキャッシュシステム。
  2. 前記監視装置が、前記アクセス装置からの前記キャッシュサーバへの前記ネットワークを介してのアクセスを監視し、前記キャッシュされたデータ領域へのアクセスの集中度が前記第2の閾値を下回る場合に、前記キャッシュされたデータ領域の前記キャッシュサーバへのキャッシュを解消する
    ことを特徴とする請求項1に記載の分散ディスクキャッシュシステム。
  3. 当該分散ディスクキャッシュシステムが、更に、
    キャッシュサーバを管理するキャッシュ管理サーバを備え、
    前記監視装置が、前記第1の閾値を超えるデータ領域を前記キャッシュサーバにキャッシュするキャッシュ指示を前記ストレージ装置に送信し、
    前記ストレージ装置が、前記キャッシュ指示に応じて、前記キャッシュ管理サーバにキャッシュ領域割当て要求を行い、
    前記キャッシュ管理サーバが、前記要求に応じて、前記キャッシュサーバにおける記憶領域を割り当て、
    前記ストレージ装置が、前記第1の閾値を超えるデータ領域を、前記割り当てられた記憶領域にキャッシュする
    ことを特徴とする請求項1に記載の分散ディスクキャッシュシステム。
  4. 複数のデータ領域に分割されたストレージ装置と、前記ストレージ装置の1又は複数のデータ領域をキャッシュするキャッシュサーバと、ネットワークを介して、前記ストレージ装置又はキャッシュサーバにアクセスするアクセス装置と、前記ネットワークに接続され、前記アクセス装置からの前記ストレージ装置への前記ネットワークを介してのアクセスを監視し、前記アクセスの集中度が予め定められた第1の閾値を超えるデータ領域を、前記キャッシュサーバにキャッシュする監視装置と、前記データ領域毎に設定され、前記キャッシュサーバにキャッシュされた前記データ領域のキャッシュの継続を制御する制御情報を格納する情報管理テーブルと、前記アクセス装置からの前記ストレージ装置へのアクセスを監視した結果を統計処理することにより生成した統計情報を格納する情報蓄積テーブルとを備える分散ディスクキャッシュシステムにおける分散ディスクキャッシュ方法であって、
    前記監視装置が、
    前記アクセス装置からの前記ストレージ装置への前記ネットワークを介してのアクセスを監視し、
    前記アクセスの集中度が予め定められた第1の閾値を超えるデータ領域を、前記キャッシュサーバにキャッシュし、
    前記キャッシュサーバにキャッシュされた前記データ領域の制御情報を前記情報管理テーブルに格納し、
    所定の時間帯毎に又は所定の単位時間毎に前記ストレージ装置の前記データ領域についての前記統計情報を更新し、
    前記データ領域毎に設定された前記制御情報に従って、更新された前記統計情報に基づいて、前記ストレージ装置の前記データ領域への前記アクセスの集中度が前記第1の閾値を超えるか否かを監視し、前記キャッシュされたデータ領域への前記アクセスの集中度が予め定められた第2の閾値を下回るか否かを監視する
    ことを特徴とする分散ディスクキャッシュ方法。
JP2008158591A 2008-06-18 2008-06-18 分散ディスクキャッシュシステム及び分散ディスクキャッシュ方法 Expired - Fee Related JP5187017B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008158591A JP5187017B2 (ja) 2008-06-18 2008-06-18 分散ディスクキャッシュシステム及び分散ディスクキャッシュ方法
EP09156350A EP2136299A1 (en) 2008-06-18 2009-03-26 Distributed disk cache system and distributed disk cache method
US12/471,940 US8166242B2 (en) 2008-06-18 2009-05-26 Distributed disk cache system and distributed disk cache method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008158591A JP5187017B2 (ja) 2008-06-18 2008-06-18 分散ディスクキャッシュシステム及び分散ディスクキャッシュ方法

Publications (2)

Publication Number Publication Date
JP2010002942A JP2010002942A (ja) 2010-01-07
JP5187017B2 true JP5187017B2 (ja) 2013-04-24

Family

ID=40651425

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008158591A Expired - Fee Related JP5187017B2 (ja) 2008-06-18 2008-06-18 分散ディスクキャッシュシステム及び分散ディスクキャッシュ方法

Country Status (3)

Country Link
US (1) US8166242B2 (ja)
EP (1) EP2136299A1 (ja)
JP (1) JP5187017B2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5491932B2 (ja) * 2010-03-30 2014-05-14 株式会社インテック ネットワーク・ストレージ・システム、方法、クライアント装置、キャッシュ装置、管理サーバ、及びプログラム
US20110314226A1 (en) * 2010-06-16 2011-12-22 Byungcheol Cho Semiconductor storage device based cache manager
KR101694307B1 (ko) * 2012-02-29 2017-01-09 한국전자통신연구원 디스크 캐쉬 효과를 극대화하는 워크플로우 작업 스케줄링 장치 및 방법
US8825724B2 (en) 2012-03-29 2014-09-02 Lsi Corporation File system hinting
US9015525B2 (en) * 2012-06-19 2015-04-21 Lsi Corporation Smart active-active high availability DAS systems
GB2503274A (en) * 2012-06-22 2013-12-25 Ibm Restoring redundancy in a RAID
US9367412B2 (en) * 2012-06-25 2016-06-14 Netapp, Inc. Non-disruptive controller replacement in network storage systems
TWI485560B (zh) * 2012-08-31 2015-05-21 Ibm 資料分析系統、快取裝置、與資料處理方法
CN103678405B (zh) * 2012-09-21 2016-12-21 阿里巴巴集团控股有限公司 邮件索引建立方法及系统、邮件搜索方法及系统
JP5741544B2 (ja) * 2012-09-27 2015-07-01 日本電気株式会社 キャッシュ制御装置、ディスクアレイ装置、アレイコントローラおよびキャッシュ制御方法
CN103902592B (zh) * 2012-12-27 2018-02-27 深圳市腾讯计算机系统有限公司 基于MapReduce实现分析函数的方法及系统
JP6020291B2 (ja) * 2013-03-27 2016-11-02 富士通株式会社 通信監視方法、通信監視装置、通信監視プログラム
JP6131170B2 (ja) * 2013-10-29 2017-05-17 株式会社日立製作所 計算機システム、及びデータ配置制御方法
JP6299169B2 (ja) * 2013-11-14 2018-03-28 富士通株式会社 ストレージ装置、ストレージ装置の制御方法、及びストレージ装置の制御プログラム
JP2016110305A (ja) 2014-12-04 2016-06-20 富士通株式会社 ストレージ制御装置、キャッシュ制御方法、キャッシュ制御プログラム、及びコンピュータシステム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06124239A (ja) * 1992-10-13 1994-05-06 Kawasaki Steel Corp キャッシュメモリの常駐データ制御装置
JP3117003B2 (ja) * 1997-07-03 2000-12-11 日本電気株式会社 広域分散ファイルシステム
US6438652B1 (en) * 1998-10-09 2002-08-20 International Business Machines Corporation Load balancing cooperating cache servers by shifting forwarded request
JP2001134522A (ja) 1999-11-01 2001-05-18 Prostor Japan:Kk San型インテリジェント・データ・キャッシュ装置
US6813693B2 (en) * 2000-12-11 2004-11-02 Microsoft Corporation System and method for the discovery and use of repetitively accessed data
JP4039821B2 (ja) 2001-05-09 2008-01-30 株式会社日立製作所 ディスク制御装置を用いた計算機システムおよびその運用サービス
JP3999004B2 (ja) * 2002-03-12 2007-10-31 富士通株式会社 コンテンツ管理方法
JP2005141575A (ja) * 2003-11-07 2005-06-02 Fujitsu Ltd 情報処理装置およびバス制御装置
JP4189342B2 (ja) * 2004-03-11 2008-12-03 東芝ソリューション株式会社 ストレージ装置、ストレージコントローラ及びライトバックキャッシュ制御方法
CN100342352C (zh) * 2005-03-14 2007-10-10 北京邦诺存储科技有限公司 一种可扩充的高速存储网络缓存系统
JP2007233700A (ja) * 2006-03-01 2007-09-13 Hitachi Ltd キャッシュシステム、負荷監視サーバ、キャッシュ管理サーバ及びキャッシュサーバ。
JP2008181243A (ja) * 2007-01-23 2008-08-07 Hitachi Ltd ストレージシステムのキャッシュパーティション領域の設定を制御するデータベース管理システム

Also Published As

Publication number Publication date
JP2010002942A (ja) 2010-01-07
US8166242B2 (en) 2012-04-24
US20090319724A1 (en) 2009-12-24
EP2136299A1 (en) 2009-12-23

Similar Documents

Publication Publication Date Title
JP5187017B2 (ja) 分散ディスクキャッシュシステム及び分散ディスクキャッシュ方法
EP2239655B1 (en) Storage controller and storage control method
US8566550B2 (en) Application and tier configuration management in dynamic page reallocation storage system
JP7135162B2 (ja) 情報処理システム、ストレージシステム及びデータ転送方法
US9983935B2 (en) Storage checkpointing in a mirrored virtual machine system
US8812785B2 (en) Managing track discard requests to include in discard track messages
JP4918940B2 (ja) 正センタの仮想テープ装置、副センタの仮想テープ装置、仮想ライブラリシステムおよび仮想テープ制御方法
US20150293708A1 (en) Connectivity-Aware Storage Controller Load Balancing
US8250284B2 (en) Adaptive memory allocation of a second data storage volume based on an updated history of capacity of a first data volume
US8725971B2 (en) Storage apparatus and method for controlling storage apparatus involving snapshots
JP2012104097A (ja) ストレージシステムにおける要求に対する応答に関連した待ち時間削減
US10897517B2 (en) Distributed cache live migration
US20150199253A1 (en) Method and system for collecting and pre-processing quality of service data in a storage system
US20160179432A1 (en) Information processing apparatus and memory management method
US9645926B2 (en) Storage system and method for managing file cache and block cache based on access type
US10152242B1 (en) Host based hints
US20170220476A1 (en) Systems and Methods for Data Caching in Storage Array Systems
WO2017126003A1 (ja) 複数種類のメモリデバイスを含む計算機システム及び方法
US11315028B2 (en) Method and apparatus for increasing the accuracy of predicting future IO operations on a storage system
US7853757B2 (en) Avoiding failure of an initial program load in a logical partition of a data storage system
US20180052750A1 (en) Online nvm format upgrade in a data storage system operating with active and standby memory controllers
Eswaran et al. Tackling memory footprint expansion during live migration of virtual machines,”
JP5172594B2 (ja) 情報処理システム及び情報処理システムの運用方法
JP6200100B2 (ja) 計算機システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110315

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120703

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120830

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130107

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

Free format text: PAYMENT UNTIL: 20160201

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees