Cisco Nexus 9000 シリーズ NX-OS QoS コンフィギュレーション ガイド リリース 6.x
プライオリティ フロー制御の設定
プライオリティ フロー制御の設定
発行日;2014/01/21 | 英語版ドキュメント(2013/11/21 版) | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 1MB) | フィードバック

目次

プライオリティ フロー制御の設定

プライオリティ フロー制御について

プライオリティ フロー制御のライセンス要件

プライオリティ フロー制御の前提条件

プライオリティ フロー制御の注意事項と制約事項

プライオリティ フロー制御のデフォルト設定

プライオリティ フロー制御の設定

トラフィック クラスのプライオリティ フロー制御のイネーブル化

プライオリティ フロー制御の設定の確認

プライオリティ フロー制御の設定例

プライオリティ フロー制御の設定

この章では Cisco NX-OS デバイスに、プライオリティ フロー制御(PFC)を設定する方法について説明します。この章は、次の項で構成されています。

「プライオリティ フロー制御について」

「プライオリティ フロー制御のライセンス要件」

「プライオリティ フロー制御の前提条件」

「プライオリティ フロー制御の注意事項と制約事項」

「プライオリティ フロー制御のデフォルト設定」

「プライオリティ フロー制御の設定」

「トラフィック クラスのプライオリティ フロー制御のイネーブル化」

「プライオリティ フロー制御の設定の確認」

「プライオリティ フロー制御の設定例」

プライオリティ フロー制御について

Class Based Flow Control(CBFC)または Per Priority Pause(PPP)とも呼ばれるプライオリティ フロー制御(PFC;IEEE 802.1Qbb)は、輻輳が原因のフレーム損失を防ぐメカニズムです。PFC は 802.3x フロー制御(ポーズ フレーム)またはリンク レベル フロー制御(LFC)と類似しています。ただし、PFC はサービス クラス(CoS)ごとに運用されます。

バッファしきい値が輻輳により超過された場合、指定された期間リンク上のすべてのデータ送信を一時停止するために、ピアにポーズ フレームを送信します。(トラフィックが設定されたしきい値を下回り)輻輳が軽減されると、再開フレームはリンク上でデータ伝送を再開することが保障されます。

これに対して、輻輳中は、どの CoS 値を一時停止する必要があるかを示すポーズ フレームを PFC が送信します。PFC ポーズ フレームには、トラフィックが一時停止する必要のある時間の長さを示す各 CoS の 2 オクテットのタイマー値が含まれます。タイマーの時間枠はポーズ量子で指定されます。量子は、ポートの速度で 512 ビットを送信するために必要な時間です。指定できる範囲は 0 ~ 65535 です。ポーズ量子が 0 のポーズ フレームは、一時停止したトラフィックを再開する再開フレームを示します。


) 他のクラスが通常の動が許可される一方で、トラフィックの特定のサービス クラスのみフロー制御を使用できます。


PFC はピアに対して、既知のマルチキャスト アドレスにポーズ フレームを送信して、特定の CoS 値を持つフレームの送信を停止するように求めます。このポーズ フレームは、ピアによる受信時に転送されない 1 ホップ フレームです。輻輳が軽減されると、PFC はピアにフレームの伝送の再開を要求できます。

プライオリティ フロー制御のライセンス要件

次の表に、この機能のライセンス要件を示します。

 

製品
ライセンス要件

Cisco NX-OS

PFC 機能にライセンスは必要ありません。ライセンス パッケージに含まれていない機能は NX-OS イメージにバンドルされており、無料で提供されます。Cisco NX-OS のライセンス スキームの詳細については、『 Cisco NX-OS Licensing Guide 』を参照してください。

プライオリティ フロー制御の前提条件

PFC には次の前提条件があります。

「モジュラ QoS コマンドライン インターフェイス(MQC) の使用」に精通している。

スイッチにログインしている。

プライオリティ フロー制御の注意事項と制約事項

PFC 設定時の注意事項と制約事項は次のとおりです。

PFC がポートまたはポート チャネルでイネーブルにされる場合でも、ポート フラップは発生しません。

フラップは、PFC および LFC の両方がイネーブルで、LFC が設定される前に PFC がディセーブルにされている場合に発生します。

PFC 設定は、送信(Tx)および受信(Rx)の両方向で PFC をイネーブルにします。

no-drop CoS が完全に一致する場合にのみ、Data Center Bridging Capability Exchange Protocol(DCBXP)によって PFC のネゴシエーションが成功したと見なされます。

設定では、PFC に送受信されるプライオリティ ポーズ単位のフレームはサポートされません。また、Tx/Rx PFC ポーズ フレームの集計値についても示します。

ポーズ フレームの設定時間量子はサポートされません。

この設定は、特定のトラフィック クラス キューにマッピングされ、一時停止が選択されたストリームをサポートしません。クラスにマッピングされたすべてのフローは、no-drop として扱われます。これにより、キュー全体のスケジューリングが行われず、キューのすべてのストリームでトラフィックが一時停止します。no-drop クラスのロスレス サービスを実現するには、キュー内で no-drop クラスのトラフィックに限定することを推奨します。

各イーサネット インターフェイスで、デバイスは PFC または LLFC のいずれかをイネーブルにできますが、両方イネーブルにすることはできません。

no-drop クラスが 802.1p CoS x に基づいて分類され、内部プライオリティ値(QoS グループ)y を割り当てた場合は、802.1p CoS 上でのみトラフィックを区別するために内部プライオリティ値 x を使用して、他のフィールドを使用しないことを推奨します。分類が CoS に基づいていない場合、割り当てられるパケット プライオリティは x で、これにより、内部プライオリティ x および y のパケットが同じプライオリティ x にマッピングする結果となります。

どの最大伝送単位(MTU)サイズでも、最大 3 つの no-drop クラスがサポートされます。ただし、次の要因に基づいて、PFC-enabled インターフェイスの数に制限があります。

no-drop クラスの MTU サイズ

10G および 40G ポートの数

入力キューイング ポリシーのポーズ バッファ サイズの設定

systemjumbomtu コマンドを使用して、システムで最大伝送単位(MTU)の上限を定義できます。MTU 範囲は、1500 ~ 9216 バイトで、デフォルトは 9216 バイトです。

インターフェイス QoS ポリシーはシステム ポリシーよりも優先されます。PFC の優先度の派生も同じ順序で行われます。

入力と出力の両方において、すべての PFC 対応インターフェイスで同じインターフェイス レベルの QoS ポリシーを適用していることを確認します。


注意 PFC の設定に関係なく、インターフェイス レベルまたはシステム レベルで完全優先レベルがあるキューイング ポリシーの適用または削除をする前にトラフィックを停止することを推奨します。

ネットワークを介してエンドツーエンドのロスレス サービスを実現するには、no-drop クラス トラフィック フロー(Tx/Rx)を介して各インターフェイスで PFC をイネーブルにすることを推奨します。

トラフィックがない場合は、PFC の設定を変更することを推奨します。そうでない場合は、システムの Memory Management Unit(MMU)にすでにあるパケットが期待どおりの処理をされない可能性があります。

no-drop クラスにデフォルトのバッファ サイズを使用するか、または 10G および 40G インターフェイス、および no-drop クラス MTU サイズに適した別の入力キューイング ポリシーを設定することを推奨します。バッファ サイズを CLI を使用して指定する場合は、リンク速度、MTU サイズに関係なく、すべてのポートに同じバッファ サイズが割り当てられます。10G および 40G インターフェイスへの同じポーズ バッファ サイズの適用はサポートされません。

出力キューのドロップの原因になるため、no-drop クラスで WRED をイネーブルにしないでください。

プライオリティ フロー制御のデフォルト設定

表 8-1 に、PFC のデフォルト設定を示します。

表 8-1 デフォルトの PFC 設定

パラメータ
デフォルト

PFC

自動

プライオリティ フロー制御の設定

アクティブなネットワーク QoS ポリシーで定義されている CoS の no-drop 動作をイネーブルにするには、ポート単位の PFC を設定できます。PFC は、次の 3 種類のモードから設定できます。

auto:DCBXP によってアドバタイズされ、ピアとネゴシエートされるように no-drop CoS 値をイネーブルにします。正常なネゴシエーションでは、no-drop CoS での PFC がイネーブルになります。ピア機能の不一致が原因で障害が発生すると、PFC がイネーブルにならない可能性があります。

on:ピアの機能に関係なく、ローカル ポートで PFC をイネーブルにします。

off:ローカル ポートで PFC をディセーブルにします。


) および PFC がイネーブルの同じポートでも、リンク レベル フロー制御(LFC)をイネーブルにできます。ただし、PFC をイネーブルにすると、優先順位付けが行われます。


手順の概要

1. configure terminal

2. interface type slot/port

3. priority-flow-control mode {auto | off | on}

4. show interface priority-flow-control

手順の詳細

 

コマンド
目的

ステップ 1

configure terminal

 

Example:

switch# configure terminal

switch(config)#

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

ステップ 2

interface type slot/port

 

Example:

switch(config)# interface ethernet 2/5

switch(config-if)#

指定したインターフェイス上でインターフェイス モードを開始します。

ステップ 3

priority-flow-control mode {auto | off | on}

 

Example:

switch(config-if)# priority-flow-control mode on

switch(config-if)#

PFC を auto、off、または off モードに設定します。デフォルトでは、PFC モードがすべてのポートで auto に設定されます。

ステップ 4

show interface priority-flow-control

 

Example:

switch# show interface priority-flow-control

(任意)すべてのインターフェイスの PFC のステータスを表示します。

トラフィック クラスのプライオリティ フロー制御のイネーブル化

特定のトラフィック クラスの PFC をイネーブルにできます。

手順の概要

1. configure terminal

2. class-map type qos class-name

3. match cos cos-value

4. exit

5. policy-map type qos policy-name

6. class type qos class-name

7. set qos-group qos-group-value

8. exit

9. exit

10. class-map type network-qos match-any class-name

11. match qos-group qos-group-value

12. exit

13. policy-map type network-qos policy-name

14. class type network-qos class-name

15. pause no-drop buffer-size buffer-size pause-threshold xoff-size resume-threshold xon-size

16. exit

17. exit

18. system qos

19. service-policy type network-qos policy-name

手順の詳細

 

コマンド
目的

ステップ 1

configure terminal

 

Example:

switch# configure terminal

switch(config)#

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

ステップ 2

class-map type qos class-name

 

Example:

switch(config)# class-map type qos c1

switch(config-cmap-qos)#

トラフィックのクラスを表す名前付きオブジェクトを作成します。クラス マップ名には、アルファベット、ハイフン、またはアンダースコア文字を含めることができます。クラス マップ名は大文字と小文字が区別され、最大 40 文字まで設定できます。

ステップ 3

match cos cos-value

 

Example:

switch(config-cmap-qos)# match cos 2

パケットをこのクラスに分類する場合に照合する CoS 値を指定します。CoS 値は、0 ~ 7 の範囲で設定できます。

ステップ 4

exit

 

Example:

switch(config-cmap-qos)# exit
switch(config)#

クラス マップ モードを終了し、グローバル コンフィギュレーション モードを開始します。

ステップ 5

policy-map type qos policy-name

 

Example:

switch(config)# policy-map type qos p1
switch(config-pmap-qos)#

トラフィック クラスのセットに適用されるポリシーのセットを表す名前付きオブジェクトを作成します。ポリシー マップ名は、最大 40 文字の英字、ハイフン、または下線文字を使用でき、大文字と小文字が区別されます。

ステップ 6

class type qos class-name

 

Example:

switch(config-pmap-qos)# class type qos c1
switch(config-pmap-c-qos)#

クラス マップをポリシー マップに関連付け、指定したシステム クラスのコンフィギュレーション モードを開始します。

(注) アソシエートされるクラス マップには、ポリシー マップ タイプと同じタイプが必要です。

ステップ 7

set qos-group qos-group-value

 

Example:

switch(config-pmap-c-qos)# set qos-group 2

トラフィックをこのクラス マップに分類する場合に照合する 1 つまたは複数の qos-group 値を設定します。デフォルト値はありません。

ステップ 8

exit

 

Example:

switch(config-pmap-c-qos)# exit
switch(config-pmap-qos)#

システム クラス コンフィギュレーション モードを終了し、ポリシー マップ モードを開始します。

ステップ 9

exit

 

Example:

switch(config-pmap-qos)# exit
switch(config)#

ポリシー マップ モードを終了し、グローバル コンフィギュレーション モードを開始します。

ステップ 10

class-map type network-qos match-any class-name

 

Example:

switch(config)# class-map type network-qos match-any c1

switch(config-cmap-nqos)#

トラフィックのクラスを表す名前付きオブジェクトを作成します。クラス マップ名には、アルファベット、ハイフン、またはアンダースコア文字を含めることができます。クラス マップ名は大文字と小文字が区別され、最大 40 文字まで設定できます。

ステップ 11

match qos-group qos-group-value

 

Example:

switch(config-cmap-nqos)# match qos-group 2

QoS グループ値のリストに基づいてパケットを照合することによって、トラフィック クラスを設定します。値の範囲は 0 ~ 5 です。QoS グループ 0 は class-default に相当します。

ステップ 12

exit

 

Example:

switch(config-cmap-nqos)# exit
switch(config)#

クラス マップ モードを終了し、グローバル コンフィギュレーション モードを開始します。

ステップ 13

policy-map type network-qos policy-name

 

