この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
Cisco Nexus 5000 シリーズの NX-OS Quality of Service(QoS)は、ネットワークを通じた最も望ましいトラフィック フローを提供するために使用されます。QoS はポリシーとフロー制御を使用することで、ネットワーク トラフィックを分類し、トラフィック フローをポリシングおよび優先順位付けして、輻輳を回避します。
この章では、Cisco Nexus 5000 シリーズ スイッチの QoS で起こり得る問題を特定し、解決する方法について説明します。
• ポリシー マップ
• 不適切な設定
• PFC
Nexus 5000 の QoS の実装は、Cisco モジュラ QoS CLI モデルに従います。QoS の設定には次の 3 つの手順が関係します。
• ポリシーマップを作成し、各クラスマップに対して実行するアクションを定義する。
Nexus 5000 には、次の 3 つのタイプのポリシーマップが実装されています。
また、Nexus 5000 には「システム QoS」と呼ばれる QoS の新しい設定コンテキストが導入されています。「システム QoS」コンテキストの下で適用されたポリシーマップはスイッチ全体に適用されます。
次の表に、これら 3 つのタイプのポリシーマップの機能と付加する箇所をまとめます。
|
|
|
---|---|---|
基本プロセスは次のとおりです。まず、着信パケットが「policy-map type qos」によって定義された QoS 分類ルールと比較されます。これにより、パケットが 8 つの QoS グループのいずれかに分類されます。
次に、ネットワーク QoS ポリシーとキューイング ポリシーがパケットに適用されます。キューイング ポリシーとネットワーク QoS ポリシーは、各 QoS グループに属するパケット用の実際の QoS パラメータを定義します。
(注) • キューイング ポリシーとネットワーク QoS ポリシーは、実際のパケット ヘッダーではなく(「policy-map type qos」によって識別された)QoS グループと一致します。
• システム QoS コンテキストの配下とインターフェイス レベルで同じタイプのサービス ポリシーが適用されている場合は、インターフェイス レベルのサービス ポリシーが優先されます。
• 入力インターフェイスの下で適用されたキューイング ポリシーはローカルには適用されません。キューイング ポリシーは、DCBX プロトコルを使用したピア間で交換される各サービス クラスに対する帯域幅の割り当てです。
「class-default」でジャンボ MTU が設定されているにもかかわらず、2300 バイトよりも大きいフレーム サイズが Nexus 5000 スイッチおよび Nexus 2000 FEX を通過できません。
CoS 値が既存の MTU 値と衝突している可能性があります。
CoS 7 は、Nexus 5000 スイッチと Nexus 2000 FEX 間のトラフィックを制御するために内部で使用されます。CoS 7 を持つトラフィックの MTU 値は固定値に設定されます。着信トラフィックが CoS 7 でマークされていることを確認する必要があります。この制限を回避するには、7 以外の任意の CoS 値を使用します。
「network-qos policy-map」の設定によって「class-default」がジャンボ MTU に設定されているとき、「show queuing interface」コマンドを実行すると「class-default」の MTU が 1500 と表示されます。
アップグレード後、不適切なスタートアップ コンフィギュレーションが存在する可能性があります。
スイッチを 4.2(1)N1(1) リリースにアップグレードした場合は、「write erase」コマンドを使用してスタートアップ コンフィギュレーションを削除したことを確認します。コンフィギュレーションは削除操作の前に別のファイル名に保存できます。
Nexus 5000 スイッチが空のコンフィギュレーションで起動したら、元のコンフィギュレーションを再び適用します。telnet または ssh を使用している場合は、Nexus 5000 への接続が失われる場合があることに注意してください。この手順を行う際はコンソールを使用することを推奨します。
3 つのタイプのポリシーマップ(QoS、ネットワーク QoS、キューイング)をすべて設定した後、Nexus 2148、Nexus 2232、および Nexus 2248 スイッチでトラフィックのキューイングまたは優先順位付けが正しく行われません。
Nexus 2148、Nexus 2232、および Nexus 2248 FEX は、CoS ベースのトラフィック分類のみをサポートします。システム QoS の下で設定された QoS サービス ポリシー タイプは、一致基準がすべて「match cos」の場合にのみ、Nexus 5000 から FEX に読み込まれます。その他の match 句(「match dscp」や「match ip access-group」など)が QoS ポリシーマップに存在する場合、FEX はそのサービス ポリシーを受け入れません。その結果、すべてのトラフィックがデフォルト キューに配置されます。
(注) キューが適切に作成されているかどうかを確認するには、「show queuing interface」コマンドを使用します。
CoS 値でマークされていない(サーバからネットワークへの)入力トラフィックは、FEX 上でデフォルト キューに配置されます。そのトラフィックが Nexus 5000 で受信されると、設定されたルールに基づいて分類され、適切なキューに配置されます。
(Nexus5000 から FEX を介してサーバに至る)出力トラフィックでは、FEX がトラフィックを適切に分類してキューに配置できるように、Nexus 5000 で CoS 値によってトラフィックをマークすることを推奨します。
次に、Nexus 5000 および Nexus 2232/Nexus 2248 で、トラフィックを分類してトラフィックのタイプごとに適切な帯域幅を設定する全コンフィギュレーションの例を示します。この例を適用できるのは、Nexus 5000 および Nexus 2248 のみです。Nexus 2148 にはユーザ データ用のキューが 2 つしかないため、Nexus 2148 のコンフィギュレーションは少し異なります。Nexus 2232/Nexus 2248 にはユーザ データ用のハードウェア キューが 6 個あり、これは Nexus 5000 と同じです。
「show queuing interface」コマンドを使用して、FEX インターフェイスで CoS とキューのマッピングが適切に設定されているかどうかを確認できます。また、帯域幅と MTU の設定を確認することもできます。
この同じコマンドを使用して、Nexus 5000 インターフェイスの QoS 設定を確認できます。
次に、上記のコンフィギュレーションを適用したときの Nexus 2248 インターフェイスの「show queuing interface」コマンドの出力を示します。
Nexus 2148 には入力方向と出力方向の両方に 2 つのキューがあります。一方のキューは no-drop システム クラスにマップされ、もう一方のキューは drop システム クラスにマップされます。入力方向では、Weight Round Robin(WRR; 重み付けラウンド ロビン)を使用して 2 つのキューがスケジュールされます。出力方向では、no-drop システム クラスのキューがプライオリティ キューになります。
2 つのキューのトラフィックを分離するためには、ユーザが no-drop システム クラスを作成する必要があります。Nexus 5000 で作成された no-drop システム クラスはすべて、Nexus 2148 上の no-drop キューにマップされます。
FEX 出力方向で Nexus 2148 が音声をプライオリティ キューに配置できるようにするには、ネットワーク QoS に「pause no-drop」コマンドを追加します。
このコンフィギュレーションは着信音声トラフィックを DSCP に基づいて分類し、音声トラフィックを CoS 5 にマークします。Nexus 2148 は、FEX 出力方向で音声トラフィックをプライオリティ キューに割り当てます。
次に、上記のコンフィギュレーションを適用したときの Nexus 2148 の「show queuing interface」コマンドの出力例を示します。
バック ツー バックの Nexus 5000 スイッチ リンクでリンク ポーズ(フロー制御)がイネーブルになっていないときは、no-drop クラスでトラフィックを送信しながらパケットがドロップされます。
ピア Nexus 5000 スイッチで DCBX による PFC TLV がサポートされている場合、「flowcontrol send on」と「flowcontrol receive on」を設定してもリンク ポーズはイネーブルになりません。そのインターフェイスで DCBX によって送信される PFC TLV をディセーブルにする必要があります。
• 「show interface ethx/y flowcontrol」コマンドを使用して、動作ステートが「off」かどうかを確認します。
• 「show interface ethx/y priority-flow-control」コマンドを使用して、動作ステートが「on」かどうかを確認します。
「interface ethx/y」の下で次のコマンドを設定して、バック ツー バックのスイッチ リンクで PFC ではなくリンク ポーズをイネーブルにします。
複数のイーサネット クラスで pause「no-drop」をイネーブルにできません。
「pause no-drop」をイネーブルにしようとすると、次のエラーが発生して CLI コマンドが失敗します。
Nexus 5000 でサポートされている no-drop クラスの最大数は 3 つです(FCoE を含む)。5 つのイーサネット クラスを作成する場合、5 つのイーサネット no-drop クラスのうち 2 つをイネーブルにするためのバッファが足りません。
no-drop をイネーブルにするための十分なバッファが存在しない場合は、エラーが発生します。
5 つのイーサネット クラスを作成する場合、5 つのイーサネット no-drop クラスのうち 2 つを設定するためのバッファの数が足りません。2 つのイーサネット クラスを削除し、残り 3 つのイーサネット クラス(class-default を含む)を設定する場合、2 つのイーサネット クラスについて no-drop をイネーブルにできます。
QoS no-drop 設定を変更すると、VPC MCT ピアリンクがダウンし、FEX がオフラインになります。
MTU やポーズなどのネットワーク QoS ポリシー パラメータはタイプ 1 パラメータとして扱われ、VPC プライマリ ノードとセカンダリ ノードの間で一致している必要があります。VPC プライマリ ノードとセカンダリ ノードの間で不一致が存在する場合、VPC ピアリンクはアップせず、FEX はオフラインになります。VPC のタイプ 1 整合性がチェックされるのは、cos ベース クラスの no-drop/MTU パラメータだけです。acl ベース クラスを設定した場合は、VPC の vtype 1 パラメータとしては扱われません。
• 「show vpc consistency-parameters global」
VPC プライマリ ノードとセカンダリ ノードの間でほぼ同じ no-drop クラス コンフィギュレーションを設定します。nqos cos ベース クラスのパラメータで no-drop ポリシーの不一致があると、タイプ 1 の不整合が発生します。
class-ip-multicast クラスで no-drop をイネーブルにしたとき、プライオリティ フロー制御により、すべての CoS 値でポーズがイネーブルになります。
class-ip-multicast クラスを作成して no-drop をイネーブルにしたとき、すべての CoS 値でポーズがイネーブルにされています。
「show interface ethx/y priority-flow-control」コマンドを使用して、VL ビットマップがすべての CoS 値に対してイネーブルになっている(ff)かどうかを確認します。
次のコマンドを使用して、class-ip-multicast クラスの下ですべての CoS 値ではなく CoS 4 に対してのみ PFC がイネーブルになるようにします。
• 「Policy-map type network-qos system」
デフォルトの QoS 設定を持つ N2K-C2148T/N2K-C2248TP-1GE ベースの FEX で no-drop クラスが作成されません。
N2K-C2248TP および N2K-C2148T 上のスイッチポートと HIF ポートで show queuing interface が異なります。
N2K-C2148T および N2K-C2248TP-1GE ベースの FEX では FCoE がサポートされておらず、デフォルトの QoS 設定では no-drop クラスは作成されません。
確認するには次のコマンドを使用します(no-drop クラスについて確認します)。
「show queuing interface eth100/1/1」
N2K-C2148T/N2K-C2248TP-1GE FEX でイーサネット no-drop クラスが必要な場合は、次のコマンドを使用してイーサネット no-drop クラスを作成する必要があります。
• 「Policy-map type network-qos no-drop」
別の Nexus 5000 インターフェイスに接続されたときは、「flowcontrol send on」と「flowcontrol receive on」を設定しても Nexus 5000 スイッチ ポート リンクで「flowcontrol on」はイネーブルになりません。
Nexus 5000 インターフェイスでリンク ポーズ(フロー制御)をイネーブルにする方法。
Nexus 5000 インターフェイスでは、デフォルトで DCBX が実行されます。ピアで DCBX が実行されていない場合、そのインターフェイスではテールドロップが設定されます。
• 「show interface ethx/y flowcontrol」コマンドを使用して、動作ステートが「off」かどうかを確認します。
• 「show interface ethx/y priority-flow-control」コマンドを使用して、動作ステートが「off」かどうかを確認します。
次に、各種レジスタやカウンタにアクセスするコマンドを示します。
(注) MAC レベル トラフィックの統計情報とポーズ統計情報を表示する準備として、(FEX シェルで)次のコマンドを使用します。
- 「show plat soft fex info satport <fex-interface-id>」(RW6 の NIF の場合を除くマッピングのため)
- 「show plat soft redwood sts」
- 「show plat soft redwood ss」
• FCoE インターフェイスでは、次のコマンドを使用します。
• FC インターフェイスでは、次のコマンドを使用します。
(最初のコマンドは gatos 番号と fc 番号を取得するために使用します)