(57)【要約】【課題】  同期ミラーリングまたは非同期ミラーリングを使用したリモートミラーリングにおけるコマンドの完全な順次実行に起因する性能劣化を回避する。【解決手段】  本発明にかかるストレージシステムにおいて、通信システムにおいてコマンドを順序付けることは、コマンド要求ストリームを受信すること、要求されたコマンドを実行すること、要求されたコマンドをターゲットへ中継すること、および中継するコマンドに、ターゲットによって実行されるコマンドの並列性を増加させるタスク属性を組み込むことを含む。【選択図】図１
2005243020.tif 000002
【特許請求の範囲】
【請求項１】
イニシエータ（１０４）、１次ターゲット（１０２）および２次ターゲット（１０８）を含むストレージシステム（１００）で使用され、非同期リモートミラーリング機能用に構成されるデバイス（１０２）であって、
前記イニシエータと通信し、前記イニシエータによって要求されたオペレーションを実行するターゲットコントローラ（１１０）と、
前記イニシエータからのコマンド要求ストリームを受信し（４０２）、前記要求されたコマンドを実行し（４０４）、受信したコマンドと中継するコマンドとの間で優先度グラフ（precedence graph）の等価性を保証し、前記要求されたコマンドを２次ターゲットへ非同期に中継する（４１６）前記ターゲットコントローラ上のプロセス（４００）であって、前記２次ターゲットによって実行されるコマンドの並列性を増加するタスク属性を前記中継するコマンドに組み込むプロセスと
を備えるデバイス。
【請求項２】
実行シーケンス順序を記述するタスク属性を指定する前記イニシエータ（１０４）からのコマンドストリームを受信し（４０２）、前記コマンドおよび前記タスク属性を前記２次ターゲットに再搬送して（４１２）、前記実行順序が前記１次ターゲットと前記２次ターゲットとで同じになるようにする前記ターゲットコントローラ（１１０）上のプロセス（４００）、
をさらに備える請求項１に記載のデバイス。
【請求項３】
実行シーケンス順序を記述するタスク属性の明細を省略する前記イニシエータ（１０４）からのコマンドストリームを受信し（４０２）、暗に含まれたタスク属性を、タスクの順序性に基づいて前記コマンドストリームから決定し（４１４）、前記２次ターゲット（１０８）へ前記コマンドおよび前記暗に含まれたタスク属性を搬送し（４１６）、前記２次ターゲット（１０８）によるコマンド実行の並列性を改善する前記ターゲットコントローラ（１１０）上のプロセス（４００）
をさらに備える請求項１に記載のデバイス。
【請求項４】
前記暗に含まれたタスク属性を前記コマンドストリームから決定する前記ターゲットコントローラ（１１０）上のプロセス（４００）であって、
発行されたタスクの並列性を追跡することによって、１次イニシエータ（１０４）の所期の優先度グラフを推論するプロセス（４１４）と、
前記推論した優先度グラフを前記２次ターゲットへ搬送するプロセス（４１６）と
をさらに備えるプロセス
をさらに備える請求項３に記載のデバイス。
【請求項５】
暗に含まれたタスク属性を前記コマンドストリームから決定する前記ターゲットコントローラ（１１０）上のプロセス（５００）であって、
２つ未満の未処理の書き込みタスクから複数の未処理の書き込みタスクへの遷移に対して、前記複数の未処理の書き込みタスクをシンプルタスクとしてマーク付けすることによって対応するプロセス（５２６）
をさらに備えるプロセス、
をさらに備える請求項１に記載のデバイス。
【請求項６】
暗に含まれたタスク属性を前記コマンドストリームから決定する前記ターゲットコントローラ（１１０）上のプロセス（５００）であって、
複数の未処理の書き込みタスクから未処理の書き込みタスクが存在しない状態への遷移に対して、後続の書き込みタスクをオーダードタスクとしてマーク付けすることによって対応するプロセス（５１８）
をさらに備えるプロセス
をさらに備える請求項１に記載のデバイス。
【請求項７】
暗に含まれたタスク属性を前記コマンドストリームから決定する前記ターゲットコントローラ（１１０）上のプロセス（５００）であって、
複数の未処理の書き込みタスクから未処理の書き込みタスクが存在しない状態への遷移に対して、後続の複数の未処理のタスクについてシンプルタスクへの降格を条件として、オーダードｎｏ＿ｏｐコマンドを挿入し、後続の１つの書き込みタスクをオーダードタスクとして暫定的にマーク付けすることによって応答するプロセス（５１６）
をさらに備えるプロセス
をさらに備える請求項１に記載のデバイス。
【請求項８】
暗に含まれたタスク属性を前記コマンドストリームから決定する、前記ターゲットコントローラ（１１０）上のプロセス（５００、６００）であって、
前記イニシエータ、ターゲット、および論理ユニット（ＬＵＮ）を関係付けるネクサスの書き込みタスクのアクティブな個数を追跡するプロセス（５１０）と、
アクティブな書き込みタスクがないことに応じて、オーダードとしてマーク付けされたｎｏ−ｏｐコマンドを、前記２次ターゲットへ伝達される優先度グラフに挿入するプロセス（６１２）と、
アクティブな書き込みタスクがないことに応じて、ｎｏ−ｏｐ挿入フラグを０に設定するプロセス（６１６）と、
アクティブな書き込みタスクがなく、ｎｏ−ｏｐ挿入フラグが１に設定されていることに応じて、新たな書き込みタスクを一時的にオーダードの昇格されたタスクとしてマーク付けするプロセス（５１６）と、
アクティブな書き込みタスクがなく、ｎｏ−ｏｐ挿入フラグが０に設定されていることに応じて、新たな書き込みタスクをオーダードタスクとしてマーク付けするプロセス（５１８）と、
昇格されたタスクが存在する１つのアクティブな書き込みタスクがあることに応じて、前記昇格されたタスクをシンプルタスクに降格させるプロセス（５２４）と、
少なくとも１つのアクティブな書き込みタスクがあることに応じて、新たな書き込みタスクをシンプルタスクにマーク付けするプロセス（５２８）と
をさらに備えるプロセス
をさらに備える請求項１に記載のデバイス。
【請求項９】
前記イニシエータが供給する前記属性がない場合に、前記２次ターゲットにおいて正しいオペレーションを保証するようにコマンド属性を決定する、前記ターゲットコントローラ（１１０）上のプロセス（５００、６００）
をさらに備える請求項１に記載のデバイス。
【請求項１０】
前記ターゲットコントローラ（１１０）は、小型コンピュータ用周辺機器インタフェース（ＳＣＳＩ）デバイスであり、前記タスク属性は、シンプル（Simple）タスク属性、オーダード（Ordered）タスク属性、ヘッドオブキュー（Head of Queue）タスク属性、およびオートコンティンジェントアリージャンス（ＡＣＡ（Auto Contingent Allegiance））タスク属性を含むＳＣＳＩタスク属性である
請求項１に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タスク属性を使用したコマンド管理に関する。
【背景技術】
【０００２】
データの複数のコピーを保持することは、データが利用不能となったり、損傷を受けたり、あるいは喪失したりする不測の事態に対処するデータ処理オペレーションにおける災害復旧機能の一部である。
データ処理システムの営業用ユーザ（institutional user）は、一般に、非常に重要な情報を多量に保持し、災害または大惨事に起因する利用不能からデータを保護することに大量の時間および資金を費やす。
冗長なデータコピーを保持する技法の１つの分野は、ミラーリングと呼ばれる。
このミラーリングでは、データ処理システムは、サイト上の貴重な情報のコピーをリムーバブルストレージ媒体、または、ローカルもしくはリモートに配置されたミラーリングされた２次ストレージサイトに保持する。
離れたサイトではあるが、大都市圏内の例えば最大で約２００キロメートルまでのリモートミラーリングは、火災、停電、または窃盗を含むローカルな災害からの保護に効果がある。
数百キロメートルの地理的距離を超えるリモートミラーリングは、地震、竜巻、ハリケーン、洪水等の大惨事からの保護に有益である。
多くのデータ処理システムは、複数の地理的距離に配置された複数レベルの冗長性を使用してデータを保護する。
【０００３】
データ処理システムは、同期ミラーリングまたは非同期ミラーリングを使用してリモートミラーリングを実現する。
同期リモートコピーは、応答時間が比較的重要でなく、１次ストレージと２次ストレージとの間の距離が短く、データが喪失する可能性がない場合に有利である。
同期ミラーリングは、一般に、迅速な復旧には最良の選択肢として選択される。
これに対して、非同期ミラーリングは、性能に対して起こり得る影響を最小にすることが１次サイトに課せられ、速度が重要であり、ミラーリングされたデータが長距離を移動する場合に使用される。
非同期ミラーリングは、最も近時のデータの喪失を受け入れることができる場合に、非常に大きな地理的スケールのオペレーションに対して使用されることが多い。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
リモートミラーリングシステムの優先度グラフの等価性は、２次ターゲットのデータが災害からの復旧に十分なデータ一貫性を常に有するように、１次サイトのイニシエータによって定義されたストレージへの書き込みコマンドが２次ターゲットで同じ順序でコミットされることを意味する。
これまで、優先度グラフの等価性を保証する簡単で直接的な技法は、１次ターゲットにおける各コマンドの正確な実行順序を記録し、その順序付けられたリストを２次ターゲットに搬送することであった。
２次ターゲットは、その後、それらコマンドを正確に同じ順序で実行して、実行順序の等価性を維持することができる。
したがって、実行順序の等価性は、所望の優先度グラフの等価性をより一層強く制約した部分ケースである。
システムが実行順序の等価性に制約されることに伴う問題は、多くのコマンドが別の方法で同時にかつ制約を受けない順序で実行できる状況では、２次ターゲットにおいてコマンドリストを完全に順次実行することにより、長い遅延が強いられるということである。
従来、ワイドエリアネットワーク（ＷＡＮ）の遅いリンクのリモートミラーリングが、リモートサイトにおける性能劣化を隠していた。
高速リンクの利用可能な状況が目前に迫っていることから、この歴史的なボトルネックは回避されることになり、コマンドの完全な順次実行に起因する性能劣化が浮き彫りになる。
【課題を解決するための手段】
【０００５】
開示したストレージシステムのいくつかの実施の形態によると、通信システムにおいてコマンドを順序付けることは、コマンド要求ストリームを受信すること、要求されたコマンドを実行すること、要求されたコマンドをターゲットへ中継すること、および中継するコマンドに、ターゲットによって実行されるコマンドの並列性を増加させるタスク属性を組み込むことを含む。
【０００６】
オペレーションの構造および方法の双方に関係した本発明の実施の形態は、以下の説明および添付図面を参照することによって最も良く理解することができる。
【発明を実施するための最良の形態】
【０００７】
ストレージシステムは、タスク属性を使用して、インテリジェントな非同期リモートミラーリングを管理する。
例示の技法は、非同期リモートミラーリングアプリケーションにおける一連のコマンドの順序関係を通信し、タスク属性の能力を利用して、リモートミラーリングの性能を改善する。
この技法によって、１次サイトは、コマンドストリームの優先度グラフをコマンドと共に２次サイトへ通信することが可能になり、その結果、２次サイトは、コマンドの実行をローカルにスケジューリングする際により大きな柔軟性を有する。
この柔軟性は、非同期リモートミラーリングを、別の可能なものよりも高速の応答時間で実施することにも貢献する。
特定の実施の形態で、この技法は、小型コンピュータ用周辺機器インタフェース（ＳＣＳＩ）、インターネットＳＣＳＩ（ｉＳＣＳＩ）、および／またはコマンドの順序付けを保証する他の任意のＳＣＳＩトランスポートに従い、ＳＣＳＩタスク属性を使用して実施することができる。
標準的なＳＣＳＩタスク属性には、以下で詳細に説明するシンプル属性、オーダード属性、ヘッドオブキュー属性、およびオートコンティンジェントアリージャンス属性が含まれる。
【０００８】
本明細書で一般的に定義される優先度グラフは、システムの１組のタスク内の関係したタスク間の可能な実行順序関係を記述するものである。
優先度グラフは、タスク実行スケジューラの柔軟性として、１群の可能な実行シーケンスから１つの実行シーケンスを選択することを可能にするように、タスクに課せられる順序付けの基準を指定する。
この可能な実行シーケンスのすべては、その特定の優先度グラフを満たすものである。
この柔軟性によって、タスクスケジューラは、実行シーケンスの正確さを保証すると同時に、タスクを実行するサブシステムにとって最も最適な実行シーケンスを選定することが可能になる。
【０００９】
タスク属性を使用して順序付けられたコマンドまたはタスクの実行を管理することによって、ミラーノードでコマンドを厳密に順次実行してデータ一貫性を維持する従来の非同期ミラーリング技法を上回る改良が行われる。
順次実行は、一貫性を維持するのには十分であるが、一貫性を維持するのに必要な制約よりも強い制約を課し、その結果、性能が悪化する。
【００１０】
タスク間の所期の実行関係を推論し、１次側のタスク属性を使用することによって、組み込まれた優先度グラフで２次サイトの書き込みコマンドストリームを生成することが可能になる。
この組み込まれた優先度グラフは、正確ではあるが、イニシエータに端を発する明示の優先度グラフと比較して柔軟性が改善されたものである。
この柔軟な優先度グラフによって、シンプルタスク（Simple task）をインテリジェントに再配列して、スループットの改善または最大化を引き出す自由度が２次サイトに与えられる。
【００１１】
図１を参照して、概略ブロック図が、デバイス１０２を含むストレージシステム１００の一実施の形態を示している。
デバイス１０２は、一般に複数のデバイスと通信するために接続またはネットワーク接続されるストレージシステム１００で使用することができる。
一般的なインストールでは、ストレージシステム１００は、イニシエータ１０４、１次ターゲット１０２、および２次ターゲット１０８を含むものとみなすことができる。
イニシエータ１０４は、デバイスとして定義され、例えば、一般にターゲットと呼ばれる別のデバイスが入出力（Ｉ／Ｏ）プロセスを実行するように要求する小型コンピュータ用周辺機器インタフェース（ＳＣＳＩ）デバイスとして定義される。
例示の実施の形態では、デバイス１０２、１次ターゲット、および２次ターゲット１０８が、この定義に準拠したターゲットデバイスである。
【００１２】
システム１００は、非同期リモートミラーリングを実行するように構成することができる。
ターゲットデバイス１０２は、ターゲットコントローラ１１０を備える。
このターゲットコントローラ１１０は、イニシエータ１０４と通信でき、イニシエータ１０４が要求するオペレーションを実行することができる。
ターゲットコントローラ１１０は、イニシエータ１０４からのコマンド要求ストリームを受信でき、要求されたコマンドを実行でき、かつ、要求されたコマンドを２次ターゲット１０８へ非同期に中継できる。
ターゲットコントローラ１１０は、中継するコマンドにタスク属性を組み込む。
このタスク属性は、２次ターゲット１０８が実行するコマンドの並列性を増加できるものである。
【００１３】
非同期リモートミラーリングアプリケーションでは、イニシエータ１０４が、書き込みコマンドを１次ターゲット１０２に送信する。
１次ターゲット１０２は、要求された書き込みオペレーションを実行し、ステータス情報でそれらコマンドを終了して、非ミラーリングアプリケーションと同じ方法でイニシエータ１０４に応答する。
一方、非ミラーリングアプリケーションの動作に加えて、１次ターゲット１０２は、同じ書き込みコマンドをその対応する書き込みデータと共に２次ターゲット１０８へ非同期に搬送する。
２次ターゲット１０８は、通常、１次ターゲットの場所から地理的に遠隔の場所に位置する。
２次ターゲット１０８は、１次ストレージと２次ストレージとの間の整合性を保証するために、２次ターゲット１０８での書き込みの実行シーケンスが、１次ターゲット１０２での書き込みと同じ優先度グラフを満たすように、それら書き込みオペレーションを事後実行する。
同じ優先度グラフを満たすことは、１次ターゲット１０２の優先度グラフによって確立された制約を満たす２次ターゲット１０８の順序で、同じ書き込みがコミットされることを意味し、その結果、２次ターゲット１０８のデータが、アプリケーションによって常に使用可能であり、したがって、「データ一貫性」を有するとみなされることを意味する。
災害復旧への適用を要望することによって、ミラーリングされたリンクがランダムな時点で断線した場合に、２次ストレージからの情報にアクセスできる１つまたは２つ以上の他のイニシエータは、２次ターゲット１０８のデータを正しく解釈することが可能になる。
このミラーリングの非同期の性質のためにいくつかのトランザクションが喪失するが、この喪失は許容可能であり、２次データのデータ一貫性は、決して不正確でも不明瞭でもあるはずがない。
【００１４】
これまで、優先度グラフの等価性を保証する簡単で直接的な技法は、１次ターゲット１０２における各コマンドの正確な実行順序を記録し、その順序付けられたリストを２次ターゲット１０８に搬送して、２次ターゲット１０８が、それらコマンドを正確に同じ順序で実行できるようにし、それによって、実行順序の等価性を維持することであった。
実行順序の等価性は、優先度グラフの等価性をより一層強く制約した部分ケースである。
システムが実行順序の等価性に制約されることに伴う問題は、２次ターゲット１０８においてコマンドリストを完全に順次実行すると、多くのコマンドを同時にかつ制約を受けない順序で実行できる１次ターゲット１０２において従った実行スキーマよりもはるかに長い時間がかかる可能性があるということである。
【００１５】
例示のストレージシステム１００は、リモートコマンドの実行が、完全に順次になるように制約されず、その代わり、１次ストレージターゲット１０２における実行の並列性に近づく並列性の要素を含むことができる技法を導入する。
いくつかの実施の形態で実施できる別の態様では、ストレージシステム１００は、イニシエータが属性を提供しない場合に、１次ストレージターゲット１０２が、コマンド属性を決定して、２次ターゲット１０８での正確なオペレーションを保証する方法を実施することができる。
【００１６】
半径が一般に約５０マイル以上の大都市圏で高速イーサネット（登録商標）が出現し、より高性能のワイドエリアミラーリングが手頃な価格になった状況では、ミラーリングを管理する開示した改良技法が非常に有益である。
従来、実際のミラーリング方式は、比較的低帯域幅のワイドエリアネットワーク接続によって性能が制限されていたことから、順次の制約が目立たなかった。
ネットワークの性能が高速になるに伴い、２次ターゲット１０８における順次実行の性能ボトルネックが、性能を大きく制限する可能性がある。
【００１７】
ターゲットコントローラ１１０は、イニシエータ１０４からコマンドストリームを受信することができる。
このコマンドストリームは、強制される実行スキーマを記述する、シンプル（Simple）属性以外のタスク属性の明細を含む。
ターゲットコントローラ１１０は、コマンドおよび組み込まれたタスク属性を含む情報を２次ターゲット１０８に再搬送し、デバイス１０２と２次ターゲット１０８とで実行スキーマが同じになるようにする。
これらのターゲットは、組み込まれたタスク属性を含んだコマンドを実行することができる。
【００１８】
いくつかの状況では、ターゲットコントローラ１１０は、イニシエータ１０４から別のコマンドストリームを受信する。
この別のコマンドストリームは、強制される優先度グラフを明示的に記述するタスク属性の明細が省略されたものか、または、すべてのコマンドが単にシンプルとしてマーク付けされたものである。
実際に、現在の使用では、タスク属性を使用してコマンドの順序付けを管理するイニシエータ１０４は、稀であるか、または、知られていない。
受信したタスク属性がない場合に、ターゲットコントローラ１１０は、暗に含まれたタスク属性をコマンドストリームから決定し、この暗に含まれた属性をコマンドストリームに組み込んで、コマンドおよび暗に含まれたタスク属性を２次ターゲット１０８に搬送する。
暗に含まれたタスク属性は、２次ターゲット１０８が実行するコマンドの並列性を改善できるものである。
【００１９】
特定の実施の形態では、ターゲットコントローラ１１０は、コマンドストリームの暗に含まれたタスク属性を決定する制御プロセスを実行することができるプロセッサ１１２を含む。
このプロセスは、さらに、イニシエータ、ターゲット、および論理ユニットを関係付けるネクサスの書き込みタスクのアクティブな個数も追跡する。
この状況でのネクサスは、初期接続の確立によって開始する関係であって、イニシエータおよびターゲットが連続して稼動中であり、かつ、互いに通信している限り、通常は健全な状態を維持している関係として定義される。
イニシエータ／ターゲット（Ｉ＿Ｔ）ネクサスは、イニシエータとターゲットとの間に存在するネクサスである。
イニシエータ／ターゲット／論理ユニット（Ｉ＿Ｔ＿Ｌ）ネクサスは、イニシエータとターゲットと論理ユニットとの間に存在するネクサスである。
【００２０】
例示の実施の形態では、小型コンピュータ周辺機器インタフェース（ＳＣＳＩ）アーキテクチャモデル（ＳＡＭ−２）が、以下の４つのタスク属性を定義する。
すなわち、シンプル属性、オーダード属性、ヘッドオブキュー属性、およびオートコンティンジェントアリージャンス（ＡＣＡ）属性を定義する。
ＳＣＳＩイニシエータは、ＳＣＳＩターゲット上のデバイスサーバに発行されたあらゆるタスクに属性を割り当てることができる。
シンプル属性を有するタスクは、休止状態でタスク集合に受け入れられる。
シンプル属性を有するタスクは、そのタスク集合のすべての古いヘッドオブキュータスクおよび古いオーダードタスクが終了するまで、有効状態に入ることはない。
タスクは、休止状態にあると、そのタスク集合に他の特定のタスクが存在することから、完了することが阻止される。
タスクが休止状態にある間、論理ユニットがそのタスク用に受信したあらゆる情報は保留され、したがって、そのタスクが利用することはできない。
タスクは、有効状態にあると、現行タスクとなることができ、制御モードが指定したタスク完了制約に従うことを条件として、いつでも完了することができる。
現行タスクは、実行中のデータ転送プロトコルサービス要求を有するか、または、コマンドステータスを返信している最中にある。
タスク集合に受け入れられたタスクは、単に完了するか、または、有効状態に入ることによって現行タスクとなるだけである。
タスクは、有効状態に遷移するまで静止状態にあり、タスクの状態を保持するのに十分なターゲット資源を使用すること以外に、アプリケーションクライアントが検出できる影響を生成することはない。
媒体に書き込まれるデータのプリフェッチ等の検出不能な影響は、有効状態に入る前に行うことができる。
終了状態のタスクは、タスク集合から除去される。
【００２１】
オーダード属性を有するタスクも、休止状態でタスク集合に受け入れられる。
オーダード属性のタスクは、その集合のすべての古いタスクが終了するまで、有効状態に入ることはない。
ヘッドオブキュー属性を有するタスクは、有効状態でのみタスク集合に受け入れられる。
オートコンティンジェントアリージャンス（ＡＣＡ）属性を有するタスクも、有効状態でのみタスク集合に受け入れられる。
タスク集合は、多くても１つのＡＣＡタスクを受け入れることができる。
【００２２】
例示の実施の形態では、プロセッサで実行される制御プロセスは、ＳＡＭ−２標準セマンティクスに準拠することに加えて、受信したタスクがタスク属性を有しないのか、それともシンプルタスクであるのかも判断する。
いずれの場合も、ネクサスの書き込みタスクのアクティブな個数が０であるときは、そのタスクは暫定的にオーダードとしてマーク付けされる。
アクティブな個数が０でない場合には、そのタスクはシンプルとしてマーク付けされる。
【００２３】
暫定的にオーダードとマーク付けされたタスクが存在している間に、タスク属性を有しないタスクまたはシンプルタスク属性が受信されると、制御プロセスは、そのオーダードタスクをシンプルタスクへ降格させ、新たに受信したタスクをシンプルタスクとしてマーク付けする。
【００２４】
オーダード、ヘッドオブキュー、またはオートコンティンジェントアリージャンス（ＡＣＡ）の属性を有するタスクが受信されると、制御プロセスは、その指定されたタスク属性でそのタスクをマーク付けする。
【００２５】
暗に含まれたタスク属性を決定する例示のプロセスは、イニシエータ１０４から属性が供給されない場合に２次ターゲット１０８での正確なオペレーションを保証するものである。
このプロセスは、パイプライン化されたコマンドストリームにオーダードタスク属性およびシンプルタスク属性を適用して、イニシエータ１０４が発行したコマンドの正確な優先度グラフを搬送し、２次ターゲット１０８におけるコマンド実行効率を改善する。
【００２６】
図２を参照して、概略ブロック図が、デバイスサーバによって解釈されるタスク優先度グラフを示している。
ＳＡＭ−２は、ＳＣＳＩタスク属性のそれぞれが、タスクにサービスを提供しているデバイスサーバへ搬送する順序付けの制約を定義する。
例示のシステムおよび本明細書で開示する動作方法のいくつかの実施の形態では、コマンドが送信順序で２次ターゲットに転送されると仮定すると、オーダード属性およびシンプル属性の適切な使用をパイプライン化されたコマンドストリームに適用して、イニシエータが発行したコマンドの正確な優先度グラフを搬送することができる。
図２は、受信デバイスサーバが、順序付けの属性をどのようにして解釈できるかを示している。
この図では、イニシエータがターゲットへ送信した時間順の番号がコマンドに付けられている。
具体的には、コマンドＣ１およびＣ６がオーダードタスクとして指定され、残りがシンプルタスクとして指定された状態で、イニシエータは、順序Ｃ１、Ｃ２、Ｃ３、Ｃ４、Ｃ５、およびＣ６でコマンドを送信する。
デバイスサーバは、これらコマンドを受信すると、図示したような優先度グラフを推論する。
デバイスサーバは、コマンドＣ３、Ｃ２、Ｃ５、およびＣ４を任意の順序で実行することもできるし、１つまたは２つ以上のコマンドを同時に実行することもできる。
その理由は、これら４つのタスク間の順序関係がイニシエータによって定義されていないからである。
【００２７】
ＳＣＳＩタスク属性は、厳密な順次技法よりもインテリジェントな非同期リモートミラーリングの実施を実現するのに使用することができる。
より具体的には、ＳＣＳＩタスク属性を使用することによって、実行順序の等価性が柔軟性に劣ることに相反して、優先度グラフの等価性の目標を実現することができる。
【００２８】
イニシエータは、リモート非同期ミラーリングアプリケーションに使用される２つのクラスに分類されるとみなすことができる。
第１のクラスは、本明細書では簡単にするためにクラスＡと呼ばれ、ＳＣＳＩタスク属性を使用しないものである。
このクラスＡのイニシエータは、単純なストップアンドウェイト手法を使用して実行の順序付けを制御する。
イニシエータは、デバイスサーバが任意の順序で実行できるコマンドストリームを発行し、次のコマンド、例えばオーダードコマンドの実行がすべての先行するコマンドの実行後に続かなければならない場合に停止する。
クラスＡのイニシエータは、すべての前のコマンドの応答を受信すると、待機しているオーダード用のコマンドを発行する。
基本的に、クラスＡのイニシエータは、単一のタスクが未処理である場合には、タグなしクラスまたはシンプルタスク属性を有するタグ付きクラスを使用できるが、複数のタスクが特定のイニシエータ＿ターゲット＿ＬＵＮ（Ｉ＿Ｔ＿Ｌ）ネクサスについて未処理である場合には、シンプルタスク属性を有するタグ付きタスクを使用する。
【００２９】
第２のクラスは、本明細書ではクラスＢと呼ばれ、ＳＣＳＩタスク属性を有効に使用するものである。
クラスＢのイニシエータは、図２に示すような、準拠の対象となる優先度グラフを記述する適切なＳＣＳＩタスク属性を有するコマンドを発行する。
クラスＢのイニシエータは、ＳＣＳＩタスク属性等のタスク属性の援助を受けて、所望の優先度グラフを１次ストレージターゲットに搬送する。
このタスク属性の概念は、イニシエータの観点で理想的な優先度グラフを獲得するのに十分リッチでない場合がある。
しかしながら、この概念は、ストレージターゲットが適度に効率的な実行シーケンスを選択することを可能にする優先度グラフを記述するのに十分リッチである。
【００３０】
従来のＳＣＳＩシステムの既知の使用状況の観点からすると、クラスＡのイニシエータは、クラスＢのイニシエータの数を大きく上回っている。
本明細書で開示するシステムおよび方法は、クラスＢのイニシエータの出現に動機を与え得るものではあるが、実際には、クラスＢのイニシエータが存在することは、稀であるか、または、知られていない。
クラスＢのイニシエータは、ストップアンドウェイトのコマンド順序付けの性能限界を回避することによってストレージサブシステムの性能を増加させることから利益を受けるものである。
【００３１】
ＳＣＳＩタスク属性を使用してミラーリング性能を改善する非同期リモートミラーリングアプリケーションにおいて１次ターゲットとして動作する例示のデバイスサーバは、コマンドストリームを開始するイニシエータのクラスに基づいて、後続のターゲットへ送られるコマンドストリームに属性を組み込むことができる。
クラスＢのイニシエータでは、デバイスサーバは、ＳＣＳＩタスク属性情報を、受信した通りに正確に２次ターゲットに単純に搬送し、２次ターゲットが１次ターゲットと同じ実行の柔軟性を有することができるようにする。
クラスＡのイニシエータでは、デバイスサーバは、イニシエータが属性を搬送しない場合に、暗に含まれた属性を決定する技法を実施する。
【００３２】
クラスＡのイニシエータの場合に、非同期リモートミラーリングをサポートする１次ターゲットは、タスク属性がないために、ストレージアプリケーションの所期の優先度グラフの利点を有せず、１次側で実行された具体的な実行シーケンスにアクセスのみを行う。
【００３３】
図３を参照して、高レベルのブロック図が、従来の性能限界を超えることを１次ターゲットに可能にする方法の一般的な実施の形態の機能分解を示している。
リモートミラーリング方法３００は、１次イニシエータからコマンドを受信する（３０２）こと、および１次ターゲットと２次ターゲットとの間で発行されたタスクの並列性を追跡することによって、１次ターゲットにより意図されたタスク優先度グラフを推論する（３０４）ことを含む。
推論したタスク優先度グラフは２次ターゲットに搬送される（３０６）。
この例示の技法によって、どのファミリーのストレージプロトコルについても所期の優先度グラフの導出が可能になる。
【００３４】
例示の技法は、推論した優先度グラフ等の所期の優先度グラフを推論する（３０４）。
１次ストレージターゲットは、コマンドストリームのコマンドの順序性に依存した遷移点を追跡することによって、所期のタスク優先度グラフを検知することができる。
例えば、イニシエータは、複数の未処理の書き込みタスクから、さらに簡単に、未処理の書き込みタスクがない状態への第１の遷移点において切り換わることができる。
イニシエータは、１またはそれ未満の未処理の書き込みタスクから複数の未処理の書き込みタスクへの第２の遷移点において切り換わることができる。
【００３５】
複数の書き込みタスクが未処理の場合、それら書き込みは任意の順序で完了できるので、イニシエータは、それら書き込み間の順序を何ら明確に予想していない。
しかしながら、第１の遷移点（ＴＰ１）は、すべての終結する未処理のタスク間の順序および従うべきコマンド間の順序を強制するイニシエータの意図と解釈することができる。
この解釈された意図は、常に正しいとは限らない予測である。
しかしながら、１次ターゲットのこの予測は、優先度グラフを推論する際の正確さを保証する無難な仮定である。
第２の遷移点（ＴＰ２）は、イニシエータによって近時に起動された複数の未処理の書き込みタスク間の実行順序についてイニシエータが配慮しないことを示すものである。
【００３６】
要約すると、１次ターゲットは、クラスＡのイニシエータが発行したコマンドの所期の優先度グラフを推論する際に、いくつかの原理を使用する。
例えば、第２の遷移点に続いて複数の未処理のタスクがあると、それらタスクはシンプルタスクとしてマーク付けされる。
【００３７】
第１の遷移点に続く最初のタスクは、オーダードタスクとマーク付けされる。
あるいは、例えばＳＣＳＩテストユニットレディ（Test Unit Ready）コマンドであるオーダードノーオペレーション（ｎｏ−ｏｐ）コマンドを挿入することもできる。
ｎｏ−ｏｐコマンドが挿入される場合、第１の遷移点に続く最初のタスクは、暫定的にオーダードとしてマーク付けされるが、未処理のコマンド数が１つを超えるとすぐに、シンプルタスクに再び降格させることができる。
【００３８】
イニシエータが次々に発行するすべてのコマンドがオーダードとしてマーク付けされる。
【００３９】
図４を参照して、フローチャートが、優先度グラフを推論することによってコマンドを順序付ける方法４００の一実施の形態を示している。
この方法は、コマンド要求ストリームを受信する（４０２）こと、そのストリームでコマンドが供給されない場合にコマンドを推論すること、および要求されたコマンドを実行する（４０４）ことを含む。
【００４０】
いくつかの状況では、受信したコマンドストリームは、強制される実行スキーマを記述するタスク属性の明細を含む。
論理ブロック４１０によって、タスク属性の明細を含むと判断されると、受信した属性は、単に、受信したコマンドと共に再搬送される（４１２）。
それ以外の状況では、受信したコマンドストリームは、強制される実行スキーマを記述するタスク属性の明細を省略している。
タスク属性が省略されている場合、システムは、暗に含まれたタスク属性をコマンドストリームから決定する（４１４）。
例示の実施の形態では、タスク属性は、発行されたタスクの並列性を追跡することにより１次イニシエータの所期の優先度グラフを推論することによって決定される（４１４）。
１次ストレージターゲットは、コマンドおよび暗に含まれたタスク属性を搬送して、ターゲットが実行するコマンドの並列性の改善を可能にする（４１６）。
【００４１】
暗に含まれたタスク属性は、イニシエータが供給する属性がない場合に正しいオペレーションを保証するために、コマンドストリームに組み込まれる（４１８）。
【００４２】
例示の実施の形態では、この方法は、小型コンピュータ周辺機器インタフェース（ＳＣＳＩ）デバイス等のデバイスで実行することができ、タスク属性は、シンプルタスク属性、オーダードタスク属性、ヘッドオブキュータスク属性、およびオートコンティンジェントアリージャンス（ＡＣＡ）タスク属性を含むＳＣＳＩタスク属性である。
【００４３】
通信システムにおいてコマンドを順序付ける方法４００は、リモート非同期ミラーリングアプリケーションでのコマンドに中継等のさまざまなアプリケーションについて使用することができる。
【００４４】
暗に含まれたタスク属性をコマンドストリームから決定する方法を使用することができる。
例示の実施の形態では、この方法は、例えばターゲットコントローラのプロセッサであるプロセッサ、または、他の適切なデバイスで実行される。
或る方法が、アクティブな書き込みカウントを保持することを含み、それによって、イニシエータ、ターゲット、および論理ユニット（ＬＵＮ）を関係付けるネクサスの書き込みタスクの現在アクティブな個数が追跡される。
追跡は、ネクサス上で新たな書き込みタスクに到達した時にアクティブ書き込みカウント（active_write_count）をインクリメントし、前の未処理の書き込みタスクの完了時にそのカウントをディクリメントすることによって行うことができる。
【００４５】
アクティブタスクカウント（active_task_count）が０になるごとに、以下のオペレーションの１つが実行される。
１つの選択肢では、オーダードとしてマーク付けされたノーオペレーション（ｎｏ−ｏｐ）コマンドが、２次ターゲットに伝達される優先度グラフに挿入される。
ｎｏ−ｏｐ挿入（no-op_insert）フラグが１に設定される。
第２の選択肢では、ｎｏ−ｏｐ挿入フラグは０に設定される。
【００４６】
新たな書き込みタスクが到着すると、いくつかのオペレーションが実行される。
イニシエータはクラスＡのイニシエータであるので、受信したタスクは、タグなしタスクまたはシンプルタスクのいずれかである。
アクティブタスクカウントが０に設定され、ｎｏ−ｏｐ挿入フラグが１に設定されている場合、この新たなタスクは、暫定的にオーダードタスクとしてマーク付けされる。
このタスクは、昇格されたタスク（promoted task）すなわちＰタスクと呼ぶことができる。
【００４７】
アクティブ書き込みカウントが０に設定され、ｎｏ−ｏｐ挿入フラグが０に設定されている場合、新たなタスクはオーダードとしてマーク付けされる。
【００４８】
アクティブ書き込みカウントが１に設定され、暫定的に設定されたＰタスクが存在する場合、このＰタスクは、シンプルタスクに再び降格される。
Ｐタスクの優先度グラフが２次ターゲットへすでに伝達されているという理由、例えば、１次ターゲットと２次ターゲットとの間の同期性の程度が比較的小さい理由から、Ｐタスクを降格できない場合に、システムはこの状況を無視する。
１次側が伝達した優先度グラフは、２次の実行の順序付けを不注意で過度に制約するが、伝達された優先度グラフは、引き続き有効であり、正しい結果をもたらす。
【００４９】
アクティブタスクカウントが、他のすべての場合で１または２以上に設定されている場合、新たなタスクはシンプルタスクとしてマーク付けされる。
【００５０】
優先度グラフを形成する技法は、独立したプロセスとして構成することができる。
ストレージターゲット内で実行される別個の独立した非同期プロセスが、例示の方法によって形成された優先度グラフを２次ターゲットへ搬送することができる。
Ｐタスクが存在する時に実行されるオペレーションのみが、特定の時刻における非同期ジョブ転送のステータスに関する情報を使用して、オペレーション、すなわちプロセス間の相互通信のみを決定する。
この限られた相互通信を除いて、非同期ジョブは、標準的なリモートミラーリングデーモンとみなすことができる。
【００５１】
開示した技法を適用することによって、コマンドストリームが、はるかに柔軟であるが、正確な優先度グラフを組み込むことができるような２次サイト用の書き込みコマンドストリーム、例えばＳＣＳＩ書き込みコマンドストリームが生成される。
その結果生成された優先度グラフは、イニシエータが生成した元の実行方式を改善することができる。
例えば、２次サイトにおいてコマンドを並列に実行することを可能にし、かつ／または、優先度グラフの等価性を維持する異なる順序でコマンドを実行すること可能にするタスク属性を組み込むことができる。
例示の技法によって生成された柔軟な実行スキーマは、シンプルタスクをインテリジェントに再配列する自由度を２次サイトに与えて、最大のスループットを引き出す。
【００５２】
図５および図６を参照して、フローチャートが、１次ストレージターゲットがイニシエータからのコマンドに応答するのに使用する方法の代替的な実施の形態を示している。
図５は、タスク開始５００を示している。
この技法は、１次ターゲットのイニシエータ／ターゲット／論理ユニット（ＬＵＮ）Ｉ＿Ｔ＿ＬネクサスにおけるＳＣＳＩ書き込みタスク等の書き込みタスクの暗に含まれた優先度グラフを決定するのに使用される。
この技法は、１次ターゲットがＩ＿Ｔ＿Ｌネクサスの新たな書き込みタスクを受信する（５０４）ことから開始する（５０２）。
１次ターゲットは、タスクがシンプルであるのか、それともタグなしであるのかを判断する（５０６）。
タスクがシンプルとは異なる属性を有する場合、その属性は優先度グラフに保持され（５０８）、アクティブ書き込みカウントがインクリメントされる（５１０）。
【００５３】
タスクが、推論されたタスク属性を受け取るために、１次ターゲットは、アクティブ書き込みカウントが０に等しいかどうかを判断する（５１２）。
アクティブ書き込みカウントが０に等しい場合、１次ターゲットは、ノーオペレーション（ｎｏ−ｏｐ）コマンドがコマンドストリームに挿入されているかどうかを判断する（５１４）。
例示の実施の形態では、ｎｏ−ｏｐがコマンドストリームに挿入される状況に対して、ｎｏ−ｏｐ挿入パラメータ（no-op_inserted parameter）が１に設定される。
ｎｏ−ｏｐ挿入パラメータが１に等しい場合には、１次ターゲットは現在のタスクをオーダードとしてマーク付けし、そのタスクを昇格されたタスクすなわちＰタスクと宣言する（５１６）。
ｎｏ−ｏｐコマンドがコマンドストリームに挿入されておらず、したがって、ｎｏ−ｏｐ挿入パラメータが０に設定されている場合、１次ターゲットは、現在のタスクをオーダードとしてマーク付けする（５１８）。
【００５４】
アクティブ書き込みカウントが０に等しくない状況で、推論されたタスク属性を受け取るタスクのために、１次ターゲットは、アクティブ書き込みカウントが１に等しいかどうかを判断する（５２０）。
アクティブ書き込みカウントが１に等しい場合、１次ターゲットは、Ｐタスクが現在存在するかどうかを判断する（５２２）。
Ｐタスクが現在存在する場合、そのＰタスクは、可能ならばシンプルタスクに降格される（５２４）。
Ｐタスクの優先度グラフが２次ターゲットへ先に搬送されていることから、昇格されたタスクをシンプルタスクに降格させることができない場合には、優先度グラフの変更が無視されるか、または、省略される。
優先度グラフの変更を無視することは認められる。
その理由は、その状況が、１次ターゲットが不注意で２次の実行の順序付けを過度に制約した状況であり、伝達された情報が、依然として正しい結果を生成する有効な優先度グラフであるからである。
優先度グラフを不注意に伝達する状況は、１次ターゲットと２次ターゲットとの間の非同期性（asynchrony）の程度が比較的小さいことが原因で発生する場合がある。
昇格されたタスクが存在しようがしまいが、１次ターゲットは、現在のタスクをシンプルとしてマーク付けする（５２６）。
【００５５】
アクティブ書き込みカウントが２以上である状況で、タスクが、推論されたタスク属性を受け取るために、１次ターゲットは、現在のタスクをシンプルとしてマーク付けする（５２８）。
【００５６】
すべての場合において、属性を保持した（５０８）後または動作５１６、５１８、５２６、および５２８で現在のタスクをマーク付けした後、１次ターゲットは、アクティブ書き込みカウントを１つだけインクリメントし（５１０）、優先度グラフを伝達する準備ができたかどうかを判断する（５３０）。
伝達する準備は、タスク開始技法５００によって構築された優先度グラフを搬送するストレージターゲット内で実行されている非同期ジョブである標準的なリモートミラーリングデーモンによって管理される。
【００５７】
優先度グラフの伝達準備ができると、１次ターゲットは、優先度グラフをリモートターゲット、すなわち２次ターゲットへ伝達する（５３２）。
いずれにしても、１次ターゲットは、ローカルタスクをスケジューリングし、次の書き込みコマンドを待って（５３４）、動作５０４にループする。
【００５８】
図６は、１次ストレージターゲットが書き込みタスク完了に応答して実行するタスク完了６００を示している。
この技法は、１次ターゲットが２次ターゲットから書き込みタスク完了を受信する（６０４）ことから開始する（６０２）。
１次ターゲットは、アクティブ書き込みカウントを１つだけディクリメントし（６０６）、アクティブ書き込みカウントが０にディクメントされたかどうかを判断する（６０８）。
アクティブ書き込みカウントが０に等しい場合、１次ターゲットは、ノーオペレーション（ｎｏ−ｏｐ）コマンドがコマンドストリームに挿入されるべきかどうかを判断する（６１０）。
イニシエータが複数の未処理の書き込みタスクから、さらに簡単に、未処理の書き込みタスクがない状態へ切り換わった後に続く最初のタスクに対して、例えばＳＣＳＩテストユニットレディコマンドであるｎｏ−ｏｐコマンドをコマンドストリームに挿入することができる。
ｎｏ−ｏｐを挿入できる場合、１次ターゲットは、そのｎｏ−ｏｐをオーダードタスクとしてコマンドストリームに挿入し（６１２）、ｎｏ−ｏｐ挿入フラグを１に設定する（６１４）。
【００５９】
ｎｏ−ｏｐを挿入できない場合には、１次ターゲットは、ｎｏ−ｏｐ挿入フラグをゼロに設定する（６１６）。
いずれの場合も、１次ターゲットは、次の書き込みタスクの完了を待って（６１８）、動作６０４にループする。
【００６０】
図７を参照して、高レベルの概略フローチャートが、通信システムにおいてコマンドを順序付ける方法の別の実施の形態７００を示している。
この方法は、インターネット小型コンピュータ周辺機器インタフェース（ｉＳＣＳＩ）転送プロトコルを介して情報を通信する（７０２）動作と、受信したコマンドストリームに小型コンピュータ周辺機器インタフェース（ＳＣＳＩ）のタスク属性を組み込む（７０４）こととを含む。
優先度グラフは、組み込んだ属性と共に２次に搬送される（７０６）。
【００６１】
図８を参照して、高レベルの概略フローチャートが、通信システムにおいてコマンドを順序付ける方法のさらに別の実施の形態８００を示している。
この方法は、コマンド要求ストリームを受信する（８０２）こと、中継するコマンドにタスク属性を組み込む（８０４）こと、および要求されたコマンドを中継する（８０６）ことを含む。
組み込んだタスク属性によって、順序付けられた転送を使用するリモートミラーリングアプリケーションのトランザクションの順序付けが改善される。
順序付けられた転送の一例は、ｉＳＣＳＩプロトコルである。
【００６２】
システムによって遂行または実行されるさまざまな機能、プロセス、方法、およびオペレーションは、さまざまなタイプのプロセッサ、コントローラ、中央処理装置、マイクロプロセッサ、デジタル信号プロセッサ、状態マシン、プログラマブルロジックアレイ等で実行可能なプログラムとして実施することができる。
このプログラムは、あらゆるコンピュータ可読媒体に記憶することができる。
このコンピュータ可読媒体は、コンピュータに関係したあらゆるシステムまたは方法によって使用されるか、または、これらに関連して使用されるものである。
コンピュータ可読媒体は、電子デバイス、磁気デバイス、光デバイス、または、コンピュータに関係したシステム、方法、プロセス、もしくはプロシージャによって使用されるか、もしくは、これらに関連して使用されるコンピュータプログラムを収容もしくは記憶できる他の物理デバイスもしくは手段である。
プログラムは、コンピュータ可読媒体に具体化することができる。
このコンピュータ可読媒体は、コンピュータもしくはプロセッサに基づくシステム等の命令実行システム、命令実行デバイス、命令実行コンポーネント、命令実行エレメント、もしくは命令実行装置、もしくは任意の適切なタイプの命令メモリもしくはストレージから命令をフェッチできる他のシステムによって使用されるか、または、それらに関連して使用されるものである。
コンピュータ可読媒体は、命令実行システム、命令実行装置、もしくは命令実行デバイスによって使用されるか、または、これらに関連して使用される任意の構造体、デバイス、コンポーネント、製品、または、プログラムの記憶、通信、伝達、もしくは転送が可能な他の手段とすることができる。
【００６３】
例示のブロック図およびフローチャートは、プロセスステップまたはプロセスブロックを示している。
これらのプロセスステップまたはプロセスブロックは、そのプロセスの具体的な論理機能または論理ステップを実施する１つまたは２つ以上の実行可能命令を含むコードモジュール、コードセグメント、またはコード部分を表すことができる。
特定の例が具体的なプロセスステップまたはプロセス動作を示しているが、多くの代替的な実施形態が可能であり、一般に、簡単な設計選択によって行われる。
動作およびステップは、機能、目的、標準的なレガシー構造に対する整合性等の考慮に基づいて、本明細書の具体的な説明とは異なる順序で実行することができる。
【００６４】
図９を参照して、概略ブロック図が、タスク属性を使用してコマンドの順序付けを管理する開示した技法を実施するのに使用できるストレージシステム９００の一実施の形態を示している。
このストレージシステム９００は、ディスクアレイ等の複数のストレージデバイス９０２を含む。
このストレージデバイス９０２は、ストレージドライブおよびこれらドライブのコントローラを含む。
図示したストレージデバイス９０２は、例えばディスクドライブアレイであるストレージドライブ９０６に相互に接続された２つのコントローラ９０４を含む。
ストレージデバイス９０２は、１つまたは２つ以上のネットワークファブリック９１０を介して多くのホストシステム９０８間で、データおよびコマンドを含む情報を通信する。
図示したシステムは、エレメントマネージャ９１２を含む。
このエレメントマネージャ９１２は管理機器９１４に存在する。
管理機器９１４もネットワークファブリック９１０に接続する。
コマンドの順序付けを管理する開示した技法は、一般に、コントローラ９０４の１つまたは２つ以上で実行される。
ただし、システムの中には、場合によって、他のプロセッサまたはコントローラでこの技法を実行できるものもある。
コントローラペア９０４は、ｉＳＣＳＩおよび／またはファイバチャネル（ＦＣ）スイッチ等のインタフェースループスイッチ９１６に接続する。
【００６５】
図１０を参照して、概略ブロック図が、分散通信用のＳＣＳＩアーキテクチャモデル（ＳＡＭ−２）による通信システム１０００の一実施の形態を示している。
この通信システム１０００は、インターネット小型コンピュータ用周辺機器インタフェース（ｉＳＣＳＩ）転送プロトコルを介して情報を通信することによりコマンドの順序付けを管理する。
システム１０００は、さらに、小型コンピュータ用周辺機器インタフェース（ＳＣＳＩ）のタスク属性を、受信したコマンドストリームに組み込んで、正確なアルゴリズムのオペレーションを達成するのに十分な順序付けの振る舞いを保証する。
【００６６】
特定のトランザクションでは、例示のシステム１０００は、それぞれがイニシエータ入出力（Ｉ／Ｏ）システムクライアント１００２およびターゲットＩ／Ｏシステムサーバ１００４として機能する２つのＳＣＳＩデバイスのオペレーションを組み合わせる。
イニシエータＩ／Ｏシステムクライアント１００２は、オペレーションを要求するものであり、ターゲットＩ／Ｏシステムサーバ１００４は、イニシエータＩ／Ｏシステムクライアント１００２が要求したオペレーションを実行するＳＣＳＩデバイスである。
【００６７】
インターネットＳＣＳＩ（ｉＳＣＳＩ）は、伝送制御プロトコル（ＴＣＰ）上で動作するように設計され、それによって、インターネット等の伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）ネットワークでＳＣＳＩアプリケーションプロトコルの実行を可能にするＳＣＳＩ転送プロトコルである。
ｉＳＣＳＩセッションが、順序付けられたコマンドイニシエータＩ／Ｏシステムクライアント１００２のターゲットＩ／Ｏシステムサーバ１００４への配信を保証する状況では、ｉＳＣＳＩセッション抽象化は、ＳＣＳＩイニシエータ／ターゲット（Ｉ＿Ｔ）ネクサスと等価である。
ＳＡＭ−２は、イニシエータ／ターゲット（Ｉ＿Ｔ）ネクサスを、イニシエータＩ／Ｏシステムクライアント１００２とターゲットＩ／Ｏシステムサーバ１００４との間の関係として定義する。
【００６８】
例えばイニシエータＩ／Ｏシステムクライアント１００２またはターゲットＩ／Ｏシステムサーバ１００４であるＳＣＳＩデバイスは、ＳＣＳＩアプリケーションオブジェクト１００６およびサービス配信ポート１００８を含む。
ＳＣＳＩアプリケーションオブジェクト１００６は、ＳＣＳＩアプリケーションレイヤ１０１０で実行される。
ＳＣＳＩアプリケーションレイヤ１０１０は、ＳＡＭ−２およびＳＣＳＩコマンド標準規格に準拠する。
イニシエータＩ／Ｏシステムクライアント１００２のサービス配信ポート１００８と、ターゲットＩ／Ｏシステムサーバ１００４のサービス配信ポート１００８とは、組み合わさって、サービス配信サブシステム１０１２を形成する。
各ＳＣＳＩデバイスでは、システム１０００全体にわたって、ＳＣＳＩアプリケーションオブジェクト１００６が、プロトコルサービスインタフェースによってサービス配信ポート１００８から分離される。
サービス配信ポート１００８は、システム１０００のＳＣＳＩデバイス間でＳＣＳＩプロトコルを介して通信し合うＳＣＳＩプロトコルサービス１０１４と、物理相互接続を介して通信し合う物理相互接続サービス１０１６とを含む。
各ＳＣＳＩデバイスでは、システム１０００全体にわたって、ＳＣＳＩプロトコルサービス１０１４および物理相互接続サービス１０１６が、物理相互接続サービスインタフェースによって分離される。
ＳＣＳＩプロトコルサービス１０１４は、ＳＣＳＩプロトコル標準規格に準拠したＳＣＳＩプロトコルレイヤ１０２６で実行される。
ｉＳＣＳＩでは、ＳＣＳＩプロトコル標準規格はｉＳＣＳＩ／ＴＣＰ／ＩＰを含む。
物理相互接続サービス１０１６は、さまざまな有線および無線の標準規格を含めて、物理相互接続標準規格（Physical Interconnect Standard）に準拠した物理相互接続レイヤ１０２８で実行される。
【００６９】
ターゲットＩ／Ｏシステムサーバ１００４のＳＣＳＩアプリケーションオブジェクト１００７は、タスクマネージャ１０１８および１つまたは２つ以上の論理ユニット１０２０を含む。
論理ユニット１０２０は、デバイスサーバ１０２２および場合によっては他のタイプのユニットを含む。
イニシエータＩ／Ｏシステムクライアント１００２のＳＣＳＩアプリケーションオブジェクト１００６は、アプリケーションクライアント１０２４を含む。
イニシエータＩ／Ｏシステムクライアント１００２のクライアントとして動作するＳＣＳＩアプリケーションオブジェクト１００６と、ターゲットＩ／Ｏシステムサーバ１００４のクライアントとして動作するＳＣＳＩアプリケーションオブジェクト１００７とは、ＳＣＳＩアプリケーションプロトコルを使用して通信する。
また、アプリケーションクライアント１０２４は、ターゲットＩ／Ｏシステムサーバ１００４のデバイスサーバ１０２２と通信し、デバイスサービス要求を送信して、デバイスサーバ１０２２からデバイスサービス応答を受信する。
アプリケーションクライアント１０２４は、タスクマネージャ１０１８とも通信し、タスク管理要求を送信して、タスクマネージャ１０１８からタスク管理応答を受信する。
【００７０】
ｉＳＣＳＩ技術によって、大きなエリアにわたって配備できるイニシエータＩ／Ｏシステムクライアント１００２とターゲットＩ／Ｏシステムサーバ１００４との間の通信を伴うアプリケーションは、実際には無制限の地理的な距離をカバーすることが可能になる。
ｉＳＣＳＩ技術によって可能にされたアプリケーションには、例えば、非同期リモートミラーリング、リモートテープボールティング、および広く分散したストレージエリアネットワーク（ＳＡＮ）が含まれる。
長い伝送遅延を回避することによって、前のコマンドのＳＣＳＩステータスを待つことなく、イニシエータＩ／Ｏシステムクライアント１００２がＳＣＳＩコマンドを連続してストリーミングするアプリケーションが可能になる。
さまざまなタイプのアプリケーションは、順序付けられたコマンドの実行の一貫性を要求することもあるし要求しないこともある。
例えば、ミラーリングアプリケーションは、通常、待ち時間の長いネットワークにおけるリモートＳＣＳＩターゲットでデータのデータ一貫性を保持するために、リモートＳＣＳＩターゲットにおける書き込みオペレーションを順序付けて実行するように制約する。
【００７１】
ｉＳＣＳＩシステムでは、ＳＣＳＩ  Ｉ＿Ｔネクサスが、１つまたは２つ以上のＴＣＰ接続にわたるｉＳＣＳＩプロトコル抽象化をｉＳＣＳＩセッションに直接マッピングする。
ｉＳＣＳＩプロトコルは、２１６個もの数の個々のＴＣＰ接続にわたる可能性のあるＩ＿Ｔネクサス上の双方向通信の１つの論理フローを得るセマンティクスを定義する。
複数のｉＳＣＳＩ接続は、複数の接続セッションでも単一のＩ＿Ｔネクサスが提供されたＳＣＳＩレイヤを有するｉＳＣＳＩレイヤにおいて完全に収容される。
【００７２】
タスクマネージャ１０１８は、ターゲットＩ／Ｏシステムサーバ１００４におけるｉＳＣＳＩレイヤの順序付けられたステップシーケンスを指定することによって、タスクセット管理機能のハンドリングを実行する。
アボートタスクセット（ABORT TASK SET）およびクリアタスクセット（CLEAR TASK SET）の２つのタスク管理機能が、ＳＣＳＩタスクセットを管理するのに使用される。
アボートタスクセットは、セッションのすべてのアクティブなタスクを中断する。
クリアタスクセットは、タスクセットのタスクをクリアする。
このステップシーケンスは、イニシエータＩ／Ｏシステムクライアント１００２が、ｉＳＣＳＩセッションの接続数にかかわらず、タスク管理機能の応答が到着する前に、影響を受けないすべてのタスクのＳＣＳＩ応答プロトコルデータユニット（ＰＤＵ）を受信することを保証する。
【００７３】
順序付けられたコマンド配信を保証する役割は、ターゲットＩ／Ｏシステムサーバ１００４に課せられる。
イニシエータＩ／Ｏシステムクライアント１００２は、コマンドの順序付けを自由に使用することもできるし、省略することもできる。
特定の実施の形態では、ｉＳＣＳＩターゲットは、クライアントサーバモデルにおけるサーバとして動作し、コマンドの順序付けに関してイニシエータの振る舞いを確立しようとせず、逆に、保証され順序付けられた配信サービスを常に提供する。
【００７４】
ＳＣＳＩアプリケーションレイヤは、順序付けを強制するのに使用できるコマンド標準規格を有する。
ＳＡＭ−２は、シンプル、オーダード、ヘッドオブキュー、およびＡＣＡの４つのタスク属性を定義する。
論理ユニットに送られた各タスクには属性を割り当てることができる。
この標準規格は、タスクにサービスを提供するデバイスサーバ１０２２へ各属性が搬送する制約の順序付けを定義する。
パイプライン化されたコマンドストリームに適用されたオーダード属性およびシンプル属性の適切な使用によって、イニシエータＩ／Ｏシステムクライアント１００２が発行したコマンドがターゲットＩ／Ｏシステムサーバ１００４において同じ順序で受信される限り、それらコマンドの正確な優先度グラフが搬送される。
【００７５】
本開示は、さまざまな実施の形態を説明しているが、これらの実施の形態は、例示として理解されるべきであって、特許請求の範囲を限定するものではない。
説明した実施の形態の多くの変形、変更、追加、および改良が可能である。
例えば、当業者は、本明細書で開示した構造および方法を提供するのに必要なステップを容易に実施し、プロセスパラメータ、材料、および寸法が例として与えられているにすぎないことを理解する。
パラメータ、材料、および寸法は、所望の構造だけでなく変更をも達成するために変えることができ、これらの変更は特許請求の範囲に含まれる。
本明細書で開示した実施の形態の変形および変更も、添付の特許請求の範囲内に含まれることを維持しつつ行うことができる。
例えば、開示した実施の形態は、小型コンピュータ用周辺機器インタフェース（ＳＣＳＩ）に準拠し、ＳＣＳＩタスク属性を利用する。
コマンドまたはタスクのスケジューリングに適した属性を定義する他のあらゆる適切な転送、インタフェース、または標準規格を使用することができる。
また、開示した実施の形態は特定のシステム構成を示しているが、その装置および技法は、任意の適切な個数のストレージエレメントを有する任意の通信構成で使用することができる。
システムは、さまざまなオペレーティングシステムおよびデータベースシステムで実施することができる。
制御エレメントは、汎用コンピュータシステム、ワークステーション、サーバ等のソフトウェアまたはファームウェアとして実施できるが、それ以外に、専用デバイスおよび組み込みシステムで実施することもできる。
【図面の簡単な説明】
【００７６】
【図１】コマンドストリームにタスク属性を組み込んで非同期リモートミラーリングを管理する能力を有するデバイスを含むストレージシステムの一実施の形態を示す概略ブロック図である。
【図２】デバイスサーバによって解釈される実行シーケンス順序を示す概略ブロック図である。
【図３】優先度グラフの推論を使用して性能を改善することを１次ターゲットに可能にする例示のシステムによって使用される方法の一実施の形態を示すフローチャートである。
【図４】通信システムにおいてコマンドを順序付ける方法の一実施の形態を示すフローチャートである。
【図５】１次ストレージターゲットがイニシエータからのコマンドに応答するのに使用する方法の代替的な実施の形態を示すフローチャートである。
【図６】１次ストレージターゲットがイニシエータからのコマンドに応答するのに使用する方法の代替的な実施の形態を示すフローチャートである。
【図７】通信システムにおいてコマンドを順序付ける方法の別の実施の形態を示すフローチャートである。
【図８】通信システムにおいてコマンドを順序付ける方法のさらに別の実施の形態を示すフローチャートである。
【図９】タスク属性を使用してコマンドの順序付けを管理する開示した技法を実施するのに使用できるストレージシステムの一実施の形態を示す概略ブロック図である。
【図１０】分散通信用のＳＣＳＩアーキテクチャモデル（ＳＡＭ−２）による通信システムの一実施の形態を示す概略ブロック図である。
【符号の説明】
【００７７】
１０４・・・イニシエータ，
１０２・・・１次ターゲット，
１０８・・・２次ターゲット，
９０８・・・ホスト，
９１０・・・ファブリック１，２，
９０４・・・コントローラＡ，Ｂ
９１６・・・ＳＣＳＩ／ＦＣループスイッチＡ，Ｂ，
９０６・・・ストレージドライブ，
９１４・・・管理機器，
９１２・・・エレメントマネージャ，
１０００・・・ＳＣＳＩアプリケーションモデル（ＳＡＭ−２），
１０１０・・・ＳＣＳＩアプリケーションレイヤ，
１０２６・・・ＳＣＳＩプロトコルレイヤ，
１０２８・・・物理相互接続レイヤ，
１００２・・・イニシエータＩ／Ｏシステムクライアント，
１０２４・・・アプリケーションクライアント，
１００６，１００７・・・ＳＣＳＩアプリケーションオブジェクト，
１０１４・・・ＳＣＳＩプロトコルサービス，
１０１６・・・物理相互接続サービス，
１００８・・・サービス配信ポート，
１００４・・・ターゲットＩ／Ｏシステムサーバ，
１０２０・・・論理ユニット，
１０２２・・・デバイスサーバ，
１０１８・・・タスクマネージャ，
【図１】
2005243020.tif 000003
【図２】
2005243020.tif 000004
【図３】
2005243020.tif 000005
【図４】
2005243020.tif 000006
【図５】
2005243020.tif 000007
【図６】
2005243020.tif 000008
【図７】
2005243020.tif 000009
【図８】
2005243020.tif 000010
【図９】
2005243020.tif 000011
【図１０】
2005243020.tif 000012