JP2005258918A - ストレージシステムおよびストレージシステムのキャッシュメモリ制御方法 - Google Patents

ストレージシステムおよびストレージシステムのキャッシュメモリ制御方法 Download PDF

Info

Publication number
JP2005258918A
JP2005258918A JP2004071126A JP2004071126A JP2005258918A JP 2005258918 A JP2005258918 A JP 2005258918A JP 2004071126 A JP2004071126 A JP 2004071126A JP 2004071126 A JP2004071126 A JP 2004071126A JP 2005258918 A JP2005258918 A JP 2005258918A
Authority
JP
Japan
Prior art keywords
data
disk
cache memory
written
adapter
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.)
Granted
Application number
JP2004071126A
Other languages
English (en)
Other versions
JP4477906B2 (ja
Inventor
Kentaro Shimada
健太郎 島田
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 JP2004071126A priority Critical patent/JP4477906B2/ja
Priority to US10/852,358 priority patent/US7249221B2/en
Publication of JP2005258918A publication Critical patent/JP2005258918A/ja
Priority to US11/812,111 priority patent/US20070245091A1/en
Priority to US11/812,112 priority patent/US7814270B2/en
Priority to US11/812,110 priority patent/US20070245089A1/en
Application granted granted Critical
Publication of JP4477906B2 publication Critical patent/JP4477906B2/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】ストレージシステムの動作を高速化しながら、多数のホスト計算機を接続してもキャッシュメモリをあまり大きくせず、データ2重化を容易にすること。
【解決手段】チャネルアダプタ10a〜10d、ディスクドライブ群15a〜15d、ディスクアダプタ13a〜13d、ネットワークスイッチ12a及び12bを備え、チャネルアダプタ10a〜10dに接続するフロントサイドキャッシュ11a〜11d、ディスクアダプタ13a〜13dに接続するバックサイドキャッシュ14a〜14dの2階層のキャッシュメモリを持つ。データの書き込みを要求されたとき、フロントサイドキャッシュ11a〜11dとバックサイドキャッシュ14a〜14dの両方に書く。書き込みデータはフロントサイドキャッシュ11a〜11dの一つとバックサイドキャッシュ14a〜14dの一つ又はバックサイドキャッシュ14a〜14dの二つに置くことで2重化される。
【選択図】図1

Description

本発明は、ディスクドライブを備えるストレージシステムに係り、特にストレージシステムのキャッシュ制御方法に関する。
従来、ディスクドライブを備えるストレージシステム、または特に複数のディスクドライブを備えるディスクアレイ装置は、上位装置(ホスト計算機)からのデータの入出力動作を高速化するため、ストレージシステムやディスクアレイ装置内にディスクドライブより格段に高速な半導体メモリにより構成されるキャッシュメモリを備え、ホスト計算機から読み書きされるデータを一時的に蓄えることが行われてきた。例えば特許文献1にはこのような技術が開示されている。
上記特許文献1に示すような技術においては、キャッシュメモリの制御を容易にし、複数のホスト計算機との間でキャッシュメモリの共有化を行うため、キャッシュメモリに格納するデータは特に書き込みデータについて、ディスクドライブに対応する形で管理・制御されていた。即ち、キャッシュメモリ上のデータはどのディスクドライブのどの位置から読み書きされているかが記録され、もし複数のホスト計算機が同一のディスクドライブのデータを読み書きした場合には、同一のキャッシュメモリが共有されてキャッシュメモリ上の同一の領域を用いるように制御されていた。
また、従来技術として、特許文献2には、キャッシュメモリをホスト計算機対応に制御し、共有ネットワークをキャッシュメモリとディスクドライブの間においた構成のストレージシステムの例が開示されている。この特許文献2の技術によると、ホスト計算機から見た動作は、共有ネットワークの通過時間がなく、仮想的なボリュームを物理的なディスクドライブに変換しなくともキャッシュメモリをアクセスできるため、高速化することが可能である。
また、ストレージシステムを階層化する従来技術が、例えば特許文献3または特許文献4に開示されている。
特開平11−203201号公報 特開2003−345520 特開平10−63576号公報 特開平7−200187号公報
しかしながら、上記の特許文献1に示すようなシステムにおいては、特に書き込みデータに関して、当該ストレージ内のすべてのキャッシュメモリを、当該ストレージシステムに接続するすべてのホスト計算機から物理的に共有可能とする必要があるため、ホスト計算機と接続するホストインターフェース部と、キャッシュメモリとの間になんらかの共有ネットワークが備えられている。このため、ホスト計算機から見るとキャッシュメモリとのデータのやり取りは共有ネットワークを通過するための通過時間が必要であり、高速化に限界がある。
さらに、ホスト計算機に対してはディスクドライブを仮想化し、仮想的なボリュームを見せ、ストレージシステム内において、この仮想的なボリュームを物理的なディスクドライブに変換することも行われる場合も多い。このとき、キャッシュメモリをアクセスするためには、仮想的なボリュームを物理的なディスクドライブに変換した後、そのディスクドライブに対応するキャッシュメモリをアクセスする必要があるため、変換処理の時間がかかり、さらに高速化が困難である。
また、上記の特許文献2に開示されているように、多数のホスト計算機の接続を可能とすると、キャッシュメモリが異なるホスト計算機の間で共有されずその都度別個に設けなければならないので、キャッシュメモリが物理的に大量に必要である。さらには、信頼性を向上させるため、ホスト計算機から書き込んだデータをキャッシュメモリの別々の2箇所で2重化しようとすると、さらに2倍キャッシュメモリを設けるか、それぞれ2台程度ずつのホスト計算機で共有させて用いる複雑な制御を行うなど、簡単に実現することができない。
さらに、上記の特許文献3または特許文献4の開示技術は、上位階層のキャッシュメモリと下位階層のキャッシュメモリのコヒーレンス制御を簡単化するために、ホスト計算機に接続される上位階層キャッシュメモリが単一の構成であり、このため、多数のホスト計算機を接続しようとすると、上位階層の構成が巨大化し、上位階層のキャッシュメモリを極大にしなければならず、コスト低減や性能向上が困難である。
本発明が解決しようとする課題は、ホスト計算機からみた動作を高速化しながら、多数のホスト計算機を接続してもキャッシュメモリをあまり大きくさせず、信頼性向上のための2重化も容易にするストレージシステムを提供することにある。
前記課題を解決するために、本発明は主として次のような構成を採用する。
上位装置と接続する複数のチャネルアダプタと、
前記チャネルアダプタごとに接続して前記上位装置が読み書きするデータを一時的に蓄える第1のキャッシュメモリと、
複数のディスクドライブと、
前記ディスクドライブに接続する1または複数のディスクアダプタと、
前記ディスクアダプタごとに接続して前記ディスクドライブに読み書きされるデータを一時的に蓄える1または複数の第2のキャッシュメモリと、
前記チャネルアダプタと前記ディスクアダプタの間を接続する1または複数のネットワークと、を備えるストレージシステム。
また、前記ストレージシステムにおいて、前記上位装置から書き込みされるデータは、前記第1のキャッシュメモリと前記第2のキャッシュメモリとに2重化して書き込まれるストレージシステム。
また、前記第2のキャッシュメモリのうちの2個の第2のキャッシュメモリにより2重化するストレージシステム。
また、上位装置から読み書きされるデータを一時的に蓄える1または複数の第1のキャッシュメモリと、1または複数のディスクドライブと、前記ディスクドライブに読み書きされるデータを一時的に蓄える1または複数の第2のキャッシュメモリと、を備えるストレージシステムのキャッシュメモリを制御するキャッシュメモリ制御方法であって、
前記上位装置からの書き込みデータを前記第1のキャッシュメモリに書き込むとともに前記第2のキャッシュメモリに書き込み、
前記書き込まれた第1のキャッシュメモリ以外の他の第1のキャッシュメモリに前記書き込みデータ以前の旧データがあれば、前記第2のキャッシュメモリに書き込まれたデータを前記他の第1のキャッシュメモリに送付して更新し、
前記第2のキャッシュメモリから前記ディスクドライブに前記書き込みデータを書き込むまで前記第1のキャッシュメモリに書き込まれた前記書き込みデータを保持するキャッシュメモリ制御方法。
本発明によれば、第1のキャッシュメモリを用いてホスト計算機に対するレスポンス性能を向上しながら、第2のキャッシュメモリを複数のホスト計算機に共有させることでストレージシステムのコストを低減し、第2のキャッシュメモリを用いた2重化により信頼性も向上させることができる。
本発明のストレージシステムに係る実施の形態について、実施例1〜実施例4を例示し図面を参照しながら以下詳細に説明する。本発明のストレージシステムに係る実施の形態の概要は、第1のキャッシュメモリとしてフロントサイドキャッシュ、第2のキャッシュメモリとしてバックサイドキャッシュの2種類のキャッシュメモリを備えることを特徴とする。さらに、ストレージシステムのキャッシュを制御する制御方法としては、この2種類のキャッシュメモリを連携させた制御方法が特徴である。なお、以下の説明は、本発明のストレージシステムに係る実施の形態における実施例を示すものであり、本発明は、この実施例に限るものでなく、本発明の具備する技術的思想の範囲内のものを含むものである。
図1は、本発明のストレージシステムに係る実施例1の全体構成を示すブロック図である。図1において、ストレージシステム1は、ホスト計算機と接続して接続制御を行うチャネルアダプタ10a〜10d、ディスクドライブ群15a〜15d、ディスクドライブ群15a〜15dに接続しディスクドライブへの読み書きの制御を行うディスクアダプタ13a〜13d、チャネルアダプタ10a〜10dとディスクアダプタ13a〜13dを接続するネットワークスイッチ12a及び12b、を含む。さらに、ストレージシステム1は、チャネルアダプタ10a〜10dのそれぞれに第1の種類のキャッシュメモリであるフロントサイドキャッシュ11a〜11d、ディスクアダプタ13a〜13dのそれぞれに接続する第2の種類のキャッシュメモリであるバックサイドキャッシュ14a〜14d、を備える。なお、ホスト計算機は、図1に示すチャネルアダプタと1対1の接続関係であってもよく、また任意のネットワークを通じてどのチャネルアダプタにも接続可能であっても良い。
ストレージシステム1は、ホスト計算機からデータの読み書きの要求をチャネルアダプタ10a〜10dにて受信すると、まず読み出し要求の場合には、それぞれに接続されたフロントサイドキャッシュ11a〜11dを検索し、当該データが格納されていないかどうか調べる。もし当該データが格納されていれば、当該データをフロントサイドキャッシュ11a〜11dの該当する位置より読み出してホスト計算機に返送する。もし当該データが格納されていない場合には、当該データを格納しているべきディスクドライブに接続し制御しているディスクアダプタ13a〜13dを特定し、読み出し要求を当該ディスクアダプタに送付する。当該ディスクアダプタでは、まずそれぞれに接続されているバックサイドキャッシュ14a〜14dを検索し、要求されたデータが格納されていないかどうか調べる。
もし当該データがバックサイドキャッシュに格納されていれば、これを読み出してチャネルアダプタに返送する。もし当該データがバックサイドキャッシュにも格納されていない場合には、当該データが格納されているディスクドライブとその位置を特定し、当該ディスクドライブからデータを読み出して、バックサイドキャッシュに格納する。さらに当該データをチャネルアダプタに返送する。チャネルアダプタでは、ディスクアダプタより送付されてきたデータをフロントサイドキャッシュに書き込むと共に、ホスト計算機に返送する。
また、書き込みの場合には、まずチャネルアダプタにおいて、ホスト計算機より新たな書き込みデータを受信し、フロントサイドキャッシュ上にまず保持する。次に当該データが記録されるべきディスクドライブを制御しているディスクアダプタ13a〜13dを特定し、新しい書き込みデータを当該ディスクアダプタに送付して、それに接続するバックサイドキャッシュ14a〜14dに書き込ませる。バックサイドキャッシュ14a〜14dに書き込まれた新しい書き込みデータは、後述する方法により然るべき契機でディスクドライブ群15a〜15dに書き込まれる。
またチャネルアダプタでは、新しく書き込まれたデータに対応する書き込み前の旧データがフロントサイドキャッシュに格納されていないかどうか検索し、もし格納されていれば、新たに保持した新しい書き込みデータでそれを置き換える。もし格納されていなければ、新しい書き込みデータを当該データの最新値として登録する。
以上のような動作は、チャネルアダプタ10a〜10d、ディスクアダプタ13a〜13dがそれぞれ制御機能を備えることにより実現される。より詳細には、チャネルアダプタ10a〜10d、ディスクアダプタ13a〜13dがそれぞれプロセッサを備え、ソフトウェアのプログラムを搭載して制御してもよい。
図2は、本発明のストレージシステムに係る実施例1におけるチャネルアダプタ10a〜10dがプロセッサを備えた構成である例を示した図である。チャネルアダプタ10a〜10dは、それぞれ図示するように、プロセッサ201とローカルメモリ202、ホスト計算機と接続するホストI/F回路204、ネットワークスイッチ12a及び12bに接続するネットワーク接続回路203a及び203b、を持つ。図2では、プロセッサ201、ローカルメモリ202、ホストI/F回路204、ネットワーク接続回路203a及び203b、をプロセッサバス205で接続する構成を採る。更にフロントサイドキャッシュ11a〜11dもプロセッサバス205に接続される。
プロセッサバス205は、同時に一つのデータ送受しか行えないバスのほかに、送受元が異なれば同時に複数のデータ送受が可能であるスイッチで構成してもよい。ローカルメモリ202は、プロセッサ201で動作するプログラムを格納するほかに、ホストI/F回路204により送受するホストへの制御コマンドを一時的に格納したり、ネットワーク接続回路203a及び203bを通してディスクアダプタ13a〜13dと送受する制御情報の一時的な格納に用いることができる。
図3は、本発明のストレージシステムに係る実施例1におけるディスクアダプタ13a〜13dがプロセッサを備えた構成である例を示した図である。ディスクアダプタ13a〜13dは、それぞれ図示するように、プロセッサ211とローカルメモリ212、ディスクドライブ群15a〜15dに接続するディスクドライブI/F回路214、ネットワークスイッチ12a及び12bに接続するネットワーク接続回路213a及び213b、を持つ。図3では、プロセッサ211、ローカルメモリ212、ディスクドライブI/F回路214、ネットワーク接続回路213a及び213bをプロセッサバス215で接続する構成を採る。更にバックサイドキャッシュ14a〜14dもプロセッサバス215に接続される。
プロセッサバス215は、同様に、同時に一つのデータ送受しか行えないバスのほかに、送受元が異なれば同時に複数のデータ送受が可能であるスイッチで構成してもよい。ローカルメモリ212も同じく、プロセッサ211で動作するプログラムを格納するほかに、ディスクドライブI/F回路214により送受するディスクドライブへの制御コマンドを一時的に格納したり、ネットワーク接続回路213a及び213bを通してチャネルアダプタ11a〜11dと送受する制御情報の一時的な格納に用いることができる。なお、図2と図3のチャネルアダプタとディスクアダプタは後述する本発明の実施例2にも適用できるものである。
フロントサイドキャッシュ11a〜11dには、読み書きされるデータ自体に加えて、どのホスト計算機のどの論理ボリュームのどの位置のデータであったかを記録しておく必要がある。図4はそのためのデータ構造の例を示す図である。ここで論理ボリュームとは、ストレージシステムがホスト計算機に仮想的に提供する記憶領域である。ストレージシステムは、自身が有するディスクドライブが有する物理的な記憶領域を用いて論理ボリュームを構成する。図1のようなストレージシステム1において、データの入出力はある一定のまとまり(ブロック)を単位として行われるので、図4におけるデータ構造もブロック単位に構成することができる。すなわち、図4において、データ構造は、データが有効であることを示すマーク情報V、ホスト計算機を識別するためのホストID、論理ボリュームを識別するための論理ボリューム番号LUN、論理ボリュームの中でブロックを識別する論理ブロックアドレス、及びブロックデータの組で構成されている。
ホスト計算機はストレージシステム1に対して論理ボリューム番号LUNと論理ブロックアドレスで読み書きするデータを特定してくるので、チャネルアダプタ11a〜11dのプロセッサ201による制御によって、あるホスト計算機からの要求に対し、要求元のホスト計算機を識別するホストIDを付加するだけで、フロントサイドキャッシュ11a〜11d内の図4のようなデータ構造を検索してデータのあるなしを求めることができる。ホスト計算機からもたらされた要求に含まれる情報をなんら変換処理を行うことなく用いることが可能であるので、処理を高速化することができる。ホストIDについては、通常はホスト計算機をストレージシステム1に接続する時にストレージシステム1によってそれぞれのホスト計算機ごとに付与されるので、これをチャネルアダプタ10a〜10dごとに記録して管理しておくことができる。
ホスト計算機より要求されたデータがフロントサイドキャッシュ11a〜11dに存在しないときは、データ要求をディスクアダプタ13a〜13dを特定して送付する必要がある。このため、チャネルアダプタ10a〜10dでは、どのデータ要求をどのディスクアダプタに送るかという情報を保持しておく。図5及び図6は、このためのデータ構造の例である。図5および図6のデータ構造は、チャネルアダプタ10a〜10dのそれぞれに接続されたフロントサイドキャッシュ11a〜11dに図4のデータ構造と併せて格納しても良いし、あるいはチャネルアダプタ10a〜10dのそれぞれのローカルメモリ202に格納しても良い。
図5のデータ構造は、ホストID、LUN、論理ブロックアドレスで識別されるホスト計算機からのデータ要求が、ディスクアダプタ13a〜13dにおける管理単位であるRAIDグループID、ブロックアドレスでどのように対応するかを示す構造である。ここで管理単位とは、ストレージシステム(ディスクアダプタ)が、自己が有する物理的な記憶領域を管理する単位を指す。物理的な記憶領域はブロックで管理される。ストレージシステムは、複数のブロックから一つの管理単位を作成する。図5のデータ構造の左端には、データ構造の各エントリが有効なデータであることを示す有効マークVがある。図5ではデータ構造に示される論理ブロックアドレスを開始アドレスとして、右端のブロック長で示されるブロック数分が同様にRAIDグループIDで示される管理単位内のブロックアドレスを開始アドレスとするデータブロックに変換される。
図6は、どのRAIDグループIDで示される管理単位がどのディスクアダプタによって制御されているかを示すデータ構造である。同じく、データ構造の各エントリのデータが有効であるかどうかを示す有効マークVを含む。
チャネルアダプタ10a〜10d(より詳細には、チャネルアダプタ10a〜10d内のプロセッサ201)は、データがフロントサイドキャッシュ11a〜11dに存在しないときは、まず図5のデータ構造を用いて、ホストID、LUN、論理ブロックアドレスの組をRAIDグループID、ブロックアドレスの組に変換する。次に図6のデータ構造を用いて、データ要求を送付すべきディスクアダプタ13a〜13dを特定する。
ここで、ホスト計算機からの要求がデータの書き込みである場合には、書込みデータをフロントサイドキャッシュ11a〜11dに格納した後、常に書き込みデータをチャネルアダプタ10a〜10dよりディスクアダプタ13a〜13dに送付し、バックサイドキャッシュ14a〜14dにも書き込ませる。このため、書き込み時には図5および図6のデータ構造が毎回用いられる。このとき、書き込みデータの信頼性向上のために書き込みデータの2重化を行うことが考えられるが、その方法は次に示す第1の方法と第2の方法がある。ここで云うデータの2重化はデータをディスクドライブに書き込むまでのデータの2重化である。なお、読み出したデータをホスト計算機が変更して書き込むことを書き戻しと称するが、新たな書き込みと同様な手順で書き込み処理される。本実施形態では、新たな書き込みも書き戻しも両方適用可能である。
まず、第1の方法は、書き込みデータをバックサイドキャッシュ14a〜14dからディスクドライブ群15a〜15dのディスクドライブに書き込む(又は書き戻す)まで、フロントサイドキャッシュ11a〜11dにも保持することにより、フロントサイドキャッシュ11a〜11dとバックサイドキャッシュ14a〜14dの間で2重化する方法である。この方法では、データを2重化に必要な量だけしか置かないので、ストレージシステム1全体としてはキャッシュメモリの有効活用が可能である。しかし、フロントサイドキャッシュ11a〜11dにデータを保持しなければならないので、その分フロントサイドキャッシュ11a〜11dの使用量が制限される。
図7は、第1の方法に対応するため、フロントサイドキャッシュ11a〜11dに格納される図4のデータ構造に加えて、既に当該データがディスクドライブに書き戻されたか(書き込まれたか)どうかを管理する書き込みマークDを付加した例である。チャネルアダプタ10a〜10dは、フロントサイドキャッシュ11a〜11dの容量が不足してきたとき、図7のようなデータ構造を参照し、書き込みマークDがまだディスクドライブに書き戻されていないことを示す状態の時には、当該データ構造のエントリを保持しなければならない。
図7のデータ構造において書き込みマークDがディスクドライブ書き戻し済みを示す状態の時に、当該データ構造のエントリを破棄し、フロントサイドキャッシュの書き込みデータの領域を未使用領域に戻すことができる。ディスクアダプタ13a〜13dは、バックサイドキャッシュ14a〜14dより書き込まれたデータをディスクドライブ群15a〜15dのディスクドライブに書き戻したら、後述するように、チャネルアダプタ10a〜10dに通知し、図7のデータ構造における書き込みマークDをディスクドライブ書き込み済みに変更させる。
書き込みデータの2重化を行う第2の方法は、バックサイドキャッシュ14a〜14dのうちの2個を使って2重化する方法である。この第2の方法では、書き込みデータはバックサイドキャッシュ2個に置かれるほか、フロントサイドキャッシュにも置かれる可能性があるので、ストレージシステム1全体としてはキャッシュメモリの使用効率が悪くなる。しかし、バックサイドキャッシュからディスクドライブへの書き戻しの有無に関わらずフロントサイドキャッシュ内に格納された図4のデータ構造のそれぞれのエントリを再利用することが可能である。
第2の方法においては、チャネルアダプタ10a〜10dでは、データの書き込み時には、当該データをディスクドライブに書き込む(又は書き戻す)べきディスクアダプタに加えて、2重化する2個目のバックサイドキャッシュと接続するディスクアダプタを特定する必要がある。図8は、そのための図6に替わるデータ構造の例である。図8に示すデータ構造は、図6のデータ構造に加えて、それぞれのRAIDグループIDごとに、2個目のペアとなるペアディスクアダプタの番号も保持される。
チャネルアダプタは、書き込みデータの複製を行って、図8のデータ構造に示される二つのディスクアダプタに送付する。それぞれのディスクアダプタでは当該書き込みデータをそれぞれのバックサイドキャッシュに書き込むが、更に然るべき契機でディスクドライブ群15a〜15dのディスクドライブに書き込むのは、1個目のディスクアダプタのみで、2個目のペアディスクアダプタは通常ではディスクドライブへの書き込みデータの書き込みは行わない。通常は2個目のペアディスクアダプタのバックサイドキャッシュに格納されたホスト計算機からの書き込みデータ(又はその複製)は、1個目のディスクアダプタにおいて、1個目のディスクアダプタのバックサイドキャッシュからディスクドライブへの書き込みが正しく行われた時点で破棄される。もし1個目のディスクアダプタにおけるディスクドライブへのデータの書き込みが何らかの障害で行えなくなった場合には、2個目のペアディスクアダプタから書き込まれる。
図9は、バックサイドキャッシュ14a〜14dに格納されるデータ構造の例である。フロントサイドキャッシュの場合の図4と同様に、データが有効であることを示すマーク情報V、管理単位を識別するためのRAIDグループID、管理単位中でのブロックを識別するブロックアドレス、及びブロックデータの組で構成されている。また更に、図9に示すデータ構造には、チャネルアダプタよりホスト計算機からのデータの書き込みが行われた場合には、当該書き込みデータをディスクドライブへの書き戻しを行ったかどうかを示す書き込みマークDを含む。ディスクアダプタ13a〜13d(より詳細にはディスクアダプタ13a〜13dのそれぞれのプロセッサ211)は、バックサイドキャッシュ14a〜14dに格納される図9のようなデータ構造を参照して、バックサイドキャッシュにどのようなデータが書き込まれているか管理し制御を行うことができる。
また、実際のディスクドライブの読み書きに関しては、どのRAIDグループIDで管理される管理単位がどのディスクドライブに格納されるかを示す情報を参照する必要がある。図10はこの情報のためのデータ構造の例である。図10のデータ構造は、図9のデータ構造と併せてバックサイドキャッシュ14a〜14dに格納しても良いし、あるいはディスクアダプタ13a〜13dのそれぞれのローカルメモリ212に格納しても良い。
図10に示したデータ構造では、データ構造のそれぞれのエントリが有効なデータであることを示す有効マークVと、管理単位を識別するRAIDグループIDと、RAIDタイプと、各管理単位ごとに4個のディスクドライブを識別するドライブ番号0〜3が組みとなっている。RAIDタイプでは、例えばRAIDのレベル(RAID1、RAID5)の識別を行うことができる。またRAIDのパリティ生成方法の識別などの付加情報として用いることも考えられる。例えば次のようなRAID構成の識別に用いることも考えられる。すなわち、ディスクドライブは図10の例では1管理単位当り4個としたが、4個のドライブでRAID5を構成した場合、データドライブ3に対し、パリティドライブ1という構成が考えら得る。これに対し、1管理単位にディスクドライブを8個とすることも考えられ、データドライブ7個に対しパリティドライブ1個、もしくはデータドライブ6個に対しパリティドライブ2個という構成も考えられる。このほか、さまざまなRAID構成も可能である。
ホスト計算機からデータの書き込みが行われたとき、当該書き込み要求を受け付けたチャネルアダプタ以外の他のチャネルアダプタでも、当該データを参照している場合も考えられる。このとき、他のチャネルアダプタのフロントサイドキャッシュには当該書き込みデータに対して、書き込み前の古いデータ(更新前のデータ)が保持されている。このような古いデータは更新するか、破棄させて用いないようにさせる必要がある。このような複数のフロントサイドキャッシュにおける一貫性の保証を行うため、各ディスクアダプタでは、どのチャネルアダプタのフロントサイドキャッシュにどのデータを送付したかを記録しておくことが考えられる。そのようにすれば、あるチャネルアダプタを通じてデータの更新の書き込みがあった場合には、記録された他のチャネルアダプタに書き込みのあったことを通知し、データの更新か破棄をさせることができる。
図11は、ディスクアダプタ13a〜13dにおいて、それぞれのデータをどのチャネルアダプタに送付したかを記録しておくためのデータ構造の例である。図11のようなデータ構造は、図10のデータ構造と同様に、図9のデータ構造と併せてバックサイドキャッシュ14a〜14dに格納しても良いし、あるいはディスクアダプタ13a〜13dのそれぞれのローカルメモリ212に格納しても良い。
図11に示した第1のデータ構造では(第2のデータ構造は後述する図31に示す)、データ構造のそれぞれのエントリが有効なデータであることを示す有効マークVと、管理単位を識別するRAIDグループIDと、管理単位内のデータブロックを識別するブロックアドレスと、送出先チャネルアダプタの番号の組みとなっている。あるデータが複数のチャネルアダプタに送付された場合には、同一のRAIDグループIDとブロックアドレスを持ち、送出先チャネルアダプタ番号にそれぞれのチャネルアダプタを記録したエントリをその数だけ備えることが考えられる。また、図11のようなデータ構造を拡張し、1エントリにある程度の数の送出先チャネルアダプタ番号を記録するようにすることも考えられる。
ディスクアダプタ13a〜13dでは、あるチャネルアダプタよりホスト計算機からの書き込みデータを受信した場合には、図11のようなデータ構造を参照し、当該データを参照する他のチャネルアダプタを検索し、記録された他のチャネルアダプタについて書き込みがあったことを通知して、それぞれのフロントサイドキャッシュ上の当該書き込みデータに対する旧データを更新させるか、破棄させる。
書き込みデータの2重化について、2個のバックサイドキャッシュで2重化する第2の方法では、1個目のディスクアダプタでバックサイドキャッシュより書き込まれたデータをディスクドライブへ書き込んだ場合にはこれを2個目のディスクアダプタに通知し、2個目のディスクアダプタのバックサイドキャッシュ上の複製データを破棄させる。この通知を行うために、各ディスクアダプタにおいて、それぞれのデータごとに2個目のディスクアダプタを記録しておく必要がある。
図12は、このためのデータ構造の例である。図11のデータ構造を拡張し、送出先チャネルアダプタ番号のほかに、2個目のペアとなるペアディスクアダプタ番号の記録が行えるようにしておく。このようなデータ構造は、図11と同じく、図9のデータ構造と併せてバックサイドキャッシュ14a〜14dに格納しても良いし、あるいはディスクアダプタ13a〜13dのそれぞれのローカルメモリ212に格納しても良い。
図13は、本発明のストレージシステムに係る実施例2の全体構成を示すブロック図である。図13において、図1と同様に、ストレージシステム1は、ホスト計算機と接続して接続制御を行うチャネルアダプタ10a〜10d、ディスクドライブ群15a〜15d、ディスクドライブ群15a〜15dに接続しディスクドライブへの読み書きの制御を行うディスクアダプタ13a〜13d、チャネルアダプタ10a〜10dとディスクアダプタ13a〜13dを接続するネットワークスイッチ21a及び21b、を含む。ストレージシステム1は、更に、チャネルアダプタ10a〜10dのそれぞれに第1の種類のキャッシュメモリであるフロントサイドキャッシュ11a〜11dを持つ。
また、本発明の実施例2では、図1に示す実施例1とは異なり、第2の種類のキャッシュメモリであるバックサイドキャッシュ14a〜14dが、ディスクアダプタ13a〜13dのそれぞれに直接接続されるのではなく、ネットワークスイッチ21aおよび21bに接続される。ディスクアダプタ13とバックサイドキャッシュ14とチャネルアダプタとは、ネットワークスイッチ21によって互いに他に接続される接続構成である。バックサイドキャッシュ14a〜14dは、ディスクアダプタ13a〜13dのそれぞれにネットワークスイッチ21aおよび21bを通して論理的に割り当てられて用いられる。このバックサイドキャッシュの割り当ては、ディスクアダプタ13内のプロセッサによって制御される。
図13に示す接続構成を採用すると、バックサイドキャッシュ14a〜14dがそれぞれのディスクアダプタ13a〜13dに物理的に固定化しないので、バックサイドキャッシュ14a〜14dをストレージシステム1内全体で柔軟に運用することができる。例えばディスクアダプタ13aで大量のデータを格納する必要があり、ディスクアダプタ13cではあまり大量のデータを格納する必要がなければ、バックサイドキャッシュ14a〜14dの中でディスクアダプタ13aへの割り当てを増やし、ディスクアダプタ13cへの割り当てを減らして用いればよい。
図13におけるチャネルアダプタ10a〜10d、フロントサイドキャッシュ11a〜11d、ネットワークスイッチ21aおよび21b、ディスクアダプタ13a〜13d、バックサイドキャッシュ14a〜14d、ディスクドライブ群15a〜15dの構成とその動作は図1に示した実施例1のものと同様である。
図14は、本発明のストレージシステムに係る実施例3の全体構成を示すブロック図である。図14において、ストレージシステム1は、ホスト計算機と接続するフロントエンド(FE)アダプタ20a〜20d、ディスクドライブ群15a〜15d、ディスクドライブ群15a〜15dに接続するバックエンド(BE)アダプタ23a〜23d、FEアダプタ20a〜20dとBEアダプタ23a〜23dを接続するネットワークスイッチ22a及び22b、を含む。ストレージシステム1は、更に、FEアダプタ20a〜20dのそれぞれに第1の種類のキャッシュメモリであるフロントサイドキャッシュ11a〜11dを持つ。また、第2の種類のキャッシュメモリであるバックサイドキャッシュ14a〜14dを持ち、ネットワークスイッチ22aおよび22bに接続される。
更に、本発明の実施例3では、ストレージシステム全体の制御を行うための統合制御部24a〜24dを備えることを特徴の1つとしている。統合制御部24a〜24dは、ネットワークスイッチ22aおよび22bに接続し、ネットワークスイッチ22aおよび22bを経由して、FEアダプタ20a〜20d、BEアダプタ23a〜23d、バックサイドキャッシュ14a〜14dに論理的に割り当てられてそれぞれの制御を行う。なお、本実施例3では、図1に示す実施例1におけるチャネルアダプタに対応するものとして、符号20をFEアダプタと称しているが、後述するように、FEアダプタは図1のチャネルアダプタからプロセッサ機能を取り除いたものであるので、符号20の名称をチャネルアダプタではなくて、FEアダプタと称している。
図14に示す実施例3とすることにより、ストレージシステム内でより性能が必要な部分に統合制御部24a〜24dを複数割り当てて並列処理させることにより性能要求を満たし、あまり性能が必要でない部分では逆に統合制御部24a〜24dの一つを他と共有させて用いるようにすることができるなど、ストレージシステム1内で柔軟な運用が可能である。これにより、統合制御部24a〜24dの数や制御能力・性能をストレージシステム1内で必要最小限にすることができ、コスト低減をさらに図ることができる。このようなコスト低減を図るためには、必要な制御能力はできるだけ統合制御部24a〜24dに集め、FEアダプタ20a〜20d、BEアダプタ23a〜23dからはなるべく制御能力を取り除いて簡単な構成とする必要がある。
図15は、本実施例3におけるFEアダプタ20a〜20dのより詳細な構成の例である。図において、FEアダプタ20a〜20dは、ホスト計算機と接続するホストI/F回路220、ホスト計算機とやり取りするデータや制御コマンドを一時的にバッファするコマンド・データ・バッファ222、ホスト計算機から受信したコマンド・データ・バッファ222内の制御コマンドを解析しFEアダプタ内の一次的な制御を行うコマンド一次解析部223、ネットワークスイッチ22aへ接続するネットワーク接続回路221aおよび221b、コマンド・データ・バッファ222とコマンド一次解析部223とネットワーク接続回路221aおよび221bと更にフロントサイドキャッシュ11a〜11dのそれぞれを接続するローカルスイッチ部224、を備える。
コマンド一次解析部223は、簡単化するため、フロントサイドキャッシュ11a〜11dの制御については、ホスト計算機からの要求がデータの読み出しであり、かつデータがフロントサイドキャッシュ11a〜11d内に存在するかどうか判定し、存在した場合にホスト計算機へデータを返送する動作に限り制御を行うことが考えられる。バックサイドキャッシュ14a〜14dへのデータの読み出し・書き込みが必要となるデータがフロントサイドキャッシュ11a〜11dになかった場合、およびホスト計算機からの要求が書き込み要求であった場合には、コマンド一次解析部223は、当該FEアダプタに割り当てられた統合制御部24a〜24dへ通知を行い、以降の制御はその統合制御部が行う。
ほかに、コマンド一次解析部223の制御能力を高め、FEアダプタ20a〜20d、フロントサイドキャッシュ11a〜11dが関わる処理をすべて制御させることも考えられるが、その場合は処理が複雑化するので、コマンド一次解析部223がそれに対応するように肥大化し、コスト低減が困難になると考えられる。
図16は、図14に示すストレージシステムの実施例3で用いることのできるBEアダプタ23a〜23dの構成例である。図16において、BEアダプタ23a〜23dは、ディスクドライブ群15a〜15dへ接続するディスクドライブI/F回路231、ディスクドライブ群15a〜15dへ読み書きするデータや制御コマンドを一時的に蓄えるコマンド・データ・バッファ232、コマンド・データ・バッファ内の制御コマンドを解析しディスクドライブI/F回路231の制御やディスクドライブ群15a〜15dからのエラーステータスの検出を行って統合制御部24a〜24dへ通知を行うコマンド/ステータス制御部233、ネットワークスイッチ22aおよび22bに接続するネットワーク接続回路230aおよび230b、を備える。
図16に示す構成例では、BEアダプタ全体の制御や、ネットワークスイッチ22aおよび22bを通じて論理的に接続されるバックサイドキャッシュ14a〜14dの制御は、統合制御部24a〜24dで行う。それぞれのBEアダプタ内のコマンド/ステータス制御部233は、制御コマンドに関わる低レベルの簡単な制御やディスクドライブIF回路231からのエラーステータスの検出など、簡単な制御を行うのに止まる。このようにすることにより、BEアダプタの構成を簡単化し、ストレージシステム1のコスト低減を行うことが可能である。
統合制御部24a〜24dは、複雑な制御機能と高い制御能力を備える必要があるので、例えばプロセッサと、ソフトウェアのプログラムによって実現することが考えられる。図17は本実施例3における統合制御部の構成例を示す図である。図17において、統合制御部24a〜24dはそれぞれ、プロセッサ241、ローカルメモリ242、ネットワークスイッチ22aおよび22bへそれぞれ接続するネットワーク接続回路244aおよび244b、を備える。ローカルメモリ242にはプロセッサ241で動作する制御プログラムを格納するほか、図5、図6、図8、図10、図11および図12に示したようなデータ構造を格納しても良い。
図14に示した本発明のストレージシステムに係る実施例3の動作は、図1に示した実施例1、図13に示した実施例2とほぼ同様である。図5、図6、図8、図10、図11および図12に掲げたような制御用のデータ構造については、チャネルアダプタ番号をFEアダプタ番号に、ディスクアダプタ番号をBEアダプタ番号と読み替えて、そのまま用いることが可能である。
「キャッシュメモリ制御処理手法1」
次に、本発明のストレージシステムに係る実施例1〜3に適用されるキャッシュメモリ制御処理手法1のうち、第1の種類のキャッシュメモリであるフロントサイドキャッシュの読み出しを制御する制御方法について、図18〜図21を参照しながら以下説明する。図18は、本発明のストレージシステムに係る実施例1〜3に適用されるキャッシュメモリ制御処理手法1のうち、第1の種類のキャッシュメモリであるフロントサイドキャッシュの読み出しを制御する制御方法を示すフローチャートである。図19は、本発明のストレージシステムに係る実施例1〜3に適用されるキャッシュメモリ制御処理手法1のうち、フロントサイドキャッシュの書き込みを制御する第1の制御方法を示すフローチャートである。すなわち、図18はホスト計算機からの要求が読み出しである場合、図19はホスト計算機からの要求が書き込みである場合にそれぞれ対応する動作フローを示している。以下に説明するキャッシュメモリの制御方法は、図1に示す実施例1、図13に示す実施例2、図14に示す実施例3のストレージシステムに共通して適用され得る。
図18において、まずステップ301にてホスト計算機からの要求が受信される。次にステップ302においてホスト計算機からの要求がデータの読み出し要求であるか、データの書き込み要求であるか判定される。ホスト計算機からの要求が書き込み要求である場合には、図19の(1)へ移る。
ホスト計算機からの要求がデータの読み出し要求である場合には、ステップ303に進み、当該ホスト計算機の要求を受信したチャネルアダプタもしくはFEアダプタに接続されるフロントサイドキャッシュが検索され、検索された結果が次のステップ304にて判定される。すなわち、要求されたデータが当該フロントサイドキャッシュに存在した場合には、ステップ314に進み、チャネルアダプタ(もしくはフロントサイドキャッシュを制御する統合制御部、以下同じ)は、要求されたデータをホスト計算機に返送して終了する。
ステップ304にて当該フロントサイドキャッシュにデータが格納されていないと判定された場合には、ステップ305に進み、チャネルアダプタは、当該フロントサイドキャッシュ内にまず新しくデータを格納するのに必要な領域の確保を行う。この処理の詳細は後述する。正しく領域確保されたかどうかはステップ306にて判定され、当該フロントサイドキャッシュにおいて領域確保に失敗した場合には、ステップ307にて、チャネルアダプタはホスト計算機にエラーを報告し、終了する。
領域確保に成功した場合には、ステップ308に進み、チャネルアダプタは、ホスト計算機からの読み出し要求に含まれる論理ボリューム番号LUN、論理ブロックアドレスをディスクアダプタもしくはBEアダプタにおける管理単位であるRAIDグループIDおよびブロックアドレスに変換する。この変換のとき、先に図5に示したようなデータ構造で表現される変換情報が用いられる。
次に、ステップ309にて、先に図6に示したようなデータ構造で表現される制御情報を用いることにより、チャネルアダプタは、RAIDグループIDから読み出し要求を送付するべきディスクアダプタもしくはBEアダプタ(より詳細にはバックサイドキャッシュ)を特定する。ステップ310では特定されたディスクアダプタもしくはBEアダプタ(より詳細にはバックサイドキャッシュ)にデータ読み出し要求を送付し、ホスト計算機が要求したデータを取得する。
ステップ311ではステップ310で正しく当該データが取得されたかどうかが判定され、もしデータの取得に関しエラーがあれば、ステップ312に進んで、ホスト計算機にエラー報告が行われ、終了する。ステップ311でエラーなしと判定された場合には、ステップ313に進み、ステップ305で新たに確保した領域に、ステップ310でディスクアダプタまたはBEアダプタ(より詳細にはバックサイドキャッシュ)より取得したデータを格納する。この後、当該データが当該フロントサイドキャッシュに初めから格納されていた場合と同様に、ステップ314において、チャネルアダプタは、フロントサイドキャッシュ上の当該データをホスト計算機に返送し、終了する。
次に、ホスト計算機からの要求が書き込みであった場合には、図18のステップ302から図19の(1)へと移る。図19において、(1)から次にステップ321へと進み、読み出しの場合の図18のステップ305と同様にして、チャネルアダプタは、当該フロントサイドキャッシュ上に新たな書き込みデータを格納するための領域の確保を行う。次のステップ322では領域確保に成功したかどうかが判定される。領域確保に失敗した場合には、ステップ323に進み、ホスト計算機に書き込みエラーを報告して終了する。領域確保に成功した場合にはステップ324に進み、ホスト計算機より新しい書き込みデータを受信して、ステップ321で確保した当該フロントサイドキャッシュ上の領域に格納する。
次にステップ325に進み、図18のステップ308と同様にして、チャネルアダプタは、ホスト計算機からの書き込み要求に含まれる論理ボリューム番号LUN、論理ブロックアドレスをディスクアダプタもしくはBEアダプタにおける管理単位であるRAIDグループIDおよびブロックアドレスに変換する。ステップ326では図18のステップ309と同様にして、チャネルアダプタは、ステップ325で変換したRAIDグループIDを基に、先に図6に示したようなデータ構造による制御情報を参照して、書き込んだデータを送付するディスクアダプタもしくはBEアダプタ(より詳細にはバックサイドキャッシュ)を決定する。
このとき、もし書き込みデータの2重化をバックサイドキャッシュを2個用いて行う場合には、2個目のバックサイドキャッシュに接続するディスクアダプタ番号もしくはBEアダプタ番号の決定も行う。このためには、図6のデータ構造に換えて、先に図8で示したようなデータ構造で表現される制御情報を用いる。
ステップ327では、チャネルアダプタは、ステップ326で決定された結果に従ってディスクアダプタもしくはBEアダプタ(より詳細にはバックサイドキャッシュ)に、ステップ324でフロントサイドキャッシュに格納したホスト計算機からの書き込みデータを読み出して送付し、書き込ませる。このとき、書き込みが正しくできたかどうかを示す書き込みステータスも返送させる。さらに、もし書き込みデータの2重化をバックサイドキャッシュを2個用いて行う場合には、チャネルアダプタは、2個目のバックサイドキャッシュにも当該フロントサイドキャッシュ上の書き込みデータを複製して送付し、書き込ませる。書き込みステータスも取得して、1個目のバックサイドキャッシュに対する書き込みステータスと併せて用いる。
ステップ328では、チャネルアダプタは、ステップ327において取得した書き込みステータスを判定する。書き込みステータスが書き込みエラー示す場合には、ステップ329に進み、フロントサイドキャッシュにステップ324で格納した書き込みデータを廃棄し、当該領域を未使用領域とする。さらに、チャネルアダプタは、ステップ330で書き込みエラーの発生をホスト計算機に報告し、終了する。
ステップ328で書き込みエラーステータスがエラーなしと判定された場合にはステップ331に進み、チャネルアダプタは、ステップ324で格納したホスト計算機からの書き込みデータに対応する旧データが当該フロントサイドキャッシュ上に登録されていないかどうか、検索する。次にステップ332では、ステップ331で検索した結果が判定される。判定の結果、もし当該フロントサイドキャッシュ上に当該書き込みデータに対する旧データが格納されていれば、チャネルアダプタは、それを破棄させ、当該領域を未使用領域とさせる。その後ステップ334に進む。もしステップ332において当該フロントサイドキャッシュに旧データが格納されていなければ、直接ステップ334に進む。
ステップ334では、チャネルアダプタは、当該フロントサイドキャッシュ上にステップ324で格納したホスト計算機からの書き込みデータを、当該データの最新値として登録する。その後、ステップ335にて書き込み完了を要求元のホスト計算機に報告して終了する。
図20は、本発明のストレージシステムに係る実施例1〜3に適用されるキャッシュメモリの制御処理手法1のうち、バックサイドキャッシュの読み出しを制御する制御方法を示すフローチャートであり、図21は、本発明のストレージシステムに係る実施例1〜3に適用されるキャッシュメモリの制御処理手法1のうち、バックサイドキャッシュの書き込みを制御する第1の制御方法を示すフローチャートである。図20はチャネルアダプタ(もしくはFEアダプタ、以下同じ)へのデータ読み出しの制御方法に対応し、図21はチャネルアダプタからのデータの書き込み、すなわちバックサイドキャッシュへの書き込みを制御する第1の制御方法に対応する。
図20において、まずディスクアダプタ(もしくはバックサイドキャッシュを制御する統合制御部、以下同じ)はステップ401にてチャネルアダプタからの要求を受け付ける。ステップ402にて要求が読み出しか書き込みかが判定される。要求が読み出しであれば、図21の(2)へ移る。
チャネルアダプタからの要求が読み出しであれば、ステップ403に進み、ディスクアダプタは、要求されたデータが当該バックサイドキャッシュにあるかどうか検索し、ステップ404にて検索の結果が判定される。検索の結果、要求されたデータが当該バックサイドキャッシュに存在すればステップ414に進む。要求されたデータが当該バックサイドキャッシュに存在しない場合、ステップ405に進む。
ステップ405では、ディスクアダプタは、当該バックサイドキャッシュ上に新たに要求されたデータを格納するための領域を確保する。この処理の詳細は後述する。正しく領域確保されたかどうかはステップ406にて判定され、当該バックサイドキャッシュにおいて領域確保に失敗した場合には、ディスクアダプタは、ステップ407にて要求元のチャネルアダプタにエラーを報告し、終了する。領域確保に成功した場合には、ステップ408に進み、ディスクアダプタは、要求されたデータのRAIDグループIDより、先に図10に示したような制御情報を参照して、RAIDタイプを調べ、当該データの存在するディスクドライブを決定する。
次にステップ409において、ディスクアダプタは、ディスクドライブより当該データを読み出し、ステップ410においてディスクドライブよりの読み出しにエラーがなかったかどうか判定する。もしディスクドライブの読み出しにおいてエラーが発生した場合には、ディスクアダプタは、ステップ411にて先にステップ405で確保した当該バックサイドキャッシュ上の領域を開放し、ステップ412にてチャネルアダプタにエラーを報告し、終了する。
ディスクドライブからの読み出しにエラーがなければ、ディスクアダプタは、ステップ413にて読み出したデータを先にステップ405で確保した当該バックサイドキャッシュ上の領域に格納し、ステップ414に進む。ステップ414では、バックサイドキャッシュ上の当該データを要求元のチャネルアダプタに返送する。次にステップ415において、ディスクアダプタは、返送したチャネルアダプタを当該データの送付先として記録する。これは、例えば先に図11に示したようなデータ構造の制御情報を用いて、バックサイドキャッシュ、もしくはディスクアダプタまたは統合制御部のローカルメモリに記録すればよい。
次に、チャネルアダプタからの要求が書き込みであった場合には、図20のステップ402から図21の(2)へと移る。図21において、(2)から次にステップ420へと進み、図20のステップ403と同様にして、ディスクアダプタは、当該バックサイドキャッシュ上に新たに書き込むデータに対応する旧データが存在するかどうか、検索する。
次にステップ421において、その検索の結果が判定され、検索の結果、旧データが当該バックサイドキャッシュ上に存在すれば、ステップ426に進み、ディスクアダプタは、その旧データをチャネルアダプタから送信されてくる書き込みデータで上書きし、ステップ427に進む。ステップ421において、検索の結果、旧データが当該バックサイドキャッシュ上に存在しない場合には、ステップ422に進み、図20のステップ405と同様にして、ディスクアダプタは、当該バックサイドキャッシュ上に新たに書き込みデータを格納するための領域を確保する。領域確保に成功したかどうかは次のステップ423で判定され、領域確保に失敗した場合には、ステップ424に進み、ディスクアダプタは、要求元のチャネルアダプタに書き込みエラーを報告し、終了する。
ステップ423で判定の結果、領域確保に成功した場合には、ステップ425に進み、ディスクアダプタは、チャネルアダプタより書き込みデータを受信して、当該バックサイドキャッシュ上の確保した領域に格納する。その後ステップ427へ進む。
ステップ427では、ディスクアダプタは、要求元のチャネルアダプタが当該データの送付先として登録されているかどうか、検索する。これは、例えば先に図11に示したようなデータ構造を検索することで実現される。ステップ428では、ステップ427の検索の結果が判定され、要求元のチャネルアダプタが既に当該データの送付先として登録済みであれば、ステップ430に進む。要求元のチャネルアダプタが当該データの送付先としてまだ登録されていなければ、ディスクアダプタは、ステップ429にて送付先として登録する。これも同じく、例えば図11に示したようなデータ構造の制御情報のエントリを追加することで行うことができる。その後ステップ430に進む。
ステップ430では、ディスクアダプタは、当該データに対し、他のチャネルアダプタが送付先として登録されているかどうか検索する。これも例えば図11に示したようなデータ構造の制御情報を検索することで行うことができる。ステップ431では、ステップ430の検索の結果が判定され、他のチャネルアダプタの登録がなければ、ステップ434に進む。もし他のチャネルアダプタの登録があれば、ステップ432に進み、ディスクアダプタは、新たにステップ426もしくは425でバックサイドキャッシュ上に書き込まれた書き込みデータをそのチャネルアダプタに送付し、そのチャネルアダプタに接続されているフロントサイドキャッシュ上の旧データを更新させる。
次にステップ433において、ディスクアダプタは、登録されたすべてのチャネルアダプタについて、新たに書き込まれた書き込みデータを送付したどうかを判定する。もしまだ送付していないチャネルアダプタがあれば、ステップ432に戻って繰り返す。当該データの送付先として登録されたすべてのチャネルアダプタに新たに書き込まれたデータの送付が終わればステップ434に進む。ステップ434では、ディスクアダプタは、書き込み完了を書き込み要求元のチャネルアダプタに報告し、終了する。
次に、図18のステップ305及び図19のステップ321で行われるフロントサイドキャッシュの領域確保を行う方法の詳細を説明する。図22がフロントサイドキャッシュの領域確保を行う第1の制御方法を説明した図である。
図22において、まず、チャネルアダプタは、ステップ360にて当該フロントサイドキャッシュ上の未使用領域が必要なだけ残っているかチェックする。ステップ361にてそのチェック結果が判定され、必要なだけ未使用領域が残っていた場合には、ステップ362に進み、未使用領域より必要なだけ領域を割り当てて、領域確保に成功したとする。ステップ361の判定の結果、未使用領域が充分に残っていなかった場合にはステップ363に進む。
ステップ363では、チャネルアダプタは、予め定める一定回数以上繰り返したどうか、繰り返し回数を数えてチェックする。すなわち、ホスト計算機から求められる書き込むべきブロック数が未使用領域に書き込めるかどうかが繰り返してチェックされる(ディスクドライブにデータが書き込まれればフロントサイドキャッシュ上のデータは消去可能であって未使用領域は拡大するので、未使用領域がホスト計算機からの書き込みブロック数よりも大きくなるまで繰り返す)。ステップ364でそのチェック結果が判定され、既に予め定める一定回数以上繰り返していれば、領域確保失敗とする。まだ一定回数以上繰り返していなければ、ステップ365に進み、当該フロントサイドキャッシュ上で最も古いデータの領域を決定する。
次に、ステップ366にて、チャネルアダプタは、そのデータ領域のデータが既にディスクドライブに書き戻されているかどうかを判定する。これには、例えば先に図7に示したようなデータ構造を用いて、フロントサイドキャッシュにデータを格納しておけばよい。ステップ365では、図7のようなデータ構造の各エントリの書き込みマークDを参照して、まだデータがディスクドライブに書き戻されていないかどうか判定することができる。
ステップ366における判定の結果、まだディスクドライブに書き戻されていなかった場合にはステップ367に進み、チャネルアダプタは、次に古いデータ領域を決定する。次にステップ368においてそのようなデータ領域がまだあるかどうか判定され、まだ次に古いデータ領域があれば、ステップ366に戻って繰り返す。もしもう次に古いデータ領域がもうなければ、領域確保は失敗となる。
またステップ366における判定の結果、そのデータ領域のデータが既にディスクドライブに書き戻し済みであれば、ステップ369に進む。ステップ369では、チャネルアダプタは、そのデータ領域のデータに対応する論理ボリューム番号LUNと論理ブロックアドレスを、例えば先に図5に示したようなデータ構造の変換情報を用いて、RAIDグループID、ブロックアドレスに変換する。次にステップ370において、チャネルアダプタは、RAIDグループIDより、同じく先に図6に示したようなデータ構造の制御情報を用いて、ディスクアダプタを特定する。
その後ステップ371において、チャネルアダプタは、フロントサイドキャッシュ上の当該データ領域を破棄して未使用領域とし、ステップ372において当該データ領域を破棄したことをステップ370において特定したディスクアダプタに通知し、そのディスクアダプタの当該データの送付先の登録から、当該チャネルアダプタを削除させる。そして、ステップ360に戻り、全体の処理を繰り返す。
次に、図20のステップ405及び図21のステップ422で行われるバックサイドキャッシュの領域確保を行う方法の詳細を説明する。図23がバックサイドキャッシュの領域確保を行う第1の制御方法を説明した図である。
図23において、まず、ディスクアダプタは、ステップ501にて当該バックサイドキャッシュ上の未使用領域が必要なだけ残っているかチェックする。ステップ502にてそのチェック結果が判定され、必要なだけ未使用領域が残っていた場合には、ステップ503に進み、未使用領域より必要なだけ領域を割り当てて、領域確保に成功したとする。
ステップ502の判定の結果、未使用領域が充分に残っていなかった場合にはステップ504に進む。ステップ504では、ディスクアダプタは、予め定める一定回数以上繰り返したどうか、繰り返し回数を数えてチェックする。ステップ505でそのチェック結果が判定され、既に予め定める一定回数以上繰り返していれば、領域確保失敗とする。まだ一定回数以上繰り返していなければ、ステップ506に進み、ディスクアダプタは、当該バックサイドキャッシュ上で最も古いデータの領域を決定する。
次に、ディスクアダプタは、ステップ507にてそのデータ領域のデータが既にディスクドライブに書き戻されているかどうかをチェックする。これには、例えば先に図9に示したようなデータ構造を用いて、バックサイドキャッシュにデータを格納しておけばよい。ステップ507では、図9のようなデータ構造の各エントリの書き込みマークDを参照して、まだデータがディスクドライブに書き戻されていないかどうかチェックすることができる。
ステップ507のチェックの結果をステップ508において判定する。判定の結果、既にディスクドライブに書き戻されていた場合にはステップ513に進む。ステップ508における判定の結果、まだディスクドライブに書き戻されていない場合には、ステップ509に進み、ディスクアダプタは、当該データ領域のデータのRAIDグループIDに基づいて、先に図10に示したような制御情報を用いてRAIDタイプを調べ、当該データを書き戻すディスクドライブを決定する。次にステップ510にて、ディスクアダプタは、当該データをディスクドライブに書き戻す。
次にステップ511にて、ディスクアダプタは、当該データをディスクドライブに書き戻したことを、当該データの送付先として登録されているチャネルアダプタに通知し、チャネルアダプタにおいて、先の図7のようなデータ構造に含まる書き込みマークDを書き込み済みに変更させる。ステップ512において、当該データの送付先として登録されているすべてのチャネルアダプタに通知したかどうか判定し、もしまだすべてのチャネルアダプタに通知していなければ、ステップ511に戻って繰り返す。
ディスクアダプタは、当該データの送付先として登録されているすべてのチャネルアダプタへ通知したらステップ513に進む。ステップ513では、ディスクアダプタは、バックサイドキャッシュ上の当該データ領域を破棄し、未使用領域とする。その後、ステップ501に戻って全体の処理を繰り返す。なお、ディスクアダプタにおけるバックサイドキャッシュからのディスクドライブへのデータの書き込み(書き戻し)は、図23に示したバックサイドキャッシュ上での領域確保だけではなく、データをバックサイドキャッシュに書き込んでからの経過時間やバックサイドキャッシュにおける未使用領域の残量などを契機として行う。
図24は、このようなバックサイドキャッシュの書き込み制御の第1の制御方法を説明する図である。すなわち、図24は、本制御処理手法1におけるバックサイドキャッシュの書き込みデータをディスクドライブへ書き戻し(書き込み)制御する第1の制御方法を示すフローチャートである。
図24において、まず、ディスクアダプタは、ステップ520にて、バックサイドキャッシュの未使用領域の残量(空き容量)が、予め定めた一定値以下かどうかチェックする。ステップ521にてその結果を判定し、もし空き容量が充分になければ、ステップ522に進む。ステップ522では、まだディスクドライブに書き戻していないデータの量が予め定めた一定値以上かどうかチェックする。ステップ523で、ディスクアダプタは、そのチェックの結果を判定し、もし書き戻していないデータの量が予め定める一定値以下なら、処理を終了する。また、書き込んで(書き戻して)いないデータの量が予め定める一定値以上であれば、ステップ524に進み、ディスクアダプタは、まだ書き込んでいないデータの中で最も古い書き込みデータの領域を決定する。その後ステップ527に進む。
また、ステップ521の判定において、バックサイドキャッシュの空き容量が予め定める一定値以上であった場合には、ステップ525に進み、ディスクアダプタは、バックサイドキャッシュ上でまだディスクドライブに書き戻していない書き込みデータの中で、バックサイドキャッシュに書き込まれてから、予め定める一定時間以上経過したデータ領域があるかどうか検索する。その検索結果をステップ526で判定する。ディスクアダプタは、もし予め定める一定時間以上経過したデータ領域がなければ、処理を終了する。
ステップ526の判定の結果、予め定める一定時間以上経過したデータ領域があれば、ステップ527に進む。ステップ527では、ディスクアダプタは、ステップ524で決定された最も古い書き込みデータのデータ領域もしくはステップ526で予め定める一定時間以上経過した書き込みデータのデータ領域について、図23のステップ509と同様にして、当該データのRAIDグループIDに基づき、先に図10に示したような制御情報を用いてRAIDタイプを調べ、当該データを書き戻すディスクドライブを決定する。次にステップ528にて当該データをディスクドライブに書き戻す。
その後、ステップ529にて、ディスクアダプタは、当該データをディスクドライブに書き戻したことを、当該データの送付先として登録されているチャネルアダプタに通知し、チャネルアダプタにおいて、先の図7のようなデータ構造に含まる書き込みマークDを書き込み済みに変更させる。ステップ530において、ディスクアダプタは、当該データの送付先として登録されているすべてのチャネルアダプタに通知したかどうか判定し、もしまだすべてのチャネルアダプタに通知していなければ、ステップ529に戻って繰り返す。
ディスクアダプタは、当該データの送付先として登録されているすべてのチャネルアダプタへ通知したらステップ531に進む。ステップ531では、バックサイドキャッシュ上の図9のようなデータ構造における当該データ領域の書き込みマークDを書き戻し済みとして、当該データが書き込み終了であることを示し、処理を終了する。
「キャッシュメモリ制御処理手法2」
次に、本発明のストレージシステムに係る実施例1〜3に適用されるキャッシュメモリ制御処理手法2のうち、特にバックサイドキャッシュの書き込みを制御する第2の制御方法について、図25を参照しながら以下説明する。
前述したキャッシュメモリ制御処理手法1では、バックサイドキャッシュの書き込み制御方法において、ホスト計算機からデータの書き込みが行われた時、その書き込み要求を受けたチャネルアダプタより書き込みデータがバックサイドキャッシュに書き込まれた後、当該書き込みデータに対する旧データがもしほかのチャネルアダプタのフロントサイドキャッシュにも格納されていた場合には、それらの旧データをすべて更新するように、バックサイドキャッシュより新たに書き込まれたデータを送付する(図21参照)。このような制御方法は、他のチャネルアダプタにおいても当該データ領域がさらに頻繁にホスト計算機からアクセスされる場合では、常にすべてのフロントサイドキャッシュに最新データを送付してしまうことになるので非常に有効である。
しかし、他のチャネルアダプタにおいて当該データがあまり頻繁にアクセスされない、もしくはアクセスされてもほとんど新たな書き込みである場合には、書き込みが生じる度にすべてのフロントサイドキャッシュに最新データを送付して更新するのは、バックサイドキャッシュとフロントサイドキャッシュの間の通信能力を消費し、フロントサイドキャッシュの領域も無駄に使うことになるので、有効性が損なわれる。
そこで、そのような場合には、常に最新のデータをすべてのフロントサイドキャッシュに送付するのではなくて、書き込みが起こったら、他のフロントサイドキャッシュ上の旧データを削除して単に用いられないようにすることが考えられる。このようにした場合、他のフロントサイドキャッシュに接続するチャネルアダプタは、当該データがホスト計算機よりそのチャネルアダプタを通して再びアクセスされた時にあらためてバックサイドキャッシュを参照し、最新データを取り込むようにする。
図25は、バックサイドキャッシュの書き込みの制御について、上述したような制御を行うために、図21の第1の制御方法とは異なる第2の制御方法を示した図である。図25に示すバックサイドキャッシュの第2の制御方法(キャッシュメモリ制御処理手法2)において、チャネルアダプタからの要求の受信と判定、読み出しであった場合の制御の方法は先の制御方法を示した図20と同様である。すなわち、チャネルアダプタからの要求を受信し、読み出しであれば図20と同様の制御を行う。書き込みである場合には、図20の(2)より図25の(2)に進む。
図25において、(2)よりステップ420からステップ431までの制御も、先のキャッシュメモリ制御処理手法1における制御方法を示す図21と同様である。そのため、ここではステップ431以降について説明する。
ステップ431では、ディスクアダプタは、書き込み要求元のチャネルアダプタ以外の他のチャネルアダプタが当該データの送付先として登録されていないかどうか判定する。判定の結果登録されていなければ、図21と同様にステップ434に進む。判定の結果、他のチャネルアダプタが登録されていれば、ステップ435に進む。ステップ435においては、ディスクアダプタは、登録されている他のチャネルアダプタに対し、当該データ領域の書き込みが行われたことを通知し、そのチャネルアダプタに接続しているフロントサイドキャッシュ上の当該書き込みデータに対する旧データを削除させ、無効化させる。
次に、ステップ436において、ディスクアダプタは、無効化させたチャネルアダプタを当該データの送付先の登録から削除する。その後、ステップ437にて当該データの送付先として登録されたすべての他のチャネルアダプタについて、無効化させたかどうか判定する。また無効化させていないチャネルアダプタがある場合にはステップ435に戻って繰り返す。
ステップ437にて他のすべてのチャネルアダプタに接続するフロントサイドキャッシュの当該データの無効化が終了したと判定されたら、次にステップ434に進む。ステップ434では、ディスクアダプタは、書き込み終了を書き込み要求元のチャネルアダプタに報告して、終了する。
図25に示すバックサイドキャッシュの第2の制御方法(キャッシュメモリ制御処理手法2)において、他のフロントサイドキャッシュの読み出しおよび書き込みの制御については、前述した図18、図19の方法と同じである。またフロントサイドキャッシュの領域確保、バックサイドキャッシュの領域確保、バックサイドキャッシュのデータのディスクドライブへの書き戻しの制御の方法も前述した図22、図23、図24の方法と同じである。
「キャッシュメモリ制御処理手法3」
次に、本発明のストレージシステムに係る実施例1〜3に適用されるキャッシュメモリ制御処理手法3のうち、フロントサイドキャッシュの書き込みを制御する第2の制御方法について、図26を参照しながら以下説明する。
ストレージシステムのキャッシュメモリを制御する制御方法において、上述したキャッシュメモリ制御処理手法1とキャッシュメモリ制御処理手法2の制御方法では、ホスト計算機からデータの書き込みが行われた時、信頼性の向上のためのその書き込みデータの2重化は、フロントサイドキャッシュとバックサイドキャッシュを用いて行われている。このとき、フロントサイドキャッシュ上のホスト計算機からの書き込みデータは、同じデータがバックサイドキャッシュよりディスクドライブに書き戻されるまで破棄することができず、フロントサイドキャッシュの容量を圧迫することがある。
そこで、図26に示すキャッシュメモリの制御方法においては、バックサイドキャッシュを2個用いて書き込みデータの2重化を行うように制御するものであり、この制御方法によると、書き込みデータに関してバックサイドキャッシュを2倍使用するが、バックサイドキャッシュからのディスクドライブへのデータの書き戻しの有無に関わらずフロントサイドキャッシュのデータを必要に応じて破棄し、データ領域を再利用することが可能となる。
図26は、本発明によるストレージシステムのフロントサイドキャッシュの書き込みを制御する第2の制御方法を説明する図である。本キャッシュメモリ制御処理手法3の制御方法において、ホスト計算機からの要求の受信と判定、読み出しであった場合の制御の方法は、先のキャッシュメモリ制御処理手法1の図18の方法と同じである。すなわち、ホスト計算機からの要求を受信し、読み出しであれば図18と同様の制御を行う。書き込みである場合には、図18の(1)より図26の(1)に進む。図26において、(1)よりステップ321からステップ325までの制御も、先の図19と同様である。そのため、本キャッシュメモリ制御処理手法3の制御方法ではステップ325以降について説明する。
図26にて、ステップ325では、先のキャッシュメモリ制御処理手法1の図19と同じく、チャネルアダプタは、論理ボリューム番号LUN及び論理ブロックアドレスをRAIDグループID、ブロックアドレスに変換する。次にステップ380に進み、チャネルアダプタは、RAIDグループIDに基づいて、書き込んだデータを送出する1個目のディスクアダプタと2個目のペアとなるディスクアダプタを特定する。これには例えば図8に示したようなデータ構造からなる制御情報を用いればよい。
次にステップ381において、チャネルアダプタは、ディスクアダプタ、ペアディスクアダプタの双方にデータ書き込み要求を行い、フロントサイドキャッシュに書き込んだホスト計算機からの書き込みデータを送出して、それぞれのバックサイドキャッシュに書き込ませる。そして、書き込みステータスを双方から計2個取得する。ステップ382において、チャネルアダプタは、2個の書き込みステータスが両方ともエラーなしであるかどうか判定する。判定の結果、どちらかにエラーがあればステップ383に進み、フロントサイドキャッシュ上のホスト計算機からの書き込みデータを破棄する。またステップ384に進み、2個の書き込みステータスのうち、どちらか一方はエラーなしであったかどうか判定する。2個ともエラーであった場合には、ステップ386に進む。
ステップ384において、もしどちらか一方の書き込みステータスがエラーなしであった場合には、ステップ385に進み、チャネルアダプタは、エラーのなかった方のディスクアダプタに書き込みのキャンセルを通知し、そのバックサイドキャッシュに書き込んだデータを破棄させる。またもしこのバックサイドキャッシュにおいてキャンセルされた書き込みにより、当該チャネルアダプタが新たに当該データの送付先として登録されたのであれば、その登録もキャンセルさせる。その後、ステップ386に進み、チャネルアダプタは、書き込みエラーをホスト計算機に報告して終了する。
ステップ382において、2個の書き込みステータスの両方ともエラーなしである場合は、以降のステップ331からの制御の方法は先の図19の同じくステップ331以降の制御の方法と同じである。
次に、本キャッシュメモリ制御処理手法3におけるバックサイドキャッシュの制御の方法を説明する。バックサイドキャッシュの制御方法のうち、1個目のバックサイドキャッシュの制御の方法は、先のキャッシュメモリ制御処理手法1の図20及び図21、または先のキャッシュメモリ制御処理手法2の図25と同じでよい。このため、ここでは2個目の書き込みのみを行うバックサイドキャッシュの制御方法を説明する。
図27は、2個目の書き込みのみを行うバックサイドキャッシュの制御方法を説明する図である。図27において、まずステップ441にて2個目のペアディスクアダプタがチャネルアダプタより書き込み要求を受信する。次にステップ442において、ディスクアダプタは、当該バックサイドキャッシュ上に新たに書き込むデータに対応する旧データが存在するかどうか検索する。
次にステップ443において、その検索の結果が判定され、検索の結果、旧データが当該バックサイドキャッシュ上に存在すれば、ステップ448に進み、その旧データをチャネルアダプタから送信されてくる書き込みデータで上書きし、ステップ449に進む。ステップ443において、検索の結果、旧データが当該バックサイドキャッシュ上に存在しない場合には、ステップ444に進み、ディスクアダプタは、当該バックサイドキャッシュ上に新たに書き込みデータを格納するための領域を確保する。
領域確保に成功したかどうかは次のステップ445で判定され、領域確保に失敗した場合には、ステップ446に進み、ディスクアダプタは、要求元のチャネルアダプタに書き込みエラーを報告し、終了する。ステップ445で判定の結果、領域確保に成功した場合には、ステップ447に進み、ディスクアダプタは、チャネルアダプタより書き込みデータを受信して、当該バックサイドキャッシュ上の確保した領域に格納する。その後ステップ449へ進む。ステップ449では、ディスクアダプタは、要求元のチャネルアダプタが、当該データの送付先として登録されているかどうか、検索する。これは、例えば先に図11に示したようなデータ構造を検索することで実現される。
次にステップ450では、ステップ449の検索の結果が判定され、要求元のチャネルアダプタが既に当該データの送付先として登録済みであれば、ステップ452に進む。要求元のチャネルアダプタが当該データの送付先としてまだ登録されていなければ、ディスクアダプタは、ステップ451にて送付先として登録する。これも同じく、例えば図11に示したようなデータ構造の制御情報のエントリを追加することで行うことができる。その後ステップ452に進む。ステップ452では、ディスクアダプタは、書き込み完了を書き込み要求元のチャネルアダプタに報告し、終了する。
このとき、図21または図25に示される1個目のバックサイドキャッシュの制御の方法とは異なり、図27の2個目のバックサイドキャッシュの制御においては、ディスクアダプタは、新たな書き込みがあったことを当該データの他のチャネルアダプタに通知する必要はない。新たな書き込みがあったことを当該書き込みデータに対する旧データを持つ他のチャネルアダプタに通知することは、図21または図25の制御の方法により、1個目のバックサイドキャッシュに接続する1個目のディスクアダプタより行われる。なお、ステップ451における要求元のチャネルアダプタを当該データの送付先として登録する制御は、1個目のバックサイドキャッシュが障害により使用不能になった場合には、その処理を引き継げるようにするために行うものである。
そして、本キャッシュメモリ制御処理手法3において、フロントエンドキャッシュの領域確保の制御方法、バックエンドキャッシュの制御方法は、それぞれ先のキャッシュメモリ制御処理手法1の図22、図23に示した制御方法と若干異なる。より詳細には、フロントサイドキャッシュの領域の再利用はバックサイドキャッシュからのディスクドライブへの書き込み(書き戻し)の有無に関わらず行えること、1個のチャネルアダプタは2個のディスクアダプタと連携して制御されること、及び2個のディスクアダプタの間も連携して制御されること、による。
図28は、先のキャッシュメモリ制御処理手法1の図22に替わる、本発明のストレージシステムに係るキャッシュメモリ制御処理手法3のフロントサイドキャッシュの領域確保を制御する第2の制御方法を示すフローチャートである。図28において、チャネルアダプタは、まずステップ340にて当該フロントサイドキャッシュ上の未使用領域が必要なだけ残っているかチェックする。ステップ341にてそのチェック結果が判定され、必要なだけ未使用領域が残っていた場合には、ステップ342に進み、未使用領域より必要なだけ領域を割り当てて、領域確保に成功したとする。
ステップ341の判定の結果、未使用領域が充分に残っていなかった場合にはステップ343に進む。ステップ343では、チャネルアダプタは、予め定める一定回数以上繰り返したどうか、繰り返し回数を数えてチェックする。ステップ344でそのチェック結果が判定され、既に予め定める一定回数以上繰り返していれば、領域確保失敗とする。まだ一定回数以上繰り返していなければ、ステップ345に進み、チャネルアダプタは、当該フロントサイドキャッシュ上で最も古いデータの領域を決定する。
次にステップ346で、チャネルアダプタは、そのデータ領域のデータに対応する論理ボリューム番号LUNと論理ブロックアドレスを、例えば先に図5に示したようなデータ構造の変換情報を用いて、RAIDグループID、ブロックアドレスに変換する。次にステップ347において、チャネルアダプタは、RAIDグループIDより、同じく先に図8に示したようなデータ構造の制御情報を用いて、1個目のディスクアダプタ及び2個目のペアディスクアダプタを特定する。
その後ステップ348において、チャネルアダプタは、フロントサイドキャッシュ上の当該データ領域を破棄して未使用領域とする。次にステップ349において、チャネルアダプタは、当該データ領域を破棄したことをステップ347において特定したディスクアダプタ、ペアディスクアダプタに通知し、両者の当該データの送付先の登録から、当該チャネルアダプタを削除させる。そして、ステップ340に戻り、全体の処理を繰り返す。
次に、図20のステップ405及び図21のステップ422で行われるバックサイドキャッシュの領域確保を行う方法の詳細を説明する。図29は、先のキャッシュメモリ制御処理手法1の図23に替わる、本発明のストレージシステムに係るキャッシュメモリ制御処理手法3のバックサイドキャッシュの領域確保を制御する第2の制御方法を示すフローである。なお、図29において説明するバックエンドキャッシュの領域確保を制御する方法は、1個目のバックエンドキャッシュについてのみ適用される。
図27のステップ444における2個目のバックエンドキャッシュの領域確保は、単純に未使用領域から必要なだけ割り当てることで行われる。なお、1個目のバックエンドキャッシュと2個目のバックエンドキャッシュは、それぞれのバックエンドキャッシュへの負荷を平均化するため、管理単位(RAIDグループID)の異なるデータに関しては役割を交代することも考えられる。このときは、図29に説明するバックエンドキャッシュの領域確保を制御する方法は、当該バックエンドキャッシュが1個目のバックエンドキャッシュとして動作したデータ領域についてのみ適用される。
図29において、ディスクアダプタは、まずステップ460にて当該バックサイドキャッシュ上の未使用領域が必要なだけ残っているかチェックする。ステップ461にてそのチェック結果が判定され、必要なだけ未使用領域が残っていた場合には、ステップ462に進み、未使用領域より必要なだけ領域を割り当てて、領域確保に成功したとする。ステップ461の判定の結果、未使用領域が充分に残っていなかった場合にはステップ463に進む。
ステップ463では、ディスクアダプタは、予め定める一定回数以上繰り返したどうか、繰り返し回数を数えてチェックする。ステップ464でそのチェック結果が判定され、既に予め定める一定回数以上繰り返していれば、領域確保失敗とする。まだ一定回数以上繰り返していなければ、ステップ465に進み、ディスクアダプタは、当該バックサイドキャッシュ上で最も古いデータの領域を決定する。
次に、ステップ466にて、ディスクアダプタは、そのデータ領域のデータが既にディスクドライブに書き戻されているかどうかをチェックする。これには、例えば先に図9に示したようなデータ構造を用いて、バックサイドキャッシュにデータを格納しておけばよい。ステップ466では、図9のようなデータ構造の各エントリの書き込みマークDを参照して、まだデータがディスクドライブに書き戻されていないかどうかチェックすることができる。
ステップ466のチェックの結果をステップ467において判定する。判定の結果、既にディスクドライブに書き戻されていた場合にはステップ471に進む。ステップ467における判定の結果、まだディスクドライブに書き戻されていない場合には、ステップ468に進み、ディスクアダプタは、当該データ領域のデータのRAIDグループIDに基づいて、先に図10に示したような制御情報を用いてRAIDタイプを調べ、当該データを書き戻すディスクドライブを決定する。次にステップ469にて当該データをディスクに書き戻す。
次にステップ470にて、ディスクアダプタは、当該データをディスクドライブに書き戻したことを、当該データの2個目のバックエンドキャッシュに接続するディスクアダプタとして登録されているディスクアダプタに通知し、当該書き込みデータを破棄させ、そのデータ領域を未使用領域とする。このような2個目のディスクアダプタの検索は、図12に示したようなデータ構造を用いた制御情報を検索することで行うことができる。次にステップ471にて、ディスクアダプタは、バックサイドキャッシュ上の当該データ領域を破棄し、未使用領域とする。その後、ステップ460に戻って全体の処理を繰り返す。
次に、図30は、先のキャッシュメモリ制御処理手法1の図24に示す制御方法に替わる、本発明のストレージシステムに係るキャッシュメモリ制御処理手法3のバックサイドキャッシュの書き込みデータをディスクドライブへ書き戻し制御する第2の制御方法を示すフローである。図30に示すように、データの書き戻しを制御する方法も、先のキャッシュメモリ制御処理手法1の図24に示した方法と若干異なる。2個のディスクアダプタの間も連携して制御されることによる。
図30において、まずステップ480にて、ディスクアダプタは、バックサイドキャッシュの未使用領域の残量(空き容量)が、予め定めた一定値以下かどうかチェックする。ステップ481にてその結果を判定し、もし空き容量が充分になければ、ステップ482に進む。ステップ482では、ディスクアダプタは、まだディスクドライブに書き戻していないデータの量が予め定めた一定値以上かどうかチェックする。ステップ483でそのチェックの結果を判定し、もし書き戻していないデータの量が予め定める一定値以下なら、処理を終了する。また書き戻していないデータの量が予め定める一定値以上であれば、ステップ484に進み、ディスクアダプタは、まだ書き戻していないデータの中で最も古い書き込みデータの領域を決定する。その後ステップ487に進む。
また、ステップ481の判定において、バックサイドキャッシュの空き容量が予め定める一定値以上であった場合には、ステップ485に進み、ディスクアダプタは、バックサイドキャッシュ上でまだディスクドライブに書き戻していない書き込みデータの中で、バックサイドキャッシュに書き込まれてから、予め定める一定時間以上経過したデータ領域があるかどうか検索する。その検索結果をステップ486で判定する。もし予め定める一定時間以上経過したデータ領域がなければ、処理を終了する。
ステップ486の判定の結果、予め定める一定時間以上経過したデータ領域があれば、ステップ487に進む。ステップ487では、ディスクアダプタは、ステップ484で決定された最も古い書き込みデータのデータ領域もしくはステップ486で予め定める一定時間以上経過した書き込みデータのデータ領域について、当該データのRAIDグループIDに基づき、図10に示したような制御情報を用いてRAIDタイプを調べ、当該データを書き戻すディスクドライブを決定する。
次にステップ488にて、ディスクアダプタは、当該データをディスクに書き戻す。その後、ステップ489にて、当該データの2個目のバックエンドキャッシュに接続するディスクアダプタとして登録されているディスクアダプタにディスクドライブへ書き戻したことを通知し、当該書き込みデータを破棄させ、そのデータ領域を未使用領域とする。このような2個目のディスクアダプタの検索は、先の図29のステップ470と同じく、図12に示したようなデータ構造を用いた制御情報を検索することで行うことができる。最後にステップ490に進み、ディスクアダプタは、当該バックサイドキャッシュ上の図9のようなデータ構造における当該データ領域の書き込みマークDを書き戻し済みとして、当該データが書き込み終了であることを示し、処理を終了する。
「キャッシュメモリ制御処理手法4」
本発明のストレージシステムに係る実施例1〜3に適用されるキャッシュメモリ制御処理手法において、先のキャッシュメモリ制御処理手法1では、ホスト計算機よりフロントサイドキャッシュに書き込まれたデータは、バックサイドキャッシュにも書き込まれるが、バックサイドキャッシュからディスクドライブに当該書き込みデータが書き戻されるまで、フロントサイドキャッシュの書き込みデータ領域は再利用することができない。これは複数のフロントサイドキャッシュに当該データが格納される場合も同じである。しかし、もともとこの制御は、フロントサイドキャッシュとバックサイドキャッシュで書き込みデータを2重化するための制御の方法であり、複数のフロントサイドキャッシュに当該書き込みデータが格納される場合には、本来は当該書き込みデータをバックサイドキャッシュからディスクドライブに書き戻すまで保持するのは、そのうち一つのフロントサイドキャッシュの書き込みデータだけでよい。
本発明のストレージシステムに係る実施例1〜3に適用されるキャッシュメモリ制御処理手法4においては、複数のフロンサイドキャッシュのすべてで書き込みデータを保持しなくても良いようにする。
本キャッシュメモリ制御処理手法4では、まずディスクアダプタにおいて各データ毎に送付したチャネルアダプタを記録する際に、最新の書き込みを行ったチャネルアダプタにマークを付与するようにする。図31は、このために、先のキャッシュメモリ制御処理手法1で用いる図11に示すデータ構造に替えて用いる制御情報のデータ構造を示す図である。
図31に示すデータ構造は、データ構造のそれぞれのエントリが有効なデータであることを示す有効マークVと、管理単位を識別するRAIDグループIDと、管理単位内のデータブロックを識別するブロックアドレスと、送出先チャネルアダプタの番号と、最新の書き込みを行ったチャネルアダプタを示すマークと、からなっている。このようなデータ構造を持つ制御情報を用いることにより、上述のような制御が可能となる。
本キャッシュメモリ制御処理手法4において、フロントサイドキャッシュの読み出し、書き込みを制御する方法、バックサイドキャッシュの読み出しを制御する方法は、先のキャッシュメモリ制御処理手法1の、それぞれ図18、図19、図20に説明した方法と同じである。バックサイドキャッシュの書き込みを制御する方法は、若干異なる。
図32は、本キャッシュメモリ制御処理手法4におけるバックサイドキャッシュにおける書き込みを制御する第3の制御方法を示す図である。図32は、ステップ420から、ステップ426までは、先のキャッシュメモリ制御処理手法1の図21と同じである。このため、ここではステップ426の後から説明する。
図32において、ステップ426もしくはステップ425の後は、ステップ550に進む。ステップ550では、ディスクアダプタは、図31に示したようなデータ構造によって、書き込み要求元のチャネルアダプタを、当該データの最新の書き込みデータ先として、登録する。次にステップ430では、当該データに対し、他のチャネルアダプタが送付先として登録されているかどうか検索する。これも図31に示したようなデータ構造の制御情報を検索することで行うことができる。
ステップ431では、ステップ430の検索の結果が判定され、他のチャネルアダプタの登録がなければ、ステップ434に進む。もし他のチャネルアダプタの登録があれば、ステップ432に進み、ディスクアダプタは、新たにステップ426もしくは425でバックサイドキャッシュ上に書き込まれた書き込みデータをそのチャネルアダプタに送付し、そのチャネルアダプタに接続されているフロントサイドキャッシュ上の旧データを更新させる。
次にステップ551において、登録されている他のチャネルアダプタに接続されたフロントサイドキャッシュに関し、図7のようなデータ構造に含まる書き込みマークDを書き込み済みに変更させ、任意の時点で当該データ領域の再利用ができるようにする。次にステップ433において、ディスクアダプタは、登録されたすべてのチャネルアダプタについて、新たに書き込まれた書き込みデータを送付したどうかを判定する。もしまだ送付していないチャネルアダプタがあれば、ステップ432に戻って繰り返す。当該データの送付先として登録されたすべてのチャネルアダプタに新たに書き込まれたデータの送付が終わればステップ434に進む。ステップ434では、ディスクアダプタは、書き込み完了を書き込み要求元のチャネルアダプタに報告し、終了する。
以上のようにして、本キャッシュメモリ制御処理手法4においても、最新の書き込みデータ先として登録されたチャネルアダプタ以外のチャネルアダプタに関して、フロントサイドキャッシュ上の当該データを書き込み完了に見せることにより、フロントサイドキャッシュの領域確保を制御する方法も先のキャッシュメモリ制御処理手法1の図22と同じとすることができる。また、バックサイドキャッシュの領域確保を制御する方法は、先のキャッシュメモリ制御処理手法1の図23と一部異なる。
図33は、本キャッシュメモリ制御処理手法4におけるバックサイドキャッシュの領域確保を制御する第3の制御方法を説明する図である。図33において、ステップ501からステップ510までは、図23に説明した制御の方法と同じである。ここでは、ステップ510以降について説明する。ステップ510では、図23に説明した制御の方法と同じく、ディスクアダプタは、ステップ506で決定した最も古いデータ領域について、まだディスクドライブに書き戻していない書き込みデータをディスクドライブに書き戻す。
次にステップ540にて、ディスクアダプタは、当該データをディスクドライブに書き戻したことを、当該データの最新の書き込みデータ先として登録されているチャネルアダプタに通知し、当該チャネルアダプタにおいて、図7のようなデータ構造に含まる書き込みマークDを書き込み済みに変更させる。このとき、図23に説明した制御の方法とは異なり、他のチャネルアダプタには何の通知も行わない。次にステップ513に進み、ディスクアダプタは、バックサイドキャッシュ上の当該データ領域を破棄し、未使用領域とする。その後、ステップ501に戻って全体の処理を繰り返す。
本キャッシュメモリ制御処理手法4におけるバックサイドキャッシュからディスクドライブへのデータの書き戻しを制御する方法についても、先のキャッシュメモリ制御処理手法1において図24で説明した方法とは一部異なる。
図34は、本キャッシュメモリ制御処理手法4におけるバックサイドキャッシュの書き戻しの制御の方法を説明する図である。図34において、ステップ520からステップ528までは、図24に説明した制御の方法と同じである。ここでは、ステップ528以降について説明する。ステップ528では、図24と同じく、書き込みデータのディスクドライブへの書き戻しを行う。
次にステップ541にて、ディスクアダプタは、当該データをディスクドライブに書き戻したことを、当該データの最新の書き込みデータ先として登録されているチャネルアダプタに通知し、当該チャネルアダプタにおいて、図7のようなデータ構造に含まる書き込みマークDを書き込み済みに変更させる。このとき、図24に説明した制御の方法とは異なり、他のチャネルアダプタには何の通知も行わない。次にステップ531に進み、バックサイドキャッシュ上の図9のようなデータ構造における当該データ領域の書き込みマークDを書き戻し済みとして、当該データが書き込み終了であることを示し、処理を終了する。
図35は、本発明のストレージシステムに係る実施例4の全体構成を示すブロック図である。図35に示す実施例4のストレージシステム1は、先の実施例1、2、3とは異なり、チャネルアダプタやFEアダプタ、ディスクアダプタやBEアダプタとして開示しておらず、ホスト計算機側との間で2つの系統で接続された具体的構成、並びにそれらの関連構成を示す実施例である。
図35において、ストレージシステム1は、ホスト計算機と接続するホストI/F回路601a及び601b、ホスト計算機と送受するデータや制御コマンドを一時的にバッファするコマンド・データ・バッファ602a及び602b、第1の種類のキャッシュメモリであるフロントサイドキャッシュ11a及び11b、フロントサイドキャッシュ11a及び11bにそれぞれ接続して制御を行うフロントエンド制御部603a及び603b、プロセッサ605a及び605b、ローカルメモリ606a及び606b、第2の種類のキャッシュメモリであるバックサイドキャッシュ14a及び14b、ディスクドライブ群15a及び15b、ディスクドライブ群15a及び15bに接続するディスクドライブI/F回路607a及び607b、プロセッサ605a及び605bとローカルメモリ606a及び606bとバックサイドキャッシュ14a及び14bとディスクドライブI/F回路607a及び607bをそれぞれ接続するローカル接続部608a及び608b、二つのフロントエンド制御部603a及び603bと二つのローカル接続部608a及び608bを接続する相互接続部604、から構成される。ホストI/F回路、コマンド・データ・バッファ、フロントエンド制御部の三つをまとめてチャネルアダプタ相当となり、プロセッサ、ローカルメモリ、ローカル接続部、ディスクドライブI/F回路の四つをまとめてディスクアダプタ相当となる。
図35において、フロントエンド制御部603a及び603bは、それぞれコマンド・データ・バッファ602a及び602bに一時的に格納されるホスト計算機からの制御コマンドの一次解析を行い、ホスト計算機から受信したコマンドがデータの読み出し要求であるか、書き込み要求であるか判定する。またその判定結果を基にフロントサイドキャッシュ11a及び11bの制御を行うが、これについては、ホスト計算機からの要求がデータの読み出しであり、かつデータがフロントサイドキャッシュ11a及び11b内に存在するかどうか判定し、存在した場合にホスト計算機へデータを返送する動作に限り制御を行うことが考えられる。
バックサイドキャッシュ14a〜14dへのデータの読み出し・書き込みが必要となるデータがフロントサイドキャッシュ11a〜11dになかった場合、およびホスト計算機からの要求が書き込み要求であった場合には、フロントエンド制御部603a及び603bは、それぞれプロセッサ605a及び605bへ通知を行い、以降の制御はプロセッサ605a及び605bにより行われる。ローカルメモリ606a及び606bにはそれぞれプロセッサ605a及び605bで動作する制御プログラムを格納するほか、図5、図6、図8、図10、図11および図12に示したようなデータ構造を格納しても良い。
以上のような構成とすることにより、ストレージシステム1全体の規模は小さくなるが、先の実施例1、2及び3に比べて構成要素も少なく、2個のネットワークスイッチが図35では接続数が大幅に小さい相互接続部604一つに置き換わる構成であるので、システム規模の縮小を上回る大きなコスト低減が可能である。
図35に示したストレージシステムの実施例の動作は、図1、図13、図14にそれぞれ示した実施例1、実施例2、実施例3のそれぞれとほぼ同様である。図5、図6、図8、図10、図11および図12に掲げたような制御用のデータ構造については、チャネルアダプタ番号をフロントエンド制御部603a及び603bの番号(0又は1の2種)に、ディスクアダプタ番号をプロセッサ605a及び605bの番号(同じく0と1の2種)と読み替えて、そのまま用いることが可能である。
また、本発明のストレージシステムに係る実施例1〜3に適用されるキャッシュメモリの制御処理手法1、2、3、4は、本実施例4にも基本的に採用可能である。
本発明のストレージシステムに係る実施例1の全体構成を示すブロック図である。 本実施例1におけるチャネルアダプタがプロセッサを備えた構成である例を示した図である。 本実施例1におけるディスクアダプタがプロセッサを備えた構成である例を示した図である。 本実施例1におけるフロントサイドキャッシュ内に格納されるブロックデータのデータ構造の第1の例を示す図である。 チャネルアダプタにおける論理ボリューム番号、論理ブロックアドレスをディスクアダプタにおけるRAIDグループID、ブロックアドレスに変換する変換情報のデータ構造を示す図である。 RAIDグループIDよりディスクアダプタを特定するための制御情報のデータ構造を示す図である。 フロントサイドキャッシュ内に格納されるブロックデータのデータ構造の第2の例を示す図である。 RAIDグループIDよりディスクアダプタ、ペアディスクアダプタを特定するための制御情報のデータ構造を示す図である。 バックサイドキャッシュ内に格納されるブロックデータのデータ構造を示す図である。 RAIDグループIDからディスクドライブを特定するための制御情報のデータ構造を示す図である。 データを送付したチャネルアダプタを記録する制御情報の第1のデータ構造を示す図である。 データを送付したチャネルアダプタおよびペアとなるディスクアダプタを記録する制御情報のデータ構造を示す図である。 本発明のストレージシステムに係る実施例2の全体構成を示すブロック図である。 本発明のストレージシステムに係る実施例3の全体構成を示すブロック図である。 本実施例3におけるFEアダプタの構成例を示す図である。 本実施例3におけるBEアダプタの構成例を示す図である。 本実施例3における統合制御部の構成例を示す図である。 本発明のストレージシステムに係る実施例1〜3に適用されるキャッシュメモリ制御処理手法1のうち、第1の種類のキャッシュメモリであるフロントサイドキャッシュの読み出しを制御する制御方法を示すフローチャートである。 本発明のストレージシステムに係る実施例1〜3に適用されるキャッシュメモリ制御処理手法1のうち、フロントサイドキャッシュの書き込みを制御する第1の制御方法を示すフローチャートである。 本発明のストレージシステムに係る実施例1〜3に適用されるキャッシュメモリ制御処理手法1のうち、バックサイドキャッシュの読み出しを制御する制御方法を示すフローチャートである。 本発明のストレージシステムに係る実施例1〜3に適用されるキャッシュメモリ制御処理手法1のうち、バックサイドキャッシュの書き込みを制御する第1の制御方法を示すフローチャートである。 本キャッシュメモリ制御処理手法1におけるフロントサイドキャッシュの領域確保を制御する第1の制御方法を示すフローチャートである。 本キャッシュメモリ制御処理手法1におけるバックサイドキャッシュの領域確保を制御する第1の制御方法を示すフローチャートである。 本キャッシュメモリ制御処理手法1におけるバックサイドキャッシュの書き込みデータをディスクドライブへ書き戻し(書き込み)制御する第1の制御方法を示すフローチャートである。 本発明のストレージシステムに係る実施例1〜3に適用されるキャッシュメモリ制御処理手法2のうち、バックサイドキャッシュの書き込みを制御する第2の制御方法を示すフローチャートである。 本発明のストレージシステムに係る実施例1〜3に適用されるキャッシュメモリ制御処理手法3のうち、フロントサイドキャッシュの書き込みを制御する第2の制御方法を示すフローチャートである。 本キャッシュメモリ制御処理手法3における2個目のバックサイドキャッシュの書き込みを制御する制御方法を示すフローチャートである。 本キャッシュメモリ制御処理手法3におけるフロントサイドキャッシュの領域確保を制御する第2の制御方法を示すフローチャートである。 本キャッシュメモリ制御処理手法3におけるバックサイドキャッシュの領域確保を制御する第2の制御方法を示すフローチャートである。 本キャッシュメモリ制御処理手法3におけるバックサイドキャッシュの書き込みデータをディスクドライブへ書き戻し制御する第2の制御方法を示すフローチャートである。 本発明のストレージシステムに係る実施例1〜3に適用されるキャッシュメモリ制御処理手法4におけるデータを送付したチャネルアダプタを記録する制御情報の第2のデータ構造を示す図である。 本キャッシュメモリ制御処理手法4におけるバックサイドキャッシュの書き込みを制御する第3の制御方法を示すフローチャートである。 本キャッシュメモリ制御処理手法4におけるバックサイドキャッシュの領域確保を制御する第3の制御方法を示すフローチャートである。 本キャッシュメモリ制御処理手法4におけるバックサイドキャッシュの書き込みデータをディスクドライブへ書き戻し(書き込み)制御する第3の制御方法を示すフローチャートである。 本発明のストレージシステムに係る実施例4の全体構成を示すブロック図である。
符号の説明
1 ストレージシステム
10a,10b,10c,10d チャネルアダプタ
11a,11b,11c,11d フロントサイドキャッシュ
12a,12b,21a,21b,22a,22b,24a,24b ネットワークスイッチ
13a,13b,13c,13d ディスクアダプタ
14a,14b,14c,14d バックサイドキャッシュ
15a,15b,15c,15d ディスクドライブ群
20a,20b,20c,20d FEアダプタ
23a,23b,23c,23d BEアダプタ
201,211,241,605a,605b プロセッサ
202,212,242,606a,606b ローカルメモリ
203a,203b,213a,213b,221a,221b,230a,230b,244a,244b ネットワーク接続回路
204,220,601a,601b ホストI/F回路
205,215,243 プロセッサバス
214,231,607a,607b ディスクドライブI/F回路
222,232,602a,602b コマンド・データ・バッファ
223 コマンド一次解析部
224 ローカルスイッチ部
233 コマンド/ステータス制御部
603a,603b フロントエンド制御部
604 相互接続部
608 ローカル接続部

Claims (20)

  1. 上位装置と接続する複数のチャネルアダプタと、
    前記チャネルアダプタごとに接続して前記上位装置が読み書きするデータを一時的に蓄える第1のキャッシュメモリと、
    複数のディスクドライブと、
    前記ディスクドライブに接続する1または複数のディスクアダプタと、
    前記ディスクアダプタごとに接続して前記ディスクドライブに読み書きされるデータを一時的に蓄える第2のキャッシュメモリと、
    前記チャネルアダプタと前記ディスクアダプタの間を接続する1または複数のネットワークと、を備える
    ことを特徴とするストレージシステム。
  2. 上位装置と接続する複数のチャネルアダプタと、
    前記チャネルアダプタごとに接続して前記上位装置が読み書きするデータを一時的に蓄える第1のキャッシュメモリと、
    複数のディスクドライブと、
    前記ディスクドライブに接続する1または複数のディスクアダプタと、
    前記ディスクドライブに読み書きされるデータを一時的に蓄える1または複数の第2のキャッシュメモリと、
    前記チャネルアダプタと前記ディスクアダプタと前記第2のキャッシュメモリの間を互いに接続する1または複数のネットワークと、を備える
    ことを特徴とするストレージシステム。
  3. 上位装置と接続する複数のチャネルアダプタと、
    前記チャネルアダプタごとに接続して前記上位装置が読み書きするデータを一時的に蓄える第1のキャッシュメモリと、
    複数のディスクドライブと、
    前記ディスクドライブに接続する1または複数のディスクアダプタと、
    前記ディスクドライブに読み書きされるデータを一時的に蓄える1または複数の第2のキャッシュメモリと、
    前記チャネルアダプタおよび前記ディスクアダプタの制御を行う1または複数の統合制御部と、
    前記統合制御部が、前記チャネルアダプタ、前記ディスクアダプタ、前記第2のキャッシュメモリを制御できるように互いを接続する1または複数のネットワークと、を備える
    ことを特徴とするストレージシステム。
  4. 請求項1又は2において、
    前記前記チャネルアダプタと前記ディスクアダプタは、前記読み書きの制御を行うプロセッサをそれぞれ有することを特徴とするストレージシステム。
  5. 請求項3において、
    前記統合制御部は、前記読み書きの制御を行うプロセッサを有することを特徴とするストレージシステム。
  6. 請求項1又は2又は3において、
    前記上位装置から書き込みされるデータは、前記第1のキャッシュメモリと前記第2のキャッシュメモリとに2重化して書き込まれる
    ことを特徴とするストレージシステム。
  7. 請求項1又は2又は3において、
    前記上位装置から書き込みされるデータは、前記第2のキャッシュメモリの内の2個のキャッシュメモリに2重化して書き込まれる
    ことを特徴とするストレージシステム。
  8. 請求項7において、
    前記上位装置から書き込みされるデータは、前記第2のキャッシュメモリの内の2個のキャッシュメモリに書き込まれるとともに、前記第1のキャッシュメモリにも書き込まれる
    ことを特徴とするストレージシステム。
  9. 請求項6において、
    前記チャネルアダプタは、前記上位装置から読み書きされるデータがどのディスクアダプタに接続されたディスクドライブのデータであるかを決定するディスクアダプタ決定部を有する
    ことを特徴とするストレージシステム。
  10. 上位装置と接続する複数のチャネルアダプタと、
    前記チャネルアダプタごとに接続して前記上位装置が読み書きするデータを一時的に蓄える第1のキャッシュメモリと、
    複数のディスクドライブと、
    前記ディスクドライブに接続する1または複数のディスクアダプタと、
    前記ディスクアダプタごとに接続して前記ディスクドライブに読み書きされるデータを一時的に蓄える第2のキャッシュメモリと、
    前記チャネルアダプタと前記ディスクアダプタの間を接続する1または複数のネットワークと、を備えるストレージシステムであって、
    前記チャネルアダプタは、前記上位装置から書き込みされるデータがどのディスクアダプタに接続されたディスクドライブのデータであるかを決定するディスクアダプタ決定部を有し、
    前記チャネルアダプタのディスクアダプタ決定部は、前記上位装置から書き込みされるデータが前記第2のキャッシュメモリの内の2個のキャッシュメモリに2重化して書き込まれるように、ディスクドライブに接続する主となるディスクアダプタを決定する主ディスクアダプタ決定部と、第2個目の前記第2のキャッシュメモリに接続する副ディスクアダプタ決定部と、を有する
    ことを特徴とするストレージシステム。
  11. 上位装置と接続する複数のチャネルアダプタと、
    前記チャネルアダプタごとに接続して前記上位装置が読み書きするデータを一時的に蓄える第1のキャッシュメモリと、
    複数のディスクドライブと、
    前記ディスクドライブに接続する1または複数のディスクアダプタと、
    前記ディスクドライブに読み書きされるデータを一時的に蓄える1または複数の第2のキャッシュメモリと、
    前記チャネルアダプタと前記ディスクアダプタと前記第2のキャッシュメモリの間を互いに接続する1または複数のネットワークと、を備えるストレージシステムであって、
    前記チャネルアダプタは、前記上位装置から書き込みされるデータがどのディスクアダプタに接続されたディスクドライブのデータであるかを決定するディスクアダプタ決定部を有し、
    前記チャネルアダプタのディスクアダプタ決定部は、前記上位装置から書き込みされるデータが前記第2のキャッシュメモリの内の2個のキャッシュメモリに2重化して書き込まれるように、ディスクドライブに接続する主となるディスクアダプタを決定する主ディスクアダプタ決定部と、第2個目の前記第2のキャッシュメモリに接続する副ディスクアダプタ決定部と、を有する
    ことを特徴とするストレージシステム。
  12. 上位装置と接続する複数のチャネルアダプタと、
    前記チャネルアダプタごとに接続して前記上位装置が読み書きするデータを一時的に蓄える第1のキャッシュメモリと、
    複数のディスクドライブと、
    前記ディスクドライブに接続する1または複数のディスクアダプタと、
    前記ディスクドライブに読み書きされるデータを一時的に蓄える1または複数の第2のキャッシュメモリと、
    前記チャネルアダプタおよび前記ディスクアダプタの制御を行う1または複数の統合制御部と、
    前記統合制御部が、前記チャネルアダプタ、前記ディスクアダプタ、前記第2のキャッシュメモリを制御できるように互いを接続する1または複数のネットワークと、を備えるストレージシステムであって、
    前記統合制御部は、前記上位装置から書き込みされるデータがどのディスクアダプタに接続されたディスクドライブのデータであるかを決定するディスクアダプタ決定部を有し、
    前記統合制御部のディスクアダプタ決定部は、前記上位装置から書き込みされるデータが前記第2のキャッシュメモリの内の2個のキャッシュメモリに2重化して書き込まれるように、ディスクドライブに接続する主となるディスクアダプタを決定する主ディスクアダプタ決定部と、第2個目の前記第2のキャッシュメモリに接続する副ディスクアダプタ決定部と、を有する
    ことを特徴とするストレージシステム。
  13. 請求項9において、
    前記ディスクアダプタは、前記ディスクドライブとの間で読み書きするデータをどのチャネルアダプタに送付したかを記録する送付先チャネルアダプタ記録部を有する
    ことを特徴とするストレージシステム。
  14. 請求項13において、
    前記ディスクアダプタは、前記上位装置から書き込みされたデータが前記第2のキャッシュメモリより前記ディスクドライブに書き込まれたことを、前記送付先チャネルアダプタ記録部により記録された前記チャネルアダプタに通知する書き込み完了通知部を備え、
    前記チャネルアダプタは、前記書き込み完了通知部により前記ディスクドライブへ書き込まれたことが通知されるまで、前記上位装置から書き込まれたデータを前記第1のキャッシュメモリに保持する
    ことを特徴とするストレージシステム。
  15. 請求項10又は11において、
    前記主となるディスクアダプタは、前記ディスクドライブとの間で読み書きするデータをどのチャネルアダプタに送付したかを記録する送付先チャネルアダプタ記録部を有する
    ことを特徴とするストレージシステム。
  16. 上位装置から読み書きされるデータを一時的に蓄える1または複数の第1のキャッシュメモリと、1または複数のディスクドライブと、前記ディスクドライブに読み書きされるデータを一時的に蓄える1または複数の第2のキャッシュメモリと、を備えるストレージシステムのキャッシュメモリを制御するキャッシュメモリ制御方法であって、
    前記上位装置からの書き込みデータを前記第1のキャッシュメモリに書き込むとともに前記第2のキャッシュメモリに書き込み、
    前記書き込まれた第1のキャッシュメモリ以外の他の第1のキャッシュメモリに前記書き込みデータ以前の旧データがあれば、前記第2のキャッシュメモリに書き込まれたデータを前記他の第1のキャッシュメモリに送付して更新し、
    前記第2のキャッシュメモリから前記ディスクドライブに前記書き込みデータを書き込むまで前記第1のキャッシュメモリに書き込まれた前記書き込みデータを保持する
    ことを特徴とするキャッシュメモリ制御方法。
  17. 請求項16において、
    前記第2のキャッシュメモリから前記ディスクドライブに新たに書き込まれたデータを書き戻すまで、前記第1のキャッシュメモリに書き込まれた前記書き込みデータの最新の一つのみを保持し、
    前記他の第1のキャッシュメモリの前記書き込みデータは任意に破棄する
    ことを特徴とするキャッシュメモリ制御方法。
  18. 上位装置から読み書きされるデータを一時的に蓄える1または複数の第1のキャッシュメモリと、1または複数のディスクドライブと、前記ディスクドライブに読み書きされるデータを一時的に蓄える1または複数の第2のキャッシュメモリと、を備えるストレージシステムのキャッシュメモリを制御するキャッシュメモリ制御方法であって、
    前記上位装置からの書き込みデータを前記第1のキャッシュメモリに書き込むとともに前記第2のキャッシュメモリに書き込み、
    前記書き込まれた第1のキャッシュメモリ以外の他の第1のキャッシュメモリに前記書き込みデータ以前の旧データがあれば、前記旧データを削除して無効化し、
    前記第2のキャッシュメモリから前記ディスクドライブに前記書き込みデータを書き込むまで前記第1のキャッシュメモリに書き込まれた前記書き込みデータを保持する
    ことを特徴とするキャッシュメモリ制御方法。
  19. 上位装置から読み書きされるデータを一時的に蓄える1または複数の第1のキャッシュメモリと、1または複数のディスクドライブと、前記ディスクドライブに読み書きされるデータを一時的に蓄える1または複数の第2のキャッシュメモリと、を備えるストレージシステムのキャッシュメモリを制御するキャッシュメモリ制御方法であって、
    前記上位装置からの書き込みデータを、前記第1のキャッシュメモリに書き込むとともに、前記第2のキャッシュメモリのうちの2個の第2のキャッシュメモリに書き込み、
    前記書き込まれた第1のキャッシュメモリ以外の他の第1のキャッシュメモリに前記書き込みデータ以前の旧データがあれば、前記第2のキャッシュメモリに書き込まれたデータを前記他の第1のキャッシュメモリに送付して更新する
    ことを特徴とするキャッシュメモリ制御方法。
  20. 上位装置から読み書きされるデータを一時的に蓄える1または複数の第1のキャッシュメモリと、1または複数のディスクドライブと、前記ディスクドライブに読み書きされるデータを一時的に蓄える1または複数の第2のキャッシュメモリと、を備えるストレージシステムのキャッシュメモリを制御するキャッシュメモリ制御方法であって、
    前記上位装置からの書き込みデータを、前記第1のキャッシュメモリに書き込むとともに、前記第2のキャッシュメモリのうちの2個の第2のキャッシュメモリに書き込み、
    前記書き込まれた第1のキャッシュメモリ以外の他の第1のキャッシュメモリに前記書き込みデータ以前の旧データがあれば、前記旧データを破棄して無効化する
    ことを特徴とするキャッシュメモリ制御方法。
JP2004071126A 2004-03-12 2004-03-12 ストレージシステム Expired - Fee Related JP4477906B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2004071126A JP4477906B2 (ja) 2004-03-12 2004-03-12 ストレージシステム
US10/852,358 US7249221B2 (en) 2004-03-12 2004-05-25 Storage system having network channels connecting shared cache memories to disk drives
US11/812,111 US20070245091A1 (en) 2004-03-12 2007-06-15 Storage systems and methods of controlling cache memory of storage systems
US11/812,112 US7814270B2 (en) 2004-03-12 2007-06-15 Storage systems and methods of controlling cache memory of storage systems
US11/812,110 US20070245089A1 (en) 2004-03-12 2007-06-15 Storage systems and methods of controlling cache memory of storage systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004071126A JP4477906B2 (ja) 2004-03-12 2004-03-12 ストレージシステム

Publications (2)

Publication Number Publication Date
JP2005258918A true JP2005258918A (ja) 2005-09-22
JP4477906B2 JP4477906B2 (ja) 2010-06-09

Family

ID=34918563

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004071126A Expired - Fee Related JP4477906B2 (ja) 2004-03-12 2004-03-12 ストレージシステム

Country Status (2)

Country Link
US (4) US7249221B2 (ja)
JP (1) JP4477906B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008217527A (ja) * 2007-03-06 2008-09-18 Hitachi Ltd ストレージシステム及びデータ管理方法
US7493443B2 (en) 2006-09-08 2009-02-17 Hitachi, Ltd. Storage system utilizing improved management of control information
JP2009515278A (ja) * 2005-11-04 2009-04-09 トムソン ライセンシング メディア記憶デバイスを管理する方法および装置
US7694081B2 (en) 2006-04-27 2010-04-06 Hitachi, Ltd. Storage system and method for controlling storage system
JP2012252638A (ja) * 2011-06-06 2012-12-20 Nec Corp ディスクアレイ装置及びその制御方法
JP2014186599A (ja) * 2013-03-25 2014-10-02 Nec Corp ストレージ装置

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7660945B1 (en) * 2004-03-09 2010-02-09 Seagate Technology, Llc Methods and structure for limiting storage device write caching
JP4328682B2 (ja) * 2004-07-13 2009-09-09 富士通株式会社 光記録媒体用の無線タグアンテナ構造および無線タグアンテナ付き光記録媒体の収納ケース
JP4956922B2 (ja) 2004-10-27 2012-06-20 ソニー株式会社 記憶装置
US7590885B2 (en) * 2005-04-26 2009-09-15 Hewlett-Packard Development Company, L.P. Method and system of copying memory from a source processor to a target processor by duplicating memory writes
JP4813843B2 (ja) * 2005-08-04 2011-11-09 株式会社日立製作所 ストレージ装置、ディスクキャッシュ制御方法及びディスクキャッシュの容量割当方法
JP2007206949A (ja) * 2006-02-01 2007-08-16 Nec Corp ディスクアレイ装置、ディスクアレイ装置の制御方法、ディスクアレイ装置の制御プログラム
US8478835B2 (en) * 2008-07-17 2013-07-02 Netapp. Inc. Method and system for using shared memory with optimized data flow to improve input/output throughout and latency
US8996805B2 (en) 2011-10-26 2015-03-31 Hewlett-Packard Development Company, L.P. Shared cache module and method thereof
US8627012B1 (en) 2011-12-30 2014-01-07 Emc Corporation System and method for improving cache performance
US9235524B1 (en) 2011-12-30 2016-01-12 Emc Corporation System and method for improving cache performance
US9053033B1 (en) 2011-12-30 2015-06-09 Emc Corporation System and method for cache content sharing
US8930947B1 (en) 2011-12-30 2015-01-06 Emc Corporation System and method for live migration of a virtual machine with dedicated cache
US9158578B1 (en) 2011-12-30 2015-10-13 Emc Corporation System and method for migrating virtual machines
US9009416B1 (en) 2011-12-30 2015-04-14 Emc Corporation System and method for managing cache system content directories
US9104529B1 (en) * 2011-12-30 2015-08-11 Emc Corporation System and method for copying a cache system
US9507524B1 (en) * 2012-06-15 2016-11-29 Qlogic, Corporation In-band management using an intelligent adapter and methods thereof
US8886890B2 (en) 2012-06-27 2014-11-11 Sap Portals Israel Ltd Adaptive configuration of cache
US9594685B2 (en) 2012-07-06 2017-03-14 Seagate Technology Llc Criteria for selection of data for a secondary cache
US9390020B2 (en) 2012-07-06 2016-07-12 Seagate Technology Llc Hybrid memory with associative cache
US9772948B2 (en) 2012-07-06 2017-09-26 Seagate Technology Llc Determining a criterion for movement of data from a primary cache to a secondary cache
US9477591B2 (en) 2012-07-06 2016-10-25 Seagate Technology Llc Memory access requests in hybrid memory system
US9529724B2 (en) 2012-07-06 2016-12-27 Seagate Technology Llc Layered architecture for hybrid controller
US9122589B1 (en) 2013-06-28 2015-09-01 Emc Corporation Data storage system with unified system cache
US9367247B2 (en) 2013-08-20 2016-06-14 Seagate Technology Llc Memory access requests in hybrid memory system
US9785564B2 (en) 2013-08-20 2017-10-10 Seagate Technology Llc Hybrid memory with associative cache
US9507719B2 (en) * 2013-08-20 2016-11-29 Seagate Technology Llc Garbage collection in hybrid memory system
US9454305B1 (en) 2014-01-27 2016-09-27 Qlogic, Corporation Method and system for managing storage reservation
KR20150090491A (ko) * 2014-01-29 2015-08-06 삼성전자주식회사 전자 장치 및 전자 장치에서 데이터를 액세스하는 방법
US9423980B1 (en) 2014-06-12 2016-08-23 Qlogic, Corporation Methods and systems for automatically adding intelligent storage adapters to a cluster
US9436654B1 (en) 2014-06-23 2016-09-06 Qlogic, Corporation Methods and systems for processing task management functions in a cluster having an intelligent storage adapter
US9477424B1 (en) 2014-07-23 2016-10-25 Qlogic, Corporation Methods and systems for using an intelligent storage adapter for replication in a clustered environment
US9460017B1 (en) 2014-09-26 2016-10-04 Qlogic, Corporation Methods and systems for efficient cache mirroring
US9483207B1 (en) 2015-01-09 2016-11-01 Qlogic, Corporation Methods and systems for efficient caching using an intelligent storage adapter
US10282302B2 (en) 2016-06-30 2019-05-07 Hewlett Packard Enterprise Development Lp Programmable memory-side cache management for different applications
KR102617801B1 (ko) * 2018-10-24 2023-12-27 에스케이하이닉스 주식회사 메모리 장치 및 그의 리드 동작 방법

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01171045A (ja) 1987-12-26 1989-07-06 Fujitsu Ltd 外部記憶装置制御方式
JPH07200187A (ja) 1993-12-30 1995-08-04 Hitachi Ltd ディスクアレイ装置
JP3239669B2 (ja) 1995-02-20 2001-12-17 株式会社日立製作所 記憶制御装置及びその制御方法
JPH0934652A (ja) 1995-07-21 1997-02-07 Hitachi Ltd 記憶装置システム
JPH1063576A (ja) 1996-08-27 1998-03-06 Hitachi Ltd 階層ディスク装置およびその制御方法
JP3204143B2 (ja) 1997-01-06 2001-09-04 日本電気株式会社 ディスクキャッシュの制御方法
JPH11203201A (ja) 1998-01-08 1999-07-30 Hitachi Ltd キャッシュメモリの配置方法およびデータ記憶システム
JP4412685B2 (ja) * 1998-09-28 2010-02-10 株式会社日立製作所 記憶制御装置及びこれを用いたデータ格納システムの取り扱い方法
JP2000242434A (ja) 1998-12-22 2000-09-08 Hitachi Ltd 記憶装置システム
US6542961B1 (en) 1998-12-22 2003-04-01 Hitachi, Ltd. Disk storage system including a switch
JP4053208B2 (ja) 2000-04-27 2008-02-27 株式会社日立製作所 ディスクアレイ制御装置
JP2002123479A (ja) * 2000-10-17 2002-04-26 Hitachi Ltd ディスク制御装置およびそのキャッシュ制御方法
US6792507B2 (en) * 2000-12-14 2004-09-14 Maxxan Systems, Inc. Caching system and method for a network storage system
JP4104324B2 (ja) 2001-12-05 2008-06-18 株式会社日立製作所 ディスク制御装置のキャッシュメモリ配置構成
US6901477B2 (en) * 2002-04-01 2005-05-31 Emc Corporation Provision of a victim cache within a storage cache hierarchy
JP2003296034A (ja) * 2002-04-08 2003-10-17 Hitachi Ltd ディスクサブシステムとその制御方法
US7293196B2 (en) * 2002-05-08 2007-11-06 Xiotech Corporation Method, apparatus, and system for preserving cache data of redundant storage controllers
JP2003345520A (ja) * 2002-05-24 2003-12-05 Hitachi Ltd ディスクアレイ・システム及びディスクアレイ・システムにおけるキャッシュ制御方法
US7136980B2 (en) * 2002-06-28 2006-11-14 Sun Microsystems, Inc. Computer system implementing synchronized broadcast using skew control and queuing
JP4219633B2 (ja) * 2002-07-25 2009-02-04 株式会社日立製作所 記憶装置システムのデステージ方法、ディスク制御装置、記憶装置システム、及びプログラム
JP2004110503A (ja) * 2002-09-19 2004-04-08 Hitachi Ltd 記憶制御装置、記憶システム、記憶制御装置の制御方法、チャネル制御部、及びプログラム
JP2004227098A (ja) * 2003-01-20 2004-08-12 Hitachi Ltd 記憶デバイス制御装置の制御方法、及び記憶デバイス制御装置
JP4413518B2 (ja) * 2003-04-16 2010-02-10 株式会社日立製作所 記憶デバイス制御装置、及び記憶デバイス制御装置の制御方法
US7124243B2 (en) * 2003-05-16 2006-10-17 Pillar Data Systems, Inc. Methods and systems of cache memory management and snapshot operations
JP4220887B2 (ja) * 2003-11-17 2009-02-04 株式会社日立製作所 ディスク装置及びその制御方法
JP4412981B2 (ja) * 2003-11-26 2010-02-10 株式会社日立製作所 ストレージシステム及同システムにおけるデータキャッシング方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009515278A (ja) * 2005-11-04 2009-04-09 トムソン ライセンシング メディア記憶デバイスを管理する方法および装置
US7694081B2 (en) 2006-04-27 2010-04-06 Hitachi, Ltd. Storage system and method for controlling storage system
US7493443B2 (en) 2006-09-08 2009-02-17 Hitachi, Ltd. Storage system utilizing improved management of control information
JP2008217527A (ja) * 2007-03-06 2008-09-18 Hitachi Ltd ストレージシステム及びデータ管理方法
US8200897B2 (en) 2007-03-06 2012-06-12 Hitachi, Ltd. Storage system and data management method
JP2012252638A (ja) * 2011-06-06 2012-12-20 Nec Corp ディスクアレイ装置及びその制御方法
JP2014186599A (ja) * 2013-03-25 2014-10-02 Nec Corp ストレージ装置

Also Published As

Publication number Publication date
US7249221B2 (en) 2007-07-24
US7814270B2 (en) 2010-10-12
US20070245089A1 (en) 2007-10-18
US20070245091A1 (en) 2007-10-18
US20070250665A1 (en) 2007-10-25
US20050204096A1 (en) 2005-09-15
JP4477906B2 (ja) 2010-06-09

Similar Documents

Publication Publication Date Title
JP4477906B2 (ja) ストレージシステム
US9495105B2 (en) System managing a plurality of flash memory devices
US5155835A (en) Multilevel, hierarchical, dynamically mapped data storage subsystem
US6098129A (en) Communications system/method from host having variable-length format to variable-length format first I/O subsystem or fixed-length format second I/O subsystem using table for subsystem determination
US7269667B2 (en) Disk array system and method for migrating from one storage system to another
US7971011B2 (en) Remote copy method and storage system
AU661680B2 (en) Disk drive array memory system using nonuniform disk drives
US7228399B2 (en) Control method for storage device controller system, and storage device controller system
US7426588B2 (en) Storage apparatus
US20110145452A1 (en) Methods and apparatus for distribution of raid storage management over a sas domain
US7743209B2 (en) Storage system for virtualizing control memory
US6105076A (en) Method, system, and program for performing data transfer operations on user data
US7487298B2 (en) Disk array device, method for controlling the disk array device and storage system
US7136972B2 (en) Apparatus, system, and method for distributed management in a storage system
CN118210449A (zh) 缓存同步方法、装置、计算机设备及存储介质
JP4285202B2 (ja) 複合計算機システムおよび複合i/oシステム
JP2007048319A (ja) 複合計算機システムおよび複合i/oシステム
JP2001043149A (ja) リモートfcuの制御方法及びリモートfcu

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100129

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

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

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130319

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees