(57)【要約】ネットワークを介して拡張コピーコマンドの範囲でデータフローを重複させるための方法およびシステムが開示される。この方法の一実施形態は、ネットワークルータで、第１のホストから第１のターゲットデバイスへの拡張コピーコマンドを受け取るステップと、ネットワーク状態が未知の場合、初期ネットワーク状態を決定するステップと、読み出し−書き込みパラメータのセットを初期化するステップと、拡張コピーコマンドの１つ以上の読み出しコマンドおよび書き込みコマンドを重複させることによって、拡張コピーコマンドの第１のセグメント用の、および、１つ以上のその後のセグメント用の拡張コピーコマンドを実行するステップとを包含する。【選択図】図１
2004523837.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して拡張コピーコマンドの範囲内でデータフローを重複させる方法であって、該ネットワーク中のルータにおいて、
第１のホストから第１のターゲットデバイスへの拡張コピーコマンドを受け取るステップと、
該ネットワーク状態が未知の場合、初期ネットワーク状態を決定するステップと、
読み出し−書き込みパラメータのセットを初期化するステップと、
該拡張コピーコマンドの１つ以上の読み出しコマンドと１つ以上の書き込みコマンドとを重複させることによって、該拡張コピーコマンドの第１のセグメント用の、および、１つ以上のその後のセグメント用の該拡張コピーコマンドを実行するステップであって、
該拡張コピーコマンドの第１のセグメント用の初期コマンドのセットを発するステップと、
該その後のコマンドの各々が受け取られるとき、該拡張コピーコマンドのその後のセグメントの各々のための、初期コマンドのその後のセットを発するステップと、
該拡張コピーコマンドの各セグメント用の読み出し完了動作を実行するステップと、
該拡張コピーコマンドの各セグメント用の書き込み完了動作を実行するステップであって、各セグメント用の該読み出し完了動作および該書き込み完了動作は、各セグメントが受け取られた順序でなくてもよい、ステップと
を包含するステップと
を包含する、方法。
【請求項２】
前記拡張コピーコマンドは、ＳＣＳＩ（スモール  コンピュータ  システム  インタフェース）拡張コピーコマンドであり、前記ルータは、ファイバ  チャネル−トゥ−ＳＣＳＩ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ−ｔｏ−ＳＣＳＩ）ルータであり、前記ネットワークは、ファイバ  チャネル−トゥ−ＳＣＳＩ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ−ｔｏ−ＳＣＳＩ）格納エリアネットワークである、請求項１に記載の方法。
【請求項３】
前記読み出し−書き込みパラメータのセットは、ｂｙｔｅｓ＿ｒｅａｄカウント、ｂｙｔｅｓ＿ｗｒｉｔｔｅｎカウント、ｒｅａｄ＿ｓｔａｔｅパラメータ、および、ｗｒｉｔｅ＿ｓｔａｔｅパラメータを含む、請求項１に記載の方法。
【請求項４】
前記ｂｙｔｅｓ＿ｒｅａｄカウント、および、前記ｂｙｔｅｓ＿ｗｒｉｔｔｅｎカウントを初期化するステップは、両方をゼロに設定するステップを包含し、前記ｒｅａｄ＿ｓｔａｔｅパラメータ、および、前記ｗｒｉｔｅ＿ｓｔａｔｅパラメータを初期化するステップは、両方をアイドルに設定するステップを包含する、請求項３に記載の方法。
【請求項５】
前記初期コマンドのセットを発し、前記その後の初期コマンドのセットを発するステップは、初期コマンドアルゴリズムを実行するステップを包含する、請求項１に記載の方法。
【請求項６】
前記読み出し完了動作を行うステップは、読み出し完了アルゴリズムを実行するステップを包含する、請求項１に記載の方法。
【請求項７】
前記書き込み完了動作を行うステップは、書き込み完了アルゴリズムを実行するステップを包含する、請求項１に記載の方法。
【請求項８】
前記拡張コピーコマンドを完了すると、前記第１のホストにコマンド完了コマンドを発するステップをさらに包含する、請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概してデータおよび情報通信システム、ならびに、それらの動作に関し、より詳細には、格納エリアネットワーキングの分野に関する。さらに詳細には、本発明は、ファイバチャネル−トゥ−ＳＣＳＩ格納エリアネットワーク（ＳＡＮ）、ならびに、ＳＣＳＩ拡張コピーコマンドの範囲でソースから目的までのデータフローを重複させる方法およびシステムに関する。
【背景技術】
【０００２】
より速く、より信頼でき、そして、より効率的なデータアクセスおよびデータ管理能力が必要になるとともに、組織が格納する必要のあるデータ量が劇的に増大することによって、多くの組織は、データを格納し、アクセスし、かつ、管理する改善した方法を求めるようになった。従来のコンピュータにおいて、ネットワークコンポーネントを接続し、かつ、例えば、サーバと格納デバイスとの間でデータを転送するために用いられる普及したコンピュータプロトコルは、小さなコンピュータシステムインタフェースまたは「ＳＣＳＩ」である。データを格納する、および、検索する必要性が増加するにつれて、高速、効率的かつ信頼できるデータ格納および検索を解決することの必要性がまた増加している。
【０００３】
例えば、ＳＣＳＩプロトコルに存在するある問題は、データバックアップ動作を実行するときに、ホストデバイスは、通常データをソースデバイスからホストデバイスに読み出し、次いで、データを送り先のデバイス、例えば、テープバックアップドライブに書き込むことである。従って、ホストデバイスは、全体のバックアップ動作中に占有されたままであり、ホストデバイスのリソースは、他の動作に当てられ得ない。さらに、今日の大部分の組織において、データのバックアップ−データの複製コピーを生成して、データの崩壊または損失を防ぐこと−は、専用の格納デバイスからプライマリコンピュータネットワークを介してバックアップ格納デバイスに大量の格納されたデータを移動させることによって達成される。プライマリコンピュータネットワークがまた、日々の演算動作を行う義務があるため、このさらなるデータの移動は、実質的に混雑し、日々の演算動作を遅くする。
【０００４】
ＳＣＳＩプロトコル拡張コピーコマンド、および、データ格納専用のコンピュータネットワークである格納エリアネットワーク（ＳＡＮ）の使用は、これらの問題のうちのいくつかを解決するための助けとなり得る。ＳＣＳＩ拡張コピーコマンドは、拡張コピーコマンドを支援するルータ（例えば、ファイバチャネル−トゥ−ＳＣＳＩルータ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ−ｔｏ−ＳＣＳＩ  ｒｏｕｔｅｒ））等のコピーマネージャデバイス上の異なるプロセッサにバックアップ動作を実行する責任を移転することによって、バックアップ動作中のホストのリソースを解放するコピーコマンドである。従って、ホストは、コピーマネージャデバイスがバックアップ動作を指揮する間に、ネットワークに対する他の動作を自由に実行する。
【０００５】
格納エリアネットワークは、ファイバチャネルとして公知の異なる、高速性能のコンピュータプロトコルを用いて、データを転送する。また、格納エリアネットワークによって、多くのサーバが多くの格納デバイスに接続する、および、多くの格納デバイスへのアクセスをシェアすることを可能にする。ファイバチャネルプロトコルと共に、格納エリアネットワークによって可能とされた多数−多数（ｍａｎｙ−ｍａｎｙ）接続は、より高速、より効率的かつより管理可能なデータ転送プロセスを可能にする。さらに、格納エリアネットワークは、プライマリコンピュータネットワークの代わりにデータバックアップ動作を実行するように用いられ得、従って、プライマリコンピュータネットワーク上の混雑を実質的に低減し、より効率的な日々のネットワーク動作を可能にする。
【０００６】
大部分の現在の格納デバイスは、小さなコンピュータシステムインタフェースと共に販売され続けている。さらに、大部分の組織は、小さなコンピュータシステムインタフェースを使用する格納デバイスおよびサーバに莫大な投資をしてきている。従って、ファイバチャネルを用いてＳＣＳＩを用いて格納デバイスと共に機能する格納エリアネットワークデバイスのために、ファイバチャネル−トゥ−ＳＣＳＩ格納ルータは、これらのデバイス間にインストールされる必要がある。特に、大部分のデータバックアップ格納デバイスがＳＣＳＩインタフェースを用いて格納ルータを通して格納エリアネットワークに接続し得るのみであるために、格納ルータは、プライマリコンピュータネットワークから格納エリアネットワークへとデータバックアップ処理をシフトさせる際に欠かすことはできない。新しいコンピュータプロトコルが導入されるにつれて、格納ルータは、多様なプロトコルを用いるサーバ、格納デバイスおよび格納エリアネットワークデバイス間の高速、均一通信を可能にする際に、益々欠かせないものとなっている。
【０００７】
しかし、ＳＣＳＩ拡張コピーコマンドの現在のインプリメンテーションは、シリアル化されたデータ転送動作を支援するのみである。ＳＣＳＩ拡張コピーコマンドの現在のインプリメンテーションは、最初に、ソースから単一読み出しを実行することによって、次に、送り先に単一書き込みを実行することによってデータ転送を実行する。これは、ソースか送り先かに関わらず、唯一のデバイスが任意の所望の時間において利用されていることを意味している。従って、ソースデバイスと送り先デバイスとが交互に待たされ、データ転送性能が悪くなる。
【０００８】
拡張コピーコマンドは、複数のセグメントを有し得る。各々のセグメントは、ソースと送り先との間のデータ転送動作を指定する。拡張コピーコマンドの現在のインプリメンテーションは、従って、最初に連続的に、ソースデバイスから要求されたデータの全てを読み出し、次いで、各セグメントに対する送り先のデバイスへのデータの全てを書き込む必要がある。論理的にこの配置は、インプリメントするには非常にシンプルであるが、関係するデータ転送のシリアルの性質により、性能は遅い。セグメントの範囲か拡張コマンドのセグメント間かのいずれかにおいて、送り先デバイスとソースデバイスとの間の読み出し、および、書き込み動作の重複は存在しない。
【０００９】
ＳＣＳＩ拡張コピーコマンドの現在のインプリメンテーションは、従って、単一のセグメントの範囲か、拡張コピーコマンドのセグメント間かのいずれかにおいて、データ読み出しとデータ書き込みとの間の重複を提供し得ない。拡張コピーコマンドを実行する一環として、ソースと送り先との間のデータのストリーミングは、従って、拡張コピーコマンドの現在のインプリメンテーションの下で不可能である。
【００１０】
さらに、データが拡張コピーコマンドの現在のインプリメンテーションを用いて一致してストリーミングされ得ないので、バックアップテープデバイス等のストリーミングデバイスが連続的に開始および停止する必要があり得る。書き込みが送り先デバイスにおいて実行され得る前に、要求されたデータが第１に読み出される必要があるからである。同時に読み出すおよび書き込むことは不可能である。結果として、連続的なアクセスデバイスは、読み出しが実行される間の書き込み動作に続くことを停止され、書き込みが実行されるときに再び開始される必要があってもよい。これらの開始および停止は、機械的な動作であり、これらの機械的な動作は、性能が低減する結果となり得る。これらの性能の低減は、データがバックアップデバイスにストリーミングされ得る場合に、低減または排除され得る。
【発明の開示】
【課題を解決するための手段】
【００１１】
（発明の要旨）
従って、ソースデバイスからデータを読み出し得、同時に、送り先デバイスにデータを書き出し得る、従って、読み込みおよび書き出しコマンドを重複させることを考慮している拡張コピーコマンドの範囲でデータフローを重複させる方法およびシステムの必要性が存在する。
【００１２】
さらに、拡張コピーコマンドの範囲でセグメントを介してソースデバイスから読み出し、同時に、送り先デバイスに書き込むことを提供し得る拡張コピーコマンドの範囲でデータフローを重複させる方法およびシステムの必要性が存在する。このように、拡張コピーコマンドの潜在的に複数のセグメント間で、データフローオーバラップが起こり得る。
【００１３】
さらに、ファイバチャネル−トゥ−ＳＣＳＩネットワーク等のネットワークにおいて、ファイバチャネル−トゥ−ＳＣＳＩルータ等のルータ内のソフトウェア命令としてインプリメントされ得る拡張コピーコマンドの範囲でデータフローを重複させる方法およびシステムの必要性が存在する。
【００１４】
さらに、テープドライブ等のネットワークデバイスにデータをストリーミングして、
デバイスの開始および停止を低減または排除する（デバイスの開始および停止には、拡張コピーコマンドの現在のインプリメンテーションに典型的な、結果としての性能のペナルティが伴う）ことを提供し得る拡張コピーコマンドの範囲でデータフローを重複させる方法およびシステムの必要性が存在する。
【００１５】
本発明は、ＳＣＳＩ拡張コピーコマンドに関連する不利益および問題等、Ｔ１０＼９９−１４３ｒ１規格で現在インプリメントされたＳＣＳＩ拡張コピーコマンドに関連する不利益および問題等、ＳＣＳＩ拡張コピーコマンドの使用に関連する不利益および問題を実質的に排除または低減するＳＣＳＩ拡張コピーコマンドの範囲においてデータフローを重複させる方法およびシステムを提供する。
【００１６】
詳細には、本発明は、ネットワークを介する拡張コピーコマンドの範囲のデータフローを重複させる方法を提供する。この方法の一実施形態は、ネットワーク中のルータにおいて、第１のホストから第１のターゲットデバイスへの拡張コピーコマンドを受け取るステップと、ネットワーク状態が未知の場合、初期ネットワーク状態を決定するステップと、読み出し−書き込みパラメータのセットを初期化するステップと、拡張コピーコマンドの１つ以上の読み出しコマンドと１つ以上の書き込みコマンドとを重複させることによって、拡張コピーコマンドの第１のセグメント用の、および、１つ以上のその後のセグメント用の拡張コピーコマンドを実行するステップとを包含する。拡張コピーコマンドを実行するステップは、拡張コピーコマンドの第１のセグメント用の初期コマンドのセットを発するステップと、その後のコマンドの各々が受け取られるとき、拡張コピーコマンドの各その後のセグメント用の初期コマンドのセットを発するステップと、拡張コピーコマンドの各セグメント用の読み出し完了動作を実行するステップと、拡張コピーコマンドの各セグメント用の書き込み完了動作を実行するステップとをさらに包含してもよい。１つのセグメント用の拡張コピーコマンドの実行は、その後のセグメントの実行が開始される前に完了する必要がない。同様に、各セグメントに対する拡張コピーコマンドの実行は、連続して拡張される必要がない（すなわち、その後のセグメントの読み出し／書き込みシーケンスは、以前のセグメントの読み出し／書き込みシーケンスが完了する前に完了され得る）。初期コマンドのセットを発するステップは、初期コマンドアルゴリズムを実行するステップを包含し得る。読み出しの完了動作および書き込みの完了動作を実行するステップは、それぞれ、読み出し完了アルゴリズムを実行するステップ、および、書き込み完了アルゴリズムを実行するステップを包含し得る。
【００１７】
本発明の拡張コピーコマンドの範囲のデータフローを重複させる方法およびシステムは、技術的な利点を提供する。すなわち、本発明の方法およびシステムは、ソースデバイスからデータを読み込み、同時に、送り先デバイスにデータを書き出すことを提供し得る。従って、同時の顕著な読み出し、および、書き込みコマンドを考慮している。
【００１８】
本発明の方法およびシステムの別な技術的な利点は、本発明の方法およびシステムが、拡張コピーコマンドの範囲のセグメントを介してソースデバイスからの読み出し、同時に、送り先デバイスへの書き込みを提供し得ることである。
【００１９】
本発明の方法およびシステムのさらに別の技術的利点は、それらがネットワークのルータ内のソフトウェア命令としてインプリメントされ得ることである。
【００２０】
本発明の拡張コピーコマンド内のデータフローを重複させる方法およびシステムのさらに別の技術的利点は、それらがテープデバイス等のネットワークデバイスへデータをストリーミングことを提供し得、デバイスの開始および停止を低減または排除し得ることである（デバイスの開始および停止には、拡張コピーコマンドの現在のインプリメンテーションに典型的な、結果としての性能のペナルティが伴う）。
【００２１】
本発明のより完全な理解、および、本発明の利点は、添付の図面と共に以下の説明を参照することによって得られ得る。ここで、同様の参照符号は、同様の特徴を示す。
【発明を実施するための最良の形態】
【００２２】
本発明の好ましい実施形態は、図で示され、同様な参照符号は、様々な図における同様なおよび対応するパートを参照して用いられる。
【００２３】
本発明は、拡張コピーコマンドの範囲のデータフローを重複させる方法およびシステムを提供する。この実施形態は、ソースから読み出されたデータをストリーミングするように用いられ得、一方で、送り先デバイスへの書き込み動作におけるデータを同時にストリーミングする。このように、ソースデバイスへの読み出しコマンド、および、送り先デバイスへの書き込みコマンドが同時に発行し得、これにより、現在存在する拡張コピーコマンドのシリアル読み出し−書き込みインプリメンテーションの制限を低減または排除する。
【００２４】
本発明の方法およびシステムの実施形態は、拡張コピーコマンドの個々のセグメントの範囲のデータフローを重複させる、および、拡張コピーコマンドの範囲のセグメントに渡ってデータフローを重複させるように用いられ得る。このように、個々のセグメント内の読み出し／書き込み動作は、その後のセグメントの読み出し／書き込み動作が開始し得る前に、完了する必要がない。
【００２５】
本発明の方法およびシステムは、ルータ（例えば、Ｃｒｏｓｓｒｏａｄｓ  Ｓｙｓｔｅｍｓ，  Ｉｎｃ．  ｏｆ  Ａｕｓｔｉｎ，Ｔｅｘａｓによって製造されたルータ等のファイバ  チャネル−トゥ−ＳＣＳＩルータ）のメモリ内に格納され得るコンピュータ実行可能ソフトウェア命令としてインプリメントされ得、これらを含む。本発明のコンピュータ実行可能ソフトウェア命令は、格納ルータ内にインプリメントされた、拡張コピーコマンド用にコピーマネージャとして動作し得るコピーマネージャソフトウェアをさらに含み得る。
【００２６】
本発明の教示によると、ファイバ  チャネル−トゥ−ＳＣＳＩルータ等のルータは、ホストから拡張コピーコマンドを受け取り得、拡張コピーコマンド規格によるバックアップ動作を実行する。拡張コピーコマンドは、ＳＣＳＩホスト、または、ファイバチャネルホストから受け取られ得る。それらのホストのうちのいずれかは、ファイバチャネル−トゥ−ＳＣＳＩネットワーク等のネットワーク内にあり得る。このように、拡張コピーコマンドを発するホストのリソースは、コンピュータネットワーク内の他のタスクを自由に実行する。ＳＣＳＩ拡張コピーコマンド規格は、Ｔ１０＼９９−１４３ｒ１規格にある。
【００２７】
拡張コピーコマンドは、部分的にパラメータリストを含む。このリストは、ターゲット記述子リストを定義する。ターゲット記述子リストは、コマンドが用いているターゲット、および、ターゲット間で実行されるべきデータ運動を識別する。ターゲット識別子リストは、また、拡張コピーコマンドの個々のセグメントを識別する。この拡張コピーコマンドの個々のセグメントは、各読み出し／書き込み動作に対する固有の情報を含み得る。各ターゲット記述子は、デバイスタイプ、デバイスアドレス、デバイスが処理する情報のタイプ等のデバイスを識別する情報を含み得る。
【００２８】
拡張コピーコマンドは、複数のセグメントを含み得る。各セグメントは、ソースから送り先へのいくつかの特定のデータ移動を初期化する欠かせないコマンドである。ホストからの拡張コピーコマンドを受け取るデバイスは、コピーマネージャと呼ばれ、本発明の教示に従って、ファイバチャネル−トゥ−ＳＣＳＩルータ等のルータを含み得る。コピーマネージャは、拡張コピーコマンド動作を引継ぎ、ソースデバイスと送り先デバイスとの間のデータの実際の移動（読み出しおよび書き込み）を管理する。
【００２９】
本発明の方法およびシステムは、ルータ等のコピーマネージャデバイスのメモリ内に格納され得るコンピュータ実行可能ソフトウェア命令としてインプリメントされ得る。メモリは、ＲＡＭまたはＲＯＭ、あるいは、当業者に公知のハードドライブ等の他の格納メディアを含み得る。格納ルータは、格納エリアネットワーク内のコンポーネントであり得る。この格納エリアネットワークは、それ自体ファイバチャネル−トゥ−ＳＣＳＩネットワークであり得る。
【００３０】
図１は、拡張コピーコマンド内のデータフローを重複させる本発明の方法の一実施形態を説明する単純なフローチャートである。ソースデバイスから送り先デバイスへのデータの移動を引き起こす拡張コピーコマンドセグメントを処理するために、コピーマネージャデバイスは、ソースデバイスへの読み出しコマンド、および、送り先デバイスへの書き込みコマンドを発する必要がある。ソースデバイスおよび送り先デバイスは、ストリーミングテープドライブ等の、ＳＣＳＩデバイス、または、ファイバチャネルデバイス（またはこれら２つの組み合わせ）、（ＣＤ−ＲＯＭ等）の時系列アクセスデバイス、ハードドライブ、または、当業者に公知の任意の他の格納デバイスであり得る。
【００３１】
現在用いられている単純な処理アルゴリズムは、任意の時間に発行するシングルコマンド（読み出しまたは書き込み）のみで、ソースデバイスからの読み出し動作を第１に実行することによって、次に、送り先デバイスへの書き込み動作を実行することによってこの動作を実行する。しかし、読み出しおよび書き込みが重複可能であることによって、データ移動が本発明によって可能となるので、データの移動は、拡張コピーコマンドを実行する間により効率的に達成され得る。
【００３２】
次に図１に戻って、ステップ５において、ホストは、拡張コピーコマンドをコピーマネージャデバイスに発する。ホストは、ファイバチャネルホストまたはＳＣＳＩホストであり得、コピーマネージャは、ファイバチャネル−トゥ−ＳＣＳＩルータであり得る。ステップ１０において、コピーマネージャデバイス内において、本発明の方法およびシステムは、初期システム（ネットワークおよびルータ）状態情報を決定する。ステップ１０は、その後の全ての拡張コピーコマンドに対してではなく、初期システム（ネットワークおよびルータ）状態が未知であるときにのみ実施される必要がある。拡張コピーコマンドのセグメントを最初に実行するとき、以下の情報（パラメータ）が既知である。
【００３３】
・ｂｙｔｅｓ＿ｗａｉｔｉｎｇ：データ量は、最後のセグメントを処理した後に残され得る。Ｂｙｔｅｓ＿ｗａｉｔｉｎｇは、セグメントを処理する間に更新される。
【００３４】
・ｅｘｐｅｃｔｅｄ＿ｂｙｔｅｓ＿ｒｅａｄ：セグメントによって読み出されるバイト数。
【００３５】
・ｅｘｐｅｃｔｅｄ＿ｂｙｔｅｓ＿ｗｒｉｔｔｅｎ：セグメントによって書き込まれるバイト数。
【００３６】
・ｌｏｗ＿ｗａｔｅｒ＿ｍａｒｋ：コピーマネージャデバイスが保持バッファに保とうと試みるデータの最小量。
【００３７】
・ｒｅａｄ＿ｔｒａｎｓｆｅｒ＿ｓｉｚｅ：シングル書き込みコマンドに移動されたバイトの最大数。
【００３８】
・ｗｒｉｔｅ＿ｔｒａｎｓｆｅｒ＿ｓｉｚｅ：シングル書き込みコマンドに移動されたバイトの最大数。
【００３９】
ステップ２０において、本発明の方法およびシステムは、カウント（パラメータ）のセットを初期化し、次いで、セグメントを処理する間に更新され得る。ｂｙｔｅｓ＿ｒｅａｄカウント、および、ｂｙｔｅｓ＿ｗｒｉｔｔｅｎカウントは、初期においてゼロに設定される。Ｂｙｔｅｓ＿ｒｅａｄは、実際に読み出されたデータの量であり、ｂｙｔｅｓ＿ｗｒｉｔｔｅｎは、実際に書き込まれたデータの量である。さらに、ｒｅａｄ＿ｓｔａｔｅパラメータおよびｗｒｉｔｅ＿ｓｔａｔｅパラメータは、初期においてアイドルに設定される。さらに、ｒｅａｄ＿ｓｉｚｅおよびｗｒｉｔｅ＿ｓｉｚｅ変数の値は、実行されるセグメントタイプに依存し得る。例えば、テープデバイスに対しては、移送サイズは、固定した大きさであり、一方、ディスクに対しては、大きな要求は、様々な移送に分離され得、最後の移送は、残りよりもより小さく移送する。
【００４０】
本発明の説明の目的として、移送サイズを設定するアルゴリズムは、本明細書中で開示された重複するデータフローを理解するために必要とされない。ｒｅａｄ＿ｓｉｚｅ変数は、読み出し移送のバイトの大きさである。ｗｒｉｔｅ＿ｓｉｚｅ変数は、書き込み移送のバイトにおける大きさである。
【００４１】
ステップ３０において、本発明の方法およびシステムの実施形態は、セグメントに対する初期のコマンドのセットを発し得る。セグメント用の初期のコマンドを発するアルゴリズムは、以下でより詳細に提供される。
【００４２】
ステップ４０において、本発明の方法は、読み出し完了動作を実行し、次いで、ステップ５０において、書き込み完了動作は、本発明の方法およびシステムによって実行される。ステップ６０において、本発明の方法が終了し、ステップ７０において、コマンド完了コマンドは、拡張コピーコマンドを発するホストに戻され得る。ステップ６０およびステップ７０は、シングルステップに組み合わせられ得る。読み出しおよび書き込み完了動作のためのアルゴリズムは、以下でより詳細に提供される。
【００４３】
図１のステップ３０のセグメント動作用の発している初期のコマンドは、仮のコードで以下にリスト化された次のアルゴリズムに従って実行される。
【００４４】
ＩＦ（ｂｙｔｅｓ−ｒｅａｄがｅｘｐｅｃｔｅｄ−ｂｙｔｅｓ−ｒｅａｄに等しいかそれよりも大きい）ＴＨＥＮ  ＳＥＴ  ｒｅａｄ−ｓｔａｔｅ  ｔｏ  ＤＯＮＥ
ＥＮＤＩＦ
ＩＦ（ｂｙｔｅｓ−ｗｒｉｔｔｅｎがｅｘｐｅｃｔｅｄ−ｂｙｔｅｓ−ｗｒｉｔｔｅｎに等しいかそれよりも大きい）ＴＨＥＮ  ＳＥＴ  ｗｒｉｔｅ−ｓｔａｔｅ  ｔｏ  ＤＯＮＥ
ＩＦ  ｒｅａｄ−ｓｔａｔｅがＤＯＮＥ  ＴＨＥＮ
ＥＸＩＴ−ｓｅｇｍｅｎｔはｄｏｎｅ
ＥＮＤＩＦ
ＥＮＤＩＦ
ＩＦ（ｂｙｔｅｓ−ｗａｉｔｉｎｇがｗｒｉｔｅ−ｓｉｚｅよりも大きい）ＡＮＤ（ｗｒｉｔｅ−ｓｔａｔｅがＩＤＬＥ）ＴＨＥＮ
ＳＥＴ  ｗｒｉｔｅ−ｓｔａｔｅ  ｔｏ  ＢＵＳＹ
ＳＥＴ  ｂｙｔｅｓ−ｗａｉｔｉｎｇ  ｔｏ  （ｂｙｔｅｓ−ｗｒｉｔｅ      −ｓｉｚｅ）
ｗｒｉｔｅ−ｓｉｚｅ  ｂｙｔｅｓのための行き先デバイスに書き込みコマンドを発する
ＥＮＤＩＦ
ＩＦ（ｂｙｔｅｓ−ｗａｉｔｉｎｇがｌｏｗ＿ｗａｔｅｒ＿ｍａｒｋに等しいかそれよりも小さい）ＡＮＤ（ｒｅａｄ−ｓｔａｔｅがＩＤＬＥ）ＴＨＥＮ
ＳＥＴ  ｒｅａｄ−ｓｔａｔｅ  ｔｏ  ＢＵＳＹ
ＳＥＴ  ｒｅａｄ−ｓｉｚｅ
読み出しコマンドをソースに発する
ｒｅａｄ−ｓｉｚｅ  ｂｙｔｅｓ用のデバイス
ＥＮＤＩＦ
［０００１］さらに、図１のステップ４０における読み出し完了動作は、以下のアルゴリズムに従って実行され得る。
【００４５】
ＳＥＴ  ｂｙｔｅｓ−ｒｅａｄ  ｔｏ  （ｂｙｔｅｓ−ｒｅａｄ＋ｒｅａｄ−ｓｉｚｅ）
ＳＥＴ  ｂｙｔｅｓ−ｗａｉｔｉｎｇ  ｔｏ  （ｂｙｔｅｓ−ｗａｉｔｉｎｇ＋ｒｅａｄ−ｓｉｚｅ）
ＩＦ（ｂｙｔｅｓ−ｒｅａｄがｅｘｐｅｃｔｅｄ−ｂｙｔｅｓ−  ｒｅａｄに等しい）ＴＨＥＮ
ＳＥＴ  ｒｅａｄ−ｓｔａｔｅ  ｔｏ  ＤＯＮＥ
ＩＦ（ｗｒｉｔｅ−ｓｔａｔｅがＤＯＮＥ）ＴＨＥＮ
ＥＸＩＴ−ｓｅｇｍｅｎｔがｄｏｎｅ
ＥＮＤＩＦ
ＥＬＳＥ
ＳＥＴ  ｒｅａｄ−ｓｔａｔｅ  ｔｏ  ＩＤＬＥ
ＥＮＤＩＦ
ＩＦ（ｂｙｔｅｓ−ｗａｉｔｉｎｇがｗｒｉｔｅ−ｓｉｚｅより大きい）ＡＮＤ（ｗｒｉｔｅ−ｓｔａｔｅがＩＤＬＥ）ＴＨＥＮ
ＳＥＴ  ｗｒｉｔｅ−ｓｔａｔｅ  ｔｏ  ＢＵＳＹ
ＳＥＴ  ｗｒｉｔｅ−ｓｉｚｅ
ＳＥＴ  ｂｙｔｅｓ−ｗａｉｔｉｎｇ  ｔｏ  （ｂｙｔｅｓ−ｗａｉｔｉｎｇ−ｗｒｉｔｅ−ｓｉｚｅ）
ｗｒｉｔｅ−ｓｉｚｅ  ｂｙｔｅｓ用の行き先デバイスに書き込みコマンドを発する
ＥＮＤＩＦ
ＩＦ（ｂｙｔｅｓ−ｗａｉｔｉｎｇがｌｏｗ＿ｗａｔｅｒ＿ｍａｒｋよりも小さい）ＡＮＤ（ｒｅａｄ−ｓｔａｔｅがＩＤＬＥ）ＴＨＥＮ
ＳＥＴ  ｒｅａｄ−ｓｔａｔｅ  ｔｏ  ＢＵＳＹ
ＳＥＴ  ｒｅａｄ−ｓｉｚｅ
ｒｅａｄ−ｓｉｚｅ  ｂｙｔｅｓ用のソースデバイスに読み出しコマンドを発する
ＥＮＤＩＦ
［０００２］図１のステップ５０において実行された書き込み完了演算は、以下のアルゴリズムに従って達成され得る。
【００４６】
ＳＥＴ  ｂｙｔｅｓ−ｗｒｉｔｔｅｎ  ｔｏ（ｂｙｔｅｓ−ｗｒｉｔｔｅｎ＋ｗｒｉｔｅ−ｓｉｚｅ）
ＩＦ（ｂｙｔｅｓ−ｗｒｉｔｔｅｎがｅｘｐｅｃｔｅｄ−ｂｙｔｅｓ−ｗｒｉｔｔｅｎに等しい）ＴＨＥＮ
ＳＥＴ  ｗｒｉｔｅ−ｓｔａｔｅ  ｔｏ  ＤＯＮＥ
ＩＦ（ｒｅａｄ−ｓｔａｔｅがＤＯＮＥ）ＴＨＥＮ
ＥＸＩＴ−ｓｅｇｍｅｎｔがｄｏｎｅ
ＥＮＤＩＦ
ＥＬＳＥ
ＳＥＴ  ｗｒｉｔｅ−ｓｔａｔｅ  ｔｏ  ＩＤＬＥ
ＥＮＤＩＦ
ＩＦ（ｂｙｔｅｓ−ｗａｉｔｉｎｇがｗｒｉｔｅ−ｔｒａｎｓｆｅｒ−ｓｉｚｅより大きい）ＡＮＤ（ｗｒｉｔｅ  ｓｔａｔｅがＩＤＬＥ）ＴＨＥＮ
ＳＥＴ  ｗｒｉｔｅ−ｓｔａｔｅ  ｔｏ  ＢＵＳＹ
ＳＥＴ  ｗｒｉｔｅ−ｓｉｚｅ
ＳＥＴ  ｂｙｔｅｓ−ｗａｉｔｉｎｇ  ｔｏ（ｂｙｔｅｓ−ｗａｉｔｉｎｇ−ｗｒｉｔｅ−ｓｉｚｅ）
ｗｒｉｔｅ−ｓｉｚｅ  ｂｙｔｅｓ用の行き先デバイスに書き込みコマンドを発する
ＥＮＤＩＦ
ＩＦ（ｂｙｔｅｓ−ｗａｉｔｉｎｇがｌｏｗ＿ｗａｔｅｒ＿ｍａｒｋよりも小さい）ＡＮＤ（ｒｅａｄ−ｓｔａｔｅがＩＤＬＥ）ＴＨＥＮ
ＳＥＴ  ｒｅａｄ−ｓｔａｔｅ  ｔｏ  ＢＵＳＹ
ＳＥＴ  ｒｅａｄ−ｓｉｚｅ
ｒｅａｄ−ｓｉｚｅ  ｂｙｔｅｓ用のソースデバイスに読み出しコマンドを発する
ＥＮＤＩＦ
拡張コピーコマンド規格は、読み出しコマンド、次に、その後の読み出しコマンドにおけるデータ用のソースデバイスであるデバイスへの書き込みコマンド（次いでさらに別のデバイスに書き込まれ得る書き込みコマンド）を有するという可能性を提供する。言い換えると、書き込みの前の読み出しは、正に書き込まれたデータの読み出しの前であり得る。これは、通常、拡張コピーコマンドの範囲のセグメントを通して起こり得る。本発明の方法およびシステムは、この可能性を考慮し得、読み出しおよび書き込みコマンドを適切に重複させ、ソースデバイスから送り先デバイスへの、ならびに、複数のソースおよび送り先デバイス間のデータのストリーミングを、拡張コピーコマンドセグメントを通してさえ、維持する。
【００４７】
拡張コピーコマンドセグメントを通してデータフローを重複させる場合、本発明の方法は、送り先デバイスからの同じデータの読み出しが初期化される前に、送り先デバイスへのデータの書き込みが起こることを確実にするステップを取る。言い換えると、本発明の方法は、データの書き込みが進む場合にソースデバイスからの同じデータを読み出す前に、読み出されるべきデータがソースデバイスに存在することを確実にする。従って、本発明の重要な技術的な利点は、複数のソースデバイスと複数の送り先デバイスの場合でさえ、拡張コピーコマンドセグメントを通してソースデバイスと送り先デバイスとの間のデータフローの速度増加である。
【００４８】
さらに、本発明によって可能となるデータフローのストリーミングの性質によって、データは、テープバックアップデバイス等のストリーミングターゲットデバイスへのストリーミングが続けられ、拡張（または任意の）バックアップコピーコマンドの現在のインプリメンテーションによって起こり得る機械的な開始および停止を低減または排除する。このように、固有に時間およびリソースを消費する機械的な動作である、テープドライブの停止および復位（ｒｅｐｏｓｉｔｉｏｎｉｎｇ）が低減または排除され得る。これは、効率、および、データ転送スピードが増加する結果となる。本発明の方法およびシステムは、ファイバチャネルサイドかファイバチャネル−トゥ−ＳＣＳＩネットワークのＳＣＳＩサイドかのいずれか上のホストデバイスからの拡張コピーコマンドを受け入れ得る、および、処理し得る。
【００４９】
図２は、ファイバチャネル−トゥ−ＳＣＳＩネットワークの概念図である。この図において、本発明の方法およびシステムの一実施形態がインプリメントされ得る。図２において、ファイバチャネルネットワーク１０の概念図が現れる。このファイバチャネルネットワーク１０は、ネットワークリンク５０を介して＃１ファイバチャネル−トゥ−ＳＣＳＩルータ１６によって＃１ファイバチャネルホスト１４を接続するネットワークリンク１２を含み得る。＃１ターゲットデバイス１８および＃２ターゲットデバイス２８は、ＳＣＳＩネットワークリンク２０を介して＃１ファイバチャネル−トゥ−ＳＣＳＩルータ１６に接続する。図２は、また、第２のＳＣＳＩネットワークリンク２０を介して＃１ファイバチャネル−トゥ−ＳＣＳＩルータ１６に接続される＃１ＳＣＳＩホスト７０を含む。ネットワークリンク５０は、任意のファイバチャネルネットワーク接続であり得、ＳＣＳＩネットワークリンク２０は、任意のＳＣＳＩネットワーク接続であり得る。
【００５０】
図２は、シンプルな１つのファイバチャネルホスト、１つのＳＣＳＩホスト、１つのターゲットおよび１つのルータファイバチャネル−トゥ−ＳＣＳＩネットワークを示す。しかし、本発明の方法およびシステムは、複数のファイバチャネルホスト、複数のＳＣＳＩホスト、複数のファイバチャネル−トゥ−ＳＣＳＩルータおよび複数のネットワークターゲットデバイスを有するファイバチャネル−トゥ−ＳＣＳＩネットワークにおいてインプリメントされ得る。ターゲットデバイスは、テープドライブ、ＣＤ−ＲＯＭ、ハードドライブ、または、当業者に公知の他の格納デバイス等のソースデバイスか送り先デバイスかのいずれかであり得る。
【００５１】
動作中において、＃１ファイバチャネルホスト１４か＃１ＳＣＳＩホスト７０かのいずれかは、拡張コピーコマンドを＃１ファイバチャネル−トゥ−ＳＣＳＩルータ１６に発し得る。＃１ファイバチャネル−トゥ−ＳＣＳＩルータ１６は、次いで、コマンドを実行し得る。例えば、＃１ターゲットデバイス１８および＃２ターゲットデバイス２８に関係するバックアップコマンドを実行し得る。
【００５２】
図３は、修正されたファイバチャネルネットワーク１０を示し、複数のファイバチャネル−トゥ−ＳＣＳＩルータを用いて、複数のファイバチャネルおよび／またはＳＣＳＩホストから複数のターゲットデバイスへの拡張コピーコマンドを処理する本発明の能力を示す。ここで、ファイバチャネルネットワーク１０は、ネットワークリンク５０を介してファイバチャネルネットワークリンク１２に通信可能に接続された＃２ファイバチャネルホスト２２および＃２ファイバチャネル−トゥ−ＳＣＳＩルータ３０を含む。
【００５３】
ファイバチャネルネットワーク１０は、また、ネットワークリンク２０を介して＃２ＳＣＳＩルータ３０に通信可能に接続された＃２ＳＣＳＩホスト８０を含む。さらに、＃２ＳＣＳＩルータ３０は、ネットワークリンク２０を介して＃３ターゲットデバイス３２およおび＃４ターゲットデバイス３４に通信可能に接続される。
【００５４】
図３は、閉じたファイバチャネルネットワーク１０を示すが、さらなるＳＣＳＩルータ、ファイバチャネルホスト、ＳＣＳＩホストおよびターゲットデバイスをファイバチャネルネットワーク１０に加えることが可能である。このような修正は、本発明の範囲内において考慮される。本発明の方法およびシステムは、複数のホスト、複数のルータおよび複数のターゲットデバイスを有するネットワークにおいて十分によく機能し得る。ルータ、ターゲットデバイスおよびホストの数は、ルータ、ならびに、ＳＣＳＩおよびファイバチャネルネットワークプロトコル能力によって制限される。
【００５５】
本発明の方法およびシステムは、Ｊｏｈｎ  Ｔｙｎｄａｌｌにより、２００２年２月２８日に出願され、「Ｍｅｔｈｏｄ  Ａｎｄ  Ｓｙｓｔｅｍ  Ｆｏｒ  Ｒｅｃｏｎｃｉｌｉｎｇ  Ｅｘｔｅｎｄｅｄ  Ｃｏｐｙ  Ｃｏｍｍａｎｄ  Ｔａｒｇｅｔ  Ｄｅｓｃｒｉｐｔｏｒ  Ｌｅｎｇｔｈ」と称された、関連する米国特許出願（特許出願番号未）で開示された発明と共に用いられ得る。同出願は、本明細書中で参照として援用される。
【００５６】
本発明は、異なるホストの各々が異なる規格拡張コピーコマンドを用い得るネットワークに関係する出願において、この説明で開示された機能を提供し得る。例えば、１つのホストがＬｅｇａｔｏインプリメンテーションを用い得、同じネットワーク内の別のホストが１４３ｒ１規格拡張コピーコマンドを用い得る。
【００５７】
上記の参照された出願で開示された発明と本発明の組み合わせは、本発明の範囲内であるとして考慮される。
【００５８】
本発明が例示的な実施形態を参照して明細書中において詳細に説明されているが、この説明が例としてのみであり、制限する意味で構成されるべきではないことは、理解されている。従って、さらに、本発明の実施形態、および、本発明のさらなる実施形態の詳細における様々な変化が、この説明に対して参照される分野の当業者に明らかであり、なされ得ることがさらに理解されるべきである。全てのこのような変化およびさらなる実施形態が特許請求の範囲として本発明の意図および本当の範囲内であることが考慮される。
【図面の簡単な説明】
【００５９】
【図１】図１は、拡張コピーコマンドの範囲内におけるデータフローを重複させるための本発明の方法の一実施形態のフローチャートである。
【図２】図２は、本発明の方法およびシステムの一実施形態をインプリメントするファイバチャネル−トゥ−ＳＣＳＩネットワーク１０の概念図である。
【図３】図３は、本発明の方法およびシステムの一実施形態をインプリメントするファイバチャネル−トゥ−ＳＣＳＩネットワークの概念図である。このネットワークは、複数のホスト、複数のルータおよび複数のターゲットデバイスを有する。
【図１】
2004523837.tif 000003
【図２】
2004523837.tif 000004
【図３】
2004523837.tif 000005
【国際公開パンフレット】
2004523837.tif 000006
2004523837.tif 000007
2004523837.tif 000008
2004523837.tif 000009
2004523837.tif 000010
2004523837.tif 000011
2004523837.tif 000012
2004523837.tif 000013
2004523837.tif 000014
2004523837.tif 000015
2004523837.tif 000016
2004523837.tif 000017
2004523837.tif 000018
2004523837.tif 000019
2004523837.tif 000020
2004523837.tif 000021
2004523837.tif 000022
【国際公開パンフレット（コレクトバージョン）】
2004523837.tif 000023
2004523837.tif 000024
【国際調査報告】
2004523837.tif 000025