(57)【要約】【課題】  旧型の記憶制御システムを有効に利用することができる記憶制御システム及び方法を提供する。【解決手段】  第１の記憶制御システムが、ＬＡＮＣＮ１に接続されたＣＨＮ２１Ａを備える。ＣＨＮ２１Ａは、ＮＡＳプロセッサ５０６及びＩ／Ｏプロセッサ５０４を備える。Ｉ／Ｏプロセッサ５０４は、ブロックレベルのデータが第１の記憶制御システムと第２の記憶制御システムのどちらに格納されるべきものであるかを表すＩ／Ｏ振分け制御データ８２０に基づいて、ブロックレベルのデータの全部又は一部を、第１の記憶制御システムと第２の記憶制御システムのどちらに格納するのかの判断を行う。Ｉ／Ｏプロセッサ５０４が、その判断の結果に基づいて、ＮＡＳプロセッサ５０６からのブロックレベルのデータを、ＤＫＡ２２と、第２の記憶制御システムに接続されたＣＨＦ２１Ｂとの少なくとも一方へ転送する。【選択図】図２
2005250938.tif 000002
【特許請求の範囲】
【請求項１】
記憶デバイスへのデータの格納を制御する記憶制御システムにおいて、
データを格納する複数の記憶デバイスと、
受信したデータを前記複数の記憶デバイスに格納することを制御する記憶デバイス制御部と、
前記記憶デバイス制御部に接続される接続部と、
前記記憶制御システムの外部のローカルエリアネットワーク及びストレージネットワークの少なくとも一方と、前記接続部とに接続される第一のチャネル制御部と、
前記第一のチャネル制御部から前記接続部を経由して送られたデータを、前記ストレージネットワークと同一の又は別のストレージネットワークを介して外部の記憶制御システムに転送する第二のチャネル制御部と、
前記第一のチャネル制御部、前記第二のチャネル制御部及び前記記憶デバイス制御部によってやり取りされる第一の制御情報が格納される共有メモリと、
前記第一のチャネル制御部又は前記第二のチャネル制御部と前記記憶デバイス制御部との間でやり取りされるデータを一時的に保存するキャッシュメモリと
を備え、
前記第一のチャネル制御部は、前記ローカルエリアネットワークを介して受けたファイルレベルのデータをブロックレベルのデータに変換する第一のプロセッサから前記ブロックレベルのデータを受信する第二のプロセッサを有し、
前記第一のプロセッサ及び前記第二のプロセッサの少なくとも一方が、前記データが前記記憶制御システムと前記外部の記憶制御システムのどちらに格納されるべきものであるかを表す第二の制御情報に基づいて、前記ブロックレベルのデータの全部又は一部を、前記記憶制御システムと前記外部の記憶制御システムのどちらに格納するのかの判断を行い、
前記第二のプロセッサが、前記判断の結果に基づいて、前記第一のプロセッサから受けた前記ブロックレベルのデータを、前記記憶デバイス制御部及び前記第二のチャネル制御部の少なくとも一方へ転送する、
記憶制御システム。
【請求項２】
前記第一のプロセッサは、ホストコンピュータから前記外部のローカルエリアネットワークを介して前記ファイルレベルのデータを受信し、
前記第二のプロセッサが、前記判断の結果に基づいて、前記ホストコンピュータから受信したファイルレベルのデータに基づく前記ブロックレベルのデータの一部を、前記外部の記憶制御システムが有する外部の記憶領域に格納すべく、前記第二のチャネル制御部に転送し、前記ブロックレベルのデータの他の一部を、前記複数の記憶デバイスが有する内部の記憶領域に格納すべく、前記記憶デバイス制御部に転送する、
請求項１記載の記憶制御システム。
【請求項３】
前記第一のチャネル制御部が、前記外部の記憶制御システムが有する外部の記憶領域と、前記記憶制御システムが有する内部の記憶領域とを併せた記憶領域を論理ユニットとして、前記ファイルレベルのデータを送信するホストコンピュータのアクセス対象とする、
請求項１記載の記憶制御システム。
【請求項４】
前記第二の制御情報が格納される第二制御情報格納領域を更に備え、
前記第一のプロセッサは、前記第一のチャネル制御部に備えられており、
前記第一のプロセッサ及び前記第二のプロセッサの少なくとも一方が、前記第二制御情報格納領域に格納された前記第二の制御情報に基づいて、前記ブロックレベルのデータの全部又は一部を、前記記憶制御システムと前記外部の記憶制御システムのどちらに格納するのかの判断を行う、
請求項１記載の記憶制御システム。
【請求項５】
前記第二の制御情報には、複数のアドレス情報と、前記複数のアドレス情報の各々が前記記憶制御システムと前記外部の記憶制御システムのどちらに対応するのかを表す情報とが記録されており、
前記第一のプロセッサ及び前記第二のプロセッサの少なくとも一方が、前記第二の制御情報を参照して、前記ブロックレベルのデータに含まれるアドレス情報が前記記憶制御システムと前記外部の記憶制御システムのどちらに対応するのかを判別する、
請求項１記載の記憶制御システム。
【請求項６】
前記第二の制御情報には、前記第一のプロセッサが管理しているファイルに関するファイルメタデータが含まれており、
前記ファイルメタデータには、複数のファイルにそれぞれ対応した複数のファイル識別情報及び保存先アドレス情報が含まれており、
前記第一のプロセッサが、前記受信したファイルレベルのデータが有するファイル識別情報に対応する保存先アドレス情報を前記ファイルメタデータから把握し、
前記第一のプロセッサ及び前記第二のプロセッサの少なくとも一方が、前記第二の制御情報を参照して、前記把握された保存先アドレス情報が前記記憶制御システムと前記外部の記憶制御システムのどちらに対応するのかを判別する、
請求項１記載の記憶制御システム。
【請求項７】
前記記憶制御システムが有する内部の記憶領域と、前記記憶デバイスとの間に仮想中間記憶デバイスを備え、
前記仮想中間記憶デバイスが、前記内部の記憶領域と、前記外部の記憶制御システムが有する外部の記憶領域とを対応付ける、
請求項１記載の記憶制御システム。
【請求項８】
記憶デバイスへのデータの格納を制御する記憶制御方法であって、
第一のプロセッサが、ローカルエリアネットワークを介して受けたファイルレベルのデータをブロックレベルのデータに変換するステップと、
前記第一のプロセッサと、記憶制御システムの外部の通信ネットワークに接続された第一のチャネル制御部が有する第二のプロセッサとの少なくとも一方が、前記記憶制御システムとそれの外部の記憶制御システムとのどちらに前記データが格納されるべきものであるかを表す第二の制御情報に基づいて、前記ブロックレベルのデータの全部又は一部を、前記記憶制御システムと前記外部の記憶制御システムとのどちらに格納するのかの判断を行うステップと、
前記第二のプロセッサが、前記判断の結果に基づいて、前記第一のプロセッサから受けた前記ブロックレベルのデータを、前記記憶制御システムが備える複数の記憶デバイスにデータを格納することを制御する記憶デバイス制御部と、ストレージネットワークを介して外部の記憶制御システムに接続される第二のチャネル制御部との少なくとも一方へ転送するステップと、
前記記憶デバイス制御部が、前記第二のプロセッサからデータを受けた場合、前記受けたデータを前記複数の記憶デバイスの少なくとも１つに格納するステップと、
前記第二のチャネル制御部が、前記第二のプロセッサからデータを受けた場合、前記受けたデータを前記外部の記憶制御システムに転送するステップと
を有する方法。
【請求項９】
前記第一のプロセッサが、ホストコンピュータから前記外部のローカルエリアネットワークを介して前記ファイルレベルのデータを受信するステップを更に有し、
前記第二のプロセッサの前記転送するステップでは、前記第二のプロセッサが、前記判断の結果に基づいて、前記ホストコンピュータから受信したファイルレベルのデータに基づく前記ブロックレベルのデータの一部を、前記外部の記憶制御システムが有する外部の記憶領域に格納すべく、前記第二のチャネル制御部に転送し、前記ブロックレベルのデータの他の一部を、前記複数の記憶デバイスが有する内部の記憶領域に格納すべく、前記記憶デバイス制御部に転送する、
請求項８記載の方法。
【請求項１０】
前記第一のチャネル制御部が、前記外部の記憶制御システムが有する外部の記憶領域と、前記記憶制御システムが有する内部の記憶領域とを併せた記憶領域を論理ユニットとして、前記ファイルレベルのデータを送信するホストコンピュータのアクセス対象とするステップを更に有する、
請求項８記載の方法。
【請求項１１】
前記第二の制御情報を第二制御情報格納領域に格納するステップを更に有し、
前記第一のプロセッサは、前記第一のチャネル制御部に備えられており、
前記判断を行うステップでは、前記第一のプロセッサ及び前記第二のプロセッサの少なくとも一方が、前記第二制御情報格納領域に格納された前記第二の制御情報に基づいて、前記ブロックレベルのデータの全部又は一部を、前記記憶制御システムと前記外部の記憶制御システムのどちらに格納するのかの判断を行う、
請求項８記載の方法。
【請求項１２】
前記第二の制御情報には、複数のアドレス情報と、前記複数のアドレス情報の各々が前記記憶制御システムと前記外部の記憶制御システムのどちらに対応するのかを表す情報とが記録されており、
前記判断を行うステップでは、前記第一のプロセッサ及び前記第二のプロセッサの少なくとも一方が、前記第二の制御情報を参照して、前記ブロックレベルのデータに含まれるアドレス情報が前記記憶制御システムと前記外部の記憶制御システムのどちらに対応するのかを判別する、
請求項８記載の方法。
【請求項１３】
前記第二の制御情報には、前記第一のプロセッサが管理しているファイルに関するファイルメタデータが含まれており、
前記ファイルメタデータには、複数のファイルにそれぞれ対応した複数のファイル識別情報及び保存先アドレス情報が含まれており、
前記第一のプロセッサが、前記受信したファイルレベルのデータが有するファイル識別情報に対応する保存先アドレス情報を前記ファイルメタデータから把握するステップを更に有し、
前記判断を行うステップでは、前記第一のプロセッサ及び前記第二のプロセッサの少なくとも一方が、前記第二の制御情報を参照して、前記把握された保存先アドレス情報が前記記憶制御システムと前記外部の記憶制御システムのどちらに対応するのかを判別する、
請求項８記載の方法。
【請求項１４】
前記記憶制御システムが有する内部の記憶領域と、前記記憶デバイスとの間に備えられる仮想中間記憶デバイスを介して、前記内部の記憶領域と、前記外部の記憶制御システムが有する外部の記憶領域とを対応付けるステップを更に有する、
請求項８記載の方法。
【請求項１５】
ローカルエリアネットワークを介してファイルレベルのデータを受信する記憶制御システムにおいて、
受信したファイルレベルのデータを格納するメモリと、
前記メモリに格納されたファイルレベルのデータをブロックレベルのデータに変換するプロセッサと
を備え、
前記プロセッサが、前記データが前記記憶制御システムと前記外部の記憶制御システムのどちらに格納されるべきものであるかを表す第二の制御情報に基づいて、前記ブロックレベルのデータの全部又は一部を、前記記憶制御システムの外部にある第一の記憶制御システムと、前記第一の記憶制御システムの外部にある第二の記憶制御システムのどちらに格納するのかの判断を行い、前記判断の結果と前記ブロックレベルのデータを、ストレージネットワークを介して前記第一の記憶制御システムに転送する、
記憶制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶制御システム及び方法に関する。
【背景技術】
【０００２】
例えば、データセンタ等のような大規模なデータを取り扱うデータベースシステムでは、ホストコンピュータとは別に構成された記憶制御システムを用いてデータを管理する。この記憶制御システムは、例えば、多数の記憶デバイスをアレイ状に配設して構成されたRAID（Redundant Array of Independent Inexpensive Disks）のようなディスクアレイシステムである。
【０００３】
情報化社会の進展等につれて、データベースで管理すべきデータは、日々増大する。このため、より高性能、より大容量の記憶制御システムが求められており、この市場要求に応えるべく、新型の記憶制御システムが開発されている。新型の記憶制御システムを記憶システムに導入する方法としては、例えば、特表平１０−５０８９６７号公報に開示されているように、旧型の記憶制御システムと新型の記憶制御システムとを完全に入れ替え、全て新型の記憶制御システムから記憶システムを構成する方法がある。
【０００４】
【特許文献１】特表平１０−５０８９６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
旧型の記憶制御システムから新型の記憶制御システムに完全に移行する場合は、新型の記憶制御システムの機能、性能を利用することができるが、旧型の記憶制御システムを有効に利用することができず、導入コストも増大する。
【０００６】
従って、本発明は、旧型の記憶制御システムを有効に利用することができる記憶制御システム及び方法を提供することにある。
【０００７】
本発明の更なる目的は、後の記載から明らかになるであろう。
【課題を解決するための手段】
【０００８】
本発明の第１の観点に従う記憶制御システムは、データを格納する複数の記憶デバイス（例えばディスク型記憶装置）と、受信したデータを前記複数の記憶デバイスに格納することを制御する記憶デバイス制御部（例えばディスクアダプタ）と、前記記憶デバイス制御部に接続される接続部と、前記記憶制御システムの外部のローカルエリアネットワーク及び第１のストレージネットワークの少なくとも一方及び前記接続部に接続される第一のチャネル制御部（例えば後述のＣＨＮ）と、前記第一のチャネル制御部から前記接続部を経由して送られたデータを、前記記憶制御システムの外部の第２のストレージネットワークを介して外部の記憶制御システムに転送する第二のチャネル制御部（例えば後述のＣＨＦ）と、前記第一のチャネル制御部、前記第二のチャネル制御部及び前記記憶デバイス制御部によってやり取りされる第一の制御情報（例えばプロセッサ間メッセージ）が格納される共有メモリと、前記第一のチャネル制御部又は前記第二のチャネル制御部と前記記憶デバイス制御部との間でやり取りされるデータを一時的に保存するキャッシュメモリとを備える。前記第一のチャネル制御部は、前記ローカルエリアネットワークを介して受けたファイルレベルのデータをブロックレベルのデータに変換する第一のプロセッサから前記ブロックレベルのデータを受信する第二のプロセッサを有する。前記第一のプロセッサ及び前記第二のプロセッサの少なくとも一方が、前記データが前記記憶制御システムと前記外部の記憶制御システムのどちらに格納されるべきものであるかを表す第二の制御情報に基づいて、前記ブロックレベルのデータの全部又は一部を、前記記憶制御システムと前記外部の記憶制御システムのどちらに格納するのかの判断を行う。前記第二のプロセッサが、前記判断の結果に基づいて、前記第一のプロセッサから受けた前記ブロックレベルのデータを、前記記憶デバイス制御部及び前記第二のチャネル制御部の少なくとも一方へ転送する。
【０００９】
この記憶制御システムについて、例えば、以下のようにもっと抽象的に表現することができる。
【００１０】
振り分け制御データを記憶する振分け制御データ記憶領域と、
外部の通信ネットワークを介して受信したファイルレベルのデータ及びブロックレベルのデータの少なくとも一方を処理するプロセッサと
を備え、
前記振分け制御データには、ブロックレベルのデータに含まれるファイル識別情報の格納先を示すアドレス情報、又は、ブロックレベルのデータに含まれるアドレス情報と、前記アドレス情報に対応付けられたアドレス存在場所情報とが記録されており、
前記プロセッサが、前記振分け制御データを参照して、前記受信したブロックレベルのデータに含まれるファイル識別情報の格納先を示すアドレス情報、又は、前記受信したブロックレベルのデータに含まれるアドレス情報に対応するアドレス存在場所情報を特定し、特定されたアドレス存在情報に基づいて、前記ファイルレベルのデータを変換したブロックレベルのデータ、又は、前記受信したブロックレベルのデータを、第１の記憶制御システムが有する記憶デバイスと第２の記憶制御システムが有する記憶デバイスのどちらに格納するかを決定する、
記憶制御システム。
【００１１】
この場合、第１の記憶制御システムは、前記記憶制御システムそれ自体のことであっても良い。
【００１２】
さて、本発明の第一の観点に従う記憶制御システムの第一の実施態様では、前記第一のプロセッサは、ホストコンピュータから前記外部のローカルエリアネットワークを介して前記ファイルレベルのデータを受信する。前記第二のプロセッサが、前記判断の結果に基づいて、前記ホストコンピュータから受信したファイルレベルのデータに基づく前記ブロックレベルのデータの一部を、前記外部の記憶制御システムが有する外部の記憶領域に格納すべく、前記第二のチャネル制御部に転送し、前記ブロックレベルのデータの他の一部を、前記複数の記憶デバイスが有する内部の記憶領域に格納すべく、前記記憶デバイス制御部に転送する。この第一の実施態様によれば、前記外部の記憶領域と前記内部の記憶領域とを併せた記憶領域に対して、前記ホストコンピュータからのデータに基づくブロックレベルのデータが格納される。
【００１３】
本発明の第一の観点に従う記憶制御システムの第二の実施態様では、前記第一のチャネル制御部が、前記外部の記憶制御システムが有する外部の記憶領域と、前記記憶制御システムが有する内部の記憶領域とを併せた記憶領域を論理ユニットとして、前記ファイルレベルのデータを送信するホストコンピュータのアクセス対象とする。
【００１４】
本発明の第一の観点に従う記憶制御システムの第三の実施態様では、記憶制御システムは、前記第二の制御情報が格納される第二制御情報格納領域を更に備える。前記第一のプロセッサは、前記第一のチャネル制御部に備えられている。前記第一のプロセッサ及び前記第二のプロセッサの少なくとも一方が、前記第二制御情報格納領域に格納された前記第二の制御情報に基づいて、前記ブロックレベルのデータの全部又は一部を、前記記憶制御システムと前記外部の記憶制御システムのどちらに格納するのかの判断を行う。なお、第二制御情報格納領域は、例えばキャッシュメモリ上に設けられる。
【００１５】
本発明の第一の観点に従う記憶制御システムの第四の実施態様では、前記第二の制御情報には、複数のアドレス情報と、前記複数のアドレス情報の各々が前記記憶制御システムと前記外部の記憶制御システムのどちらに対応するのかを表す情報とが記録されている。前記第一のプロセッサ及び前記第二のプロセッサの少なくとも一方が、前記第二の制御情報を参照して、前記ブロックレベルのデータに含まれるアドレス情報が前記記憶制御システムと前記外部の記憶制御システムのどちらに対応するのかを判別する。
【００１６】
本発明の第一の観点に従う記憶制御システムの第五の実施態様では、前記第二の制御情報には、前記第一のプロセッサが管理しているファイルに関するファイルメタデータが含まれている。前記ファイルメタデータには、複数のファイルにそれぞれ対応した複数のファイル識別情報及び保存先アドレス情報が含まれている。前記第一のプロセッサが、前記受信したファイルレベルのデータが有するファイル識別情報に対応する保存先アドレス情報を前記ファイルメタデータから把握する。前記第一のプロセッサ及び前記第二のプロセッサの少なくとも一方が、前記第二の制御情報を参照して、前記把握された保存先アドレス情報が前記記憶制御システムと前記外部の記憶制御システムのどちらに対応するのかを判別する。
【００１７】
本発明の第一の観点に従う記憶制御システムの第六の実施態様では、前記記憶制御システムが有する内部の記憶領域と、前記記憶デバイスとの間に仮想中間記憶デバイスが備えられる。前記仮想中間記憶デバイスが、前記内部の記憶領域と、前記外部の記憶制御システムが有する外部の記憶領域とを対応付ける。
【００１８】
本発明の第二の観点に従う記憶制御方法は、変換ステップと、判断ステップと、第一の転送ステップと、格納ステップと、第二の転送ステップとを有する。前記変換ステップでは、第一のプロセッサが、ローカルエリアネットワークを介して受けたファイルレベルのデータをブロックレベルのデータに変換する。前記判断ステップでは、前記第一のプロセッサと、記憶制御システムの外部の通信ネットワークに接続された第一のチャネル制御部が有する第二のプロセッサとの少なくとも一方が、前記記憶制御システムとそれの外部の記憶制御システムとのどちらに前記データが格納されるべきものであるかを表す第二の制御情報に基づいて、前記ブロックレベルのデータの全部又は一部を、前記記憶制御システムと前記外部の記憶制御システムとのどちらに格納するのかの判断を行う。前記第一の転送ステップでは、前記第二のプロセッサが、前記判断の結果に基づいて、前記第一のプロセッサから受けた前記ブロックレベルのデータを、前記記憶制御システムが備える複数の記憶デバイスにデータを格納することを制御する記憶デバイス制御部と、ストレージネットワークを介して外部の記憶制御システムに接続される第二のチャネル制御部との少なくとも一方へ転送する。前記格納ステップでは、前記記憶デバイス制御部が、前記第二のプロセッサからデータを受けた場合、前記受けたデータを前記複数の記憶デバイスの少なくとも１つに格納する。前記第二の転送ステップでは、前記第二のチャネル制御部が、前記第二のプロセッサからデータを受けた場合、前記受けたデータを前記外部の記憶制御システムに転送する。
【００１９】
本発明の第二の観点に従う記憶制御方法の第一の実施態様では、前記第一のプロセッサが、ホストコンピュータから前記外部のローカルエリアネットワークを介して前記ファイルレベルのデータを受信するステップを更に有する。前記第一の転送ステップでは、前記第二のプロセッサが、前記判断の結果に基づいて、前記ホストコンピュータから受信したファイルレベルのデータに基づく前記ブロックレベルのデータの一部を、前記外部の記憶制御システムが有する外部の記憶領域に格納すべく、前記第二のチャネル制御部に転送し、前記ブロックレベルのデータの他の一部を、前記複数の記憶デバイスが有する内部の記憶領域に格納すべく、前記記憶デバイス制御部に転送する。
【００２０】
本発明の第二の観点に従う記憶制御方法の第二の実施態様では、前記第一のチャネル制御部が、前記外部の記憶制御システムが有する外部の記憶領域と、前記記憶制御システムが有する内部の記憶領域とを併せた記憶領域を論理ユニットとして、前記ファイルレベルのデータを送信するホストコンピュータのアクセス対象とするステップを更に有する。
【００２１】
本発明の第二の観点に従う記憶制御方法の第三の実施態様では、前記第二の制御情報を第二制御情報格納領域に格納するステップを更に有する。前記第一のプロセッサは、前記第一のチャネル制御部に備えられている。前記判断ステップでは、前記第一のプロセッサ及び前記第二のプロセッサの少なくとも一方が、前記第二制御情報格納領域に格納された前記第二の制御情報に基づいて、前記ブロックレベルのデータの全部又は一部を、前記記憶制御システムと前記外部の記憶制御システムのどちらに格納するのかの判断を行う。
【００２２】
本発明の第二の観点に従う記憶制御方法の第四の実施態様では、前記第二の制御情報には、複数のアドレス情報と、前記複数のアドレス情報の各々が前記記憶制御システムと前記外部の記憶制御システムのどちらに対応するのかを表す情報とが記録されている。前記判断ステップでは、前記第一のプロセッサ及び前記第二のプロセッサの少なくとも一方が、前記第二の制御情報を参照して、前記ブロックレベルのデータに含まれるアドレス情報が前記記憶制御システムと前記外部の記憶制御システムのどちらに対応するのかを判別する。
【００２３】
本発明の第二の観点に従う記憶制御方法の第五の実施態様では、前記第二の制御情報には、前記第一のプロセッサが管理しているファイルに関するファイルメタデータが含まれている。前記ファイルメタデータには、複数のファイルにそれぞれ対応した複数のファイル識別情報及び保存先アドレス情報が含まれている。前記記憶制御方法は、前記第一のプロセッサが、前記受信したファイルレベルのデータが有するファイル識別情報に対応する保存先アドレス情報を前記ファイルメタデータから把握するステップを更に有する。前記判断ステップでは、前記第一のプロセッサ及び前記第二のプロセッサの少なくとも一方が、前記第二の制御情報を参照して、前記把握された保存先アドレス情報が前記記憶制御システムと前記外部の記憶制御システムのどちらに対応するのかを判別する。
【００２４】
本発明の第二の観点に従う記憶制御方法の第六の実施態様では、前記記憶制御システムが有する内部の記憶領域と、前記記憶デバイスとの間に備えられる仮想中間記憶デバイスを介して、前記内部の記憶領域と、前記外部の記憶制御システムが有する外部の記憶領域とを対応付けるステップを更に有する。
【００２５】
本発明の第三の観点に従う記憶制御システムは、ローカルエリアネットワークを介してファイルレベルのデータを受信する記憶制御システムであって、受信したファイルレベルのデータを格納するメモリと、前記メモリに格納されたファイルレベルのデータをブロックレベルのデータに変換するプロセッサとを備える。前記プロセッサが、前記データが前記記憶制御システムと前記外部の記憶制御システムのどちらに格納されるべきものであるかを表す第二の制御情報に基づいて、前記ブロックレベルのデータの全部又は一部を、前記記憶制御システムの外部にある第一の記憶制御システムと、前記第一の記憶制御システムの外部にある第二の記憶制御システムのどちらに格納するのかの判断を行い、前記判断の結果と前記ブロックレベルのデータを、ストレージネットワークを介して前記第一の記憶制御システムに転送する。
【００２６】
本発明の第三の観点に従う記憶制御システムは、例えば、ＮＡＳ（Network Area
Storage）ヘッド或いはＮＡＳそれ自体である。
【００２７】
また、第一の記憶制御システム及び第二の記憶制御システムの少なくとも一方は、例えばＲＡＩＤシステムである。具体的には、例えば、第一の記憶制御システムは、データを格納する複数の記憶デバイスと、前記第１の記憶制御システムの外部のローカルエリアネットワーク及びストレージネットワークの少なくとも一方を介して受信したデータを、前記ストレージネットワークと同一の又は別のストレージネットワークを介して外部の記憶制御システムに転送する記憶制御サブシステムと、前記ローカルエリアネットワーク及び前記ストレージネットワークの少なくとも一方を介して受信したデータを一時的に保存するメモリとを備える。前記記憶制御サブシステムは、前記記憶制御システム（例えばＮＡＳヘッド）が備える前記プロセッサから前記ブロックレベルのデータを受信する別のプロセッサを有する。前記別のプロセッサは、前記判断の結果に基づいて、前記プロセッサから受けた前記ブロックレベルのデータを、前記判断の結果に基づいて、前記記憶デバイス制御部及び前記第二のチャネル制御部の少なくとも一方へ転送する。
【００２８】
なお、第一の記憶制御システムの記憶制御サブシステムは、例えば、ローカルエリアネットワークを介してファイルレベルのデータを受信し、受信したファイルレベルのデータをブロックレベルのデータに変換する前記プロセッサを備えていても良い。また、その場合、例えば、前記プロセッサと前記別のプロセッサの少なくとも一方が、前記データが前記第１の記憶制御システムと前記第２の記憶制御システムのどちらに格納されるべきものであるかを表す制御情報に基づいて、前記ブロックレベルのデータの全部又は一部を、前記第１の記憶制御システムと前記第２の記憶制御システムのどちらに格納するのかの判断を行うことができる。
【発明の効果】
【００２９】
本発明によれば、旧型の記憶制御システムを有効に利用することができる記憶制御システム及び方法が提供される。
【発明を実施するための最良の形態】
【００３０】
本発明の一実施形態の概要の一つを説明する。
【００３１】
本実施形態では、ＲＡＩＤシステム等の記憶制御システムが、ファイルレベルのデータがやり取りされる第一の通信ネットワーク（例えばＬＡＮ）を介してホスト端末に接続されている。また、その記憶制御システムは、ブロックレベルのデータがやり取りされる第二の通信ネットワーク（例えばＳＡＮ（Storage Area Network））を介して外部記憶制御システムに接続されている。記憶制御システムも外部記憶制御システムも、データを記憶する論理的な記憶デバイス（以下、Logical
Deviceを略して「ＬＤＥＶ」と言う）を備えている。ＬＤＥＶは、１又は複数のディスク型記憶装置上に設けられているものである。記憶制御システム及び外部記憶制御システムは、ディスク型記憶装置へのデータ格納を制御するディスク制御部を備える。記憶制御システムは、第１と第２のチャネル制御部を備える。第１のチャネル制御部には、第一の通信ネットワークを介してファイルレベルのデータを受信しそれをブロックレベルのデータに変換する第一のプロセッサと、第一のプロセッサからブロックレベルのデータを受信する第二のプロセッサとが備えられている。第２のチャネル制御部は、第１のチャネル制御部から受信したブロックレベルのデータを第二の通信ネットワークを介して前記外部記憶制御システムにデータを転送する。前記第一及び第二のプロセッサの少なくとも一方が、データが記憶制御システムと外部記憶制御システムのどちらに格納されるべきものであるかを表すＩ／Ｏ（Input/Output）振分け制御データに基づいて、ブロックレベルのデータをブロックレベルのデータの全部又は一部を、記憶制御システムと外部記憶制御システムのどちらに格納するのかの判断を行う。第二のプロセッサは、その判断の結果に基づいて、第一のプロセッサから受けたブロックレベルのデータを、前記ディスク制御部及び前記第２のチャネル制御部の少なくとも一方へ転送する。
【００３２】
以下、図面を参照して、本実施形態について詳述する。
【００３３】
図１は、本発明の一実施形態に係る記憶制御システムの外観の概略を示す。
【００３４】
記憶制御システム６００は、例えば、基本筐体１０と複数の増設筐体１２とから構成することができる（基本筐体１１のみで構成されても良い）。
【００３５】
基本筐体１０は、記憶制御システム６００の最小構成単位である。この基本筐体１０には、例えば、複数のディスク型記憶装置（例えばハードディスクドライブ（ＨＤＤ））３００と、複数の制御パッケージ（例えば後述するチャネル制御部又はディスク制御部）１０５と、複数の電源ユニット４００と、複数のバッテリユニット５００とがそれぞれ着脱可能に設けられている。また、基本筐体１０には、複数の冷却ファン１３が設けられている。
【００３６】
各増設筐体１２は、記憶制御システム６００のオプションであり、例えば、１つの基本筐体１０に最大４個の増設筐体１２を接続することができる。各増設筐体１２には、複数の冷却ファン１３が設けられている。また、各増設筐体１２には、複数のディスク型記憶装置３００と、複数の電源ユニット４００と、複数のバッテリユニット５００とがそれぞれ着脱可能に設けられており、それらの各々は、例えば、基本筐体１０に設けられた制御パッケージ１０５が有する制御機能により制御される。
【００３７】
図２は、本実施形態に係る記憶システムの構成を示すブロック図である。
【００３８】
１又は複数のホスト装置、例えば２台のホスト装置１０Ａ、１０Ｂの各々は、例えば、ＣＰＵ（Central Processing Unit）やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えば、パーソナルコンピュータ、ワークステーション、メインフレーム等として構成される。ホスト装置１０Ａ、１０Ｂの各々は、例えば、キーボードスイッチやポインティングデバイス、マイクロフォン等の情報入力装置（図示せず）と、例えば、モニタディスプレイやスピーカー等の情報出力装置（図示せず）とを備えている。さらに、ホスト装置１０Ａ、１０Ｂの各々には、例えば、第１の記憶制御システム６００が提供する記憶領域を使用するデータベースソフトウェア等のアプリケーションプログラム１１と、通信ネットワークＣＮ１を介して第１の記憶制御システム６００にアクセスするためのアダプタ１２Ａ又は１２Ｂとが設けられている。
【００３９】
ホスト装置１０Ａは、第一の通信ネットワークＣＮ１を介して第１の記憶制御システム６００に接続されている。通信ネットワークＣＮ１は、ファイルレベルのデータがやり取りされる通信ネットワークであり、例えば、ＬＡＮ、インターネット、専用回線、公衆回線等を場合に応じて適宜用いることができる（以下、第１の通信ネットワークを「ＬＡＮ」であるとする）。ＬＡＮを介するデータ通信は、例えば、TCP/IP（Transmission Control Protocol/Internet Protocol）プロトコルに従って行われる。ホスト装置１０Ａは、ファイル名を指定してファイル単位でのデータ入出力を第１の記憶制御システム６００に要求する。ＬＡＮＣＮ１に接続されるアダプタ１２Ａは、例えばＬＡＮ対応のネットワークカード（「ＰＯＲＴ」と図示）である。
【００４０】
ホスト装置１０Ｂは、第３の通信ネットワークＣＮ３を介して第１の記憶制御システム６００に接続されている。第３の通信ネットワークＣＮ３は、ブロックレベルのデータがやり取りされる通信ネットワークであり、例えばＳＡＮ（Storage Area Network）である（以下、第３の通信ネットワークを「ＳＡＮ」であるとする）。ホスト装置１０Ｂは、ファイバチャネルプロトコルに従って、複数のディスク記憶装置（例えばハードディスクドライブ）により提供される記憶領域のデータ管理単位であるブロックを単位としてデータ入出力を第１の記憶制御システム６００に要求する。ＳＡＮＣＮ３に接続されるアダプタ１２は、例えばホストバスアダプタ（「ＨＢＡ」と図示）である。
【００４１】
なお、図中では、ホスト装置１０Ａ又は１０Ｂは、ＬＡＮＣＮ１又はＳＡＮＣＮ３を介して第１の記憶制御システム６００のみに接続されているが、ホスト装置１０Ａ及び１０Ｂの少なくとも一方と第２の記憶制御システム４０とを第２の通信ネットワークＣＮ２を介して接続してもよい。第２の通信ネットワークＣＮ２は、例えば、ＳＡＮ、ＬＡＮ、インターネット、専用回線、公衆回線等から構成できるが、本実施形態では、ファイバチャネルスイッチ（以下、「ＦＣ−ＳＷ」と略記）２によって構成されるものとする。
【００４２】
第１の記憶制御システム６００は、例えば、アレイ状に配列された多数のディスク記憶装置を備えるＲＡＩＤシステムである。但し、これに限らず、第１の記憶制御システム６００を、高機能化されたインテリジェント型のファイバチャネルスイッチとして構成することもできる。第１の記憶制御システム６００は、後述のように、第２の記憶制御システム４０の有する記憶資源を自己の論理ボリューム（Logical Unit）としてホスト装置１０に提供するものであるから、自己が直接支配するローカルな記憶デバイスを有していなくても良い。
【００４３】
第１の記憶制御システム６００は、記憶制御サブシステム２０と、ディスクユニット３０とに大別することができる。記憶制御サブシステム２０は、例えば、チャネル制御部２１と、ディスク制御部８００と、ＳＶＰ（Service Processor）２３と、キャッシュメモリ２４と、共有メモリ２５と、接続部２６とを備えている。チャネル制御部２１には、例えば、１以上のチャネルアダプタＮＡＳ（ＣＨＮ）２１Ａと、１以上のチャネルアダプタ（ＣＨＡ）２１Ｃと、１以上のファイバチャネルアダプタ（ＣＨＦ）２１Ｂとが含まれる。ディスク制御部８００には、複数のディスクアダプタ（ＤＫＡ）２２が含まれる。
【００４４】
ＣＨＮ２１Ａは、ホスト装置１０Ａとの間のデータ通信を行うものである。ＣＨＮ２１Ａは、ホスト装置１０Ａと通信を行うための通信ポート２０７Ａを備えている。また、ＣＨＮ２１Ａは、例えば、ＣＰＵやメモリ等を備えたマイクロコンピュータシステムとして構成されており、ホスト装置１０Ａから受信した各種コマンドを解釈して実行する。ＣＨＮ２１Ａには、そのＣＨＮ２１Ａを識別するためのネットワークアドレス（例えば、ＩＰアドレスやＷＷＮ）が割り当てられている。ＣＨＡ２１Ｎは、ホスト装置１０からＬＡＮＣＮ１を介してファイル単位でのＩ／Ｏコマンド（例えば、ファイル名と、そのファイル名を持つファイルをリード又はライトする命令とを含んだコマンド、以下、「ファイルＩ／Ｏコマンド」と言う）を受けて、そのファイルＩ／Ｏコマンドを処理するＮＡＳ（Network Attached Storage）として振る舞うことができるようになっている。ＣＨＮ２１Ａの構成及び機能については後に詳述する。
【００４５】
ＣＨＡ２１Ｃは、ホスト装置１０Ｂとの間のデータ通信を行うものである。ＣＨＡ２１Ｃは、ホスト装置１０Ｂと通信を行うための通信ポート２０７Ｃを備えている。また、ＣＨＡ２１Ｃは、例えば、ＣＰＵやメモリ等を備えたマイクロコンピュータシステムとして構成されており、ホスト装置１０Ｂから受信した各種コマンドを解釈して実行する。ＣＨＡ２１Ｃには、そのＣＨＡ２１Ｃを識別するためのネットワークアドレス（例えば、ＩＰアドレスやＷＷＮ）が割り当てられている。ＣＨＡ２１Ｃは、ホスト装置１０ＢからＳＡＮＣＮ３を介してブロック単位でのＩ／Ｏコマンド（以下、ブロックＩ／Ｏコマンド）を受け、そのブロックＩ／Ｏコマンドを処理することができるようになっている。なお、ブロック単位とは、後述のディスク記憶装置４００上の記憶領域におけるデータの管理単位である。
【００４６】
ＣＨＦ２１Ｂは、通信ポート２０７Ｂを介してＦＣ−ＳＷ２に接続される。ＣＨＦ２１Ｂは、例えば、ＣＰＵやメモリ等を備えたマイクロコンピュータシステムとして構成されており、ＦＣ−ＳＷ２を介して、第２の記憶制御システム４０との間でデータを送受信する。ＣＨＦ２１Ｂの構成及び機能については、後に詳述する。
【００４７】
各ＤＫＡ２２は、ディスクユニット３０内の論理的な記憶デバイス（以下、ＬＤＥＶ）３１，３２との間のデータ授受を行うものである。各ＤＫＡ２２は、ＬＤＥＶ３１，３２を備えるディスク型記憶装置４００に接続するための通信ポート２２Ａを備えている。また、各ＤＫＡ２２は、ＣＰＵやメモリ等を備えたマイクロコンピュータシステムとして構成されている。各ＤＫＡ２２は、ＣＨＮ２１Ａ或いはＣＨＡ２１Ｃから受信したデータをＬＤＥＶ３１、３２に書込んだり、また、ＬＤＥＶ３１，３２から読み出したデータをＣＨＮ２１Ａ或いはＣＨＡ２１Ｃに送信したりする。各ＤＫＡ２２は、ＬＤＥＶ３１，３２との間でデータ入出力を行う場合、論理的なアドレスを物理的なアドレスに変換する。
【００４８】
キャッシュメモリ（以下、「ＣＭ」と略記する場合有り）２４は、例えば揮発性又は不揮発性のメモリであり、ホスト装置１０から受信したデータや、ＬＤＥＶ３１，３２から読出されたデータを一時的に記憶するものである。また、キャッシュメモリ２４には、後述するＩ／Ｏ振分け制御データ８２０を格納することもできるが、それに代えて或いは加えて、Ｉ／Ｏ振分け制御データ８２０を、ＬＤＥＶ３１内に格納しておくこともできる。
【００４９】
共有メモリ（以下、「ＳＭ」と略記する場合有り）２５は、例えば不揮発性のメモリであり、ホスト装置との間でやり取りされるデータに関する制御情報（例えば、ＣＭ２４上に確保されたどのキャッシュ領域にどのデータが格納されるべきかを示す情報）等が格納される。また、共有メモリ２５には、ワーク領域（例えば、ＣＨＮ２１Ａ、ＣＨＡ２１Ｃ、ＣＨＦ２１Ｂ及びＤＫＡ２２のＣＰＵ間でやり取りされるメッセージを一時的に記憶する領域）が設定されるほか、マッピングテーブル群ＴＧ等の各種データも格納される。なお、ＬＤＥＶ３１，３２のいずれか１つあるいは複数を、キャッシュ用のディスクとして使用してもよい。
【００５０】
接続部２６は、ＣＨＮ２１Ａ、ＣＨＡ２１Ｃ、ＣＨＦ２１Ｂ、各ＤＫＡ２２、キャッシュメモリ２４及び共有メモリ２５を相互に接続させる。接続部２６は、例えば、高速スイッチング動作によってデータ伝送を行う超高速クロスバスイッチ等のような高速バスとして構成することができる。
【００５１】
ディスユニット３０には、アレイ状に配列された複数のディスク記憶装置４００が含まれている。ディスク記憶装置４００としては、例えば、ハードディスク、フレキシブルディスク、磁気テープ、半導体メモリ、光ディスク等のようなデバイスを用いることができる。ディスク記憶装置４００の記憶領域上には、ＬＤＥＶ３１、３２が備えられている。ＬＤＥＶ３１（又は３２）には、後に詳述するＩ／Ｏ振分け制御データを格納することができる。なお、点線で示されるＬＤＥＶ３２は、第２の記憶制御システム４０の有するＬＤＥＶ４２を、第１の記憶制御システム６００に取り込んだ状態を示すものである。換言すれば、第１の記憶制御システム６００から見て外部に存在するＬＤＥＶ（以下、「外部ＬＤＥＶ」と言う）４２が、第１の記憶制御システム６００の内部ＬＤＥＶ３２としてホスト装置１０に提供される。
【００５２】
ＳＶＰ２３は、第１の記憶制御システム６００の保守又は管理を行うための情報処理端末（例えばノート型のパーソナルコンピュータ）である。ＳＶＰ２３は、例えば、内部ＬＡＮ４１０を介して、ＣＨＮ２１Ａ、ＣＨＡ２１Ｃ、ＣＨＦ２１Ｂ及び各ＤＫＡ２２内のプロセッサ（例えばＣＰＵ）に接続されている。ＳＶＰ２３は、第１の記憶制御システム６００内の障害発生を監視してディスプレイ画面に表示したり、ディスク記憶装置４００の閉塞処理等を指示したりするようになっている。
【００５３】
第２の記憶制御システム４０は、第１の記憶制御システム６００のような構成であっても良いし、第１の記憶制御システム６００よりも簡易な構成であっても良い。例えば、第２の記憶制御システム４０は、例えば、通信ポート４１を持ったＣＨＦ２１７と、１又は複数のディスク記憶装置４０１とを備えている。ディスク記憶装置４０１の記憶領域上には、ＬＤＥＶ４２が備えられている。第２の記憶制御システム４０は、ＦＣ−ＳＷ２を介して第１の記憶制御システム６００に接続されており、第２の記憶制御システム４０のＬＤＥＶ（つまり外部ＬＤＥＶ）４２は、第１の記憶制御システム６００の内部ＬＤＥＶ３２として扱われるようになっている。
【００５４】
内部ＬＤＥＶ３１（又は内部ＬＤＥＶ３２）及びＣＭ２４の少なくとも一方に、ブロックＩ／Ｏデータを第１の記憶制御システム６００と第２の記憶制御システム４０のどちらに振り分けるかの制御に使用されるＩ／Ｏ振分け制御データ８２０（例えば、後述するアドレス管理データ８５３及びファイルメタデータ８５４のうちの少なくともアドレス管理データ８５３）を格納することができる。このＩ／Ｏ振分け制御データ８２０（例えばアドレス管理データ８５３）は、例えば、ＳＶＰ２３が、ＣＨＮ２１Ａ、ＣＨＡ２１Ｃ、ＣＨＦ２１Ｂ及び各ＤＫＡ２２の少なくとも１つが有するプロセッサに対して、Ｉ／Ｏ振分け制御データ８２０（例えばアドレス管理データ８５３）を入力し、そのＩ／Ｏ振分け制御データ８２０をＣＭ２４及び内部ＬＤＥＶ３１（又は内部ＬＤＥＶ３２）の少なくとも一方に格納してもよい。
【００５５】
以上が、本実施形態に係る記憶システム１についての概要である。
【００５６】
図３は、第１の記憶制御システム６００と第２の記憶制御システム４０との論理的な接続構造を示す模式図である。
【００５７】
図示のように、第１の記憶制御システム６００は、下層側から順番に、ＶＤＥＶ１０１と、ＬＤＥＶ３１と、ＬＵＮ１０３とからなる３層の記憶階層を有している。
【００５８】
ＶＤＥＶ１０１は、論理的な記憶階層の最下位に位置する仮想デバイス（Virtual
Device）である。ＶＤＥＶ１０１は、物理的な記憶資源を仮想化したものであり、RAID構成を適用することができる。即ち、１つのディスク記憶装置４００から複数のＶＤＥＶ１０１を形成することもできるし（スライシング）、複数のディスク記憶装置４００から１つのＶＤＥＶ１０１を形成することもできる（ストライピング）。図３中の左側に示すＶＤＥＶ１０１は、例えば、所定のRAID構成に従ってディスク記憶装置４００を仮想化している。
【００５９】
一方、図３中の右側に示すＶＤＥＶ１０１は、第２の記憶制御システム４０のディスク記憶装置４０１により提供される外部ＬＤＥＶ４２を、マッピングテーブル群ＴＧ（例えばその中のマッピングテーブルＴｍ）を用いてＶＤＥＶ１０１にマッピングすることにより、第１の記憶制御システム６００の内部ＬＤＥＶ３２として使用できるようになっている。図に示す例では、４つの第２記憶制御システム４０Ａ〜４０Ｄにそれぞれ存在する４つの外部ＬＤＥＶ４２Ａ〜４２Ｄをストライピングすることにより、ＶＤＥＶ１０１を構築している。各外部ＬＤＥＶ４２Ａ〜４２Ｄには、それぞれの通信ポート４１Ａ〜４１ＤからそれぞれのＬＵＮ（Logical Unit Number）４３Ａ〜４３Ｄを特定することにより、それぞれ個別にアクセスすることができる。各通信ポート４１Ａ〜４１Ｄには、ユニークな識別情報であるＷＷＮ（World
Wide Name）が割り当てられている。このため、第１の記憶制御システム６００は、ＷＷＮ及びＬＵＮの組合せをＦＣ−ＳＷ２に指定すれば、ＦＣ−ＳＷ２を介して、その組合せに含まれるＬＵＮに属する外部ＬＤＥＶ４２を見ることができる。なお、ＬＵＮに属するＬＤＥＶが複数個有る場合には、複数のＬＤＥＶが１つの論理的な記憶デバイスとして、第１の記憶制御システム６００からホスト装置１０に提供される。
【００６０】
マッピングテーブル群ＴＧには、マッピングテーブルＴｍと、そのマッピングテーブルＴｍに基づいて用意された第１の変換テーブルＴ１及び第２のテーブルＴ２とが含まれている。各テーブルＴｍ、Ｔ１及びＴ２については後に詳述する。
【００６１】
さて、ＶＤＥＶ１０１の上位には、内部ＬＤＥＶ３２が設けられている。内部ＬＤＥＶ３２は、仮想デバイス（ＶＤＥＶ）を仮想化した論理デバイスである。１つのＶＤＥＶ１０１から２つの内部ＬＤＥＶ３２に接続することもできるし、複数のＶＤＥＶ１０１から１つの内部ＬＤＥＶ３２に接続することもできる。内部ＬＤＥＶ３２には、それぞれのＬＵＮ１０３を介してアクセスすることができる。このように、本実施形態では、ＬＵＮ１０３と外部ＬＤＥＶ４２との間に位置する中間記憶階層（ＶＤＥＶ１０１及び内部ＬＤＥＶ３２）に外部ＬＤＥＶ４２を接続することにより、外部ＬＤＥＶ４２を第１の記憶制御システム６００の内部ＬＤＥＶ３２の１つとして利用できるようにしている。
【００６２】
この図に示すように、第１の記憶制御システム６００内には、外部ＬＤＥＶ４２に接続された内部ＬＤＥＶ３２と、外部ＬＤＥＶ４２に接続されていない内部ＬＤＥＶ３１とが混在している。そして、図示の例では、ＬＵＮ「１」に対して、内部ＬＤＥＶ３１と内部ＬＤＥＶ３２とが対応付けられている。このため、第１の記憶制御システム６００は、ホスト装置１０ＡからＬＵＮ「１」の指定を受けた場合は、内部ＬＤＥＶ３１が有する記憶領域と、内部ＬＤＥＶ３２に対応付けられた外部ＬＤＥＶ４２が有する記憶領域とが合わさった１つの論理ユニット（ＬＵ）をアクセス対象としてホスト端末１０Ａに提供することができる。
【００６３】
図４は、マッピングテーブルＴｍの概要を示す。
【００６４】
マッピングテーブルＴｍには、ＶＤＥＶ１０１をそれぞれ識別するためのＶＤＥＶ識別情報（以下、「ＶＤＥＶ＃」と示す）と、外部ＬＤＥＶ４２に関する情報（以下、「外部デバイス情報」と言う）とが対応付けられる。外部デバイス情報には、例えば、システム識別情報と、外部ＬＤＥＶ４２の記憶容量と、デバイスの種別を示す情報と（例えば、テープ系デバイスかディスク系デバイスか等）、外部ＬＤＥＶ４２へのパス情報とが含まれている。システム識別情報は、例えば、第２の記憶制御システム４０のベンダＩＤ、機種、及び製造番号を含んだ情報である。パス情報は、例えば、各通信ポート４１に固有の識別情報（ＷＷＮ）と、ＬＵＮ４とを含んで構成できる。なお、図４中に示すシステム識別情報やＷＷＮ等は、説明の便宜上の値であって特に意味はない。また、図４中の下側に示すＶＤＥＶ番号「３」のＶＤＥＶ１０１には、３個のパス情報が対応付けられている。即ち、このＶＤＥＶ１０１（＃３）にマッピングされる外部ＬＤＥＶ４２は、その内部に３つの経路を有する交代パス構造を備えているが、ＶＤＥＶ１０１（＃３）には、この交代パス構造を認識してマッピングされている。これら３つの経路のいずれを通っても同一の記憶領域にアクセスできることが判明しているため、いずれか１つまたは２つの経路に障害等が発生した場合でも、残りの正常な経路を介して所望のデータにアクセスできる。
【００６５】
図４に示すようなマッピングテーブルＴｍを採用することにより、第１の記憶制御システム６００内の１つ以上の内部ＶＤＥＶ３２に対し、１つまたは複数の外部ＬＤＥＶ４２をマッピングすることができる。
【００６６】
図５は、ＣＨＮ２１Ａの構成例を示すブロック図である。
【００６７】
ＣＨＮ２１Ａは、通信ポート２０７Ａと、ＬＡＮコントローラ５０３と、データ転送ＬＳＩ５０１と、ブリッジＬＳＩ５０２と、Ｉ／Ｏプロセッサ５０４及びＩ／Ｏメモリ５０７を備えた１又は複数の入出力制御部５１０と、メモリコントローラ５０５と、ＮＡＳプロセッサ５０６と、ＣＨＮメモリ５０８と、コネクタ５０９とを備えている。
【００６８】
ＬＡＮコントローラ５０３は、メモリコントローラ５０５及びブリッジＬＳＩを介してＮＡＳプロセッサ５０６から受けた指示に従って、通信ポート２０７Ａの制御を行う。ＬＡＮントローラ５０３は、例えば、ＴＣＰ／ＩＰプロトコルに従って、ファイルＩ／Ｏコマンドの送受信を制御する。
【００６９】
ブリッジＬＳＩ５０２は、例えば、ＬＡＮコントローラ５０３、メモリコントローラ５０５、及びデータ転送ＬＳＩ５０１の相互の通信を可能とするためのＬＳＩ（Large-Scale Integrated circuit）である。
【００７０】
メモリコントローラ５０５は、ＮＡＳプロセッサ５０６とＣＨＮメモリ５０８との間の通信を制御するためのＬＳＩである。メモリコントローラ５０５は、ＮＡＳプロセッサ５０６、ＣＨＮメモリ５０８及びブリッジＬＳＩ５０２に接続される。
【００７１】
ＣＨＮメモリ５０８は、ＮＡＳプロセッサ５０６の制御を司るプログラムや、ＣＭ２４とホスト装置１０Ａとの間でやり取りされるデータ等を記憶することができる。ＣＨＮメモリ５０８は、例えば、コマンド解析処理プログラム８１１、Ｉ／Ｏ振分け処理プログラム８１２、ファイルシステムプログラム８１７及びネットワーク制御プログラム８１８等を記憶することができる。コマンド解析処理プログラム８１１、Ｉ／Ｏ振分け処理プログラム８１２、ファイルシステムプログラム８１７及びネットワーク制御プログラム８１８は、ＣＰＵ等のコンピュータ（例えばＮＡＳプロセッサ５０６）に読込まれて、そのコンピュータに所定の処理を実行させることができる。例えば、コマンド解析処理プログラム８１１は、ホスト装置１０Ａから受信したファイルＩ／Ｏコマンドの解析処理をコンピュータに行わせるためのコンピュータプログラムである。Ｉ／Ｏ振分け処理プログラム８１２は、後述するＩ／Ｏ振分け処理をコンピュータに行わせるためのコンピュータプログラムである。ファイルシステムプログラム８１７は、例えば、ファイルＩ／Ｏコマンドに含まれているファイル名と、そのファイル名を有するファイルが格納されている場所のアドレス情報（例えばＬＵＮ及び先頭論理ブロックアドレス）との対応づけを管理し、その対応付けに基づいて、ファイルＩ／ＯコマンドをブロックＩ／Ｏコマンドに変換する。ネットワーク制御プログラム８１８は、例えば、ＮＦＳ（Network File System）とＳａｍｂａの２つのファイルシステムプロトコルを含んで構成される。ＮＦＳは、ＮＦＳが動作するＵＮＩＸ（登録商標）オペレーティングシステムを搭載したホスト装置からのファイルＩ／Ｏコマンドを受け付ける。一方、Ｓａｍｂａは、ＣＩＦＳ（Common
Interface File System）が動作するＷｉｎｄｏｗｓ（登録商標）オペレーティングシステムを搭載したホスト端末らのファイルＩ／Ｏコマンドを受け付ける。
【００７２】
ＮＡＳプロセッサ５０６は、ＣＰＵ又はマイクロプロセッサである。ＮＡＳプロセッサ５０６は、例えば、Ｉ／Ｏプロセッサ５０４よりも、高性能の（例えば演算処理速度が速い）プロセッサである。ＮＡＳプロセッサ５０６は、メモリコントローラ５０５に接続されている。ＮＡＳプロセッサ５０６は、ＣＨＮメモリ５０８に格納されているコマンド解析処理プログラム８１１、Ｉ／Ｏ振分け処理プログラム８１２、ファイルシステムプログラム８１７及びネットワーク制御プログラム８１８等を読出し、読み出したコンピュータプログラムに従う処理を実行することができる。例えば、ＮＡＳプロセッサ５０６は、ネットワーク制御プログラム８１８により、ホスト装置１０ＡからのファイルＩ／Ｏコマンドを受け付ける。また、ＮＡＳプロセッサ５０６は、コマンド解析処理プログラム８１１により、ホスト装置１０Ａから受信しＣＨＮメモリ５０８に格納されたファイルＩ／Ｏコマンドがリードコマンドであるかライトコマンドであるか等を解析する。また、ＮＡＳプロセッサ５０６は、ファイルシステムプログラム８１７により、ホスト装置１０Ａから受信しＣＨＮメモリ５０８に格納されたファイルＩ／ＯコマンドをブロックＩ／Ｏコマンドに変換してＩ／Ｏプロセッサ５０４に出力する。また、ＮＡＳプロセッサは、Ｉ／Ｏ振分け処理プログラム８１２により、ブロックＩ／Ｏコマンドが、内部ＬＤＥＶ３１に格納されるべきか外部ＬＤＥＶ４２に格納されるべきかの判断を行い、その判断結果に基づいて、Ｉ／Ｏプロセッサ５０４に、そのブロックＩ／Ｏコマンドを内部ＬＤＥＶ３１と外部ＬＤＥＶ４２とに振分けさせることができる。
【００７３】
Ｉ／Ｏプロセッサ５０４は、ＣＰＵ又はマイクロプロセッサであり、Ｉ／Ｏメモリ５０７から読み出したコンピュータプログラムにより、接続部２６との間のデータの授受や、ＣＨＡ２１ＣやＣＨＦ２１Ｂ上のＩ／Ｏプロセッサとの間のコマンドの授受や、ＮＡＳプロセッサ５０６と接続部２６との間のデータ通信の中継等を制御することができる。また、Ｉ／Ｏプロセッサ５０４は、ＳＶＰ２３と通信することができる。
【００７４】
Ｉ／Ｏメモリ５０７は、Ｉ／Ｏプロセッサ５０４の制御を司るコンピュータプログラム等を格納する。
【００７５】
データ転送ＬＳＩ５０１は、接続部２６に接続されるコネクタ５０９と、Ｉ／Ｏプロセッサ５０４と、ブリッジＬＳＩとに接続され、データの転送の制御を行うＬＳＩである。
【００７６】
以上が、ＣＨＮ２１Ａの構成及び機能である。なお、上述したコマンド解析処理プログラム８１１及びＩ／Ｏ振分け処理プログラム８１２のうちの少なくともＩ／Ｏ振分け処理プログラム８１２は、Ｉ／Ｏメモリ５０７に格納し、Ｉ／Ｏプロセッサ５０４に、Ｉ／Ｏ振分け処理を実行させることができる。それについては、本実施形態の変形例として後に詳述する。
【００７７】
図６は、ＣＨＦ２１Ｂの構成例を示すブロック図である。
【００７８】
ＣＨＦ２１Ｂには、通信ポート２０７Ｂと、ＦＣコントローラ６０２と、データ転送ＬＳＩ６０１と、ＩＯプロセッサ６０３と、Ｉ／Ｏメモリ６０４と、コネクタ６０５とを備えている。
【００７９】
通信ポート２０７Ｂは、第２の記憶制御システム４０等の外部機器と通信を行うためのポートである。
【００８０】
ＦＣコントローラ６０２は、通信ポート２０７Ｂとデータ転送ＬＳＩ６０１との間に介在する。ＦＣコントローラ６０２は、例えば，ファイバチャネルプロトコルに従い，ブロックＩ／Ｏコマンドの授受を制御する。
【００８１】
Ｉ／Ｏメモリ６０４には、Ｉ／Ｏプロセッサ６０３の制御を司るプログラムを格納するためのものである。Ｉ／Ｏメモリ６０４は、例えば、外部アクセス処理プログラム８１４を記憶している。外部アクセス処理プログラム８１４は、このプログラム８１４を読込んだコンピュータに、受信したブロックＩ／Ｏコマンドを第２の記憶制御システム６０に転送する処理を実行させるためのコンピュータプログラムである。
【００８２】
Ｉ／Ｏプロセッサ６０３は、ＣＰＵ又はマイクロプロセッサである。Ｉ／Ｏプロセッサ６０３は、データ転送ＬＳＩ６１０、Ｉ／Ｏメモリ６０４及びＳＶＰ２３に接続されており、Ｉ／Ｏメモリ６０４内の種々のコンピュータプログラムを読込んで、データやコマンドの授受を制御する。
【００８３】
データ転送ＬＳＩ６０１は、接続部２６に接続されるコネクタ６０５と、Ｉ／Ｏプロセッサ６０３と、ＦＣコントローラ６０２とに接続され、データ転送の制御を行うＬＳＩである。
【００８４】
以下、本実施形態において行われる種々の処理流れを説明する。
【００８５】
図７は、Ｉ／Ｏ振分け制御データ８２０の授受に関する処理流れを示す。
【００８６】
Ｉ／Ｏ振分け制御データ８２０は、例えば図７（Ａ）又は図７（Ｂ）に示す処理流れによって、ＣＨＮ２１Ａ内のＣＨＮメモリ５０８上に記憶させることができる。
【００８７】
すなわち、図７（Ａ）に示すように、ＮＡＳプロセッサ５０６が、Ｉ／Ｏプロセッサ５０４に、Ｉ／Ｏ振分け制御データ８２０を取得することの指示を出力する（ステップＳ５００）。
【００８８】
Ｉ／Ｏプロセッサ５０４は、その指示に応答して、ＣＭ２４に記憶されているＩ／Ｏ振分け制御データ８２０を、ＣＨＮメモリ５０８に読み出す（Ｓ５０１）。これにより、ＣＨＮメモリ５０８に、Ｉ／Ｏ振分け制御データ８２０が格納される（Ｓ５０２）。
【００８９】
また、図７（Ｂ）に示すように、ＮＡＳプロセッサ５０６が、Ｉ／Ｏプロセッサ５０４に、Ｉ／Ｏ振分け制御データ８２０を取得することの指示を出力する（Ｓ５１０）。
【００９０】
Ｉ／Ｏプロセッサ５０４は、その指示に応答して、Ｉ／Ｏ振分け制御データ８２０を記憶している内部ＬＤＥＶ３１にアクセスすることができるＤＫＡ２２に、Ｉ／Ｏ振分け制御データ８２０を読み出すことのＩ／Ｏリードコマンドを出力する（Ｓ５１１）。
【００９１】
そのＩ／Ｏリードコマンドを受けたＤＫＡ２２は、ＣＭ２４上にキャッシュ領域を確保して、Ｉ／Ｏ振分け制御データ８２０を記憶している内部ＬＤＥＶ３１からＩ／Ｏ振分け制御データ８２０を取得しそのキャッシュ領域に格納する（Ｓ５１２）。
【００９２】
Ｉ／Ｏプロセッサ５０４は、上記確保されたキャッシュ領域からＩ／Ｏ振分け制御データ８２０をＣＨＮメモリ５０８に読み出す（Ｓ５１３）。これにより、ＣＨＮメモリ５０８に、Ｉ／Ｏ振分け制御データ８２０が格納される（Ｓ５１４）。
【００９３】
ＮＡＳプロセッサ５０６は、ＣＨＮメモリ５０８に格納されたＩ／Ｏ振分け制御データ８２０を用いて、後述するＩ／Ｏ振分け処理を実行することができる。なお、Ｉ／Ｏ振分け制御データ８２０には、例えば、図示のように、アドレス管理データ８５３と、ファイルメタデータ８５４とが含まれている。アドレス管理データ８５３及びファイルメタデータ８５４については後に詳述する。
【００９４】
図８は、ホスト装置１０Ａから受信したファイルＩ／ＯコマンドをブロックＩ／Ｏコマンドに変換して出力する際に行われる処理流れを示す。
【００９５】
ホスト装置１０Ａから出力されたファイルＩ／Ｏコマンドは、ＣＨＮ２１Ａが受信してＣＨＮメモリ５０８に格納される（Ｓ５５０）。なお、ファイルＩ／Ｏコマンドは、ファイルライトコマンドの場合、例えば、書込み対象のデータファイルと、それのファイル名と、ＬＵＮとを含む。また、ファイルＩ／Ｏコマンドは、ファイルリードコマンドの場合、例えば、読出し対象のデータファイルのファイル名と、ＬＵＮとを含む。
【００９６】
ＮＡＳプロセッサ５０６は、ＣＨＮメモリ５０８に格納されたファイルＩ／Ｏコマンドを読出し（Ｓ５５１）、ファイル解析処理プログラム８１１に従って、そのファイルＩ／Ｏコマンドがファイルライトコマンドであるか或いはファイルリードコマンドであるか等の解析を行う（Ｓ５５２）。
【００９７】
また、ＮＡＳプロセッサ５０６は、ファイルシステムプログラム８１７に従って、ファイルＩ／ＯコマンドをブロックＩ／Ｏコマンドに変換する（Ｓ５５３）。そして、ＮＡＳプロセッサ５０６は、変換されたブロックＩ／Ｏコマンドに含まれるアドレス情報と、Ｉ／Ｏ振分け制御データ８２０とに基づいて、後述するＩ／Ｏ振分け処理を行う（Ｓ５５４）。
【００９８】
Ｓ５５４のＩ／Ｏ振分け処理の結果、外部アクセス要求処理を行うことになれば（Ｓ５５５でＹ）、ＮＡＳプロセッサ５０６は、外部アクセス要求と、変換されたブロックＩ／ＯコマンドとをＩ／Ｏプロセッサ５０４に出力する（Ｓ５５６）。その場合、Ｉ／Ｏプロセッサ５０４は、受信したブロックＩ／Ｏコマンドを、接続部２６を介してＣＨＦ２１ＡのＩ／Ｏプロセッサ６０３に送信する（Ｓ５５７）。ＣＨＦ２１ＡのＩ／Ｏプロセッサ６０３は、マッピングテーブル群ＴＧを参照して、ＣＨＮ２１Ａから受信したブロックＩ／Ｏコマンドに含まれている内部ＬＵＮを外部ＬＵＮに変換する等の外部アクセス処理を行い（Ｓ５５８）、外部ＬＵＮを有するブロックＩ／Ｏコマンドを、第２の通信ネットワークＣＮ２を介して第２の記憶制御システム４０のＣＨＦ２１７に転送する（Ｓ５５９）。
【００９９】
一方、Ｓ５５４のＩ／Ｏ振分け処理の結果、内部アクセス要求処理を行うことになれば（Ｓ５５５でＮ）、ＮＡＳプロセッサ５０６は、内部アクセス要求と、変換されたブロックＩ／ＯコマンドとをＩ／Ｏプロセッサ５０４に出力する（Ｓ５６０）。その場合、Ｉ／Ｏプロセッサ５０４は、受信したブロックＩ／Ｏコマンドを、接続部２６を介してＤＫＡ２２に送信する（Ｓ５６１）。それにより、ＤＫＡ２２によって、ブロックＩ／Ｏコマンド内のデータが、そのブロックＩ／Ｏコマンドに含まれているアドレス情報が示す内部ＬＤＥＶ３１内の記憶領域に書き込まれるか、或いは、ブロックＩ／Ｏコマンドに含まれているアドレス情報が示す内部ＬＤＥＶ３１内の記憶領域からデータが読み出されたりする。データが読み出された場合、ＣＨＮ２１ＡのＩ／Ｏプロセッサ５０４が、ＤＫＡ２２からＣＭ２４を介してデータを取得し、取得したデータをホスト装置１０Ａに送信する。
【０１００】
この図に示す処理流れにおいて、Ｓ５５８の外部アクセス処理は、ＣＨＦ２１ＢのＩ／Ｏプロセッサに代えて、ＣＨＮ２１Ａ（又はＣＨＡ２１Ｃ）のＩ／Ｏプロセッサが行っても良い。その場合、ＣＨＦ２１ＢのＩ／Ｏプロセッサは、受信したブロックＩ／Ｏコマンドを第２の記憶制御システム４０に転送するだけで良い。
【０１０１】
図９は、振分け制御データ８２０に含まれるアドレス管理テーブル８５３及びファイルメタデータ８５４の構成例と、その振分け制御データ８２０に基づいて行われるＩ／Ｏ振分け処理の詳細な処理流れとを示す。
【０１０２】
振分け制御データ８２０には、前述したように、アドレス管理テーブル８５３と、ファイルメタデータ８５４とが含まれている。
【０１０３】
アドレス管理テーブル８５３には、複数のアドレス情報と、複数のアドレス情報の各々が内部と外部のどちらに対応するかの情報とが記録されている。アドレス情報は、例えば、ＬＵＮと先頭ＬＢＡ（論理ブロックアドレス）との組合せを採用することができる。また、「内部」とは、第１の記憶制御システム６００内であることを意味し、「外部」とは、第１の記憶制御システム６００の外部にある第２の記憶制御システム内であることを意味する。
【０１０４】
ファイルメタデータ８５４には、ＮＡＳプロセッサ８０６のファイルシステムプログラム８１８が管理している複数のファイルの各々に関する属性情報、例えば、ファイル名と、そのファイル名を持つファイルが記憶されている場所を表すアドレス情報（例えばＬＵＮ及び先頭ＬＢＡ）と、そのファイルのデータサイズとが記録されている。図示しないが、ファイルメタデータ８５４には、所有者、更新時刻等の他の属性情報が含まれていても良い。また、ファイルメタデータ８５４には、ファイルだけでなく、ディレクトリに関する属性情報も記録されても良い。
【０１０５】
以下、Ｉ／Ｏ振分け処理について説明する。
【０１０６】
コンピュータ（例えばＮＡＳプロセッサ５０６）に読込まれたＩ／Ｏ振分け処理プログラム８１２は、アドレス管理テーブル８５３を参照し、変換されたブロックＩ／Ｏコマンドに含まれているアドレス情報（換言すれば、ファイルＩ／Ｏコマンドに含まれているファイル名に対応するアドレス情報）が内部と外部のどちらに対応するのかを判別する（Ｓ５５４Ａ）。又は、Ｉ／Ｏ振分け処理プログラム８１２は、ファイルＩ／Ｏコマンドに含まれているファイル名に対応したアドレス情報をファイルメタデータ８５４から取得し、アドレス管理テーブル８５３を参照して、取得したアドレス情報が内部と外部のどちらに対応するのかを判別する（Ｓ５５４Ａ）。
【０１０７】
Ｓ５５４Ａの判別の結果、Ｉ／Ｏ振分け処理プログラム８１２は、外部であると特定された場合には（Ｓ５５４Ｂで外部）、外部アクセス要求を行うことを決定する（Ｓ５５４Ｃ）。この場合、図８のＳ５５６の処理が実行される。
【０１０８】
Ｓ５５４Ａの判別の結果、Ｉ／Ｏ振分け処理プログラム８１２は、内部であると特定された場合には（Ｓ５５４Ｂで内部）、内部アクセス要求を行うことを決定する（Ｓ５５４Ｄ）。この場合、図８のＳ５６０の処理が実行される。
【０１０９】
Ｓ５５４Ａの判別の結果、Ｉ／Ｏ振分け処理プログラム８１２は、外部と内部の両方であると特定された場合には（Ｓ５５４Ｂで両方）、外部アクセス要求と内部アクセス要求の両方を行うことを決定する（Ｓ５５４Ｄ）。この場合、図８のＳ５５６とＳ５６０の両方の処理が実行される。なお、両方であると特定されるケースとしては、例えば、書込み先或いは読出し先のアドレス範囲が、外部ＬＤＥＶ４２が対応付けられていない内部ＬＤＥＶ３１が有するアドレス情報と、外部ＬＤＥＶ４２が対応付けられている内部ＬＤＥＶ３２が有するアドレス情報の両方を含んでいる場合がある。具体的な例としては、例えば、図３において、ＬＵＮ「１」が有する記憶領域全体にデータが格納される場合である。
【０１１０】
以上のような流れで、Ｉ／Ｏ振分け処理が行われる。
【０１１１】
さて、ファイルメタデータ８５４に記録されている内容は、内部ＬＤＥＶ３１及び内部ＬＤＥＶ３２（つまり外部ＬＤＥＶ４２）にデータが書き込まれたり、内部ＬＤＥＶ３１、３２からデータが削除されたりした場合に適宜に更新される。
【０１１２】
図１０は、ファイルメタデータ８５４が更新される場合に行なわれる処理流れを示す。
【０１１３】
ファイルメタデータ８５４は、例えば図１０（Ａ）又は図１０（Ｂ）に示す処理流れによって更新することができる。
【０１１４】
すなわち、図１０（Ａ）に示すように、ＮＡＳプロセッサ５０６は、内部ＬＤＥＶ３１、３２にデータが書き込まれたり、内部ＬＤＥＶ３１、３２からデータが削除されたりした場合等の所定のイベントが発生した場合に、ＣＨＮメモリ５０８に読み出されたファイルメタデータ８５４を更新する（Ｓ７００）。
【０１１５】
その後、ＮＡＳプロセッサ５０６は、所定のタイミングで（例えばＳ７００の後直ちに）、Ｉ／Ｏプロセッサ５０４に、ＣＨＮメモリ５０８内の更新後のファイルメタデータ８５４をＣＭ２４に転送することの転送指示を出力する（Ｓ７０１）。
【０１１６】
Ｉ／Ｏプロセッサ５０４は、その転送指示に応答して、ＣＨＮメモリ５０８内の更新後のファイルメタデータ８５４を読み出してＣＭ２４に転送する（Ｓ７０２）。それにより、ＣＭ２４に記憶されているファイルメタデータは、ＣＨＮメモリ５０８内の更新後のファイルメタデータ８５４に更新される。
【０１１７】
また、図１０（Ｂ）に示すように、ＮＡＳプロセッサ５０６は、Ｓ７００と同様に、ＣＨＮメモリ５０８に読み出されたファイルメタデータ８５４を更新する（Ｓ８００）。
【０１１８】
その後、ＮＡＳプロセッサ５０６は、所定のタイミングで（例えばＳ８００の後直ちに）、Ｉ／Ｏプロセッサ５０４に、ＣＨＮメモリ５０８内の更新後のファイルメタデータ８５４を、内部ＬＤＥＶ３１に転送することの転送指示を出力する（Ｓ８０１）。
【０１１９】
Ｉ／Ｏプロセッサ５０４は、その転送指示に応答して、ＣＭ２４上にキャッシュ領域を確保し、ファイルメタデータを記憶している内部ＬＤＥＶ３１にアクセスすることができるＤＫＡ２２にＩ／Ｏライトコマンドを出力すると共に（Ｓ８０２）、確保したキャッシュ領域に、ＣＨＮメモリ５０８内の更新後のファイルメタデータ８１３を読み出す（Ｓ８０３）。
【０１２０】
Ｉ／Ｏライトコマンドを受けたＤＫＡ２２は、確保されたキャッシュ領域から更新後のファイルメタデータを取得し（Ｓ８０４）、取得した更新後のファイルメタデータ８５４を、内部ＬＤＥＶ３１内のファイルメタデータに上書きする（Ｓ８０５）。
【０１２１】
さて、次に、第１の記憶制御システム６００のＣＨＦ２１Ｂ（以下、第１ＣＨＦ２１Ｂ）と、第２の記憶制御システム４０のＣＨＦ２１７（第２ＣＨＦ２１７）との間で行われるやり取りによって、上述したマッピングテーブルＴｍ（図４参照）が作成する場合について説明する。
【０１２２】
図１１は、第１の記憶制御システム６００のＣＨＦ２１ＢがマッピングテーブルＴｍを作成する場合に行われる処理流れを示す。
【０１２３】
図示しないが、例えば、ＣＨＦ２１Ｂは、ＦＣ−ＳＷ２に調査コマンドを発行し、それに応答して、ＦＣ−ＳＷ２から、ＦＣ−ＳＷ２に接続されている第２の記憶制御システム４０にログインするために必要なログイン必要情報（例えば、ＦＣ−ＳＷ２に接続されている通信ポート４１のＷＷＮ）を受信する。そして、ＣＨＦ２１Ｂは、ＦＣ−ＳＷ２から受信した各第２記憶制御システム４０毎のログイン必要情報を、Ｉ／Ｏメモリ（換言すればローカルメモリ）６０４或いはＳＭ２５に登録する。
【０１２４】
第１ＣＨＦ２１Ｂは、例えば、ＶＤＥＶ１０１と外部ＬＤＥＶ４２とを対応付けることの要求をＳＶＰ２３から受けた場合、Ｉ／Ｏメモリ６０４（又はＳＭ２５）に登録されたログイン必要情報を用い、ＣＨＦ２１Ｂのイニシエータポート（２０７Ｂ）を介して、第２の記憶制御システム４０にログインする（Ｓ８３）。第２ＣＨＦ２１７が、第１ＣＨＦ２１Ｂからのログインに対して応答を返すことにより（Ｓ８４）、ログインが完了する。
【０１２５】
次に、第１ＣＨＦ２１Ｂは、例えば、SCSI（Small Computer
System Interface）規格で定められている照会コマンド（inquiryコマンド）を、第２ＣＨＦ２１７に送信する（Ｓ８５）。ここで言う照会コマンドは、照会先の装置の種類及び構成を明らかにするために用いられるもので、照会コマンド発行元は、照会先装置の有する物理的構造を把握することができる。
【０１２６】
例えば、照会コマンドを受信した第２ＣＨＦ２１７は、第２記憶制御システム４０Ａに関する制御システム情報を、第２記憶制御システム４０内の図示しないメモリから取得し、その制御システム情報を第１ＣＨＦ２１Ｂに送信して（Ｓ８６）、所定の応答を返す（Ｓ８７）。なお、ここで送信される制御システム情報には、例えば、第２記憶制御システム４０のベンダＩＤ、装置名称及び製造番号と、照会コマンドを受けた通信ポート４１ＡのＷＷＮと、そのＷＷＮに属するＬＵＮと、そのＬＵＮに属するＬＤＥＶ番号と、そのＬＤＥＶを備えているディスク種類とが含まれている。
【０１２７】
第１ＣＨＦ２１Ｂは、受信した制御システム情報（例えば、第２記憶制御システム４０のベンダＩＤ、装置名称及び製造番号を含んだシステム識別情報と、ＷＷＮ及びＬＵＮと、ディスク種類）を、マッピングテーブルＴｍの所定箇所（例えば、クライアントから指定されたＶＤＥＶ＃に対応した場所）に登録する（Ｓ８８）。
【０１２８】
次に、第１ＣＨＦ２１Ｂは、受信した制御システム情報中のＬＵＮに属する外部ＬＤＥＶ４２の記憶容量の問合せ（例えば、ＳＣＳＩプロトコルに基づくリードキャパシティコマンド）を第２ＣＨＦ２１７に送信する（Ｓ８９）。第２ＣＨＦ２１７は、第２記憶制御システム４０内の図示しないメモリに記憶されている記憶容量情報（例えば、ＬＵＮに属する１以上の外部ＬＤＥＶ４２のトータル記憶容量）を参照し、問合せされた記憶容量（すなわち、外部ＬＤＥＶ４２の記憶容量）を第１ＣＨＦ２１Ｂに返信し（Ｓ９０）、応答を返す（Ｓ９１）。第１ＣＨＦ２１Ｂは、受信した記憶容量を、マッピングテーブルＴｍの所定箇所（例えば、クライアントから指定されたＶＤＥＶ＃に対応した場所）に登録する（Ｓ９２）。
【０１２９】
以上の処理を行うことにより、ＶＤＥＶ＃と制御システム情報及び記憶容量との対応付けが行われる。
【０１３０】
ＶＤＥＶ＃と外部システム情報（制御システム情報と記憶容量とを含んだ情報）とのマッピングが行われた後、ホスト装置１０Ａが第１の記憶制御システム６００を介して外部ＬＤＥＶ４２との間でデータの入出力を行う場合は、マッピングテーブル群ＴＧ内の各種テーブルを参照してアドレス変換等が行われる。
【０１３１】
図１２〜図１４を参照して、第１の記憶制御システム６００と第２の記憶制御システム４０との間のデータ入出力について説明する。まず、データを書き込む場合について、図１２及び図１３に基づいて説明する。図１２は、データ書込み時の処理を示す模式図である。図１３は、図１２中の処理の流れを各種テーブルとの関係で示す説明図である。
【０１３２】
ＣＨＮ２１Ａは、ホスト装置１０Ａからのファイルレベルデータを変換して得られたブロックレベルデータを、内部ＬＤＥＶ３１又は３２にデータを書き込むことができる。
【０１３３】
ＣＨＮ２１Ａがデータを書き込もうとするＬＤＥＶが内部ＬＤＥＶ３１の場合、通常の処理によってデータが書き込まれる。即ち、ＣＨＮ２１Ａからのデータは、いったんキャッシュメモリ２４に格納され、キャッシュメモリ２４からＤＫＡ２２を介して、所定のディスク記憶装置４００の所定アドレスに格納される。この際、ＤＫＡ２２は、論理的なアドレスを物理的なアドレスに変換する。また、RAID構成の場合、同一のデータが複数のディスク記憶装置４００に記憶される。
【０１３４】
これに対し、ＣＨＮ２１Ａが書き込もうとするＬＤＥＶが、ＶＤＥＶ１０２を介して外部ＬＤＥＶ４２に接続されている内部ＬＤＥＶ３２の場合、図１２に示すような流れでデータが書き込まれる。図１２（ａ）は記憶階層を中心に示す流れ図であり、図１２（ｂ）はキャッシュメモリ２４の使われ方を中心に示す流れ図である。
【０１３５】
ＣＨＮ２１Ａは、書込み先の内部ＬＤＥＶ３２を特定するＬＤＥＶ番号とこの内部ＬＤＥＶ３２にアクセスするための通信ポート２０７Ａを特定するＷＷＮとを明示して、ブロック単位のＩ／Ｏライトコマンド（Write）を発行する（Ｓ１２１）。ＣＨＦ２１Ｂは、ＣＨＮ２１ＡからのＩ／Ｏライトコマンドを受信すると、第２の記憶制御システム４０に送信するためのブロック単位のＩ／Ｏライトコマンドを生成し、第２の記憶制御システム４０に送信する（Ｓ１２２）。ＣＨＦ２１Ｂは、ＣＨＮ２１Ａから受信したＩ／Ｏライトコマンド中の書込み先アドレス情報等を、外部ＬＤＥＶ４２に合わせて変更することにより、新たな書込みコマンドを生成する。
【０１３６】
次に、ＣＨＮ２１Ａは、書き込むべきデータをＣＨＦ２１Ｂに送信する（Ｓ１２３）。ＣＨＦ２１Ｂに受信されたデータは、内部ＬＤＥＶ３２からＶＤＥＶ１０１を介して（Ｓ１２４）、外部ＬＤＥＶ４２に転送される（Ｓ１２６）。ここで、ＣＨＮ２１Ａは、ホスト１０Ａからのデータをキャッシュメモリ２４に格納した時点で、ホスト装置１０に対し書込み完了の応答（Good）を返す（Ｓ１２５）。第２の記憶制御システム４０は、ＣＨＦ２１Ｂからデータを受信した時点で（あるいは外部ＬＤＥＶ４２に書込みを終えた時点で）、書込み完了報告をＣＨＦ２１Ｂに送信する（Ｓ１２７）。即ち、ＣＨＮ２１Ａがホスト装置１０Ａに対して書込み完了を報告する時期（Ｓ１２５）と、実際にデータが記憶デバイス４２に記憶される時期とは相違する（非同期方式）。従って、ホスト装置１０Ａは、実際にデータが外部ＬＤＥＶ４２に格納される前にデータ書込み処理から解放され、別の処理を行うことができる。
【０１３７】
図１２（ｂ）を参照する。キャッシュメモリ２４には、多数のサブブロック２４Ａが設けられている。第１の記憶制御システム６００は、ホスト装置１０から指定された論理ブロックアドレスをサブブロックのアドレスに変換し、キャッシュメモリ２４の所定箇所にデータを格納する（Ｓ１２４）。
【０１３８】
図１３を参照して、各種テーブルを利用してデータが変換される様子を説明する。図１３の上部に示すように、ＣＨＡ２１Ａは、ＬＵＮ及び論理ブロックアドレス（ＬＢＡ）を指定してデータを送信する。ＣＨＦ２１Ｂは、内部ＬＤＥＶ３２用に入力されたデータ（ＬＵＮ＋ＬＢＡ）を、図１３（ａ）に示す第１の変換テーブルＴ１に基づいて、ＶＤＥＶ１０１用のデータに変換する。第１の変換テーブルＴ１は、内部のＬＵＮ１０３を指定するデータをＶＤＥＶ１０１用データに変換するための、ＬＵＮ−ＬＤＥＶ−ＶＤＥＶ変換テーブルである。このテーブルＴ１は、例えばＳＭ２５に格納されている（後述のテーブルＴ２及びＴ２ａについても同様である）。このテーブルＴ１は、例えば、ＬＵＮと、そのＬＵＮ１０３に対応するＬＤＥＶ３２の番号（ＬＤＥＶ＃）及び最大スロット数と、ＬＤＥＶ１０２に対応するＶＤＥＶ１０１の番号（ＶＤＥＶ＃）及び最大スロット数等を対応付けることにより構成される。また、図示しないが、このテーブルＴ１には、どのＬＤＥＶ３２のどのＬＢＡが、キャッシュメモリ２４のどのスロットのどのサブブロックに対応するか等も登録されていても良い。このようなテーブルＴ１をＣＨＦ２１Ｂ（例えば第１ＣＨＦ２１Ｂ）が参照することにより、ＣＨＡ２１Ａからのデータ（ＬＵＮ＋ＬＢＡ）は、ＶＤＥＶ１０１用のデータ（ＶＤＥＶ＃＋ＳＬＯＴ＃＋ＳＵＢＢＬＯＣＫ＃）に変換される。
【０１３９】
次に、ＣＨＦ２１Ｂは、図１３（ｂ）に示す第２の変換テーブルＴ２を参照して、ＶＤＥＶ１０１用のデータを、第２の記憶制御システム４０の外部ＬＵＮ（外部ＬＤＥＶ４２）用に送信して記憶させるためのデータに変換する。第２の変換テーブルＴ２には、例えば、ＶＤＥＶ１０１の番号（ＶＤＥＶ＃）と、そのＶＤＥＶ１０１からのデータを第２の記憶制御システム４０に送信するためのイニシエータポートの番号と、データ転送先の通信ポート４１を特定するためのＷＷＮと、その通信ポートを介してアクセス可能なＬＵＮとが対応付けられている。この第２の変換テーブルＴ２に基づいて、ＣＨＦ２１Ｂは、記憶させるべきデータの宛先情報を、イニシエータポート番号＃＋ＷＷＮ＋ＬＵＮ＋ＬＢＡの形式に変換する。このように宛先情報が変更されたデータは、指定されたイニシエータポートから通信ネットワークＣＮ２を介して、指定された通信ポート４１に到達する。そして、データは、指定されたＬＵＮ４３でアクセス可能な外部ＬＤＥＶ４２の所定の場所に格納される。外部ＬＤＥＶ４２は、複数のディスク記憶装置４０１上に仮想的に構築されているので、データのアドレスは物理アドレスに変換されて、所定のディスクの所定アドレスに格納される。
【０１４０】
図１３（ｃ）は、別の第２の変換テーブルＴ２ａを示す。この変換テーブルＴ２ａは、外部記憶デバイス４２に由来するＶＤＥＶ１０１に、ストライプやRAIDを適用する場合に使用される。変換テーブルＴ２ａは、ＶＤＥＶ番号（ＶＤＥＶ＃）と、ストライプサイズと、RAIDレベルと、第２の記憶制御システム４０を識別するための番号（ＳＳ＃（ストレージシステム番号））と、イニシエータポート番号と、通信ポート４１のＷＷＮ及びＬＵＮ４３の番号とを対応付けることにより構成されている。図１３（ｃ）に示す例では、１つのＶＤＥＶ１０１は、ＳＳ＃（１，４，６，７）で特定される合計４つの外部記憶制御システムを利用してRAID１を構成する。また、ＳＳ＃１に割り当てられている３個のＬＵＮ（＃０，＃０，＃４）は、同一デバイス（ＬＤＥＶ＃）に設定されている。なお、ＬＵＮ＃０のボリュームは、２個のアクセスデータパスを有する交代パス構造を備えている。このように、本実施例では、外部に存在する複数の論理ボリューム（ＬＤＥＶ）からＶＤＥＶ１０１を構成することにより、ストライピングやRAID等の機能を追加した上でＣＨＡ２１Ａに提供することができる。
【０１４１】
図１４を参照して、第２の記憶制御システム４０の外部ＬＤＥＶ４２からデータを読み出す場合の流れを説明する。
【０１４２】
まず、ＣＨＮ２１Ａは、ＣＨＦ２１Ｂにブロック単位のＩ／Ｏリードコマンドを送信する（Ｓ１３１）。ＣＨＦ２１Ｂは、Ｉ／Ｏリードコマンドを受信すると、要求されたデータを第２の記憶制御システム４０から読み出すべく、ブロック単位の別のＩ／Ｏリードコマンドを生成する。ＣＨＦ２１Ｂは、生成した別のＩ／Ｏリードコマンドを第２の記憶制御システム４０に送信する（Ｓ１３２）。第２の記憶制御システム４０は、ＣＨＦ２１Ｂから受信した別のＩ／Ｏリードコマンドに応じて、要求されたデータを外部ＬＤＥＶ４２から読み出して、ＣＨＦ２１Ｂに送信し（Ｓ１３３）、正常に読み出しが完了した旨を報告する（Ｓ１３５）。ＣＨＦ２１Ｂは、図１４（ｂ）に示すように、第２の記憶制御システム４０から受信したデータを、キャッシュメモリ２４の所定の場所に格納する（Ｓ１３４）。
【０１４３】
ＣＨＦ２１Ｂは、キャッシュメモリ２４に格納されたデータを読み出し、アドレス変換を行った後、ＬＵＮ１０３等を介してＣＨＮ２１Ａにデータを送信する（Ｓ１３６）。ＣＨＮ２１Ａは、読み出し完了報告を行う（Ｓ１３７）。これらデータ読み出し時の一連の処理では、図１３と共に述べた変換操作が逆向きで行われる。
【０１４４】
図１４では、ＣＨＮ２１Ａからの要求に応じて、第２の記憶制御システム４０からデータを読み出し、キャッシュメモリ２４に保存するかのように示している。しかし、これに限らず、外部のＬＤＥＶ４２に記憶されているデータの全部または一部を、予めキャッシュメモリ２４に記憶させておくこともできる。この場合、ＣＨＮ２１Ａからの読み出しコマンドに対し、直ちにキャッシュメモリ２４からデータを読み出してＣＨＮ２１Ａに送信することができる。
【０１４５】
以上、上述した実施形態によれば、ホスト端末１０Ａから受信したファイルＩ／Ｏデータに含まれるファイル名に対応したアドレス情報（換言すれば、ファイルＩ／Ｏデータが変換されたブロックＩ／Ｏデータに含まれるアドレス情報）と、そのアドレス情報が内部と外部のどちらに対応するかを示す情報とが書かれたＩ／Ｏ振分け制御データ８２０が用意される。ＣＨＮ２１ＡのＮＡＳプロセッサ８０６又はＩ／Ｏプロセッサ８０４は、Ｉ／Ｏ振分け制御データ８２０を参照して、ホスト端末１０Ａから受信したファイルＩ／Ｏデータに含まれるファイル名に対応したアドレス情報が内部と外部のどちらに対応するかを判別し、その判別結果に基づいて、ブロックＩ／Ｏデータの転送先を、第１の記憶制御システム６００内のＤＫＡ２２と、ＣＨＦ２１Ｂのどちらにするかが振分けられる。ＣＨＦ２１Ｂに振分けられた場合には、ＣＨＦ２１Ｂから第２の記憶制御システム４０にブロックＩ／Ｏコマンドが転送される。この結果、ホスト装置１０Ａは、アクセス先が第１の記憶制御システム６００の内部ＬＤＥＶ３１なのか第２の記憶制御システム４０の外部ＬＤＥＶ４２なのかを意識することなくファイルＩ／Ｏコマンドを出力しても、複数の記憶制御システムの中から選択された記憶制御システム内の記憶領域にアクセスすることができる。換言すれば、ホスト装置１０Ａ、１０Ｂに対して、第１の記憶制御システム６００と第２の記憶制御システム４０とを接続して１つの記憶制御システムとして利用させることが可能である。
【０１４６】
なお、上述した実施形態では、ＣＨＡ２１Ｃが、ホスト装置１０ＢからＳＡＮＣＮ３を介してブロックＩ／Ｏコマンドを受けた場合は、ＣＨＡ２１ＣのＩ／Ｏプロセッサが、Ｉ／Ｏ振分け制御データ８２０を参照して、受信したブロックＩ／Ｏデータに含まれるアドレス情報が内部と外部のどちらに対応するかを判別し、その判別結果に基づいて、そのブロックＩ／Ｏデータの転送先を、第１の記憶制御システム６００内のＤＫＡ２２と、ＣＨＦ２１Ｂのどちらにするかが振分けても良い。
【０１４７】
ところで、上述した実施形態については、幾つかの変形例が考えられる。以下、各変形例について、本実施形態との相違点を主に説明する。
【０１４８】
（１）第１の変形例。
【０１４９】
図１５は、本実施形態の第１の変形例に係るＣＨＮ２１Ａの構成例を示す。
【０１５０】
この図に示すように、本実施形態の第１の変形例では、コマンド解析処理プログラム８１１もＩ／Ｏ振分け処理プログラム８１２も、Ｉ／Ｏメモリ５０７に格納される。
【０１５１】
図１６は、本実施形態の第１変形例に係る処理流れの一例を示す。
【０１５２】
ホスト装置１０Ａから出力されたファイルＩ／Ｏコマンドは、ＣＨＮ２１Ａが受信してＣＨＮメモリ５０８に格納される（Ｓ９５０）。
【０１５３】
ＮＡＳプロセッサ５０６は、ＣＨＮメモリ５０８に格納されたファイルＩ／Ｏコマンドを読出すことの指示をＩ／Ｏプロセッサ５０４に出力し、Ｉ／Ｏプロセッサ５０４が、その指示に応答して、ＣＨＮメモリ５０８からファイルＩ／Ｏコマンドを読み出す（Ｓ９５１）。そして、Ｉ／Ｏプロセッサ５０４が、ファイル解析処理プログラム８１１に従って、そのファイルＩ／Ｏコマンドがファイルライトコマンドであるか或いはファイルリードコマンドであるか等の解析を行い（Ｓ９５２）、解析結果をＮＡＳプロセッサ５０６に通知する（Ｓ９５３）。
【０１５４】
ＮＡＳプロセッサ５０６は、通知された解析結果を基に、ファイルシステムプログラム８１７に従って、ファイルＩ／ＯコマンドをブロックＩ／Ｏコマンドに変換し（Ｓ９５４）、そのブロックＩ／ＯコマンドをＩ／Ｏプロセッサ５０４に送信する（Ｓ９５５）。
【０１５５】
Ｉ／Ｏプロセッサ５０４は、受信したブロックＩ／Ｏコマンドに含まれるアドレス情報と、Ｉ／Ｏ振分け制御データ８２０とに基づいて、前述したＩ／Ｏ振分け処理を行う（Ｓ９５６）。
【０１５６】
Ｓ９５６のＩ／Ｏ振分け処理の結果、外部アクセス要求処理を行うことになれば（Ｓ９５７でＹ）、Ｉ／Ｏプロセッサ５０４は、ブロックＩ／ＯコマンドをＣＨＦ２１ＢのＩ／Ｏプロセッサ５０４に出力する（Ｓ９５８）。その場合、ＣＨＦ２１ＡのＩ／Ｏプロセッサ６０３は、上述した外部アクセス処理を行い（Ｓ９５９）。
【０１５７】
Ｓ９５６のＩ／Ｏ振分け処理の結果、内部アクセス要求処理を行うことになれば（Ｓ９５７でＮ）、Ｉ／Ｏプロセッサ５０４は、ブロックＩ／Ｏコマンドを、接続部２６を介してＤＫＡ２２に送信する（Ｓ９６０）。
【０１５８】
Ｓ９５６のＩ／Ｏ振分け処理の結果、外部アクセス要求処理と内部アクセス要求処理の両方を行うことになれば、Ｉ／Ｏプロセッサ５０４は、Ｓ９５８とＳ９６０の両方を行う。
【０１５９】
（２）第２の変形例。
【０１６０】
図１７は、本実施形態の第２の変形例に係るＣＨＮ２１Ａの構成例を示す。
【０１６１】
この図に示すように、本実施形態の第２の変形例では、コマンド解析処理プログラム８１１なＣＨＮメモリ５０８に格納され、Ｉ／Ｏ振分け処理プログラム８１２は、Ｉ／Ｏメモリ５０７に格納される。
【０１６２】
図１８は、本実施形態の第２変形例に係る処理流れの一例を示す。
【０１６３】
ホスト装置１０Ａから出力されたファイルＩ／Ｏコマンドは、ＣＨＮ２１Ａが受信してＣＨＮメモリ５０８に格納される（Ｓ１５１）。
【０１６４】
ＮＡＳプロセッサ５０６は、ＣＨＮメモリ５０８に格納されたファイルＩ／Ｏコマンドを読出し（Ｓ１５２）、ファイル解析処理プログラム８１１に従うコマンド解析処理を行う（Ｓ１５３）。そして、ＮＡＳプロセッサ５０６は、そのファイルＩ／ＯコマンドをブロックＩ／Ｏコマンドに変換して（Ｓ１５４）、そのブロックＩ／ＯコマンドをＩ／Ｏプロセッサ５０４に送信する（Ｓ１５５）。
【０１６５】
Ｉ／Ｏプロセッサ５０４は、受信したブロックＩ／Ｏコマンドに含まれるアドレス情報と、Ｉ／Ｏ振分け制御データ８２０とに基づいて、前述したＩ／Ｏ振分け処理を行う（Ｓ９５６）。
【０１６６】
この後の処理は、図１６のＳ９５７〜Ｓ９６０と同様である（Ｓ１５７〜Ｓ１６０）。
【０１６７】
（３）第３変形例。
【０１６８】
図１９は、本実施形態の第３変形例に係る記憶システムの構成を示すブロック図である。
【０１６９】
この図に示すように、ＣＨＮ２１ＡとＣＨＦ２１Ｂとを一体にしたＣＨＦ・ＣＨＮ一体アダプタ２１Ｄを第１の記憶制御システム６００に搭載することができる。
【０１７０】
図２０は、ＣＨＦ・ＣＨＮ一体アダプタ２１Ｄの構成例を示す。
【０１７１】
ＣＨＦ・ＣＨＮ一体アダプタ２１Ｄは、図５に示したＣＨＡ２１Ａの構成要素に加えて、通信ポート２０７ＢとＦＣコントローラ６０２とを備える。ＦＣコントローラ６０２は、ブリッジＬＳＩ５０４と通信ポート２０７Ｂとに接続される。
【０１７２】
また、ＣＨＦ・ＣＨＮ一体アダプタ２１ＤのＩ／Ｏメモリ５０７には、図６を参照して説明した外部アクセス処理プログラム８１４が格納されている。
【０１７３】
なお、図示の例では、Ｉ／Ｏメモリ５０７にＩ／Ｏ振り分け処理プログラム８１２が格納され、ＣＨＮメモリ５０８にコマンド解析処理プログラム８１１が格納されているが、各プログラム８１１、８１２は、どちらのメモリ５０７、５０８にも格納することができる。
【０１７４】
（４）第４変形例。
【０１７５】
図２１は、本実施形態の第４変形例に係る記憶システムの構成を示すブロック図である。
【０１７６】
この図に示すように、第１の記憶制御システム６００にＣＨＮ２１Ａを搭載する代わりに、第１の記憶制御システム６００に搭載の複数のＣＨＡ２１Ｃの各々と、第１の記憶制御システム６００の外部にある第４の通信ネットワーク（例えばＳＡＮ）ＣＮ４を介して、第３の記憶制御システム（例えばＮＡＳヘッド、以下、「ＮＡＳヘッド」とする）９５０とが接続されている。ＮＡＳヘッド９５０には、ＬＡＮＣＮ１に接続される通信ポート９５１Ａと、ＳＡＮＣＮ４に接続される通信ポート９５１Ｂとが備えられている。
【０１７７】
図２２は、ＮＡＳヘッド９５０及びＣＨＡ２１Ｃの構成例を示す。
【０１７８】
ＮＡＳヘッド９５０には、通信ポート９５１Ａに接続されたＬＡＮコントローラ１５０３と、ＬＡＮコントローラ１５０３に接続されたブリッジＬＳＩ１５０２と、ＮＡＳメモリ１５０８と、ＮＡＳプロセッサ１５０６と、ＮＡＳメモリ１５０８及びＮＡＳプロセッサ１５０６に接続されたメモリコントローラ１５０５と、ブリッジＬＳＩ１５０２及び通信ポート９５１Ｂに接続されたＦＣコントローラ１６０２とが備えられる。これら各構成要素は、ＣＨＮ２１Ａ（図５参照）及びＣＨＦ２１Ｂ（図６参照）の構成要素と同一の名称を有するものであれば、それと同様の機能を有する。ＮＡＳメモリ１５０８は、ＣＨＮメモリ５０８と同様の機能を有する。
【０１７９】
ＣＨＡ２１Ｃには、通信ポート２０７Ｃを介してＳＡＮＣＮ４に接続されたＦＣコントローラ７１１と、Ｉ／Ｏプロセッサ１１９及びＩ／Ｏメモリ１２１を有する１又は複数の入出力制御部７７１と、ＦＣコントローラ７１１及びＩ／Ｏプロセッサ１１９に接続されたデータ転送ＬＳＩ９５２と、第１の記憶制御システム６００の接続部２６及びデータ転送ＬＳＩ９５２に接続されるコネクタ９５４とが備えられる。これら各構成要素は、ＣＨＮ２１Ａ（図５参照）及びＣＨＦ２１Ｂ（図６参照）の構成要素と同一の名称を有するものであれば、それと同様の機能を有する。
【０１８０】
第１の記憶制御システム６００には、ＨＵＢ（ハブ）９５３が備えられている。Ｉ／Ｏプロセッサ１１９が、ＨＵＢ９５３を介してＬＡＮＣＮ１及びＳＶＰ２３に接続されている。
【０１８１】
この図では、Ｉ／Ｏメモリ１２１にＩ／Ｏ振り分け処理プログラム８１２が格納され、ＮＡＳメモリ１５０８にコマンド解析処理プログラム８１１が格納されているが、各プログラム８１１、８１２は、どちらのメモリ１２１、１５０８にも格納することができる。
【０１８２】
上述した説明から分かる通り、この第４変形例では、ＣＨＮ２１ＡのＮＡＳプロセッサ５０６が、第１の記憶制御システム６００の外部にあるＮＡＳヘッド９５０にＮＡＳプロセッサ１５０６として搭載されたものである。従って、そのＮＡＳプロセッサ１５０６と、ＣＨＡ２１Ｃに搭載のＩ／Ｏプロセッサ１１９との間で、ＮＡＳプロセッサ５０６とＩ／Ｏプロセッサ５０４との間で行われる通信と同様の通信が行われれば、上述した実施形態及び第１〜第２変形例と同様のことを実現することができる。以下、一例を説明する。
【０１８３】
図２３は、本実施形態の第４変形例において、Ｉ／Ｏ振分け制御データ８２０の授受が行われる場合の処理流れを示す。
【０１８４】
例えば、図２３（Ａ）に示すように、ＮＡＳヘッド９５０のＮＡＳプロセッサ１５０６が、ＬＡＮＣＮ１を介して、ＣＨＡ２１ＣのＩ／Ｏプロセッサ１１９に、Ｉ／Ｏ振分け制御データ８２０を取得することの指示を出力する（Ｓ３００）。
【０１８５】
ＣＨＡ２１ＣのＩ／Ｏプロセッサ１１９は、その指示に応答して、ＣＭ２４に記憶されているＩ／Ｏ振分け制御データ８２０を読み出しＩ／Ｏメモリ１２１に格納する（Ｓ３０１、Ｓ３０２）。そして、ＣＨＡ２１ＣのＩ／Ｏプロセッサ１１９は、そのＩ／Ｏメモリ１２１内のＩ／Ｏ振分け制御データ８２０を、ＬＡＮＣＮ１を介して、ＮＡＳヘッド９５０に転送する（Ｓ３０３）。これにより、ＮＡＳヘッド９５０のＮＡＳメモリ１５０８に、Ｉ／Ｏ振分け制御データ８２０が格納される（Ｓ３０４）。
【０１８６】
また、例えば、図７（Ｂ）に示すように、ＮＡＳヘッド９５０のＮＡＳプロセッサ１５０６が、ＬＡＮＣＮ１を介して、ＣＨＡ２１ＣのＩ／Ｏプロセッサ１１９に、Ｉ／Ｏ振分け制御データ８２０を取得することの指示を出力する（Ｓ３１０）。
【０１８７】
Ｉ／Ｏプロセッサ１１９は、その指示に応答して、Ｉ／Ｏ振分け制御データ８２０を記憶している内部ＬＤＥＶ３１にアクセスすることができるＤＫＡ２２に、Ｉ／Ｏ振分け制御データ８２０を読み出すことのＩ／Ｏリードコマンドを出力する（Ｓ３１１）。
【０１８８】
そのＩ／Ｏリードコマンドを受けたＤＫＡ２２は、ＣＭ２４上にキャッシュ領域を確保して、Ｉ／Ｏ振分け制御データ８２０を記憶している内部ＬＤＥＶ３１からＩ／Ｏ振分け制御データ８２０を取得しそのキャッシュ領域に格納する（Ｓ３１２）。
【０１８９】
Ｉ／Ｏプロセッサ１１９は、上記確保されたキャッシュ領域からＩ／Ｏ振分け制御データ８２０をＩ／Ｏメモリ１２１に読み出す（Ｓ３１３）。これにより、Ｉ／Ｏメモリ１２１に、Ｉ／Ｏ振分け制御データ８２０が格納される（Ｓ３１４）。
【０１９０】
そして、Ｉ／Ｏプロセッサ１１９は、そのＩ／Ｏメモリ１２１内のＩ／Ｏ振分け制御データ８２０を、Ｓ３１０の取得指示に応答して読み出されたリード対象データとして、ＳＡＮＣＮ４を介してＮＡＳヘッド９５０に転送する（Ｓ３１５）。これにより、ＮＡＳヘッド９５０のＮＡＳメモリ１５０８に、Ｉ／Ｏ振分け制御データ８２０が格納される（Ｓ３１６）。
【０１９１】
図２４は、本実施形態の第４変形例において、ホスト装置１０Ａから出力されたファイルＩ／ＯコマンドがブロックＩ／Ｏコマンドになって転送される場合に行われる処理流れの一例を示す。
【０１９２】
ホスト装置１０Ａから出力されたファイルＩ／Ｏコマンドは、ＬＡＮＣＮ１を介して、ＮＡＳヘッド９５０が受信してＮＡＳメモリ１５０８に格納される（Ｓ４５１）。
【０１９３】
ＮＡＳプロセッサ１５０６は、ＮＡＳメモリ１５０８に格納されたファイルＩ／Ｏコマンドを読出し（Ｓ４５２）、ファイル解析処理プログラム８１１に従うコマンド解析処理を行う（Ｓ４５３）。そして、ＮＡＳプロセッサ１５０６は、そのファイルＩ／ＯコマンドをブロックＩ／Ｏコマンドに変換して（Ｓ４５４）、そのブロックＩ／Ｏコマンドを、ＳＡＮＣＮ４を介して、ＣＨＡ２１ＣのＩ／Ｏプロセッサ１１９に送信する（Ｓ４５５）。
【０１９４】
Ｉ／Ｏプロセッサ１１９は、受信したブロックＩ／Ｏコマンドに含まれるアドレス情報と、Ｉ／Ｏ振分け制御データ８２０とに基づいて、前述したＩ／Ｏ振分け処理を行う（Ｓ４５６）。
【０１９５】
この後の処理は、図１６のＳ９５７〜Ｓ９６０と同様である（Ｓ４５７〜Ｓ４６０）。
【０１９６】
以上、Ｉ／Ｏメモリ１２１にＩ／Ｏ振り分け処理プログラム８１２が格納され、ＮＡＳメモリ１５０８にコマンド解析処理プログラム８１１が格納されている場合を例に採り、ＮＡＳヘッド９５０のＮＡＳプロセッサ１５０６と、ＣＨＡ２１ＣのＩ／Ｏプロセッサ１１９とのやり取りの一例を説明した。しかし、前述したように、ＮＡＳプロセッサ１５０６と、Ｉ／Ｏプロセッサ１１９との間で、ＮＡＳプロセッサ５０６とＩ／Ｏプロセッサ５０４との間で行われる通信と同様の通信が行われれば、上述した実施形態及び第１〜第２変形例と同様のことを実現することができる。換言すれば、例えば、図７〜図８、図１０、図１６及び図１８において、ＣＨＮメモリ５０８をＮＡＳメモリ１５０８に置換し、ＮＡＳプロセッサ５０６をＮＡＳプロセッサ１５０６に置換し、Ｉ／Ｏプロセッサ５０４をＩ／Ｏプロセッサ１１９に置換すれば、この第４変形例において、上述した実施形態及び第１〜第２変形例と同様のことを実現することができる。また、図１２及び図１４において、ＣＨＮ２１ＡをＣＨＡ２１Ｃに置換することもできる。
【０１９７】
以上、本発明の実施形態及び変形例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこの実施形態及び変形例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。例えば、上述した実施形態及び各変形例では、第１の記憶制御システム６００と第２の記憶制御システム４０との間の通信は、ｉＳＣＳＩプロトコルに従って行われても良い。その場合、例えば、第１の記憶制御システム６００及び第２の記憶制御システム４０のＣＨＦに代えて、ｉＳＣＳＩネーム（ｉＳＣＳＩプロトコルにおけるユニークなＩＤ）が割当てられた通信ポートを有するチャネルアダプタｉＳＣＳＩが備えられても良い。また、その場合、例えば、上述した実施形態及び各変形例において、第１の記憶制御システム６００と第２の記憶制御システム４０との間では、ＷＷＮの代わりにｉＳＣＳＩネームがやり取りされても良い。
【図面の簡単な説明】
【０１９８】
【図１】本発明の一実施形態に係る記憶制御システムの外観の概略を示す。
【図２】本実施形態に係る記憶システムの構成を示すブロック図である。
【図３】第１の記憶制御システム６００と第２の記憶制御システム４０との論理的な接続構造を示す模式図である。
【図４】マッピングテーブルＴｍの概要を示す説明図である。
【図５】ＣＨＮ２１Ａの構成例を示すブロック図である。
【図６】ＣＨＦ２１Ｂの構成例を示すブロック図である。
【図７】Ｉ／Ｏ振分け制御データ８２０の授受に関する処理流れを示す。
【図８】ホスト装置１０Ａから受信したファイルＩ／ＯコマンドをブロックＩ／Ｏコマンドに変換して出力する際に行われる処理流れを示す。
【図９】振分け制御データ８２０に含まれるアドレス管理テーブル８５３及びファイルメタデータ８５４の構成例と、その振分け制御データ８２０に基づいて行われるＩ／Ｏ振分け処理の詳細な処理流れとを示す。
【図１０】ファイルメタデータ８５４が更新される場合に行なわれる処理流れを示す。
【図１１】第１の記憶制御システム６００のＣＨＦ２１ＢがマッピングテーブルＴｍを作成する場合に行われる処理流れを示す。
【図１２】データ書込み時の処理を示す模式図である。
【図１３】図１２中の処理の流れを各種テーブルとの関係で示す説明図である。
【図１４】外部ＬＤＥＶからデータを読み出す場合の概念図である。
【図１５】本実施形態の第１の変形例に係るＣＨＮ２１Ａの構成例を示す。
【図１６】本実施形態の第１変形例に係る処理流れの一例を示す。
【図１７】本実施形態の第２の変形例に係るＣＨＮ２１Ａの構成例を示す。
【図１８】本実施形態の第２変形例に係る処理流れの一例を示す。
【図１９】本実施形態の第３変形例に係る記憶システムの構成を示すブロック図である。
【図２０】ＣＨＦ・ＣＨＮ一体アダプタ２１Ｄの構成例を示す。
【図２１】本実施形態の第４変形例に係る記憶システムの構成を示すブロック図である。
【図２２】ＮＡＳヘッド９５０及びＣＨＡ２１Ｃの構成例を示す。
【図２３】本実施形態の第４変形例において、Ｉ／Ｏ振分け制御データ８２０の授受が行われる場合の処理流れを示す。
【図２４】本実施形態の第４変形例において、ホスト装置１０Ａから出力されたファイルＩ／ＯコマンドがブロックＩ／Ｏコマンドになって転送される場合に行われる処理流れの一例を示す。
【符号の説明】
【０１９９】
２…ファイバチャネルスイッチ（ＦＣ−ＳＷ）、１０Ａ、１０Ｂ…ホスト装置、１１…アプリケーションプログラム、１２…アダプタ、２０…記憶制御サブシステム、２１…チャネル制御部、２１Ａ…チャネルアダプタＮＡＳ（ＣＨＮ）、２１Ｂ…ファイバチャネルアダプタ（ＣＨＦ）、２１Ｃ…チャネルアダプタ（ＣＨＡ）、２２…ディスクアダプタ、２３…ＳＶＰ（Service Processor）、２４…キャッシュメモリ、２５…共有メモリ、２６…接続部、３０…ディスクユニット、３１、３２…内部ＬＤＥＶ、４０…第２の記憶制御システム、４１…通信ポート、４２…外部ＬＤＥＶ、１０１…ＶＤＥＶ（仮想デバイス）、１０２…ＬＤＥＶ（論理デバイス）、１０３…ＬＵＮ、６００…第１の記憶制御システム、８００…ディスク制御部、８０１…保守管理システム、８２０…Ｉ／Ｏ振分け制御データ、ＴＧ…マッピングテーブル群
【図１】
2005250938.tif 000003
【図２】
2005250938.tif 000004
【図３】
2005250938.tif 000005
【図４】
2005250938.tif 000006
【図５】
2005250938.tif 000007
【図６】
2005250938.tif 000008
【図７】
2005250938.tif 000009
【図８】
2005250938.tif 000010
【図９】
2005250938.tif 000011
【図１０】
2005250938.tif 000012
【図１１】
2005250938.tif 000013
【図１２】
2005250938.tif 000014
【図１３】
2005250938.tif 000015
【図１４】
2005250938.tif 000016
【図１５】
2005250938.tif 000017
【図１６】
2005250938.tif 000018
【図１７】
2005250938.tif 000019
【図１８】
2005250938.tif 000020
【図１９】
2005250938.tif 000021
【図２０】
2005250938.tif 000022
【図２１】
2005250938.tif 000023
【図２２】
2005250938.tif 000024
【図２３】
2005250938.tif 000025
【図２４】
2005250938.tif 000026