(57)【要約】制御装置（２）が、クライアント装置（７）から内部ネットワーク（５）を介してアクセス要求を受けると、キャッシュ装置（４）又はストレージ装置（３）にデータ転送指示を発行し、これを受けたキャッシュ装置（４）又はストレージ装置（３）が、その指示に従ってクライアント装置（７）とデータ転送に必要な会話を直接行なって、クライアント装置（７）との間で、直接、データ転送を実行する。これにより、ストレージシステム（１）のレイテンシの大幅削減と、スループットの大幅向上（内部ネットワーク（５）の性能を十分に活かせる帯域の確保）とを図ることができる。
2003075147.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶するストレージ装置（３）と、
該ストレージ装置（３）に記憶されている該データをキャッシュしうるキャッシュ装置（４）と、
少なくとも、上記のストレージ装置（３）及びキャッシュ装置（４）に対するアクセスを制御する制御装置（２）と、
上記のストレージ装置（３），キャッシュ装置（４）及び制御装置（２）を相互に通信可能に接続する内部ネットワーク（５）とをそなえるとともに、
該制御装置（２）が、
該内部ネットワーク（５）にアクセス可能に接続されたクライアント装置（７）から該内部ネットワーク（５）を介して送られてくるアクセス要求を受けると、該キャッシュ装置（４）又は該ストレージ装置（３）にデータ転送指示を発行する転送指示発行手段（２１−１）をそなえ、且つ、
少なくとも、該データ転送指示を受信する該ストレージ装置（３）又はキャッシュ装置（４）が、
該制御装置（２）からの該データ転送指示に従って該クライアント装置（７）とデータ転送に必要な会話を直接行なって、該クライアント装置（７）との間で、直接、データ転送を実行する直接転送手段（３４又は４３）をそなえたことを特徴とする、ストレージシステム。
【請求項２】
データを記憶するストレージ装置（３）と、該ストレージ装置（３）に記憶されている該データをキャッシュしうるキャッシュ装置（４）と、少なくとも上記のストレージ装置（３）及びキャッシュ装置（４）に対するアクセスを制御する制御装置（２）と、上記のストレージ装置（３），キャッシュ装置（４）及び制御装置（２）を相互に通信可能に接続する内部ネットワーク（５）とをそなえたストレージシステムにおけるデータ転送方法であって、
該内部ネットワーク（５）にアクセス可能に接続されたクライアント装置（７）が、該内部ネットワーク（５）を介して該制御装置（２）にアクセス要求を発行するアクセス要求発行ステップ（Ｓ１）と、
該制御装置（２）が、該アクセス要求を受けると、該キャッシュ装置（４）又は該ストレージ装置（３）にデータ転送指示を発行する転送指示発行ステップ（Ｓ２）と、
該キャッシュ装置（４）又は該ストレージ装置（３）が、該制御装置（２）からの該データ転送指示に従って該クライアント装置（７）とデータ転送に必要な会話を直接行なって、該クライアント装置（７）との間で、直接、データ転送を実行する直接転送ステップ（Ｓ３）とをそなえたこと特徴とする、ストレージシステムにおけるデータ転送方法。
【請求項３】
該転送指示発行ステップ（Ｓ２）において、該制御装置（２）が、該クライアント装置（７）と該キャッシュ装置（４）との間の該会話のためのメッセージを生成して該データ転送指示とともに該キャッシュ装置（４）に送信し、
該データ転送ステップ（Ｓ３）において、該キャッシュ装置（４）が、該制御装置（２）で生成された該メッセージを用いて該クライアント装置（７）との間のデータ転送を実行することを特徴とする、請求の範囲第２項に記載のストレージシステムにおけるデータ転送方法。
【請求項４】
該転送指示発行ステップ（Ｓ２）において、該制御装置（２）が、該クライアント装置（７）と該ストレージ装置（３）との間の該会話のためのメッセージを生成して該データ転送指示とともに該ストレージ装置（３）に送信し、
該直接転送ステップ（Ｓ３）において、該ストレージ装置（３）が、該制御装置（２）で生成された該メッセージを用いて該クライアント装置（７）との間のデータ転送を実行することを特徴とする、請求の範囲第２項に記載のストレージシステムにおけるデータ転送方法。
【請求項５】
該転送指示発行ステップ（Ｓ３）において、該制御装置（２）が、該クライアント装置（７）と該キャッシュ装置（４）との間の該会話のためのメッセージを生成するのに必要なメッセージ情報を該データ転送指示とともに該キャッシュ装置（４）に送信し、
該直接転送ステップ（Ｓ３）において、該キャッシュ装置（４）が、該制御装置（２）から送信されてきた該メッセージ情報に基づいて該メッセージを生成し、当該メッセージを用いて該クライアント装置（７）との間のデータ転送を実行することを特徴とする、請求の範囲第２項に記載のストレージシステムにおけるデータ転送方法。
【請求項６】
該転送指示発行ステップ（Ｓ２）において、該制御装置（２）が、該クライアント装置（７）と該ストレージ装置（３）との間の該会話のためのメッセージを生成するのに必要なメッセージ情報を該データ転送指示とともに該キャッシュ装置（４）に送信し、
該直接転送ステップ（Ｓ３）において、該ストレージ装置（３）が、該制御装置（２）から送信されてきた該メッセージ情報に基づいて該メッセージを生成し、当該メッセージを用いて該クライアント装置（７）との間のデータ転送を実行することを特徴とする、請求の範囲第２項に記載のストレージシステムにおけるデータ転送方法。
【請求項７】
該直接転送ステップ（Ｓ３）によるデータ転送が完了すると、該キャッシュ装置（４）が該内部ネットワーク（５）を介して該制御装置（２）へ確認メッセージを発行し、
該制御装置（２）が、該キャッシュ装置（４）から該確認メッセージを受けることにより該内部ネットワーク（５）を介して該クライアント装置（７）に対してデータ転送完了を表す応答メッセージを発行することを特徴とする、請求の範囲第３項又は第５項に記載のストレージシステムにおけるデータ転送方法。
【請求項８】
該直接転送ステップ（Ｓ３）によるデータ転送が完了すると、該ストレージ装置（３）が該内部ネットワーク（５）を介して該制御装置（２）へ確認メッセージを発行し、
該制御装置（２）が、該ストレージ装置（３）から該確認メッセージを受けることにより該内部ネットワーク（５）を介して該クライアント装置（７）に対してデータ転送完了を表す応答メッセージを発行することを特徴とする、請求の範囲第４項又は第６項に記載のストレージシステムにおけるデータ転送方法。
【請求項９】
該キャッシュ装置（４）が２台以上存在する場合に、
該転送指示発行ステップ（Ｓ２）において、該制御装置（２）が、該クライアント装置（７）と上記の各キャッシュ装置（４Ａ及び４Ｂ）との間の該会話に必要なメッセージを生成して該データ転送指示とともに該キャッシュ装置（４）にそれぞれ送信し、
該直接転送ステップ（Ｓ３）において、該キャッシュ装置（４Ａ及び４Ｂ）が、それぞれ、該制御装置（２）で生成された該メッセージを用いて該クライアント装置（７）との間のデータ転送を実行し、
その後、該キャッシュ装置（４Ａ及び４Ｂ）のいずれかが該データ転送の完了を示す応答メッセージを、該内部ネットワーク（５）を介して該クライアント装置（７）へ送信することを特徴とする、請求の範囲第２項に記載のストレージシステムにおけるデータ転送方法。
【請求項１０】
該キャッシュ装置（４）が２台以上存在する場合に、
該転送指示発行ステップ（Ｓ２）において、該制御装置（２）が、該クライアント装置（７）と上記の各キャッシュ装置（４Ａ及び４Ｂ）との間の該会話に必要なメッセージを生成して該データ転送依頼とともに該キャッシュ装置（４Ａ及び４Ｂ）にそれぞれ送信し、
該直接転送ステップ（Ｓ３）において、該キャッシュ装置（４Ａ及び４Ｂ）が、それぞれ、該制御装置（２）で生成された該メッセージを用いて該クライアント装置（７）との間のデータ転送を実行し、
その後、上記の各キャッシュ装置（４Ａ及び４Ｂ）がそれぞれ該データ転送の完了を示す応答メッセージを、該内部ネットワーク（５）を介して該クライアント装置（７）へ送信し、
該クライアント装置（７）は、上記の各キャッシュ装置（４Ａ及び４Ｂ）からの該応答メッセージを受信することにより、該データ転送を完了とすることを特徴とする、請求の範囲第２項に記載のストレージシステムにおけるデータ転送方法。
【請求項１１】
該キャッシュ装置（４）が２台以上存在する場合に、
該転送指示発行ステップ（Ｓ２）において、該制御装置（２）が、該クライアント装置（７）と該キャッシュ装置（４Ａ及び４Ｂ）のいずれかとの間の該会話に必要なメッセージを生成して該データ転送指示とともに該キャッシュ装置（４）にそれぞれ送信するとともに、データコピー先キャッシュ装置情報を当該キャッシュ装置（４Ａ）に送信し、
該直接転送ステップ（Ｓ３）において、該キャッシュ装置（４Ａ）が、該制御装置（２）から受信した該メッセージを用いて該クライアント装置（７）との間のデータ転送を実行し、
その後、該キャッシュ装置（４Ａ）が、該制御装置（２）から受信した該データコピー先キャッシュ装置情報により特定される他のキャッシュ装置（４Ｂ）に、受信した該データをコピーすることを特徴とする、請求の範囲第２項に記載のストレージシステムにおけるデータ転送方法。
【請求項１２】
該制御装置（２）が、同じデータをキャッシュしているキャッシュ装置（４Ａ及び４Ｂ）のいずれかに当該データを該ストレージ装置（３）へ転送するよう指示し、
該指示を受けたキャッシュ装置（４Ａ）は、該データを該内部ネットワーク（５）経由で該ストレージ装置（３）へ転送して、他のキャッシュ装置（４Ｂ）とで冗長に保持していた該データを削除して自己のメモリ領域を解放することを特徴とする、請求の範囲第９項〜第１１項のいずれか１項に記載のストレージシステムにおけるデータ転送方法。
【請求項１３】
データを記憶する複数のストレージ装置（３）と、
該ストレージ装置（３）に対するアクセスを制御する制御装置（２）と、
上記のストレージ装置（３）及び制御装置（２）を相互に通信可能に接続する内部ネットワーク（５）とをそなえるとともに、
該制御装置（２）が、
該複数のストレージ装置（３）の記憶領域を仮想ストレージアドレスにて一括管理することで該複数のストレージ装置（３）の記憶領域を特定サイズの仮想ストレージ領域として管理する仮想ストレージ管理手段（２１−５）と、
該内部ネットワーク（５）にアクセス可能に接続されたクライアント装置（７）から該内部ネットワーク（５）を介して或る仮想ストレージアドレスを用いた該仮想ストレージ領域に対するアクセス要求を受けると、当該仮想ストレージアドレスに基づいて該仮想ストレージ管理手段（２１−５）にて特定される記憶領域をもつストレージ装置（３）にデータ転送指示を発行する転送指示発行手段（２１−１）をそなえ、且つ、
該ストレージ装置（３）が、
該制御装置（２）からの該データ転送指示に従って該クライアント装置（７）とデータ転送に必要な会話を直接行なって、該クライアント装置（７）との間で、直接、データ転送を実行する直接転送手段（３４）をそなえたことを特徴とする、ストレージシステム。
【請求項１４】
該ストレージ装置（３）に記憶されている該データをキャッシュしうるキャッシュ装置（４）をさらにそなえ、
該制御装置（２）が、
該キャッシュ装置（４）の記憶領域を該仮想ストレージアドレスにて一括管理するキャッシュ領域管理手段（２１−４）をさらにそなえるとともに、
該転送指示発行手段が、
該仮想ストレージアドレスに基づいて該仮想ストレージ管理手段（２１−５）又は該キャッシュ領域管理手段（２１−４）にて特定される記憶領域をもつストレージ装置（３）又はキャッシュ装置（４）に該データ転送指示を発行するように構成されたことを特徴とする、請求の範囲第１３項に記載のストレージシステム。
【請求項１５】
該キャッシュ装置（４）が、
該制御装置（２）からの該データ転送指示に従って該クライアント装置（７）とデータ転送に必要な会話を直接行なって、該クライアント装置（７）との間で、直接、データ転送を実行する直接転送手段（４３）をそなえたことを特徴とする、請求の範囲第１４項に記載のストレージシステム。
【請求項１６】
該仮想ストレージ管理手段（２１−５）が、
該仮想ストレージ領域の特定領域についての仮想ストレージアドレスと、該複数のストレージ装置の記憶領域についての実アドレスとを対応付けて管理することによりミラーリングを実現するミラーリング手段をそなえたことを特徴とする、請求の範囲第１３項に記載のストレージシステム。
【請求項１７】
該仮想ストレージ管理手段（２１−５）が、
該仮想ストレージ領域を一定サイズの領域に分割したときの連続する分割領域を異なる複数のストレージ装置（３）の記憶領域に割り当てるよう該仮想ストレージアドレスと当該複数のストレージ装置（３）の記憶領域についての実アドレスとを対応付けて管理することによりストライピングを実現するストライピング手段をそなえたことを特徴とする、請求の範囲第１３項に記載のストレージシステム。
【請求項１８】
該仮想ストレージ管理手段（２１−５）が、
該内部ネットワークに対する該ストレージ装置（３）の増減設に応じて該仮想ストレージ領域についての仮想ストレージアドレスと追加又は削減分の該ストレージ装置（３）の記憶領域についての実アドレスとの対応付けを変更する仮想ストレージアドレス変更手段をそなえたことを特徴とする、請求の範囲第１３項，第１５項又は第１６項に記載のストレージシステム。
【請求項１９】
該制御装置（２）の該キャッシュ領域管理手段（２１−４）が、
該キャッシュ装置（４）と該ストレージ装置（３）との間で直接データの転送を行なわせるためのデータ転送指示を該キャッシュ装置（４）又は該ストレージ装置（３）に発行するキャッシュデータ転送指示発行手段をそなえたことを特徴とする、請求の範囲第１４項に記載のストレージシステム。
【発明の詳細な説明】
技術分野
本発明は、ストレージシステム及び同システムにおけるデータ転送方法に関し、特に、パーソナルコンピュータ（ＰＣ：Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）やワークステーション（ＷＳ：Ｗｏｒｋ  Ｓｔａｔｉｏｎ）等のノード装置からディスク装置等の外部入出力装置へのアクセス技術に関する。
背景技術
図２６に既存のストレージシステムの一例を示す。この図２６に示すように、本システムは、ＰＣ等のノード装置１００（以下、単に、「ノード１００」という）と、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）バス３００を介してこのノード１００に接続された入出力（Ｉ／Ｏ）装置２００とをそなえており、ノード１００には、ＣＰＵ１０１，主記憶部（メインメモリ）１０２，ＳＣＳＩカード１０３等が装備されており、これらが内部バス１０４を介して相互に通信可能に接続されている。また、Ｉ／Ｏ装置２００には、ディスクコントローラ２０１，バッファ２０２及びディスク装置２０３が装備されている。
なお、ＳＣＳＩバス３００には、複数のＩ／Ｏ装置２００が接続される場合もある。また、ノード１００（メインメモリ１０２）とＩ／Ｏ装置２００との接続には、ファイバチャネル（ＦＣ：Ｆｉｂｅｒ  Ｃｈａｎｎｅｌ）等の他のインタフェースが用いられる場合もある。
そして、このようなシステムにおいて、ノード１００（メインメモリ１０２）とＩ／Ｏ装置２００（ディスク装置２０３）との間でデータ転送を行なう場合は、ノード１００側からＳＣＳＩのプロトコルを使用してＩ／Ｏ装置２００のディスクコントローラ２０１を起動する必要がある。例えば、ファイルシステム１０５がディスク装置２０３へデータの書き込みを行なう場合、従来は、以下のような手順が実行されるようなっている。
即ち、まず、図２６及び図２７に示すように、ノード１００側のファイルシステム１０５が、ＳＣＳＩドライバ１０６にディスク書き込み要求を依頼する（ステップＡ１）。なお、上記のファイルシステム１０５及びＳＣＳＩドライバ１０６は、いずれも、通常はＯＳ（オペレーティングシステム）等の一機能として組み込まれるもので、ＣＰＵ１０１がメインメモリ１０２に格納されているファイルシステムデータ及びドライバデータを読み込んで動作することによってそれぞれの機能が実現される。
さて、上記のディスク書き込み要求を受けたＳＣＳＩドライバ１０６は、対象のＩ／Ｏ装置２００のディスクコントローラ２０１と、ＳＣＳＩバス３００上でのデータ転送レート決定等のためのネゴシエーションを数回実行することによりコネクションを設定した後（ステップＡ２）、実際にデータの転送を開始して当該データの書き込みをディスクコントローラ２０１に依頼する（ステップＡ３）。なお、ＳＣＳＩドライバ１０６は、Ｉ／Ｏ装置２００内でのディスク装置２０３へのデータ書き込み処理に時間がかかる場合、ディスクコントローラ２０１とのコネクションを一旦解除する。
Ｉ／Ｏ装置２００では、ディスクコントローラ２０１が、ＳＣＳＩバス３００を通じてノード１００から受け取ったデータを一旦バッファ２０２に格納した後（ステップＡ４）、ディスク装置２０３へ書き込む（ステップＡ５）。このＩ／Ｏ装置２００での内部処理（データ書き込み）が終了すると（ステップＡ６，Ａ７）、ディスクコントローラ２０１は、ＳＣＳＩドライバ１０６に対して割り込みを上げて転送（書き込み）が完了したことを報告し（ステップＡ８）、ＳＣＳＩドライバ１０６は、ファイルシステム１０５に転送完了を通知する（ステップＡ９）。
しかしながら、このような従来のシステムでは、ノード１００からＳＣＳＩやＦＣ等のプロトコルを使用してＩ／Ｏ装置２００側のディスクコントローラ２０１を起動する必要があり、また、実際にデータの転送が起きるまでの動作も繁雑（ノード１００とディスクコントローラ２０１との間で数回ネゴシエーションする必要がある）なため、レイテンシが大きいという課題がある。
また、ノード１００とＩ／Ｏ装置２００との間の転送帯域（転送レート）に関しては、ＳＣＳＩ，ＦＣ共に改善されてきた（〜１６０ＭＢ／ｓ）が、インフィニバンド（ＩＢ）が内部ネットワークとして導入されると、ノード１００側の内部バス１０４の転送速度を数ギガビット／秒（ＧＢ／ｓ）程度まで引き上げることが可能となる。しかし、現在のＳＣＳＩやＦＣ等の既存のインタフェース規格では、上述のごとくレイテンシが大きいため、十分にその性能を活かすことができない。
本発明は、このような課題に鑑み創案されたもので、データ転送動作の分散化を図ってレイテンシを削減するとともに、ＩＢネットワークを導入した場合のその性能を十分に活かせるデータ転送帯域（レート）を確保することのできる、ストレージシステム及び同システムにおけるデータ転送方法を提供することを目的とする。
発明の開示
上記の目的を達成するために、本発明のストレージシステムは、データを記憶するストレージ装置と、このストレージ装置に記憶されているデータをキャッシュしうるキャッシュ装置と、少なくとも、上記のストレージ装置及びキャッシュ装置に対するアクセスを制御する制御装置と、上記のストレージ装置，キャッシュ装置及び制御装置を相互に通信可能に接続する内部ネットワークとをそなえるとともに、上記の制御装置が、上記内部ネットワークにアクセス可能に接続されたクライアント装置から内部ネットワークを介して送られてくるアクセス要求を受けると、上記のキャッシュ装置又はストレージ装置にデータ転送指示を発行する転送指示発行手段をそなえ、且つ、少なくとも、上記のデータ転送指示を受信するストレージ装置又はキャッシュ装置が、上記の制御装置からのデータ転送指示に従って上記クライアント装置とデータ転送に必要な会話を直接行なって、そのクライアント装置との間で、直接、データ転送を実行する直接転送手段をそなえたことを特徴としている。
上述のごとく構成されたストレージシステムでは、上記のクライアント装置が、上記の内部ネットワークを介して制御装置にアクセス要求を発行し（アクセス要求発行ステップ）、このアクセス要求を制御装置が受けると、当該制御装置が上記のキャッシュ装置又はストレージ装置にデータ転送指示を発行する（転送指示発行ステップ）。
そして、上記のキャッシュ装置又はストレージ装置は、上記の制御装置からのデータ転送指示に従ってクライアント装置とデータ転送に必要な会話を直接行なって、そのクライアント装置との間で、直接、データ転送を実行する（直接転送ステップ）。これにより、ストレージシステムのレイテンシの削減を図ることができるとともに、データスループットを大幅に向上することが可能となる。
ここで、上記の制御装置は、上述したクライアント装置とキャッシュ装置又はストレージ装置との間の会話のためのメッセージを生成して上記データ転送指示とともにキャッシュ装置に送信し、キャッシュ装置又はストレージ装置は、この制御装置で生成されたメッセージを用いて上述したクライアント装置との間のデータ転送を実行することができる。このようにすれば、メッセージ生成とデータ転送指示の発行とを制御装置において集中管理できるので、データ転送制御が単純化される。
勿論、制御装置は、クライアント装置とキャッシュ装置又はストレージ装置との間の会話のためのメッセージを生成するのに必要なメッセージ情報を上記データ転送指示とともにキャッシュ装置又はストレージ装置に送信し、キャッシュ装置又はストレージ装置において、そのメッセージ情報に基づいて上記のメッセージを生成するようにしてもよい。このようにすれば、上記データ転送に伴う制御装置の処理負荷を軽減することができる。
なお、上記のデータ転送が完了すると、キャッシュ装置又はストレージ装置から上記内部ネットワークを介して制御装置へ確認メッセージを発行し、制御装置は、このキャッシュ装置又はストレージ装置から確認メッセージを受けることにより内部ネットワークを介してクライアント装置に対してデータ転送完了を表す応答メッセージを発行するようにしてもよい。このように、制御装置においてクライアント装置へ発行すべき応答メッセージを生成するようにすれば、制御装置又はキャッシュ装置もしくはストレージ装置においてクライアント装置との会話に必要な全てのメッセージを集中的に生成・発行する場合に比して、各装置の処理負荷を軽減することができる。
また、キャッシュ装置が２台以上存在する場合、制御装置は、クライアント装置と上記の各キャッシュ装置との間の会話に必要なメッセージを生成して上記データ転送指示とともに各キャッシュ装置にそれぞれ送信し、各キャッシュ装置は、それぞれ、この制御装置で生成されたメッセージを用いてクライアント装置との間のデータ転送を実行した後、各キャッシュ装置のいずれかがデータ転送の完了を示す応答メッセージを、内部ネットワークを介してクライアント装置へ送信するようにしてもよい。このようにすれば、全てのキャッシュ装置が応答メッセージをクライアント装置へ送信する必要がないので、内部ネットワーク経由でやりとりされるメッセージ数を大幅に削減することができる。
ただし、勿論、各キャッシュ装置がそれぞれデータ転送の完了を示す応答メッセージを、内部ネットワークを介してクライアント装置へ送信して、クライアント装置側でこれらの各キャッシュ装置からの応答メッセージをそれぞれ受信することにより、データ転送を完了とすることもできる。
また、キャッシュ装置が２台以上存在する場合、制御装置は、クライアント装置と各キャッシュ装置のいずれかとの間の会話に必要なメッセージを生成して上記データ転送指示とともにそのキャッシュ装置に送信するとともに、データコピー先キャッシュ装置情報を当該キャッシュ装置に送信し、そのキャッシュ装置は、制御装置から受信したメッセージを用いてクライアント装置との間のデータ転送を実行し、その後、当該データ転送によりデータを受信したキャッシュ装置が、制御装置から受信した上記のデータコピー先キャッシュ装置情報により特定される他のキャッシュ装置に、受信したデータをコピーするようにしてもよい。
このようにすれば、本システムにおいていわゆるミラーリングを実現することができるので、本システムの信頼性を向上することができる。
さらに、制御装置は、同じデータをキャッシュしているキャッシュ装置のいずれかにそのデータをストレージ装置へ転送するよう指示し、この指示を受けたキャッシュ装置は、当該データを内部ネットワーク経由でストレージ装置へ転送して、他のキャッシュ装置とで冗長に保持していたそのデータを削除して自己のメモリ領域を解放するようにしてもよい。このようにすれば、キャッシュ装置の記憶容量を有効活用することができるので、キャッシュ装置に必要とされる記憶容量を抑えることができる。
また、本発明のストレージシステムは、データを記憶する複数のストレージ装置と、このストレージ装置に対するアクセスを制御する制御装置と、これらのストレージ装置及び制御装置を相互に通信可能に接続する内部ネットワークとをそなえるとともに、上記の制御装置及びストレージ装置が、それぞれ、以下の手段をそなえたことを特徴としている。
・制御装置
（１）複数のストレージ装置の記憶領域を仮想ストレージアドレスにて一括管理することで該複数のストレージ装置の記憶領域を特定サイズの仮想ストレージ領域として管理する仮想ストレージ管理手段
（２）内部ネットワークにアクセス可能に接続されたクライアント装置から内部ネットワークを介して或る仮想ストレージアドレスを用いた仮想ストレージ領域に対するアクセス要求を受けると、その仮想ストレージアドレスに基づいて仮想ストレージ管理手段にて特定される記憶領域をもつストレージ装置にデータ転送指示を発行する転送指示発行手段
・ストレージ装置
（１）制御装置からの該データ転送指示に従って該クライアント装置とデータ転送に必要な会話を直接行なって、クライアント装置との間で、直接、データ転送を実行する直接転送手段
したがって、本ストレージシステムによれば、ストレージ装置とクライアント７との間で制御装置２を経由しないデータの直接転送が行なえることにより、この場合も、レイテンシの大幅削減と、データスループットの大幅向上（内部ネットワークの性能を十分に活かせる帯域の確保）とを図ることができることに加えて、従来の仮想ストレージシステムと比較して見劣りしない機能を提供することが可能となる。
発明を実施するための最良の形態
図１は本発明の一実施形態としてのストレージシステムの構成を示すブロック図で、この図１に示すストレージシステム１は、制御装置（Ｃｏｎｔｒｏｌ  Ｍａｃｈｉｎｅ）２，ストレージ装置３，キャッシュ装置４をそなえており、これらの各装置２，３，４が内部ネットワークとしてのＩｎｆｉｎｉｂａｎｄ（ＩＢ）ネットワーク（ＩＢスイッチ）５を介して相互に通信可能に接続されている（このような構成をＷＳＳ（Ｗｉｒｅ  Ｓｐｅｅｄ  Ｓｔｏｒａｇｅ）アーキテクチャという）。
なお、各装置２，３，４は、必要に応じて複数台設けられる。また、制御装置２，キャッシュ装置４は、例えば、ＩＢネットワーク５用のネットワークカードとして構成される。さらに、ＩＢスイッチ５には、１台以上のクライアント装置（ノード）７で構築されたＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）６等が接続されており、このＬＡＮ６経由でクライアント装置７（以下、単に「クライアント７」と表記する）は本システム１にアクセスすることが可能になっている。
そして、上記のストレージ装置３は、図１及び図４に示すように、例えば、ファイルデータ等の所要のデータを記憶するディスク装置（あるいは、テープ装置でもよい）３１と、このディスク装置３１に対するアクセスを制御するインタフェースカード（ネットワークカード）３２とをそなえており、このインタフェースカード３２は、さらに、ＩＢネットワークコントローラとしての機能を有するターゲットチャンネルアダプタ（ＴＣＡ：Ｔａｒｇｅｔ  Ｃｈａｎｎｅｌ  Ａｄａｐｔｅｒ）３３，プロトコル変換部（Ｐｒｏｔｏｃｏｌ  Ｔｒａｎｓｉｔｉｏｎ  Ｕｎｉｔ）３４及びディスクコントローラとしての機能を有するＳＣＳＩインタフェース３５を装備している。なお、このインタフェースカード３２は、実装されるディスク装置３１の数に応じて必要なだけ用意される。
ここで、上記のプロトコル変換部３４は、ＩＢネットワーク５経由で制御装置２から送られてきたメッセージを解釈し、そのメッセージ内容に応じてアクセスすべきディスク装置３１が接続されているＳＣＳＩインタフェース３５を通じて該当ディスク装置３１にアクセスしたり、そのアクセス結果をクライアント７側にＲＤＭＡ（Ｒｅｍｏｔｅ  Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）し応答メッセージ（Ｒｅｐｌｙ  Ｍｅｓｓａｇｅ）を返したりすることによって、ＩＢネットワーク５経由でダイレクトにクライアント７との間で必要なデータ転送を行なえるものである。
つまり、このプロトコル変換部３４は、制御装置２からの転送指示に従ってクライアント７とデータ転送に必要な会話を直接行なって、そのクライアント７との間で、直接、データ転送を実行する直接転送手段としての機能を果たすのである。
次に、上記のキャッシュ装置４は、制御装置２からの指示に従ってクライアント７との間でダイレクトにデータ転送を行なうことができるもので、本実施形態では、図１及び図３に示すように、例えば、内部ネットワークコントローラとしての機能を有するターゲットチャンネルアダプタ（ＴＣＡ：Ｔａｒｇｅｔ  Ｃｈａｎｎｅｌ  Ａｄａｐｔｅｒ）４１，メモリ管理部４２，プロトコルハンドラ（Ｐｒｏｔｏｃｏｌ  Ｈａｎｄｌｅｒ）４３及び大容量（例えば、１０ギガバイト程度）のＲＡＭ等のメモリデバイス４４（以下、単に「メモリ４４」と表記する）をそなえて構成されている。
ここで、上記のメモリ管理部４２は、キャッシュ装置４内のメモリ４４のどの領域（メモリ領域）を、ディスク装置３１のデータをキャッシュしうるキャッシュ領域として、どの制御装置２に割り当てたのかを管理するものであり、プロトコルハンドラ（プロトコル処理部）４３は、制御装置２から送られてきたメッセージを解釈し、そのメッセージ内容に応じてメモリ４４にアクセスして、クライアント７側にＲＤＭＡしたり応答メッセージを返したりすることによって、クライアント７との間でダイレクトに必要なデータの転送を行なえるものである。
つまり、キャッシュ装置４では、このプロトコルハンドラ４３が、制御装置２からの転送指示に従ってクライアント７とデータ転送に必要な会話を直接行なって、そのクライアント７との間で、直接、データ転送を実行する直接転送手段としての機能を果たすのである。
そして、上記の制御装置２は、上記のキャッシュ装置４及びストレージ装置３に対するアクセスを集中的に管理（制御）するためのもので、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２１，メモリ２２，チップセット２３，ホストチャンネルアダプタ（ＨＣＡ：Ｈｏｓｔ  Ｃｈａｎｎｅｌ  Ａｄａｐｔｅｒ）２４等を有するワークステーションに、システム管理プロセス（プログラム）をソフトウェアやファームウェア等として実装することによって実現される。
この「システム管理プロセス」は、ファイルデータの実体が本システム１内部（ストレージ装置３又はキャッシュ装置４）のどこに保存されているのかというデータの保存場所（記憶位置）を管理するもので、クライアント装置（以下、単に「クライアント」という）７からのリクエストの受け付けも行なうようになっている。
具体的に、本制御装置２は、例えばメモリ２２に記憶された上記の「システム管理プロセス」をＣＰＵ２１が読み取って動作することにより、例えば図２に示すように、ＤＡＦＳプロトコルハンドラ（Ｄｉｒｅｃｔ  Ａｃｃｅｓｓ  Ｆｉｌｅ  Ｓｙｓｔｅｍ  Ｐｒｏｔｏｃｏｌ  Ｈａｎｄｌｅｒ）２１−１，内部プロトコルハンドラ（Ｉｎｔｅｒｎａｌ  Ｐｒｏｔｏｃｏｌ  Ｈａｎｄｌｅｒ）２１−２，実ストレージ領域管理部（Ｒｅａｌ  Ｓｔｏｒａｇｅ  Ｍａｎａｇｅｒ）２１−３，キャッシュ領域管理部（Ｃａｃｈｅ  Ｍａｃｈｉｎｅ  Ｍｅｍｏｒｙ  Ｍａｎａｇｅｒ）２１−４，仮想ストレージ管理部（Ｖｉｒｔｕａｌ  Ｓｔｏｒａｇｅ  Ｍａｎａｇｅｒ）２１−５，メッセージ送受信部（Ｍｅｓｓａｇｅ  Ｔｒａｎｓｉｔｉｏｎ  Ｕｎｉｔ）２１−６等としての機能が発揮されるようになっている。
ここで、ＤＡＦＳプロトコルハンドラ２１−１は、ＤＡＦＳプロトコル処理を行なうもので、クライアント７から送られてくるＤＡＦＳ処理要求を受け付け、該当するデータを管理しているキャッシュ装置４又はストレージ装置３に転送命令（データ転送指示）を発行する機能を有している。
つまり、このＤＡＦＳプロトコルハンドラ２１−１は、ＩＢネットワーク５にアクセス可能に接続されたクライアント７からＩＢネットワーク５を介して送られてくるアクセス要求を受けると、キャッシュ装置４又はストレージ装置３にデータ転送指示を発行する転送指示発行手段としての機能を果たすのである。
また、内部プロトコルハンドラ（内部プロトコル処理部）２１−２は、システム１内で通信を継続するために必要なフローコントロール等の制御を行なうためのものであり、実ストレージ領域管理部２１−３は、システム１内部に存在するストレージ装置３（ディスク装置３１）のネットワークアドレスや容量などの情報を管理するものであり、キャッシュ領域管理部２１−４は、キャッシュ装置４（メモリ４４）の記憶領域を管理するもので、キャッシュ装置４（メモリ４４）のネットワークアドレスや容量などの情報を有しており、仮想ストレージ管理部２１−５からの要求に応じて記憶領域の割り当てを行なうようになっている。換言すれば、キャッシュ領域管理部２１−４は、キャッシュ装置４の記憶領域を仮想ストレージアドレスにて一括管理する。
さらに、仮想ストレージ管理部２１−５は、複数のストレージ装置３（ディスク装置３１）の記憶領域を仮想ストレージアドレスにて一括管理することで複数のストレージ装置３の記憶領域を特定サイズの仮想ストレージ領域として管理し、クライアント７から要求（仮想ストレージアドレスを用いて要求）されたデータがシステム１内部のどこに保存されているかを管理するもので、本実施形態では、例えば下記の表１及び表２に示すような管理テーブル（テーブル形式のデータ）を保持することにより、かかる管理を実現している。
2003075147.tif 000003
2003075147.tif 000004
これらの表１及び表２に示す管理テーブルは、制御装置２がクライアント７側にみせているストレージイメージと、そのストレージイメージに対して実際にどのストレージ装置３又はキャッシュ装置４にデータの実体が保存されているのかとを対応付けて管理するもので、例えば表１に示す管理テーブルは、仮想ストレージと実ストレージ（ディスク装置３１の記憶領域（セクタ））とのマップを表し、どの仮想ストレージのセクタがどのディスク装置３１のセクタに対応するのかを表している。
なお、仮想ストレージＩＤ＝００は、３つのディスク装置３１（実ストレージＩＤ＝００，０１，０２）のセクタ群（０−９９９）をそれぞれ仮想セクタ群として順番に有する単一の仮想ストレージとして管理している（換言すれば、クライアント７側からは上記の３つのディスク装置３１が１つの仮想ディスクとしてみえる）ことを意味している。また、仮想ストレージＩＤ＝０１は、いわゆる「ミラーリング」の場合を表しており、仮想ストレージＩＤ＝０２は、いわゆる「ストライピング」の場合を表している。
これに対し、表２は、表１に示す管理テーブルにより管理されているデータのうち、キャッシュ装置４にキャッシュされているデータを管理するための管理テーブルであり、例えば、表２の第１行目は、ＩＢアドレス＝＃０により特定されるキャッシュ装置４内のメモリ４４のメモリアドレス＝１０に、仮想ストレージＩＤ＝００で特定される仮想ストレージ（３つのディスク装置３１により構成されている）のうちの仮想セクタ＝０（実ストレージＩＤ＝００のセクタ＝０）に記憶されているデータがキャッシュされていることを意味する。
なお、これらの管理テーブルのより詳細な具体例については図１５及び図１６を用いて後述する。
そして、上述したＤＡＦＳプロトコルハンドラ２１−１は、本仮想ストレージ管理部２１−５と協同して上記の表１及び表２に示す管理テーブルに基づき必要なデータがどこに存在するのかを検索・特定した後、該当するコンポーネント（キャッシュ装置４又はストレージ装置３）にデータ転送指示（以下、単に「転送指示」という）を発行するようになっている。
即ち、ＤＡＦＳプロトコルハンドラ２１−１は、まず、上記の表２を参照してキャッシュしているデータを探し、キャッシュデータが存在すれば、当該キャッシュデータを保持しているキャッシュ装置４に転送指示を発行し、そうでない場合は、ストレージ装置３に転送指示を発行することになるのである。
また、メッセージ送受信部２１−６は、上記転送指示やＲＤＭＡ（Ｒｅｍｏｔｅ  Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）などのメッセージを生成してＩＢネットワーク５へ送出する一方、ＩＢネットワーク５から転送される上記ＤＡＦＳ処理要求やストレージ装置３やキャッシュ装置４からの確認（Ａｃｋｎｏｗｌｅｄｇｍｅｎｔ）などのメッセージを受信するものである。
以下、上述のごとく構成された本実施形態のストレージシステム１の動作について説明する。
（１）転送すべきデータがキャッシュ装置４に存在する場合
図５に示すように、或るクライアント７から制御装置２に対してＩＢネットワーク経由５でＤＡＦＳ処理要求（ファイルＡに対するアクセス要求：Ｒｅｑｕｅｓｔ  Ｆｉｌｅ  Ａ）が発行されたとする（ステップＳ１；アクセス要求発行ステップ）。制御装置２では、このアクセス要求がメッセージ送受信部２１−６にて受信されると、ＤＡＦＳプロトコルハンドラ２１−１が、受信メッセージを解析して、その内容（ファイルＡについてのアクセス要求）を認識する。
ついで、ＤＡＦＳプロトコルハンドラ２１−１は、仮想ストレージ管理部２１−４と協同して、表２に示す管理テーブルを検索して要求のあったファイルＡがキャッシュ装置４にキャッシュされているか否かを確認する。ここで、ファイルＡがキャッシュ装置４にキャッシュされているとすると、ＤＡＦＳプロトコルハンドラ２１−１は、ファイルＡをアクセス要求元のクライアント７（ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレス等によって特定される）に転送してもらうための転送指示をキャッシュ装置４に対して発行する（ステップＳ２；転送指示発行ステップ）。
この際、ＤＡＦＳプロトコルハンドラ２１−１は、キャッシュ装置４がクライアント７と直接会話を行なってデータ転送を行なうのに必要なメッセージ（応答メッセージ５１やＲＤＭＡメッセージ５２）も生成して、当該メッセージを上記転送指示とともにキャッシュ装置４へ送信する。なお、ＲＤＭＡメッセージ５２には、少なくとも、キャッシュ装置４側のファイルＡの格納位置（メモリアドレス）とファイルＡのサイズ情報（セクタ範囲）とが格納される。
キャッシュ装置４は、制御装置２から上記の転送指示を受けると、プロトコルハンドラ４３が、その内容を解析し、その結果、ファイルＡのクライアント７への転送指示であることを認識する。すると、プロトコルハンドラ４３は、メモリ領域管理部４２と協同して、上記のＲＤＭＡメッセージ５２により指定された格納位置から指定サイズ情報分のデータをメモリ４４から読み出すことによって目的のファイルＡを読み出す。
ついで、プロトコルハンドラ４３は、読み出したファイルＡをＲＤＭＡメッセージによりＩＢネットワーク５経由でクライアント７にダイレクトに転送し（ステップＳ３：直接転送ステップ）、制御装置２から受信した上記応答メッセージ５２をクライアント７に送出して（ステップＳ４）、ファイルＡの転送を完了する。
（２）転送すべきデータがストレージ装置３に存在する場合
図６に示すように、或るクライアント７から制御装置２に対してＩＢネットワーク経由５でＤＡＦＳ処理要求（ファイルＢに対するアクセス要求：Ｒｅｑｕｅｓｔ  Ｆｉｌｅ  Ｂ）が発行されたとする（ステップＳ１１）。制御装置２では、この転送指示がメッセージ送受信部２１−６にて受信されると、ＤＡＦＳプロトコルハンドラ２１−１が、受信メッセージを解析して、その内容（ファイルＢについてのアクセス要求）を認識する。
ついで、ＤＡＦＳプロトコルハンドラ２１−１は、仮想ストレージ管理部２１−４と協同して、表２に示す管理テーブルを検索して、要求のあったファイルＡがキャッシュ装置４にキャッシュされているか否かを確認する。ここで、ファイルＢがキャッシュ装置４にキャッシュされていないとすると、ＤＡＦＳプロトコルハンドラ２１−１は、さらに、仮想ストレージ管理部２１−４と協同して、表１に示す管理テーブルを検索して、要求のあったファイルＢを保存しているストレージ装置３（ディスク装置３１）を特定する。
そして、ＤＡＦＳプロトコルハンドラ２１−１は、特定したストレージ装置３からファイルＢをアクセス要求元のクライアント７（ＩＰ  （Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレス等によって特定される）に直接転送してもらうための転送指示をキャッシュ装置４に対して発行する（ステップＳ１２）。
この際、ＤＡＦＳプロトコルハンドラ２１−１は、ストレージ装置３がクライアント７と直接会話を行なってデータ転送を行なうのに必要なメッセージ（応答メッセージ５１やＲＤＭＡメッセージ５２，ファイルＢのディスク装置３１での格納位置を示すストレージアクセス情報（メッセージ）５３）も生成して、当該メッセージを転送指示とともにストレージ装置３へ送信する。なお、ストレージアクセス情報５３には、ファイルＢのディスク装置３１における先頭セクタ位置，サイズなどの情報が格納される。
ストレージ装置３は、制御装置２から上記の転送指示を受けると、プロトコル変換部３４が、その転送指示を解釈し、その指示内容に応じてＳＣＳＩインタフェース３５が、上記ストレージアクセス情報５３に基づいて該当ディスク装置３１にアクセスして、上記の先頭セクタ位置，サイズなどの情報により特定されるファイルＢをディスク装置３１から読み出す（ステップＳ１３）。
そして、ＳＣＳＩインタフェース３５は、そのアクセス結果（ファイルＢ）を、プロトコル変換部３４，ＴＣＡ３３を通じてクライアント７側にＲＤＭＡメッセージによりＩＢネットワーク５経由で直接転送し（ステップＳ１４）、応答メッセージを同じくＩＢネットワーク５経由でクライアント７に返す（ステップＳ１５）。
以上のように、本実施形態のストレージシステム１によれば、システム内部に大容量のメモリ４４を有するキャッシュ装置４を実装し、クライアント７からのリクエスト（アクセス要求）は制御装置２で受け付けるが、実際の転送処理及びクライアント７への応答処理は実際にデータを保持しているキャッシュ装置４（又はストレージ装置３）が制御装置２を経由せずに直接行なうので、レイテンシの大幅削減と、データスループットの大幅向上（ＩＢネットワーク５の性能を十分に活かせる帯域の確保）とを図ることができる。
また、上述した例では、制御装置２が上記の転送指示，応答メッセージ５１，ＲＤＭＡメッセージ５２を集中的に生成・発行するので、本システム１内でのデータ転送制御が単純化され、保守面でも有利である。
（３）変形例１
図５により上述した例では、応答メッセージ５１及びＲＤＭＡメッセージ５２を制御装置２側で作成してキャッシュ装置４へ渡していたが、それぞれをキャッシュ装置４側で作成するようにしてもよい。
即ち、図７に示すように、制御装置２（ＤＡＦＳプロトコルハンドラ２１−１）は、アクセス要求のあったファイルＡの位置情報（キャッシュ装置４側のメモリアドレス）をキャッシュ装置４への転送指示に添付してそのままキャッシュ装置４に送付し（ステップＳ２′）、キャッシュ装置４は、このように制御装置２側から送られてきた情報から、クライアント７側との会話に必要なメッセージ（ＲＤＭＡメッセージ及び応答メッセージ等）をプロトコルハンドラ４３により独自に生成し、要求のあったファイルＡのクライアント７への転送処理を行なうのである（ステップＳ３′，Ｓ４′）。
（４）変形例２
同様に、図６により上述した例においても、応答メッセージ５１及びＲＤＭＡメッセージ５２は、制御装置２側ではなく、ストレージ装置３側で作成するようにしてもよい。
即ち、図８に示すように、制御装置２（ＤＡＦＳプロトコルハンドラ２１−１）は、アクセス要求のあったファイルＢについてのストレージアクセス情報５３をストレージ装置３への転送指示に添付してそのままストレージ装置３に送付し（ステップＳ１２′）、ストレージ装置３は、このように制御装置２側から送られてきた情報５３を基にディスク装置３１からファイルＢを読み出し（ステップＳ１３）、クライアント７側との会話に必要なメッセージ（ＲＤＭＡメッセージ及び応答メッセージ等）をプロトコル変換部３４により独自に生成して、要求のあったファイルＢのクライアント７への転送処理を行なうのである（ステップＳ１４′，Ｓ１５′）。
以上の変形例１及び変形例２のようにすることで、制御装置２の処理負荷をキャッシュ装置４又はストレージ装置３に分散することができるので、例えば、制御装置２に要求される性能を抑制して制御装置の小型化，低コスト化を図って、安価にシステム１を構築できることが期待される。
（５）変形例３
また、図５により前述した例において、制御装置２は、キャッシュ装置４に対して、ＲＤＭＡメッセージ５２を伴うファイルＡについての転送指示のみを送付してキャッシュ装置４にクライアント７に対するＲＤＭＡを行なわせ、それ以外の処理（応答メッセージ５１の生成・送付）は制御装置２が行なうようにすることもできる。
即ち、図９に示すように、制御装置２（ＤＡＦＳプロトコルハンドラ２１−１）は、クライアント７からファイルＡについてのアクセス要求を受けると（ステップＳ１）、ＤＡＦＳプロトコルハンドラ２１−１が、キャッシュ装置４がクライアント７と直接会話を行なってデータ転送を行なうのに必要なメッセージとしてＲＤＭＡメッセージ５２を生成して、ファイルＡの転送指示とともにキャッシュ装置４に対して送信する（ステップＳ２１）。なお、この場合も、ＲＤＭＡメッセージ５２には、少なくとも、キャッシュ装置４側のファイルＡの格納位置（メモリアドレス）とファイルＡのサイズ情報（セクタ範囲）とが格納される。
そして、キャッシュ装置４は、制御装置２から上記の転送指示を受けると、プロトコルハンドラ４３が、その内容を解析し、メモリ領域管理部４２と協同して、上記のＲＤＭＡメッセージ５２により指定された格納位置から目的のファイルＡを読み出し、ＲＤＭＡメッセージによりＩＢネットワーク５経由でクライアント７にダイレクトに転送する（ステップＳ２２）。
転送が終わると、プロトコルハンドラ４３は、制御装置２宛の確認メッセージ（Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ  Ｍｅｓｓａｇｅ）を生成して、ＩＢネットワーク５経由で制御装置２に送付する（ステップＳ２３）。この確認メッセージを受信した制御装置２では、ＤＡＦＳプロトコルハンドラ２１−１が、クライアント７宛の応答メッセージ５１を生成して、ＩＢネットワーク５経由でクライアント７へ送信する（ステップＳ２４）。
（６）変形例４
同様に、図６により前述した例においても、制御装置２は、ストレージ装置３に対して、ＲＤＭＡメッセージ５２とストレージアクセス情報５３とを伴うファイルＢについての転送指示のみを送付してストレージ装置３にクライアント７に対するＲＤＭＡを行なわせ、それ以外の処理（応答メッセージ５１の生成・送付）は制御装置２が行なうことも可能である。
即ち、図１０に示すように、クライアント７から制御装置２に対してファイルＢについてのアクセス要求があると（ステップＳ１１）、制御装置２では、ＤＡＦＳプロトコルハンドラ２１−１が、受信メッセージを解析し、仮想ストレージ管理部２１−４と協同して、要求のあったファイルＢを保存しているストレージ装置３（ディスク装置３１）を特定する。
そして、ＤＡＦＳプロトコルハンドラ２１−１は、特定したストレージ装置３に対して、ＲＤＭＡメッセージ５２とストレージアクセス情報５３とをファイルＢの転送指示に添付してストレージ装置３へ送信する（ステップＳ２１′）。なお、この場合も、ストレージアクセス情報５３には、ファイルＢのディスク装置３１における先頭セクタ位置，サイズなどの情報が格納される。
ストレージ装置３は、制御装置２から上記の転送指示を受けると、プロトコル変換部３４が、その転送指示を解釈し、そのメッセージ内容に応じてＳＣＳＩインタフェース３５が、上記ストレージアクセス情報５３に基づいて該当ディスク装置３１にアクセスして、上記の先頭セクタ位置，サイズなどの情報により特定されるファイルＢをディスク装置３１から読み出す（ステップＳ２２′）。
そして、ＳＣＳＩインタフェース３５は、そのアクセス結果（ファイルＢ）を、プロトコル変換部３４，ＴＣＡ３３を通じてクライアント７側にＲＤＭＡメッセージによりＩＢネットワーク５経由で直接転送する（ステップＳ２３′）。この転送が終わると、プロトコル変換部３４は、その旨を確認メッセージによりＩＢネットワーク５経由で制御装置２に通知し（ステップＳ２４′）、この通知（確認メッセージ）を受けることにより、制御装置２は、ＤＡＦＳプロトコルハンドラ２１−１によってクライアント７宛の応答メッセージ５１を生成して、ＩＢネットワーク５経由でクライアント７に送信する（ステップＳ２５′）。
以上の変形例３及び変形例４のように、クライアント７との会話に必要なメッセージの生成を部分的にキャッシュ装置４又はストレージ装置３に分担させることでも、図５及び図６の場合に比して、制御装置２の処理負荷をキャッシュ装置４又はストレージ装置３に分散することが可能である。
（７）変形例５
次に、ここでは、本システム１において、データの信頼性向上を目的として、複数のキャッシュ装置４が同じデータを冗長に保持する（いわゆる、「ミラーリング」）を行なう場合の転送処理について説明する。
図１１に示すように、例えば、クライアント７から制御装置２に対してＩＢネットワーク５経由でファイルＡについてのアクセス要求（書き込み要求）があったとする（ステップＳ３１）。
制御装置２では、上記のアクセス要求を受信すると、ＤＡＦＳプロトコルハンドラ２１−１が、受信メッセージを解析し、仮想ストレージ管理部２１−４と協同して、要求のあったファイルＡを保存すべきキャッシュ装置４Ａ及び４Ｂを特定（選択）する。そして、ＤＡＦＳプロトコルハンドラ２１−１は、キャッシュ装置４Ａ及び４Ｂのそれぞれについて、クライアント７との通信に必要なメッセージ（応答メッセージ５１やＲＤＭＡメッセージ５２）を生成し、それぞれを転送指示に添付してキャッシュ装置４Ａ及び４Ｂに送付する（ステップＳ３２）。なお、この場合、各ＲＤＭＡメッセージ５２には、ファイルＡを保持すべきキャッシュ装置４Ａ及び４Ｂ側のメモリアドレス，サイズ情報などが必要である。
キャッシュ装置４Ａ及び４Ｂでは、それぞれ、上述のごとく制御装置２から送られてくる転送指示を受信すると、プロトコルハンドラ４３が、その内容を解析し、メモリ領域管理部４２と協同して、制御装置２から受信したＲＤＭＡメッセージ５２を用いてＩＢネットワーク５経由でファイルＡをクライアント７からダイレクトに受信してそれぞれのメモリ４４に書き込む（ステップＳ３３）。
その後、クライアント７から各キャッシュ装置４Ａ及び４Ｂに対するＲＤＭＡが終了すると、各キャッシュ装置４Ａ及び４Ｂのプロトコルハンドラ４３は、制御装置２から受信した応答メッセージ５１によりクライアント７に応答を返し（ステップＳ３４）、クライアント７側では、全てのキャッシュ装置４Ａ及び４Ｂからの応答があった時点で転送（ミラーリング）完了とする。
以上のように、本変形例によれば、ミラーリングを行なう際にも、各キャッシュ装置４が、それぞれ、制御装置２からの転送指示に従ってクライアント７との間でデータ転送に必要な会話（メッセージの送受）を行なって、クライアント７と複数のキャッシュ装置４との間で、制御装置２を経由せずに直接、実際のデータ転送と応答処理とを行なうので、本システム１のレイテンシの削減及びデータスループットの向上を図りながら、信頼性の向上をも図ることができる。
なお、上述した例において、１つでも応答を返してきたキャッシュ装置４Ａ又は４Ｂがあれば、その時点で転送完了としてもよい。この場合は、全てのキャッシュ装置４が応答メッセージをクライアント７に送付する必要はないことになるので、応答メッセージ５１とＲＤＭＡメッセージ５２の双方を送付するのは一部のキャッシュ装置４のみとし、残りのキャッシュ装置４には、ＲＤＭＡメッセージ５２のみを送付するようにしてもよい。
即ち、例えば図１２に示すように、クライアント７からファイルＡについてのアクセス要求を制御装置２が受けると、制御装置２から一方のキャッシュ装置４Ａには、応答メッセージ５１とＲＤＭＡメッセージ５２の双方を添付した転送指示を送信し（ステップＳ３２）、残りのキャッシュ装置４ＢにはＲＤＭＡメッセージ５２のみを添付した転送指示を送信するのである（ステップＳ３２′）。
これにより、クライアント７に対する各キャッシュ装置４Ａ及び４ＢからのファイルＡについてのＲＤＭＡが行なわれた（ステップＳ３３）後、制御装置２から応答メッセージ５１を受信したキャッシュ装置４Ａのみが、クライアント７に対して応答メッセージ５１を送信することになる（ステップＳ３４）。
以上のようにすることで、制御装置２の処理負荷を軽減することができるとともに、一部ではあるがキャッシュ装置４の処理負荷も軽減することができる。
（８）変形例６
次に、ここでは、「ミラーリング」時の転送処理の変形例について説明する。この場合、制御装置２は、全てのキャッシュ装置４に対して転送指示を出さず、一部のキャッシュ装置４に対してのみ転送指示を出し、そのキャッシュ装置４から他のキャッシュ装置４に同じデータをコピーすることで、ミラーリングを実現する。
即ち、図１３に示すように、クライアント７から制御装置２に対してファイルＡについてのアクセス要求（書き込み要求）があったとすると（ステップＳ４１）、制御装置２では、ＤＡＦＳプロトコルハンドラ２１−１が、例えば、クライアント７からキャッシュ装置４ＡがファイルＡを受け取るための転送指示をＩＢネットワーク５経由でキャッシュ装置４Ａに発行する（ステップＳ４２）。
この際、ＤＡＦＳプロトコルハンドラ２１−１は、応答メッセージ５１とＲＤＭＡメッセージ５２とを生成するとともに、ファイルＡのコピー先であるキャッシュ装置４Ｂのアドレス情報５４を生成し、これらを上記キャッシュ装置４Ａ宛の転送指示に添付する。なお、この場合も、ＲＤＭＡメッセージ５２には、キャッシュ装置４側のメモリアドレスやファイルＡのサイズ情報が必要である。
そして、制御装置２から上記転送指示を受け取ったキャッシュ装置４Ａは、制御装置２側で生成されたＲＤＭＡメッセージ５２によりクライアント７からのファイルＡの転送を受け（ステップＳ４３）、転送が完了すると制御装置２から受け取った応答メッセージ５３によりクライアント７に応答を返す（ステップＳ４４）。この際、キャッシュ装置４Ａは、制御装置２から受信した上記のアドレス情報５４に基づいてコピー先のキャッシュ装置４Ｂを特定し、そのキャッシュ装置４Ｂのメモリ４４にクライアント７から受信したファイルＡをコピーする（ステップＳ４５）。なお、このコピーもＲＤＭＡにより行なうことができる。
以上のようにすることで、システム１内でやりとりされるメッセージ数が削減されるので、システム１の信頼性を向上させるための「ミラーリング」を、システム１のデータスループット低下を招くことなく実現することができる。
（９）変形例７
図１１〜図１３により上述したように、複数のキャッシュ装置４で「ミラーリング」を行なう場合は、或る時期に、一部のキャッシュ装置４で冗長に保持しているデータをストレージ装置３に移して、キャッシュ装置４のメモリ４４のメモリ領域を解放することもできる。
即ち、例えば図１４に示すように、制御装置２は、或る時期に、同じファイルＡを冗長に保持しているキャッシュ装置４Ａ及び４Ｂの一部（ここでは、キャッシュ装置４Ａ）に対して、ファイルＡのストレージ装置３への転送指示を発行する（ステップＳ５１）。勿論、この際、上記転送指示には、転送先であるストレージ装置３及びディスク装置３１を特定する情報が添付される。
この転送指示を受けたキャッシュ装置４Ａは、ＲＤＭＡによりファイルＡをストレージ装置３のディスク装置３１に転送し（ステップＳ５２）、転送が完了すると、その旨を確認メッセージにより制御装置２に通知し（ステップＳ５３）、冗長に保存していたファイルＡをメモリ４４から削除してメモリ領域を解放する（ステップ５４）。
このようにすることで、例えば、アクセス頻度の少ない冗長データはキャッシュ装置４からストレージ装置３へ退避させて、アクセス頻度の高い冗長データを優先的にキャッシュ装置４に残すような制御が可能となる。したがって、キャッシュ装置４のメモリ容量を最大限に有効活用することができ、ミラーリングを行なう場合でも、キャッシュ装置４に必要なメモリ容量を抑制することができる。
（１０）変形例８
次に、以下では、前述した仮想ストレージ管理部２１−５及びキャッシュ領域管理部２１−４の機能に着目した動作について説明する。
前述したように仮想ストレージ管理部２１−５及びキャッシュ領域管理部２１−４は、前記の表１に示した管理テーブル及び表２に示した管理テーブル（マップ）により、仮想ストレージ領域と実ストレージ領域（ストレージ装置３（ディスク装置３１）の記憶領域）との対応関係及び仮想ストレージ領域とキャッシュ領域（キャッシュ装置４の記憶領域）との対応関係を一括管理することで、仮想ストレージシステムを実現している。
より詳細には、図１５に示すような管理テーブル（仮想ストレージ／実ストレージ変換マップ）２１１により、仮想ストレージ領域と実ストレージ領域との対応関係が管理され、図１６に示すような管理テーブル（キャッシュマップ）２１２により、仮想ストレージ領域とキャッシュ領域との対応関係が管理される。なお、システム内にキャッシュ装置４が存在しない場合は、勿論、キャッシュ領域管理部２１−４（キャッシュマップ２１２）は不要である。
そして、仮想ストレージ／実ストレージ変換マップ２１１には、「仮想ストレージＩＤ（Ｖｉｒｔｕａｌ  Ｓｔｏｒａｇｅ  ＩＤ）」と、「仮想セクタ（Ｖｉｒｔｕａｌ  Ｓｅｃｔｏｒ）」，「モード（ｍｏｄｅ）」，「実ストレージネットアドレス（Ｒｅａｌ  Ｓｔｏｒａｇｅ  Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ）」，「実ストレージセクタ（Ｒｅａｌ  Ｓｔｏｒａｇｅ  Ｓｅｃｔｏｒ）」及び「ストライプ幅（Ｓｔｒｉｐｅ  Ｗｉｄｔｈ）」等との対応関係が保持され、キャッシュマップ２１２には、「仮想ストレージＩＤ」と、「仮想セクタ（Ｖｉｒｔｕａｌ  Ｓｅｃｔｏｒ）」，「実ストレージネットアドレス（Ｒｅａｌ  Ｓｔｏｒａｇｅ  Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ）」，「実セクタ（Ｒｅａｌ  Ｓｅｃｔｏｒ）」，「キャッシュネットワークアドレス（Ｃａｃｈｅ  Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ）」，「キャッシュローカルアドレス（Ｃａｃｈｅ  Ｌｏｃａｌ  Ａｄｄｒｅｓｓ）」，「フラグ（Ｆｌａｇ）」等との対応関係が保持される。
例えば、仮想ストレージ／実ストレージ変換マップ２１１の１番目のエントリは、「仮想セクタ」＝“０−１９９９”により「仮想ストレージＩＤ」＝Ａの仮想ストレージ（以下、仮想ストレージＡと表記することがある）が構成され、そのうちの“０−９９９”の各仮想セクタが「実ストレージネットワークアドレス」＝“１０．２５．１８０．３”で特定されるストレージ装置３（ディスク装置３１）のセクタ（実ストレージセクタ）＝“２０００−２９９９”に対応し、残りの“１０００−１９９９”の仮想セクタが「実ストレージネットワークアドレス」＝“１０．２５．１８０．４”で特定されるストレージ装置３（ディスク装置３１）のセクタ（実ストレージセクタ）＝“４０００−４９９９”に対応することを意味する。
なお、「モード」＝“ｊｂｏｄ”は、「連結」を意味し、上記の場合、仮想ストレージＡが異なるディスク装置３１のセクタ“２０００−２９９９”とセクタ“４０００−４９９９”の連結により構成されていることを意味する。また、ここでは、「実ストレージネットワークアドレス」をＩＰアドレス形式のデータ（ＩＤ）としているが、勿論、他の形式のＩＤでもよい。
次に、仮想ストレージ／実ストレージ変換マップ２１１の２番目のエントリは、「仮想セクタ」＝“０−３９９９”により「仮想ストレージＩＤ」＝Ｂの仮想ストレージが構成され、そのうちの“０−１９９９”の各仮想セクタが「実ストレージネットワークアドレス」＝“１０．２５．１８０．１０”及び“１０．２５．１８０．１１”で特定される２つのディスク装置３１の「実ストレージセクタ」＝“０−１９９９”及び“３０００−４９９９”の組（図１９においては“ａａ”及び“ａｂ”で示す組）に対応し、かかる１組の実ストレージセクタを用いて「モード」で指定された「ミラーリング」が行なわれることを意味する。
同様に、“２０００−３９９９”の各仮想セクタは「実ストレージネットワークアドレス」＝“１０．２５．１８０．１２”及び“１０．２５．１８０．１３”で特定される２つのディスク装置３１の「実ストレージセクタ」＝“０−１９９９”及び“０−１９９９”の組（図１９においては“ａａ”及び“ａｂ”で示す組）に対応し、かかる１組の実ストレージセクタを用いて「モード」で指定された「ミラーリング」が行なわれることを意味する。
換言すれば、仮想ストレージ管理２１−５は、仮想ストレージ領域の特定領域についての仮想ストレージアドレスと、複数のストレージ装置３の記憶領域についての実アドレスとを対応付けて管理することによりミラーリングを実現するミラーリング手段としての機能を有していることになる。なお、この場合、クライアント７からアクセス要求があると、複数のストレージ装置３に対してそれぞれデータ転送指示が発行されて、それらのストレージ装置３とクライアント７との間で直接データ転送が行なわれることになる。
さらに、仮想ストレージ／実ストレージ変換マップ２１１の３番目のエントリは、「仮想セクタ」＝“０−７９９９”により「仮想ストレージＩＤ」＝Ｃの仮想ストレージが構成され、これらの“０−７９９９”の各仮想セクタが「実ストレージネットワークアドレス」＝“１０．２５．１８０．２０”及び“１０．２５．１８０．２１”で特定される２つのディスク装置３１の「実ストレージセクタ」＝“０−３９９９”及び“１０００−４９９９”の組に対応し、これらの実ストレージセクタを用いて「モード」で指定された「ストライプ幅」＝“２”の「ストライピング」が行なわれることを意味する。
即ち、例えば図２０に示すように、「仮想セクタ」と「実セクタ」との対応関係がＣ＃０＝ａａ＃０，Ｃ＃１＝ａｂ＃０，Ｃ＃２＝ａａ＃１，Ｃ＃３＝ａｂ＃１，Ｃ＃４＝ａａ＃２，Ｃ＃５＝ａｂ＃２，Ｃ＃６＝ａａ＃３，…となっていたとすると、仮想セクタＣ＃０→Ｃ＃１→Ｃ＃２→Ｃ＃３→Ｃ＃４→Ｃ＃５→Ｃ＃６→…に対するアクセス要求により、ディスク装置３１ａの実セクタａａ＃０→ディスク装置３１ｂの実セクタａｂ＃０→ディスク装置３１ａの実セクタａａ＃１→ディスク装置３１ｂの実セクタａｂ＃１→ディスク装置３１ａの実セクタａａ＃２→ディスク装置３１ｂの実セクタａｂ＃２→ディスク装置３１ａの実セクタａａ＃３→…という具合に、ディスク３１ａ，３１ｂに対するアクセスが交互に発生することになる。
換言すれば、この場合、仮想ストレージ管理部２１−５は、１つの仮想ストレージ領域（ＩＤ＝Ｃ）を一定サイズ（ストライプ幅）で分割したときの連続する分割領域をそれぞれ異なるストレージ装置３（ディスク装置３１）内の領域に割り当てるよう、仮想ストレージアドレスと複数のストレージ装置３の記憶領域についての実アドレスとを対応付けて管理することによりストライピングを実現するストライピング手段としての機能をそなえていることになる。
一方、図１６に示すキャッシュマップ２１２の１番目のエントリは、「仮想ストレージＩＤ」＝Ａの「仮想セクタ」＝“２０００”が「実ストレージネットワークアドレス」＝“１０．２５．１８０．３”で特定されるディスク装置３１の「実セクタ」＝“４０００”に対応するとともに、「キャッシュネットワークアドレス」＝“１０．２５．１８０．２０”で特定されるキャッシュ装置４の「キャッシュローカルアドレス」（メモリアドレス）＝“０ｘ８００００”に対応することを意味する。
同様に、キャッシュマップ２１２の２番目のエントリは、「仮想ストレージＩＤ」＝Ａの「仮想セクタ」＝“２００１”が「実ストレージネットワークアドレス」＝“１０．２５．１８０．３”で特定されるディスク装置３１の「実セクタ」＝“５０００”に対応するとともに、「キャッシュネットワークアドレス」＝“１０．２５．１８０．２１”で特定されるキャッシュ装置４の「キャッシュローカルアドレス」（メモリアドレス）＝“０ｘ４００００”に対応することを意味する。
つまり、キャッシュ領域管理部２１−４は、キャッシュ装置４の記憶領域をも仮想ストレージアドレスにて一括管理するようになっているのである。
そして、上記の「フラグ」＝“コヒーレント（ｃｏｈｅｒｅｎｔ）”で、「実セクタ」と「キャッシュローカルアドレス」に保持されている両データが一致していることを意味し、「フラグ」＝“ダーティ（ｄｉｒｔｙ）”でこれらの両データが不一致である（キャッシュ装置４のデータの方が新しい）ことを意味している。なお、「フラグ」としては、他に“空き（ｅｍｐｔｙ）”という状態があり、これはキャッシュ装置４にキャッシュ領域は割り当てられているが、未だそこに有効なデータが格納されていない状態を意味する。
ここで、「フラグ」＝“ダーティ（ｄｉｒｔｙ）”の場合は、例えば図２４に示すような一連の処理が行なわれる。即ち、まず、制御装置２（仮想ストレージ管理部２１−５）から、ディスク装置３１の「実セクタ」（ａａ）に保持されているデータを（以下、「実データ」ともいう）「キャッシュローカルアドレス」（ａａａ）に保持されている最新のデータ（以下、「キャッシュデータ」ともいう）に一致させるための同期指示がキャッシュ装置４に対して発行される（ステップＳ６１）。
これを受けたキャッシュ装置４は、ＩＢネットワーク５経由でディスク装置３１へ該当データを直接転送して、ディスク装置３１の「実セクタ」（ａａ）に保持されているデータを最新のデータに更新し（ステップＳ６２）、同期完了の旨を制御装置２に応答として返す（ステップＳ６２）。そして、この応答を受けた制御装置２（仮想ストレージ管理部２１−５）では、キャッシュマップ２１２の該当エントリの「フラグ」を“コヒーレント（ｃｏｈｅｒｅｎｔ）”に更新する（ステップＳ６３）。
また、「フラグ」＝“空き（ｅｍｐｔｙ）”の状態で、ディスク装置３１からキャッシュ装置４にデータを書き込む場合は、例えば図２５に示すような一連の処理が行なわれる。即ち、まず、制御装置２（仮想ストレージ管理部２１−５）から、ディスク装置３１の「実セクタ」（ａａ）に保持されているデータをキャッシュ装置４の「キャッシュローカルアドレス」（ａａａ）に書き込む指示がストレージ装置３に対して発行される（ステップＳ７１）。
これを受けたストレージ装置３は、ディスク装置３１の「実セクタ」（ａａ）に格納されているデータを、ＩＢネットワーク５経由でキャッシュ装置４へ直接転送して、キャッシュ装置４の「キャッシュローカルアドレス」（ａａａ）の領域に書き込み（ステップＳ７２）、書き込み完了の旨を制御装置２に応答として返す（ステップＳ７２）。そして、この応答を受けた制御装置２（仮想ストレージ管理部２１−５）では、キャッシュマップ２１２の該当エントリの「フラグ」を“コヒーレント（ｃｏｈｅｒｅｎｔ）”に更新する（ステップＳ７３）。
このようにして、キャッシュマップ２１２のエントリに基づいて制御装置２からストレージ装置３又はキャッシュ装置４に対して指示を与えることにより、ストレージ装置３とキャッシュ装置４との間で、データの直接転送を行なわせて、キャッシュデータと実データとの同期や実データのキャッシュ装置４へのアップロード等を高速に実行することができる。
以上のように、本例では、上記のマップ２１１及び２１２を制御装置２（仮想ストレージ管理部２１−５）で管理することで、前述したように仮想ストレージシステムにおいてクライアント７とストレージ装置３又はキャッシュ装置４との間で直接のデータ転送（「ミラーリング」や「ストライピング」も含む）が可能となる。
即ち、図１７及び図１８に示すように、或るクライアント７からＩＢネットワーク５経由で制御装置２に対して或る仮想ストレージに対するアクセス（読み出し）要求（仮想ストレージアドレスで要求）があると、制御装置２は、上記のマップ２１１及び２１２のエントリ内容に基づいて要求されたデータを保持している実ストレージ領域（実セクタ）を特定し、その実セクタを管理しているストレージ装置３又はキャッシュ装置４へクライアント７への直接転送に必要な情報を渡して、クライアント７とストレージ装置３又はキャッシュ装置４との間で制御装置２を経由しないデータの直接転送を行なわせることができる。
なお、図１７はディスク装置３１の実セクタ“ａａ”に保持されたデータをクライアント７に直接転送する場合の例、図１８はキャッシュ装置４の実セクタ“ａａａ”に保持されたデータをクライアント７に直接転送する場合の例をそれぞれ示しており、それぞれの実ストレージ領域特定後の詳細動作については図６及び図５と同様である。
次に、ディスク装置３１をＩＢネットワーク５に対して増設する場合について説明する。
例えば図２１に示すように、或るインタフェースカード３２にディスク装置３１ａが既に接続されている状態で、新たにディスク装置３１ｂを増設する場合を考える。この場合、制御装置２（仮想ストレージ管理部２１−５）では、増設前のマップ２１１として「仮想セクタ」（“０−９９９”）とディスク装置３１ａの「実セクタ」（ａａ＝“２０００−２９９９”）とを対応付けたエントリを保持しているが、増設後には、「仮想セクタ」（“１０００−１９９９”）と、増設されたディスク装置３１ｂの「実セクタ」（ｂｂ＝“４０００−４９９９”）とを対応付けたエントリをマップ２１１に追記する。
このように、マップ２１１に新たなエントリを追加するだけで、既に割り当て済みの仮想ストレージ領域（仮想セクタ“０−９９９”）に追加して新たな仮想ストレージ領域（仮想セクタ“１０００−１９９９”）に対応するストレージ装置３（ディスク装置３１ｂ）内領域（実セクタ）の割り当てが可能である。
なお、かかる仮想ストレージ領域の追加は、「ミラーリング」や「ストライピング」構成の場合も同様にマップ２１１に対するエントリの追加で対応可能である。
例えば図２２に示すように、制御装置２（仮想ストレージ管理部２１−５）において、既に、「仮想セクタ」（例えば、“０−１０００”）と２台のディスク装置３１ａ，３１ｂの「実セクタ」（例えば、ａａ＝“２０００−３０００”，ｂｂ＝“４０００−５０００”）とを対応付けたエントリがマップ２１１に登録され、これら２台のディスク装置３１ａ及び３１ｂ内領域（ａａ＝“２０００−３０００”，ｂｂ＝“４０００−５０００”）を用いて「ミラーリング」を実現している場合に、新たに２台のディスク装置３１ｃ，３１ｄをそれぞれ増設する際には、マップ２１１に、新たに必要な「仮想セクタ」（例えば、“１００１−２０００”）と、ディスク装置３１ｃの「実セクタ」（例えば、ｂａ＝“０−９９９”）及びディスク装置３１ｄの「実セクタ」（例えば、ｂｂ＝“２０００−２９９９”）とを対応付けたエントリをマップ２１１に追加すればよい。
これにより、新たに増設された２台のディスク装置３１ｃ及び３１ｄ内領域（ｂａ＝“０−９９９”，ｂｂ＝“２０００−２９９９”）を用いた「ミラーリング」が可能となる。
同様に、図２３に示すように、制御装置２（仮想ストレージ管理部２１−５）において、既に、「仮想セクタ」（例えば、“０−１０００”）と２台のディスク装置３１ａ，３１ｂの「実セクタ」（例えば、ａａ＝“０−４９９”，ｂｂ＝“１０００−１５００”）とを対応付けたエントリがマップ２１１に登録され、これら２台のディスク装置３１ａ及び３１ｂ内領域（ａａ＝“０−４９９”，ｂｂ＝“１０００−１５００”）を用いてストライプ幅ｂ＝２の「ストライピング」を実現している場合に、新たに２台のディスク装置３１ｃ，３１ｄを増設してこれら２台のディスク装置３１ｃ，３１ｄ内領域を用いて同じストライプ幅（ｂ＝２）の「ストライピング」を実現する際には、マップ２１１に、新たに必要な「仮想セクタ」（例えば、“１００１−２０００”）と、ディスク装置３１ｃの「実セクタ」（例えば、ｂａ＝“１０００−１４９９”）及びディスク装置３１ｄの「実セクタ」（例えば、ｂｂ＝“３０００−３４９９”）とを対応付けたエントリをマップ２１１に追加すればよい。
これにより、新たに増設された２台のディスク装置３１ｃ及び３１ｄ内領域（ｂａ＝“１０００−１４９９”，ｂｂ＝“３０００−３４９９”）を用いたストライプ幅（ｂ＝２）の「ストライピング」が可能となる。なお、増設前後のディスク装置３１ａ，３１ｂの組及びディスク装置３１ｃ，３１ｄの組とでストライプ幅は変えてもよい。
なお、一部のストレージ装置３をＩＢネットワーク５から削除（減設）する場合も、マップ２１１のエントリを変更するだけで対応可能なことはいうまでもない。
つまり、仮想ストレージ管理部２１−５は、ＩＢネットワーク５に対するストレージ装置３の増減設に応じて仮想ストレージ領域についての仮想ストレージアドレスと追加又は削減分のストレージ装置３の記憶領域についての実アドレスとの対応付けを変更する仮想ストレージアドレス変更手段としての機能を有しているのである。
以上のように、上述した例では、ストレージ装置３又はキャッシュ装置４とクライアント７との間で制御装置２を経由しないデータの直接転送が行なえることにより、レイテンシの大幅削減と、デーダスループットの大幅向上（ＩＢネットワーク５の性能を十分に活かせる帯域の確保）とを図ることができることに加えて、従来の仮想ストレージシステムと比較して見劣りしない機能を提供することが可能となる。
（１１）その他
なお、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができることはいうまでもない。
例えば、上述した実施形態では、クライアント７からのＩＢネットワーク５経由のアクセス要求がＤＡＦＳに基づくことを前提としているが、他のプロトコル〔例えば、ＳＲＰ（ＳＣＳＩ  ＲＤＭＡ  Ｐｒｏｔｏｃｏｌ）〕に基づくものでも、上記と同様の作用効果を得ることができる。
また、ＩＢネットワーク５内でやりとりされる各種メッセージのフォーマットについては適宜変更可能である。
産業上の利用可能性
以上のように、本発明によれば、ストレージシステム内のキャッシュ装置（又はストレージ装置）が、制御装置からの指示に従ってクライアント装置とデータ転送に必要な会話を直接行なってデータ転送を直接行なうので、システムのレイテンシを削減できるとともに、そのデータスループットを大幅に向上することができ、例えば、高速且つ高性能なデータセンター等を構築することができ、その有用性は極めて高いものと考えられる。
【図面の簡単な説明】
図１は本発明の一実施形態としてのストレージシステムの構成を示すブロック図である。
図２は図１に示す制御装置の要部の構成を示す機能ブロック図である。
図３は図１に示すキャッシュ装置の要部の構成を示すブロック図である。
図４は図１に示すストレージ装置の要部の構成を示すブロック図である。
図５は図１に示すストレージシステムの動作（転送対象データがキャッシュ装置に存在する場合）を説明するための図である。
図６は図１に示すストレージシステムの動作（転送対象データがストレージ装置に存在する場合）を説明するための図である。
図７は図１に示すストレージシステムの動作の変形例１を説明するための図である。
図８は図１に示すストレージシステムの動作の変形例２を説明するための図である。
図９は図１に示すストレージシステムの動作の変形例３を説明するための図である。
図１０は図１に示すストレージシステムの動作の変形例４を説明するための図である。
図１１及び図１２はいずれも図１に示すストレージシステムの動作の変形例５を説明するための図である。
図１３は図１に示すストレージシステムの動作の変形例６を説明するための図である。
図１４は図１に示すストレージシステムの動作の変形例７を説明するための図である。
図１５は本実施形態の変形例８に係る仮想ストレージ領域と実ストレージ領域との対応関係を示す管理テーブル（仮想ストレージ／実ストレージ変換マップ）の具体例を示す図である。
図１６は本実施形態の変形例８に係る仮想ストレージ領域とキャッシュ領域との対応関係を示す管理テーブル（キャッシュマップ）の具体例を示す図である。
図１７は本実施形態の変形例８に係るストレージシステムにおいてディスク装置の実セクタに保持されたデータをクライアントに直接転送する場合の例を説明するための図である。
図１８は本実施形態の変形例８に係るストレージシステムにおいてキャッシュ装置に保持されたデータをクライアントに直接転送する場合の例を説明するための図である。
図１９は本実施形態の変形例８に係るストレージシステムにおいて「ミラーリング」を実現する場合を説明するための図である。
図２０は本実施形態の変形例８に係るストレージシステムにおいて「ストライピング」を実現する場合を説明するための図である。
図２１は本実施形態の変形例８に係るストレージシステムにおいてストレージ装置を増設する場合の仮想ストレージ管理を説明するための図である。
図２２は図１９に示す「ミラーリング」を実現するストレージシステムにおいてストレージ装置を増設する場合の仮想ストレージ管理を説明するための図である。
図２３は図２０に示す「ストライピング」を実現するストレージシステムにおいてストレージ装置を増設する場合の仮想ストレージ管理を説明するための図である。
図２４は本実施形態の変形例８に係るストレージシステムにおいてキャッシュ装置からストレージ装置へ直接データ転送する場合の動作を説明するための図である。
図２５は本実施形態の変形例８に係るストレージシステムにおいてストレージ装置からキャッシュ装置へ直接データ転送する場合の動作を説明するための図である。
図２６は既存のストレージシステムの一例を示す図である。
図２７は図２６に示すストレージシステムにおけるデータ転送処理を説明するためのシーケンス図である。
【図１】
2003075147.tif 000005
【図２】
2003075147.tif 000006
【図３】
2003075147.tif 000007
【図４】
2003075147.tif 000008
【図５】
2003075147.tif 000009
【図６】
2003075147.tif 000010
【図７】
2003075147.tif 000011
【図８】
2003075147.tif 000012
【図９】
2003075147.tif 000013
【図１０】
2003075147.tif 000014
【図１１】
2003075147.tif 000015
【図１２】
2003075147.tif 000016
【図１３】
2003075147.tif 000017
【図１４】
2003075147.tif 000018
【図１５】
2003075147.tif 000019
【図１６】
2003075147.tif 000020
【図１７】
2003075147.tif 000021
【図１８】
2003075147.tif 000022
【図１９】
2003075147.tif 000023
【図２０】
2003075147.tif 000024
【図２１】
2003075147.tif 000025
【図２２】
2003075147.tif 000026
【図２３】
2003075147.tif 000027
【図２４】
2003075147.tif 000028
【図２５】
2003075147.tif 000029
【図２６】
2003075147.tif 000030
【図２７】
2003075147.tif 000031
【国際調査報告】
2003075147.tif 000032
2003075147.tif 000033