(57)【特許請求の範囲】
【請求項１】
データ記憶システムの遠隔データミラリング構成において、データ記憶システムを動作するための方法であって、
遠隔データ記憶システムからの要求に応答して前記データ記憶システムにより記憶データが、前記データ記憶システムと、遠隔データサービスアプリケーションに基づきＩＰネットワークによって前記データ記憶システムが接続される遠隔データ記憶システムとの間で転送されるべきものであることを判断する段階と、
前記遠隔データサービスアプリケーションとＴＣＰ／ＩＰプロトコルソフトウェア層との間のインタフェースであって、２つのプロセッサに分割され、第１インタフェース部分がテータ転送処理を行う第１プロセッサ上で実行され、第２インタフェース部分がＴＣＰ／ＩＰプロトコルを用いたリンク処理を行う第２プロセッサ上で実行される前記インタフェースを介して前記第１及び第２プロセッサ間でソケットデータを送受信することにより前記ＩＰネットワークへの接続を前記データ記憶システムにより形成する段階であって、前記第１プロセッサは、前記遠隔データサービスアプリケーション、共通装置インタフェース（ＣＤＩ）、及び前記第１インタフェース部分に対するマイクロコードを実行し、前記第２プロセッサは、前記第２インタフェース部分、前記ＴＣＰ／ＩＰプロトコルソフトウェア層、及びネットワークドライバに対するマイクロコードを実行する、前記形成する段階と、
前記ＩＰネットワークへの接続を用いて、前記ＩＰネットワーク上において、異なる物理トランスポート間の物理トランスポートの差異を前記ＣＤＩを用いて吸収することにより前記データ記憶システムと前記遠隔データ記憶システムとの間での記憶データの転送を可能にする段階と、
を備えることを特徴とする方法。
【請求項２】
請求項１に記載の方法であって、前記ＩＰネットワークは、インターネットであることを特徴とする方法。
【請求項３】
請求項１に記載の方法であって、前記ＩＰネットワークは、専用ネットワークであることを特徴とする方法。
【請求項４】
請求項１に記載の方法であって、前記インタフェースが前記第１及び第２のプロセッサ間でソケットデータを送受信するソケットインタフェースであることを特徴とする方法。
【請求項５】
請求項４に記載の方法であって、前記接続は、ギガビット・イーサネット上でのＴＣＰ／ＩＰを備えることを特徴とする方法。
【請求項６】
請求項４に記載の方法であって、前記ＩＰネットワークへの接続を形成する段階は、更に、前記データ記憶システムにより前記ソケットインタフェースを用いてソケットを生成して、該ソケットから前記ＩＰネットワークへの接続を形成する段階を含むことを特徴とする方法。
【請求項７】
データ記憶システムの遠隔データミラリング構成においてデータ記憶システムを動作させるためのコンピュータ可読媒体上に常駐するコンピュータプログラムであって、前記コンピュータプログラムは、コンピュータに
遠隔データ記憶システムからの要求に応答して記憶データが、前記データ記憶システムと、遠隔データサービスアプリケーションに基づきＩＰネットワークによって前記データ記憶システムが接続される遠隔データ記憶システムとの間で転送されるべきものであることを判断させる段階と、
前記遠隔データサービスアプリケーションとＴＣＰ／ＩＰプロトコルソフトウェア層との間のインタフェースであって、２つのプロセッサに分割され、第１インタフェース部分がテータ転送処理を行う第１プロセッサ上で実行され、第２インタフェース部分がＴＣＰ／ＩＰプロトコルを用いたリンク処理を行う第２プロセッサ上で実行されるインタフェースを介して前記第１及び第２のプロセッサ間でソケットデータを送受信することにより前記ＩＰネットワークへの接続を形成する段階であって、前記第１プロセッサは、前記遠隔データサービスアプリケーション、共通装置インタフェース（ＣＤＩ）、及び前記第１インタフェース部分に対するマイクロコードを実行し、前記第２プロセッサは、前記第２インタフェース部分、前記ＴＣＰ／ＩＰプロトコルソフトウェア層、及びネットワークドライバに対するマイクロコードを実行する、前記形成する段階と、
前記ＩＰネットワーク上において、前記ＩＰネットワークへの接続を用いて、異なる物理トランスポート間の物理トランスポートの差異を前記ＣＤＩを用いて吸収することにより前記データ記憶システムと前記遠隔データ記憶システムとの間での記憶データの転送を可能にさせる段階と、
を実行させることを特徴とするコンピュータプログラム。
【請求項８】
データ記憶システムの遠隔データミラリング構成に使用するためのデータ記憶システムであって、
１つ以上の記憶装置と、
前記１つ以上の記憶装置に接続された制御装置と、を備え、
前記制御装置は、遠隔データ記憶システムからの要求に応答して記憶データが、前記データ記憶システムと、遠隔データサービスアプリケーションに基づきＩＰネットワークによって前記データ記憶システムが接続される遠隔データ記憶システムとの間で転送されるべきものであることを判断し、前記遠隔データサービスアプリケーションとＴＣＰ／ＩＰプロトコルソフトウェア層との間のインタフェースであって、２つのプロセッサに分割され、第１インタフェース部分がテータ転送処理を行う第１プロセッサ上で実行され、第２インタフェース部分がＴＣＰ／ＩＰプロトコルを用いたリンク処理を行う第２プロセッサ上で実行されるインタフェースを介して前記第１及び第２プロセッサ間でソケットデータを送受信することにより前記ＩＰネットワークへの接続を形成し、前記ＩＰネットワークへの接続を用いて、前記ＩＰネットワーク上において、異なる物理トランスポート間の物理トランスポートの差異を共通装置インタフェース（ＣＤＩ）を用いて吸収することにより前記データ記憶システムと前記遠隔データ記憶システムとの間での記憶データの転送を可能にするように構成され、前記第１プロセッサは、前記遠隔データサービスアプリケーション、前記ＣＤＩ、及び前記第１インタフェース部分に対するマイクロコードを実行し、前記第２プロセッサは、前記第２インタフェース部分、前記ＴＣＰ／ＩＰプロトコルソフトウェア層、及びネットワークドライバに対するマイクロコードを実行する、ことを特徴とするデータ記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に、データ記憶システムに関し、特に、遠隔データミラリング機能を有するデータ記憶システムに関する。
関連出願の相互参照
本出願は、２００１年９月２７日に出願された米国仮特許出願番号第６０／３２５、６５８号の優先権を主張するものであり、全ての目的のためにその全体を本明細書中に引用参照する。
【背景技術】
【０００２】
情報の有用性の重要さを考慮して、データ記憶システムに記憶されたデータの信頼性や有用性を高めるために幾つかの手法が開発されている。以前のこのような手法に、遠隔データミラリングがある。“ミラリング”システムでは、一方のデータ記憶システムに記憶されたデータは、地理的に離れた所に在る他方のデータ記憶システムに複製することが好ましい。従って、これらデータ記憶システムの１つに在る１つ以上の記憶装置が故障した場合や致命的なシステム障害が発生した場合、そのデータは、遠隔データ記憶システムから、ミラリングによる複写の形態で容易に入手可能である。
【０００３】
同じ遠隔データ記憶システム（又はターゲット）上でミラリングされるデータ記憶システム（又はソース）上のデバイスは、デバイスグループと呼ばれる。同様に、同じソースにあるデバイスに対してサービスを提供したりミラリングを行なったりするターゲットのデバイスもデバイスグループと呼ばれる。デバイスグループは、例えば、リンク障害や計画的なバックアップ等、計画的又は計画外の中断の際、単一領域に記憶するには規模が大きすぎるデータブロックの整合性を確保するために用いられる。通常、デバイスグループは、数多くの物理的また論理的ボリュームにまたがり、また場合によっては、データを分散格納する場合、デバイスグループには、物理的また論理的ボリュームの様々な部分にマッピングし得るものが幾つかある。
【０００４】
通常、遠隔データミラリング環境において、ソースやターゲットデバイスグループは、いずれか２つの装置上で対にして配置され、ソース／ターゲットデバイスグループ対は、専用データリンク（例えば、ＥＳＣＯＮリンク）や交換データリンク（例えば、交換ファイバチャネルリンク）によって接続される。データリンクサポートは、データのバックアップ動作中に書込み、またデータ回復動作中に読出す。
【０００５】
なお、本件出願の優先権主張の基礎となる米国特許仮出願番号第６０／３２５，６５８号のための情報開示陳述書として米国特許商標庁に提出された先行技術文献を参考として以下に記す。
【特許文献１】米国特許第６，１７３，３７７号明細書
【特許文献２】米国特許第５，９０１，３２７号明細書
【特許文献３】米国特許第５，７４２，７９２号明細書
【特許文献４】米国特許出願番号第０９／７６７，７７３（公開番号US−２００２−００９７６８７−A1）
【非特許文献１】２００１年６月、コンピュータ・ネットワーキング・テクノロジー・コーポレーション（CNT ）によって発行された「IP記憶ネットワーキングのためのアーキテクチャ及び基準」という題名の白書
【非特許文献２】２００１年５月８日の「ＥＭＣ／ＣＮＴ解決法はＩＰに渡るファイバ・チャネルを利用する最初のものである」という題名のＣＮＴプレスリリース
【発明の開示】
【発明が解決しようとする課題】
【０００６】
このようなポイントツーポイント及び交換データリンクの接続形態には、距離的な制約がある。長距離を扱う場合、ＥＳＣＯＮ（又はファイバチャネル）データリンク（ローカル及びリモート形態でデータ記憶システムのデータポートに接続される）は、専用回線（Ｔ３等）又はＩＰネットワークを介して接続される。しかしながら、これらの種類の長距離解決策には、重大な欠点が伴う。例えば、Ｔ３リンクは、ＥＳＣＯＮ又はファイバチャネルリンクに比べ、極めて高価で、また非常に速度が遅い。更に、これらの解決策を用いる接続は、様々なネットワークプロトコルやインタフェースにまたがるため、何らかの種類のアダプタボックスを用いて、様々なプロトコルとインタフェースとの間、例えば、ＥＳＣＯＮとＴ３との間又はＥＳＣＯＮとＩＰとの間等で変換を行なわなければならない。通常、アダプタボックスは、データ記憶システム提供者以外の何らかのエンティティによって、設計され、構成され、また管理される。このことが意味することは、データ記憶システムの性能は、アダプタボックス（例えば、バッファの制約や不足による遅延、ＩＰサービスの利用可能性）、又はＩＰ回線の品質、例えば、インターネットサービスプロバイダによって提供されるＩＰ接続のいずれかによって支配される側面があるため、データ記憶システム供給者の管理の範囲内に無いことである。更に、アダプタボックスの設計、特に、ＦＣ対ＩＰサービスをサポートするものの設計は、非常に複雑になることがあり、フィールドサービスの面から見て、このようなボックスを利用する遠隔接続データ記憶システムのネットワークは高価なものになる。
【課題を解決するための手段】
【０００７】
１つの側面において、本発明は、コンピュータプログラムプロダクトを含み、データ記憶システムの遠隔データミラリング構成においてデータ記憶システムを動作させるための方法及び装置を提供する。この方法には、記憶トラフィックが、このデータ記憶システムと、このデータ記憶システムがＩＰネットワークにより接続された遠隔データ記憶システムとの間で転送されることを判断する段階を含み、また、このＩＰネットワークへのネイティブ接続を用いて、ＩＰネットワーク上において、このデータ記憶システムと遠隔データ記憶システムとの間で記憶トラフィックの転送を可能にする段階を含む。
【０００８】
本発明の特定の実現例は、以下の利点を１つ以上提供し得る。本発明によって、遠隔データミラリング構成のデータ記憶システムは、ＩＰネットワークの構成要素として直接加わり、ＩＰネットワークの全てのサービスを用い得る。データ記憶システムがＩＰネットワークへのネイティブ接続を直接確立できると、データ記憶システムによるＩＰネットワークサービスの使用可能範囲を制限する高価な第３者のアダプタボックスの必要性が無くなる。更に、アダプタボックスが不用になるため、データ記憶システム供給者は、記憶トラフィックの長距離転送のためにＩＰネットワーク（インターネット等）を用いる遠隔データサービス機能の性能をより良く制御し監視し得る。
【０００９】
本発明の他の特徴及び利点は、以下の詳細な説明及び請求項から明らかになろう。同様な構成要素は、同様な参照番号を用いて表す。
【発明を実施するための最良の形態】
【００１０】
図１において、データ処理システム１０には、データ記憶システム１４に接続されたホストコンピュータ１２ａ、１２ｂ、・・・、１２ｍが含まれる。例えば、データ記憶システム１４は、ＥＭＣ社製のシンメトリクス（Ｓｙｍｍｅｔｒｉｘ）データ記憶システムとして知られているものでもよい。データ記憶システム１４は、ホストコンピュータ１２からデータや命令を受信し、ホストコンピュータ１２にデータや応答を送信する。データ記憶システム１４は、ディスク装置１８ａ、ディスク装置１８ｂ、・・・、ディスク装置１８ｋとして示す複数の物理記憶装置に接続された制御装置１６を有する大容量記憶システムである。各ディスク装置１８は、既知の手法に基づき、１つ以上の論理ボリュームに論理的に分割される。
【００１１】
制御装置１６は、ホストコンピュータ１２とディスク装置１８とを相互接続する。従って、制御装置１６は、例えば、それぞれＳＣＳＩプロトコルに基づき接続され動作するバス２０ａ、２０ｂ、・・・、２０ｍ上で様々なホストコンピュータから書込み命令を受信し、それぞれの接続バス２２ａ、２２ｂ、・・・、２２ｋ上において、対応する装置１８ａ、１８ｂ、・・・、１８ｋにそれらの命令に対応したデータを送信する。バス２２もまたＳＣＳＩプロトコルに基づき動作する。また他のプロトコル、例えば、ファイバチャネルもバス２０、２２に用い得る。また制御装置１６は、バス２０上でホストコンピュータ１２から読出し要求を受信し、制御装置１６のキャッシュメモリから又はデータがキャッシュメモリに無い場合はディスク装置１８から、要求されたデータをホストコンピュータ１２に送信する。
【００１２】
また、通常の構成において、制御装置１６は、接続バス２６を介してコンソールＰＣ２４に接続している。コンソールＰＣ２４は、制御装置１６に対する保守とアクセスとに用いられ、この手法では既知の制御装置１６のパラメータを設定するのに用い得る。
【００１３】
制御装置は、データリンク２８によるデータバックアップ機能のために、データ処理システム１０の様な遠隔データ処理システム又は（破線で示す）データ記憶システム１４の様な遠隔データ記憶システムに接続し得る。データリンク２８は、ギガビット・イーサネット・プロトコルに従い実現される。同様に他のネットワークプロトコルも用い得る。データリンク２８によって、遠隔データ記憶システムは、後述の如く、それ自体の装置に、ミラリングによりデータ記憶システム１４の装置１８に記憶された情報のコピーを記憶し得る。
【００１４】
動作中、ホストコンピュータ１２ａ、１２ｂ、・・・、１２ｍは、それらが実行しているアプリケーションによる要求に応じて、論理ボリュームに記憶されたデータを要求したり、論理ボリュームに書込まれるデータを提供したりするデータ記憶システム１４に命令を送信する。図２において、また、実例としてシンメトリクスデータ記憶システムの制御装置を用いて、データ記憶システム１４の内部アーキテクチャの詳細を示す。通常、ホストコンピュータ１２からの通信により、ホストコンピュータ１２は、ＳＣＳＩバス線２０上で１つ以上のホストディレクタ３０のポートに接続される。各ホストディレクタは、１つ以上のシステムバス３２又は３４上でグローバルメモリ３６に接続される。グローバルメモリ３６は、ホストディレクタ３０がディスク装置１８とこれを介して通信し得る大規模メモリであることが好ましい。グローバルメモリには、ホストコンピュータ１２とディスク装置１８との間の通信をサポートするための共通領域３８と、データ及び制御データ構造を記憶するためのキャッシュメモリ４０と、ディスク装置１８の領域をキャッシュメモリ４０の領域にマッピングするためのテーブル４２とが含まれる。
【００１５】
また、ディスク装置１８を制御する後置（ディスク）ディレクタ４４が、グローバルメモリ３６に接続される。好適な実施形態において、ディスクディレクタは、制御装置１６に対でインストールされる。簡略化のために、ディスクディレクタ４４ａ及び４４ｂで示す２つのディスクディレクタのみを示す。しかしながら、このシステムには、他のディスクディレクタを用い得ることが理解されよう。
【００１６】
各ディスクディレクタ４４ａ、４４ｂは、４つのバスポートをサポートする。ディスクディレクタ４４ａは、２つの一次バス２２ａ及び２２ｂ、並びに２つの二次バス２２ａ’及び２２ｂ’に接続する。バスは、１６ビット幅のＳＣＳＩバスとして実現される。前述の如く、ＳＣＳＩプロトコル以外の他のバスプロトコルを用いてもよい。２つの二次バス２２ａ’、２２ｂ’は、冗長性のために追加される。一次バス２２ａ、２２ｂには、複数のディスク装置（例えば、ディスクドライブユニット）１８ａ及び１８ｂがそれぞれ接続される。ディスクディレクタ４４ｂは、２つの一次バス２２ｃ、２２ｄに接続する。一次バス２２ｃ、２２ｄには、複数のディスク装置すなわちディスクドライブユニット１８ｃ及び１８ｄが接続される。また一次バス２２ｃ、２２ｄには、二次バス２２ａ’、２２ｂ’が接続される。一次バスがアクティブ状態である場合、それに対応する二次バスはイナクティブ状態であり、逆の場合も同様である。ディスクディレクタ４４ｂの二次バスについては、わかりやすくするために図から省略した。
【００１７】
また、ホストディレクタ３０と同様に、ディスクディレクタ４４は、システムバス３２、３４の１つを介して、グローバルメモリ３６に接続される。書込み動作中、ディスクディレクタ４４は、ホストディレクタ３０によりグローバルメモリ３６に記憶されたデータを読出し、それらが担当する論理ボリュームにそのデータを書込む。読出し動作中又読出し命令に応じて、ディスクディレクタ４４は、論理ボリュームからデータを読出し、また、ホストディレクタが要求側ホストコンピュータ１２に後で送信するために、グローバルメモリにそのデータを書込む。
【００１８】
前述の如く、データ記憶システム１４は、データリンク２８を用いて、ミラー記憶構成で他のデータ記憶システム１４に遠隔接続し得る。また図２において、ミラー記憶構成の各データ記憶システム１４には、データリンク２８に接続され、そのリンク上でデータ転送処理を行なう遠隔ディレクタ４８が含まれる。遠隔ディレクタ４８は、システムバス３２、３４の内の１つにおいてグローバルメモリ３６と通信する。
【００１９】
図３において、遠隔データサービス（例えば、データミラリング）記憶構成５０は、２つ以上のデータ記憶システム１４（３つのデータ記憶システム１４ａ、１４ｂ、１４ｃとして図示）を含む。データ記憶システム１４ａ、１４ｂ、１４ｃは、それぞれのデータリンク２８ａ、２８ｂ、２８ｃによって、ＩＰネットワーク（インターネット５２として示す）に直接接続される。データリンク２８は、前述のギガビット・イーサネット伝送チャネルとして実現されるが、ＴＣＰ／ＩＰトラフィックをサポートするための何らかの適切な伝送媒体を用いてもよい。データリンク２８及びＩＰネットワーク５２は、ユニット１４間のＴＣＰ／ＩＰトラフィック搬送用の接続をサポートするのに用いられる。例えば、第１接続５４ａは、データ記憶システム１４ａと１４ｂとの間に確立し得る。第２接続５４ｂは、データ記憶システム１４ｂと１４ｃとの間に確立し得る。第３接続５４ｃは、データ記憶システム１４ｃと１４ａとの間に確立し得る。システム５０において、データ記憶システム１４は、遠隔データミラリング機能用に構成されている。具体的には、図示の例において、８つの装置群Ｓ１、Ｓ２、Ｓ３、Ｓ４、Ｔ１、Ｔ２、Ｔ３、Ｔ４があり、それぞれ参照番号５６ａ、５６ｂ、５６ｃ、５６ｄ、５６ｅ、５６ｆ、５６ｇ、５６ｈで示す。４つの装置群Ｓ１乃至Ｓ４は、ソース装置群であり、装置群Ｔ１乃至Ｔ４は、ターゲット装置群である。図示の例では、データ記憶システム１４は、以下の通り構成されている。すなわち、データ記憶システム１４ａが装置群Ｓ１、Ｓ２、Ｔ３をサポートし、データ記憶システム１４ｂが装置群Ｓ４、Ｔ１、Ｔ２をサポートし、データ記憶システム１４ｃが装置群Ｓ３、Ｔ４をサポートするように構成されている。従って、ソース群Ｓ１の装置は、対応するターゲット装置群Ｔ１の装置にミラリングされ、ソース群Ｓ２の装置は、対応するターゲット装置群Ｔ２の装置にミラリングされ、以下同じようにミラリングされる。従って、これらのユニットは、ＴＣＰ／ＩＰを用いてリモート・データ・ ファシリティサービスの要求に応じて記憶トラフィックを交換する。例えば、データ記憶システム１４ａ、１４ｂは、データ記憶システム１４ａがソース装置群Ｓ１上に常駐するデータのコピーをターゲット装置群Ｔ１に提供できるように、相互に接続を確立する。従って、各データ記憶システム１４の遠隔ディレクタ４８（後述）のアーキテクチャによって、それらの装置は、障害復旧や他の遠隔データサービスに対してインターネットインフラを用い得る。ＩＰネットワーク５２は、公衆回線インターネットとして示しているが、代わりに専用ネットワークでも良い。
【００２０】
図４に示すように、遠隔ディレクタ４８は、ＲＤＦディレクタ６０及びリンクディレクタ６２を含む。ＲＤＦディレクタ６０は、不揮発性のローカルメモリ（ＮＶＭ）６６に接続されたプロセッサ６４を含む。ＮＶＭ６６は、制御ストア６８及びパラメータストア７０を含む。リンクディレクタ６２は、それ自体のＮＶＭ７４に接続されたプロセッサ７２を含み、このＮＶＭも制御ストア７６及びパラメータストア７８を含む。ディレクタ６０、６２は各々共有メモリ８０へのアクセス権を有する。プロセッサ６４は、ＲＤＦディレクタ６０の動作及びメモリ６６、８０との通信全体を制御する。制御ストア６８はファームウェア（マイクロコード）８２を記憶し、パラメータストアはパラメータデータを記憶し、これら両方共、データ記憶システム１４が初期化される度に読出される。マイクロコード８２は、プロセッサ６４による後続の実行のための初期化時に制御ストア６８にコピーされる。プロセッサ７２は、リンクディレクタ６２の動作及びメモリ７４、８０との通信全体を制御する。制御ストア７６はリンクファームウェア（マイクロコード）８４を記憶し、パラメータストア７８はパラメータデータを記憶し、これら両方共、データ記憶システム１４が初期化される度に読出される。マイクロコード８４は、プロセッサ７２による後続の実行のための初期化時に制御ストア７６にコピーされる。
【００２１】
図５において、マイクロコード８２、８４を示す。ＲＤＦディレクタのマイクロコード８２は、ＲＤＦエミュレーション層９４と、共通装置インタフェース９６と、第１ソケットリレー層９８とを含む。マイクロコード８４は、リンクプロセッサ７２によって実行され、第２ソケットリレー層１００と、ＴＣＰ／ＩＰ層１０２と、ネットワークドライバ１０４とを含む。ソケットリレー９８、１００は一括してソケットインタフェース１０８を表し、ソケットメッセージを互いに受け渡す。（エミュレーションプロセッサ６４上で機能する）上位レベルのＲＤＦエミュレーション／ＣＤＩ層と、（リンクプロセッサ７４上で機能する）層１０２のＴＣＰ／ＩＰプロトコルとの間のインタフェース１０８は、ソケットインタフェースとして実現されるものとして示すが、ＲＤＦエミュレーションとＴＣＰ／ＩＰプロトコルソフトウェアとの間における通信には、他のインタフェースを用いてもよい。
【００２２】
ＲＤＦエミュレーション９４は、以下のものを含み得る。すなわち、システム・コール層１１０、ディレクタレベル又はデータ記憶システムレベルでもオプションで良い拡張機能モジュール１１２、制御装置１６の各ディレクタに備えられる共通機能モジュール１１４、及びインタフェース（ディレクタアプリケーション）モジュールを含み得る。インタフェースモジュールは、接続性及び／又は機能に基づき入手可能な異なる種類のディレクタ各々に対して存在し、例えば、遠隔データファシリティ（ＲＤＦ）インタフェースは、遠隔ディレクタ４８の機能を定義し、メインフレームと開放型システムとのホストインタフェースは、それぞれホストディレクタ３０を定義し、また後置インタフェースは、後置ディレクタ４４の機能を定義する。
【００２３】
エミュレーションは、上位レベルプロトコル（ＵＬＰ）すなわち１つ以上の層１１０、１１２、１１４（図５）の機能に対応したプロトコル及びＲＤＦインタフェース１１６に対応する機能の両方を実現するソフトウェアとして定義される。従って、エミュレーション９４は、あらゆる物理トランスポート層の上位に常駐し、ＲＤＦインタフェース１１４に対応するソフトウェア並びにＵＬＰを実現するソフトウェアを含む。
【００２４】
ＣＤＩ９６は、異なる物理トランスポートが、異なる物理フォーマット、データ容量、及びアクセス特性を有することを認識する。その結果、ＣＤＩ９６は、互いに干渉し合うドライバ及びエミュレーションの部分の性質が一般的なものになるように、それらの物理トランスポートの差異を吸収し又分離する。ＣＤＩ９６は、多機能性を備え、あらゆる既存の又は考え得るトランスポート機能（又はプロトコル）をサポートするようになっている。異なる物理トランスポートプロトコルの細部の移動に加えて、ＣＤＩは、（例えば、後述するＤＭＡ機構を介して）物理的なデータの移動を取り扱い、エミュレーションソフトウェアに対して、そのデータ移動が見えないようにする。
【００２５】
ＣＤＩは、Ｉ／Ｏ制御ブロック（以下、“ＩＯＣＢ”）データ構造において具現化されているものと見なし得る。このＩＯＣＢデータ構造は、エミュレーション９４と、エミュレーション９４が命令やデータの転送に際して通信するＣＤＩ準拠の下位層（ＣＤＩドライバ）との間における共通インタフェースを定義する役割を果たす一般的な構造である。ＣＤＩドライバに対して（ＵＬＰ命令を含む）要求を行なう場合、ＲＤＦエミュレーション９４は、その唯一のパラメータとして、その要求を記述するＩＯＣＢに対するポインタを選択するコール‘ＣＤＩ  ＩＯＣＴＬ’を用いる。その要求及びその対応付するＩＯＣＢの寿命の間、ＩＯＣＢの制御は、エミュレーションと、それを受取ったＣＤＩドライバとの間とを行き来する。ＩＯＣＴＬコールが未処理の場合、ＣＤＩドライバは、ＩＯＣＢを制御する。コール要求が終了すると、ＲＤＦエミュレーション９４は、ＩＯＣＢの制御を行なう。例えば、ＩＯＣＴＬコールの終了や新しいＵＬＰ命令の到着等のイベント通知は、対応するＩＯＣＢを本明細書中でイベント（又は終了）キューと呼ぶキューに配置するで、エミュレーションにＣＤＩドライバによって信号送信される。従って、エミュレーションは、コールに対応付したＩＯＣＢがＣＤＩドライバによってイベントキューに配置されたと判断すると、コール要求終了状態を検出する。ＩＯＣＢをイベントキューから除去することによって、エミュレーションは、ＩＯＣＢに割当てられたバッファの制御を得る。
【００２６】
ＣＤＩ９６は、ポーリング又は割込み駆動環境においてサポートし得る。ポーリング環境において、物理インタフェースを調べ又累積されたあらゆるイベントを処理する機会をドライバに与える割込みサービスルーチンとして機能するルーチンに対して、エミュレーションは、定期的にコールしなければならない。このコールは、新しいイベント又は要求の終了を容易に適時発見し得るように頻繁に行なわなければならない。割込み駆動環境においては、割込みによって、イベントは、発生した都度、処理される。
【００２７】
ＣＤＩ９６の更に構造的な具体例用の詳細については、２００１年３月１日に申請された係属出願中の米国特許出願番号第０９／７９７、３４７号に記載されており、本明細書中に引用参照する。
【００２８】
また図５において、ＣＤＩ９６の下には、ソケットインタフェース１００がある。本実施形態において、ＲＤＦエミュレーション９４及びソケットインタフェース１００は、ＣＤＩフォーマットを理解する。従って、ＣＤＩ９６は、ＴＣＰ／ＩＰ層からＲＤＦエミュレーション９４を分離させる役割を果たす。
【００２９】
ＴＣＰ／ＩＰ層１０２及び下位ネットワーク層１０４、１０６の具体例用の詳細は、既知の方法で実現され、従って、本明細書中ではこれ以上説明しない。当業者であれば、ＴＣＰ／ＩＰを用いて、ギガビット・イーサネットデータリンク上でのパケットの送受信に必要な要求されたリンクプロセッサソフトウェア（並びに何らかの特別なハードウェア支援、例えば、ＤＭＡ（図示せず））を実現し得ることが理解されるであろう。
【００３０】
図５は、ネットワーク（例えば、ギガビット・イーサネット）ドライバ及びハードウェアインタフェース用ソフトウェア（層１０４、１０６）を含むリンクプロセッサファームウェア８４を示すが、これらの層の一方又は両方は、別々の市販のギガビットＭＡＣデバイス又はチップセットで実現し得ることが理解されよう。
【００３１】
図６において、エミュレーションプロセッサ６４とリンクプロセッサ７２との間でソケットメッセージを受け渡しするために用いる共有メモリ８０の一部詳細を示すインタフェース４８の概念図を示す。共有メモリ８０は、それぞれメッセージ１２０及びデータ１２２用のデータ構造を含む。メッセージは、個々のＴＣＰ／ＩＰ接続の確立及び解消に関連するメッセージである。データは、ＴＣＰ／ＩＰプロトコルデータ単位に含まれ、ギガビット・イーサネットデータリンク上での処理や伝送用のプロトコルスタックを下方に通過するデータであるか、又は、そのリンク上で受信され、既知の方法でプロトコルスタックを上方に通過する際取り出され／処理されたデータである。メッセージデータ構造は、発信及び着信メッセージ用の発信及び着信データ構造１２０ａ、１２０ｂをそれぞれ含む。また同様に、データ転送管理用のデータ構造は、発信データ構造１２２ａ及び着信データ構造１２２ｂを含む。構造１２０ａ、１２０ｂ、１２２ａ、１２２ｂは全て、例えば、円環等、同じ種類のデータ構造で実現してよい。
【００３２】
ディレクタ４８は、性能上の理由により、すなわち、リンクプロセッサとのＲＤＦインタフェースを処理するプロセッサから集中処理のＴＣＰ／ＩＰ動作の負担を軽減するために、２プロセッサのアーキテクチャとして実現されたことが理解されよう。しかしながら、単一プロセッサの解決策も考えられる。
【００３３】
更に、上述の実施形態は、２プロセッサの境界にまたがってソケットメッセージを受け渡しつつ、プロセッサ間で受け渡されるメッセージが、ソケットメッセージではなくＣＤＩメッセージであるように、プロセッサ間においてＣＤＩを分割することが可能である。このような具体例では、ＴＣＰ／ＩＰ層が、ＣＤＩを認識し、また、ＣＤＩに準拠するように符号化されることが必要である。
【００３４】
本発明をその詳細な記述を参照して説明したが、上記記述は例示のためであって、本発明の範囲を制限するものではなく、本発明の範囲は、添付の請求項の範囲によって規定されるものとする。他の実施形態も以下の請求項の範囲内にある。
【図面の簡単な説明】
【００３５】
【図１】データ記憶システムに接続されたホストコンピュータを含むデータ処理システムであって、データ記憶システムは、記憶制御装置に接続された記憶装置を含み、記憶制御装置は、ホストコンピュータと記憶装置との間並びにデータ記憶システムと他の遠隔データ記憶システムとの間のデータ転送を制御する上記データ処理システムを示すブロック図。
【図２】（図１に示す）データ記憶システムとその記憶制御装置であって、ＩＰネットワーク上において、データ記憶システムと遠隔データ記憶システムとの間のＲＤＦ（リモート・データ・ ファシリティ）記憶トラフィックの交換を管理するための遠隔（ＲＤＦ）ディレクタを含む上記記憶制御装置の詳細を示すブロック図。
【図３】ＩＰネットワーク（インターネットとして示す）によって相互接続されたデータ記憶システムであって、ネイティブ接続を用いてＩＰネットワーク上で互いに記憶トラフィックを送信可能な上記データ記憶システム（図１と２に示したもの等）の遠隔データミラリング構成のブロック図。
【図４】ＩＰネットワークへのネイティブ接続が可能な（図２の）遠隔ディレクタの２プロセッサ実現例のブロック図。
【図５】遠隔ディレクタのプロセッサによって実行されるソフトウェアの図。
【図６】プロセッサ境界を越えソケットインタフェースメッセージを交換するための共有メモリ具体例の詳細を示す遠隔ディレクタの他のブロック図。
【図１】
0004543051.tif 000002
【図２】
0004543051.tif 000003
【図３】
0004543051.tif 000004
【図４】
0004543051.tif 000005
【図５】
0004543051.tif 000006
【図６】
0004543051.tif 000007