Example:

switch(config)# policy-map type network-qos p1

switch(config-pmap-nqos)#

トラフィック クラスのセットに適用されるポリシーのセットを表す名前付きオブジェクトを作成します。ポリシー マップ名は、最大 40 文字の英字、ハイフン、または下線文字を使用でき、大文字と小文字が区別されます。

ステップ 14

class type network-qos class-name

 

Example:

switch(config-pmap-nqos)# class type network-qos c-nq1

switch(config-pmap-nqos-c)#

クラス マップをポリシー マップに関連付け、指定したシステム クラスのコンフィギュレーション モードを開始します。

(注) アソシエートされるクラス マップには、ポリシー マップ タイプと同じタイプが必要です。

ステップ 15

pause buffer-size buffer-size pause-threshold xoff-size resume-threshold xon-size

pfc-cos cos-value

 

Example:

switch(config-pmap-nqos-c)# pause buffer-size 20000 pause-threshold 100 resume-threshold 1000 pfc-cos 1

ポーズと再開のためのバッファのしきい値設定を指定します。

buffer-size buffer-size :バイト単位で入力トラフィックのバッファ サイズを指定します。有効な値は 10240 ~ 490880 です。

(注) 設定できる最大バッファ サイズは 143680 バイトです。

pause-threshold xoff-size :ポートがピア一時停止するバッファ制限をバイト単位で指定します。有効な値は 0 ~ 490880 です。

(注) 設定できるポーズしきい値は最大 58860 バイトです。

resume-thresholdd xon-size :ポートがピア再開するバッファ制限をバイト単位で指定します。有効な値は 0 ~ 490880 です。

(注) 設定できる再開しきい値は最大 38400 バイトです。

pfc-cos cos-value :PFC をアサートする CoS 値を指定します。有効な値の範囲は 0 ~ 7 です。

(注) バッファ サイズを設定するときは、次の点に注意してください。

バッファ サイズはポーズしきい値より大きくする必要があります。また、ポーズしきい値は再開しきい値より大きくする必要があります。この条件が満たされていないと、次のメッセージが表示されます。

ERROR: buffer-size can't be less then pause/resume-threshold

ポーズしきい値と再開しきい値の差は、20480 バイト以上にする必要があります。この条件が満たされていないと、次のメッセージが表示されます。

Warning: The recommended difference between pause and resume threshold is 20480 bytes

ポーズしきい値は、再開しきい値より大きくする必要があります。この条件が満たされていないと、次のメッセージが表示されます。

ERROR: pause-threshold can't be less then resume-threshold

ステップ 16

exit

 

Example:

switch(config-pmap-nqos-c)# exit
switch(config)#

ポリシー マップ モードを終了し、グローバル コンフィギュレーション モードを開始します。

ステップ 17

system qos

 

Example:

switch(config)# system qos
switch(config-sys-qos)#

システム クラス コンフィギュレーション モードを開始します。

ステップ 18

service-policy type network-qos policy-name

 

Example:

switch(config-sys-qos)# service-policy type network-qos p1

システム レベルまたは特定のインターフェイスにネットワーク QoS タイプのポリシー マップを適用します。

プライオリティ フロー制御の設定の確認

PFC 設定を表示するには、次の作業を実行します。

 

コマンド
目的

show interface priority-flow-control [module number ]

すべてのインターフェイスまたは特定のモジュールの PFC のステータスを表示します。

プライオリティ フロー制御の設定例

次に、PFC の設定例を示します。

configure terminal
interface ethernet 5/5
priority-flow-control mode on
 
 

次に、トラフィック クラスで PFC をイネーブルにする例を示します。

switch(config)# class-map type qos c1
switch(config-cmap-qos)# match cos 3
switch(config-cmap-qos)# exit
switch(config)# policy-map type qos p1
switch(config-pmap-qos)# class type qos c1
switch(config-pmap-c-qos)# set qos-group 3
switch(config-pmap-c-qos)# exit
switch(config-pmap-qos)# exit
switch(config)# class-map type network-qos match-any c1
switch(config-cmap-nqos)# match qos-group 3
switch(config-cmap-nqos)# exit
switch(config)# policy-map type network-qos p1
switch(config-pmap-nqos)# class type network-qos c-nq1
switch(config-pmap-nqos-c)# pause buffer-size 20000 pause-threshold 100 resume-threshold 1000 pfc-cos 1
switch(config-pmap-nqos-c)# exit
switch(config-pmap-nqos)# exit
switch(config)# system qos
switch(config-sys-qos)# service-policy type network-qos p1