(57)【要約】１対多の交換環境において、データストレージシステムによるストレージデバイスのリモートミラーリングを支援するための機構。各データストレージシステムは、他のデータストレージシステムの１つによって制御される対応するデバイスグループと共に、ミラー構成においてサポートされている少なくとも１つのデバイスグループを制御するために適合されているディスクディレクタを有する。デバイスグループと対応するデバイスグループとの各々について、デバイスグループに関連付けられた第１のポートと、対応するデバイスグループに関連付けられた第２のポートとが存在する。デバイスグループ及び対応するデバイスグループの各々のポートの間でデータが交換可能となるように、スイッチ要素は、第１のポートの１つと第２のポートのうちの少なくとも１つとを接続するように適合される。ディスクディレクタは、論理リンクの確立の際に、スイッチ要素を介してどの第１のポートとどの第２のポートとが接続されるのかを選択する。このため、スイッチに接続されている各ポートは複数の相手先との間で複数の接続を確立することができ、付加的なハードウェアを必要とすることなく、接続性、冗長性及び性能（負荷分散）が向上する。
2004518217.tif 000002
【特許請求の範囲】
【請求項１】
データストレージシステムのリモートデータミラーリング構成において、データストレージシステムのポートと他のデータストレージシステムのポートとを接続するための方法であって、
各ストレージシステムに構成トポロジ情報を提供するステップと、
全ての前記データストレージシステムのポートに接続しているスイッチファブリックから、該スイッチファブリックに接続している前記他のデータストレージシステムのポートを識別する情報を判定するステップと、
前記ストレージシステムのポートと第２のストレージシステムの第２のポートとの間に論理リンクを確立するために前記構成トポロジ情報と前記スイッチファブリックから取得した前記情報とを使用して、これにより前記ポートによってサポートされるデバイスグループと前記第２のポートによってサポートされる対応するミラーデバイスグループとに存在するデータを、前記データストレージシステムと前記第２のデータストレージシステムとの間で交換可能とするステップとからなる方法。
【請求項２】
前記構成トポロジ情報は構成トポロジテーブルからなり、該構成トポロジテーブルは、前記データストレージシステムによってサポートされるデバイスグループを識別しかつ前記デバイスグループにサービスを提供している他のデータストレージシステムの１つへのポインタを前記デバイスグループに提供するデバイスグループテーブルと、前記デバイスグループテーブルに存在するポインタによってポイントされるもう一方のデータストレージシステムの各々をシリアル番号によって識別するリモートシステムテーブルとをさらに含む、請求項１に記載の方法。
【請求項３】
前記構成トポロジテーブルは、前記デバイスグループテーブルに存在するポインタによってポイントされるもう一方のデータストレージシステムの各々をシリアル番号によって識別するリモートシステムテーブルをさらに含む、請求項２に記載の方法。
【請求項４】
データストレージシステムのリモートデータミラーリング構成において、データストレージシステムのポートと他のデータストレージシステムのポートとを接続するための装置であって、
各ストレージシステムに構成トポロジ情報を提供するための手段と、
全ての前記データストレージシステムのポートに接続しているスイッチファブリックから、該スイッチファブリックに接続している前記他のデータストレージシステムのポートを識別する情報を判定するための手段と、
前記ストレージシステムのポートと第２のストレージシステムの第２のポートとの間で論理リンクを確立するために前記構成トポロジ情報と前記スイッチファブリックから取得した前記情報とを使用する手段と、これにより前記ポートによってサポートされるデバイスグループと第２のポートによってサポートされる対応するミラーデバイスグループとに存在するデータが前記データストレージシステムと前記第２のデータストレージシステムとの間で交換可能となることとからなる装置。
【請求項５】
前記構成トポロジ情報は構成トポロジテーブルからなり、該構成トポロジテーブルは、前記データストレージシステムによってサポートされるデバイスグループを識別しかつ前記デバイスグループにサービスを提供している他のデータストレージシステムの１つへのポインタを前記デバイスグループに提供するデバイスグループテーブルと、前記デバイスグループテーブルに存在するポインタによってポイントされるもう一方のデータストレージシステムの各々をシリアル番号によって識別するリモートシステムテーブルとをさらに含む、請求項４に記載の装置。
【請求項６】
前記構成トポロジテーブルは前記データストレージシステムの各プロセッサを一意的な名前によって識別し、かつこれらプロセッサによってサポートされる前記デバイスグループのうちの少なくとも１つに関連するポインタを提供するプロセッサテーブルをさらに含む、請求項５に記載の装置。
【請求項７】
複数のストレージシステムからなる構成と、前記ストレージシステムの各々は、他のストレージシステムの１つによって制御される対応するデバイスのグループとのミラー構成においてサポートされる少なくとも１つのデバイスのグループを制御するように構成されていることと、
デバイスグループ及び対応するデバイスグループの各々に対して、前記デバイスグループに関連付けられている第１のポートと、前記対応するデバイスグループに関連付けられている第２のポートとからなり、
デバイスグループ及び対応するデバイスグループの各々に対して、前記第１のポートと前記第２のポートとの間でデータが交換可能なように、前記第１のポートの１つと前記第２のポートの少なくとも１つとが接続されているシステム。
【請求項８】
複数のデータストレージシステムからなるリモートデータミラーリング構成において、データストレージシステムのポートと他のデータストレージシステムのポートとを接続するための方法であって、
ポートと、ミラー構成において前記他のデータストレージシステムの１つのポートが関連付けられている対応するデバイスのグループと共にサポートされているデバイスのグループとを関連付けるステップと、
前記デバイスグループに関連付けられているポートと対応するデバイスグループとの間でデータが交換可能なように、前記デバイスグループに関連付けられているポートの１つを前記対応するデバイスグループに関連付けられているポートの少なくとも１つに関連付けるステップとからなる方法。
【請求項９】
複数データストレージシステムからなるリモートデータミラーリング構成において、データストレージシステムのポートと他のデータストレージシステムのポートとを接続するための方法であって、
デバイスグループを制御するためのポートを構成するステップと、
前記ポートと、前記ポートによって制御されるデバイスグループをミラーする第２のデバイスグループを制御するポートのうちの選択された１つとを接続するステップとからなる方法。
【発明の詳細な説明】
【０００１】
（背景）
本発明は、データストレージシステムに関し、より詳細には、リモートデータのミラーリング機能を備えたデータストレージシステムに関する。
【０００２】
情報の可用性の重要性に鑑みて、データストレージシステムに記憶されているデータの信頼性と可用性とを向上させるための種々の技法が開発されてきた。この種の技法にデータミラーリングがある。「ミラー（ｍｉｒｒｏｒｅｄ）」システムにおいては、あるデータストレージシステムに記憶されたデータが別のデータストレージシステムに複製されている。このため、いずれかのデータストレージシステムに存在するストレージデバイスの少なくとも１台が故障するか、或いは大規模なシステム障害が発生しても、ミラーデータストレージシステムに存在するミラーコピーの形でデータを容易に利用することができる。
【０００３】
同じリモートのデータストレージシステム（すなわちターゲット）にミラーされているデータストレージシステム（すなわちソース）に存在するデバイスはデバイスグループと呼ばれる。同様に、ターゲットに存在し、同じソースに存在するデバイスにサービスを提供する（すなわちミラーリングする）デバイスはデバイスグループと呼ばれる。例えば、デバイスグループは、リンク障害や計画バックアップなどの予定済みの中断や予定外の中断の発生時に、大き過ぎるために１つの領域に記憶できないデータブロックの整合性を保証するために使用される。通常、デバイスグループは、多数の物理ボリューム及び論理ボリュームにまたがっている。また、データストライピングが使用されている場合には、複数のデバイスグループが物理ボリューム又は論理ボリュームの別の部分にマップされることがある。
【０００４】
通常、任意の２つのシステムにおいて、ソースデバイスグループとターゲットデバイスグループとは対として構成されており、各ソース／ターゲットデバイスグループの対は、ＥＳＣＯＮ又はファイバチャネル（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）リンクなどの２本の専用リンクによって接続されている。このうちの１本は、データバックアップ操作中の書き込み及びデータ復旧操作中の書き込みに使用され、もう１本は冗長用である。このため、Ｎつのデータストレージシステムからなり、全てのデータストレージシステムが他のＮ−ｉつのリモートデータストレージシステムを含むミラー構成をサポートしている冗長構成では、Ｎ×（Ｎ−１）本の物理リンクが必要となる。換言すれば、一システム当たり平均２×（Ｎ−１）本の物理リンクが必要となる。データストレージシステムのポートの数には限りがあるため、Ｎ＞３の場合には上記の必要リンク数を満たすことは現実的ではない。
【０００５】
（発明の概要）
本発明の一態様においては、データストレージシステムのリモートデータミラーリング構成において、データストレージシステムのポートと他のデータストレージシステムのポートとが接続される。各ストレージシステムに構成トポロジ情報が提供される。全てのデータストレージシステムのポートを接続しているスイッチファブリックから、スイッチファブリックに接続されている他のデータストレージシステムのポートを識別する情報が判定される。構成トポロジ情報とスイッチファブリックから取得した情報とが使用され、ストレージシステムのポートと第２のストレージシステムの第２のポートとの間に論理リンクが確立される。これによって、ポートがサポートするデバイスグループと、第２のポートがサポートする対応するミラーデバイスグループとに存在するデータが、データストレージシステムと第２のデータストレージシステムとの間で交換可能となる。
【０００６】
本発明の別の態様において、システムは、他のストレージシステムの１つによって制御される対応するデバイスのグループとのミラー構成においてサポートされる少なくとも１つのデバイスのグループを制御するように各々構成されているストレージシステム構成を有する。デバイスグループ及び対応するデバイスグループの各々に対して、第１のポートは、デバイスグループに関連付けられており、第２のポートは対応するデバイスグループに関連付けられている。このシステムは、デバイスグループ及び対応するデバイスグループの各々に対して、第１のポートと第２のポートとの間でデータが交換可能なように、第１のポートの１つと第２のポートの少なくとも１つとを接続するように適合されたスイッチ要素をさらに有する。
【０００７】
本発明のさらに別の態様において、複数データストレージシステムからなるリモートデータミラーリング構成において、データストレージシステムは、少なくとも１つのデバイスグループを制御するように適合されたポートと、このポートと他のストレージシステムポートとに接続されたスイッチ要素を有する。このポートはスイッチ要素を使用して、ポートと、ポートによって制御されるデバイスグループをミラーする第２のデバイスグループを制御しているポートのうちの選択された１つとを接続する。
【０００８】
本発明の利点は以下のとおりである。ＥＳＣＯＮなどの専用の１対１プロトコルに代わって交換プロトコルを使用することで、必要なポート数が２（Ｎ−１）から２に低減する。このように接続性が向上したことで、性能（負荷分散など）が改善されると共に、冗長性も向上する。また、データストレージシステムのコントローラに存在する各プロセッサは、複数のデバイスグループに対応することができ、この接続を実現するための専用プロセッサを必要とすることなく、システムのユーザーに対して完全なリモートデータミラーリング接続が提供される。
【０００９】
本発明の他の特徴や利点は、下記の詳細説明及び特許請求の範囲から自明である。
（詳細説明）
本発明は、あるデータストレージシステムに記憶されているデータと同じデータが、地理的に離れたデータストレージシステムにも存在するシステム環境を特徴とする。リモートデータストレージシステムは、データストレージシステムに記憶されているデータをバックアップし、故障や災害によってデータストレージシステム及びそのデータが失われた場合にデータを復旧させるために利用される。
【００１０】
図１Ａ，１Ｂにおいて、システム１０はデータストレージシステム１２ａ，１２ｂ，１２ｃ，１２ｄを有する。データストレージシステム１２ａ，１２ｂ，１２ｃは、少なくとも１台のホストコンピュータ（ホストとも呼ばれる）１４ａ，１４ｂ，１４ｃにそれぞれ接続されている。ホストコンピュータ１４は、例えば、シングルユーザーシステム又はマルチユーザーシステムによって使用されるパーソナルコンピュータ、ワークステーションなどであり得る。データストレージシステム１２は、ホストコンピュータ１４からデータ及び命令を受け取り、ホストコンピュータ１４にデータ及び応答を返す。
【００１１】
図１Ａ，１Ｂにおいて、データストレージシステム１２ａ〜１２ｄは、それぞれコントローラ１６ａ〜１６ｄを有する大容量ストレージシステムであり、各コントローラ１６ａ〜１６ｄは、ディスク１８に示す複数のストレージデバイス（単にデバイスとも呼ばれる）に接続されている。コントローラ１６ａは、デバイス１８ａ、デバイス１８ｂ及びデバイス１８ｃに接続されている。コントローラ１６ｂは、デバイス１８ｄ、デバイス１８ｅ及びデバイス１８ｆに接続されている。コントローラ１６ｃは、デバイス１８ｇ、デバイス１８ｈ及びデバイス１８ｉに接続されている。コントローラ１６ｄは、デバイス１８ｊ及びデバイス１８ｋに接続されている。各デバイス１８は、公知の技法によって、論理的に少なくとも１つの論理ボリュームに分割されている。
【００１２】
各コントローラ１６は、ホストコンピュータ１４とデバイス１８とを接続しており、例えば、ＥＭＣが製造しているシンメトリクス（Ｓｙｍｍｅｔｒｉｘ）コントローラ製品であり得る。各コントローラ１６ａ〜１６ｃは、例えば、ＳＣＳＩプロトコルに従って接続かつ作動するホストバス２０ａ〜２０ｃを介して対応するホストコンピュータ１４からメモリ書込命令を直接受け取り、バス２２ａ，２２ｂ，．．．２２ｋを介してこれらの命令に関連するデータを適切なデバイス１８に渡す。好適には、バス２２もＳＣＳＩプロトコルに従って作動する。また、コントローラ１６ａ〜１６ｃは、ホストコンピュータ１４からホストバス２０を介して読取要求を受け取り、ホストコンピュータ１４に要求されたデータを、コントローラ１６のキャッシュメモリから渡すか、或いはキャッシュメモリにデータが存在しない場合はデバイス１８から渡す。
【００１３】
代表的な構成では、コントローラ１６はサービス管理コンソール（図示せず）にも接続されている。当業界で公知のように、サービス管理コンソールは、コントローラ１６に対する管理及びアクセスに使用され、コントローラ１６のパラメータを設定するために利用され得る。
【００１４】
通常は、上記したように、各デバイス１８は、論理ボリューム（すなわちデバイス）を記憶するように構成される。複数の論理ボリューム、例えば４つ、８つ、又はそれ以上の論理ボリュームが１つの物理デバイスに存在することがある。論理ボリュームのコピーが複数維持される構成、特に論理ボリュームに対してデータのコピーが２つ別々に記憶される構成ではミラーが維持されているといわれる。（３つ以上のミラーコピーが存在することもあるが、通常は２つのミラーコピーが用いられる。）コントローラ１６は、ストレージデバイス１８に記憶されているコピーのいずれかを読み取ることで、読取要求に応えることが可能になる。ミラーリングは、論理ボリュームレベルと物理デバイスレベルの両方で行なわれることもあれば、論理ボリュームレベルのみで行なわれることもある。リモートデータミラーリング（リモートデータファシリティ「ＲＤＦ」とも呼ばれる）の場合と同様に、データミラーリングは、１つのコントローラで行なわれる場合もあれば、複数のコントローラで行なわれることもある。
【００１５】
作動時に、ホストコンピュータ１４は、自身が実行しているアプリケーションからの要求に応じて、データストレージシステム１２に命令を送信する。この命令は、論理ボリュームに記憶されているデータに対する要求のこともあれば、論理ボリュームにデータを書き込む命令のこともある。図１Ａ，１Ｂにおいて、コントローラ１６ａ〜１６ｃは、ホストコンピュータ１４ａ〜１４ｃと通信するためのホストアダプタ２４ａ〜２４ｃをそれぞれ有する。通常、ホストコンピュータ１４は、ＳＣＳＩホストバス線２０を介してホストアダプタ２４のポートに接続されている。
【００１６】
また、各コントローラ１６ａ〜１６ｄは、グローバルメモリ３０ａ〜３０ｄに示すグローバルメモリ３０もそれぞれ有する。各コントローラのホストアダプタ２４は、少なくとも１本のシステムバス３１を介して、グローバルメモリ３０に接続されている。ディスクディレクタ３２も各コントローラ１６のグローバルメモリシステム３０に接続されている。より詳細には、コントローラ１６ａのディスクディレクタ３２ａ， ３２ｂ、コントローラ１６ｂのディスクディレクタ３２ｃ， ３２ｄ、コントローラ１６ｃのディスクディレクタ３２ｅ， ３２ｆ及びコントローラ１６ｄのディスクディレクタ３２ｇ， ３２ｈがグローバルメモリ３０に接続されている。ディスクディレクタ３２は、グローバルメモリ３０を介してホストアダプタ２４と通信する。図面には記されていないが、グローバルメモリ３０は、データを記憶するためのキャッシュメモリ、並びに管理情報を維持し、ホスト１４とデバイス１８との間の通信を実現するための各種のデータ構造を備えることもある。
【００１７】
ディスクディレクタ３２はストレージデバイス１８を管理する。各ディスクディレクタ３２ａ〜３２ｈは、それぞれポート３４ａ〜３４ｈを備える。本実施形態においては、２つのディスクディレクタ３２が対をなしてコントローラ１６に取り付けられている。このため、図面には各コントローラ１６に対して２つのディスクディレクタのみが記載されている。しかし、システム１０がさらに多くのディスクディレクタを使用し得ることが理解される。
【００１８】
コントローラ１６ａ〜１６ｄ内のディスクディレクタは、それぞれ専用バス３６ａ〜３６ｄを介してグローバルメモリ３０ａ〜３０ｄと通信する。書込操作時に、ディスクディレクタ３２は、ホストアダプタ２４によってグローバルメモリ３０に記憶されたデータを読み込んで、適切な論理ボリュームにこのデータを書き込む。読込操作時、及び読込命令に応答する際に、ディスクディレクタ３２は、論理ボリュームからデータを読み込み、グローバルメモリ３０にこのデータを書き込んで、後で要求元のホスト１４に対してホストアダプタ２４からデータを渡すことができるようにする。
【００１９】
図１Ａ，１Ｂのシステム１０において、各コントローラ１６は、スイッチファブリック３８に接続されている。スイッチファブリック３８は、ＦＰ  ４０ａ，ＦＰ  ４０ｂ，ＦＰ  ４０ｃ，ＦＰ  ４０ｃ，ＦＰ  ４０ｄ，ＦＰ  ４０ｅ，ＦＰ  ４０ｆ，ＦＰ  ４０ｇ及びＦＰ  ４０ｈに示される複数のファブリックポート（ＦＰ）４０を備える。各ディスクディレクタのポートは、異なるファブリックポート４０にそれぞれ接続されている。図に示すように、ポート３４ａ〜３４ｈは、各接続すなわちリンク４２ａ〜４２ｈを介して、ファブリックポート４０ａ〜４０ｈにそれぞれ接続されている。他のコントローラが、リモートデータストレージシステムとしてサービスを提供し、データストレージシステム１２に記憶されているデータに対しミラーストレージの形でバックアップ機能を提供する場合、各コントローラ１２と他のコントローラ１２とは、スイッチファブリックによって接続される。任意のコントローラ１６に対する「リモート」コントローラすなわちシステムとは、そのコントローラ１６に記憶されているデータのミラーリングコピーを維持している他の任意のコントローラ１６を指すか、又はそのコントローラ１６自身がミラーリングコピーであるデータを保管している他の任意のコントローラ１６を指す。このため、任意のコントローラ１６と、リモートコントローラ（このため、そのコントローラに対してＲＤＦ機能を提供する）である他のコントローラとは、ミラー構成或いはミラー配置にあると言われる。リモートデータミラーリング装置及び復旧手順は、上記の米国特許第５，７４２，７９２号に開示されているものなどの公知の技法を使用して実行することが可能である。
【００２０】
本実施形態において、スイッチファブリック３８は、ファイバチャネルファブリックである。しかし、ギガビットイーサネットなどの他の１対多の交換プロトコルも使用することができる。
【００２１】
他のシステム構成も考えられる。例えば、データストレージシステム１２は、図に示すような１台のホストコンピュータ構成に限定されないことが理解される。例えば、データストレージシステム１２は、２台以上のホストコンピュータに接続され得る。別法として、データストレージシステム１２ｄに示すように、データストレージシステム１２はホストデバイスに接続されていなくてもよい。この種のシステムデータストレージシステムは、他のデータストレージシステム１２ａ〜１２ｃから受け取った書込要求に伴う書き込みの実行にのみ使用されることもある。これによって、ホストアダプタによって他のデータストレージシステムに記憶された更新後の情報が、リモートデータストレージシステム１２ｄにも記憶される。これによって、ストレージシステム１２ａなどの他のデータストレージシステムに記憶された情報が、ミラーリング条件においてリモートデータストレージシステム１２ｄに記憶される。また、ホストアダプタ２４が、それぞれホストバス／ホストコンピュータにサービスを提供する複数のホストアダプタを備えることもある。図１Ａ，１Ｂのデータストレージシステムは４つ未満のこともあれば、４つを超えることもある。データストレージシステムが３つ以上のポートを備えることもある。
【００２２】
図２において、各ディスクディレクタ３２は、内部バス５４によってローカルの不揮発性メモリ（ＮＶＭ）５２に接続されたプロセッサ５０を有する。プロセッサ５０は、ディスクディレクタ３２の全体的な動作及びローカルメモリ５２との通信を制御する。非揮発性メモリ５２は、パラメータストア５８にファームウェア５６及びパラメータデータを記憶している。また、ローカルメモリ５２には種々のデータ構造６０、すなわちディスクディレクタ３２及びシステム１０のための構成情報を保持している構成トポロジテーブル６４も記憶される。テーブル６４には、リモートシステムテーブル６４ａ、デバイスグループテーブル６４ｂ、ディレクタ（すなわちプロセッサ）テーブル６４ｃ及び論理リンクテーブル６４ｄがある。これらのデータ構造の機能は下記に記載する。
【００２３】
図２において、ファームウェア５６は、ホストコンピュータ１４（存在する場合）、グローバルメモリ３２及びストレージデバイス１８の間のデータ転送を制御するためにプロセッサ５０によって実行される種々のプロセスからなる。また、ファームウェア５６は、スイッチ３８を介したポート３４と他のコントローラポートとの間の通信を制御するためのプロセスも必要とする。このため、ファームウェア６８は、下記に記載する接続初期化プロセス６６と単一リンク発見プロセス６８とを備えるように適合される。ファームウェア５６、データ構造６０及びパラメータストア５８は、データストレージシステムが初期化される毎に読み込まれる。ファームウェア５６は、初期化時に揮発性メモリ５２に読み込まれ、後にプロセッサ５０によって実行される。
【００２４】
図３Ａ〜３Ｄに種々の構成トポロジテーブル６４を示す。図３Ａにおいて、リモートシステムテーブル６４ａは、データストレージシステムと共にミラーリング構成を構成しているコントローラ／データストレージシステムに関するエントリ７０からなる。各エントリ７０は、コントローラ（システム）シリアル番号７２、コントローラ（システム）型番７４及びファームウェア（コード）レベル識別子７６からなる。他のシステム一意的な情報を含むこともある。
【００２５】
図３Ｂのデバイスグループテーブルは、各デバイスグループ７８、すなわち７８ａ，７８ｂ，．．．，７８ｋに関するエントリからなる。各エントリは、デバイスグループ名８０、デバイスグループ８２にサービスを提供しているリモートストレージシステムへのポインタ、並びにデバイス８４及びデバイスの特徴８６（ＲＤＦパラメータなど）から構成されるデバイスグループのリストからなる。図３Ｃのプロセッサレベルテーブル６４ｃは、各ディスクディレクタのプロセッサ５０に対するエントリ９０からなり、各エントリ９０は、対応する名前（ＷＷＮ又はＩＰ名など）９２及びプロセッサ９４によってサービスを提供されるデバイスグループへのポインタのリストを有する。図３Ｄの論理リンクテーブル９６は、リンクのエントリ９８からなる。各エントリは、リンク状態１００、プロセッサ１０２の１つへのポインタ、及びデバイスグループ１０４の１つへのポインタを有する。
【００２６】
図３Ａ〜３Ｄのテーブル６４ａ，６４ｂ，６４ｃは、システムユーザーによって設定される。リンクテーブル６４ｄは、下記に記載する接続初期化プロセス６６及びリンク発見プロセス６８（図２）によって作成される。
【００２７】
図４に、プロセッサテーブル６４ｃのフィールド９２によって識別されるワールドワイド名（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｎａｍｅ：ＷＷＮ）１０６のフォーマットの例を示す。ＷＷＮ  １０６は、ＲＤＦ構成に含まれる各プロセッサに対して、一意的な名前を付与する。ＷＷＮ  １０６は、コントローラ１６の製造業者を識別するための、供給業者に一意的な供給業者番号フィールド１０８、コントローラ１６のシリアル番号を識別するためのシリアル番号フィールド１１０、及びポート／プロセッサを識別するためのディレクタ番号１１２を含む。図の実施例においては、フィールド１０８，１１０，１１２の長さはそれぞれ２８ビット、３０ビット及び６ビットである。
【００２８】
図５は、（図１Ａ，１Ｂの）システム１０の論理例を示す図である。この例では、Ｓ１，Ｓ２，Ｓ３，Ｓ４，Ｓ５，Ｔ１，Ｔ２，Ｔ３，Ｔ４，Ｔ５，の１０個のデバイスグループが存在し、これらはそれぞれ参照符号１２０ａ，１２０ｂ，１２０ｃ，１２０ｄ，１２０ｅ，１２２ａ，１２２ｂ，１２２ｃ，１２２ｄ，及び１２２ｅで示されている。これらのデバイスグループのうち、Ｓ１〜Ｓ５の５つはソースデバイスグループであり、Ｔ１〜Ｔ５はターゲットデバイスグループである。図面の例では、コントローラは、次のリモートデータミラーリング機能を実現するように構成されている。コントローラ１６ａはデバイスグループＳ１，Ｓ２及びＴ４を、コントローラ１６ｂはデバイスグループＳ３，Ｓ５及びＴ１を、コントローラ１６ｃはデバイスグループＳ４，Ｔ３及びＴ５を、コントローラ１６ｄはデバイスグループＴ２をそれぞれサポートしている。このため、コントローラ１６ａのソースデバイスグループＳ１にあるデバイスは、コントローラ１６ｂの対応するターゲットデバイスグループＴ１にあるデバイスにミラーされ、（コントローラ１６ａの）Ｓ２にあるデバイスは、（コントローラ１６ｄの）Ｔ２にミラーされている、といった具合になる。各コントローラは、自由に使用可能な１２の異なる論理リンクを有する。例えば、コントローラ１６ｂは、自身が有するポート３４ｃ，３４ｄの２つのポートを使用して、ポート３４ｃからポート３４ｅへ、ポート３４ｃからポート３４ｆへ、ポート３４ｃから３４ｇへ、ポート３４ｃからポート３４ｈへ、ポート３４ｃからポート３４ａへ、ポート３４ｃからポート３４ｂへ、ポート３４ｄからポート３４ｅへ、ポート３４ｄからポート３４ｆへ、ポート３４ｄから３４ｇへ、ポート３４ｄからポート３４ｈへ、ポート３４ｄからポート３４ａへ、及びポート３４ｄからポート３４ｂへの論理リンクを実現することができる。本図に示す構成においては、Ｓ３などのデバイスグループをサポートしているポートは、対応するデバイスグループ（Ｓ３の場合はＴ３）のポートと通信していなければならない。図に示すように、このスイッチアーキテクチャを用いて、コントローラごとに２つのポート／プロセッサを設ける場合、２つのデバイスグループ（Ｓ３とＴ３など）の間の接続は、ポート３４ｃからポート３４ｅへ、ポート３４ｃからポート３４ｆへ、ポート３４ｄからポート３４へ、ポート３４ｄからポート３４ｆへの４つの論理リンクの１つにより実現される。
【００２９】
図６において、図５に示すシステム構成のコントローラ１６ｂによって維持管理されるトポロジの例を示す。一番目のレベルにおいて、リモートシステム情報６４ａには、リモートシステムテーブル６４ａ（図３Ａ）のエントリに対応するコントローラ１６ａ（シリアル番号０１２３４５６７８）と１６ｃ（シリアル番号０３６３５７７６０）に関する情報が含まれる。次のレベルは、コントローラ１６ａをポイントしているデバイスグループＴ１を表す。これは、コントローラ１６ａはデバイスグループＴ１に対応するＲＤＦであるＳ１を維持管理しているからである。同様に、デバイスグループＳ３，Ｓ５はコントローラ１６ｃをポイントしている。これは、コントローラ１６ｃは、これらに対応するミラーデバイスグループＴ３，Ｔ５を有するデバイスグループにサービスを提供しているからである。これらのデバイスグループのデータは各々、デバイスグループテーブル６４ｂ（図３Ｂ）内のエントリに対応している。次のレベルは、プロセッサ（ポート３４ｃ，３４ｄに関連するプロセッサ）がサポートしているデバイスグループを示す。この図に示すように（この図は図３Ｃのテーブル６４ｃに対応している）、ディレクタ３２ｃ，３２ｄのうちの１つのプロセッサは、デバイスグループＴ１，Ｓ３をサポートしており、これらをポイントするように構成されている。ディレクタ３２ｃ，３２ｄのうちのもう一方のプロセッサは、Ｓ５に対応しており、これをポイントするように構成されている。一番下のレベルは、確立済みであるか（実線矢印）、所望されている（破線矢印）論理リンクを示す。図に示すように、Ｔ１，Ｓ３に対して既に論理リンクが確立されており、図中の矢印は、論理リンクテーブル６４ｄ（図３Ｄ）に格納されているエントリのポインタデータに対応している。これら確立済みのリンクは、リンク状態がアクティブであり、テーブル６４ｄのフィールド１００に格納されている状態値は「０ｘｆｆ」となる。
【００３０】
論理リンクを（Ｓ５とＴ５との間などに）確立するため、ポート（より詳細には、関連するディスクディレクタのプロセッサ）は接続初期化プロセス６６と単一リンク発見プロセス６８とを実行する必要がある。これらのプロセスをそれぞれ図７，８に示す。
【００３１】
図７において、接続初期化プロセス６６（プロセス６６）ではまず、スイッスイッチファブリック４０に接続しているポートのリストをチファブリック４０から取得する（ステップ１３０）。好適には、このリストには、各ポートのワールドワイド名が含まれている。プロセス６６では次に、リストの最初の項目を調べる（ステップ１３２）。プロセス６６は、ポートのＷＷＮが、このプロセスを実行しているポートのＷＷＮ（これ以降「ｏｕｒ＿ＷＶ／Ｎ」であるとする）以上であるか否かを判定する（ステップ１３４）。ＷＷＮがｏｕｒ＿ＷＷＮ以上である場合、プロセス６６は、リストに他に項目が存在するか否かを判定する（ステップ１３６）。リストに他に項目が存在しない場合、プロセス６６は終了する（ステップ１３７）。検査すべき他の項目が存在する場合、プロセス６６はリストの次の項目に進み（ステップ１３８）、ステップ１３４に戻る。ステップ１３４での判断の結果、ＷＷＮがｏｕｒ＿ＷＷＮ未満である場合、プロセス６６は、供給業者番号がプロセスを実行しているポートの供給業者番号（「ｏｕｒ＿ｖｅｎｄｏｒ＿ｎｕｍｂｅｒ」（ステップ１４０）と一致するか否かを判定する。供給業者番号が一致しない場合、プロセス６６はこの供給業者番号を無視してステップ１３６に進む。供給業者番号が一致する場合、プロセス６６は、ＷＷＮからシリアル番号とディレクタ番号とを抽出する（ステップ１４２）。プロセス６６は、このＷＷＮからサービスを受けているデバイスグループが存在するか否かを判定する（ステップ１４４）。換言すれば、プロセス６６は、ＷＷＮから抽出したシリアル番号が、いずれかのデバイスグループによってポイントされるシリアル番号と一致するか否かを判定する。一致しない場合、プロセス６６はステップ１３６に戻る。一致し、このシリアル番号によってサービスを提供されるデバイスグループが発見された場合、プロセス６６は次の処理を実行する。プロセス６６は、そのデバイスグループとシリアル番号とに対応する論理リンクが存在しているか否かを判定する（ステップ１４６）。論理リンクが既に確立されている場合、プロセス６６はステップ１３６に戻る。論理リンクが存在しない場合、プロセス６６は、状態を「１」に設定し、一致したシリアル番号によってサービスを受けているデバイスグループをポイントするポインタと、そのデバイスグループをポイントするプロセッサのポインタとを追加して、リンクテーブルにリンクを追加する（ステップ１４８）。プロセス６６は、単一リンク発見プロセス６８を起動し、そのＷＷＮディレクタ番号によって識別されるリモートプロセッサに対するリンクを確立する（ステップ１５０）。続いて、プロセス６６はステップ１３６に戻る。こうして、プロセス６６は、リストに格納されている全ポートに対してステップ１３４〜１５０を実行する。プロセス６６は、バックグラウンドプロセスとして実行されて、パラメータストア５８（図２）に設定されているタイミングパラメータに従って繰り返し実行される。
【００３２】
図８に、単一リンク発見プロセス６８（プロセス６８）の詳細な流れを示す。プロセス６８は、リンク発見（イニシエータポート）及びファブリックを開始しているポートのログインプロセスを開始する（ステップ１６０）。ＦＣスイッチの実施形態で記載したように、公知のＦＣログイン技法を用いてログインが実現される。イニシエータポートのプロセス６８は、レスポンダポートに同期メッセージを送信することによって、リモート（レスポンダ）ポートに接触する（ステップ１６２）。レスポンダポートをリセットすることによって同期がこの方法で実現されることもある。レスポンダポートに対するリンク障害により、応答を受信する前にタイムアウトが発生するか、ファブリックからリンク試行がファブリックによって拒否された場合（ステップ１６４）、プロセス６８は所定の再試行間隔が経過した後に、同期を再度試行する（ステップ１６６）。タイムアウト又は応答拒否が発生しなかった場合、レスポンダポートからの応答が受信され、同期メッセージを受信したレスポンダポートはＦＣログインを実行する。また、リンク発見プロセスの一環として、そのポートのリンクエントリが、リンク状態値を「１」に設定して作成される（ステップ１６８）。イニシエータポートは、リモートポートによってポイントされるデバイスグループの構成情報を読み取り、この情報とそのデバイスグループの構成とを比較する（ステップ１７０）。イニシエータポートは、デバイスグループをレスポンダポートに提供し、これによって、レスポンダグループは、イニシエータポートのデバイスグループの構成データを読み取り、この情報と記憶されているリモートデバイスグループの構成情報とを比較して、自身がそのデバイスグループをサポートしているか否かを判定する（ステップ１７２）。プロセス６８が不一致を示す情報を検出しないか受け取らない場合、リンク発見は成功である（ステップ１７４）。イニシエータポートはリンク状態の値を「０ｘｆｆ」に変更する（ステップ１７６）。プロセス６８が、ＲＤＦ不一致／拒否によりリンク発見が失敗に終わったと判定した場合、プロセス６８は不成功に関する情報（リモートポートのＷＷＮを示す）をキャッシュする。これによって、プロセス６８が，構成上の制限又は不一致によって接続を確立できない接続に対する試行が繰り返されなくなる（ステップ１７８）。
【００３３】
したがって、プロセス６８は、単一リンク発見中に、イニシエータポート及びレスポンダポートのステートマシンの状態を「１」から「０ｘｆｆ」に変更しようと試みる。状態は、「ｆｆ」（リンク確立）、再試行有りタイムアウト（失敗）、「リンクダウン」拒否、又はＲＤＦ拒否の４つの結果のいずれかを取り得る。２つのステートマシンのリンク状態が「ｆｆ」に変更された場合、リンクの確立が成功したことを示す。
【００３４】
本発明に関し、種々の変更例が可能であることが理解される。コントローラ１６が、どのディスクディレクタと、コントローラが制御するストレージデバイスとが、ホストコンピュータからの要求を満たす役割を第一に負っているかを識別するミラーサービスポリシーをさらにサポートすることもある。このポリシーは、予想される負荷を考慮して、システム設定の最初に固定されることがある。しかし、好適にはミラーサービスポリシーの実施は動的に行なわれる。換言すれば、ミラーサービスポリシーは、データストレージシステム１２に対する読取要求と書込要求の状態を表す統計値に基づいて定期的に変更されることがあり、これによってミラーサービスポリシーがデータストレージシステム１２の作動時に変更される。動的なミラーサービスポリシー（ＤＭＳＰ）の例は、米国特許第６，１１２，２５７号に開示されている。
【００３５】
本発明の好適な実施形態の追加例、代替例、及びその他の変更例は本分野の当業者にとって自明であり、特許請求の範囲の範囲内に含まれる。
【図面の簡単な説明】
【図１Ａ】ファイバチャネル（ＦＣ）スイッチファブリックに接続されている、相互的なリモートデータミラーリング機能を有するデータストレージシステムを備えたシステムのブロック図。
【図１Ｂ】ファイバチャネル（ＦＣ）スイッチファブリックに接続されている、相互的なリモートデータミラーリング機能を有するデータストレージシステムを備えたシステムのブロック図。
【図２】ＦＣポートに対して、スイッチファブリックを介して論理リンク接続を確立するために使用されるディスクディレクタの詳細を示すブロック図。
【図３Ａ】構成トポロジテーブルの一種であるリモートシステムテーブルを示す図。
【図３Ｂ】構成トポロジテーブルの一種であるデバイスグループテーブルを示す図。
【図３Ｃ】構成トポロジテーブルの一種であるディスクディレクタテーブルを示す図。
【図３Ｄ】構成トポロジテーブルの一種である論理リンクテーブルを示す図。
【図４】ワールドワイド名フィールドのフォーマットを示す図。
【図５】種々のデバイスグループをサポートするように構成されたコントローラの代表的な構成を備えた図１Ａ，１Ｂのシステムの論理図。
【図６】図５に示したシステムに対応する構成トポロジを示すグラフ図。
【図７】ディスクディレクタのプロセッサによって実行される接続初期化プロセスのフロー図。
【図８】ディスクディレクタのプロセッサによって実行される単一リンク発見プロセスのフロー図。
【図１Ａ】
2004518217.tif 000003
【図１Ｂ】
2004518217.tif 000004
【図２】
2004518217.tif 000005
【図３Ａ】
2004518217.tif 000006
【図３Ｂ】
2004518217.tif 000007
【図３Ｃ】
2004518217.tif 000008
【図３Ｄ】
2004518217.tif 000009
【図４】
2004518217.tif 000010
【図５】
2004518217.tif 000011
【図６】
2004518217.tif 000012
【図７】
2004518217.tif 000013
【図８】
2004518217.tif 000014
【国際公開パンフレット】
2004518217.tif 000015
2004518217.tif 000016
2004518217.tif 000017
2004518217.tif 000018
2004518217.tif 000019
2004518217.tif 000020
2004518217.tif 000021
2004518217.tif 000022
2004518217.tif 000023
2004518217.tif 000024
2004518217.tif 000025
2004518217.tif 000026
2004518217.tif 000027
2004518217.tif 000028
2004518217.tif 000029
2004518217.tif 000030
2004518217.tif 000031
2004518217.tif 000032
2004518217.tif 000033
2004518217.tif 000034
2004518217.tif 000035
2004518217.tif 000036
2004518217.tif 000037
2004518217.tif 000038
【国際公開パンフレット（コレクトバージョン）】
2004518217.tif 000039
【国際調査報告】
2004518217.tif 000040
2004518217.tif 000041