QoS の構成

この章では、すべてのスイッチで提供される QoS 機能の詳細について説明します。

Quality of Service(QoS)には、次の利点があります:

  • アプリケーション トラフィックに相対的な帯域幅保証を提供します。
  • アプリケーション トラフィックで発生する遅延を制御します。
  • 帯域幅と遅延を区別することで、あるアプリケーションを別のアプリケーションよりも優先します(たとえば、バルク トラフィックよりもトランザクション トラフィックを優先する)。

コントロール トラフィックに関する情報

Cisco MDS 9000 シリーズは、内部および外部で生成された制御トラフィックの QoS をサポートします。スイッチ内では、制御トラフィックはスーパーバイザ モジュールに送信され、高優先順位フレームとして扱われます。[高(high)] の優先順位ステータスは、他のすべてのトラフィックよりも絶対的な優先順位を持ち、次の場合に割り当てられます。

  • 内部で生成されたタイムクリティカルな制御トラフィック(ほとんどがクラス F フレーム)。
  • 別のベンダーのスイッチから Cisco MDS 9000 シリーズのスイッチに入る外部で生成されたタイムクリティカルな制御トラフィック。他のベンダーのスイッチから発信された高い優先順位フレームは、Cisco MDS 9000 シリーズのスイッチに入るときに高い優先順位としてマークされます。

制御トラフィックの有効化または無効化

デフォルトでは、特定の重要な制御トラフィックの QoS 機能が有効になっています。これらの重要な制御フレームには、最高(絶対)の優先順位が割り当てられます。


Tip


このコマンドを発行すると、すべての重要な制御トラフィックに最も低いプライオリティが自動的に割り当てられるため、この機能を有効化にすることは推奨しません。


制御トラフィックの高優先順位の割り当てを無効にするには、次の手順を実行します。

Procedure


Step 1

構成モードに入ります。

switch# configure terminal

Step 2

制御トラフィック QoS 機能を有効化にします。

switch(config)# no qos control priority 0

Step 3

制御トラフィックの QoS 機能を無効化にします。

switch(config)# qos control priority 0


コントロール トラフィック情報を表示します

重要な制御トラフィックの QoS 構成の現在の状態を表示するには、 show qos statistics コマンドを使用します。このコマンドは、現在の QoS 設定と、高い優先順位とマークされたフレームの数を表示します。カウントはデバッグ専用であり、構成できません。

次に、現在の QoS 設定を表示する例を示します


switch# show qos statistics
Total number of FC frames transmitted from the Supervisor= 15767
Number of highest-priority FC frames transmitted         = 8224
Current priority of FC control frames = 0    (0 = lowest; 7 = highest)

データ トラフィックに関する情報

ボリュームが少なく、遅延の影響を受けやすいアプリケーションであるオンライン トランザクション処理(OLTP)では、要求された情報に迅速にアクセスする必要があります。バックアップ処理アプリケーションには高帯域幅が必要ですが、遅延の影響を受けません。サービスの差別化をサポートしていないネットワークでは、すべてのトラフィックが同じように扱われ、同様の遅延が発生し、同様の帯域幅が割り当てられます。Cisco MDS 9000 シリーズ スイッチの QoS 機能は、これらの保証を提供します。

データ トラフィックは、サービスの差別化の異なるレベル(低、中、高の優先順位)で優先順位を付けることができます。QoS を適用して、遅延の影響を受けやすいアプリケーションのファイバ チャネル データ トラフィックが、データ ウェアハウスなどのスループット集約型アプリケーションよりも高い優先順位を受け取るようにすることができます。

Figure 1. データ トラフィックの優先順位付け


上の図では、スイッチ 1 に着信する OLTP トラフィックは、高優先度レベルのスループット分類(クラスマップ)およびマーキング(ポリシーマップ)でマーキングされています。同様に、バックアップ トラフィックは低い 優先順位レベルでマークされます。トラフィックは仮想出力キュー(VOQ)内の対応する優先順位キューに送信されます。

最初のスイッチに設定された不足加重ラウンドロビン(DWRR)スケジューラにより、優先順位の高いトラフィックがプライオリティの低いトラフィックよりも適切に処理されます。たとえば、DWRR の重みが 70:20:10 の場合、高優先順位キューは低プライオリティ キューの 7 倍のレートで処理されます。これにより、輻輳が発生した場合に、優先順位の高いトラフィックに対する遅延の減少と帯域幅の増加が保証されます。2 番目のスイッチで同様の設定を行うと、反対方向のトラフィック処理が同じになります。

OLTP サーバーが要求を送信するときに ISL が輻輳している場合、要求は高優先度キューにキューイングされ、高優先度キューが輻輳していないため、ほとんどすぐに処理されます。スケジューラは、優先順位の低いキュー内のバックアップ トラフィックよりも優先順位を割り当てます。


Note


高優先順位キューを通過するトラフィックがない場合、低優先順位キューはすべての帯域幅を使用し、構成された値に制限されません。

スイッチ 2 で同様のイベントが発生すると、トランザクション要求に対する応答が送信されます。OLTP サーバーで発生するラウンド トリップ遅延は、優先順位の低いトラフィックの量や ISL の輻輳とは無関係です。バックアップ トラフィックは、OLTP トラフィックで使用されていない場合、使用可能な ISL 帯域幅を使用します。

VSAN とゾーンベース QoS の比較

同じスイッチでゾーンベースの QoS と VSAN ベースの QoS の両方を構成できますが、両方の構成には大きな違いがあります。次の表に、VSAN とゾーンに基づく QoS プライオリティの構成の違いを示します。

Table 1. QoS 構成の差異

VSAN ベースの QoS

ゾーンベースのQoS

特定の VSAN にアクティブ ゾーン セットを構成し、メンバー ゾーンのいずれかで QoS パラメータも構成した場合、ポリシー マップを VSAN に関連付けることはできません。

ポリシー マップがすでに関連付けられている VSAN でゾーン セットをアクティブにすることはできません。

ポリシー マップに関連付けられた 2 つのクラス マップに同じフローが存在する場合、最初にアタッチされたクラス マップの QoS 値が有効になります。

QoS 値が異なる特定のゾーン セット内の 2 つのゾーンに同じフローが存在する場合、QoS 値が高い方が考慮されます。

ゾーン マージ中に、Cisco NX-OS ソフトウェアが QoS パラメータの不一致を検出すると、リンクは分離されます。

QoS がイネーブルの場合にだけ有効です。

QoS が有効になっている場合にのみ有効になります。

データ トラフィックを構成

QoS を構成するには、次の手順に従ってください:

Procedure


Step 1

QoS 機能を有効化。

Step 2

クラス マップを作成および定義します。

Step 3

サービス ポリシーを定義します。

Step 4

設定を適用します。


QoS イニシエーション データ トラフィック

デフォルトでは、QoS データ トラフィック機能はデータ トラフィックに対して無効になっています。データ トラフィックの QoS を構成するには、最初にスイッチでデータ トラフィック機能を有効にする必要があります


Tip


QoS は相互運用性モードでサポートされます。詳細については、『Cisco MDS 9000 シリーズ スイッチ間相互運用性構成ガイド』を参照してください。


QoS データ トラフィック機能を有効にするには、次のステップに従います:

Procedure


Step 1

構成モードに入ります。

switch# configure terminal

Step 2

QoS の有効化。データ トラフィック パラメータを構成できるようになりました。

switch(config)# qos enable


クラス マップの作成に関する情報

クラス マップ機能を使用して、そのクラスに属するトラフィックを識別するための一致基準を持つトラフィック クラスを作成および定義します。クラス マップ名は 63 文字の英数字に制限されており、デフォルトは match-all オプションです。フローベースのトラフィックでは、次のいずれかの値を使用します:

  • WWN:送信元 WWN または宛先 WWN。
  • ファイバ チャネル ID(FC ID):送信元 ID(SID)または宛先 ID(DID)。mask に指定できる値は、FFFFFF(FC ID 全体が使用されます。これはデフォルトです)、FFFF00(ドメインとエリア FC ID のみが使用されます)、または FF0000(ドメイン FC ID のみが使用されます)です。

Note


0x000000 の SID または DID は許可されません。
  • 送信元インターフェイス:入力インターフェイス

Tip


クラス マップ内で照合されるエントリの順序は重要ではありません。


クラス マップの作成

class-map コマンドを使用して、そのクラスに属するトラフィックを識別するための一致基準を持つトラフィック クラスを作成および定義します。クラス マップ構成(switch(config-cmap))モードから match ステートメントで各一致基準を定義します。


Note


source-device-alias または destination-device-alias オプションの拡張モードはサポートされていません。

Note


IVR ゾーン セットおよび VSAN の QoS 属性はサポートされていません。
  • source-wwn オプションを使用して送信元 WWN を指定するか、 destination-wwn オプションを使用して宛先 WWN を指定します。
  • source-address オプションを使用して送信元 ID(SID)を指定するか、 destination-address オプションを使用して宛先 ID(DID)を指定します。
  • input-interface オプションを使用して、入力インターフェイスを指定します。
  • 分散デバイス エイリアスを指定するには、 destination-device-alias オプションを使用します。

クラス マップを作成する手順は、次のとおりです:

Procedure


Step 1

このクラス内のすべての一致ステートメントに対して論理 AND 演算子を指定します。フレームが構成されたすべての(デフォルトの)基準に一致すると、このクラスに認定されます。これがデフォルトです。

switch(config)# qos class-map MyClass match-all

Step 2

このクラス内のすべての一致ステートメントに対して論理 OR 演算子を指定します。フレームが構成された基準のいずれかに一致する場合、そのフレームはこのクラスの対象となります。

switch(config)# qos class-map MyClass match-any

Step 3

指定された宛先 FC ID を持つフレームの宛先アドレス一致を指定します。

switch(config-cmap)# match destination-address 0x12ee00

Step 4

指定された送信元 FC ID を持つフレームの送信元アドレスおよびマスク一致を指定します。

switch(config-cmap)# match source-address 0x6d1090 mask 0xFFFFFF

Step 5

フレームを照合する宛先 WWN を指定します。

switch(config-cmap)# match destination-wwn 20:01:00:05:30:00:28:df

Step 6

フレームを照合する送信元 WWN を指定します。

switch(config-cmap)# match source-wwn 23:15:00:05:30:00:2a:1f

Step 7

フレームを照合する宛先デバイス エイリアスを指定します。

switch(config-cmap)# match destination-device-alias DocDeviceAlias

Step 8

フレームを照合する送信元デバイス エイリアスを指定します。

switch(config-cmap)# match source-device-alias DocDeviceAliase

Step 9

フレームを照合する送信元インターフェイスを指定します。

switch(config-cmap)# match input-interface fc 2/1

Step 10

指定された送信元インターフェイスに基づいて一致を削除します。

switch(config-cmap)# no match input-interface fc 3/5


サービス ポリシー定義に関する情報

サービス ポリシーは、ポリシー マップを使用して指定されます。ポリシー マップは、クラス マップからサービス レベルへの順序付けられたマッピングを提供します。ポリシー マップ内で複数のクラス マップを指定し、クラス マップを高、中、または低のサービス レベルにマッピングできます。デフォルトの優先度は [Low] です。ポリシー マップ名は 63 文字の英数字に制限されています。

または、DiffServ コード ポイント(DSCP)にクラス マップをマッピングできます。DSCP は、指定されたフレームのサービス レベルのインジケータです。DSCP 値の範囲は 0 ~ 63 です。そして、デフォルトは、0 です。DSCP 値 46 は許可されません。

ポリシー マップ内のクラス マップの順序は、フレームをクラス マップと比較する順序を決定するために重要です。最初に一致したクラス マップには、対応するプライオリティがフレーム内でマークされます。


(注)  


QoS DSCP 値の実装の詳細については、『DSCP による QoS ポリシーの実装』を参照してください。

(注)  


クラス マップは、各ポリシー マップで構成されている順序で処理されます。

サービス ポリシーの適用

サービス ポリシーを指定するには、次の手順を実行します:

Procedure


Step 1

MyPolicy という名前のポリシー マップを作成し、ポリシー マップ サブモードを開始します。

switch(config)# qos policy-map MyPolicy

switch(config-pmap)#

Step 2

OldPolicy という名前のポリシー マップを削除し、ポリシー マップ サブモードを開始します。

switch(config)# no qos policy-map OldPolicy

Step 3

事前定義されたクラスの名前を指定し、そのクラスのポリシー マップ サブモードを開始します。

switch(config-pmap)# class MyClass

switch(config-pmap-c)#

Step 4

ポリシー マップから OldClass という名前のクラス マップを削除します。

switch(config-pmap)# no class OldClass

Step 5

このクラスに一致する各フレームに与える優先順位を指定します。

switch(config-pmap-c)# priority high

Step 6

以前に割り当てられた優先順位を削除し、デフォルト値の [低(low)] に戻します。

switch(config-pmap-c)# no priority high

Step 7

このクラスに一致する各フレームをマーキングする DSCP 値を指定します。

switch(config-pmap-c)# dscp 2

Step 8

以前に割り当てられた DSCP 値を削除し、工場出荷時のデフォルトの 0 に戻します。

switch(config-pmap-c)# no dscp 60


サービス ポリシー適用について

QoS データ トラフィック ポリシーを構成した場合は、そのポリシーを必要な VSAN に適用して、データ トラフィック構成を適用する必要があります。ポリシーを VSAN に適用しない場合、データ トラフィックの構成は適用されません。VSAN には、ポリシー マップを 1 つだけ適用できます。


Note


同じポリシーを VSAN の範囲に適用できます。

サービス ポリシーの適用

サービス ポリシーを適用するには、次の手順に従います:

Procedure


Step 1

構成されたポリシーを VSAN 3 に適用します。

switch(config)# qos service policy MyPolicy vsan 3

Step 2

VSAN 7 に適用された構成済みポリシーを削除します。

switch(config)# no qos service policy OldPolicy vsan 7


DWRR トラフィック スケジューラ キューについて

Cisco NX-OS ソフトウェアは、次の 4 つのスケジューリング キューをサポートしています:

  • 完全プライオリティ キューは、他のキューよりも優先して処理されるキューです。他のキューの状態に関係なく、フレームがキューイングされている場合は常に処理されます。
  • QoS は、他のすべてのトラフィックを DWRR スケジューリング高、中、低のプライオリティ トラフィック キューに割り当てます。

DWRR スケジューラは、構成された重みの比率でキューを処理します。重みを高くすると、帯域幅を拡張して遅延をなくすことができます。デフォルトの重みは、高キューの場合は 50、中規模キューの場合は 30、低キューの場合は 20 です。構成された重みの比率は異なる場合がありますが、キューの重みの順序を減らすことは、プライオリティの高いキューほど高いサービスレベルを確保するために必要です(たとえば、70:30:5 または 60:50:10 は構成できますが、50 はできません。 70:10)。


Note


第 1 世代および第 2 世代のモジュールは、Cisco MDS NX-OS リリース 6.x 以降ではサポートされていません。第 3 世代および第 4 世代のモジュールは、Cisco MDS NX-OS リリース 8.x 以降ではサポートされません。

サポートされるモジュールとポートの詳細については、『 Cisco MDS 9000 シリーズ インターフェイス構成ガイド、リリース 8.x 』を参照してください。


DWRR キュー重みを変更

重みを DWRR キューに関連付けるには、次の手順を実行します:

Procedure


Step 1

相対重み(10)を指定されたキュー(デフォルト キュー)に関連付けます。

switch(config)# qos dwrr-q high weight 10

Step 2

デフォルトの重み 20 に戻します。

switch(config)# no qos dwrr-q low weight 51


データ トラフィック情報例の表示

show qos コマンドは、データトラフィックの現在の QoS 設定を表示します(次の例を参照)。

例:クラスマップ

次の例では、すべてのクラス マップの内容を表示します。


switch# show qos class-map
qos class-map MyClass match-any
    match destination-wwn 20:01:00:05:30:00:28:df
    match source-wwn 23:15:00:05:30:00:2a:1f
    match input-interface fc2/1
qos class-map Class2 match-all
    match input-interface fc2/14
qos class-map Class3 match-all
    match source-wwn 20:01:00:05:30:00:2a:1f

例:指定されたクラス マップ

次に、指定したクラス マップの内容を表示する例を示します。


switch# show qos class-map name MyClass
qos class-map MyClass match-any
    match destination-wwn 20:01:00:05:30:00:28:df
    match source-wwn 23:15:00:05:30:00:2a:1f
    match input-interface fc2/1

例:すべての構成済みポリシー マップ

構成されたすべてのポリシー マップを表示します:


switch# show qos policy-map
qos policy-map MyPolicy
    class MyClass
    priority medium
qos policy-map Policy1
    class Class2
    priority low

例:指定されたポリシー マップ

次に、指定されたポリシー マップを表示する例を示します:


switch# show qos policy-map name MyPolicy
qos policy-map MyPolicy
    class MyClass
        priority medium

例:スケジュール済み DWRR の構成

次に、スケジュール済み DWRR 構成を表示する例を示します:


switch# show qos dwrr
qos dwrr-q high weight 50
qos dwrr-q medium weight 30
qos dwrr-q low weight 20

例:すべての適用されたポリシー マップ

次に、すべての適用済みポリシー マップを表示する例を示します。


switch# show qos service policy
qos service policy MyPolicy vsan 1
qos service policy Policy1 vsan 4

例:指定した VSAN に関連付けられたポリシー マップ

次に、指定した VSAN に関連付けられたポリシー マップを表示する例を示します。


switch# show qos service policy vsan 1
qos policy-map pmap1
   class cmap1
       priority medium
   class cmap2
       priority high

例:指定したインターフェイスに関連付けられたクラス マップ

次に、指定したインターフェイスに関連付けられたクラス マップを表示する例を示します。


switch# show qos service policy interface fc3/10
qos policy-map pmap1
   class cmap3
       priority high
   class cmap4
       priority low

例:QoS 統計

次の例は、QoS 統計情報を表示します:


switch# show qos statistics
Total number of FC frames transmitted from the Supervisor= 301431
Number of highest-priority FC frames transmitted         = 137679
Current priority of FC control frames = 7    (0 = lowest; 7 = highest)

QoS の構成例

ここでは、次の図に示すアプリケーションの構成例について説明します。

Figure 2. トラフィックの優先順位付けのアプリケーション例


OLTP サーバーとバックアップ サーバーの両方がディスクにアクセスしています。バックアップ サーバーが大量のデータをディスクに書き込んでいる。このデータは、特定のサービス保証を必要としません。OLTP サーバーによってディスクに生成されるデータの量は比較的少なくなりますが、トランザクション処理は低遅延アプリケーションであるため、このトラフィックにはより高速な応答が必要です。

輻輳ポイントは、スイッチからディスクへのトラフィックの場合、スイッチ 2 とディスクの間のリンクです。このパスにはバックアップ トラフィックがほとんどないため、リターン パスはほとんど輻輳していません。

OLTP サーバーからディスクへのトラフィックをバックアップ サーバーからディスクへのトラフィックよりも優先させるには、スイッチ 2 でサービスを差別化する必要があります。

例:トラフィック優先順位付け

サンプル アプリケーションのトラフィックの優先順位付けを構成するには、次の手順を実行します:

Procedure


Step 1

クラス マップを作成します。


Switch 2# config t
Switch 2(config)# qos class-map jc1 match-all
Switch 2(config-cmap)# match source-wwn 21:00:00:0c:50:02:ca:b5
Switch 2(config-cmap)# match destination-wwn 22:00:00:04:cf:22:eb:dc
Switch 2(config-cmap)# exit
Switch 2(config)# qos class-map jc2 match-all
Switch 2(config-cmap)# match source-wwn 21:00:00:0c:50:02:c7:ff
Switch 2(config-cmap)# match destination-wwn 22:00:00:04:cf:22:eb:dc
Switch 2(config-cmap)# exit
Switch 2(config)# 

Step 2

ポリシー マップを作成します。


Switch 2(config)# qos policy-map jp1
Switch 2(config-pmap)# class jc1
Switch 2(config-pmap-c)# priority high
Switch 2(config-pmap-c)# exit
Switch 2(config-pmap)# class jc2
Switch 2(config-pmap-c)# priority low
Switch 2(config-pmap-c)# exit
Switch 2(config-pmap)# exit
Switch 2(config)#

Step 3

サービス ポリシーを割り当てます。


Switch 2(config)# qos service policy jp1 vsan 1

Step 4

DWRR キューの重みを割り当てます。


Switch 2(config)# qos dwrr-q high weight 50
Switch 2(config)# qos dwrr-q medium weight 30
Switch 2(config)# qos dwrr-q low weight 20

Step 5

スイッチ 1 で ステップ 1~ 4 を繰り返して、両方のスイッチで転送パスの輻輳に対処します。


例:アドレス輻輳

輻輳は、構成例のどこでも発生する可能性があります。両方のスイッチでリターン パスの輻輳に対処するには、次のように、さらに 2 つのクラス マップを作成し、それらをポリシー マップに含める必要があります:

Procedure


Step 1

さらに 2 つのクラス マップを作成します。


Switch 2(config)# qos class-map jc3 match-all
Switch 2(config-cmap)# match source-wwn 22:00:00:04:cf:22:eb:dc
Switch 2(config-cmap)# match destination-wwn 21:00:00:0c:50:02:ca:b5
Switch 2(config-cmap)# exit
Switch 2(config)# qos class-map jc4 match-all
Switch 2(config-cmap)# match source-wwn 22:00:00:04:cf:22:eb:dc
Switch 2(config-cmap)# match destination-wwn 21:00:00:0c:50:02:c7:ff
Switch 2(config-cmap)# exit
Switch 2(config)#

Step 2

クラス マップをポリシー マップに割り当てます。


Switch 2(config)# qos policy-map jp1
Switch 2(config-pmap)# class jc3
Switch 2(config-pmap-c)# priority high
Switch 2(config-pmap-c)# exit
Switch 2(config-pmap)# class jc4
Switch 2(config-pmap-c)# priority low
Switch 2(config-pmap-c)# exit
Switch 2(config-pmap)# exit
Switch 2(config)#

Step 3

スイッチ 1 でステップ 1 ~ステップ 2 を繰り返して、両方のスイッチでリターンパスの輻輳に対処します。


静的な入力ポート レート制限

静的なポートレート制限機能は、switchport ingress-rate limit コマンドを使用して、個々のファイバチャネルポートの帯域幅を制御できるようにします。ポート レート制限はファイバ チャネル ポートへの入力トラフィックを制御するため、入力レート制限とも呼ばれます。この機能は、FC ポートから隣接デバイスに送信される B2B クレジットのレートを下げることにより、トラフィック フローを制御します。ポート レート制限は、すべてのファイバ チャネル ポートで動作します。Cisco MDS NX-OS リリース 8.5(1) より前では、レート制限の範囲は 1 ~ 100% でした。Cisco MDS NX-OS リリース 8.5(1) 以降、制限の範囲は 0.0126 ~ 100% です。デフォルトのレート制限は 100% です。

Cisco MDS NX-OS リリース 8.5(1) 以降では、Cisco MDS 9250i および MDS 9148S スイッチを除くすべての Cisco MDS スイッチで、動的または静的な入力ポート レート制限機能を構成する前に、FPM 機能を構成する必要があります。Cisco MDS NX-OS リリース 8.5(1) より前、または Cisco MDS 9250i および MDS 9148S スイッチでは、QoS 機能が有効になっている場合にのみ、すべての Cisco MDS スイッチおよびモジュールで静的入力ポート レート制限を構成できます。

ポート レート制限値を設定するには、次の手順を実行します

Procedure


Step 1

コンフィギュレーション モードを開始します。

switch # configure terminal

switch(config)#

Step 2

インターフェイスを選択して、入力ポートのレート制限を指定します。

switch(config)# interface fc 1/1

Step 3

選択したインターフェイスに 50% のポート レート制限を設定します。

switch(config-if)# switchport ingress-rate 50

Step 4

前に設定したレートを工場出荷時のデフォルト 100% に戻します。

switch(config-if)# no switchport ingress-rate 50