(57)【要約】高速アクセス記録媒体としてのキャッシュメモリを有するキャッシュ制御装置（３００）と、大容量記録媒体としてのディスクを有する実ディスク制御装置（４００）と、クライアント（１０１〜１０ｎ）のそれぞれからのアクセス要求を受け付け、キャッシュ制御装置（３００）、実ディスク制御装置（４００）へアクセス要求に応じた処理を実行させるプロトコル処理装置（１００）およびストレージ制御装置（２００）とを備え、プロトコル処理装置（１００）、ストレージ制御装置（２００）、キャッシュ制御装置（３００）および実ディスク制御装置（４００）は、ネットワーク（２０）上に分散配置されている。
2003065195.tif 000002
【特許請求の範囲】
【請求項１】
高速アクセス記録媒体としてのキャッシュメモリを有するキャッシュ装置と、
大容量記録媒体としてのディスクを有するディスク装置と、
クライアントからのアクセス要求を受け付け、前記キャッシュ装置、前記ディスク装置へアクセス要求に応じた処理を実行させる制御装置とを備え、
前記キャッシュ装置、前記ディスク装置および前記制御装置は、ネットワーク上に分散配置されていることを特徴とするストレージシステム。
【請求項２】
前記制御装置は、アクセス要求を受け付けた場合、前記キャッシュ装置または前記ディスク装置へ制御データを送信し、前記キャッシュ装置または前記ディスク装置は、前記制御データに基づいて、前記キャッシュメモリまたは前記ディスクへアクセスし、前記クライアントへ直接、アクセス結果を送信することを特徴とする請求の範囲第１項に記載のストレージシステム。
【請求項３】
前記制御装置は、アクセス要求を受け付けた場合、前記ディスク装置へ制御データを送信し、前記ディスク装置は、前記制御データに基づいて、複数の送信先へアクセス結果を送信することを特徴とする請求の範囲第１項に記載のストレージシステム。
【請求項４】
前記複数の送信先は、前記クライアント、前記キャッシュ装置であり、前記キャッシュ装置は、前記アクセス結果を前記キャッシュメモリに格納することを特徴とする請求の範囲第３項に記載のストレージシステム。
【請求項５】
前記制御装置は、アクセス要求を受け付けた場合、前記キャッシュ装置へ制御データを送信し、前記キャッシュ装置は、前記制御データに基づいて、複数の送信先へアクセス結果を送信することを特徴とする請求の範囲第１項に記載のストレージシステム。
【請求項６】
高速アクセス記録媒体としてのキャッシュメモリを有するキャッシュ装置と、大容量記録媒体としてのディスクを有するディスク装置とがネットワーク上に分散配置されているストレージシステムで用いられるストレージ制御プログラムであって、
コンピュータを、
クライアントからのアクセス要求を受け付ける受付手段、
前記キャッシュ装置、前記ディスク装置へアクセス要求に応じた処理を実行させるための制御データを生成する生成手段、
前記キャッシュ装置、前記ディスク装置のうちいずれか一方へ前記制御データを送信する送信手段、
として機能させるためのストレージ制御プログラム。
【請求項７】
前記制御データは、前記キャッシュ装置または前記ディスク装置に、前記キャッシュメモリまたは前記ディスクへアクセスし、前記クライアントへ直接、アクセス結果を送信することを指示するデータであることを特徴とする請求の範囲第６項に記載のストレージ制御プログラム。
【請求項８】
前記制御データは、前記ディスク装置に、複数の送信先へアクセス結果を送信することを指示するデータであることを特徴とする請求の範囲第６項に記載のストレージ制御プログラム。
【請求項９】
前記制御データは、前記キャッシュ装置に、複数の送信先へアクセス結果を送信することを指示するデータであることを特徴とする請求の範囲第６項に記載のストレージ制御プログラム。
【請求項１０】
高速アクセス記録媒体としてのキャッシュメモリを有するキャッシュ装置と、大容量記録媒体としてのディスクを有するディスク装置とがネットワーク上に分散配置されているストレージシステムで用いられるストレージ制御方法であって、
クライアントからのアクセス要求を受け付ける受付工程と、
前記キャッシュ装置、前記ディスク装置へアクセス要求に応じた処理を実行させるための制御データを生成する生成工程と、
前記キャッシュ装置、前記ディスク装置のうちいずれか一方へ前記制御データを送信する送信工程と、
を含むことを特徴とするストレージ制御方法。
【発明の詳細な説明】
技術分野
本発明は、ネットワーク上でデータを格納するためのストレージシステム、ストレージ制御プログラムおよびストレージ制御方法に関するものであり、特に、データのアクセス速度を向上させることができるストレージシステム、ストレージ制御プログラムおよびストレージ制御方法に関するものである。
背景技術
第１６図は、従来のストレージ装置の構成を示すブロック図である。この図において、クライアント１０１〜１０ｎのそれぞれは、ネットワーク２０を介して、ストレージ装置３０へアクセス可能なコンピュータ端末であり、ストレージ装置３０からのデータのリードや、ストレージ装置３０へのデータのライトを行う。
ストレージ装置３０は、記録媒体としてのディスク３４およびキャッシュメモリ３７を備え、大容量データを記憶する装置である。このストレージ装置３０において、ネットワークインタフェースカード３１は、所定の通信プロトコルに従って、クライアント１０１〜１０ｎとの間の通信を制御する。ネットワークドライバ３２は、ネットワークインタフェースカード３１を駆動制御する。
ディスク３４は、大容量であってかつアクセス時間が、キャッシュメモリ３７に比べて遅いという特性を備えた記録媒体である。ディスクドライバ３５は、ディスク３４を駆動制御する。ディスク制御部３６は、ディスク３４へのデータのリード／ライト制御や、ディスク３４に関するＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）制御を実行する。ここで、ＲＡＩＤ制御とは、ディスク３４を複数並べて１台のディスクのように使用し、信頼性や処理速度を高める制御をいう。
キャッシュメモリ３７は、例えば、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）であり、アクセス時間がディスク３４に比べて短いが、小容量であるという特性を備えている。
このキャッシュメモリ３７には、ディスク３４に記憶されているデータの一部が記憶されている。キャッシュ制御部３８は、キャッシュメモリ３７へのアクセスを制御する。プロトコル処理部３３は、クライアント１０１〜１０ｎからのリード／ライト要求に応じて、各部を制御する。
上記構成において、例えば、クライアント１０１からリード要求があると、キャッシュ制御部３８は、リード要求されたデータがキャッシュメモリ３７に記憶されているか否かを判断する。ここで、当該データがキャッシュメモリ３７に記憶されている場合（キャッシュヒット）、キャッシュ制御部３８は、キャッシュメモリ３７から当該データをリードし、これをクライアント１０１に渡す。
一方、キャッシュヒットしない場合、ディスク制御部３６は、ディスクドライバ３５を介して、ディスク３４から当該データをリードし、これをクライアント１０１に渡す。このように、ディスク３４からデータがリードされた場合には、キャッシュメモリ３７の場合に比して、アクセス時間が長い。
また、例えば、クライアント１０１からライト要求があると、ディスク制御部３６は、ディスクドライバ３５を介して、データをディスク３４にライトする。さらに、ディスク制御部３６は、当該データをキャッシュ制御部３８に渡す。これにより、キャッシュ制御部３８は、ディスク３４にライトされたデータと同一のデータをキャッシュメモリ３７にライトする。
ここで、ライト時にキャッシュメモリ３７に空き領域が無い場合には、キャッシュ制御部３８は、一部のデータをキャッシュメモリ３７から消去することで空き領域を確保した後、この空き領域に当該データをライトする。
ところで、前述したように従来のストレージ装置３０においては、ディスク３４の制御、キャッシュメモリ３７の制御等の機能の全てを１台のノードに持たせている。
ここで、ディスク３４においては、ランダムアクセスが遅いという性能上の特性がある。従って、従来のストレージ装置３０においては、キャッシュメモリ３７でキャッシュヒットしない限り、全く性能がでない。一方、ネットワーク２０の性能は、向上し続けており、ランダムアクセスのみならず、シーケンシャルアクセスであっても、ストレージ装置３０の性能がシステム全体のボトルネックになっている。
例えば、ディスク３４において、シーケンシャルアクセスで５０〜８０ＭＢ／ｓ程度の能力があるが、ランダムアクセスでは、１０ＭＢ／ｓも性能が出ない。また、ディスク３４における平均シーク時間は、４ｍｓ程度である。
これに対して、ネットワーク２０では、バンド幅が１２０ＭＢ／ｓ、レスポンス時間が１００〜２００μｓという高い能力が発揮でき、高速インターコネクト等の高速化技術を使えば、バンド幅およびレスポンス時間が共に１桁向上する。このように、ストレージ装置３０の能力は、ネットワーク２０の能力に比べて、劣っていることがわかる。
また、ストレージ装置３０が最大の性能を発揮できるのは、アクセスされるデータがキャッシュメモリ３７に記憶されている場合、すなわち、キャッシュヒットした場合である。ここで、キャッシュヒット率は、キャッシュメモリ３７のメモリサイズに強く依存している。従って、キャッシュメモリ３７のメモリサイズが大きい程、キャッシュヒット率が高くなり、ストレージ装置３０の性能が向上する。
しかしながら、従来のストレージ装置３０では、ディスク３４の制御、キャッシュメモリ３７の制御等の機能の全てを１台のノードに持たせているため、キャッシュメモリ３７のメモリサイズが制限される。また、従来のストレージ装置３０では、キャッシュ制御以外の制御でキャッシュメモリ３７のメモリ領域が消費されるため、おのずと、キャッシュ制御に使用可能なメモリ領域が少なくなる。
従って、従来のストレージ装置３０は、性能向上のためのキャッシュメモリ３７のメモリ領域に制限があるため、システム上のボトルネック（データのアクセス速度の低下）が存在するという問題点があった。
本発明は、上記に鑑みてなされたもので、データのアクセス速度を向上させることができるストレージ装置を提供することを目的としている。
発明の開示
上記目的を達成するために、本発明は、高速アクセス記録媒体としてのキャッシュメモリを有するキャッシュ装置と、大容量記録媒体としてのディスクを有するディスク装置と、クライアントからのアクセス要求を受け付け、前記キャッシュ装置、前記ディスク装置へアクセス要求に応じた処理を実行させる制御装置とを備え、前記キャッシュ装置、前記ディスク装置および前記制御装置は、ネットワーク上に分散配置されていることを特徴とする。
この発明によれば、キャッシュ装置、ディスク装置および制御装置をネットワーク上に分散配置し、独立的に制御を行うようにしたので、キャッシュメモリがキャッシュ装置内で独占的に使用されるため、メモリ領域が増え、キャッシュヒット率が高くなり、データのアクセス速度を向上することができる。
また、本発明は、高速アクセス記録媒体としてのキャッシュメモリを有するキャッシュ装置と、大容量記録媒体としてのディスクを有するディスク装置とがネットワーク上に分散配置されているストレージシステムで用いられるストレージ制御プログラムであって、コンピュータを、クライアントからのアクセス要求を受け付ける受付手段、前記キャッシュ装置、前記ディスク装置へアクセス要求に応じた処理を実行させるための制御データを生成する生成手段、前記キャッシュ装置、前記ディスク装置のうちいずれか一方へ前記制御データを送信する送信手段として機能させるためのストレージ制御プログラムである。
また、本発明は、高速アクセス記録媒体としてのキャッシュメモリを有するキャッシュ装置と、大容量記録媒体としてのディスクを有するディスク装置とがネットワーク上に分散配置されているストレージシステムで用いられるストレージ制御方法であって、クライアントからのアクセス要求を受け付ける受付工程と、前記キャッシュ装置、前記ディスク装置へアクセス要求に応じた処理を実行させるための制御データを生成する生成工程と、前記キャッシュ装置、前記ディスク装置のうちいずれか一方へ前記制御データを送信する送信工程とを含むことを特徴とする。
かかる発明によれば、キャッシュ装置およびディスク装置をネットワーク上に分散配置し、独立的に制御を行うようにしたので、キャッシュメモリがキャッシュ装置内で独占的に使用されるため、メモリ領域が増え、キャッシュヒット率が高くなり、データのアクセス速度を向上させることができる。
発明を実施するための最良の形態
以下、図面を参照して本発明にかかる一実施の形態について詳細に説明する。第１図は、本発明にかかる一実施の形態の構成を示すブロック図である。この図において、第１６図の各部に対応する部分には同一の符号を付ける。同図においては、第１６図に示したストレージ装置３０に代えて、プロトコル処理装置１００、ストレージ制御装置２００、キャッシュ制御装置３００および実ディスク制御装置４００がネットワーク２０に接続されている。ここで、プロトコル処理装置１００、ストレージ制御装置２００、キャッシュ制御装置３００および実ディスク制御装置４００は、ストレージシステムを構成している。
プロトコル処理装置１００は、ネットワーク２０を介して、クライアント１０１〜１０ｎのうちいずれかのクライアントからのリード／ライト要求を受け付け、次段のストレージ制御装置２００へ処理を依頼する機能を備えている。
第２図に示したプロトコル処理装置１００において、ネットワークインタフェースカード１０１は、所定の通信プロトコルに従って、クライアント１０１〜１０ｎやストレージ制御装置２００等との間の通信を制御する。ネットワークドライバ１０２は、ネットワークインタフェースカード１０１を駆動制御する。
外部プロトコル処理部１０３は、クライアント１０１〜１０ｎのうちいずれかのクライアントから、第７図（ａ）に示したデータ１１０を受信する機能を備えている。このデータ１１０は、要求ヘッダ１１１および要求データ１１２から構成されている。
要求ヘッダ１１１には、コマンド（リードコマンド／ライトコマンド）を識別するためのコマンドＩＤ、コマンド種類に関するデータが含まれている。一方、要求データ１１２には、データの格納位置を表すストレージＩＤのデータが含まれている。ここで、コマンドがリードコマンドの場合、要求データ１１２には、リードデータのオフセット・サイズのデータも含まれている。一方、コマンドがライトコマンドの場合、要求データ１１２には、ライトデータのオフセット・サイズのデータや、ライトデータ自体も含まれている。
また、外部プロトコル処理部１０３は、第７図（ｂ）に示したデータ１２０を生成し、これを内部プロトコル処理部１０４へ渡す機能を備えている。データ１２０は、応答ヘッダ１２１および要求データ１２２から構成されている。
応答ヘッダ１２１は、リード／ライト要求元（クライアント１０１〜１０ｎのうちいずれかのクライアント）へのコマンドの実行状態（成功または失敗）等を応答するためのヘッダフォーマットである。この応答ヘッダ１２１には、コマンドＩＤおよびコマンドの実行状態（成功または失敗）のデータが、キャッシュ制御装置３００、実ディスク制御装置４００で格納される。
要求データ１２２には、要求データ１２２（ストレージＩＤ、データのオフセット・サイズ、（データ自体））が、ストレージ制御装置２００の内部プロトコル解析部２０３（第３図参照）で解析可能な形式のデータとして含まれている。
第２図に戻り、内部プロトコル処理部１０４は、外部プロトコル処理部１０３からデータ１２０（第７図（ｂ）参照）を受け取り、このデータ１２０に基づいて、第７図（ｃ）に示したデータ１３０を生成する機能と、このデータ１３０を次段のストレージ制御装置２００へ送信する機能とを備えている。
データ１３０は、内部ヘッダ１３１、応答ヘッダ１２１（第７図（ｂ）参照）および要求データ１２２（第７図（ｂ）参照）から構成されている。内部ヘッダ１３１には、リード／ライト要求元（クライアント１０１〜１０ｎのうちいずれかのクライアント）のアドレスや、コマンドの種類（リード／ライトコマンド）のデータが含まれている。
第１図に戻り、ストレージ制御装置２００は、プロトコル処理装置１００からデータ１３０（第７図（ｃ）参照）を受信し、このデータ１３０および第４図に示したキャッシュ／実ディスク制御表２０６に基づいて、キャッシュ制御装置３００、実ディスク制御装置４００におけるデータの位置を検索する機能を備えている。
第４図に示したキャッシュ／実ディスク制御表２０６は、ストレージＩＤ範囲、実ディスク範囲およびキャッシュ範囲の対応関係を表す表である。ストレージＩＤ範囲は、前述したストレージＩＤの範囲である。実ディスク範囲は、実ディスク制御装置４００（第６図参照）におけるデータ位置の範囲であり、ノードＩＤ、ディスクＩＤおよびディスク範囲のデータを含んでいる。
ノードＩＤは、実ディスク制御装置４００のノードを識別するための識別子である。ディスクＩＤは、ディスク４０４を識別するための識別子である。ディスク範囲は、当該ディスク４０４におけるデータ位置の範囲である。
第４図に戻り、キャッシュ範囲は、第５図に示したキャッシュ制御装置３００におけるデータ位置の範囲であり、ノードＩＤおよびメモリ範囲のデータを含んでいる。ノードＩＤは、キャッシュ制御装置３００のノードを識別するための識別子である。メモリ範囲は、キャッシュメモリ３０４におけるデータ位置の範囲である。
第３図に示したストレージ制御装置２００において、ネットワークインタフェースカード２０１は、所定の通信プロトコルに従って、プロトコル処理装置１００やキャッシュ制御装置３００等との間の通信を制御する。ネットワークドライバ２０２は、ネットワークインタフェースカード２０１を駆動制御する。
内部プロトコル解析部２０３は、プロトコル処理装置１００から、第７図（ｃ）に示したデータ１３０を受信する機能を備えている。
また、内部プロトコル解析部２０３は、上記データ１３０を解析し、第８図（ａ）に示したデータ２１０を生成する機能も備えている。
データ２１０は、クライアントアドレス２１１、応答ヘッダ１２１（第７図（ｃ）参照）および要求データ１２２（第７図（ｃ）参照）から構成されている。クライアントアドレス２１１は、内部ヘッダ１３１（第７図（ｃ）参照）に含まれるクライアントのアドレスである。
データ位置検索部２０４は、データ１３０の要求データ１２２に含まれるストレージＩＤをキーとして、キャッシュ／実ディスク制御表２０６（第４図参照）から実ディスク制御装置４００、キャッシュ制御装置３００におけるデータ位置を検索する機能を備えている。
また、データ位置検索部２０４は、第８図（ｂ）に示したデータ２２０を生成し、このデータ２２０を内部プロトコル送信部２０５へ渡す機能も備えている。このデータ２２０は、クライアントアドレス２１１（第８図（ａ）参照）、応答ヘッダ１２１（第８図（ａ）参照）およびデータ位置２２１のデータから構成されている。
データ位置２２１は、データ位置検索部２０４の検索結果であり、第４図に示した実ディスク範囲、キャッシュ範囲である。なお、キャッシュ制御装置３００に当該データが存在しない場合、データ位置２２１には、実ディスク範囲のみが含まれ、キャッシュ範囲が含まれない。
内部プロトコル送信部２０５は、データ位置検索部２０４からのデータ２２０（第８図（ｂ）参照）に基づいて、第８図（ｃ）に示したデータ２３０を生成し、これを次段のキャッシュ制御装置３００または実ディスク制御装置４００（または、キャッシュ制御装置３００のみ、または実ディスク制御装置４００のみ）へ送信する機能を備えている。
データ２３０は、内部ヘッダ１３１（クライアントアドレス、コマンド種類：第７図（ｃ）参照）、応答ヘッダ１２１（第８図（ｂ）参照）およびデータ位置２２１（第８図（ｂ）参照）のデータから構成されている。
ここで、実ディスク制御装置４００へ送信されるデータ２３０の場合、内部ヘッダ１３１は、第８図（ｄ）に示したように、データ送信数、第１送信先、第２送信先、・・・、コマンド種類のデータから構成されている。
データ送信数は、実ディスク制御装置４００へのアクセスした際のデータを送信すべき先（クライアント、キャッシュ制御装置３００）の数である。第１送信先は、クライアント（クライアント１０１〜１０ｎのうちいずれかのクライアント）のアドレスである。第２送信先は、キャッシュ制御装置３００のアドレスである。このように、実ディスク制御装置４００にアクセスした場合には、同一のデータがクライアントおよびキャッシュ制御装置３００の双方へ並列的に送信される。
第１図に戻り、キャッシュ制御装置３００は、ストレージ制御装置２００の内部プロトコル送信部２０５からデータ２３０（第８図（ｃ）参照）を受信し、このデータ２３０に基づいて、キャッシュメモリ３０４（第５図参照）からデータをリードしたり、キャッシュメモリ３０４にデータをライトする機能を備えている。
第５図に示したキャッシュ制御装置３００において、ネットワークインタフェースカード３０１は、所定の通信プロトコルに従って、ストレージ制御装置２００、実ディスク制御装置４００やクライアント１０１〜１０ｎのうちいずれかのクライアント等との間の通信を制御する。ネットワークドライバ３０２は、ネットワークインタフェースカード３０１を駆動制御する。
内部プロトコル解析部３０３は、ストレージ制御装置２００から、第８図（ｃ）に示したデータ２３０を受信する機能を備えている。また、内部プロトコル解析部３０３は、上記データ２３０を解析し、第９図（ａ）に示したデータ３１０を生成する機能も備えている。
データ３１０は、クライアントアドレス２１１（第８図（ｂ）参照）、応答ヘッダ１２１（第８図（ｃ）参照）およびデータ位置２２１（第８図（ｃ）参照）から構成されている。
第５図に戻り、キャッシュメモリ３０４は、例えば、ＳＲＡＭであり、アクセス時間がディスク４０４（第６図参照）に比べて短いが、小容量であるという特性を備えている。
このキャッシュメモリ３０４には、ディスク４０４に記憶されているデータの一部が記憶されている。これらのキャッシュメモリ３０４およびディスク４０４の記憶状態は、前述したキャッシュ／実ディスク制御表２０６（第４図参照）で管理されている。キャッシュ制御部３０５は、キャッシュメモリ３０４へのアクセスを制御する。
データ付加部３０６は、コマンドがリードコマンドである場合、第９図（ｂ）に示したように、キャッシュメモリ３０４からリードしたデータを応答データ３２１として、クライアントアドレス２１１および応答ヘッダ１２１に付加し、これをデータ３２０として応答データ送信部３０７へ送信する。
応答データ送信部３０７は、内部ヘッダ１３１（第８図（ｃ）参照）に含まれるクライアントアドレスへ第９図（ｃ）に示したデータ３３０を送信する機能を備えている。このデータ３３０は、応答ヘッダ１２１（第９図（ｂ）参照）および応答データ３２１（第９図（ｂ）参照）から構成されている。
第１図に戻り、実ディスク制御装置４００は、ストレージ制御装置２００からデータ２３０（第８図（ｃ）および（ｄ）参照）を受信し、このデータ２３０に基づいて、ディスク４０４（第６図参照）からデータをリードしたり、ディスク４０４にデータをライトする機能を備えている。
第６図に示した実ディスク制御装置４００において、ネットワークインタフェースカード６０１は、所定の通信プロトコルに従って、ストレージ制御装置２００、キャッシュ制御装置３００やクライアント１０１〜１０ｎのうちいずれかのクライアント等との間の通信を制御する。ネットワークドライバ４０２は、ネットワークインタフェースカード４０１を駆動制御する。
内部プロトコル解析部４０３は、ストレージ制御装置２００から、第８図（ｃ）および（ｄ）に示したデータ２３０を受信する機能を備えている。また、内部プロトコル解析部４０３は、上記データ２３０を解析し、第１０図（ａ）に示したデータ４１０を生成する機能も備えている。
データ４１０は、クライアントアドレス２１１、応答ヘッダ１２１（第８図（ｃ）参照）およびデータ位置２２１（第８図（ｃ）参照）から構成されている。クライアントアドレス２１１は、第８図（ｄ）に示した第１送信先に対応している。
第６図に戻り、ディスク４０４は、大容量であってかつアクセス時間が、キャッシュメモリ３０４（第５図参照）に比べて遅いという特性を備えた記録媒体である。ディスクドライバ４０５は、ディスク４０４を駆動制御する。ディスク制御部４０６は、ディスク４０４へのデータのリード／ライト制御等を実行する。
具体的には、リード時、ディスク制御部４０６は、第１０図に示したデータ４１０のデータ位置２２１に基づいて、ディスク４０４の所定位置からデータをリードし、これを第１０図（ｂ）に示した応答データ４２０とする。
データ付加部４０７は、第１０図（ａ）に示したクライアントアドレス２１１および応答ヘッダ１２１に、応答データ４２０（第１０図（ｂ）参照）を付加し、データ４３０を生成する。また、データ付加部４０７は、データ４３０を応答データ送信部４０８へ送信する。
応答データ送信部４０８は、データ付加部４０７からのデータ４３０（第１０図（ｃ）参照）に含まれるクライアントアドレスへデータ４４０（第１０図（ｄ）参照）を送信する。
また、応答データ送信部４０８は、第８図（ｄ）に示した第２送信先（キャッシュ制御装置３００）にもデータ４４０を送信する。
つぎに、一実施の形態の動作について、第１１図〜第１４図に示したフローチャートを参照しつつ説明する。第１１図は、第１図に示したプロトコル処理装置１００の動作を説明するフローチャートである。第１２図は、第１図に示したストレージ制御装置２００の動作を説明するフローチャートである。第１３図は、第１図に示したキャッシュ制御装置３００の動作を説明するフローチャートである。第１４図は、第１図に示した実ディスク制御装置４００の動作を説明するフローチャートである。
第１１図に示したステップＳＡ１では、第２図に示したプロトコル処理装置１００の外部プロトコル処理部１０３は、クライアント１０１〜１０ｎ（第１図参照）のうちいずれかのクライアントから第７図（ａ）に示したデータ１１０を受信したか否かを判断し、この場合、判断結果を「Ｎｏ」として、同判断を繰り返す。
また、第１２図に示したステップＳＢ１では、第３図に示したストレージ制御装置２００の内部プロトコル解析部２０３は、プロトコル処理装置１００から第７図（ｃ）に示したデータ１３０を受信したか否かを判断し、この場合、判断結果を「Ｎｏ」として、同判断を繰り返す。
また、第１３図に示したステップＳＣ１では、第５図に示したキャッシュ制御装置３００の内部プロトコル解析部３０３は、ストレージ制御装置２００から第８図（ｃ）に示したデータ２３０を受信したか否かを判断し、この場合、判断結果を「Ｎｏ」として、同判断を繰り返す。
また、第１４図に示したステップＳＤ１では、第６図に示した実ディスク制御装置４００の内部プロトコル解析部４０３は、ストレージ制御装置２００から第８図（ｃ）に示したデータ２３０を受信したか否かを判断し、この場合、判断結果を「Ｎｏ」として、同判断を繰り返す。
そして、例えば、クライアント１０１からプロトコル処理装置１００へリード用のデータ１１０（第７図（ａ）参照）が送信されると、このデータ１１０は、ネットワーク２０を介して、第２図に示したプロトコル処理装置１００に受信される。この場合、リード用であるため、要求ヘッダ１１１（第７図（ａ）参照）のコマンド種類は、リードコマンドである。
これにより、外部プロトコル処理部１０３は、第１１図に示したステップＳＡ１の判断結果を「Ｙｅｓ」とする。ステップＳＡ２では、外部プロトコル処理部１０３は、第７図（ａ）に示したデータ１１０の要求ヘッダ１１１を解析する。ステップＳＡ３では、外部プロトコル処理部１０３は、第７図（ｂ）に示した応答ヘッダ１２１を生成し、データ１２０を内部プロトコル処理部１０４へ渡す。
ステップＳＡ４では、内部プロトコル処理部１０４は、第７図（ｃ）に示した内部ヘッダ１３１を生成する。ステップＳＡ５では、内部プロトコル処理部１０４は、第７図（ｃ）に示したデータ１３０をネットワーク２０を介して、次段のストレージ制御装置２００へ送信する。
そして、データ１３０が第３図に示したストレージ制御装置２００に受信されると、内部プロトコル解析部２０３は、第１２図に示したステップＳＢ１の判断結果を「Ｙｅｓ」とする。ステップＳＢ２では、内部プロトコル解析部２０３は、第７図（ｃ）に示した内部ヘッダ１３１を解析し、第８図（ａ）に示したデータ２１０をデータ位置検索部２０４へ渡す。
ステップＳＢ３では、データ位置検索部２０４は、要求データ１２２（第８図（ａ）参照）に含まれるストレージＩＤをキーとして、第４図に示したキャッシュ／実ディスク制御表２０６からキャッシュ範囲を検索する。ここで、キャッシュ範囲が検索された場合、データ位置検索部２０４は、検索結果であるデータ位置２１１（第８図（ｂ）参照）を含むデータ２２０（第８図（ｂ）参照）を生成し、これを内部プロトコル送信部２０５へ渡す。
ステップＳＢ４では、内部プロトコル送信部２０５は、第８図（ｃ）に示したデータ２３０を生成する。ステップＳＢ５では、内部プロトコル送信部２０５は、ネットワーク２０を介して、キャッシュ制御装置３００へデータ２３０を送信する。
ステップＳＢ６では、内部プロトコル送信部２０５は、データ２３０の送信が完了したか否かを判断し、この場合、判断結果を「Ｎｏ」として、同判断を繰り返す。
そして、データ２３０の送信が完了すると、内部プロトコル送信部２０５は、ステップＳＢ６の判断結果を「Ｙｅｓ」とする。ステップＳＢ７では、内部プロトコル送信部２０５は、キャッシュメモリ３０４（第５図参照）へデータをライトするか否かを判断し、この場合、判断結果を「Ｎｏ」とする。
そして、データ２３０が第５図に示したキャッシュ制御装置３００に受信されると、内部プロトコル解析部３０３は、第１３図に示したステップＳＣ１の判断結果を「Ｙｅｓ」とする。ステップＳＣ２では、内部プロトコル解析部３０３は、第８図（ｃ）に示した内部ヘッダ１３１を解析し、第９図（ａ）に示したデータ３１０を生成する。
ステップＳＣ３では、内部プロトコル解析部３０３は、内部ヘッダ１３１の解析結果より、コマンド種類がリードコマンドまたはライトコマンドのいずれかであるかを判断する。この場合、リードコマンドであるため、ステップＳＣ４では、内部プロトコル解析部３０３は、キャッシュ制御部３０５にデータ３１０（第９図（ａ）参照）を渡し、キャッシュメモリ３０４からのデータリードを指示する。
これにより、キャッシュ制御部３０５は、キャッシュメモリ３０４のデータ位置２２１（第９図（ａ）参照）からデータをリードする。ステップＳＣ５では、データ付加部３０６は、第９図（ｂ）に示した応答データ３２１を、クライアントアドレス２１１および応答ヘッダ１２１に付加し、データ３２０を生成する。つぎに、データ付加部３０６は、データ３２０を応答データ送信部３０７へ送信する。
ステップＳＣ６では、応答データ送信部３０７は、第９図（ｃ）に示したデータ３３０を生成し、これをクライアント１０１へ送信する。そして、データ３３０がクライアント１０１に受信されると、キャッシュ制御装置３００からのデータのリードが完了する。
また、第１２図に示したステップＳＢ３でデータ位置検索部２０４により、要求データ１２２（第７図（ｃ）参照）に含まれるストレージＩＤをキーとして、第４図に示したキャッシュ／実ディスク制御表２０６から実ディスク範囲のみが検索された場合には、以下の処理が実行される。すなわち、データ位置検索部２０４は、検索結果であるデータ位置２１１（第８図（ｂ）参照）を含むデータ２２０（第８図（ｂ）参照）を生成し、これを内部プロトコル送信部２０５へ渡す。
ステップＳＢ４では、内部プロトコル送信部２０５は、第８図（ｃ）に示したデータ２３０を生成する。この場合、内部ヘッダ１３１は、第８図（ｄ）に示した構成である。ステップＳＢ５では、内部プロトコル送信部２０５は、ネットワーク２０を介して、実ディスク制御装置４００へデータ２３０を送信する。
ステップＳＢ６では、内部プロトコル送信部２０５は、データ２３０の送信が完了したか否かを判断し、この場合、判断結果を「Ｎｏ」として、同判断を繰り返す。
ステップＳＢ７では、内部プロトコル送信部２０５は、キャッシュメモリ３０４（第５図参照）へデータをライトするか否かを判断し、この場合、第８図（ｄ）に示した内部ヘッダ１３１を用いているため判断結果を「Ｙｅｓ」とする。ステップＳＢ８では、内部プロトコル送信部２０５は、後述するように、キャッシュメモリ３０４にデータがライトされるため、当該ライトに関してキャッシュ／実ディスク制御表２０６（第４図参照）を更新する。
そして、データ２３０が第６図に示した実ディスク制御装置４００に受信されると、内部プロトコル解析部４０３は、第１４図に示したステップＳＤ１の判断結果を「Ｙｅｓ」とする。ステップＳＤ２では、内部プロトコル解析部４０３は、第８図（ｄ）に示した内部ヘッダ１３１を解析し、第１０図（ａ）に示したデータ４１０を生成する。
ステップＳＤ３では、内部プロトコル解析部４０３は、内部ヘッダ１３１の解析結果より、コマンド種類がリードコマンドまたはライトコマンドのいずれかであるかを判断する。この場合、リードコマンドであるため、ステップＳＤ４では、内部プロトコル解析部４０３は、ディスク制御部４０６にデータ４１０（第１０図（ａ）参照）を渡し、ディスク４０４からのデータリードを指示する。
これにより、ディスク制御部４０６は、ディスク４０４のデータ位置２２１（第１０図（ａ）参照）からデータをリードする。ステップＳＤ５では、データ付加部４０７は、第１０図（ｂ）に示した応答データ４２０を、クライアントアドレス２１１および応答ヘッダ１２１に付加し、第１０図（ｃ）に示したデータ４３０を生成する。つぎに、データ付加部４０７は、データ４３０を応答データ送信部４０８へ送信する。
ステップＳＤ６では、応答データ送信部４０８は、第１０図（ｄ）に示したデータ４４０を生成した後、第８図（ｄ）に示した第１送信先（クライアント１０１）および第２送信先（キャッシュ制御装置３００）の双方へデータ４４０を送信する。そして、データ４４０がクライアント１０１に受信されると、実ディスク制御装置４００からのデータのリードが完了する。
また、データ４４ｂが第５図に示したキャッシュ制御装置３００に受信されると、キャッシュ制御部３０５は、キャッシュメモリ３０４に応答データ４２０をライトする。これにより、実ディスク制御装置４００およびキャッシュ制御装置３００の双方に同一の応答データ４２０が存在するため、次回のリード時には、キャッシュ制御装置３００からデータがリード可能となる。
また、例えば、クライアント１０１からプロトコル処理装置１００へライト用のデータ１１０（第７図（ａ）参照）が送信されると、このデータ１１０は、ネットワーク２０を介して、第２図に示したプロトコル処理装置１００に受信される。この場合、ライト用であるため、要求ヘッダ１１１（第７図（ａ）参照）のコマンド種類は、ライトコマンドである。
これにより、外部プロトコル処理部１０３は、第１１図に示したステップＳＡ１の判断結果を「Ｙｅｓ」とする。以後、前述したステップＳＡ２〜ステップＳＡ４の処理が実行される。ステップＳＡ５では、内部プロトコル処理部１０４は、第７図（ｃ）に示したデータ１３０をネットワーク２０を介して、次段のストレージ制御装置２００へ送信する。
そして、データ１３０が第３図に示したストレージ制御装置２００に受信されると、内部プロトコル解析部２０３は、第１２図に示したステップＳＢ１の判断結果を「Ｙｅｓ」とする。以後、前述したステップＳＢ２〜ステップＳＢ４の処理が実行される。
ステップＳＢ５では、内部プロトコル送信部２０５は、ネットワーク２０を介して、実ディスク制御装置４００へデータ２３０を送信する。この場合、データ２３０の内部ヘッダ１３１は、第８図（ｄ）に示した構成である。
ステップＳＢ６では、内部プロトコル送信部２０５は、データ２３０の送信が完了したか否かを判断し、この場合、判断結果を「Ｎｏ」として、同判断を繰り返す。そして、データ２３０の送信が完了すると、内部プロトコル送信部２０５は、ステップＳＢ６の判断結果を「Ｙｅｓ」とする。
ステップＳＢ７では、内部プロトコル送信部２０５は、キャッシュメモリ３０４（第５図参照）へデータをライトするか否かを判断し、この場合、第８図（ｄ）に示した内部ヘッダ１３１を用いているため判断結果を「Ｙｅｓ」とする。ステップＳＢ８では、内部プロトコル送信部２０５は、後述するように、ディスク４０４およびキャッシュメモリ３０４にデータがライトされるため、当該ライトに関してキャッシュ／実ディスク制御表２０６（第４図参照）を更新する。
そして、データ２３０が第６図に示した実ディスク制御装置４００に受信されると、内部プロトコル解析部４０３は、第１４図に示したステップＳＤ１の判断結果を「Ｙｅｓ」とする。ステップＳＤ２では、内部プロトコル解析部４０３は、第８図（ｄ）に示した内部ヘッダ１３１を解析し、第１０図（ａ）に示したデータ４１０を生成する。
ステップＳＤ３では、内部プロトコル解析部４０３は、内部ヘッダ１３１の解析結果より、コマンド種類がリードコマンドまたはライトコマンドのいずれかであるかを判断する。この場合、ライトコマンドであるため、ステップＳＤ７では、内部プロトコル解析部４０３は、ディスク制御部４０６にデータ４１０（第１０図（ａ）参照）を渡し、ディスク４０４へのデータのライトを指示する。
これにより、ディスク制御部４０６は、ディスク４０４のデータ位置２２１（第１０図（ａ）参照）にデータをライトする。ステップＳＤ５では、データ付加部４０７は、第１０図（ｂ）に示した応答データ４２０を、クライアントアドレス２１１および応答ヘッダ１２１に付加し、第１０図（ｃ）に示したデータ４３０を生成する。つぎに、データ付加部４０７は、データ４３０を応答データ送信部４０８へ送信する。
ステップＳＤ６では、応答データ送信部４０８は、第１０図（ｃ）に示したデータ４４０を生成した後、第８図（ｄ）に示した第１送信先（クライアント１０１）および第２送信先（キャッシュ制御装置３００）の双方へデータ４４０を送信する。そして、データ４４０がクライアント１０１に受信されると、実ディスク制御装置４００へのデータのライトが完了する。
また、データ４４０が第５図に示したキャッシュ制御装置３００に受信されると、第１３図に示したステップＳＣ７では、キャッシュ制御部３０５は、キャッシュメモリ３０４に応答データ４２０（ディスク４０４にライトされたデータ）をライトする。これにより、実ディスク制御装置４００およびキャッシュ制御装置３００の双方に同一の応答データ４２０が存在するため、次回のリード時には、キャッシュ制御装置３００からデータがリード可能となる。
以上説明したように、一実施の形態によれば、プロトコル処理装置１００、ストレージ制御装置２００、キャッシュ制御装置３００および実ディスク制御装置４００をネットワーク２０上に分散配置し、独立的に制御を行うようにしたので、第５図に示したキャッシュメモリ３０４がキャッシュ制御装置３００内で独占的に使用されるため、メモリ領域が増え、キャッシュヒット率が高くなり、データのアクセス速度を向上させることができる。
以上本発明にかかる一実施の形態について図面を参照して詳述してきたが、具体的な構成例はこの一実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等があっても本発明に含まれる。
例えば、前述した一実施の形態においては、プロトコル処理装置１００、ストレージ制御装置２００、キャッシュ制御装置３００または実ディスク制御装置４００の各機能を実現するためのプログラムを第１５図に示したコンピュータ読み取り可能な記録媒体６００に記録して、この記録媒体６００に記録されたプログラムを同図に示したコンピュータ５００に読み込ませ、実行することにより前述した各機能を実現してもよい。
同図に示したコンピュータ５００は、上記プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）５１０と、キーボード、マウス等の入力装置５２０と、各種データを記憶するＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）５３０と、演算パラメータ等を記憶するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）５４０と、記録媒体６００からプログラムを読み取る読取装置５５０と、ディスプレイ、プリンタ等の出力装置５６０と、装置各部を接続するバス５７０とから構成されている。
ＣＰＵ５１０は、読取装置５５０を経由して記録媒体６００に記録されているプログラムを読み込んだ後、プログラムを実行することにより、前述した各機能を実現する。なお、記録媒体６００には、光ディスク、フレキシブルディスク、ハードディスク等の記録媒体が含まれる。
また、一実施の形態においては、第８図（ｄ）に示した内部ヘッダ１３１を用いて、実ディスク制御装置４００から複数の装置（例えば、クライアント、キャッシュ制御装置３００等）へ同一のデータを送信する例について説明したが、内部ヘッダ１３１を用いて、キャッシュ制御装置３００から複数の装置へ同一のデータを送信してもよい。
以上説明したように、本発明によれば、キャッシュ装置、ディスク装置および制御装置をネットワーク上に分散配置し、独立的に制御を行うようにしたので、キャッシュメモリがキャッシュ装置内で独占的に使用されるため、メモリ領域が増え、キャッシュヒット率が高くなり、データのアクセス速度を向上させることができるという効果を奏する。
また、本発明によれば、キャッシュ装置またはディスク装置が、制御データに基づいて、キャッシュメモリまたはディスクへアクセスし、クライアントへ直接、アクセス結果を送信することにより、無駄なデータの転送が無くなり、さらにアクセス速度を向上させることができるという効果を奏する。
また、本発明によれば、ディスク装置が、制御データに基づいて、複数の送信先へアクセス結果を送信することにより、データの二重化が図られ、信頼性を向上させることができるという効果を奏する。
また、本発明によれば、キャッシュ装置が、アクセス結果をキャッシュメモリに格納することにより、高速アクセスのためのデータの二重化を容易に図ることができるという効果を奏する。
また、本発明によれば、キャッシュ装置が、制御データに基づいて、複数の送信先へアクセス結果を送信することにより、データの二重化が図られ、信頼性を向上させることができるという効果を奏する。
また、本発明によれば、キャッシュ装置およびディスク装置をネットワーク上に分散配置し、独立的に制御を行うようにしたので、キャッシュメモリがキャッシュ装置内で独占的に使用されるため、メモリ領域が増え、キャッシュヒット率が高くなり、データのアクセス速度を向上させることができるという効果を奏する。
産業上の利用可能性
以上のように、本発明にかかるストレージシステム、ストレージ制御プログラムおよびストレージ制御方法は、例えば、ネットワーク上での高速アクセスが要求されるデータのストレージに対して有用である。
【図面の簡単な説明】
第１図は、本発明にかかる一実施の形態の構成を示すブロック図であり、第２図は、第１図に示したプロトコル処理装置１００の構成を示すブロック図であり、第３図は、第１図に示したストレージ制御装置２００の構成を示すブロック図であり、第４図は、同一実施の形態で用いられるキャッシュ／実ディスク制御表２０６を示す図であり、第５図は、第１図に示したキャッシュ制御装置３００の構成を示すブロック図であり、第６図は、第１図に示した実ディスク制御装置４００の構成を示すブロック図であり、第７図は、第１図に示したプロトコル処理装置１００の動作を説明する図であり、第８図は、第１図に示したストレージ制御装置２００の動作を説明する図であり、第９図は、第１図に示したキャッシュ制御装置３００の動作を説明する図であり、第１０図は、第１図に示した実ディスク制御装置４００の動作を説明する図であり、第１１図は、第１図に示したプロトコル処理装置１００の動作を説明するフローチャートであり、第１２図は、第１図に示したストレージ制御装置２００の動作を説明するフローチャートであり、第１３図は、第１図に示したキャッシュ制御装置３００の動作を説明するフローチャートであり、第１４図は、第１図に示した実ディスク制御装置４００の動作を説明するフローチャートであり、第１５図は、同一実施の形態の変形例の構成を示すブロック図であり、第１６図は、従来のストレージ装置３０の構成を示すブロック図である。
【図１】
2003065195.tif 000003
【図２】
2003065195.tif 000004
【図３】
2003065195.tif 000005
【図４】
2003065195.tif 000006
【図５】
2003065195.tif 000007
【図６】
2003065195.tif 000008
【図７】
2003065195.tif 000009
【図８】
2003065195.tif 000010
【図９】
2003065195.tif 000011
【図１０】
2003065195.tif 000012
【図１１】
2003065195.tif 000013
【図１２】
2003065195.tif 000014
【図１３】
2003065195.tif 000015
【図１４】
2003065195.tif 000016
【図１５】
2003065195.tif 000017
【図１６】
2003065195.tif 000018
【国際調査報告】
2003065195.tif 000019
2003065195.tif 000020
2003065195.tif 000021