JP4412981B2 - ストレージシステム及同システムにおけるデータキャッシング方法 - Google Patents

ストレージシステム及同システムにおけるデータキャッシング方法 Download PDF

Info

Publication number
JP4412981B2
JP4412981B2 JP2003396296A JP2003396296A JP4412981B2 JP 4412981 B2 JP4412981 B2 JP 4412981B2 JP 2003396296 A JP2003396296 A JP 2003396296A JP 2003396296 A JP2003396296 A JP 2003396296A JP 4412981 B2 JP4412981 B2 JP 4412981B2
Authority
JP
Japan
Prior art keywords
data
cache memory
write
read
local cache
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003396296A
Other languages
English (en)
Other versions
JP2005157815A (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 JP2003396296A priority Critical patent/JP4412981B2/ja
Priority to US10/770,007 priority patent/US7337281B2/en
Publication of JP2005157815A publication Critical patent/JP2005157815A/ja
Application granted granted Critical
Publication of JP4412981B2 publication Critical patent/JP4412981B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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
    • 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
    • G06F3/0611Improving I/O performance in relation to response time
    • 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
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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/283Plural cache memories
    • G06F2212/284Plural cache memories being distributed

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)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、RAID方式のディスクアレイ装置に代表されるようなストレージシステムに関わり、特に、ホスト装置からのデータ入出力要求への応答を高速にするためのデータキャッシングの技術の改良に関する。
RAID方式のディスクアレイ装置に代表されるストレージシステムは、例えば、ホスト装置に対するコマンド及びデータの通信を行う複数のチャネルアダプタ、データを保存するためのハードディスクドライのような多数のストレージデバイス、それらストレージデバイスに対するコマンド及びデータの通信を行う複数のストレージアダプタ、上記複数のチャネルアダプタとストレージアダプタ間で送受されるデータを一時的に記憶するためのキャッシュメモリ、及び上記複数のチャネルアダプタとストレージアダプタをキャッシュメモリに接続するための接続ネットワークなどを備える。キャッシュメモリは、いずれのチャネルアダプタ及びストレージアダプタからもアクセスされ得るように、それらと接続される。ストレージデバイスのデータリード/ライト速度が低速であっても、キャッシュメモリを利用することで、ホスト装置からのデータリード/ライト要求に対する応答速度をより高速にすることができる。
このようなストレージシステムにおいて、複数のチャネルアダプタをキャッシュメモリに接続するための接続ネットワークには、様々なアーキテクチャが採用され得る。例えば、特許文献1には、階層スターネットアーキテクチャと呼ばれ得るものが記載されており、そこでは、複数のチャネルアダプタとキャッシュメモリとがセレクタに接続され、このセレクタがキャッシュメモリと複数のチャネルアダプタ間の複数の通信パスを切り替えるようになっている。また、クロスバースイッチを介して両者を接続するクロスバースイッチアーキテクチャや、共通バスを介して接続するクロスバースイッチアーキテクチャなども知られている。また、複数のチャネルアダプタの各々が、一対一の専用接続線で直接的に、キャッシュメモリに接続されている種類の接続ネットワークも知られている。
特開2000−339101号(図1、図2、段落0005〜0006など)
上記のようなストレージシステムにおいて、ホスト装置からデータリード/ライト要求が到来すると、リード/ライト対象のデータは、キャッシュメモリから上述した接続ネットワークを経由してチャネルアダプタに読み込まれ、そこからホスト装置に転送されるか、又は、ホスト装置から前記と逆の経路を通ってキャッシュメモリに書き込まれる。従って、ホスト装置からの要求が到来した時から、チャネルアダプタと接続ネットワークの制御が行われ、そして、データがキャッシュメモリから接続ネットワークを通ってチャネルアダプタ内のバッファに届く(又は、それとは逆の経路でデータが転送される)のに要する時間だけ、ホスト装置に対するストレージシステムの応答が遅れる。
従って、本発明の目的は、ホスト装置からのデータリード/ライト要求に対するストレージシステムの応答を一層高速化することができる、新規なキャッシュメモリの構成と制御を提供することにある。
本発明の一つに観点に従うストレージシステムは、1以上のホスト装置とのデータ通信をそれぞれ行う複数のチャネルアダプタと、データを保存する複数のストレージデバイスと、前記複数のストレージデバイスとのデータ通信をそれぞれ行う複数のストレージアダプタと、前記複数のチャネルアダプタと前記複数のストレージアダプタと間で送受されるデータを一時的に記憶するためのメインキャッシュメモリと、前記複数のチャネルアダプタと前記複数のストレージアダプタを前記メインキャッシュメモリに接続するための接続ネットワークとを備える。前記複数のチャネルアダプタの各々が、前記ホスト装置とのデータ通信を制御するプロセッサと、前記ホスト装置によりアクセスされるデータを一時的に記憶するためのローカルキャッシュメモリとを有する。そして、各チャネルアダプタ内の各プロセッサが、前記ホスト装置からライトデータ及び前記ライトデータについてのライト要求を受信した場合、前記ライトデータを前記ローカルキャッシュメモリに書き、前記ライトデータの前記ストレージデバイス内での記憶場所を特定するためのディレクトリ情報を記憶し、前記ライト要求に対する応答を前記ホスト装置に送り、そして、前記ライトデータが前記ストレージアダプタによって前記ストレージデバイスに書かれるようにするために、前記ライトデータを前記ローカルキャッシュメモリから前記メインキャッシュメモリへ前記接続ネットワークを介して転送するように構成されている。
一つの実施形態においては、前記各プロセッサが、前記ライト要求を受信してから前記応答を前記ホスト装置に送るまでの処理と同期的なタイミングで、前記ライトデータを前記ローカルキャッシュメモリに書き、前記ライトデータのディレクトリ情報を記憶し、一方、前記ライト要求を受信してから前記応答を前記ホスト装置に送るまでの処理とは非同期的なタイミングで、バックライトキャッシングの方法により、前記ライトデータを前記ローカルキャッシュメモリから前記メインキャッシュメモリへ転送するように構成されている。このように、データライト要求の処理とは非同期のタイミングでライトデータをメインキャッシュメモリに書くキャッシング方法を、この明細書では、ライトバックキャッシング処理方法と呼ぶ。因みに、ライト要求の処理の一環で、つまり、ライト要求処理と同期したタイミングで、ライトデータをメインキャッシュメモリに書くキャッシング方法を、この明細書ではライトスルーキャッシング処理方法と呼ぶ。
一つの実施形態においては、前記各プロセッサは、前記ホスト装置からリードデータについてのリード要求を受信した場合、前記各プロセッサが記憶している前記ディレクトリ情報に基づいて前記リードデータが前記ローカルキャッシュメモリ内に存在するか否かの判断を行い、前記判断の結果、前記リードデータが前記ローカルキャッシュメモリ内に存在する場合、前記ローカルキャッシュメモリ内の前記リードデータを前記ホスト装置に送り、前記判断の結果、前記リードデータが前記ローカルキャッシュメモリ内に存在しない場合、前記リードデータを前記メインキャッシュメモリから前記接続ネットワークを介して読み、前記メインキャッシュメモリから読まれた前記リードデータを前記ローカルキャッシュメモリに書き、前記リードデータの前記ストレージデバイス内での記憶場所を特定するためのディレクトリ情報を記憶し、そして、前記リードデータを前記ホスト装置に送るように構成されている。
一つの実施形態においては、前記各チャネルアダプタが、2以上の前記プロセッサと、少なくとも1つの前記ローカルキャッシュメモリと、前記2以上のプロセッサと前記少なくとも一つのローカルキャッシュメモリとを接続した、前記接続ネットワークよりも高速にデータ伝送可能な内部バスとを有する。そして、前記各チャネルアダプタ内で、各プロセッサが、前記内部バスを介して前記少なくとも一つのローカルキャッシュメモリに直接的にアクセスできるように構成されている。
一つの実施形態においては、少なくとも1つのチャネルアダプタパッケージが備えられ、前記チャネルアダプタパッケージには2以上の前記チャネルアダプタが搭載され、前記2以上のチャネルアダプタが前記内部バスを介して相互に接続されている。そして、前記チャネルアダプタパッケージ上で、前記2以上のチャネルアダプタ内の各プロセッサが、前記内部バスを介して、同じチャネルアダプタ内の前記ローカルキャッシュメモリだけでなく他のチャネルアダプタ内の前記ローカルキャッシュメモリにも直接的にアクセスできるように構成されている。
一つの実施形態においては、前記接続ネットワークが階層スターネットアーキテクチャに従った構造を有している。
一つの実施形態においては、前記各プロセッサが、前記ホスト装置から前記ライト要求を受けた場合、前記ライトデータを2重化して前記ローカルキャッシュメモリに書くように構成されている。
一つの実施形態においては、前記各プロセッサが、前記ホスト装置から前記ライト要求を受けた場合、前記ライト要求がデータリモートコピーを目的とする場合には、前記ライトデータを前記ローカルキャッシュメモリに書くときに2重化を省略するように構成されている。
一つの実施形態においては、前記ローカルキャッシュメモリの記憶領域が、ホストリード/ライト用のキャッシュ領域と、リモートコピー用のキャッシュ領域とを含む。前記各プロセッサが、前記ホスト装置から前記ライト要求を受けた場合、前記ライト要求がデータリモートコピーを目的とする場合には、前記ライトデータを前記リモートコピー用のキャッシュ領域に書き、そうでない場合には、前記ライトデータを前記ホストリード/ライト用のキャッシュ領域に書くように構成されている。
一つの実施形態においては、前記ローカルキャッシュメモリの記憶領域が、前記ホスト装置によるランダムアクセスの対象となるデータを記憶するためのランダムアクセス用のキャッシュ領域と、シーケンシャルアクセスの対象となるデータを記憶するためのシーケンシャルアクセス用のキャッシュ領域とを含む。そして、前記各プロセッサが、前記ランダムアクセス又は前記シーケンシャルアクセスが実行された頻度に応じて、前記ランダムアクセス用のキャッシュ領域と前記シーケンシャルアクセス用のキャッシュ領域の割合を可変制御するように構成されている。
一つの実施形態においては、前記複数のチャネルアダプタにより共有される共有メモリが更に備えられる。前記共有メモリには、前記ローカルキャッシュメモリ内のデータについての排他制御情報が格納されており、前記各チャネルアダプタ内の前記各プロセッサは、前記ローカルキャッシュメモリ内のデータにアクセスする場合、同じデータに対する他の前記プロセッサによるアクセスとの競合を回避するように、前記共有メモリ内の前記排他制御データを使用するように構成されている。
本発明の別の観点に従うストレージシステムは、ホスト装置とのデータ通信を行うチャネルアダプタと、データを保存するストレージデバイスと、前記ストレージデバイスとのデータ通信を行うストレージアダプタと、前記チャネルアダプタと前記ストレージアダプタとに接続され、前記チャネルアダプタと前記ストレージアダプタの間で送受されるデータを一時的に記憶するためのメインキャッシュメモリと、前記チャネルアダプタ内に設けられた、前記ホスト装置によりアクセスされるデータを一時的に記憶するためのローカルキャッシュメモリとを備える。前記チャネルアダプタが、前記ホスト装置からライトデータ及び前記ライトデータについてのライト要求を受信した場合に、前記ライトデータを前記ローカルキャッシュメモリに書き、前記ライトデータの前記ストレージデバイス内での記憶場所を特定するためのディレクトリ情報を記憶し、前記ライト要求に対する応答を前記ホスト装置に送信し、そして、前記ライトデータが前記ストレージアダプタによって前記ストレージデバイスに書かれるようにするために、前記ライトデータを前記ローカルキャッシュメモリから前記メインキャッシュメモリへ転送するように構成されている。
本発明によれば、ホスト装置からのデータリード/ライト要求の処理速度を一層高速化することができる。
図1は、本発明に従うストレージシステム、特にRAID方式のディスクアレイ装置、の一実施形態の全体的な基本構成を示す。
図1に示すように、ディスクアレイ制御装置1は、1又は複数のホストコンピュータ(HOST)50とのデータ通信をそれぞれ行うための複数のチャネルアダプタ(DHA)11と、多数のストレージデバイス(例えばハードディスクドライブ)(DSK)12と、それらディスクドライブ(DSK)12とのデータ通信をそれぞれ行うための複数のディスクアダプタ(DKA)13と、上述したチャネルアダプタ(CHA)11及びディスクアダプタ(DKA)13の間で送受信されるデータを一時的に記憶するための複数のメインキャッシュメモリ(MCM)14と、チャネルアダプタ(CHA)11及びディスクアダプタ(DKA)13によって使用される制御や管理のための情報を記憶するための複数の共有メモリ(SM)15を備える。チャネルアダプタ(CHA)11及びディスクアダプタ(DKA)13による制御の下で、多数のディスクドライブ(DSK)12はRAIDの原理に従うディスクアレイ141を構成するようになっている。
ディスクアレイ制御装置1は、また、複数のチャネルアダプタ(DSK)11と複数のメインキャッシュメモリ(MCM)14との間の通信接続、及び、複数のディスクアダプタ(DKA)13と複数のメインキャッシュメモリ(MCM)14との間の通信接続を制御するための接続ネットワークを備える。この接続ネットワーク16は、例えば階層スターネットアーキテクチャに従った構成をもつものであり、これを以下、階層スターネット(HSN)という。階層スターネット(HSN)16は、複数のセレクタ(SEL)21を有し、各セレクタ(SEL)2は、複数のチャネルアダプタ(CHA)11と複数のメインキャッシュメモリ(MCM)14と複数のディスクアダプタ(DKA)13に接続されている。各セレクタ(SEL)21は相互接続された複数のスイッチ(SW)22を有し、これらのスイッチ(SW)22により、複数のチャネルアダプタ(CHA)11の中から選択した一つのチャネルアダプタ(CHA)11と、複数のメインキャッシュメモリ(MCM)14の中から選択した一つのメインキャッシュメモリ(MCM)14との間に通信パスを確立し、また、複数のディスクアダプタ(DSK)13の中から選択した一つのディスクアダプタ(DKA)13と、複数のメインキャッシュメモリ(MCM)14の中から選択した一つのメインキャッシュメモリ(MCM)14との間に通信パスを確立する。複数のセレクタ(SEL)21が存在することにより、複数のチャネルアダプタ(CHA)11と複数のメインキャッシュメモリ(MCM)14との間の複数の通信パスが同時に形成されることができ、また、複数のディスクアダプタ(DKA)13と複数のメインキャッシュメモリ(MCM)14との間の複数の通信パスが同時に形成されることができる。各セレクタ(SEL)21は、その内部に、追加のメインキャッシュメモリ(MCM)23を有している。この追加のメインキャッシュメモリ(MCM)23も、スイッチ(SW)22によって、セレクタ(SEL)21外の上述したメインキャッシュメモリ(MCM)14と同様に選択されて、選択されたチャネルアダプタ(CHA)11及び選択されたディスクアダプタ(DKA)13に接続され得るようになっており、上述したメインキャッシュメモリ(MCM)14と同様の用途に使用され得る。
ディスクアレイ制御装置1は、さらに、複数のチャネルアダプタ(CHA)11と複数の共有メモリ(SM)15との間の通信接続、及び、複数のディスクアダプタ(DKA)13と複数の共有メモリ(SM)15との間の通信接続を制御するための接続ネットワーク17を備える。この接続ネットワーク17は、例えばスターネットアーキテクチャに従った構成をもつもので、以下、スターネット(SN)という。スターネット(SN)17は、個々のチャネルアダプタ(DKA)11と個々の共有メモリ(SM)15とをポイントツーポイントで接続した複数の専用通信ラインと、個々のディスクアダプタ(DKA)13と個々の共有メモリ(SM)15とをポイントツーポイントで接続した複数の専用通信ラインとを有する。
図1では、チャネルアダプタ(CHA)11、ディスクアダプタ(DKA)13、メインキャッシュメモリ(MCM)14、共有メモリ(SM)15及びセレクタ(SEL)21のそれぞれの個数は2であるが、これは図示の都合による単なる例示にすぎず、より多くの個数であってよいし、むしろその方が実際のディスクアレイ装置では普通である。
各チャネルアダプタ(CHA)11は、図1に示すように、ホストコンピュータ(HOST)50との通信インタフェースとしてそれぞれ機能する1又は複数のホストインタフェース(HIF)101と、ホストコンピュータ(HOST)50とのデータ通信をそれぞれ制御する1又は複数のマイクロプロセッサ(MP)102と、階層スターネット(HSN)16を通じたメインキャッシュメモリ(MCM)14とのデータ通信を制御するキャッシュメモリコントローラ(CMC)103と、スターネット(SN)17を通じた共有メモリ(SM)15との通信を制御する共有メモリコントローラ(SMC)104と、ホストコンピュータ(HOST)50に対して送受信するデータを一時的に記憶するためのローカルキャッシュメモリ(LCM)105とを有する。チャネルアダプタ(CHA)11内のホストインタフェース(HIF)101、マイクロプロセッサ(MP)102、キャッシュメモリコントローラ(CMC)103、共有メモリコントローラ(SMC)104及びローカルキャッシュメモリ(LCM)105などのパーツ間は、内部バス106によって直接的に通信可能に接続されている。内部バス106は、例えばPCI規格に従った高速バスであり、その通信速度は階層スターネット(HSN)16或いはスターネット(SN)17の通信速度よりも明らかに高速である。所定個数(図1の例では2つであるが、他の個数でも良い)の上記構成のチャネルアダプタ(CHA)11が、一つのチャネルアダプタパッケージ(典型的には一つの回路基板)(CHAPK)121上に実装されている。同一パッケージ(CHAPK)121上の異なるチャネルアダプタ(CHA)11間も、上述した高速な内部バス106を通じて接続されている。よって、同じパッケージ1(CHAPK)21上では、各チャネルアダプタ(CHA)11の内部での通信と同様に、異なるチャネルアダプタ(CHA)11間の通信も、内部バス106を通じて高速かつ直接的に行うことが可能である。本実施形態では、後に詳述するように、チャネルアダプタパッケージ(CHAPK)121上でホストインタフェース(HIF)101及びマイクロプロセッサ(MP)102と内部バス106を介して接続されたローカルキャッシュメモリ(LCM)105が、本発明の原理に従ってメインキャッシュメモリ(MCM)14の補助又は代替として活用される。それにより、ホストコンピュータ(HOST)50からのデータリード/ライト要求に対するディスクアレイ装置1の応答速度が従来よりも高速化されることになる。
各ディスクアダプタ(DKA)13は、図1に示すように、ディスクドライブ(DSK)12との通信インタフェースとしてそれぞれ機能する1又は複数のディスクインタフェース(DIF)111と、ディスクドライブ(DSK)12とのデータ通信をそれぞれ制御する1又は複数のマイクロプロセッサ(MP)112と、メインキャッシュメモリ(MCM)14とのデータ通信を制御するキャッシュメモリコントローラ(CMC)113と、スターネット(SN)17を通じた共有メモリ(SM)15との通信を制御する共有メモリコントローラ(SMC)114と、ディスクドライブ(DSK)12に対して送受信されるデータが一時的に記憶されるローカルバッファメモリ(LBF)115を有する。ディスクアダプタ13内のディスクインタフェース(DIF)111、マイクロプロセッサ(MP)112、キャッシュメモリコントローラ(CMC)113、共有メモリコントローラ(SMC)114及びローカルバッファメモリ(LBM)115などのパーツ間は、内部バス(例えば、チャネルアダプタ(CHA)11の内部バス106と同様のPCIバス)116によって直接的に通信可能に接続されている。所定個数(図1の例では2つであるが、他の個数でも良い)の上記構成のディスクアダプタ(DKA)13が、一つのディスクアダプタパッケージ(典型的には一つの回路基板)(DKAPK)131上に実装されている。同一パッケージ(DKAPK)131上の異なるディスクアダプタ(DKA)13はそれぞれの内部バス116を通じて互いに接続されている。よって、同じパッケージ(DKAPK)131上では、各ディスクアダプタ(DKA)13の内部での通信と同様に、異なるディスクアダプタ(DKA)13間の通信も、内部バス116を通じて高速に行うことが可能である。
ところで、図1に示した構成は一つの例示にすぎず、他の様々な構成でも本発明を実施することが可能である。例えば、チャネルアダプタ(CHA)11とメインキャッシュメモリ(MCM)14とディスクアダプタ(DKA)13を接続するための接続ネットワーク16の構成に関して、図1に例示した追加のメインキャッシュメモリ23をもつセレクタ(SEL)22を用いた階層スターネット(HSN)に代えて、追加のメインキャッシュメモリをもたないセレクタを用いた階層スターネット、或いは、図2に例示するようなクロスバースイッチで接続するコモンバス方式の構成、或いは、図3に例示するような個々のチャネルアダプタ11と個々のキャッシュメモリ14と個々のディスクアダプタ13をポイントツーポイントの専用通信ラインで接続するような構成などを採用してもよい。
接続ネットワーク16についていかなる構成を採用するにせよ、本実施形態では、ホストコンピュータ(HOST)50との通信を制御する複数のチャネルアダプタ(CHA)11にそれぞれ搭載された複数のメモリ(LBM)105が、分散されたローカルキャッシュメモリ(LCM)として使用される。これらのローカルキャッシュメモリ(LCM)105には、ホストコンピュータ(HOST)50により使用される可能性が高いであろうデータが蓄積されることになる。
後の動作説明から明らかになるように、ホストコンピュータ50からデータのリード要求が到来した場合、リードされるべきデータ(以下、リードデータという)がローカルキャッシュメモリ105内に存在するならば(リードヒットの場合)、チャネルアダプタ11は、低速の接続ネットワーク16を通じてメインキャッシュメモリ14にアクセスせずに、高速アクセスが可能なローカルキャッシュメモリ105からリードデータを読んでホストコンピュータ50に転送する。一方、リードデータがローカルキャッシュメモリ105内に存在しない場合(リードミスの場合)には、チャネルアダプタ11は、低速のメインキャッシュメモリ14から(又はディスクドライブ12からメインキャッシュメモリ14を経由して)、そのリードデータを読み込む。チャネルアダプタ11に読み込まれたデータは、ローカルキャッシュメモリ105を経由して(つまり、ローカルキャッシュメモリ105に書かれてから)ホストコンピュータ50に転送される。
ローカルキャッシュメモリ105に新しいデータを書くとき、ホストコンピュータ50からローカルキャッシュメモリ105が満杯である場合、その中の最も古いキャッシュデータが消去されて、新たなデータが書き込まれる。よって、ローカルキャッシュメモリ105には、データがある程度の期間にわたり保存される。メインキャッシュメモリ14上のデータが無くても、ローカルキャッシュメモリ105上にそのデータが保存されていれば、そのデータに対するホストコンピュータ50からのリード要求に直ちに応答することができる。その意味で、ローカルキャッシュメモリ105は、メインキャッシュメモリ14の補助的な役割だけでなく、代替的な役割を担うものであり、メインキャッシュメモリ14の有効活用が促進される。
同じチャネルアダプタパッケージ121上に実装された複数のチャネルアダプタ11間では、各マイクロプロセッサ102が、内部バス106を通じて、複数のローカルキャッシュメモリ105のいずれにも直接アクセスすることができる。換言すれば、同じチャネルアダプタパッケージ121上では、複数のマイクロプロセッサ102が複数のローカルキャッシュメモリ105を共有する。そして、それら複数のマイクロプロセッサ102が、それらが共有する複数のローカルキャッシュメモリ105内のキャッシュデータのディレクトリ情報(そのデータのディスクアレイ141内での論理的又は物理的な記憶場所を特定する情報)を分散して記憶し管理している。例えば、各マイクロプロセッサ102は、そのマイクロプロセッサ102自身が過去に処理したキャッシュデータのディレクトリ情報を記憶し管理している。ディレクトリ情報は、例えばキャッシュスロット単位で管理される。因みに、各マイクロプロセッサ102は、各ロ−カルキャッシュメモリ105の記憶領域(例えば、256MB)を多数のキャッシュページ(例えば、256kB)に論理的に分割し、各キャッシュページを多数のキャッシュスロット(例えば4kB、16kB、又は24kなど)に論理的に分割して管理する。或るマイクロプロセッサ102が、リードデータをローカルキャッシュメモリ105から探すとき、まず、そのマイクロプロセッサ102自身が管理しているディレクトリ情報からリードデータを探し、その結果ヒットしなければ、同じチャネルアダプタパッケージ121上の他のマイクロプロセッサ102に問い合わせて、それら他のマイクロプロセッサ102が管理するディレクトリ情報からリードデータを探すことができる。こうして、各マイクロプロセッサ102は、同じチャネルアダプタパッケージ121上の全てのローカルキャッシュメモリ105からリードデータを探すことができ、その結果見つかれば、そのリードデータを該当するローカルキャッシュメモリ105から読んでホストコンピュータ50に転送することができる。このように、マイクロプロセッサ102は、リードデータが同じチャネルアダプタパッケージ121上のいずれかのローカルキャッシュメモリ105に存在すれば、メインキャッシュメモリ14にアクセスすることなく、より高速のローカルキャッシュメモリ105からそのリードデータを得てホストコンピュータ50に転送できる。
ホストコンピュータ50からデータのライト要求が到来した場合、チャネルアダプタ11は、ライトされるべきデータ(以下、ライトデータという)を同じチャネルアダプタパッケージ121上の適当なローカルキャッシュメモリ105に書いてから、それをメインキャッシュメモリ14に転送する前に、ホストコンピュータ50に対してライト完了の応答を送信することができる。この場合、通常、ライトデータは、障害時のデータロストのリスクを減らすために、二重化されてローカルキャッシュメモリ105に書かれる(つまり、ライトデータとそのコピーデータの双方がローカルキャッシュメモリ105に書かれる)。但し、データのリモートコピーが行われる場合(すなわち、マスターホストコンピュータ50に接続されたディスクアレイ装置1にデータライトが行われると共に、遠隔のリモートホストコンピュータ50に接続されたディスクアレイ装置1にも同じライトデータが転送されてそこでデータライトが行われることで、データの二重化がなされる場合)においては、マスターホストコンピュータ50に接続されたディスクアレイ装置1では、ライトデータが二重化されてローカルキャッシュメモリ105に書かれるが、リモートホストコンピュータ50に接続されたディスクアレイ装置1では、ライトデータは二重化されずにローカルキャッシュメモリ105に書かれる。オリジナルのライトデータがマスター側のディスクアレイ装置1で保存されるため、リモート側で障害によりライトデータが失われたとしても、マスター側からリモード側へ同じデータを再送できるからである。勿論、リモート側でもローカルキャッシュメモリ105への二重化キャッシングを行ってもよい。
チャネルアダプタ11内のデータライト要求を処理するスレッド(マイクロプロセッサ102のプロセスを分割した処理単位)は、ライトデータをローカルキャッシュメモリ105に書いたならば、そのライトデータがメインキャッシュメモリ14に書かれたことを意味するトランスファーレディレスポンスを待つことなく、直ちにホストコンピュータ50に対してライト完了の応答を返して、次の処理に移ることができる。ローカルキャッシュメモリ105に書かれたライトデータは、ライトバックキャッシング処理方法により、データライト要求の処理とは非同期のより遅いタイミングで、メインキャッシュメモリ14に転送されて書き込まれることになる。ライトバックキャッシング処理方法を採用しても、上述したローカルメモリ105への二重化キャッシングにより、データロストのリスクが相殺される。ライトバックキャッシング処理方法では、ライトスルーキャッシング処理方法(すなわち、ホストコンピュータ50からのライト要求の処理の一環で(つまり、要求処理と同期したタイミングで)メインキャッシュメモリ14にライトデータを書く方法)とは異なり、低速のメインキャッシュメモリ14にホストコンピュータ50からのライトデータを直ちに転送する必要が無いので、例えばローカルメモリ105が一杯になるまで、或いは、ローカルメモリ105内のデータが上書きされるまで、或いはその他の所定のタイミングで、ローカルメモリ105内の複数のライトデータを一括してメインキャッシュメモリ14に転送することができる。これにより、低速のメインキャッシュメモリ14へのデータ書き込みの処理回数が削減される。
ローカルメモリ105の領域を複数の部分領域に分割して、それぞれの部分領域を異なる使い方のキャッシュデータに割り当てることもできる。例えば、異なるホスト接続方式によりキャッシュデータの使い方が異なる場合がある。その典型例は、ホストリード/ライト(通常のホストコンピュータ50又は上述したマスタホストコンピュータ50から要求されたデータリード/ライト処理)とリモートコピー(上述したリモートホストコンピュータ50から要求されたデータライト(コピー)処理)である。ローカルメモリ105の一つの部分領域をホストリード/ライトのためのデータキャッシングに割り当てる、別の部分領域をリモートコピーのための割り当てることができる。
以下、本実施形態にかかるディスクアレイ装置1の動作について説明する。以下の説明は、図1に示した構成だけでなく、図2及び図3に示した構成をもつディスクアレイ装置1についても同様にあてはまる。
図4及び図5は、ホストコンピュータ50からデータのリード要求を受けた場合のディスクアレイ装置1内でのコマンド及びデータの流れを示す。図6は、同場合のディスクアレイ装置1内の各部の動作シーケンスを示す。図4〜図6を参照して、ホストコンピュータ50からデータリード要求を受けた場合のディスクアレイ装置1の動作を説明する。
まず、図4及び図6を参照して、ホストコンピュータ50から到来したデータのリード要求(矢印201)が、或るチャネルアダプタ11内のホストインタフェース101を通じて或るマイクロプロセッサ102Aに入力される。そのマイクロプロセッサ102Aは、同じチャネルアダプタパッケージ121のいずれかのローカルキャッシュメモリ105内にそのリード要求の対象となるリードデータがキャッシュされているか否かチェックする(以下、LCM(ローカルキャッシュメモリ)チェックという)。このLCMチェックを行う場合、マイクロプロセッサ102Aは、まず、そのマイクロプロセッサ102A内のローカルメモリ121に記憶されているキャッシュデータのディレクトリ情報131を参照して、このディレクトリ情報131からリードデータを探す(図6の「LCMチェック」301)。このマイクロプロセッサ102A自身が管理するディレクトリ情報131には、同じチャネルアダプタパッケージ121上のローカルキャッシュメモリ105に記憶されている全てのキャッシュデータのうち、このマイクロプロセッサ102A自身がライトしたキャッシュデータについてのディレクトリ情報(例えば、そのキャッシュデータのディスクアレイ141内の記憶場所の論理アドレスと、ローカルキャッシュメモリ105内の記憶場所のアドレス(ローカルキャッシュアドレス)など)が記録されている。この「LCMチェック」301では、例えば、このディレクトリ情報131に記録されているキャッシュデータの論理アドレスと、ホストコンピュータ50からのリード要求に含まれているリードデータの論理アドレスとを照合することで、リードデータを探すことができる。
この「LCMチェック」301で、マイクロプロセッサ102A自身が管理するディレクトリ情報131からリードデータが見つかった場合(図6、「HIT」303)、マイクロプロセッサ102Aは、ディレクトリ情報131に記録されているそのリードデータのローカルキャッシュアドレスが指し示すローカルキャッシュメモリ105内の記憶場所から、そのリードデータを読み込む。この場合、マイクロプロセッサ102Aは、そのローカルキャッシュアドレスが指し示す記憶場所が、同じチャネルアダプタ11内のローカルキャッシュメモリ105A内に存在するならば、図4で矢印105Aで示すように、そのローカルキャッシュメモリ105Aからリードデータを読み込むことになるが、その記憶場所が別のチャネルアダプタ11内のローカルキャッシュメモリ105B内に存在するならば、図5に矢印205Bで示すように、その別のチャネルアダプタ11内のローカルキャッシュメモリ105Bからリードデータを読み込むことになる。いずれにしても、マイクロプロセッサ102Aは内部バス106を通じて高速にリードデータを取得することができる。
なお、ローカルキャッシュメモリ105A又は105Bからリードデータを読む際、マイクロプロセッサ102Aは、図4で矢印203で示すように、共有メモリ15内に記憶されている排他制御テーブル132を参照する。この排他制御テーブル132には、このディスクアレイ装置1内の全てのデータの論理アドレスについて、複数アクセスの競合を回避するための排他制御情報(例えば、それぞれの論理アドレスに対して現在ライト及びリードがそれぞれ行われているか否かを示すライトフラグ及びリードフラグなど)が記録されている。マイクロプロセッサ102Aは、この排他制御テーブル132を参照して、例えばそのリードデータについてライトが行われていない時にのみそのリードデータを読むといようにして、他の排他的アクセスと競合しないタイミングで、ローカルキャッシュメモリ105A又は105Bからリードデータを読むとともに、リードデータを読んでいる間は、例えばリードフラグを「リード中」にすることにより、そのリードデータにライトが行われないように制御する。
このようにして、ローカルキャッシュメモリ105A又は105Bからリードデータを読み込んだ後、マイクロプロセッサ102Aは、そのリードデータをホストインタフェース101を通じてホストコンピュータ50に送る(矢印207)。
一方、上述した「LCMチェック」301で、マイクロプロセッサ102A自身が管理するディレクトリ情報131からはリードデータが見つからなかった場合(図6、「MISS」305)、マイクロプロセッサ102Aは、図5で矢印221で示すように、同じチャネルアダプタパッケージ121内の他のマイクロプロセッサ102B〜102Dに対して、リードデータの問い合わせを行う(図6、「他MP問合せ」307)。すると、他のマイクロプロセッサ102B〜102Dはそれぞれ、それ自身のローカルメモリ121に記憶しているディレクトリ情報131(それぞれのマイクロプロセッサ102B〜102Dがローカルルキャッシュメモリ105A又は105Bにライトしたキャッシュデータのディレクトリ情報)の中からリードデータを探し(図6、「LCMチェック」309)、その答え(例えば、ヒットした場合にはそのリードデータのローカルキャッシュアドレス、ミスの場合にはその旨)をマイクロプロセッサ102Aに返す。マイクロプロセッサ102Aは、他のマイクロプロセッサ102B〜102Dからの答えによりそのリードデータのローカルキャッシュアドレスを得た場合には(図6、「HIT」311)、ローカルキャッシュアドレスが指し示すローカルキャッシュメモリ105A又は105B内の記憶場所からライトデータを読み込む(矢印205A、205B)。その際、上述した排他制は勿論行なわれる。そして、マイクロプロセッサ102Aは、読み込んだライトデータをホストコンピュータ50に送信する(矢印207)。
上述した他のマイクロプロセッサ102B〜102Dによる「LCMチェック」309の答えが全てミスだった場合には(図6、「MISS」313)、マイクロプロセッサ102Aと同じチャネルアダプタパッケージ121上のローカルキャッシュメモリ121上にはリードデータがキャッシュされていないことを意味する。この場合、マイクロプロセッサ102Aは、メインキャッシュメモリ14内でそのリードデータが存在するかどうかチェックし(図6、「MCMチェック」315)、その結果、リードデータが見つかれば(図6、「HIT」317)、図4で矢印209で示すように、メインキャッシュメモリ14からそのリードデータを読み込み、図4で矢印211A又は図6で矢印211Bで示すように、そのリードデータをローカルキャッシュメモリ105A又は105B内の適当な空きアドレスに書き込む(空きアドレスが無ければ、ローカルキャッシュメモリ105A又は105B内の最も古いキャッシュデータを消去して、そこにそのリードデータを書き込む)。加えて、マイクロプロセッサ102Aは、そのリードデータの論理アドレスやローカルキャッシュアドレスなどのディレクトリ情報を、マイクロプロセッサ102A内のディレクトリ情報131に追加登録する(図6、「DIR登録」321)。そして、マイクロプロセッサ102Aは、ローカルキャッシュメモリ105A又は105Bからそのリードデータを読み(矢印205A又は205B)、そのリードデータをホストコンピュータ50に送信する(矢印207)。
上述した「MCMチェック」315の結果、リードデータが見つからなければ(図6、「MISS」319)、マイクロプロセッサ102Aは、そのリードデータのディスクアレイ141からのリードをディスクアダプタ13に要求する(図6、「リード要求」321)。ディスクアダプタ13は、図4で矢印213、215で示すように、ディスクアレイ141からそのリードデータを読み、これをメインキャッシュメモリ14に書く。マイクロプロセッサ102Aは、メインキャッシュメモリ14からリードデータを読み、そして、既に説明したようにして、そのリードデータをローカルキャッシュメモリ105A又は105Bに格納し、そのディレクトリ情報を追加登録するとともに、そのリードデータをホストコンピュータに送る。
以上が、データライト処理の動作である。次に、ホストコンピュータ50からデータのライト要求を受けた場合のディスクアレイ装置1の動作を説明する。
図7は、同場合のディスクアレイ装置1内でのコマンド及びデータの流れを示す。図8は、同場合のディスクアレイ装置1内の各部の動作シーケンスを示す。
なお、データのライト要求を受けた場合には、それを発したホストコンピュータ50の種類に応じてディスクアレイ装置1の動作が異なる。以下の説明では、ホストコンピュータ50を、通常ホストコンピュータ(すなわち、リモートコピーを行う必要がないデータのライト要求を発するホストコンピュータ)(N_HOST)50Nと、マスターホストコンピュータ(すなわち、リモートコピーを行う必要があるデータのライト要求を発するホストコンピュータ)(M_HOST)50Mと、リモートホストコンピュータ(リモートコピーのためのライト要求を発するホストコンピュータ)(R_HOST)50Rの3種類に分類する。
図7に示したシステム例では、通常ホストコンピュータ(N_HOST)50N又はマスターホストコンピュータ(M_HOST)50Mに、一つのディスクアレイ装置(以下、メインのディスクアレイ装置という)1が接続される。また、リモートホストコンピュータ(R_HOST)50Rには、別のリモートコピー用のディスクアレイ装置(以下、サブのディスクアレイ装置という)1Rが接続される。また、メインのディスクアレイ装置1は、リモートホストコンピュータ50Rにも接続されている。以下、図7に示したシステム構成の下でのデータライトの動作を説明するが、その説明から当業者は、別のシステム構成において本発明の原理がどのように適用されるかということを、容易に理解できる筈である。
図7及び図8を参照して、通常ホストコンピュータ50N又はマスターホストコンピュータ50Mからのライトデータを含んだデータライト要求が、矢印401で示すように、メインのディスク装置1内の或るチャネルアダプタ11内のマイクロプロセッサ102Aに受信される。そのマイクロプロセッサ102Aは、同じチャネルアダプタパッケージ121のいずれかのローカルキャッシュメモリ105A又は105B内にライトデータがキャッシュされているか否かチェックする(図8、「LCMチェック」501)。この「LCMチェック」501において、マイクロプロセッサ102Aは、そのマイクロプロセッサ102A内のローカルメモリ121に記憶されているキャッシュデータのディレクトリ情報131を参照して、このディレクトリ情報131からライトデータを探す。その結果、ライトデータが見つかった場合(図8、「HIT」503)、マイクロプロセッサ102Aは、ディレクトリ情報131に記録されているそのライトデータのローカルキャッシュアドレスが指し示すローカルキャッシュメモリ105A又は105B(ローカルキャッシュメモリ105Bは図7では図示省略されている)内の記憶場所に、ホストコンピュータ50N又は50Mから受け取ったライトデータを書く(矢印403A又は403B)(つまり、ローカルキャッシュメモリ105A又は105B内の古いライトデータに新しいライトデータを上書きする)。この場合、マイクロプロセッサ102Aは、そのライトデータを二重化してローカルキャッシュメモリ105A又は105Bに書く。すなわち、図7に示すように、そのライトデータ601と、それの複製データ603とを、ローカルキャッシュメモリ105A又は105B内の異なるアドレスにそれぞれ書く。
なお、ローカルキャッシュメモリ105A又は105Bにライトデータを書く際、マイクロプロセッサ102Aは、(図7では図示省略されているが、)共有メモリ15内の排他制御テーブル132を参照して、例えばそのライトデータに対してライトもリードも行われていない時にのみそのライトデータを書くというように、他のアクセスと競合しないタイミングでライト処理を行うとともに、ライト処理を行っている間は、例えばライトフラグを「ライト中」にすることにより、他のリード/ライト処理が同時に行われないように制御する。
このようにして、ローカルキャッシュメモリ105A又は105Bにライトデータを書き込んだ後、マイクロプロセッサ102Aは、そのライトデータがメインキャッシュメモリ14に書かれたことを意味するトランスファーレディレスポンスを待つことなく、直ちにライト完了の応答をホストインタフェース101を通じてホストコンピュータ50に送る(矢印405)。
一方、上述した「LCMチェック」301で、マイクロプロセッサ102A自身が管理するディレクトリ情報131からはライトデータが見つからなかった場合(図8、「MISS」505)、マイクロプロセッサ102Aは、そのライトデータをローカルキャッシュメモリ105A又は105B内の適当な空きアドレスに書き込む(空きアドレスが無ければ、ローカルキャッシュメモリ105A又は105B内の最も古いキャッシュデータを消去して、そこにそのライトデータを書き込む)(矢印403A又は403B)。この場合も、ライトデータは二重化して書かれる。排他制御も行われる。加えて、マイクロプロセッサ102Aは、そのライトデータの論理アドレスやローカルキャッシュアドレスなどのディレクトリ情報を、マイクロプロセッサ102A内のディレクトリ情報131に追加登録する(図8、「DIR登録」507)。そして、マイクロプロセッサ102Aは、ライト完了の応答をホストインタフェース101を通じてホストコンピュータ50に送る(矢印405)。
或いは、上述した「LCMチェック」301でマイクロプロセッサ102A自身が管理するディレクトリ情報131からはライトデータが見つからなかった場合、マイクロプロセッサ102Aは、(図7及び図8では図示省略してあるが、)前述したデータリードの場合と同様の方法で、同じチャネルアダプタパッケージ121内の他のマイクロプロセッサ102B〜102Dに問い合わせて、それらが管理するディレクトリ情報からライトデータを探し、ヒットすれば、図8の「HIT」503の場合と同様に、ライトデータを二重化してローカルキャッシュメモリ105A又は105Bに上書し、また、全てミスであれば、図8の「MISS」505の場合と同様に、ライトデータの二重化してローカルキャッシュメモリ105A又は105Bに追加書きするようにしてもよい。
通常ホストコンピュータ50Nからデータライト要求を受けた場合には必要ないが、マスタホストコンピュータ50Mからデータライト要求を受けた場合には、マイクロプロセッサ102Aは、上述したローカルキャッシュメモリ105A又は105Bへのライトデータのキャッシングが終わった後、適当なタイミングで(図8では、後述するライトバックキャッシングの前であるように示されているが、その前でも後でもよい)、そのライトデータについてのリモートコピーの処理を行う(図8、「リモートコピー」509)。すなわち、マイクロプロセッサ102Aは、ローカルキャッシュメモリ105A又は105Bからライトデータを読み出し(矢印407A又は407B)、そのライトデータを含んだリモートコピー要求を、ホストインタフェース101B通じて、リモートホストコンピュータ50Rに送る(矢印409)。リモートホストコンピュータ50Rは、そのライトデータのライト要求をサブディスクアレイ装置1Rに送る(矢印411)。サブディスクアレイ装置1R内のチャネルアダプタ11R内のマイクロプロセッサ102Rは、上述したメインディスクアレイ装置1での処理手順と同様の手順で、そのリモートコピー対象のライトデータをローカルキャッシュメモリ105Rに書く(図7、矢印413)。但し、このとき、ライトデータの二重化は行われない(勿論、二重化を行っても良い)。サブディスクアレイ装置1Rのマイクロプロセッサ102Rは、そのライトデータのローカルキャッシュメモリ105Rへの格納が終わると、そのライトデータがメインキャッシュメモリ14Rに書かれたことを意味するトランスファーレディレスポンスを待つことなく、直ちにライト完了の応答をリモートホストコンピュータ50Rに返す(図7、矢印415)。そのライト完了の応答を受けて、リモートホストコンピュータ50Rは、リモートコピー完了の応答をメインディスクアレイ装置1に送り(矢印416)、メインディスクアレイ装置1内では、マイクロプロセッサ102Aがその応答を受ける。
さて、メインディスクアレイ装置1のマイクロプロセッサ102Aは、ホストコンピュータ50N又は50Mからのデータライト要求の処理とは非同期的な所定のタイミングで(例えば、ローカルキャッシュメモリ105A又は105Bが満杯になったとき、或いは、ローカルキャッシュメモリ105A又は105Bにキャッシュされたデータが後のライト処理で更新されたとき、或いはその他のタイミングで)、ライトバックキャッシング(図8、「ライトバックキャッシング」511)を実行する。すなわち、マイクロプロセッサ102Aは、ローカルキャッシュメモリ105A又は105Bに蓄積されたライトデータを一括的に読んで(矢印417A又は417B)、それらをメインキャッシュメモリ14に転送してそこに書き込み(矢印419)、そして、ディスクアダプタ13に対して、メインキャッシュメモリ14に転送されたライトデータのディスクアレイ141への書き込みを要求する。この要求を受けて、ディスクアダプタ13は、上記「ライトバックキャッシング」511と非同期の適当なタイミングで、ディスクライト処理(図8、「DSKライト」513)を行って、メインキャッシュメモリ14内のライトデータをディスクアレイ141に書き込む(矢印421、423)。
サブディスクアレイ装置1Rにおいても、ローカルキャッシュメモリ105R内のライトデータのメインキャッシュメモリ14Rへのライトバックキャッシング、及びメインキャッシュメモリ14Rにキャッシュされたライトデータのディスクドライブ141Rへの書き込みが、それぞれ、リモートホストコンピュータ50Rからのデータライト要求の処理とは非同期の独自のタイミングで行われる。
以上がデータライト処理の動作である。
図9及び図10は、以上説明したようなデータリード及びデータライトの動作を行う場合のチャネルアダプタ11内のマイクロプロセッサ102の処理の流れを示す。
図9を参照して、ステップ601で、マイクロプロセッサ102は、ホストコンピュータからデータのリード/ライト要求が受信されたか否か判断する。リード/ライト要求が受信されると、ステップ603で、リード要求かライト要求かの識別が行われる。その結果、ライト要求であれば、制御は図10に示した流れへ進み、リード要求であれば、ステップ606で、そのマイクロプロセッサ102自身が管理するディレクトリ情報に基づいて、ローカルキャッシュメモリ105にリードデータがキャッシュされているかどうかのチェックが行われる。その結果がリードヒットであれば、ステップ615で、ローカルキャッシュメモリ105からリードデータが読み出され、ステップ617で、リードデータがリード完了応答とともにホストコンピュータ送られる。
ステップ605のチェック結果がリードミスであれば、ステップ607で、同じチャネルアダプタパッケージ内の他のマイクロプロセッサに対して問合せが行われて、それら他のマイクロプロセッサに管理するディレクトリ情報に基づいて、ローカルキャッシュメモリ105にリードデータがキャッシュされているかどうかのチェックが行われる。その結果がリードヒットであれば、ステップ615で、ローカルキャッシュメモリ105からリードデータが読み出され、ステップ617で、リードデータがリード完了応答とともにホストコンピュータ送られる。
ステップ607のチェック結果が他の全てリードミスである場合には、ステップ609で、メインキャッシュメモリ14にリードデータがキャッシュされているかどうかのチェックが行われる。その結果がリードヒットであれば、ステップ613で、リードデータがメインキャッシュメモリ14から読み出されてローカルキャッシュメモリ105に書き込まれる。同時に、マイクロプロセッサ102内のディレクトリ情報に、そのリードデータのディレクトリ情報が追加登録される。続いて、ステップ615で、ローカルキャッシュメモリ105からリードデータが読み出され、ステップ617で、リードデータがリード完了応答とともにホストコンピュータ送られる。
ステップ609のチェック結果がリードミスである場合には、ステップ611で、ディスクアダプタ13に指示がなされて、リードデータがディスクアレイ141から読み出されてメインキャッシュメモリ14に書かれ、そして、ステップ613で、リードデータがメインキャッシュメモリ14から読み出されてローカルキャッシュメモリ105に書き込まれる。同時に、マイクロプロセッサ102内のディレクトリ情報に、そのリードデータのディレクトリ情報が追加登録される。続いて、ステップ615で、ローカルキャッシュメモリ105からリードデータが読み出され、ステップ617で、リードデータがリード完了応答とともにホストコンピュータ送られる。これで、受信されたリード要求の処理は終わるので、マイクロプロセッサ102内のリード/ライト要求を処理するスレッドは、図9のステップ601に戻って、次に到来するリード/ライト要求の処理に移ることができる。
次に、図10を参照して、ホストコンピュータ50からのライト要求が受信された場合、ステップ621で、ホストコンピュータ50の種類が識別される。また、ステップ623又は631で、ライトデータがローカルキャッシュメモリ105内にあるかどうかがチェックされる。ステップ621のチェックの結果が通常又はマスタホストコンピュータである場合において、ステップ623のチェックの結果がライトヒットである場合には、ステップ625で、ライトデータが二重化されてローカルキャッシュメモリ105の対応するアドレスに上書きされ、一方、ステップ623のチェックの結果がライトミスである場合には、ステップ627で、ライトデータが二重化されてローカルキャッシュメモリ105の空きアドレスに追加書きされる。また、ステップ621のチェックの結果がリモートホストコンピュータである場合において、ステップ632のチェックの結果がライトヒットである場合には、ステップ633で、ライトデータが二重化されることなしにローカルキャッシュメモリ105の対応するアドレスに上書きされ、一方、ステップ631のチェックの結果がライトミスである場合には、ステップ635で、ライトデータが二重化されることなくローカルキャッシュメモリ105の空きアドレスに追加書きされる。このようにしてライトデータがローカルキャッシュメモリ105に格納された後、ステップ629で、ライト完了の応答がホストコンピュータ50に返される。これで、受信されたライト要求の処理は終わるので、マイクロプロセッサ102内のリード/ライト要求を処理するスレッドは、図9のステップ601に戻って、次に到来するリード/ライト要求の処理に移ることができる。
また、ステップ621のチェックの結果がマスタホストコンピュータである場合には、上述したライト要求の処理とは非同期のタイミングで、ステップ637で、リモートホストコンピュータに対してライトデータのリモートコピー要求が送られる。
さらに、上述したライト要求の処理とは非同期のタイミングで、ステップ641で、ライトバックキャッシング処理が行われえる。この処理では、ローカルキャッシュメモリ105に蓄積されているがまだディスクアレイ141に記録されていないライトデータが、まとめてローカルキャッシュメモリ105から読み出されてメインキャッシュメモリ14に転送されそこに書き込まれる(ステップ643、645)。
図11及び図12は、ローカルキャッシュメモリ105の記憶領域を複数に分割して、分割された領域を用途に応じて使い分ける2種類の動作例を示す。
図11は、ローカルキャッシュメモリ105の記憶領域をホストリード/ライト(HOST READ/WRITE)用とリモートコピー(REMOTE
COPY)用に使い分ける動作例を示している。
図11に示すように、例えば、通常ホストコンピュータ50N又はマスタホストコンピュータ50Mからのデータアクセス要求を受けることも、リモートホストコンピュータ50Rからのデータアクセス要求を受けることもできるようになったディスクアレイ装置において、チャネルアダプタのマイクロプロセッサ102が、ローカルキャッシュメモリ105の記憶領域を、ホストリード/ライト(HOST READ/WRITE)用のキャッシュ領域705とリモートコピー(REMOTE COPY)用のキャッシュ領域707とに分割して管理する。そして、通常ホストコンピュータ50N又はマスタホストコンピュータ50Mからデータライト要求(矢印701A)を受信した場合には、マイクロプロセッサ102は、受信したライトデータをローカルキャッシュメモリ105に書くとき(「ローカルキャッシュ処理」702)、そのライトデータを二重化してホストリード/ライト用のキャッシュ領域705に書く(矢印703A)。一方、リモートホストコンピュータ50Rからリモートコピーのためのデータライト要求(矢印701B)を受信した場合には、マイクロプロセッサ102は、「ローカルキャッシュ処理」702において、そのライトデータを二重化せずにリモートコピー用のキャッシュ領域707に書く(矢印703B)。
図12は、ローカルキャッシュメモリ105の記憶領域をランダムアクセス用とシーケンシャルアクセス用に使い分ける動作例を示している。
図12に示すように、チャネルアダプタのマイクロプロセッサ102は、ローカルキャッシュメモリ105の記憶領域を、ランダムアクセス(RANDOM ACCESS)用のキャッシュ領域805とシーケンシャルアクセス(SEQUENTIAL ACCESS)用のキャッシュ領域807とに分割して管理する。ローカルキャッシュメモリ105の記憶領域は、多数のキャッシュページ((PAGE No.1 - PAGE No. MAX)に論理的に分割されている。チャネルアダプタのマイクロプロセッサ102は、原則的に、ヒットが期待できるランダムアクセス(RANDOM ACCESS)用のキャッシュ領域805に、シーケンシャルアクセス(SEQUENTIAL ACCESS)用のキャッシュ領域807よりも大きい記憶領域(例えば、より多くのキャッシュページを割り当てる。シーケンシャルアクセス用のキャッシュ領域807は、主に、キャッシュデータの先読みに使うことができる。例えば、1回のデータアクセスが4kBである場合に、256kB分のデータを一括してメインキャッシュメモリ14から先読みしてローカルキャッシュメモリ105のシーケンシャルアクセス用領域807に転送しておけば、64回のアクセスに対してローカルキャッシュメモリ105でヒットを得ることができる。
マイクロプロセッサ102は、キャッシュ動的割当処理802を行って、ランダムアクセス用キャッシュ領域805とシーケンシャルアクセス用のキャッシュ領域807のサイズ(例えばページ数)の割合を、ランダムアクセスとシーケンシャルアクセスが行われた頻度に応じてダイナミックに調節して最適化する。例えば、シーケンシャルアクセスの頻度が増えた場合には、シーケンシャルアクセス用のキャッシュ領域807の領域サイズを増加させ、それにより、キャッシュの先読量を増加させて、ヒット率の向上を図ることができる。また、シーケンシャルアクセスの頻度が少ない場合であっても、最低でも一定サイズのキャッシュ領域はシーケンシャルアクセスに割り当てる。例えば、ローカルキャッシュメモリ105が256個のメモリチップから構成されている場合、最低でも例えば16個のメモリチップはシーケンシャルアクセスに割り当てる。
キャッシュ動的割当処理802は例えば次のようにして行うことができる。
一例として、ローカルキャッシュメモリ105がもつ総キャッシュページ数(Total CashePageNo)が1024ページであり、並行的に異なるアクセス要求を処理できるマルチスレッド数が128スレッドである場合を想定する。この場合、シーケンシャルアクセス用のキャッシュ領域807に割り当てられる最小のキャッシュページ数(MIN_CashePageNo)を例えば1ページと設定し、最大のキャッシュページ数(MAX_CashePageNo)を例えばマルチスレッド数と同じ128ページと設定することができる。このように設定した上で、シーケンシャルアクセス用のキャッシュ領域807に現時点で割り当てられられるキャッシュページ数(DynamIndex)を、設定された最小キャッシュページ数(MIN_CashePageNo)と最大キャッシュページ数(MAX_CashePageNo)の間の範囲内で、例えば次式を用いて決定することができる。
DynamIndex = MAX_CashePageNo x ( fSequential / fTotal )
ここで、「fSequential」は、最近過去に実行されたシーケンシャルアクセスの回数であり、その初期値は0で、シーケンシャルアクセスが行われる都度にインクレメントされる。また、「fTotal」は、最近過去に実行されたシーケンシャルアクセス及びランダムアクセスを合わせたアクセスの合計回数であり、その初期値は0で、シーケンシャルアクセス又はランダムアクセスが行われる都度にインクレメントされる。なお、「fSequential」も「fTotal」も、一定時間(例えば50ms)にわたり何のアクセスも行われなかった場合には、共に0に初期化される。
上記の例では、シーケンシャルアクセス用のキャッシュ領域807に割り当てられるキャッシュページ数(DynamIndex)が、所定の最小キャッシュページ数(MIN_CashePageNo)から最大キャッシュページ数(MAX_CashePageNo、例えばマルチスレッド数に等しいページ数)までの間で、最近過去の全てのアクセス中のシーケンシャルアクセスの頻度割合に応じてダイナミックに調節される。残りのキャッシュページ数(Total CashePageNo − DynamIndex)は、ランダムアクセス用キャッシュ領域805に割り当てられる。
以上のようにしてローカルキャッシュメモリ105のランダムアクセス用キャッシュ領域805とシーケンシャルアクセス用のキャッシュ領域807の割合を動的に制御しつつ、メインキャッシュメモリ14からローカルキャッシュメモリ105(特にシーケンシャルアクセス用キャッシュ領域807)へのデータの先読み、及びローカルキャッシュメモリ105からメインキャッシュメモリ14へのキャッシュデータの一括ローディングの制御を行うことで、ホストコンピュータ50に対するデータ入出力性能を高速化することができる。
以上、本発明の実施形態を説明したが、この実施形態は本発明の説明のための例示にすぎず、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱することなく、その他の様々な態様でも実施することができる。
本発明に従うストレージシステム、特にRAID方式のディスクアレイ装置、の一実施形態の全体的な基本構成を示すブロック図。 チャネルアダプタ11とメインキャッシュメモリ14間の接続ネットワーク16の変形例を示すブロック図。 チャネルアダプタ11とメインキャッシュメモリ14間の接続ネットワーク16の別の変形例を示すブロック図。 ホストコンピュータ50からデータのリード要求を受けた場合のディスクアレイ装置1内でのコマンド及びデータの流れを示す図。 同場合のディスクアレイ装置1内でのコマンド及びデータの流れを示す図。 同場合のディスクアレイ装置1内の各部の動作シーケンスを示す図。 ホストコンピュータ50からデータのライト要求を受けた場合のディスクアレイ装置1内でのコマンド及びデータの流れを示す図。 同場合のディスクアレイ装置1内の各部の動作シーケンスを示す図。 データリード及びデータライトの動作を行う場合のチャネルアダプタ11内のマイクロプロセッサ102の処理の流れを示す図。 データリード及びデータライトの動作を行う場合のチャネルアダプタ11内のマイクロプロセッサ102の処理の流れを示す図。 ローカルキャッシュメモリ105の記憶領域をホストリード/ライト用とリモートコピー用に使い分ける動作を説明する図。 ローカルキャッシュメモリ105の記憶領域をランダムアクセス用とシーケンシャルアクセス用に使い分ける動作を説明する図。
符号の説明
1 ディスクアレイ装置(ストレージ装置)
11 チャネルアダプタ(CHA)
12 ディスクドライブ(DSK)
13 ディスクアダプタ(DKA)
14 メインキャッシュメモリ(MCM)
15 共有メモリ(SM)
16 接続ネットワーク
17 接続ネットワーク
50 ホストコンピュータ(HOST)
50N 通常ホストコンピュータ(N_HOST)
50M マスタホストコンピュータ(M_HOST)
50R リモートホストコンピュータ(R_HOST)
101 ホストインタフェース(HIF)
102 マイクロプロセッサ(MP)
103 キャッシュメモリコントローラ(CMC)
104 共有メモリコントローラ(SMC)
105 ローカルキャッシュメモリ(LCM)
106 内部バス
121 チャネルアダプタパッケージ(CHAPK)
131 ローカルキャッシュデータのディレクトリ情報
132 排他制御テーブル
141 ディスクアレイ
641 バックライトキャッシング処理
705 ホストリード/ライト(HOST
READ/WRITE)用のローカルキャッシュ領域
707 リモートコピー(REMOTE COPY)用のローカルキャッシュ領域
805 ランダムアクセス(RANDOM
ACCESS)用のローカルキャッシュ領域
807 シーケンシャルアクセス(SEQUENTIAL
ACCESS)用のローカルキャッシュ領域

Claims (7)

  1. 1以上のホスト装置とのデータ通信をそれぞれ行う複数のチャネルアダプタが搭載された、少なくとも1つのチャネルアダプタパッケージと、
    データを保存する複数のストレージデバイスと、
    前記複数のストレージデバイスとのデータ通信をそれぞれ行う複数のストレージアダプタと、
    前記複数のチャネルアダプタと前記複数のストレージアダプタと間で送受されるデータを一時的に記憶するためのメインキャッシュメモリと、
    前記複数のチャネルアダプタと前記複数のストレージアダプタを前記メインキャッシュメモリに接続するための接続ネットワークと
    を備え、前記複数のチャネルアダプタの各々が、
    前記ホスト装置とのデータ通信を制御する2以上のプロセッサと、
    前記ホスト装置によりアクセスされるデータを一時的に記憶するためのローカルキャッシュメモリと
    前記2以上のプロセッサと前記ローカルキャッシュメモリとを接続した、前記接続ネットワークよりも高速にデータ伝送可能な内部バスと
    を有し、
    前記各チャネルアダプタ内で、各プロセッサがそれぞれ前記内部バスを介して前記少なくとも一つのローカルキャッシュメモリに直接的にアクセスできるように構成され、
    各チャネルアダプタ内の各プロセッサが、前記ホスト装置からライトデータ及び前記ライトデータについてのライト要求を受信した場合、前記ライトデータを前記ローカルキャッシュメモリに書き、前記ライト要求に含まれている前記ライトデータの前記ストレージデバイス内での記憶場所を特定するための情報をディレクトリ情報として前記各プロセッサ内のローカルメモリに記憶し、前記ライト要求に対する応答を前記ホスト装置に送り、そして、前記ライトデータが前記ストレージアダプタによって前記ストレージデバイスに書かれるようにするために、前記ライトデータを前記ローカルキャッシュメモリから前記メインキャッシュメモリへ前記接続ネットワークを介して転送するように構成され
    前記各プロセッサが、
    前記ライト要求を受信してから前記応答を前記ホスト装置に送るまでの処理の間において、前記ライトデータを前記ローカルキャッシュメモリに書き、前記ライト要求に含まれている前記ライトデータの前記ストレージデバイス内での記憶場所を特定するための情報を、ディレクトリ情報として前記各プロセッサ内のローカルメモリに記憶し、
    前記ライト要求を受信してから前記応答を前記ホスト装置に送るまでの処理とは非同期的なタイミングで、バックライトキャッシングの方法により、前記ライトデータを前記ローカルキャッシュメモリから前記メインキャッシュメモリへ転送する
    ように構成され、
    前記チャネルアダプタパッケージには2以上の前記チャネルアダプタが搭載され、前記2以上のチャネルアダプタが前記内部バスを介して相互に接続されており、
    前記チャネルアダプタパッケージ上で、前記2以上のチャネルアダプタ内の各プロセッサが前記内部バスを介して、同じチャネルアダプタ内の前記ローカルキャッシュメモリだけでなく他のチャネルアダプタ内の前記ローカルキャッシュメモリにも直接的にアクセスできるように構成され、
    前記接続ネットワークが階層スターネットアーキテクチャに従った構造を有しているストレージシステム。
  2. 請求項1記載のものにおいて、
    前記各プロセッサは、前記ホスト装置からリードデータについてのリード要求を受信した場合、
    前記リード要求に含まれている前記リードデータの前記ストレージデバイス内での記憶場所を特定するための情報と、前記各プロセッサが記憶している前記ローカルキャッシュメモリ内に存在するデータの前記ディレクトリ情報とを照合することにより、前記リードデータが前記ローカルキャッシュメモリ内に存在するか否かの判断を行い、
    前記判断の結果、前記リードデータが前記ローカルキャッシュメモリ内に存在する場合、前記ローカルキャッシュメモリ内の前記リードデータを前記ホスト装置に送り、
    前記判断の結果、前記リードデータが前記ローカルキャッシュメモリ内に存在しない場合、前記リードデータを前記メインキャッシュメモリから前記接続ネットワークを介して読み、前記メインキャッシュメモリから読まれた前記リードデータを前記ローカルキャッシュメモリに書き、前記リードデータの前記ストレージデバイス内での記憶場所を特定するためのディレクトリ情報を記憶し、そして、前記リードデータを前記ホスト装置に送る
    ように構成されているストレージシステム。
  3. 請求項1記載のものにおいて、
    前記各プロセッサが、前記ホスト装置から前記ライト要求を受けた場合、前記ライトデータを2重化して前記ローカルキャッシュメモリに書くように構成されているストレージシステム。
  4. 請求項記載のものにおいて、
    前記各プロセッサが、前記ホスト装置から前記ライト要求を受けた場合、前記ライト要求がデータリモートコピーを目的とする場合には、前記ライトデータを前記ローカルキャッシュメモリに書くときに2重化を省略するように構成されているストレージシステム。
  5. 請求項1記載のものにおいて、
    前記ローカルキャッシュメモリの記憶領域が、ホストリード/ライト用のキャッシュ領域と、自ストレージシステムへのリモートコピー用のキャッシュ領域とを含み、
    前記各プロセッサが、前記ホスト装置から前記ライト要求を受けた場合、前記ライト要求が自ストレージシステムへのデータリモートコピーを目的とする場合には、前記ライトデータを前記リモートコピー用のキャッシュ領域に書き、そうでない場合には、前記ライトデータを前記ホストリード/ライト用のキャッシュ領域に書くように構成されているストレージシステム。
  6. 請求項1記載のものにおいて、
    前記ローカルキャッシュメモリの記憶領域が、前記ホスト装置によるランダムアクセスの対象となるデータを記憶するためのランダムアクセス用のキャッシュ領域と、シーケンシャルアクセスの対象となるデータを記憶するためのシーケンシャルアクセス用のキャッシュ領域とを含み、
    前記各プロセッサが、前記ランダムアクセス又は前記シーケンシャルアクセスが実行された頻度に応じて、前記ランダムアクセス用のキャッシュ領域と前記シーケンシャルアクセス用のキャッシュ領域の割合を可変制御する
    ように構成されているストレージシステム。
  7. 請求項1記載のものにおいて、
    前記複数のチャネルアダプタにより共有される共有メモリを更に備え、
    前記共有メモリには、前記ローカルキャッシュメモリ内のデータについての排他制御情報が格納されており、
    前記各チャネルアダプタ内の前記各プロセッサは、前記ローカルキャッシュメモリ内のデータにアクセスする場合、同じデータに対する他の前記プロセッサによるアクセスとの競合を回避するように、前記共有メモリ内の前記排他制御データを使用するように構成されているストレージシステム。
JP2003396296A 2003-11-26 2003-11-26 ストレージシステム及同システムにおけるデータキャッシング方法 Expired - Fee Related JP4412981B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003396296A JP4412981B2 (ja) 2003-11-26 2003-11-26 ストレージシステム及同システムにおけるデータキャッシング方法
US10/770,007 US7337281B2 (en) 2003-11-26 2004-02-03 Storage system and data caching method in the system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003396296A JP4412981B2 (ja) 2003-11-26 2003-11-26 ストレージシステム及同システムにおけるデータキャッシング方法

Publications (2)

Publication Number Publication Date
JP2005157815A JP2005157815A (ja) 2005-06-16
JP4412981B2 true JP4412981B2 (ja) 2010-02-10

Family

ID=34587632

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003396296A Expired - Fee Related JP4412981B2 (ja) 2003-11-26 2003-11-26 ストレージシステム及同システムにおけるデータキャッシング方法

Country Status (2)

Country Link
US (1) US7337281B2 (ja)
JP (1) JP4412981B2 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4477906B2 (ja) * 2004-03-12 2010-06-09 株式会社日立製作所 ストレージシステム
JP2006072634A (ja) * 2004-09-01 2006-03-16 Hitachi Ltd ディスク装置
US8806654B2 (en) * 2006-01-13 2014-08-12 Freescale Semiconductor, Inc. Controlling the access of master elements to slave elements over a communication bus
US7840752B2 (en) * 2006-10-30 2010-11-23 Microsoft Corporation Dynamic database memory management policies
US7930481B1 (en) 2006-12-18 2011-04-19 Symantec Operating Corporation Controlling cached write operations to storage arrays
US7984202B2 (en) * 2007-06-01 2011-07-19 Qualcomm Incorporated Device directed memory barriers
CN101689143B (zh) * 2007-06-20 2012-07-04 富士通株式会社 高速缓存控制装置以及控制方法
JP5176663B2 (ja) * 2008-04-11 2013-04-03 日本電気株式会社 データ処理装置、データ処理方法、及びプログラム
JP5453872B2 (ja) * 2009-03-27 2014-03-26 日本電気株式会社 ディスクアレイ装置、ディスク制御装置、ディスクアレイ装置における負荷分散方法
US10489293B2 (en) * 2009-04-15 2019-11-26 International Business Machines Corporation Information handling system with immediate scheduling of load operations
US8140756B2 (en) * 2009-04-15 2012-03-20 International Business Machines Corporation Information handling system with immediate scheduling of load operations and fine-grained access to cache memory
US8195880B2 (en) * 2009-04-15 2012-06-05 International Business Machines Corporation Information handling system with immediate scheduling of load operations in a dual-bank cache with dual dispatch into write/read data flow
US8140765B2 (en) * 2009-04-15 2012-03-20 International Business Machines Corporation Information handling system with immediate scheduling of load operations in a dual-bank cache with single dispatch into write/read data flow
WO2010131373A1 (en) * 2009-05-15 2010-11-18 Hitachi,Ltd. Storage subsystem
US9086980B2 (en) * 2012-08-01 2015-07-21 International Business Machines Corporation Data processing, method, device, and system for processing requests in a multi-core system
JP2016018384A (ja) * 2014-07-08 2016-02-01 富士通株式会社 ストレージ制御装置、ストレージシステム、及びプログラム
US10261722B2 (en) * 2016-01-22 2019-04-16 International Business Machines Corporation Performing caching utilizing dispersed system buffers
JP6981019B2 (ja) * 2017-03-14 2021-12-15 日本電気株式会社 ストレージ装置、ストレージシステム、ストレージ装置の制御方法、プログラム
KR102340094B1 (ko) * 2017-03-31 2021-12-17 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작 방법
US10592414B2 (en) * 2017-07-14 2020-03-17 International Business Machines Corporation Filtering of redundantly scheduled write passes
US10706005B2 (en) * 2017-12-08 2020-07-07 Vmware, Inc. File system interface for remote direct memory access
JP6802209B2 (ja) 2018-03-27 2020-12-16 株式会社日立製作所 ストレージシステム
US11176042B2 (en) 2019-05-21 2021-11-16 Arm Limited Method and apparatus for architectural cache transaction logging
US11237960B2 (en) * 2019-05-21 2022-02-01 Arm Limited Method and apparatus for asynchronous memory write-back in a data processing system
JP7242928B2 (ja) * 2020-02-07 2023-03-20 株式会社日立製作所 ストレージシステム及び入出力制御方法
JP7028902B2 (ja) 2020-02-07 2022-03-02 株式会社日立製作所 ストレージシステム及び入出力制御方法
WO2022054984A1 (en) * 2020-09-09 2022-03-17 Han Gyoo Kim Method for processing files through network attached disks
JP7065928B2 (ja) * 2020-11-06 2022-05-12 株式会社日立製作所 ストレージシステム及びその制御方法
KR102343600B1 (ko) * 2020-12-23 2021-12-27 주식회사 파두 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0389151A3 (en) 1989-03-22 1992-06-03 International Business Machines Corporation System and method for partitioned cache memory management
US5689678A (en) * 1993-03-11 1997-11-18 Emc Corporation Distributed storage array system having a plurality of modular control units
JP3239669B2 (ja) 1995-02-20 2001-12-17 株式会社日立製作所 記憶制御装置及びその制御方法
US5751993A (en) * 1995-09-05 1998-05-12 Emc Corporation Cache management system
US6304980B1 (en) * 1996-03-13 2001-10-16 International Business Machines Corporation Peer-to-peer backup system with failure-triggered device switching honoring reservation of primary device
US5893140A (en) * 1996-08-14 1999-04-06 Emc Corporation File server having a file system cache and protocol for truly safe asynchronous writes
JP3159118B2 (ja) 1997-04-18 2001-04-23 日本電気株式会社 ライトバックデータ選択方法及びプログラムを記録した機械読み取り可能な記録媒体
JP2000268006A (ja) 1999-03-15 2000-09-29 Fuji Xerox Co Ltd マルチプロセッサシステム
JP2000339101A (ja) 1999-05-28 2000-12-08 Hitachi Ltd ディスクアレイ制御装置
US6457100B1 (en) * 1999-09-15 2002-09-24 International Business Machines Corporation Scaleable shared-memory multi-processor computer system having repetitive chip structure with efficient busing and coherence controls
US6341331B1 (en) * 1999-10-01 2002-01-22 International Business Machines Corporation Method and system for managing a raid storage system with cache
JP3705731B2 (ja) 2000-06-05 2005-10-12 富士通株式会社 入出力制御装置
US6751703B2 (en) * 2000-12-27 2004-06-15 Emc Corporation Data storage systems and methods which utilize an on-board cache
US6681339B2 (en) * 2001-01-16 2004-01-20 International Business Machines Corporation System and method for efficient failover/failback techniques for fault-tolerant data storage system
JP4105398B2 (ja) 2001-02-28 2008-06-25 株式会社日立製作所 情報処理システム
US6629211B2 (en) 2001-04-20 2003-09-30 International Business Machines Corporation Method and system for improving raid controller performance through adaptive write back/write through caching
JP2003015826A (ja) 2001-07-04 2003-01-17 Hitachi Ltd ディスクアレイ制御装置における共有メモリコピー機能
JP2003084919A (ja) * 2001-09-06 2003-03-20 Hitachi Ltd ディスクアレイ装置の制御方法およびディスクアレイ装置
JP2003162377A (ja) * 2001-11-28 2003-06-06 Hitachi Ltd ディスクアレイシステム及びコントローラ間での論理ユニットの引き継ぎ方法
US7020754B1 (en) * 2001-12-13 2006-03-28 Emc Corporation Method and system for maintaining data integrity using dual write operations
JP3759048B2 (ja) * 2002-02-04 2006-03-22 日本電気株式会社 ディスクアレイ装置のディスクキャッシュ管理方法
US7007042B2 (en) * 2002-03-28 2006-02-28 Hewlett-Packard Development Company, L.P. System and method for automatic site failover in a storage area network
US6959364B2 (en) * 2002-06-28 2005-10-25 Intel Corporation Partially inclusive snoop filter
US6917967B2 (en) * 2002-12-13 2005-07-12 Sun Microsystems, Inc. System and method for implementing shared memory regions in distributed shared memory systems
JP4413518B2 (ja) 2003-04-16 2010-02-10 株式会社日立製作所 記憶デバイス制御装置、及び記憶デバイス制御装置の制御方法

Also Published As

Publication number Publication date
JP2005157815A (ja) 2005-06-16
US7337281B2 (en) 2008-02-26
US20050114592A1 (en) 2005-05-26

Similar Documents

Publication Publication Date Title
JP4412981B2 (ja) ストレージシステム及同システムにおけるデータキャッシング方法
US7117310B2 (en) Systems and methods for cache synchronization between redundant storage controllers
US6321298B1 (en) Full cache coherency across multiple raid controllers
JP2571342B2 (ja) データをキャッシュ・メモリに貯蔵するシステム及び方法
US8495301B1 (en) System and method for scatter gather cache processing
US7149846B2 (en) RAID protected external secondary memory
US6567888B2 (en) Method and apparatus for efficiently destaging data from a cache to two or more non-contiguous storage locations
US6347358B1 (en) Disk control unit and disk control method
CN108153683B (zh) 用于在存储器中的地址范围之间传输数据的装置和方法
US11010060B2 (en) High performance logical device
CN108319430B (zh) 处理io请求的方法及装置
US20100049902A1 (en) Storage subsystem and storage system including storage subsystem
JPS6015760A (ja) Dasdキヤツシユの情報をステ−ジングするための方法
US6842829B1 (en) Method and apparatus to manage independent memory systems as a shared volume
US6098149A (en) Method and apparatus for extending commands in a cached disk array
US8656119B2 (en) Storage system, control program and storage system control method
US20160350003A1 (en) Memory system
US6845426B2 (en) Disk cache control for servicing a plurality of hosts
US8924652B2 (en) Simultaneous eviction and cleaning operations in a cache
US6334159B1 (en) Method and apparatus for scheduling requests within a data processing system
US7437511B1 (en) Secondary level cache for storage area networks
JP4439798B2 (ja) ディスクアレイ装置の制御方法、及びディスクアレイ装置
CN111324282A (zh) 一种存储器
US20060031639A1 (en) Write unmodified data to controller read cache
JP2022547684A (ja) I/o性能を最適化するためのメモリ・コピーおよびメモリ・マッピング間の動的な切り替え

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061023

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20061023

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090825

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091015

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

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

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

Free format text: PAYMENT UNTIL: 20121127

Year of fee payment: 3

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131127

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees