Cisco Nexus 1000V QoS コンフィギュレーション ガイド リリース 4.2(1)SV1(5.2)
クラスベース重み付け均等化キューイングの設定
クラスベース重み付け均等化キューイングの設定
発行日;2012/11/21   |   ドキュメントご利用ガイド   |   ダウンロード ;   この章 pdf   ,   ドキュメント全体 pdf    |   フィードバック

クラスベース重み付け均等化キューイングの設定

この章の内容は、次のとおりです。

クラスベース重み付け均等化キューイングについて

この機能により、次の目的に対応します。

  • いずれのトラフィック クラスも他のトラフィック タイプをスタベーション状態にさせないことをキューイングによって保証できる。
  • 各トラフィック クラスの帯域幅保証を考慮する。
  • アップリンクの帯域幅の使用率を最適化する。

クラスベース重み付け均等化キューイング(CBWFQ)は、標準の重み付け均等化キューイング(WFQ)機能を拡張して、ユーザ定義のトラフィック クラスをサポートするようにしたものです。 CBWFQ では、プロトコルなどの一致基準や CoS 値に基づいて、トラフィック クラスを定義します。 クラスの一致基準を満たすパケットは、そのクラスのトラフィックの一部となります。 クラスごとに 1 つのキューが確保され、クラスに属するトラフィックは、そのクラスのキューに送られます。

クラスが一致基準によって定義されると、その特性を割り当てることができます。 クラスに特性を持たせるには、帯域幅と最大キュー制限を割り当てます。 クラスに割り当てられた帯域幅は、輻輳中のクラスに適用する保証帯域幅です。

クラスに特性を持たせるには、そのクラスのキュー制限も指定します。これは、クラスのキューに集めることができる最大パケット数です。 クラスに属するパケットは、そのクラスの特性の帯域幅とキュー制限に対応しています。

設定されたキュー制限にキューが達した後、そのクラスにパケットが追加されると、テール ドロップが発生します。

設定されているどのクラスにも一致しないトラフィックには、ベスト エフォート処理が行われます。 パケットを分類した後、クラス間のサービスの区別にも使用可能なすべての標準メカニズムを適用します。

CBWFQ では、そのクラスに指定された重みは、そのクラスの一致基準を満たすそれぞれのパケットの重みとなります。 出力インターフェイスに到着したパケットは、定義された一致基準フィルタに従って分類された後、それぞれに適切な重みが割り当てられます。 特定のクラスに属するパケットの重み付けは、クラス設定したときにクラスに割り当てた帯域幅から適用されます。そういった意味では、クラスの重み付けはユーザ定義可能です。

パケットの重みが割り当てられると、そのパケットは適切なクラス キューに並びます。 CBWFQ は、キューイングされたパケットに割り当てられた重み付けを使用し、クラス キューが確実に均等に提供されるようにします。

クラス ポリシーの設定、つまり CBWFQ の設定は、次の 3 つの処理を伴います。

  • トラフィック クラスを定義して分類ポリシー(クラス マップ)を指定する。 このプロセスによって、何種類のパケットを区別するかが決まります。
  • ポリシー、つまりクラス特性を各トラフィック クラスに関連付ける(ポリシー マップ)。 このプロセスでは、クラス マップで定義済みのクラスの 1 つに属するパケットに適用されるポリシーの設定が必要です。 このため、各トラフィック クラスでポリシーを指定するポリシー マップを設定します。
  • ポリシーをインターフェイスへ適用する(サービス ポリシー)。

    (注)  


    キューイング ポリシー マップは、出力(発信)方向のアップリンクにだけ適用できます。


    このプロセスでは、既存のポリシー マップ、またはサービス ポリシーを、インターフェイスに関連付け、マップに対する特定のポリシー セットをそのインターフェイスに適用する必要があります。

ポリシー マップにより、ネットワーク トラフィックがクラス単位で優先順位付けされます。 最適な Quality of Service が得られるトラフィックの優先順位付けが行われるように、ポリシー マップを作成して各クラスのトラフィックの扱い方法を定義します。

クラスベース重み付け均等化キューイングのライセンス要件

この機能にはライセンスは不要です。 ライセンス パッケージに含まれていない機能はすべて Cisco NX-OS システム イメージにバンドルされており、追加費用は一切発生しません。 NX-OS ライセンス方式の詳細については、『Cisco NX-OS Licensing Guide』を参照してください。

クラスベース重み付け均等化キューイングの前提条件

EXEC モードで CLI にログインしておきます。

注意事項と制限

  • キューイング ポリシーは、出力(発信)方向のアップリンク インターフェイスにのみ適用できます。
  • キューイングは ESX または ESXi 4.1.0 以降のホストでのみサポートされます。
  • ポートチャネル インターフェイスでは、キューイングの帯域幅はメンバ ポートに適用されます。 全体的なパフォーマンスは、vEthernet をメンバ ポートにピン接続している方法や、個々のポートでのトラフィック パターンによって変化します。

デフォルト設定値

クラスベース重み付け均等化キューイングは、デフォルトではディセーブルです。

クラスベース重み付け均等化キューイングの設定

この機能を利用すると、トラフィック クラスを区別し、適切な帯域幅を保証できます。 クラスベース重み付け均等化キューイングを設定するには、以下の手順に従ってください。

  • プロトコルまたは CoS の一致基準を持つキューイング クラス マップを作成します。
  • キューイング ポリシー マップを作成し、これにクラス マップを割り当てます。
はじめる前に
  • EXEC モードで CLI にログインしていること。
  • キューイング クラス マップをプロトコルまたは CoS と照合するかどうかが決まっていること。
  • トラフィック クラスの最小キュー サイズを指定するかどうかが決まっていること。
  • トラフィック クラスの最大キュー サイズを指定するかどうかが決まっていること。
手順
     コマンドまたはアクション目的
    ステップ 1switch# configure terminal 

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

     
    ステップ 2switch(config)# class-map type queuing {match-any | match-all} map-name 

    CBWFQ のクラス マップを作成し、新しいクラス マップを設定するためのクラス マップ キューイング モードを開始します。

    match-any:いずれかの一致基準に一致した場合に、このクラス マップをパケットに適用するには、このオプションを使用します。

    match-all:すべての一致基準に一致した場合に、このクラス マップをパケットに適用するには、このオプションを使用します。

    map-name:最長 40 文字の英数字、ハイフン、および下線文字を使用できます。

     
    ステップ 3switch(config-cmap-que)# match {cos id} | {protocol name} 

    このクラス マップに対するパケットを、プロトコルまたは CoS、あるいはその両方と照合するかどうかを定義します。

    • CoS は 0 ~ 7 の数値として指定します。 これは、IEEE 802.1p で規定されている IEEE 802.1Q ヘッダー内のサービス クラス(CoS)に基づくトラフィックに一致します。 CoS は VLAN ID タグ フィールドの上位 3 ビットで符号化され、ユーザ プライオリティと呼ばれます。
    • 定義済みのプロトコル一致を以下に示します。
      • n1k_control
      • n1k_mgmt
      • n1k_packet
      • vmw_ft
      • vmw_iscsi
      • vmw_mgmt
      • vmw_nfs
      • vmw_vmotion
     
    ステップ 4switch(config-cmap-que)# exit 

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

     
    ステップ 5switch(config)# policy-map type queuing name 

    CBWFQ のポリシー マップを作成し、新しいポリシー マップを設定するためのポリシー マップ キューイング モードを開始します。

     
    ステップ 6switch(config-pmap-que)# class type queuing name 

    CBWFQ クラスをこのポリシー マップに割り当てて、ポリシー マップ クラス キューイング コンフィギュレーション モードを開始します。

     
    ステップ 7switch(config-pmap-c-que)# bandwidth percent percentage 

    このトラフィック クラスに、使用可能な合計帯域幅に対するパーセンテージの形で最小帯域幅保証を指定します。

     
    ステップ 8switch(config-pmap-c-que)# queue-limit number  (任意)

    パケットで、このクラスに対して許可されている最大キュー サイズを指定します。

    number:廃棄する前にキューイングできるパケットの数で、1 ~ 55924 の値。

    デフォルトでは、キュー制限は設定されていません。

     
    ステップ 9switch(config-pmap-c-que)# show policy-map [{[type qos] [pmap-name-qos]} | {type queuing [pmap-name-que]}]  (任意)

    確認のためにコンフィギュレーションを表示します。

     
    ステップ 10switch(config-pmap-c-que)# exit 

    ポリシーマップ タイプ キューイング コンフィギュレーション モードを終了し、ポリシーマップ コンフィギュレーション モードに戻ります。

     
    ステップ 11switch(config-pmap-que)# exit 

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

     
    ステップ 12switch(config)# port-profile type ethernet name 

    ポートプロファイルを作成して、ポートプロファイル コンフィギュレーション モードを開始します。

     
    ステップ 13switch(config-port-prof)# service-policy type queuing output name 

    サービスポリシー タイプ キューイングを作成します。

     
    ステップ 14switch(config-port-prof)# show policy-map interface  すべてのインターフェイス上のグローバル統計情報のステータスおよび設定済みのポリシー マップを表示します。 
    ステップ 15switch(config-port-prof)# copy running-config startup-config  (任意)

    リブート後に永続的な実行コンフィギュレーションを保存し、スタートアップ コンフィギュレーションにコピーして再起動します。

     
    switch# config terminal
    switch(config)# class-map type queuing match-all class_fin1
    switch(config-cmap-que)# match protocol vmw_vmotion
    switch(config-cmap-que)# exit
    switch(config)# policy-map type queuing Policy-vmotion
    switch(config-pmap-que)# class type queuing class_fin1
    switch(config-pmap-c-que)# bandwidth percent 50
    switch(config-pmap-c-que)# queue-limit 500
    switch(config-pmap-c-que)# show policy-map type queuing Policy-vmotion
    
      Type queuing policy-maps
      ========================
    
      policy-map type queuing Policy-vmotion
        class type queuing Match-vmotion
          bandwidth percent 50
    
    switch(config-pmap-c-que)# exit
    switch(config-pmap-que)# exit
    switch(config)# port-profile type ethernet myppte
    switch(config-port-prof)# service-policy type queuing output my_pmtq
    switch(config-port-prof)# show policy-map interface
    switch(config-port-prof)# copy running-config startup-config

    クラスベース重み付け均等化キューイングの設定の確認

    設定を確認するには、次のいずれかのコマンドを使用します。

    コマンド

    説明

    show policy map type queuing name

    キューイング ポリシー マップの設定を表示します。

    show class-map type queuing name

    キューイング クラス マップの設定を表示します。

    show policy-map interface

    ポリシーマップ インターフェイスの設定を表示します。

    show running-config ipqos

    QoS の実行コンフィギュレーションを表示します。

    ポリシー マップ タイプの表示例

    この例では、ポリシー vmotion のキューイング タイプのポリシー マップを表示します。

    n1000v# show policy-map type queuing Policy-vmotion
    
      Type queuing policy-maps
      ========================
    
      policy-map type queuing Policy-vmotion
        class type queuing Match-vmotion
          bandwidth percent 50

    クラス マップの表示例

    この例では、vmotion に対するクラス マップ キューイングを表示します。

    n1000v# show class-map type queuing Match-vmotion
    
      Type queuing class-maps
      ========================
    
      class-map type queuing match-any Match-vmotion
        match protocol vmw_vmotion

    この例では、CoS キューイング タイプのクラス マップを表示します。

    n1000v# show class-map type queuing Match-Cos
      
      Type queuing class-maps
      ========================
    
        class-map type queuing match-all Match-Cos
          match cos 5

    ポリシー マップ インターフェイスの表示例

    この例では、インターフェイス ethernet policy v-motion のポリシー マップを表示します。

    n1000v# show policy-map interface ethernet 3/3
    
    Global statistics status :   disabled
    
    Ethernet3/3
    
      Service-policy (queuing) output:   Policy-vmotion
        policy statistics status:   enabled 
        
        Class-map (queuing):   Match-vmotion (match-any)
          Match: protocol vmw_vmotion
          bandwidth percent 50

    この例では、インターフェイス ethernet policy-CoS のサービス ポリシーを表示します。

    n1000v# show policy-map interface ethernet 3/3
    
    Global statistics status :   disabled
    
    Ethernet3/3
    
      Service-policy (queuing) output:   Policy-Cos
        policy statistics status:   enabled
    
        Class-map (queuing):   Match-Cos (match-all)
          Match: cos 5
          bandwidth percent 50

    この例では、インターフェイス port channel のサービス ポリシーを表示します。

    n1000v# show policy-map interface port-channel 1
    
    Global statistics status :   disabled
    
    port-channel1
    
      Service-policy (queuing) output:   Policy-vmotion
        policy statistics status:   enabled
    
        Class-map (queuing):   Match-vmotion (match-any)
          Match: protocol vmw_vmotion
          bandwidth percent 50

    クラスベース重み付け均等化キューイングの設定例

    次に、vMotion トラフィックに帯域幅の 50% を割り当てる例を示します。

    switch# configure terminal
    Enter configuration commands, one per line.  End with CNTL/Z.
    switch(config)# class-map type queuing match-any Match-vmotion
    switch(config-cmap-que)# exit
    switch(config)# policy-map type queuing Policy-vmotion
    switch(config-pmap-que)# class type queuing Match-vmotion
    switch(config-pmap-c-que)# bandwidth percent 50
    switch(config-pmap-c-que)# exit
    switch(config-pmap-que)# exit
    switch(config)# interface ethernet 3/3
    switch(config-if)# service-policy type queuing output Policy-vmotion

    次に、CoS 値が 5 のトラフィックに帯域幅の 50% を割り当てる例を示します。

    switch# configure terminal
    Enter configuration commands, one per line.  End with CNTL/Z.
    switch(config)# class-map type queuing match-all Match-Cos
    switch(config-cmap-que)# match cos 5
    switch(config-cmap-que)# exit
    switch(config)# policy-map type queuing Policy-Cos
    switch(config-pmap-que)# class type queuing Match-Cos
    switch(config-pmap-c-que)# bandwidth percent 50
    switch(config-pmap-c-que)# exit
    switch(config-pmap-que)# exit
    switch(config)# interface ethernet 3/3
    switch(config-if)# service-policy type queuing output Policy-Cos

    次の例では、複数のトラフィック クラスによるポリシー マップの方法を示します。

    switch# configure terminal
    Enter configuration commands, one per line.  End with CNTL/Z.
    switch(config)# class-map type queuing match-any class-vmotion
    switch(config-cmap-que)# match protocol vmw_vmotion
    switch(config-cmap-que)# exit
    switch(config)# class-map type queuing match-any class-cos-2
    switch(config-cmap-que)# match cos 2
    switch(config-cmap-que)# exit
    switch(config)# policy-map type queuing policy-priority-vmotion
    switch(config-pmap-que)# class type queuing class-vmotion
    switch(config-pmap-c-que)# bandwidth percent 60
    switch(config-pmap-c-que)# class type queuing class-cos-2
    switch(config-pmap-c-que)# bandwidth percent 40
    switch(config-pmap-c-que)# exit
    switch(config-pmap-que)# exit
    switch(config)# interface po1
    switch(config-if)# service-policy type queuing output policy-priority-vmotion
    switch(config-if)# show policy-map type queuing policy-priority-vmotion
    
      Type queuing policy-maps
      ========================
    
      policy-map type queuing policy-priority-vmotion
        class type queuing class-vmotion
          bandwidth percent 60
        class type queuing class-cos-2
          bandwidth percent 40
    
    switch# configure terminal
    Enter configuration commands, one per line.  End with CNTL/Z.
    switch(config)# interface po1
    switch(config-if)# service-policy type queuing output policy-priority-vmotion
    end
    
    switch(config-if)# show policy-map interface po1
    
    Global statistics status :   disabled
    
    port-channel1
    
      Service-policy (queuing) output:   policy-priority-vmotion
        policy statistics status:   enabled
    
        Class-map (queuing):   class-vmotion (match-any)
          Match: protocol vmw_vmotion
          bandwidth percent 60
    
        Class-map (queuing):   class-cos-2 (match-any)
          Match: cos 2
          bandwidth percent 40