JP6066831B2 - 計算機システム及びキャッシュ制御方法 - Google Patents

計算機システム及びキャッシュ制御方法 Download PDF

Info

Publication number
JP6066831B2
JP6066831B2 JP2013111690A JP2013111690A JP6066831B2 JP 6066831 B2 JP6066831 B2 JP 6066831B2 JP 2013111690 A JP2013111690 A JP 2013111690A JP 2013111690 A JP2013111690 A JP 2013111690A JP 6066831 B2 JP6066831 B2 JP 6066831B2
Authority
JP
Japan
Prior art keywords
data
storage
cache
server
stored
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
JP2013111690A
Other languages
English (en)
Other versions
JP2014232349A (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 JP2013111690A priority Critical patent/JP6066831B2/ja
Priority to US14/287,206 priority patent/US9304918B2/en
Publication of JP2014232349A publication Critical patent/JP2014232349A/ja
Application granted granted Critical
Publication of JP6066831B2 publication Critical patent/JP6066831B2/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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
    • 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
    • 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
    • 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/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/12Replacement control
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • 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
    • 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/311In host system

Landscapes

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

Description

本発明は、キャッシュ利用効率を向上するキャッシュ制御を実現するシステム及び方法に関するものである。
近年、Flashメモリのような不揮発性メモリ(NVM:Non Volatile Memory)がさまざまな電子機器に用いられる。不揮発性メモリは、HDD(Hard Disk Drive)のように機械的動作を伴わないため、HDDに比べ高速なアクセスが可能である。
そのため、サーバ及びストレージシステム等高速なデータアクセスが必要とされるエンタープライズ用途にも用いられる。特に、サーバに搭載可能な不揮発性メモリは安価になっているため、広く普及している。
不揮発性メモリを用いて、高速なデータアクセスを実現する計算機システムが様々考えられている(例えば、特許文献1参照)。特許文献1には、ストレージシステムに格納されるデータをサーバが有するキャッシュデバイスに一時的に格納するシステムが記載されている。これによって、ストレージシステムへのアクセスが必要なくなり、データへのアクセスを高速化することができる。
米国特許第2011/0087833号明細書
計算機システムを構成するストレージシステムは、サーバとは別に、DRAM等を用いたキャッシュを有する。従来の制御方法では、サーバがストレージシステムから取得したデータをキャッシュに格納する場合、ストレージシステムのキャッシュにも同一のデータが格納される。これは、ストレージシステムがHDD等の記憶媒体からデータを読み出した場合、読み出されたデータをキャッシュに一時的に格納するためである。
そのため、サーバのキャッシュ及びストレージシステムのキャッシュには、同一のデータが格納される。しかし、ストレージシステムのキャッシュに格納されているデータはほとんど活用されないため、キャッシュ領域が有効に活用できない。
本願発明は前述した課題に鑑みてなされた発明である。すなわち、サーバ及びストレージシステムのキャッシュの利用効率を向上させるキャッシュ制御を実現するシステム及び方法を提供することである。
本発明の代表的な一例を示せば以下の通りである。すなわち、アプリケーションが稼働するサーバ、及び、前記アプリケーションが使用するデータを格納するストレージシステムを備える計算機システムであって、前記サーバは、第1のプロセッサ、第1のメモリ、一時的にデータを格納するサーバキャッシュが設定されるキャッシュデバイス、及び他の装置と接続するための第1のインタフェースを有し、前記ストレージシステムは、第2のプロセッサ、第2のメモリ、及び他の装置と接続するための第2のインタフェースを含むコントローラ、並びに複数の記憶装置を有し、前記サーバは、前記サーバを制御するオペレーティングシステムを有し、前記ストレージシステムは、一時的にデータを格納するストレージキャッシュ、及び前記ストレージシステムを制御するストレージ制御部を有し、前記オペレーティングシステムは、前記サーバキャッシュを制御するキャッシュドライバを含み、前記ストレージ制御部は、データが格納されている記憶領域の識別情報及びデータサイズの閾値を含むポリシ情報を保持し、前記オペレーティングシステムは前記アプリケーションから前記サーバキャッシュに格納されていない第1のデータの読出要求を受信した場合、前記ストレージシステムに前記第1のデータの読出要求を送信し、前記ストレージ制御部は、前記サーバから前記第1のデータの読出要求を受信した場合、前記第1のデータが前記ストレージキャッシュに格納されているか否かを判定し、前記第1のデータが前記ストレージキャッシュに格納されていないと判定された場合、前記記憶装置から前記第1のデータを読み出して、読み出された前記第1のデータを前記サーバに送信し、前記第1のデータが前記ストレージキャッシュに格納されていると判定された場合、前記ストレージキャッシュから前記第1のデータを読み出し、前記第1のデータが格納されている第1の記憶領域の識別情報に基づいて前記ポリシ情報を参照して、前記第1のデータのデータサイズが前記第1の記憶領域に対応するデータサイズの閾値より大きいか否かを判定し、前記第1のデータのデータサイズが前記第1の記憶領域に対応するデータサイズの閾値より大きいと判定された場合、前記第1のデータ及び前記サーバキャッシュへの前記第1のデータの格納を指示する判定結果を前記サーバに送信し、前記ストレージキャッシュに格納されている前記第1のデータを無効化し、前記第1のデータのデータサイズが前記第1の記憶領域に対応するデータサイズの閾値以下であると判定された場合、前記第1のデータ及び前記サーバキャッシュへの前記第1のデータの格納を禁止する判定結果を前記サーバに送信し、前記オペレーティングシステムは、前記ストレージシステムから前記第1のデータを受信した場合、前記第1のデータとともに受信した前記判定結果に基づいて、前記サーバキャッシュに前記ストレージシステムから受信した前記第1のデータを格納するか否かを判定し、前記サーバキャッシュに前記ストレージシステムから受信した前記第1のデータを格納すると判定された場合、前記第1のデータを前記アプリケーションに送信し、前記サーバキャッシュに前記ストレージシステムから受信した前記第1のデータを格納し、前記サーバキャッシュに前記ストレージシステムから受信した前記第1のデータを格納しないと判定された場合、前記第1のデータを前記アプリケーションに送信することを特徴とする。
本発明によれば、ストレージシステムから読み出されたデータはサーバキャッシュにのみ格納されるため、計算機システム全体のキャッシュの利用効率を向上することができる。
上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
本発明の実施例1の計算機システムの構成例を示すブロック図である。 本発明の実施例1におけるサーバが実行するI/O処理の一例を説明するフローチャートである。 本発明の実施例1におけるサーバが実行するI/O処理の一例を説明するフローチャートである。 本発明の実施例1におけるストレージシステムが実行するI/O処理の一例を説明するフローチャートである。 本発明の実施例1におけるストレージシステムが実行するI/O処理の一例を説明するフローチャートである。 本発明の実施例2の計算機システムの構成例を示すブロック図である。 本発明の実施例2におけるポリシ情報の一例を示す説明図である。 本発明の実施例2におけるサーバが実行するI/O処理の一例を説明するフローチャートである。 本発明の実施例2におけるサーバが実行するI/O処理の一例を説明するフローチャートである。 本発明の実施例2におけるストレージシステムが実行するI/O処理の一例を説明するフローチャートである。 本発明の実施例2におけるストレージシステムが実行するI/O処理の一例を説明するフローチャートである。 本発明の実施例3の計算機システムの構成例を示すブロック図である。 従来のサーバが実行するI/O処理を説明するフローチャートである。 従来のサーバが実行するI/O処理を説明するフローチャートである。
以下、図面を用いて実施例について説明する。
図1は、本発明の実施例1の計算機システムの構成例を示すブロック図である。
実施例1の計算機システムは、サーバ100及びストレージシステム200から構成される。
サーバ100及びストレージシステム200は、LAN(Local Area Network)又はSAN(Storage Area Network)を介して接続される。なお、同一筐体内にサーバ100及びストレージシステム200を備える計算機システムであってもよい。この場合、サーバ100及びストレージシステム200は、バックプレーンを介して接続される。
実施例1では、一つのサーバ100が一つのストレージシステム200に接続されているものとする。複数のサーバ100が同一のストレージシステム200に接続される計算機システムについては実施例3において説明する。
サーバ100は、所定の業務を実行する計算機である。サーバ100は、プロセッサ101、メモリ102、キャッシュデバイス103、及び接続インタフェース104を備え、各構成は内部経路を介して互いに接続される。なお、サーバ100は、ストレージ装置、及び入出力装置を備えてもよい。ストレージ装置は、例えば、HDD(Hard Disk Drive)等が考えられる。また、入出力装置には、キーボード、マウス、タッチパネル、及びディスプレイ等が含まれる。
プロセッサ101は、メモリ102に格納されるプログラムを実行する。プロセッサ101がプログラムを実行することによって、サーバ100が備える機能が実現される。以下の説明では、プログラムを主体に処理を説明する場合、プロセッサ101によってプログラムが実行されていることを示す。
メモリ102は、プロセッサ101によって実行されるプログラム及び当該プログラムの実行に必要な情報を格納する。メモリ102に格納されるプログラム及び情報については後述する。
キャッシュデバイス103は、データを一時的に格納するサーバキャッシュ130を実現するデバイスである。キャッシュデバイス103の全記憶領域がサーバキャッシュ130として用いられる。
本実施例では、Flashメモリを有するSSD(Solid State Drive)をキャッシュデバイス103として用いるものとする。なお、キャッシュデバイス103は、Flashメモリのような不揮発性メモリに限定されない。例えば、DRAMのような揮発性メモリを用いてもよい。
本実施例のサーバキャッシュ130には、LU(Logical Unit)の論理ブロック単位のデータが格納される。この場合、バッファキャッシュを用いることによって、論理ブロック単位のデータを格納する方法が考えられる。バッファキャッシュには、論理ブロック単位のデータの格納場所を特定するためのバッファヘッドが含まれる。
例えば、キャッシュドライバ111は、サーバキャッシュ130にバッファページを割り当て、所定のブロックサイズのブロックバッファに当該バッファページを分割することによってバッファキャッシュを生成する。なお、LUは、後述するようにストレージシステム200によって提供される。
以下の説明では、論理ブロック単位のデータをブロックデータとも記載する。
接続インタフェース104は、ストレージシステム200等の外部装置と接続するためのデバイスである。例えば、サーバ100及びストレージシステム200がSANを介して接続される場合、FC(Fiber Channel)アダプタカードが接続インタフェース104として用いられる。また、サーバ100及びストレージシステム200がLANを介して接続される場合、NIC(Network Interface Card)が接続インタフェース104として用いられる。
ここで、メモリ102に格納されるプログラム及び情報について説明する。本実施例のメモリ102は、OS(Operating System)110及びアプリケーション120を実現するプログラムを格納する。なお、メモリ102には、その他のプログラム及び情報が格納されてもよい。
OS110は、サーバ100を制御する機能を提供し、また、サーバ100とストレージシステム200との間のデータ転送を制御する。OS110は、サーバキャッシュ130を管理するキャッシュドライバ111を含む。なお、OS110は、図示しないファイルシステム、デバイスドライバ等を有するが、公知のものであるため説明を省略する。
アプリケーション120は、所定の業務を実行する。本発明は、サーバ100上で実行されるアプリケーション120の種類及び業務内容に限定されない。
なお、メモリ102に格納されるプログラム及び情報は、ストレージシステム200又はサーバが備えるストレージ装置に格納されてもよい。この場合、プロセッサ101がストレージシステム200又はストレージ装置からプログラム及び情報を取得し、取得されたプログラム及び情報をメモリ102にロードする。
ストレージシステム200は、サーバ100が実行する業務に必要な情報を格納する。ストレージシステム200は、コントローラ201、及び複数の記憶媒体206を備え、各構成は内部経路を介して互いに接続される。
コントローラ201は、ストレージシステム200を制御し、また、サーバ100とストレージシステム200との間のデータ転送を制御する。コントローラ201は、プロセッサ202、メモリ203、接続インタフェース204、及びストレージインタフェース205を備え、各構成は内部経路を介して互いに接続される。
プロセッサ202は、メモリ203に格納されるプログラムを実行する。プロセッサ202がプログラムを実行することによって、ストレージシステム200が備える機能が実現される。以下の説明では、プログラムを主体に処理を説明する場合、プロセッサ202によってプログラムが実行されていることを示す。
メモリ203は、プロセッサ202によって実行されるプログラム及び当該プログラムの実行に必要な情報を格納する。メモリ203に格納されるプログラム及び情報については後述する。また、メモリ203は、一時的にデータを格納する記憶領域であるストレージキャッシュ220を含む。
接続インタフェース204は、サーバ100等の外部装置と接続するためのデバイスである。例えば、サーバ100及びストレージシステム200がSANを介して接続される場合、CA(Channel Adapter)が接続インタフェース204として用いられる。また、サーバ100及びストレージシステム200がLANを介して接続される場合、NIC(Network Interface Card)が接続インタフェース204として用いられる。
ストレージインタフェース205は、記憶媒体206と接続するためのデバイスである。記憶媒体206は、データを格納する装置である。記憶媒体206は、例えばHDD又はSSDが考えられる。ただし、データを格納できる装置であればどのような装置であってもよい。
ここで、メモリ203に格納されるプログラム及び情報について説明する。本実施例のメモリ203は、ストレージ制御部210を実現するプログラムを格納する。なお、メモリ203には、その他のプログラム及び情報が格納されてもよい。例えば、記憶媒体206に格納されるデータを管理するための情報等が格納されてもよい。
ストレージ制御部210は、ストレージシステム200を制御する。本実施例では、複数の記憶媒体206を用いてRAIDが構成される。ストレージ制御部210は、RAIDボリュームを論理的に分割することによって、複数のLUを生成する。また、ストレージ制御部210は、生成された複数のLUをサーバ100に提供する。
ストレージ制御部210は、LUと記憶媒体206との対応関係を示す管理情報を有する。ストレージ制御部210は、サーバ100からLUに対するI/O要求を受信した場合、管理情報に基づいてLUを構成する記憶領域(論理ブロック)を提供する記憶媒体206にアクセスする。また、ストレージ制御部210は、LUの管理機能、データ転送機能、及びキャッシュ制御機能等の各種機能を有する。
なお、メモリ203に格納されるプログラム及び情報は、記憶媒体206に格納されてもよい。この場合、プロセッサ202が記憶媒体206からプログラム及び情報を取得し、取得されたプログラム及び情報をメモリ203にロードする。
なお、ストレージシステム200のメモリ203上にストレージキャッシュ220を設定したが本発明はこれに限定されない。コントローラ201は、キャッシュ用のメモリを備えていてもよい。キャッシュ用のメモリは、不揮発性のメモリ又は揮発性のメモリのいずれであってもよい。
図2A及び図2Bは、本発明の実施例1におけるサーバ100が実行するI/O処理の一例を説明するフローチャートである。
OS110は、アプリケーション120からI/O要求を受け取った場合、以下で説明するI/O処理を開始する。なお、I/O要求には、アクセス対象のファイルの識別情報又はアクセス対象のブロックデータの識別情報等が含まれる。例えば、アクセス対象がファイルの場合にはファイル名等が含まれ、アクセス対象がブロックデータの場合にはブロック番号等が含まれる。本実施例では、I/O要求にはファイル名が含まれるものとする。
OS110は、I/O要求が読出要求であるか否かを判定する(ステップS101)。
I/O要求が読出要求であると判定された場合、OS110は、サーバキャッシュ130に読出対象のデータが存在するか否かを判定する(ステップS102)。具体的には、以下のような処理が実行される。
OS110は、読出対象のデータ(ファイル)を管理するファイルシステムにデータ(ファイル)の読み出しを依頼する。ファイルシステムは、キャッシュドライバ111を呼び出し、読出対象のデータ(ファイル)の検索を指示する。当該指示には、読出対象のデータ、すなわち、ファイルのブロックデータのブロック番号を特定するための情報が含まれる。以下の説明では、ファイルのブロックデータのブロック番号を特定するための情報を、ブロック取得情報とも記載する。
呼び出されたキャッシュドライバ111は、ブロック取得情報に基づいて、ファイルのブロックデータのブロック番号を特定する。ファイルが複数のブロックデータを含む場合、キャッシュドライバ111は、ファイルに含まれる全てのブロックデータのブロック番号を特定する。
キャッシュドライバ111は、サーバキャッシュ130に格納されているデータの中から読出対象のデータ(ファイル)のブロックデータを検索する。キャッシュに格納されているブロックデータの検索方法は公知の技術であるため詳細な説明を省略する。
読出対象のデータ(ファイル)が存在する場合、キャッシュドライバ111は、OS110に検索されたデータ(ファイル)を出力する。一方、読出対象のデータ(ファイル)が存在しない場合、キャッシュドライバ111は、OS110にデータ(ファイル)が存在しない旨を通知する。
以上がステップS102の処理の説明である。
サーバキャッシュ130に読出対象のデータが存在すると判定された場合、すなわち、キャッシュヒットの場合、OS110は、サーバキャッシュ130からデータを読み出し(ステップS103)、アプリケーション120に読出処理の完了通知を送信し(ステップS104)、処理を終了する。
具体的には、キャッシュドライバ111は、検索されたデータ(ファイル)をOS110に出力する。OS110は、アプリケーション120に完了通知とともにキャッシュドライバ111から取得したデータ(ファイル)を出力する。
ステップS102において、サーバキャッシュ130に読出対象のデータが存在しないと判定された場合、すなわち、キャッシュミスヒットの場合、OS110は、ストレージシステム200に読出要求を送信する(ステップS105)。具体的には、以下のような処理が実行される。
キャッシュドライバ111は、ファイルのブロックデータの読出要求を登録し、デバイスドライバを呼び出す。なお、アプリケーション120の処理は、デバイスドライバから登録された読出要求の完了通知を受けつけるまで待ち状態となる。
デバイスドライバは、登録された読出要求に基づいて、ストレージシステム200に読出要求を送信する。なお、デバイスドライバが送信する読出要求には、データの読み出し先のLUの識別情報、及びブロックデータを特定するための識別情報が含まれる。例えば、LUにおける論理ブロックのブロック番号等が含まれる。
前述のように、サーバ100は、ブロック単位のI/O要求をストレージシステム200に送信する。
以上がステップS105の処理の説明である。
OS110は、ストレージシステム200から読み出されたデータをメモリ102にコピーする(ステップS106)。
具体的には、OS110が、デバイスドライバから出力されたデータ(ファイル)をメモリ102にコピーする。これは、サーバキャッシュ130に格納するデータ(ファイル)を一時的に保持するためである。なお、ストレージシステム200からはブロック単位にデータが読み出されるため、OS110は、ファイルの全てのブロックデータが読み出された後に、ファイルの全てのブロックデータをメモリ102にコピーする。
OS110は、アプリケーション120に完了通知を送信する(ステップS107)。このとき、OS110は、完了通知とともに読み出されたデータをアプリケーション120に送信する。
OS110は、サーバキャッシュ130上に記憶領域を確保する(ステップS108)。
具体的には、キャッシュドライバ111が、サーバキャッシュ130上に記憶領域を確保する。これは、メモリ102にコピーされたデータをサーバキャッシュ130に格納する記憶領域を確保するための処理である。
OS110は、前述した処理の結果に基づいて、サーバキャッシュ130のデータの置き換えが必要であるか否かを判定する(ステップS109)。すなわち、メモリ102にコピーされたデータを格納するための記憶領域が不足しているか否かが判定される。
サーバキャッシュ130のデータの置き換えが必要ないと判定された場合、OS110は、ステップS111に進む。
サーバキャッシュ130のデータの置き換えが必要であると判定された場合、OS110は、ストレージシステム200に置き換え通知を送信する(ステップS110)。具体的には、以下のような処理が実行される。
キャッシュドライバ111は、サーバキャッシュ130に格納されているデータの中から置き換えるデータを選択し、デバイスドライバを呼び出す。ここでは、一つ以上のブロックデータが選択されるものとする。また、デバイスドライバには選択されたブロックデータの識別情報が入力される。ブロックデータの識別情報は、例えば、ブロックデータのブロック番号が考えられる。
デバイスドライバは、選択されたブロックデータの識別情報が含まれる置き換え通知をストレージシステム200に送信する。
データの選択方法としては、LRU(Least Recently Used)方式を用いる。LRU方式では、最近最も使用されていないデータが選択される。LRU方式のキャッシュ制御方法は、公知の技術であるため詳細な説明を省略する。なお、データの選択方法はLRU方式に限定されない。例えば、予めデータに優先度を付与し、当該優先度の低いデータを選択する方法が考えられる。また、計算機システムの管理者又はユーザ等が、追い出すデータを指定してもよい。
なお、データのアクセス日時、アクセス頻度等の情報は、ファイルシステム又はストレージシステム200が保持するデータ管理情報等から取得することができる。
なお、置き換え通知には、置き換えられるデータの識別情報が含まれているが、置き換え通知に当該データそのものを含めてもよい。
以上が、ステップS110の処理の説明である。
OS110は、メモリ102にコピーされたデータをサーバキャッシュ130に格納し(ステップS111)、処理を終了する。具体的には、以下のような処理が実行される。
キャッシュドライバ111は、OS110にデータの取得要求を出力する。OS110は、メモリ102にコピーされたデータをキャッシュドライバ111に出力する。キャッシュドライバ111は、出力されたデータをサーバキャッシュ130に格納する。
なお、ステップS110の後の処理では、キャッシュドライバ111は、選択されたデータが格納されている記憶領域に、メモリ102にコピーされたデータを格納する。
以上が、ステップS111の処理の説明である。
ステップS101において、I/O要求が読出要求でない、すなわち、書込要求であると判定された場合、OS110は、サーバキャッシュ130に書込対象のデータが存在するか否かを判定する(ステップS112)。ステップS112の処理はステップS102と同一の処理である。
サーバキャッシュ130に書込対象のデータが存在すると判定された場合、すなわち、キャッシュヒットの場合、OS110は、サーバキャッシュ130に格納されているデータを無効化する(Invalidate)(ステップS113)。
具体的には、キャッシュドライバ111が、サーバキャッシュ130のデータを無効化する。なお、ファイル単位のアクセスの場合、キャッシュドライバ111は、ファイルの全てのブロックデータを無効化するものとする。
OS110は、ストレージシステム200に書込要求を送信し(ステップS114)、また、アプリケーション120に完了通知を送信し(ステップS115)、処理を終了する。具体的には、以下のような処理が実行される。
キャッシュドライバ111は、ファイルのブロックデータの書込要求を登録し、デバイスドライバを呼び出す。デバイスドライバは、登録された書込要求に基づいて、ストレージシステム200に書込要求を送信する。また、OS110は、アプリケーション120に完了通知を送信する。
なお、デバイスドライバが送信する書込要求には、データを書き込み先のLUの識別情報、及びデータを特定するための識別情報が含まれる。例えば、LUにおける論理ブロックのブロック番号等が含まれる。
以上がステップS114及びステップS115の処理の説明である。
ステップS112において、サーバキャッシュ130に書込対象のデータが存在しないと判定された場合、すなわち、キャッシュミスヒットの場合、OS110は、ストレージシステム200に書込要求を送信し(ステップS116)、また、アプリケーション120に完了通知を送信し(ステップS117)、処理を終了する。ステップS116及びステップS117の処理は、ステップS114及びステップS115の処理と同一の処理である。なお、ステップS116では、キャッシュドライバ111は、サーバキャッシュ130に書込対象のデータが格納されないように制御する。
図3A及び図3Bは、本発明の実施例1におけるストレージシステム200が実行するI/O処理の一例を説明するフローチャートである。
ストレージ制御部210は、サーバ100からアクセスを受け付けると以下で説明するI/O処理を開始する。
ストレージ制御部210は、サーバ100から受け付けたアクセスが置き換え通知であるか否かを判定する(ステップS201)。
サーバ100から受け付けたアクセスが置き換え通知であると判定された場合、ストレージ制御部210は、ストレージキャッシュ220に、サーバキャッシュ130から追い出されたデータを格納し(ステップS209)、処理を終了する。
具体的には、ストレージ制御部210が、置き換え通知に含まれる、置き換えられるデータの識別情報に基づいて、記憶媒体206からデータを読み出し、読み出されたデータをストレージキャッシュ220に格納する。
なお、置き換え通知に置き換えられるデータが含まれる場合、ストレージ制御部210は、当該データをストレージキャッシュ220に格納する。
サーバ100から受け付けたアクセスが置き換え通知でない、すなわち、I/O要求であると判定された場合、ストレージ制御部210は、当該I/O要求が読出要求であるか否かを判定する(ステップS202)。
I/O要求が読出要求であると判定された場合、ストレージ制御部210は、ストレージキャッシュ220に読出対象のデータが存在するか否かを判定する(ステップS203)。
具体的には、ストレージ制御部210が、ストレージキャッシュ220に格納されているデータの中から読出対象のブロックデータを検索する。なお、読出要求には、読出対象のブロックデータの読み出し先のLUの識別情報、及びブロックデータを特定するための識別情報が含まれる。ストレージ制御部210は、読出要求に含まれる情報、及び、LUと記憶媒体206との対応関係を示す管理情報等に基づいて、読出対象のブロックデータを検索できる。
読出対象のデータがストレージキャッシュ220に存在すると判定された場合、すなわち、キャッシュヒットの場合、ストレージ制御部210は、ストレージキャッシュ220からデータを読み出す(ステップS204)。
ストレージ制御部210は、読み出されたデータをサーバ100に送信する(ステップS205)。読み出されたデータの送信が完了通知の送信に対応する。
ストレージ制御部210は、ストレージキャッシュ220から読み出されたデータを無効化し(Invalidate)(ステップS206)、処理を終了する。
これによって、サーバキャッシュ130にのみ読出対象のデータが格納される。また、ストレージキャッシュ220に格納されているデータが無効化されるため、ストレージキャッシュ220の利用可能な記憶領域を確保することができる。
ステップS203において、読出対象のデータがストレージキャッシュ220に存在しないと判定された場合、すなわち、キャッシュミスヒットの場合、ストレージ制御部210は、記憶媒体206からデータを読み出し(ステップS207)、読み出されたデータをサーバ100に送信し(ステップS208)、処理を終了する。読み出されたデータの送信が完了通知の送信に対応する。このとき、ストレージ制御部210は、ストレージキャッシュ220に読出対象のブロックデータが格納されないように制御する。
ストレージシステム200は、ファイルの全てのブロックデータに対して同様の処理を繰り返し実行する。したがって、読出要求を受信した場合、ストレージキャッシュ220にはファイルの全てのブロックデータが格納されないように制御される。また、書込要求を受信した場合、ストレージキャッシュ220にはファイルの全てのブロックデータが格納される。
ここで、本発明の効果について説明する。
本発明では、キャッシュドライバ111及びストレージ制御部210が、サーバキャッシュ130及びストレージキャッシュ220の両方に同一のデータが格納されないように制御する。具体的には、以下のような処理が実行される。
(読出処理におけるキャッシュ制御)
アプリケーション120からサーバキャッシュ130に格納されていないデータの読出要求を受け付けた場合、以下のようなキャッシュ制御が行われる。
キャッシュドライバ111は、サーバキャッシュ130に読出対象のデータを格納する(ステップS111)。このとき、キャッシュドライバ111は、サーバキャッシュ130に読出対象のデータを格納するために、サーバキャッシュ130内の所定のデータを読出対象のデータに置き換え、ストレージシステム200に置き換え通知を送信する(ステップS110)。
一方、ストレージ制御部210は、ストレージキャッシュ220に読出対象のデータが格納されないように制御する。すなわち、ストレージ制御部210は、ストレージキャッシュ220に読出対象のデータが格納されている場合、当該データを無効化し(ステップS206)、ストレージキャッシュ220に読出対象のデータが格納されていない場合、ストレージキャッシュ220に読出対象のデータを格納しないように制御する(ステップS207、ステップS208)。
また、ストレージ制御部210は、置き換え通知に基づいて、サーバキャッシュ130において置き換えられたデータをストレージキャッシュ220に格納する(ステップS209)。
以上の処理によって、アプリケーション120によって読み出されたデータは、サーバキャッシュ130にのみ格納される。したがって、サーバキャッシュ130及びストレージキャッシュ220におけるデータの重複を回避できる。また、サーバキャッシュ130及びストレージキャッシュ220の利用可能な記憶領域を確保することができる。また、サーバキャッシュ130から追い出されたデータをストレージキャッシュ220に格納することによって、高速なデータの読み出しも可能となる。
一般的に、サーバキャッシュ130に格納されているデータは、アプリケーション120によって読み出されたデータであるため、再度、アプリケーション120によって読み出される可能性がある。置き換え通知が送信されない場合、置き換えられたデータは、サーバキャッシュ130及びストレージキャッシュ220のいずれにも格納されない。したがって、再度、記憶媒体206からデータを読み出す必要があり、アプリケーション120の読出処理にオーバヘッドが生じる。
そのため、本発明では、サーバキャッシュ130において置き換えられたデータをストレージキャッシュ220に格納することによって、アプリケーション120の読出処理のオーバヘッドを最小限に抑える効果がある。
(書込処理におけるキャッシュ制御)
アプリケーション120からデータの書込要求を受け付けた場合、以下のようなキャッシュ制御が行われる。
キャッシュドライバ111は、サーバキャッシュ130に書込対象のデータが格納されないように制御する。すなわち、キャッシュドライバ111は、サーバキャッシュ130に書込対象のデータが格納されている場合、当該データを無効化し(ステップS113)、サーバキャッシュ130に書込対象のデータが格納されていない場合、サーバキャッシュ130に書込対象のデータを格納しないように制御する(ステップS116、ステップS117)。
一方、ストレージ制御部210は、ストレージキャッシュ220に書込対象のデータを格納する(ステップS211、ステップS213)。
以上の処理によって、アプリケーション120によって書き込まれたデータは、ストレージキャッシュ220にのみ格納される。したがって、サーバキャッシュ130及びストレージキャッシュ220におけるデータの重複を回避できる。また、サーバキャッシュ130及びストレージキャッシュ220の利用可能な記憶領域を確保することができる。
ここで、従来技術との差異について説明する。
図9A及び図9Bは、従来のサーバが実行するI/O処理を説明するフローチャートである。
なお、計算機の構成は、本実施例と同一であるため説明を省略する。
OSは、アプリケーションからI/O要求を受け取った場合、I/O要求が読出要求であるか否かを判定する(ステップS301)。
I/O要求が読出要求であると判定された場合、OSは、サーバキャッシュに読出対象のデータが存在するか否かを判定する(ステップS302)。
サーバキャッシュに読出対象のデータが存在すると判定された場合、OSは、サーバキャッシュからデータを読み出し(ステップS303)、アプリケーションに読出処理の完了通知を送信し(ステップS304)、処理を終了する。このとき、OSは、完了通知とともに読み出されたデータをアプリケーションに送信する。
サーバキャッシュに読出対象のデータが存在しないと判定された場合、OSは、ストレージシステムに読出要求を送信する(ステップS305)。
このとき、ストレージシステムは、読出要求に基づいて、所定のデータをサーバに送信する。なお、従来のストレージシステムは、ストレージキャッシュに読出対象のデータを格納する。
OSは、ストレージシステムからデータを受信した後、当該データをメモリにコピーする(ステップS306)。これは、サーバキャッシュに格納するデータを一時的に保持するためである。
OSは、ストレージシステムから読出処理の完了通知を受信した後、アプリケーションに完了通知を送信する(ステップS307)。OSは、サーバキャッシュ上に記憶領域を確保し(ステップS308)、メモリにコピーされたデータを確保された記憶領域に格納し(ステップS309)、処理を終了する。
ステップS301において、I/O要求が読出要求でない、すなわち、書込要求であると判定された場合、OSは、サーバキャッシュに書込対象のデータが存在するか否かを判定する(ステップS310)。
サーバキャッシュに書込対象のデータが存在すると判定された場合、OSは、メモリに書込対象のデータをコピーする(ステップS311)。これは、サーバキャッシュに格納するデータを一時的に保持するためである。その後、OSは、ストレージシステムに書込要求を送信し(ステップS312)、また、アプリケーションに完了通知を送信する(ステップS313)。
このとき、ストレージシステムは、ストレージキャッシュに書込対象のデータを格納し、その後、記憶媒体に書込対象のデータを書き込む。
OSは、サーバキャッシュ内の書込対象のデータが格納されている記憶領域に、メモリにコピーされたデータを上書きし(ステップS314)、処理を終了する。
ステップS311からステップS314の処理は、一般的なWrite Through方式を用いたキャッシュ制御方法である。
ステップS310において、サーバキャッシュに書込対象のデータが存在すると判定された場合、OSは、メモリに書込対象のデータをコピーする(ステップS315)。その後、OSは、ストレージシステムに書込要求を送信し(ステップS316)、また、アプリケーションに完了通知を送信する(ステップS317)。
このとき、ストレージシステムは、ストレージキャッシュに書込対象のデータを格納し、その後、記憶媒体に書込対象のデータを書き込む。
OSは、サーバキャッシュ上に記憶領域を確保し(ステップS318)、メモリにコピーされたデータを確保された記憶領域に格納し(ステップS319)、処理を終了する。
従来のキャッシュ制御方法では、ステップS305及びステップS309の処理によって、サーバキャッシュ及びストレージキャッシュに同一のデータが格納される。
一方、本発明では、キャッシュドライバ111及びストレージ制御部210が、互いに連携して、サーバキャッシュ130にのみ読出対象のデータが格納されるように制御する。
従来のキャッシュ制御方法では、ステップS311からステップS314の処理、及びステップS315からステップS319の処理によって、サーバキャッシュ及びストレージキャッシュに同一のデータが格納される。
一方、本発明では、キャッシュドライバ111及びストレージ制御部210が、互いに連携して、ストレージキャッシュ220にのみ書込対象のデータが格納されるように制御する。
以上で説明したように、実施例1によれば、サーバ100及びストレージシステム200は、互いに連携して、サーバキャッシュ130及びストレージキャッシュ220に同一のデータが存在しないように制御する。これによって、キャッシュの利用効率を向上することができる。また、サーバキャッシュ130及びストレージキャッシュ220の利用可能な記憶領域を確保することができる。
実施例1では、読出対象のデータは全てサーバキャッシュ130に格納される。実施例2では、ポリシ情報に基づいて、読出対象のデータをサーバキャッシュ130に格納するか否かを判定する。以下、実施例1との差異を中心に説明する。
図4は、本発明の実施例2の計算機システムの構成例を示すブロック図である。
計算機システムの構成は、実施例1と同一である。また、サーバ100のハードウェア構成及びソフトウェア構成は実施例1と同一である。
実施例2のストレージシステム200のハードウェア構成は実施例1と同一であるが、ソフトウェア構成が異なる。具体的には、メモリ203に新たにポリシ情報230が含まれる。
ポリシ情報230は、サーバキャッシュ130にデータを格納するか否かを判定するための情報を格納する。ポリシ情報230の詳細については、図5を用いて後述する。
図5は、本発明の実施例2におけるポリシ情報230の一例を示す説明図である。
ポリシ情報230は、LUN301及びアクセスサイズ閾値302を含む。LUN301は、アプリケーション120が稼働するサーバ100に割り当てられるLUの識別番号である。アクセスサイズ閾値302は、アプリケーション120によってアクセスされるデータのサイズの閾値である。
本実施例では、アクセスサイズ閾値302より大きいサイズのデータへの読出要求が検出された場合、ストレージ制御部210は、当該データの格納先をサーバキャッシュ130に決定する。
これは、サーバキャッシュ130にデータサイズの大きいデータを格納することによって、当該データへの読出処理を高速化するためである。サーバキャッシュ130の記憶容量は限られており、読出対象のデータをすべて格納することができない。したがって、読出要求を受信するたびに、読出対象のデータをサーバキャッシュ130に格納すると、頻繁にデータの置き換えが発生する可能性がある。そのため、有効なキャッシュ利用が実現できない場合もある。
そこで、実施例2では、ポリシ情報230に基づいて、読出処理の高速化の効果が大きいデータを優先的にサーバキャッシュ130に格納するように制御する。
なお、図5に示すポリシ情報230は一例であって、本発明はこれに限定されない。例えば、アプリケーションとデータの重要度とを対応づけたポリシ情報、LUNとストレージキャッシュの空き容量の閾値とを対応づけたポリシ情報等が考えられる。また、ポリシ情報230は、予め設定されている必要はなく、システム管理者又はユーザが入力することができる。
図6A及び図6Bは、本発明の実施例2におけるサーバ100が実行するI/O処理の一例を説明するフローチャートである。以下実施例1との差異を中心に説明する。
OS110は、ストレージシステム200に読出要求を送信した後(ステップS105)。ストレージシステム200から読み出されたデータをサーバキャッシュ130に格納するか否かを判定する(ステップS151)。具体的には、以下のような処理が実行される。
キャッシュドライバ111は、デバイスドライバから完了通知を受けつけると、当該完了通知に含まれる判定結果を参照し、判定結果に基づいてストレージシステム200から読み出されたデータをサーバキャッシュ130に格納するか否かを判定する。ここで、判定結果は、後述するストレージシステム200が実行する判定処理の結果に対応する。
判定結果には、サーバキャッシュ130への読出対象のデータの格納を指示する情報、又は、サーバキャッシュ130への読出データの格納を禁止する情報のいずれかが含まれる。
以上がステップS151の処理の説明である。
ストレージシステム200から読み出されたデータをサーバキャッシュ130に格納すると判定された場合、OS110は、ステップS106に進む。ステップS106からステップS111の処理は実施例1と同一の処理である。
ストレージシステム200から読み出されたデータをサーバキャッシュ130に格納しないと判定された場合、OS110は、アプリケーション120に完了通知を送信し(ステップS152)、処理を終了する。このとき、キャッシュドライバ111は、サーバキャッシュ130に読出対象のデータが格納されないように制御する。
その他の処理は実施例1と同一であるため説明を省略する。
図7A及び図7Bは、本発明の実施例2におけるストレージシステム200が実行するI/O処理の一例を説明するフローチャートである。以下実施例1との差異を中心に説明する。
ストレージ制御部210は、ストレージキャッシュ220から読出対象のデータを読み出した後(ステップS204)、ポリシ情報230に基づいて、サーバキャッシュ130に当該データを格納するか否かを判定する(ステップS251)。具体的には、以下のような処理が実行される。
ストレージ制御部210は、読出要求に含まれるLUの識別情報に基づいてポリシ情報230のLUN301を参照し、読出対象のデータが格納されるLUに対応するエントリを検索する。
ストレージ制御部210は、検索されたエントリのアクセスサイズ閾値302を参照し、読出対象のデータのサイズがアクセスサイズ閾値302の値より大きいか否かを判定する。
なお、読出対象のデータのサイズは、例えば、論理ブロック単位のデータの読み出しの場合、論理ブロックのサイズに読み出されるブロックデータの数を乗算することによって算出することができる。また、ファイル単位のデータの読み出しの場合、ファイルのサイズを用いてもよい。
読出対象のデータのサイズがアクセスサイズ閾値302の値より大きい場合、ストレージ制御部210は、サーバキャッシュ130に読出対象のデータを格納すると判定する。
以上がステップS251の処理の説明である。
サーバキャッシュ130に読出対象のデータを格納すると判定された場合、ストレージ制御部210は、サーバキャッシュ130への読出対象のデータの格納を指示する情報を含む判定結果及び読出対象のデータをサーバ100に送信する(ステップS252)。その後、ストレージ制御部210は、ストレージキャッシュ220から読み出されたデータを無効化し(Invalidate)(ステップS207)、処理を終了する。
サーバキャッシュ130に読出対象のデータを格納しないと判定された場合、ストレージ制御部210は、サーバキャッシュ130への読出対象のデータの格納を禁止する情報を含む判定結果及び読出対象のデータをサーバ100に送信し(ステップS253)、処理を終了する。読み出されたデータの送信が、完了通知の送信に対応する。
判定結果に含まれる情報として、サーバキャッシュ130にデータを格納する旨を示すフラグを用いる方法が考えられる。例えば、サーバキャッシュ130に読出対象のデータを格納すると判定した場合、フラグを含む判定結果を送信する。
この場合、キャッシュドライバ111は、判定結果にフラグが含まれるか否かを判定する。判定結果にフラグが含まれる場合、キャッシュドライバ111は、サーバキャッシュ130に読出対象のデータを格納すると判定する。
実施例2によれば、読出対象のデータのうち、読出処理の高速化の効果が大きいデータを優先的にサーバキャッシュ130に格納する。これによって、キャッシュの記憶領域を有効に活用し、かつ、キャッシュの利用効率を向上することができる。
(変形例)
実施例2では、ストレージシステム200がキャッシュ制御の判定処理を実行する。変形例では、サーバ100がキャッシュ制御の判定処理を実行する点が実施例1と異なる。以下、実施例1との差異を中心に説明する。
変形例では、サーバ100のメモリ102にポリシ情報が格納される点が異なる。また、変形例では、ストレージシステム200のメモリ203にはポリシ情報230が格納されない。なお、ポリシ情報は、実施例1のポリシ情報230と同一の情報である。
ここで、I/O処理の差異について説明する。
サーバ100のI/O処理は以下の点が異なる。
ステップS102において、キャッシュミスヒットの場合、OS110は、ポリシ情報に基づいて、サーバキャッシュ130に読出対象のデータを格納するか否かを判定する。
サーバキャッシュ130に読出対象のデータを格納すると判定された場合、OS110は、サーバキャッシュ130に読出対象のデータを格納する旨の判定結果及び読出要求をストレージシステム200に送信する。その後、OS110は、ステップS107以降の処理を実行する。
サーバキャッシュ130に読出対象のデータを格納しないと判定された場合、OS110は、サーバキャッシュ130に読出対象のデータを格納しない旨の判定結果及び読出要求をストレージシステム200に送信する。その後、OS110は、ステップS152の処理を実行する。
ストレージシステム200のI/O処理は以下の点が異なる。
ステップS251では、ストレージ制御部210は、読出要求とともに受信した判定結果に基づいて、ストレージキャッシュ220に読出対象のデータを格納するか否かを判定する。
また、ステップS252及びステップS253では、データのみを送信する。これは、サーバ100に判定結果を送信する必要がないためである。
実施例3は、計算機システムの構成が実施例1と異なる。具体的には、複数のサーバ100が同一のストレージシステム200に接続される。以下、実施例1との差異を中心に実施例3について説明する。
図8は、本発明の実施例3の計算機システムの構成例を示すブロック図である。
複数のサーバ100が、スイッチ400を介して同一のストレージシステム200に接続される。スイッチ400は、例えば、FCスイッチ等が考えられる。実施例3では、複数のサーバ100がストレージシステム200に格納されるデータを共有する。
サーバ100及びストレージシステム200のハードウェア構成及びソフトウェア構成は実施例1と同一であるため説明を省略する。
複数のサーバ100がデータを共有するシステムでは、二つ以上のサーバ100のサーバキャッシュ130に同一のデータが格納される可能性がある。この場合、一つのサーバ100において書込要求が発生した場合、同一のデータを保持するサーバとの間でデータの一貫性を確保する必要がある。
一つの方法としては、ストレージ制御部210が、更新されたデータを無効化するための指示を送信する方法が考えられる。
具体的には、ストレージ制御部210は、ステップS214の処理の実行後、ストレージシステム200に接続される全てのサーバ100に、データの無効化の指示を送信する。なお、当該指示には書き込まれたデータの識別情報が含まれる。
各サーバ100のキャッシュドライバ111は、当該指示を受信すると、データの識別情報に基づいて、サーバキャッシュ130に対象のデータが格納されているか否かを判定する。サーバキャッシュ130に対象のデータが格納されていると判定された場合、キャッシュドライバ111は、当該データを無効化する。
実施例3によれば、キャッシュの利用効率を向上しつつ、キャッシュに格納されているデータの不整合を回避することができる。
各実施例では、ソフトウェアによる制御を用いた例について説明したが、その一部をハードウェアによって実現することも可能である。
以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。
100 サーバ
101 プロセッサ
102 メモリ
103 キャッシュデバイス
104 接続インタフェース
110 OS
111 キャッシュドライバ
120 アプリケーション
200 ストレージシステム
201 コントローラ
202 プロセッサ
203 メモリ
204 接続インタフェース
205 ストレージインタフェース
206 記憶媒体
210 ストレージ制御部
220 ストレージキャッシュ
230 ポリシ情報
400 スイッチ

Claims (16)

  1. アプリケーションが稼働するサーバ、及び、前記アプリケーションが使用するデータを格納するストレージシステムを備える計算機システムであって、
    前記サーバは、第1のプロセッサ、第1のメモリ、一時的にデータを格納するサーバキャッシュが設定されるキャッシュデバイス、及び他の装置と接続するための第1のインタフェースを有し、
    前記ストレージシステムは、第2のプロセッサ、第2のメモリ、及び他の装置と接続するための第2のインタフェースを含むコントローラ、並びに複数の記憶装置を有し、
    前記サーバは、前記サーバを制御するオペレーティングシステムを有し、
    前記ストレージシステムは、一時的にデータを格納するストレージキャッシュ、及び前記ストレージシステムを制御するストレージ制御部を有し、
    前記オペレーティングシステムは、前記サーバキャッシュを制御するキャッシュドライバを含み、
    前記ストレージ制御部は、データが格納されている記憶領域の識別情報及びデータサイズの閾値を含むポリシ情報を保持し、
    前記オペレーティングシステムは前記アプリケーションから前記サーバキャッシュに格納されていない第1のデータの読出要求を受信した場合、前記ストレージシステムに前記第1のデータの読出要求を送信し
    前記ストレージ制御部は、
    前記サーバから前記第1のデータの読出要求を受信した場合、前記第1のデータが前記ストレージキャッシュに格納されているか否かを判定し、
    前記第1のデータが前記ストレージキャッシュに格納されていないと判定された場合、前記記憶装置から前記第1のデータを読み出して、読み出された前記第1のデータを前記サーバに送信し、
    前記第1のデータが前記ストレージキャッシュに格納されていると判定された場合、前記ストレージキャッシュから前記第1のデータを読み出し、
    前記第1のデータが格納されている第1の記憶領域の識別情報に基づいて前記ポリシ情報を参照して、前記第1のデータのデータサイズが前記第1の記憶領域に対応するデータサイズの閾値より大きいか否かを判定し、
    前記第1のデータのデータサイズが前記第1の記憶領域に対応するデータサイズの閾値より大きいと判定された場合、前記第1のデータ及び前記サーバキャッシュへの前記第1のデータの格納を指示する判定結果を前記サーバに送信し、前記ストレージキャッシュに格納されている前記第1のデータを無効化し、
    前記第1のデータのデータサイズが前記第1の記憶領域に対応するデータサイズの閾値以下であると判定された場合、前記第1のデータ及び前記サーバキャッシュへの前記第1のデータの格納を禁止する判定結果を前記サーバに送信し、
    前記オペレーティングシステムは、
    前記ストレージシステムから前記第1のデータを受信した場合、前記第1のデータとともに受信した前記判定結果に基づいて、前記サーバキャッシュに前記ストレージシステムから受信した前記第1のデータを格納するか否かを判定し、
    前記サーバキャッシュに前記ストレージシステムから受信した前記第1のデータを格納すると判定された場合、前記第1のデータを前記アプリケーションに送信し、前記サーバキャッシュに前記ストレージシステムから受信した前記第1のデータを格納し、
    前記サーバキャッシュに前記ストレージシステムから受信した前記第1のデータを格納しないと判定された場合、前記第1のデータを前記アプリケーションに送信することを特徴とする計算機システム。
  2. 請求項1に記載の計算機システムであって、
    前記オペレーティングシステムは、
    前記サーバキャッシュに前記ストレージシステムから受信した前記第1のデータを格納する場合に、前記サーバキャッシュに前記第1のデータを格納する記憶領域を確保できるか否かを判定し、
    前記サーバキャッシュに前記第1のデータを格納する記憶領域を確保できないと判定された場合、前記サーバキャッシュに格納されているデータの中から前記第1のデータと置き換える第2のデータを選択し、
    前記ストレージシステムに、前記第2のデータが置き換えられる旨を通知する置き換え通知を送信し、
    前記第2のデータが格納されている記憶領域に前記ストレージシステムから受信した前記第1のデータを格納し、
    前記ストレージ制御部は、
    前記置き換え通知を受信した場合、前記記憶装置から前記第2のデータを読み出し、
    読み出された前記第2のデータを前記ストレージキャッシュに格納することを特徴とする計算機システム。
  3. 請求項1に記載の計算機システムであって、
    前記オペレーティングシステムは、
    前記サーバキャッシュに前記ストレージシステムから受信した前記第1のデータを格納する場合に、前記サーバキャッシュに前記第1のデータを格納する記憶領域を確保できるか否かを判定し、
    前記サーバキャッシュに前記第1のデータを格納する記憶領域を確保できないと判定された場合、前記サーバキャッシュに格納されているデータの中から前記第1のデータと置き換える第2のデータを選択し、
    前記ストレージシステムに、前記第2のデータを含む置き換え通知を送信し、
    前記第2のデータが格納されている記憶領域に前記ストレージシステムから受信した前記第1のデータを格納し、
    前記ストレージ制御部は、前記置き換え通知を受信した場合、前記置き換え通知に含まれる前記第2のデータを前記ストレージキャッシュに格納することを特徴とする計算機システム。
  4. 請求項2又は請求項3に記載の計算機システムであって、
    前記ストレージシステムに、複数の前記サーバが接続され、
    二つ以上の前記サーバの前記サーバキャッシュに同一の第3のデータが格納され、
    前記ストレージ制御部は、
    前記二つ以上のサーバのうちの一つの前記サーバから前記第3のデータの書込要求を受信した場合、前記ストレージキャッシュに格納されている前記第3のデータを更新し、
    前記二つ以上のサーバに前記第3のデータを無効化する旨の指示を送信することを特徴とする計算機システム。
  5. アプリケーションが稼働するサーバ、及び、前記アプリケーションが使用するデータを格納するストレージシステムを備える計算機システムにおけるキャッシュ制御方法であって、
    前記サーバは、第1のプロセッサ、第1のメモリ、一時的にデータを格納するサーバキャッシュが設定されるキャッシュデバイス、及び他の装置と接続するための第1のインタフェースを有し、
    前記ストレージシステムは、第2のプロセッサ、第2のメモリ、及び他の装置と接続するための第2のインタフェースを含むコントローラ、並びに複数の記憶装置を有し、
    前記サーバは、前記サーバを制御するオペレーティングシステムを有し、
    前記ストレージシステムは、一時的にデータを格納するストレージキャッシュ、及び前記ストレージシステムを制御するストレージ制御部を有し、
    前記オペレーティングシステムは、前記サーバキャッシュを制御するキャッシュドライバを含み、
    前記ストレージ制御部は、データが格納されている記憶領域の識別情報及びデータサイズの閾値を含むポリシ情報を保持し、
    前記キャッシュ制御方法は、
    前記オペレーティングシステムが、前記アプリケーションから前記サーバキャッシュに格納されていない第1のデータの読出要求を受信した場合、前記ストレージシステムに前記第1のデータの読出要求を送信する第1のステップと、
    前記ストレージ制御部が、前記サーバから前記第1のデータの読出要求を受信した場合、前記第1のデータが前記ストレージキャッシュに格納されているか否かを判定する第2のステップと、
    前記ストレージ制御部が、前記第1のデータが前記ストレージキャッシュに格納されていると判定された場合、前記ストレージキャッシュから前記第1のデータを読み出して、読み出された前記第1のデータを前記サーバに送信する第3のステップと、
    前記ストレージ制御部が、前記第1のデータが前記ストレージキャッシュに格納されていないと判定された場合、前記記憶装置から前記第1のデータを読み出して、読み出された前記第1のデータを前記サーバに送信する第4のステップと、
    前記オペレーティングシステムが、前記ストレージシステムから受信した前記第1のデータを前記アプリケーションに送信する第5のステップと、を含み、
    前記第3のステップは、
    前記ストレージキャッシュから前記第1のデータを読み出すステップと、
    前記第1のデータが格納されている第1の記憶領域の識別情報に基づいて前記ポリシ情報を参照し、前記第1のデータのデータサイズが前記第1の記憶領域に対応するデータサイズの閾値より大きいか否かを判定するステップと、
    前記第1のデータのデータサイズが前記第1の記憶領域に対応するデータサイズの閾値より大きいと判定された場合、前記第1のデータ及び前記サーバキャッシュへの前記第1のデータの格納を指示する判定結果を前記サーバに送信し、前記ストレージキャッシュに格納されている前記第1のデータを無効化するステップと、
    前記第1のデータのデータサイズが前記第1の記憶領域に対応するデータサイズの閾値以下であると判定された場合、前記第1のデータ及び前記サーバキャッシュへの前記第1のデータの格納を禁止する判定結果を前記サーバに送信するステップと、を含み、
    前記第5のステップは、
    前記第1のデータとともに受信した前記判定結果に基づいて、前記サーバキャッシュに前記ストレージシステムから受信した前記第1のデータを格納するか否かを判定する第6のステップと、
    前記サーバキャッシュに前記第1のデータを格納すると判定された場合、前記ストレージシステムから受信した前記第1のデータを前記アプリケーションに送信し、前記サーバキャッシュに前記ストレージシステムから受信した前記第1のデータを格納する第7のステップと、
    前記サーバキャッシュに前記第1のデータを格納しないと判定された場合、前記ストレージシステムから受信した前記第1のデータを前記アプリケーションに送信する第8のステップと、を含むことを特徴とするキャッシュ制御方法。
  6. 請求項5に記載のキャッシュ制御方法であって、
    前記第7のステップは、
    前記サーバキャッシュに前記第1のデータを格納する記憶領域を確保できるか否かを判定するステップと、
    前記サーバキャッシュに前記第1のデータを格納する記憶領域を確保できないと判定された場合、前記サーバキャッシュに格納されているデータの中から前記第1のデータと置き換える第2のデータを選択するステップと、
    前記ストレージシステムに、前記第2のデータが置き換えられる旨を通知する置き換え通知を送信するステップと、
    前記第2のデータが格納されている記憶領域に前記ストレージシステムから受信した前記第1のデータを格納するステップと、を含み、
    前記キャッシュ制御方法は、
    前記ストレージ制御部が、前記置き換え通知を受信した場合、前記記憶装置から前記第2のデータを読み出すステップと、
    前記ストレージ制御部が、読み出された前記第2のデータを前記ストレージキャッシュに格納するステップと、を含むことを特徴とするキャッシュ制御方法。
  7. 請求項5に記載のキャッシュ制御方法であって、
    前記第7のステップは、
    前記サーバキャッシュに前記第1のデータを格納する記憶領域を確保できるか否かを判定するステップと、
    前記サーバキャッシュに前記第1のデータを格納する記憶領域を確保できないと判定された場合、前記サーバキャッシュに格納されているデータの中から前記第1のデータと置き換える第2のデータを選択するステップと、
    前記ストレージシステムに、前記第2のデータを含む置き換え通知を送信するステップと、
    前記第2のデータが格納されている記憶領域に前記ストレージシステムから受信した前記第1のデータを格納するステップと、を含み、
    前記キャッシュ制御方法は、前記ストレージ制御部が、前記置き換え通知を受信した場合、前記置き換え通知に含まれる前記第2のデータを前記ストレージキャッシュに格納するステップを含むことを特徴とするキャッシュ制御方法。
  8. 請求項6又は請求項7に記載のキャッシュ制御方法であって、
    前記ストレージシステムに、複数の前記サーバが接続され、
    二つ以上の前記サーバの前記サーバキャッシュに同一の第3のデータが格納され、
    前記キャッシュ制御方法は、
    前記ストレージ制御部が、前記二つ以上のサーバのうちの一つの前記サーバから前記第3のデータの書込要求を受信した場合、前記ストレージキャッシュに格納されている前記第3のデータを更新するステップと、
    前記ストレージ制御部が、前記二つ以上のサーバに前記第3のデータを無効化する旨の指示を送信するステップと、を含むことを特徴とするキャッシュ制御方法。
  9. アプリケーションが稼働するサーバ、及び、前記アプリケーションが使用するデータを格納するストレージシステムを備える計算機システムであって、
    前記サーバは、第1のプロセッサ、第1のメモリ、一時的にデータを格納するサーバキャッシュが設定されるキャッシュデバイス、及び他の装置と接続するための第1のインタフェースを有し、
    前記ストレージシステムは、第2のプロセッサ、第2のメモリ、及び他の装置と接続するための第2のインタフェースを含むコントローラ、並びに複数の記憶装置を有し、
    前記サーバは、前記サーバを制御するオペレーティングシステムを有し、
    前記ストレージシステムは、一時的にデータを格納するストレージキャッシュ、及び前記ストレージシステムを制御するストレージ制御部を有し、
    前記オペレーティングシステムは、
    前記サーバキャッシュを制御するキャッシュドライバを含み、
    データが格納されている記憶領域の識別情報及びデータサイズの閾値を含むポリシ情報を保持し、
    前記オペレーティングシステムは、
    前記アプリケーションから前記サーバキャッシュに格納されていない第1のデータの読出要求を受信した場合、前記第1のデータが格納されている第1の記憶領域の識別情報に基づいて前記ポリシ情報を参照し、
    前記第1のデータのデータサイズが前記第1の記憶領域に対応するデータサイズの閾値より大きいか否かを判定し、
    前記第1のデータのデータサイズが前記第1の記憶領域に対応するデータサイズの閾値より大きいと判定された場合、前記サーバキャッシュに前記第1のデータを格納する旨の判定結果及び前記第1のデータの読出要求を前記ストレージシステムに送信し、前記ストレージシステムから受信した前記第1のデータを前記アプリケーションに送信し、前記サーバキャッシュに前記ストレージシステムから受信した前記第1のデータを格納し、
    前記第1のデータのデータサイズが前記第1の記憶領域に対応するデータサイズの閾値以下であると判定された場合、前記サーバキャッシュに前記第1のデータを格納しない旨の判定結果及び前記第1のデータの読出要求を前記ストレージシステムに送信し、前記ストレージシステムから受信した前記第1のデータを前記アプリケーションに送信し、
    前記ストレージ制御部は、
    前記サーバから前記第1のデータの読出要求を受信した場合、前記第1のデータが前記ストレージキャッシュに格納されているか否かを判定し、
    前記第1のデータが前記ストレージキャッシュに格納されていないと判定された場合、前記記憶装置から前記第1のデータを読み出して、読み出された前記第1のデータを前記サーバに送信し、
    前記第1のデータが前記ストレージキャッシュに格納されていると判定された場合、前記ストレージキャッシュから前記第1のデータを読み出し、
    前記第1のデータの読出要求とともに受信した前記判定結果に基づいて、前記サーバキャッシュに前記第1のデータを格納するか否かを判定し、
    前記サーバキャッシュに前記第1のデータを格納しないと判定された場合、読み出された前記第1のデータを前記サーバに送信し、
    前記サーバキャッシュに前記第1のデータを格納すると判定された場合、読み出された前記第1のデータを前記サーバに送信し、前記ストレージキャッシュに格納されている前記第1のデータを無効化することを特徴とする計算機システム。
  10. 請求項9に記載の計算機システムであって、
    前記オペレーティングシステムは、
    前記サーバキャッシュに前記ストレージシステムから受信した前記第1のデータを格納する場合に、前記サーバキャッシュに前記第1のデータを格納する記憶領域を確保できるか否かを判定し、
    前記サーバキャッシュに前記第1のデータを格納する記憶領域を確保できないと判定された場合、前記サーバキャッシュに格納されているデータの中から前記第1のデータと置き換える第2のデータを選択し、
    前記ストレージシステムに、前記第2のデータが置き換えられる旨を通知する置き換え通知を送信し、
    前記第2のデータが格納されている記憶領域に前記ストレージシステムから受信した前記第1のデータを格納し、
    前記ストレージ制御部は、
    前記置き換え通知を受信した場合、前記記憶装置から前記第2のデータを読み出し、
    読み出された前記第2のデータを前記ストレージキャッシュに格納することを特徴とする計算機システム。
  11. 請求項9に記載の計算機システムであって、
    前記オペレーティングシステムは、
    前記サーバキャッシュに前記ストレージシステムから受信した前記第1のデータを格納する場合に、前記サーバキャッシュに前記第1のデータを格納する記憶領域を確保できるか否かを判定し、
    前記サーバキャッシュに前記第1のデータを格納する記憶領域を確保できないと判定された場合、前記サーバキャッシュに格納されているデータの中から前記第1のデータと置き換える第2のデータを選択し、
    前記ストレージシステムに、前記第2のデータを含む置き換え通知を送信し、
    前記第2のデータが格納されている記憶領域に前記ストレージシステムから受信した前記第1のデータを格納し、
    前記ストレージ制御部は、前記置き換え通知を受信した場合、前記置き換え通知に含まれる前記第2のデータを前記ストレージキャッシュに格納することを特徴とする計算機システム。
  12. 請求項10又は請求項11に記載の計算機システムであって、
    前記ストレージシステムに、複数の前記サーバが接続され、
    二つ以上の前記サーバの前記サーバキャッシュに同一の第3のデータが格納され、
    前記ストレージ制御部は、
    前記二つ以上のサーバのうちの一つの前記サーバから前記第3のデータの書込要求を受信した場合、前記ストレージキャッシュに格納されている前記第3のデータを更新し、
    前記二つ以上のサーバに前記第3のデータを無効化する旨の指示を送信することを特徴とする計算機システム。
  13. アプリケーションが稼働するサーバ、及び、前記アプリケーションが使用するデータを格納するストレージシステムを備える計算機システムにおけるキャッシュ制御方法であって、
    前記サーバは、第1のプロセッサ、第1のメモリ、一時的にデータを格納するサーバキャッシュが設定されるキャッシュデバイス、及び他の装置と接続するための第1のインタフェースを有し、
    前記ストレージシステムは、第2のプロセッサ、第2のメモリ、及び他の装置と接続するための第2のインタフェースを含むコントローラ、並びに複数の記憶装置を有し、
    前記サーバは、前記サーバを制御するオペレーティングシステムを有し、
    前記ストレージシステムは、一時的にデータを格納するストレージキャッシュ、及び前記ストレージシステムを制御するストレージ制御部を有し、
    前記オペレーティングシステムは、
    前記サーバキャッシュを制御するキャッシュドライバを含み、
    データが格納されている記憶領域の識別情報及びデータサイズの閾値を含むポリシ情報を保持し、
    前記キャッシュ制御方法は、
    前記オペレーティングシステムが、前記アプリケーションから前記サーバキャッシュに格納されていない第1のデータの読出要求を受信した場合、前記ストレージシステムに前記第1のデータの読出要求を送信する第1のステップと、
    前記ストレージ制御部が、前記サーバから前記第1のデータの読出要求を受信した場合、前記第1のデータが前記ストレージキャッシュに格納されているか否かを判定する第2のステップと、
    前記ストレージ制御部が、前記第1のデータが前記ストレージキャッシュに格納されていると判定された場合、前記ストレージキャッシュから前記第1のデータを読み出して、読み出された前記第1のデータを前記サーバに送信する第3のステップと、
    前記ストレージ制御部が、前記第1のデータが前記ストレージキャッシュに格納されていないと判定された場合、前記記憶装置から前記第1のデータを読み出して、読み出された前記第1のデータを前記サーバに送信する第4のステップと、
    前記オペレーティングシステムが、前記ストレージシステムから受信した前記第1のデータを前記アプリケーションに送信する第5のステップと、を含み、
    前記第1のステップは、
    前記第1のデータが格納されている第1の記憶領域の識別情報に基づいて前記ポリシ情報を参照し、前記第1のデータのデータサイズが前記第1の記憶領域に対応するデータサイズの閾値より大きいか否かを判定するステップと、
    前記第1のデータのデータサイズが前記第1の記憶領域に対応するデータサイズの閾値より大きいと判定された場合、前記サーバキャッシュに前記第1のデータを格納する旨の判定結果及び前記第1のデータの読出要求を前記ストレージシステムに送信するステップと、
    前記第1のデータのデータサイズが前記第1の記憶領域に対応するデータサイズの閾値以下であると判定された場合、前記サーバキャッシュに前記第1のデータを格納しない旨の判定結果及び前記第1のデータの読出要求を前記ストレージシステムに送信するステップと、を含み、
    前記第5のステップは、前記第1のデータのデータサイズが前記第1の記憶領域に対応するデータサイズの閾値より大きいと判定された場合に、前記サーバキャッシュに前記ストレージシステムから受信した前記第1のデータを格納する第6のステップを含み、
    前記第3のステップは、
    前記ストレージキャッシュから前記第1のデータを読み出すステップと、
    前記第1のデータの読出要求とともに受信した前記判定結果に基づいて、前記サーバキャッシュに前記第1のデータを格納するか否かを判定するステップと、
    前記サーバキャッシュに前記第1のデータを格納しないと判定された場合、読み出された前記第1のデータを前記サーバに送信するステップと、
    前記サーバキャッシュに前記第1のデータを格納すると判定された場合、読み出された前記第1のデータを前記サーバに送信し、前記ストレージキャッシュに格納されている前記第1のデータを無効化するステップと、を含むことを特徴とするキャッシュ制御方法。
  14. 請求項13に記載のキャッシュ制御方法であって、
    前記第6のステップは、
    前記サーバキャッシュに前記第1のデータを格納する記憶領域を確保できるか否かを判定するステップと、
    前記サーバキャッシュに前記第1のデータを格納する記憶領域を確保できないと判定された場合、前記サーバキャッシュに格納されているデータの中から前記第1のデータと置き換える第2のデータを選択するステップと、
    前記ストレージシステムに、前記第2のデータが置き換えられる旨を通知する置き換え通知を送信するステップと、
    前記第2のデータが格納されている記憶領域に前記ストレージシステムから受信した前記第1のデータを格納するステップと、を含み、
    前記キャッシュ制御方法は、
    前記ストレージ制御部が、前記置き換え通知を受信した場合、前記記憶装置から前記第2のデータを読み出すステップと、
    前記ストレージ制御部が、読み出された前記第2のデータを前記ストレージキャッシュに格納するステップと、を含むことを特徴とするキャッシュ制御方法。
  15. 請求項13に記載のキャッシュ制御方法であって、
    前記第6のステップは、
    前記サーバキャッシュに前記第1のデータを格納する記憶領域を確保できるか否かを判定するステップと、
    前記サーバキャッシュに前記第1のデータを格納する記憶領域を確保できないと判定された場合、前記サーバキャッシュに格納されているデータの中から前記第1のデータと置き換える第2のデータを選択するステップと、
    前記ストレージシステムに、前記第2のデータを含む置き換え通知を送信するステップと、
    前記第2のデータが格納されている記憶領域に前記ストレージシステムから受信した前記第1のデータを格納するステップと、を含み、
    前記キャッシュ制御方法は、前記ストレージ制御部が、前記置き換え通知を受信した場合、前記置き換え通知に含まれる前記第2のデータを前記ストレージキャッシュに格納するステップを含むことを特徴とするキャッシュ制御方法。
  16. 請求項14又は請求項15に記載のキャッシュ制御方法であって、
    前記ストレージシステムに、複数の前記サーバが接続され、
    二つ以上の前記サーバの前記サーバキャッシュに同一の第3のデータが格納され、
    前記キャッシュ制御方法は、
    前記ストレージ制御部が、前記二つ以上のサーバのうちの一つの前記サーバから前記第3のデータの書込要求を受信した場合、前記ストレージキャッシュに格納されている前記第3のデータを更新するステップと、
    前記ストレージ制御部が、前記二つ以上のサーバに前記第3のデータを無効化する旨の指示を送信するステップと、を含むことを特徴とするキャッシュ制御方法。
JP2013111690A 2013-05-28 2013-05-28 計算機システム及びキャッシュ制御方法 Expired - Fee Related JP6066831B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013111690A JP6066831B2 (ja) 2013-05-28 2013-05-28 計算機システム及びキャッシュ制御方法
US14/287,206 US9304918B2 (en) 2013-05-28 2014-05-27 Computer system and cache control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013111690A JP6066831B2 (ja) 2013-05-28 2013-05-28 計算機システム及びキャッシュ制御方法

Publications (2)

Publication Number Publication Date
JP2014232349A JP2014232349A (ja) 2014-12-11
JP6066831B2 true JP6066831B2 (ja) 2017-01-25

Family

ID=51986508

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013111690A Expired - Fee Related JP6066831B2 (ja) 2013-05-28 2013-05-28 計算機システム及びキャッシュ制御方法

Country Status (2)

Country Link
US (1) US9304918B2 (ja)
JP (1) JP6066831B2 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6901477B2 (en) * 2002-04-01 2005-05-31 Emc Corporation Provision of a victim cache within a storage cache hierarchy
JP4631301B2 (ja) * 2004-03-31 2011-02-16 株式会社日立製作所 記憶装置のキャッシュ管理方法
JP2010237739A (ja) 2009-03-30 2010-10-21 Fujitsu Ltd キャッシュ制御装置,情報処理装置およびキャッシュ制御プログラム
US20110087833A1 (en) 2009-10-08 2011-04-14 Advanced Micro Devices, Inc. Local nonvolatile write-through cache for a data server having network-based data storage, and related operating methods

Also Published As

Publication number Publication date
US20140359227A1 (en) 2014-12-04
US9304918B2 (en) 2016-04-05
JP2014232349A (ja) 2014-12-11

Similar Documents

Publication Publication Date Title
US10042560B2 (en) Method and storage array for processing a write data request
US9495294B2 (en) Enhancing data processing performance by cache management of fingerprint index
JP5349897B2 (ja) ストレージシステム
US10061706B2 (en) System and method for eviction and replacement in large content-addressable flash caches
US9280478B2 (en) Cache rebuilds based on tracking data for cache entries
JP6106028B2 (ja) サーバ及びキャッシュ制御方法
JP2018125025A (ja) 適応持続性システム、方法、インタフェース
JP2016170583A (ja) メモリシステムおよび情報処理システム
US20060174074A1 (en) Point-in-time copy operation
US9658957B2 (en) Systems and methods for managing data input/output operations
JP2008198049A (ja) ストレージシステム
US20170177489A1 (en) Data deduplication system and method in a storage array
US9378152B2 (en) Systems and methods for I/O processing using out-of-band hinting to block driver or storage controller
US8898357B1 (en) Storage integration plugin for virtual servers
WO2015167435A1 (en) Cache management
JP2019169101A (ja) 電子機器、コンピュータシステム、および制御方法
CN108228088B (zh) 用于管理存储***的方法和设备
JP6171084B2 (ja) ストレージシステム
US20120047330A1 (en) I/o efficiency of persistent caches in a storage system
Han et al. Remap-based inter-partition copy for arrayed solid-state drives
JP2015184883A (ja) 計算機システム
JP6066831B2 (ja) 計算機システム及びキャッシュ制御方法
US20140337583A1 (en) Intelligent cache window management for storage systems
US20210263648A1 (en) Method for managing performance of logical disk and storage array
KR101831126B1 (ko) 스토리지 내의 데이터 처리 장치의 제어 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151120

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160816

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161003

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161220

R150 Certificate of patent or registration of utility model

Ref document number: 6066831

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees