(57)【特許請求の範囲】
【請求項１】
ｉＳＣＳＩ環境のためのサービスの質（ＱｏＳ）を与えるように適合したシステムであって、
１つ以上のイニシエータであって、各前記イニシエータが、
フロー仕様パラメータを用いて１つ以上のＰＤＵをシェーピングするイニシエータＱｏＳシェーパを含むｉＳＣＳＩイニシエータと、
前記ｉＳＣＳＩイニシエータから前記シェーピングされたＰＤＵを受け取り、ＱｏＳポリシーを用いて前記ＰＤＵをマーキングするＱｏＳマーカを含むＴＣＰレイヤと、
を含むイニシエータと、
ＩＰネットワークを介して前記イニシエータから前記ＰＤＵを受信する１つ以上のターゲットであって、各前記ターゲットが、
Ｉ／Ｏリソースを処理するためのｉＳＣＳＩターゲットにおける第１のＱｏＳコンポーネントであって、前記ＰＤＵから抽出した１つ以上の読み取りコマンドおよび１つ以上の書き込みコマンドを、フロー仕様パラメータを用いてシェーピングする第１のＱｏＳコンポーネントと、
ネットワーク・リソースを処理するためのＴＣＰレイヤにおける第２のＱｏＳコンポーネントと、
を含む、ターゲットとを含み、
前記ＰＤＵはコマンドＰＤＵであり、
前記イニシエータＱｏＳシェーパは、コマンド・シーケンス番号が割り当てられる前に前記コマンドＰＤＵをシェーピングし、
前記フロー仕様パラメータは、Ｉ／Ｏレート、バイト・レート、およびＩ／Ｏフロー過剰の１つ以上を含み、
前記ターゲットの前記第１のＱｏｓコンポーネントは、前記フロー仕様パラメータを用いて前記コマンドＰＤＵをシェーピングする、
システム。
【請求項２】
前記イニシエータおよびターゲットと通信を行うサービス・レベル契約（ＳＬＡ）エージェントであって、前記イニシエータおよび前記ターゲットに前記ＱｏＳポリシーを提供するＳＬＡエージェントを更に含む、請求項１に記載のシステム。
【請求項３】
前記イニシエータおよび前記ターゲットが、ｉＳＣＳＩセッションごとに多数のサービス・クラスのための多数の別個の接続をサポートする、請求項１に記載のシステム。
【請求項４】
複数のフィルタ仕様属性を含み、前記フィルタ仕様属性の１つ以上がｉＳＣＳＩトラヒック・タイプを反映するように構成されている、請求項１に記載のシステム。
【請求項５】
前記フィルタ仕様属性が、ＴＣＰ４タプル、ｉＳＣＳＩセッションｉｄ、ＬＵＮ（論理ユニット番号）、イニシエータ・ユーザｉｄ、およびアプリケーション識別属性のうち１つ以上を含む、請求項４に記載のシステム。
【請求項６】
前記フィルタ仕様属性が、ネットワーク・リソースおよびＩ／ＯリソースにＱｏＳを与えるように適合している、請求項４に記載のシステム。
【請求項７】
前記フィルタ仕様属性が、１つ以上のイニシエータおよび１つ以上のターゲットによって用いられ、前記イニシエータによって用いられる前記フィルタ仕様属性が、前記ターゲットによって用いられる前記フィルタ仕様属性とは異なる、請求項４に記載のシステム。
【請求項８】
前記フロー仕様パラメータが、ネットワーク・リソースおよびＩ／ＯリソースにＱｏＳを与えるように適合している、請求項１に記載のシステム。
【請求項９】
前記イニシエータによって用いられる前記フロー仕様パラメータが、前記ターゲットによって用いられる前記フロー仕様パラメータとは異なる、請求項１に記載のシステム。
【請求項１０】
ｉＳＣＳＩ環境のためにＱｏＳを与えるための方法であって、
ｉＳＣＳＩイニシエータにおいて、コマンド・シーケンス番号が割り当てられる前に、フロー仕様パラメータを用いて１つ以上のコマンドＰＤＵをシェーピングするステップと、
前記ｉＳＣＳＩイニシエータを含むイニシエータにおけるＴＣＰレイヤにおいて、ＱｏＳポリシーを用いて、前記シェーピングしたコマンドＰＤＵをマーキングするステップと、
ＩＰネットワークを介して、ｉＳＣＳＩターゲットにおいて前記コマンドＰＤＵを受信するステップと、
前記ｉＳＣＳＩターゲットにおいて、フロー仕様パラメータを用いて、前記コマンドＰＤＵから抽出した１つ以上の読み取りコマンドおよび１つ以上の書き込みコマンドをシェーピングするステップと
を含み、
前記フロー仕様パラメータは、Ｉ／Ｏレート、バイト・レート、およびＩ／Ｏフロー過剰の１つ以上を含む、
方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にサービスの質に関し、より具体的には、ネットワーク・ストレージ・システムにおけるサービスの質に関する。
【背景技術】
【０００２】
サービスの質（ＱｏＳ：Quality ofService）は、広義には、選択されたネットワーク・トラヒックに、より良いサービスを提供することができるネットワークの能力を指す。ＱｏＳは、可用性、誤り性能、応答時間、ネットワーク輻輳によるトラヒック喪失または伝送不良等を含む、いくつかの基本的な性能規準によって特徴付けることができる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ネットワークのためのＱｏＳは、かなり開発された分野であるが、ネットワーク・ストレージ・システムでは、従来技術のＱｏＳプロトコルおよび技法によって対処されない特別な問題が生じる。１例として、インターネット・プロトコル（ＩＰ）ネットワークにおいて、重いトラヒックのほとんどは、サーバからクライアントへのものである。通常、トラヒックは、サーバからクライアントへのダウンロードの形態とすることができる。従って、従来技術のＱｏＳ技法は、サーバからクライアントへの一方向トラヒックに対処するように設計されている。
【０００４】
しかしながら、ネットワーク・ストレージでは、重いトラヒックは、読み取り動作または書き込み動作のいずれか等、双方向である場合がある。読み取り動作は、ストレージ・サーバからクライアントへの重いトラヒックを生成することがある。これに対して、書き込み動作は、クライアントからストレージ・サーバへの重いトラヒックを生成する場合がある。従来技術のＱｏＳ技法では、双方向トラヒックに対処するような設備が整っていない。
【０００５】
別のネットワーク・ストレージの問題は、不従順（non-compliant）クライアントである。ＩＰネットワーク・トラヒックでは、クライアントからのトラヒックのほとんどは、サーバからのトラヒックに比べて、ごくわずかである。従って、サービス・レベル契約（ＳＬＡ：service level agreements）に従わないクライアントによって引き起こされる損害は、通常、取るに足りないものである。このため、従来技術のＱｏＳ技法は、不従順クライアントの問題に取り組まない。これに対して、ネットワーク・ストレージ・システムでは、不従順クライアントは、データの読み取りまたは書き込み等、多数の重いトラヒック動作を開始する可能性がある。従って、ネットワーク・ストレージのためのＱｏＳでは、不従順クライアントのトラヒックを追跡し、これを含むことが必要である。現在、この必要性は、従来技術のＱｏＳ技法では満たされていない。
【０００６】
上述のことは、単に、従来技術のＱｏＳ技法がネットワーク・ストレージ・システムのＱｏＳ問題に対処できないことの２つの例である。従って、ネットワーク・ストレージ・システムの独特かつ特定の問題に対処することができるＱｏＳ技法を提供することが要望されている。
【課題を解決するための手段】
【０００７】
ｉＳＣＳＩ（Internet SmallComputer System Interface、アイスカジー）プロトコルによって、伝送制御手順（ＴＣＰ：Transmission Control Protocol）上にＳＣＳＩ（Small Computer System Interface、スカジー）プロトコルをトランスポートすることが可能となる。ｉＳＣＳＩトラヒックは、通常、別個のネットワーク・ノード上に常駐するイニシエータとターゲットとの間の双方向性トラヒックである。ｉＳＣＳＩトラヒックは、共有ネットワークおよび入力／出力（Ｉ／Ｏ）リソースを利用し、従って、輻輳の影響を受ける。
【０００８】
本発明の１つの目的は、ｉＳＣＳＩトラヒックを他のネットワーク・トラヒックと区別するためのＱｏＳ技法およびプロトコルを提供することである。同様に、更に別の目的は、例えば、異なるイニシエータからのトラヒックおよび異なる論理ユニット（ＬＵ：logical unit）へのトラヒックのように、ｉＳＣＳＩトラヒックの様々なインスタンスを区別し優先順位を付けるＱｏＳ技法およびプロトコルを提供することである。
【０００９】
本発明の好適な実施形態は、ｉＳＣＳＩのためのエンド・ツー・エンド（end-to-end）ＱｏＳを提供することができる。本発明のＱｏＳ技法およびプロトコルは、イニシエータからターゲットへ、およびその逆のフロー経路に沿って、多数のリソースの制御および管理を行うことができる。
【００１０】
本発明のいくつかの実施形態では、ｉＳＣＳＩトラヒックを、ネットワーク帯域のある部分に限定し、これによって、他のトラヒックの充分なサービスの質を可能とすることができる。
【００１１】
本発明の１つの態様によれば、ｉＳＣＳＩ環境のためのサービスの質を得るように構成されたイニシエータが提供される。イニシエータは、ｉＳＣＳＩイニシエータおよびＴＣＰレイヤ（TCP layer）を含む。ｉＳＣＳＩイニシエータは、ＱｏＳポリシーに従って１つ以上のＰＤＵをシェーピングする（shaping）ためのＱｏＳシェーパ（shaper）を含む。ＴＣＰレイヤは、ｉＳＣＳＩイニシエータからＰＤＵを受け取り、ＱｏＳポリシーに従ってＰＤＵにマーキングする（marking）ためのＱｏＳマーカ（marker）を含む。
【００１２】
好ましくは、ＱｏＳポリシーは、ネットワーク・リソースのためのポリシーおよびＩ／Ｏリソースのためのポリシーを含む。
【００１３】
代替的な実施形態では、ＰＤＵはコマンドＰＤＵである。かかる場合、コマンドＰＤＵがコマンド・シーケンス番号を受け取る前に、シェーパがそれらをシェーピングする。
【００１４】
他の代替的な実施形態では、ＰＤＵはデータＰＤＵおよびコマンドＰＤＵである。データＰＤＵおよびコマンドＰＤＵは、ＴＣＰレイヤに受け取られる前にシェーピングされる。
【００１５】
また、本発明は、ＴＣＰレイヤにおいて第２のシェーパも含むことができる。第２のシェーパは、ｉＳＣＳＩ以外のアプリケーションのネットワーク・トラヒックをシェーピングする。
【００１６】
本発明の別の態様によれば、ｉＳＣＳＩ環境のためのサービスの質を与えるように構成したターゲットが提供される。ターゲットは、第１および第２のＱｏＳコンポーネントを含む。
【００１７】
第１のＱｏＳコンポーネントは、ｉＳＣＳＩターゲット内にあり、Ｉ／Ｏリソースを処理する。第１のＱｏＳコンポーネントは、ＱｏＳポリシーに従って読み取りコマンドおよび書き込みコマンドをシェーピングする。このため、第１のＱｏＳコンポーネントは、不従順イニシエータからのトラヒックにＱｏＳを与える。
【００１８】
第２のＱｏＳコンポーネントは、ＴＣＰレイヤ内にあり、ネットワーク・リソースを処理する。ｉＳＣＳＩ  ＰＤＵは、ｉＳＣＳＩのＱｏＳポリシーに従ってシェーピングおよびマーキングされる。
【００１９】
あるいは、ターゲットは、複数の論理ユニット（ＬＵ）に対するアクセスを提供する。ＬＵの各々は多数のタスク・セットを有し、タスク・セットの各々は関連するサービス・クラスを有する。いくつかの実施形態では、関連するサービス・クラスの２つ以上は同一である。代替的な実施形態では、関連するサービス・クラスの２つ以上は互いに異なっている。
【００２０】
本発明の別の態様によれば、ｉＳＣＳＩ環境のためのサービスの質（ＱｏＳ）を与えるように構成したシステムが提供される。このシステムは、１つ以上のイニシエータおよび１つ以上のターゲットを服務。いくつかの実施形態では、システムは、サービス・レベル契約（ＳＬＡ）エージェントも含む。エージェントは、イニシエータおよびターゲットと通信し、インシエータおよびターゲットにＱｏＳポリシーを提供する。
【００２１】
代替的な実施形態では、イニシエータが用いるＱｏＳポリシーは、ターゲットにおいて用いられるＱｏＳポリシーとは異なる。更に、イニシエータおよびターゲットは、ｉＳＣＳＩセッションごとに多数のサービス・クラスのための多数の別個の接続をサポートすることができる。
【００２２】
本発明の更に別の態様によれば、ｉＳＣＳＩ環境のために構成したＱｏＳシステムが提供される。ＱｏＳシステムは、複数のフィルタ仕様属性を含む。フィルタ仕様属性の１つ以上は、ｉＳＣＳＩトラヒック・タイプを反映するように構成されている。
【００２３】
いくつかの実施形態では、フィルタ仕様属性は、ＴＣＰ４タプル（four-tuple）、ｉＳＣＳＩセッションｉｄ、ＬＵＮ、イニシエータ・ユーザｉｄ、もしくはアプリケーション識別属性またはそれら全てを含む。あるいは、フィルタ仕様属性は、ネットワーク・リソースおよびＩ／ＯリソースにＱｏＳを与えるように構成されている。
【００２４】
通常、フィルタ仕様属性は、１つ以上のイニシエータおよび１つ以上のターゲットによって用いられる。場合によっては、イニシエータによって用いられるフィルタ仕様属性は、ターゲットによって用いられるフィルタ仕様属性とは異なる。
【００２５】
本発明の更に別の態様によれば、ｉＳＣＳＩ環境のために構成した別のＱｏＳシステムが提供される。ＱｏＳシステムは、複数のフィルタ仕様パラメータを含む。フィルタ仕様パラメータの１つ以上は、ｉＳＣＳＩトラヒック・タイプのために構成されている。
【００２６】
いくつかの実施形態では、フロー仕様パラメータは、Ｉ／Ｏレート、バイト・レート、もしくはＩ／Ｏフロー過剰またはそれら全てを含む。あるいは、フロー仕様パラメータは、ネットワーク・リソースおよびＩ／ＯリソースにＱｏＳを与えるように構成されている。
【００２７】
通常、フロー仕様パラメータは、１つ以上のイニシエータおよび１つ以上のターゲットによって用いられる。場合によっては、イニシエータによって用いられるフロー仕様パラメータは、ターゲットによって用いられるフィルタ仕様パラメータとは異なる。
【００２８】
本発明の別の態様によれば、ｉＳＣＳＩ環境のために構成した別のＱｏＳシステムが提供される。ＱｏＳシステムは、シェーパ、マーカ、および第１のターゲットＱｏＳコンポーネントを含む。
【００２９】
シェーパは、ｉＳＣＳＩイニシエータ内にあり、ＱｏＳポリシーに従って１つ以上のＰＤＵをシェーピングする。マーカは、イニシエータにおけるＴＣＰレイヤ内にあり、ｉＳＣＳＩイニシエータからＰＤＵを受け取る。また、マーカは、ＱｏＳポリシーに従ってＰＤＵをマーキングする。第１のターゲットＱｏＳコンポーネントは、ｉＳＣＳＩターゲット内にある。第１のターゲットＱｏＳコンポーネントは、ＰＤＵから抽出した１つ以上のコマンドを受信し、ＱｏＳポリシーに従ってコマンドをシェーピングする。
【００３０】
いくつかの実施形態では、第１のターゲットＱｏＳコンポーネントは、Ｉ／Ｏリソースを処理する。あるいは、システムは、ＴＣＰレイヤにおいて第２のターゲットＱｏＳコンポーネントを含む。第２のターゲットＱｏＳコンポーネントは、ネットワーク・リソースを処理する。ｉＳＣＳＩ  ＰＤＵは、ｉＳＣＳＩのためのＱｏＳポリシーに従ってシェーピングおよびマーキングされる。
【００３１】
本発明の別の態様によれば、ｉＳＣＳＩ環境のためにＱｏＳを与えるための方法が提供Ｓら得る。この方法は、ＱｏＳポリシーに従ってｉＳＣＳＩイニシエータにおいて１つ以上のＰＤＵをシェーピングすることを含む。また、この方法は、ＱｏＳポリシーに従ってイニシエータにおけるＴＣＰレイヤにおいてＰＤＵをマーキングすることを含む。ＰＤＵがコマンドＰＤＵである場合、この方法は、コマンドＰＤＵにコマンド・シーケンス番号を割り当てる前に、それらをシェーピングすることを含む。コマンドＰＤＵのシェーピングは、通常、Ｉ／ＯリソースのためのＱｏＳポリシーに従って行われる。
【００３２】
いくつかの実施形態では、コマンドＰＤＵは、即値データを含む書き込みコマンドＰＤＵである。書き込みコマンドＰＤＵは、ネットワーク・リソースのためのＱｏＳポリシーに従って、更に、Ｉ／ＯリソースのためのＱｏＳポリシーに従ってシェーピングされる。
【００３３】
代替的な実施形態では、ＰＤＵはデータＰＤＵおよびコマンドＰＤＵである。データＰＤＵおよびコマンドＰＤＵをＴＣＰレイヤに送る前に、ｉＳＣＳＩイニシエータにおいてデータＰＤＵおよびコマンドＰＤＵのシェーピングが行われる。ＰＤＵがデータＰＤＵである場合、データＰＤＵは、ネットワーク・リソースのためのＱｏＳポリシーに従ってシェーピングされる。
【００３４】
あるいは、この方法は、ＩＰネットワークを介して、ターゲットにＰＤＵを送信することを含む。ｉＳＣＳＩターゲットにおいて、Ｉ／ＯリソースのためのＱｏＳポリシーに従って、ＰＤＵから読み取りコマンドおよび書き込みコマンドを抽出し、シェーピングし、これによって不従順トラヒックにＱｏＳを与える。
【００３５】
本発明の別の態様によれば、ｉＳＣＳＩ環境のためにＱｏＳを与えるための更に別の方法が提供される。この方法は、ｉＳＣＳＩターゲットにおいて１つ以上のＬＵからデータを受信することとと、ｉＳＣＳＩのためのＱｏＳポリシーに従って、ＱｏＳコンポーネントにおいてデータをシェーピングおよびマーキングすることとを含む。ＱｏＳポリシーは、ネットワーク・リソースのためのポリシーである。
【００３６】
本発明の別の態様によれば、ｉＳＣＳＩ環境においてサービスの質を与えるためのシステムが提供される。このシステムは、ＱｏＳポリシーに従ってｉＳＣＳＩイニシエータにおいて１つ以上のＰＤＵをシェーピングするための手段を含む。また、システムは、ＱｏＳポリシーに従ってイニシエータにおけるＴＣＰレイヤにおいてシェーピングしたＰＤＵをマーキングするための手段を含む。
【００３７】
本発明の別の態様によれば、コンピュータ読み取り可能媒体ソフトウエア上で具現化されるコンピュータ・プログラムが提供される。このコンピュータ・プログラムは、ＱｏＳポリシーに従ってｉＳＣＳＩイニシエータにおいて１つ以上のＰＤＵをシェーピングするように動作する第１のセグメントを含む。第２のセグメントは、ＱｏＳポリシーン従ってシェーピングしたＰＤＵをイニシエータにおけるＴＣＰレイヤにおいてマーキングするように動作する。
【００３８】
代替的な実施形態では、プログラムは、ＩＰネットワークを介して、ターゲットにおいてＰＤＵを受信するように動作する第３のセグメントを含む。第４のセグメントは、ｉＳＣＳＩターゲットにおいて、ＱｏＳポリシーに従って、１つ以上の読み取りコマンドおよび１つ以上の書き込みコマンドをシェーピングし、これによって不従順トラヒックにＱｏＳを与えるように動作する。
【００３９】
これより、本発明の実施形態について、添付図面を参照して、一例として説明する。
【発明を実施するための最良の形態】
【００４０】
用語
・サービスのクラス（ＣｏＳ：Class ofService）
所与のレベルのサービス優先順位を有するクラスに同様のタイプのトラヒックをグループ化することによって、ネットワーク内等で、トラヒックを管理する方法。クラスは、トラヒック・ドメインに関連する１組の属性によって決定する（フィルタ仕様を参照のこと）。また、この言葉は、特定のサービス・クラスを指すために用いられる。
【００４１】
・コマンド記述子ブロック（ＣＤＢ：CommandDescriptor Block）
ＳＣＳＩコマンドおよびその属性を含むデータ構造。ＣＤＢは、ｉＳＣＳＩイニシエータからｉＳＣＳＩターゲットに、コマンドＰＤＵ内で送信される。ＣＤＢは、ＳＣＳＩアーキテクチャにおいて定義される。
【００４２】
・コマンドＰＤＵ
ＳＣＳＩコマンドの詳細、具体的にはＣＤＢを含むｉＳＣＳＩプロトコルでのＰＤＵ。また、コマンドＰＤＵは、即値データ・アウトを含む場合がある。
【００４３】
・コマンド・シーケンス番号
ｉＳＣＳＩプロトコルによってＳＣＳＩコマンドに関連付けられた数値。シーケンス番号は、ｉＳＣＳＩイニシエータによって割り当てられ、コマンドＰＤＵのフィールド内で搬送される。コマンド・シーケンス番号は、セッション全体を通して用いられ、セッションの全接続を通して、ターゲットにおけるコマンドの順次供給のために用いられる。ｉＳＣＳＩターゲットは、コマンド・シーケンス番号の順序で、コマンドをＳＣＳＩ実行エンジンに供給しなければならない。
【００４４】
・接続
イニシエータ・ノードとターゲット・ノードとの間のＴＣＰ接続。各接続は、１つのセッションに属する。１セッション内に多数の接続がある場合がある。各接続は、ｉＳＣＳＩプロトコルにおいて一意のｉｄを有する。また、接続は、ローカルＴＣＰポート番号によって各端末で識別することができる。各接続は、単一のサービス・クラスに関連付けられている。多数の接続を用いて、１セッション内で多数のサービス・クラスをサポートすることができる。
【００４５】
・接続忠誠（ConnectionAllegience）
双方向で、同一の接続を介して、個々のＳＣＳＩコマンドの全てのＰＤＵを送信するためのｉＳＣＳＩの要件。これは、コマンドＰＤＵ、データＰＤＵ、ならびに応答および制御ＰＤＵを含む。
【００４６】
・データ・イン（Data In）
ＳＣＳＩ読み取りコマンドのプロトコルの一部として、ターゲットからイニシエータに送信されるデータ。
【００４７】
・データ・アウト（Data-Out）
ＳＣＳＩ書き込みコマンドのプロトコルの一部として、イニシエータからターゲットに送信されるデータ。デーア・アウトは、ターゲットによって請求されるか、または請求がなくても与えられるものとすることができる。
【００４８】
・データＰＤＵ
データ・インまたはデータ・アウトを含むｉＳＣＳＩプロトコルにおけるＰＤＵ。
【００４９】
・区分化サービス（ＤｉｆｆＳｅｒｖ）
トラヒック分類に基づいて、インターネットにおいてスケーラブル・サービス区分化を実施するための標準規格（ＲＦＣ２４７４）。ＤｉｆｆＳｅｒｖは、インターネット・エンジニアリング・タスク・フォース（ＩＥＴＦ）のネットワーキング・ワーキング・グループによって定義される。
【００５０】
・フィルタ仕様
１組の属性であり、トラヒックのサービス・クラスを決定するために用いる。フィルタ仕様属性の例には、ＴＣＰ４タプル、ＬＵＮ、セッションｉｄ等が含まれる場合がある。
【００５１】
・フロー
ＤｉｆｆＳｅｒｖｅアーキテクチャによって区別可能なトラヒック・ストリームの最も小さい粒度（granularity）。
【００５２】
・フロー仕様
フローを記述する際に用いる１組のパラメータ。フロー仕様パラメータの例は、帯域幅要件、許容可能な最大遅延、損失率等を含む場合がある。各サービス・クラスは、それ自身のフロー仕様を有する。
【００５３】
・ジェネリックＳＣＳＩ実行エンジン
確定したＩ／Ｏリソースに関連付けられていないＳＣＳＩ実行エンジン。実行エンジンは、ローカルＳＣＳＩ  ＬＵにアクセスするか、または、ストレージ・エリア・ネットワーク（ＳＡＮ：storage area network）等の別のネットワークへのゲートウエイとして機能することができる。
【００５４】
・即値データ（Immediate Data）
ｉＳＣＳＩ書き込みコマンドＰＤＵの一部として送信されるデータ・アウト。これは、請求がなくても与えられるデータの第１の（または唯一の）部分を構成する。即値データは、イニシエータとターゲットとの間で交渉可能な最大サイズを有する。
【００５５】
・イニシエータ＊
ｉＳＣＳＩプロトコルにおけるクライアント。これは、ターゲットとして知られるサーバに要求を送信して、論理ユニットに保存されたデータにアクセスする。また、この言葉は、イニシエータの機能を実施するシステム・コンポーネント（ドライバ）を識別するために用いられる。また、この言葉は、ＳＣＳＩプロトコルにおけるクライアント、および、この機能を実施するシステム・コンポーネント（ドライバ）を指す。
【００５６】
・イニシエータ・ノード＊
ＳＣＳＩまたはｉＳＣＳＩイニシエータあるいはその両方の機能を具現化するネットワーク・ノード。
＊本明細書中では、「イニシエータ」という言葉は、文脈によって、総称的に、ｉＳＣＳＩイニシエータ、ＳＣＳＩイニシエータ、またはイニシエータ・ノードを指すことを注記しておく。
【００５７】
・ｉＳＣＳＩ
インターネットＳＣＳＩ。ＳＣＳＩプロトコルのＴＣＰへのトランスポートのマッピング。ｉＳＣＳＩでは、イニシエータおよびターゲットは、別個のネットワーク・ノード上に常駐し、ＴＣＰを介して送信されるＰＤＵによって通信を行う。ｉＳＣＳＩは、インターネット・エンジニアリング・タスク・フォース（ＩＥＴＦ）のインターネット・プロトコル・ストレージ（ＩＰＳ）ワーキング・グループによって定義された標準規格である。
【００５８】
・Ｉ−Ｔ−Ｌ連結
特定のイニシエータ、特定のターゲット、および特定の論理ユニット間の関係であり、ＳＣＳＩコマンドが供給される文脈を規定する。この言葉は、大まかにタスク・セットに関連している。
【００５９】
・論理ユニット（ＬＵ）
ターゲットにおいてアクセス可能なデータ・デバイスであり、これにおいてＳＣＳＩコマンドを実行する。各ターゲットは、多数の論理ユニットにアクセスすることができる。各論理ユニットは一意に識別可能である。
【００６０】
・論理ユニット番号（ＬＵＮ）
ターゲットにおいて各論理ユニットを識別する一意の番号。また、この言葉は、特定の論理ユニットを指すために用いられる。
【００６１】
・マーキング
規定されたポリシーに基づいて、パケットのＩＰヘッダ内のＴＯＳバイトを設定するプロセス。
【００６２】
・不従順イニシエータ
不従順トラヒックを発生させるｉＳＣＳＩイニシエータ。
【００６３】
・不従順トラヒック
特定のサービス・クラスのフロー仕様に従わないトラヒック。
【００６４】
・ポリシー
ネットワーク内等で、どのようにリソースをカスタマ間で共有するかを規定する、公式の１組のステートメント。
【００６５】
・プロトコル・データ・ユニット（ＰＤＵ）
ｉＳＣＳＩプロトコルの一部として、イニシエータからターゲットに、またはその逆に送信されるメッセージ。ＰＤＵは、コマンド、応答、制御情報、およびデータを含む。
【００６６】
・ＳＣＳＩ
スモール・コンピュータ・システム・インタフェース。Ｉ／Ｏデバイス、特にストレージ・デバイスと通信を行うプロトコル・ファミリ。ＳＣＳＩは、情報技術規格委員会（ＮＣＩＴＳ：National Committee for Information Technology Standards）のＴ１０技術委員会によって定義された標準規格である。これによって提供されるクライアント／サーバ・アーキテクチャでは、クライアント（イニシエータと呼ぶ）がサーバ（ターゲットと呼ぶ）にコマンドを送信して、データの読み取りおよび書き込み等のＩ／Ｏサービスを実行する。
【００６７】
・ＳＣＳＩ実行エンジン
ターゲット・ノードにおけるコンポーネント。ＳＣＳＩ実行エンジンは、ｉＳＣＳＩターゲットから、コマンドＰＤＵから抽出されたＳＣＳＩコマンドを受信し、コマンドを実行のため渡す責任がある。
【００６８】
・サービス・レベル契約（ＳＬＡ）
サービス・プロバイダとカスタマとの間で、通常は測定可能な条件で、サービス・プロバイダがカスタマにどのサービスを与えるかを指定する取り決め。
【００６９】
・サービス・レベル契約（ＳＬＡ）サーバ
ＳＬＡを維持し、それらをポリシーに翻訳することができるネットワーク上のノード。ＳＬＡサーバは、ポリシーを他のネットワーク・ノードに広める責任がある。
【００７０】
・セッション
ｉＳＣＳＩプロトコルにおける特定のイニシエータと特定のターゲットとの間の関連。１つのセッションは、１つ以上の接続から成る。セッションは、イニシエータに、ターゲットにおいてアクセス可能なＬＵ集合の不変のビューを提供する。ＳＣＳＩコマンドは、ターゲットにおいて、セッション全体に渡って順次供給され、コマンド・シーケンス番号によって実施される。各セッションは１組の属性を有し、これはプロトコルを支配し、イニシエータとターゲットとの間で交渉可能である。各セッションは、セッションの各側で一意の識別子によって識別される。各イニシエータとターゲットとの間で、多数のセッションがある場合がある。
【００７１】
・シェーピング
サービス・クラス内でトラヒックを遅延させて、定義したフロー仕様に従わせるプロセス。
【００７２】
・請求データ
ターゲットからの請求に応答して送信されるデータ・アウト。請求は、ターゲットからの（Ｒ２Ｔ）ＰＤＵを送信するための要求の形態である。所与の書き込みコマンドのために多数のＲ２Ｔが存在し、その各々が異なるデータ部分を請求する場合がある。Ｒ２Ｔの数および各データ部分のサイズは、ターゲットによって決定される。
【００７３】
・ターゲット＊＊
ｉＳＣＳＩプロトコルにおけるサーバ。これは、ＬＵ集合に対するアクセスを与える。ターゲットは、クライアント（イニシエータと呼ぶ）から要求を受信する。また、この言葉は、ターゲットの機能を実施するシステム・コンポーネント（ドライバ）を識別するために用いられる。また、この言葉は、ＳＣＳＩプロトコルにおけるサーバおよびこの機能を実施するシステム・コンポーネント（ドライバ）を指す。
【００７４】
・ターゲット・ノード＊＊
ＳＣＳＩまたはｉＳＣＳＩターゲットあるいはその両方の機能を具現化するネットワーク・ノード。
＊＊本明細書中では、「ターゲット」という言葉は、文脈によって、総称的に、ｉＳＣＳＩターゲット、ＳＣＳＩターゲット、またはターゲット・ノードを指すことを注記しておく。
【００７５】
・タスク
インシエータから発するｉＳＣＳＩ要求であり、ターゲットからの応答を待つ。また、この言葉は、ＳＣＳＩアーキテクチャにおいて定義されたように、進行中のＳＣＳＩコマンドまたはＳＣＳＩコマンドのリンク・リストを指す。
【００７６】
・タスク・セット
同一の論理ユニットにアクセスするタスク集合。ターゲットにおける構成に応じて、各ＬＵごとに、全イニシエータからのタスクを含む単一タスク・セット、または、イニシエータごとに別個のタスク・セットが存在する。後者は、Ｉ−Ｔ−Ｌ連結に対応する。
【００７７】
・サービス・タイプ（ＴＯＳ）バイト
ＤＩｆｆＳｅｒｖに一致して解釈された場合、ＩＰバージョンの４ヘッダ「サービス・タイプ」オクテット・フィールド、またはＩＰバージョンの６「トラヒック・クラス」オクテット・フィールド。
【００７８】
・請求なしで与えられるデータ
ターゲットからの請求を待たずに送信されるデータ・アウト。請求なしで与えられるデータは、交渉可能な最大サイズを有し、１つ以上のデータＰＤＵ内で送信される。請求なしで与えられるデータの第１の部分は即値データである。
【００７９】
本発明の説明
ここで図１を参照すると、ｉＳＣＳＩ環境等のネットワーク・ストレージ環境のためのサービスの質（ＱｏＳ）アーキテクチャおよびシステム１０が示されている。ＱｏＳ１０は、ｉＳＣＳＩトラヒック用のエンド・ツー・エンドのサービスの質のための技法およびプロトコルを提供することができる。
【００８０】
説明の明確さのため、ｉＳＣＳＩによって、ＴＣＰ上へのＳＣＳＩプロトコルのトランスポートを可能とすることを注記しておく。本発明は、ｉＳＣＳＩ環境内で説明するが、本発明は、ネットワーク・ストレージ機能を提供する他の技法またはプロトコルに適用可能であることは、当業者には明らかである。
【００８１】
本発明の好適な実施形態は、ｉＳＣＳＩ環境において用いるために、既存のネットワーキングＱｏＳ技法を適合させるが、大きな方法上の相違がある。従来技術のＱｏＳシステムによって対処されていないがＱｏＳシステム１０によって対処される大きな問題のいくつかは、以下のものである。
【００８２】
１）ｉＳＣＳＩのためのエンド・ツー・エンドＱｏＳには、ネットワーク・リソースおよびＩ／Ｏリソースを含む多数のタイプのリソースが関与する。Ｉ／Ｏリソースは、論理ユニットとすることができる。従来技術のＱｏＳ技法は、典型的にネットワーク・リソースである１つのみのタイプのリソースに対処した。
【００８３】
２）ＩＰネットワークを介したＳＣＳＩトラヒックのトランスポートでは、ネットワークのためのＱｏＳに、以下のような固有の課題が生じる。
ａ）厳密な時間感度。ｉＳＣＳＩトラヒックは通常、ＳＣＳＩ性能要件のため、他のＩＰネットワーク・トラヒックよりも応答時間に敏感である。ネットワークを介したストレージ・トラヒックのトランスポートでは、余分な遅延および潜在的なデータ損失が加わる場合があり、これらは双方とも応答時間に影響を与える。
ｂ）長時間続く通信セッション。典型的なネットワーク接続の使用は短時間である。これに対して、ｉＳＣＳＩセッションの接続は、長時間持続することを意図している。
ｃ）ｉＳＣＳＩトラヒックは双方向である。ＩＰネットワークにおいて、通常、重いトラヒックのほとんどは、サーバからクライアントへの一方向である。１例として、サーバからクライアントへのダウンロードの形態である。
【００８４】
従来技術のＱｏＳ技法は、２ａ）、ｂ）、およびｃ）の項に記載した固有の問題のいずれにも対処しない。
【００８５】
３）ｉＳＣＳＩプロトコルの要件に対する依存性。従来技術では、ネットワーキングＱｏＳ技法およびプロトコルは、ＴＣＰレイヤにおいて実施される。下に詳述する理由により、ｉＳＣＳＩ要件のため、ＴＣＰレイヤにおいてｉＳＣＳＩのための全てのＱｏＳ技法およびプロトコルを実施することはできない。
【００８６】
４）ｉＳＣＳＩイニシエータは、サービス・レベル契約に従わない場合がある。ｉＳＣＳＩの分散型環境において、いくつかのイニシエータはＱｏＳポリシーに従わないことがあり、または、ＱｏＳが全く実施されていない場合さえある。かかるイニシエータは、ターゲットをコマンドＰＤＵでいっぱいにし、ターゲットにおいてＩ／Ｏ輻輳を引き起こすことがある。ターゲットは、この状況を防ぐＱｏＳ方法を有しなければならない。従来技術では、宛先は不従順ソースを追跡しない。
【００８７】
本発明の好適な実施形態は、フィルタおよびフロー仕様のためにＤｉｆｆＳｅｒｖ技法およびプロトコルを適合させる。本発明は、新たなフィルタ仕様属性および新たなフロー仕様パラメータを追加的に識別している。
【００８８】
好適な実施形態において、多数のＱｏＳコンポーネントは、各々、ｉＳＣＳＩトラヒックの一部を処理することができる。このため、各ＱｏＳコンポーネントは、ｉＳＣＳＩトラヒックのエンド・ツー・エンド経路に沿って異なるリソースに位置付けることができ、更に、コマンド、データ・イン、およびデータ・アウト等、特定のタイプのトラヒックを処理することができる。
【００８９】
以下に詳しく述べるように、ＱｏＳコンポーネントのレイアウトは、ｉＳＣＳＩに対する依存性によって影響を受ける場合がある。ＱｏＳ動作のあるものはＴＣＰレイヤで行うことができ、ＱｏＳ動作の他のものはｉＳＣＳＩコンポーネントで行うことができる。
【００９０】
当業者には明らかであるように、本発明のＱｏＳ技法は、全てのトラヒックをＴＣＰレイヤで処理する従来技術のネットワークＱｏＳ技法とは異なる。
【００９１】
再び図１を参照すると、ＱｏＳシステム１０は、イニシエータ・ノード２０、ターゲット・ノード３０、およびＳＬＡサーバ４０を含む。ＱｏＳ１０における要素は、ＩＰネットワーク４６を介して通信を行う。明確さのため、図１は１つのみのイニシエータ・ノード２０および１つのターゲット・ノード３０を示すが、ＱｏＳは、多くのイニシエータ・ノード２０または多くのターゲット・ノード３０あるいはその両方を含む場合があり、その場合も本発明の原理内であることは、当業者には明らかである。ＳＬＡサーバ４０は、１つ以上のイニシエータ２０および１つ以上のターゲット３０と通信を行う別個のサーバとすることができる。ＳＬＡサーバは、当技術分野の要素において公知であり、本明細書中においてこれ以上は論じないことを注記しておく。
【００９２】
イニシエータ・ノード２０は、ＳＣＳＩイニシエータ・コンポーネント２２、ｉＳＣＳＩイニシエータ・コンポーネント２４、ＱｏＳシェーピング・コンポーネント２６、ＱｏＳマーキング・コンポーネント２８、およびＴＣＰレイヤ３２を含むことができる。ターゲット・ノード３０は、ＳＣＳＩ実行エンジン・コンポーネント４２、ｉＳＣＳＩターゲット・コンポーネント４４、ＴＣＰレイヤ３４、ならびにＱｏＳコンポーネント３６および３８を含むことができる。
【００９３】
イニシエータ・ノード２０とターゲット・ノード３０との間で、セッションを確立することができる。図１には１つのみのセッションを示すが、各イニシエータ・ノード２０と各ターゲット・ノード３０との間には多数のセッションが存在する場合があり、その場合も本発明の真の精神および原理内であることは、当業者には明らかである。
【００９４】
ＱｏＳ１０は、２つのタイプのリソースすなわちネットワークおよびＩ／ＯのためのＱｏＳポリシーを用いる。イニシエータ２０におけるシェーピング・コンポーネント２６は、双方のタイプのリソースを処理することができることを注記しておく。更に、ＱｏＳコンポーネント３６および３８は、各々、１つのタイプのリソースを処理することができることにも留意するべきである。ＱｏＳ３６はネットワーク・リソースを処理し、ＱｏＳ３８はＩ／Ｏリソースを処理する。また、イニシエータにおいて用いるＱｏＳポリシーは、ターゲットにおいて用いるＱｏＳと同一のものかまたは異なるものであり得ることも注記しておく。
【００９５】
いくつかの好適な実施形態では、ＳＣＳＩ実行エンジン４２は、ジェネリックなものとすることができる。ＳＣＳＩ実行エンジン４２が、ストレージ・エリア・ネットワーク（ＳＡＮ）等の別のネットワークへのゲートウエイである場合、ＳＣＳＩ実行エンジン４２は、他のネットワークにおけるＱｏＳの実施を継続させる責任を有することができる。
【００９６】
従来技術の実施形態では、ＱｏＳシェーピングおよびマーキングが双方ともＴＣＰレイヤにおいて行われることを注記しておく。本発明の好適な実施形態では、イニシエータ・ノードにおけるシェーピングは、ＴＣＰからｉＳＣＳＩイニシエータ内へ移ることができる。シェーピングは、ＱｏＳポリシーとｉＳＣＳＩプロトコル要件との間の潜在的な競合状況を解決するため、ＴＣＰの前に実行される。これについては、以下で充分に説明する。次いで、ＴＣＰにおいて、マーキングが実行される。
【００９７】
また、ターゲット・ノードでは、かかる潜在的な競合状況は存在しないことを注記しておく。このため、シェーピングおよびマーキングは双方ともＴＣＰにおいて実行することができる。
【００９８】
以下に列挙した図は、ｉＳＣＳＩトラヒック・フローを表す。
１）図２は、イニシエータ２０とターゲット３０との間のセッションを示す。図２は、更に、イニシエータ２０からターゲット３０へのＳＣＳＩ読み取り／書き込みコマンドのフローを示す。
２）図３は、イニシエータ２０とターゲット３０との間のセッションを示す。図３は、更に、イニシエータ２０からターゲット３０へのデータ・アウトＰＤＵのフローを示す。
３）図４は、イニシエータ２０とターゲット３０との間のセッションを示す。図２は、更に、ターゲット３０からイニシエータ２０へのデータ・インＰＤＵのフローを示す。
【００９９】
イニシエータ２０からターゲット３０へのコマンドＰＤＵのトラヒック・フロー
ここで図２を参照すると、イニシエータ２０とターゲット３０との間のセッションが示され、ＳＣＳＩ読み取りおよび書き込みコマンドの例示的なトラヒック・フローが重ねて図示されている。
【０１００】
ＳＣＳＩコマンドは、ＳＣＳＩイニシエータ２２で発生する。次いで、コマンドを、ｉＳＣＳＩイニシエータ２４に渡すことができる（矢印５０）。ｉＳＣＳＩイニシエータ２４は、各コマンドをＰＤＵに圧縮し、次いで、コマンドＰＤＵを、シェーピングのため、ＱｏＳシェーピング・コンポーネント２６に渡すことができる。
【０１０１】
当技術分野において公知のように、シェーピング・コンポーネント２６はＴＣＰでなくｉＳＣＳＩにあることに留意すべきである。ＴＣＰの前にｉＳＣＳＩにおいてシェーピングを実行するここでの目的は、ＱｏＳポリシーとｉＳＣＳＩプロトコル要件との間の潜在的な競合状況を解決することである。これについて以下で説明する。
【０１０２】
ｉＳＣＳＩイニシエータ２４によってＴＣＰに送信されたコマンドＰＤＵは、コマンド・シーケンス番号を有する。コマンド・シーケンス番号は、同一セッションの多数の接続に渡って、ターゲット３０においてコマンドを順次供給するために用いられる。もしもイニシエータにおけるシェーピングがＴＣＰにおいて行われると、コマンド・シーケンス番号の小さいコマンドＰＤＵは、ＴＣＰにおいて、遅いサービス・クラスに関連した接続上で引き止められる場合がある。一方で、シーケンス番号の大きい他のコマンドＰＤＵが、速いサービス・クラスを有する接続を介してｉＳＣＳＩターゲット４４に到着することがある。シーケンス番号の順序のため、後者の、速いネットワーク・サービス・クラスを有するコマンドを、ｉＳＣＳＩターゲット４４において遅らせて、遅いネットワーク・サービス・クラスを有する前者のコマンドを待つ。この挙動により、性能の劣化が生じ、ＱｏＳの目的が果たされないことがある。
【０１０３】
この潜在的な競合状況を解決するため、コマンド・シーケンス番号を割り当てる前に、イニシエータ２０においてシェーピングを実行する。本発明の好適な実施形態では、シェーピング・コンポーネント２６は、ｉＳＣＳＩイニシエータ２４内に配置する。
【０１０４】
本発明において、コマンドＰＤＵは、Ｉ／ＯリソースのためのＱｏＳポリシーに従ってシェーピングされる。コマンドＰＤＵが即値データも含む場合、ＰＤＵは、ネットワーク・リソースのためのＱｏＳポリシーに従って、更にシェーピングされる。
【０１０５】
次いで、ｉＳＣＳＩイニシエータ２４は、コマンドＰＤＵをＴＣＰレイヤ３２に送信することができる（矢印５２）。次いで、ＴＣＰレイヤ３２は、トラヒックを、ＱｏＳマーキング・コンポーネント２８に送信することができる（矢印５４）。
【０１０６】
マーキングされたトラヒックは、ＴＣＰレイヤ３２に戻すことができる（矢印５６）。当技術分野において公知のプロセスとして、ＴＣＰレイヤ３２は、ＩＰネットワーク４６を介して、コマンドＰＤＵをターゲット３０に送信することができる（矢印５８）。
【０１０７】
次いで、ターゲット３０のＴＣＰレイヤ３４は、コマンドＰＤＵを受信することができる（矢印６０）。ＴＣＰレイヤ３４は、コマンドＰＤＵをｉＳＣＳＩターゲット４４に送ることができる（矢印６２）。ｉＳＣＳＩターゲット４４は、ＳＣＳＩコマンドを抽出して、それらをシェーピングのためＱｏＳコンポーネント３８に渡すことができる。ＱｏＳコンポーネント３８は、コマンドをＳＣＳＩ実行エンジン４２に送る前に、コマンドをシェーピングすることができる。コマンドは、すでにＱｏＳシェーピング・コンポーネント２６によってシェーピングされている場合があるが、その場合も、それらを、シェーピングのためＱｏＳコンポーネント３８に渡すことができることを注記しておく。これは、本発明によって対処される問題の第４項に上述したように、不従順イニシエータが潜在的に存在するためである。ｉＳＣＳＩターゲット４４は、適格および不従順トラヒックを区別することができないので、到着した全コマンドＰＤＵをシェーピングのために渡さなければならない。
【０１０８】
ＱｏＳシェーピング・コンポーネント２６によってすでにシェーピングされた適格イニシエータ２０からのコマンドは、ＱｏＳコンポーネント３８における追加のシェーピングによって影響されないで済むことを注記しておく。
【０１０９】
次いで、ｉＳＣＳＩターゲット４４は、適切な順序で、コマンドをＳＣＳＩ実行エンジン４２に供給することができる（矢印６４）。
【０１１０】
本例示は、ＴＣＰレイヤ３２とは別個のものとしてＱｏＳマーキング・コンポーネント２８を示すことを注記しておく。しかしながら、代替的な実施形態では、ＱｏＳマーキング・コンポーネント２８は、ＴＣＰレイヤ３２内に存在することができ、この場合も本実施形態の原理内とすることができる。
【０１１１】
更に、マーキング・コンポーネント２８は、ｉＳＣＳＩ以外のアプリケーションからのトラヒックを含めて、イニシエータ・ノード２０から出立する全ネットワーク・トラヒックをマーキングする責任があることを注記しておく。更に、イニシエータ・ノード２０は、ＴＣＰレイヤにおいて第２のシェーピング・コンポーネント（図示せず）を含むことができる。第２のシェーピング・コンポーネントは、ｉＳＣＳＩ以外のアプリケーションのネットワーク・トラヒックをシェーピングする責任を有する場合がある。上述の代替案が本発明の真の精神および範囲内に含まれることは認められよう。
【０１１２】
イニシエータ２０からターゲット３０へのデータ・アウトＰＤＵのトラヒック・フロー
ここで図３を参照すると、イニシエータ２０とターゲット３０との間のセッションが例示され、データ・アウトＰＤＵの例示的なトラヒック・フローが重ねて図示されている。
【０１１３】
データ・アウトは、ＳＣＳＩイニシエータ２２で発生する。イニシエータ２２は、これをｉＳＣＳＩイニシエータ２４に渡すことができる（矢印７０）。ｉＳＣＳＩイニシエータ２４は、データ・アウトＰＤＵを生成し、データ・アウトＰＤＵは、次いで、シェーピングのためＱｏＳシェーピング・コンポーネント２６に渡すことができる。
【０１１４】
ＱｏＳシェーピング・コンポーネント２６は、データ・アウトＰＤＵをＴＣＰレイヤ３２に送ることができる（矢印７２）。ＴＣＰレイヤ３２は、トラヒックをマーキングのためＱｏＳマーキング・コンポーネント２８に渡すことができる（矢印７４）。次いで、ＱｏＳマーキング・コンポーネント２８は、マーキングしたトラヒックをＴＣＰ３２に戻すことができ（矢印７６）、ＴＣＰ３２は、データ・アウトＰＤＵを、ＩＰネットワーク４６を介してターゲット３０に送信することができる（矢印７８）。
【０１１５】
ＴＣＰレイヤ３４は、データ・アウトＰＤＵを受信し（矢印８０）、それらをｉＳＣＳＩターゲット４４に供給することができる（矢印８２）。ｉＳＣＳＩターゲット４４は、ＰＤＵからデータを抽出し、データは次いでＳＣＳＩ実行エンジン４２に渡すことができる（矢印８４）。
【０１１６】
ターゲット３０からイニシエータ２０へのデータ・インＰＤＵのトラヒック・フロー
ここで図４を参照すると、イニシエータ２０とターゲット３０との間のセッションが例示され、データ・インＰＤＵの例示的なトラヒック・フローを重ねて図示されている。
【０１１７】
データ・インは、ＳＣＳＩ  ＬＵ（図示せず）で発生する。本実施形態では、ＳＣＳＩ実行エンジン４２は、データ・インをｉＳＣＳＩターゲット４４に渡すことができる（矢印９０）。ｉＳＣＳＩターゲット４４は、データ・インＰＤＵを生成し、データ・インＰＤＵをＴＣＰレイヤ３４に送ることができる（矢印９２）。
【０１１８】
従来技術のネットワークＱｏＳ環境において公知のように、ＴＣＰレイヤ３４は、次いで、ターゲットにおいてネットワーク・トラヒックをシェーピングしマーキングすることができる。従って、ＴＣＰレイヤ３４は、シェーピングおよびマーキングのため、データ・インＰＤＵをＱｏＳコンポーネント３６に渡すことができる（矢印９４）。
【０１１９】
ターゲット・ノード３０におけるネットワーク・フィルタ仕様は、イニシエータ・ノード２０におけるよりも単純であり得ることを注記しておく。これは、ｉＳＣＳＩ接続忠誠の要件のため、および、各接続が各方向において１つのみのサービス・クラスを有することができるからである。イニシエータは、各コマンドごとに接続を選択する責任があり、ターゲットは、コマンドの全トラヒックのためにこの接続を用いなければならない。従って、ターゲットにおけるサービス・クラスは、単に、接続の識別証またはイニシエータの識別証から決定することができる。
【０１２０】
ＱｏＳコンポーネント３６は、次いで、シェーピング／マーキングしたトラヒックをＴＣＰレイヤ３４に戻すことができる（矢印９６）。ＴＣＰレイヤ３４は、データ・インＰＤＵを、ＩＰネットワーク４６を介してイニシエータ２０に送ることができる（矢印９８）。
【０１２１】
ＴＣＰレイヤ３２は、データ・インＰＤＵを受信して（矢印１００）、それらをｉＳＣＳＩイニシエータ２４に供給することができる（矢印１０２）。ｉＳＣＳＩイニシエータ２４は、ＰＤＵからデータを抽出して、データ・インをＳＣＳＩイニシエータ２２に供給することができる（矢印１０４）。
【０１２２】
本例示は、ＱｏＳコンポーネント３６を、ＴＣＰレイヤ３４とは別個のものとして示していることを注記しておく。しかしながら、代替的な実施形態では、ＱｏＳマーキング・コンポーネト３６は、ＴＣＰレイヤ３４内に存在することができ、その場合も本実施形態の原理内である。
【０１２３】
更に、いくつかの実施形態では、ＱｏＳコンポーネント３６は、ｉＳＣＳＩ以外のアプリケーションからのトラヒックを含めて、ターゲット・ノード３０から出立する全ネットワーク・トラヒックのシェーピングおよびマーキングに責任を有する場合がある。
【０１２４】
多数のネットワーク・サービス・クラス
各ＴＣＰ接続は、各方向において１つのみのサービス・クラスに関連付けることができる。１セッション内で多数のサービス・クラスを提供するためには、多数の接続を用いれば良い。
【０１２５】
いくつかの実施形態では、ｉＳＣＳＩイニシエータ２４またはｉＳＣＳＩターゲット４４は、１セッションにつき多数の接続をサポートすることができない場合がある。代替案として、各サービス・クラスごとに別個のセッションを使用可能である。
【０１２６】
イニシエータ２０において用いられるオペレーティング・システム環境またはファイル・システムによって、多数のセッションがばらばらのＬＵにアクセスすることを必要とする制限が加わる場合があることを注記しておく。この場合、同一のイニシエータから同一のＬＵにアクセスするために多数のネットワーク・サービス・クラスを用いることは不可能なことがある。
【０１２７】
同一論理ユニットのための多数のＩ／Ｏサービス・クラス
ＳＣＳＩアーキテクチャは、各Ｉ−Ｔ−Ｌ連結ごとに別個のタスク・セットを用いるように論理ユニットを構成する能力を与える。従って、本発明の好適な実施形態は、同一ＬＵのために多数のＩ／Ｏサービス・クラスを規定することができる。各Ｉ−Ｔ−Ｌ連結のタスク・セットには、その読み取りコマンドおよび書き込みコマンドによって、異なるＩ／Ｏサービス・クラスを割り当てることができる。あるいは、同一ＬＵの多数タスク・セット間でＩ／Ｏサービス・クラスを共有することが可能な場合があり、これによって、いくつかの異なるイニシエータからのトラヒックに、ターゲットにおける同一のＩ／Ｏクラスを与える。
【０１２８】
Ｉ／Ｏフロー過剰
システム１０の集中的な性質のため、イニシエータにおいてＩ／Ｏフロー仕様に従うコマンドＰＤＵが、ターゲットに到着した際に不従順であるという状況があり得る。集中的な挙動を円滑にするため、本発明のいくつかの実施形態では、選択したＩ／Ｏサーイス・クラスにおいてＩ／Ｏフロー過剰を許容する場合がある。ターゲット３０においてＱｏＳコンポーネント３８が用いるＩ／Ｏフロー仕様は、過剰バイト・レートおよび過剰Ｉ／Ｏレートのためのパラメータを含むことができる。
【０１２９】
ターゲットにおける不従順コマンドは、「タスク・セット・フル（task-set full）」または「ビジー（busy）」エラーによって、ＱｏＳコマンド３８によって拒絶される場合があることを注記しておく。これらのエラーは、できるだけ阻止しなければならない。Ｉ／Ｏフロー過剰パラメータは、システムおよびネットワーク変動によって生じる一時的な不適合を補償することができる。Ｉ／Ｏフロー過剰は、ＱｏＳを全く用いないイニシエータを補償しない。
【０１３０】
フィルタ仕様およびフロー仕様
フィルタ仕様属性は、ＱｏＳが存在する場合にｉＳＣＳＩフローの区分化に影響を与えるように選択することができる。かかるフィルタ属性の例には、ＴＣＰ４タプル（イニシエータおよびターゲットＩＰアドレスおよびポート）、ＬＵＮ、イニシエータ・ユーザＩＤ、セッションＩＤ、アプリケーション識別属性、動作時間等が含まれる。上に列挙したものは、単に例示であり、限定することを意図しない。記載していないがｉＳＣＳＩフローの性能に影響を与え得る他のフィルタ属性も、本発明の範囲内に含まれることは認められよう。
【０１３１】
いくつかの実施形態では、フィルタ属性に冗長性があり得ることを注記しておく。１例として、４タプルを指定する場合、セッションｉｄは冗長である場合がある。それにもかかわらず、冗長性を用いて、サービス・クラスを割り当てる場合にパターンを支持することができる。１例として、１セッション内の全接続に同一クラスを割り当てることができる。分類方法において、属性のサブセットまたは各属性ごとの値の範囲を用いることができる。
【０１３２】
ＱｏＳ１０は、ネットワーキング・リソースおよびＩ／Ｏリソースのために別個のフロー仕様を用いることができる。
【０１３３】
ネットワーキングでは、ＤｉｆｆＳｅｒｖのために規定したもの等、標準的なフロー仕様パラメータを用いることができる。ネットワーク・フロー・パラメータの例は、平均バイト・レート、ピーク・バイト・レート、バースト・サイズを含むことができる。
【０１３４】
Ｉ／Ｏでは、既存の規格はない。ＱｏＳ１０の好適な実施形態は、ＳＣＳＩ実行エンジン４２のＩ／Ｏリソースの共有に影響を与えるフロー仕様パラメータを選択することができる。フロー・パラメータの例は、バイト・レート、Ｉ／Ｏレート、Ｉ／Ｏフロー過剰等を含むことができる。上に列挙したものは単に例示であり、限定することを意図しない。記載していないがＳＣＳＩ実行エンジン４２の共有に影響を与え得る他のフロー仕様パラメータも、本発明の範囲内に含まれることは認められよう。
【０１３５】
イニシエータにおいて用いられるフィルタ仕様属性もしくはフロー仕様パラメータまたはその双方のいくつかは、ターゲットで用いられるものとは異なる場合があることを注記しておく。
【０１３６】
Ｉ／Ｏレートおよびバイト・レートは、ランダム・アクセスと順次アクセスとの間のトレードオフを与えることがあることを注記しておく。ランダム・アクセスは、通常、小さいデータ長によって特徴付けられ、主にＩ／Ｏレートによって制約される。一方、順次アクセスは、通常、大きいデータ長によって特徴付けられ、主にバイト・レートによって制約される。
【０１３７】
本明細書中に記載した実施形態は、ｉＳＣＳＩもしくはＴＣＰ／ＩＰまたはその双方のソフトウエアおよびハードウエア実施、ならびに、ソフトウエアおよびハードウエア実施のいずれかの組み合わせに適用される。更に、１つのノードは、２つ以上のインタフェース・カードまたは２つ以上のネットワーク・リンクを有する場合がある。また、同一セッションにおけるイニシエータとターゲットとの間の多数の接続は、異なるＩＰアドレスを用いる場合がある。これらの全ての変形は、本発明の真の精神および範囲内に含まれる。
【０１３８】
本明細書中に開示した方法、装置、およびシステムは、特定のコンピュータ・ハードウエアまたはソフトウエアを参照して記載した場合もあり、そうでない場合もあるが、本明細書中に開示した方法、装置、およびシステムは、従来技法を用いたコンピュータ・ハードウエアまたはソフトウエアにおいて容易に実施可能であることは認められよう。
【０１３９】
本発明について、１つ以上の具体的な実施形態を参照して説明したが、この説明は、全体として本発明を例示することを意図し、図示した実施形態に本発明を限定するものと解釈されるべきではない。当業者は、本明細書中に具体的に示さないが本発明の真の精神および範囲内である様々な変形を認識していることは認められよう。
【図面の簡単な説明】
【０１４０】
【図１】本発明の１実施形態に従って構成および動作させる、ネットワーク・ストレージ環境のためのサービスの質（ＱｏＳ）アーキテクチャおよびシステムのブロック図である。
【図２】本発明の１実施形態に従って構成および動作させる、イニシエータとターゲットとの間のセッションのブロック図であり、イニシエータからターゲットへのコマンド・プロトコル・データ・ユニット（ＰＤＵ）のトラヒック・フローを例示する。
【図３】本発明の１実施形態に従って構成および動作させる、イニシエータとターゲットとの間のセッションのブロック図であり、イニシエータからターゲットへのＰＤＵのトラヒック・フローを例示する。
【図４】本発明の１実施形態に従って構成および動作させる、イニシエータとターゲットとの間のセッションのブロック図であり、ターゲットからイニシエータへのＰＤＵのトラヒック・フローを例示する。
【図１】
0004474286.tif 000002
【図２】
0004474286.tif 000003
【図３】
0004474286.tif 000004
【図４】
0004474286.tif 000005