Quality of Service の設定

この章は、次の項で構成されています。

QoS

Cisco UCS は、Quality of Service を実装するために、次の方法を提供しています。

  • システム全体にわたって、特定のタイプのトラフィックに対するグローバル設定を指定するためのシステム クラス

  • 個々の vNIC にシステム クラスを割り当てる QoS ポリシー

  • アップリンク イーサネット ポートによるポーズ フレームの扱い方法を決定するフロー制御ポリシー

QoS システム クラスに加えられたグローバル QoS の変更によって、すべてのトラフィックにデータプレーンでの中断が短時間発生する可能性があります。このような変更の例を次に示します。

  • 有効になっているクラスの MTU サイズの変更

  • 有効になっているクラスのパケット ドロップの変更

  • 有効になっているクラスの CoS 値の変更

Cisco UCS 6300 シリーズ Fabric Interconnect での Quality of Service に関するガイドラインおよび制限事項

  • Cisco UCS 6300 シリーズ Fabric Interconnect はすべてのシステム クラスに共有バッファを使用します。

  • マルチキャスト最適化はサポートされません。

  • あるクラスの QoS パラメータを変更すると、すべてのクラスのトラフィックが中断されます。次の表は、QoS システム クラスの変更およびシステムの再起動が引き起こされる条件を示しています。

    QoS システム クラスのステータス

    状態

    FI の再起動ステータス

    イネーブル

    ドロップとドロップなしを切り替えた場合

    ○

    ドロップなし

    イネーブルとディセーブルを切り替えた場合

    ○

    イネーブルかつドロップなし

    MTU サイズを変更した場合

    ○

  • QoS システム クラスでの変更の結果として、最初に従属 FI が再起動します。プライマリ FI は、[Pending Activities] で確認された後にのみ再起動します。

Cisco UCS Mini での Quality of Service に関するガイドラインおよび制限事項

  • Cisco UCS Mini はすべてのシステム クラスに共有バッファを使用します。

  • Bronze クラスは SPAN とバッファを共有します。SPAN または Bronze クラスを使用することを推奨します。

  • マルチキャスト最適化はサポートされません。

  • あるクラスの QoS パラメータを変更すると、すべてのクラスのトラフィックが中断されます。

  • イーサネット トラフィックと FC または FCoE トラフィックが混在している場合は、帯域が均等に配分されません。

  • 同じクラスからの複数のトラフィック ストリームが均等に分配されないことがあります。

  • FC または FCoE のパフォーマンス問題を回避するために、すべての破棄なしポリシーに同じ CoS 値を使用してください。

  • Platinum クラスと Gold クラスのみが破棄なしポリシーをサポートしています。

システム クラスの設定

システム クラス

Cisco UCS は、DCE(Data Center Ethernet)を使用して、Cisco UCS ドメイン内のすべてのトラフィックを処理します。イーサネットに対するこの業界標準の機能拡張では、イーサネットの帯域幅が 8 つの仮想レーンに分割されています。内部システムと管理トラフィック用に 2 つの仮想レーンが予約されています。それ以外の 6 つの仮想レーンの Quality of Service(QoS)を設定できます。Cisco UCS ドメイン全体にわたり、これら 6 つの仮想レーンで DCE 帯域幅がどのように割り当てられるかは、システム クラスによって決定されます。

各システム クラスは特定のタイプのトラフィック用に帯域幅の特定のセグメントを予約します。これにより、過度に使用されるシステムでも、ある程度のトラフィック管理が提供されます。たとえば、ファイバ チャネル プライオリティ システム クラスを設定して、FCoE トラフィックに割り当てられる DCE 帯域幅の割合を決定することができます。

次の表は、設定可能なシステム クラスをまとめたものです。

表 1 システム クラス

システム クラス

説明

Platinum

Gold

Silver

Bronze

サービスプロファイルの QoS ポリシーに含めることができる設定可能なシステム クラスのセット。各システム クラスはトラフィック レーンを 1 つ管理します。

これらのシステム クラスのプロパティはすべて、カスタム 設定やポリシーを割り当てるために使用できます。

Cisco UCS Mini の場合、パケットのドロップはプラチナ クラスとゴールド クラスでのみディセーブルにできます。1 つの Platinum クラスと 1 つの Gold クラスのみを no-drop クラスとして同時に設定できます。

ベスト エフォート

ベーシック イーサネット トラフィックのために予約されたレーンに対する QoS を設定するシステム クラス。

このシステム クラスのプロパティの中にはあらかじめ設定されていて、変更できないものもあります。たとえば、このクラスには、必要に応じて、データ パケットのドロップを許可するドロップ ポリシーがあります。このシステム クラスをディセーブルにはできません。

ファイバ チャネル

Fibre Channel over Ethernet トラフィックのために予約されたレーンに対する Quality Of Service を設定するシステム クラス。

このシステム クラスのプロパティの中にはあらかじめ設定されていて、変更できないものもあります。たとえば、このクラスには、データ パケットが絶対にドロップされないことを保証するドロップなしポリシーがあります。このシステム クラスをディセーブルにはできません。

(注)     

FCoE トラフィックには、他のタイプのトラフィックで使用できない、予約された QoS システム クラスがあります。他のタイプのトラフィックに FCoE で使用される CoS 値がある場合、その値は 0 にリマークされます。

システム クラスの設定

サーバ内のアダプタのタイプによっては、サポートされる MTU の最大値が制限される場合があります。たとえば、ネットワーク MTU が最大値を超えた場合、次のアダプタでパケットがドロップする可能性があります。

  • Cisco UCS M71KR CNA アダプタ:サポートされる MTU の最大値は 9216 です。

  • Cisco UCS 82598KR-CI アダプタ:サポートされる MTU の最大値は 14000 です。

手順
     コマンドまたはアクション目的
    ステップ 1UCS-A# scope eth-server 

    イーサネット サーバ モードを開始します。

     
    ステップ 2UCS-A /eth-server # scope qos 

    イーサネット サーバ QoS モードを開始します。

     
    ステップ 3UCS-A /eth-server/qos # scope eth-classified {bronze | gold | platinum | silver} 

    指定されたシステム クラスに対し、イーサネット サーバ QoS イーサネット機密モードを開始します。

     
    ステップ 4UCS-A /eth-server/qos/eth-classified # enable 

    指定されたシステム クラスをイネーブルにします。

     
    ステップ 5UCS-A /eth-server/qos/eth-classified # set cos cos-value 

    指定されたシステム クラスにサービス クラスを指定します。有効なサービス クラスの値は 0 ~ 6 です。

    重要:

    すべての非ドロップ ポリシーに対して、UCS と N5K で 同じ CoS 値を使用します。エンドツーエンド PFC が正常に動作することを保証するには、すべての中間スイッチで同じ QoS ポリシーを設定します。

     
    ステップ 6UCS-A /eth-server/qos/eth-classified # set drop {drop | no-drop} 

    チャネルでパケットをドロップできるかどうか指定します。

    (注)     

    ドロップに変更を保存すると、次の警告メッセージが表示されます。「Warning: The operation will cause momentary disruption to traffic forwarding」

     
    ステップ 7UCS-A /eth-server/qos/eth-classified # set mtu {mtu-value | fc | normal}  最大伝送単位(使用されるパケット サイズ)。MTU の最大値は 9216 です。
    (注)     

    vNIC に対応する QoS ポリシーがある場合、ここで指定した MTU は、関連付けられた QoS システム クラスで指定された MTU と同等以下でなければなりません。この MTU 値が QoS システム クラスの MTU 値を超えている場合、データ転送中にパケットがドロップされる可能性があります。

    MTU に変更を保存すると、次の警告メッセージが表示されます。「Warning: The operation will cause momentary disruption to traffic forwarding」

     
    ステップ 8UCS-A /eth-server/qos/eth-classified # set multicast-optimize {no | yes} 

    クラスがマルチキャスト パケット送信に最適化されるかどうかを指定します。

     
    ステップ 9UCS-A /eth-server/qos/eth-classified # set weight {weight-value | best-effort | none} 

    指定されたシステム クラスに対して相対的な重み値を指定します。有効な重み値は 0 ~ 10 です。

     
    ステップ 10UCS-A /eth-server/qos/eth-classified # commit-buffer 

    トランザクションをシステムの設定にコミットします。

     

    次の例は、プラチナ システム クラスをイネーブルにして、チャネルによるパケットのドロップを許可し、サービス クラスを 6 に設定して、MTU を normal に設定し、相対重みを 5 に設定して、トランザクションをコミットする方法を示しています。

    UCS-A# scope eth-server
    UCS-A /eth-server # scope qos
    UCS-A /eth-server/qos # scope eth-classified platinum
    UCS-A /eth-server/qos/eth-classified # enable
    UCS-A /eth-server/qos/eth-classified* # set drop drop
    Warning: The operation will cause momentary disruption to traffic forwarding
    UCS-A /eth-server/qos/eth-classified* # set cos 6
    UCS-A /eth-server/qos/eth-classified* # set mtu normal
    Warning: The operation will cause momentary disruption to traffic forwarding
    UCS-A /eth-server/qos/eth-classified* # set weight 5
    UCS-A /eth-server/qos/eth-classified* # commit-buffer
    UCS-A /eth-server/qos/eth-classified # 
    

    システム クラスのディセーブル化

    QoS ポリシーで使用されるシステム クラスをディセーブルにすると、Cisco UCS Manager は QoS ポリシーが設定されているサーバのトラフィックに対して CoS 0 のシステム クラスを設定します。CoS 0 に設定されているシステム クラスがない場合、ベスト エフォート システム クラスが使用されます。ベスト エフォート システム クラスやファイバ チャネル システム クラスはディセーブルにできません。

    手順
       コマンドまたはアクション目的
      ステップ 1UCS-A# scope eth-server 

      イーサネット サーバ モードを開始します。

       
      ステップ 2UCS-A /eth-server # scope qos 

      イーサネット サーバ QoS モードを開始します。

       
      ステップ 3UCS-A /eth-server/qos # scope eth-classified {bronze | gold | platinum | silver} 

      指定されたシステム クラスに対し、イーサネット サーバ QoS イーサネット機密モードを開始します。

       
      ステップ 4UCS-A /eth-server/qos/eth-classified # disable 

      指定したシステム クラスをディセーブルにします。

       
      ステップ 5UCS-A /eth-server/qos/eth-classified # commit-buffer 

      トランザクションをシステムの設定にコミットします。

       

      次に、platinum システム クラスをディセーブルにし、トランザクションをコミットする例を示します。

      UCS-A# scope eth-server
      UCS-A /eth-server # scope qos
      UCS-A /eth-server/qos # scope eth-classified platinum
      UCS-A /eth-server/qos/eth-classified # disable
      UCS-A /eth-server/qos/eth-classified* # commit-buffer
      UCS-A /eth-server/qos/eth-classified # 
      

      Quality of Service ポリシーの設定

      Quality Of Service ポリシー

      Quality Of Service(QoS)ポリシーは、vNIC または vHBA に向けた発信トラフィックにシステム クラスを割り当てます。このシステム クラスにより、このトラフィックに対する Quality Of Service が決定されます。一部のアダプタでは、発信トラフィックでバーストやレートなど追加の制御を指定することもできます。

      vNIC ポリシー、または vHBA ポリシーに QoS ポリシーをインクルードし、その後、このポリシーをサービス プロファイルにインクルードして、vNIC または vHBA を設定する必要があります。

      QoS ポリシーの設定

      手順
         コマンドまたはアクション目的
        ステップ 1Switch-A# scope org org-name 

        指定した組織で組織モードを開始します。デフォルト組織モードを開始するには、/ を org-name として入力します。

         
        ステップ 2Switch-A /org # create qos-policy policy-name 

        指定した QoS ポリシーを作成し、組織 QoS ポリシー モードを開始します。

         
        ステップ 3Switch-A /org/qos-policy # create egress-policy 

        QoS ポリシーが使用する出力ポリシー(vNIC および vHBA の両方)を作成し、組織 QoS ポリシーの出力ポリシー モードを開始します。

         
        ステップ 4Switch-A /org/qos-policy/egress-policy # set host-cos-control {full | none} 

        (任意)ホストと Cisco UCS Manager のどちらが vNIC に対するサービス クラス(CoS)を制御するかを指定します。この設定は、vHBA には影響しません。

        ホストに CoS を制御させるには、full キーワードを使用します。パケットに有効な CoS 値がある場合、ホストはその値を使用します。それ以外の場合、指定されたクラス プライオリティに関連付けられた CoS 値を使用します。指定したプライオリティに関連付けられている CoS 値を Cisco UCS Manager に使用させるには、none キーワードを使用します。

         
        ステップ 5Switch-A /org/qos-policy/egress-policy # set prio sys-class-name 

        出力ポリシーで使用されるシステム クラスを指定します。sys-class-name 引数には、次のいずれかのクラス キーワードを指定できます。

        • [Fc]:vHBA トラフィックだけを制御する QoS ポリシーにこのプライオリティを使用します。

        • [Platinum]:vNIC トラフィックだけを制御する QoS ポリシーにこのプライオリティを使用します。

        • [Gold]:vNIC トラフィックだけを制御する QoS ポリシーにこのプライオリティを使用します。

        • [Silver]:vNIC トラフィックだけを制御する QoS ポリシーにこのプライオリティを使用します。

        • [Bronze]:vNIC トラフィックだけを制御する QoS ポリシーにこのプライオリティを使用します。

        • [Best Effort]:このプライオリティを使用しないでください。 ベーシック イーサネット トラフィック レーンのために予約されています。このプライオリティを QoS ポリシーに割り当て、別のシステム クラスを CoS 0 に設定する場合、Cisco UCS Manager はこのシステム クラスのデフォルトには戻りません。そのトラフィックの CoS 0 でプライオリティがデフォルトに戻ります。

         
        ステップ 6Switch-A /org/qos-policy/egress-policy # set rate {line-rate | kbps} burst bytes 

        想定されるトラフィックの平均レートを指定します。このレートを下回るトラフィックは、常に準拠です。デフォルトは line-rate で、値 10,000,000 に等しいラインレートです。最小値は 8 で、最大値は 40,000,000 です。

        レート制限は、Cisco UCS VIC-1240 仮想インターフェイス カードおよび Cisco UCS VIC-1280 仮想インターフェイス カード の vNIC でのみサポートされます。Cisco UCS M81KR 仮想インターフェイス カード は、vNIC および vHBA 両方のレート制限をサポートします。

         
        ステップ 7Switch-A /org/qos-policy/egress-policy # commit-buffer 

        トランザクションをシステムの設定にコミットします。

         

        次の例は、vNIC トラフィックの QoS ポリシーを作成し、プラチナ システム クラスを割り当てて出力ポリシーのレート制限(トラフィック レートとバースト サイズ)を設定し、トランザクションをコミットします。

        Switch-A# scope org /
        Switch-A /org # create qos-policy VnicPolicy34
        Switch-A /org/qos-policy* # create egress-policy
        Switch-A /org/qos-policy/egress-policy* # set prio platinum
        Switch-A /org/qos-policy/egress-policy* # set rate 5000000 burst 65000
        Switch-A /org/qos-policy/egress-policy* # commit-buffer
        Switch-A /org/qos-policy/egress-policy # 
        

        次の例は、vHBA トラフィックの QoS ポリシーを作成し、fc(ファイバ チャネル)システム クラスを割り当てて出力ポリシーのレート制限(トラフィック レートとバースト サイズ)を設定し、トランザクションをコミットします。

        Switch-A# scope org /
        Switch-A /org # create qos-policy VhbaPolicy12
        Switch-A /org/qos-policy* # create egress-policy
        Switch-A /org/qos-policy/egress-policy* # set prio fc
        Switch-A /org/qos-policy/egress-policy* # set rate 5000000 burst 65000
        Switch-A /org/qos-policy/egress-policy* # commit-buffer
        Switch-A /org/qos-policy/egress-policy # 
        
        次の作業

        QoS ポリシーは、vNIC または vHBA テンプレートにインクルードします。

        QoS ポリシーの削除

        使用中の QoS ポリシーを削除した場合、または QoS ポリシーで使用されているシステム クラスをディセーブルにした場合、この QoS ポリシーを使用している vNIC と vHBA はすべて、ベスト エフォート システム クラスまたは CoS が 0 のシステム クラスに割り当てられます。マルチテナント機能を実装しているシステムでは、Cisco UCS Manager はまず、その組織階層から一致する QoS ポリシーを見つけようとします。

        手順
           コマンドまたはアクション目的
          ステップ 1UCS-A# scope org org-name 

          指定した組織の組織モードを開始します。ルート組織モードを開始するには、org-name に / と入力します。

           
          ステップ 2UCS-A /org # delete qos-policy policy-name 

          指定された QoS ポリシーを削除します。

           
          ステップ 3UCS-A /org # commit-buffer 

          トランザクションをシステムの設定にコミットします。

           

          次の例は、QosPolicy34 という名前の QoS ポリシーを削除し、トランザクションをコミットします。

          UCS-A# scope org /
          UCS-A /org # delete qos-policy QosPolicy34
          UCS-A /org* # commit-buffer
          UCS-A /org #
          

          フロー制御ポリシーの設定

          フロー制御ポリシー

          フロー制御ポリシーは、ポートの受信バッファがいっぱいになったときに、Cisco UCS ドメインのアップリンク イーサネット ポートが IEEE 802.3x ポーズ フレームを送信および受信するかどうかを決定します。これらのポーズ フレームは、バッファがクリアされるまでの数ミリ秒間、送信側ポートからのデータの送信を停止するように要求します。

          LAN ポートとアップリンク イーサネット ポートの間でフロー制御が行われるようにするには、両方のポートで、対応する受信および送信フロー制御パラメータをイネーブルにする必要があります。Cisco UCSでは、これらのパラメータはフロー制御ポリシーにより設定されます。

          送信機能をイネーブルにした場合、受信パケット レートが高くなりすぎたときに、アップリンク イーサネット ポートはネットワーク ポートにポーズ要求を送信します。ポーズは数ミリ秒有効になった後、通常のレベルにリセットされます。受信機能をイネーブルにした場合、アップリンク イーサネット ポートは、ネットワーク ポートからのポーズ要求すべてに従います。ネットワーク ポートがポーズ要求をキャンセルするまで、すべてのトラフィックはこのアップリンク ポートで停止します。

          ポートにフロー制御ポリシーを割り当てているため、このポリシーを変更すると同時に、ポーズ フレームやいっぱいになっている受信バッファに対するポートの反応も変わります。

          フロー制御ポリシーの設定

          はじめる前に

          必要なフロー制御に対応する設定を使用して、ネットワーク ポートを設定します。たとえば、ポリシーのフロー制御ポーズ フレームに対する送信設定を有効にした場合は、必ず、ネットワーク ポートの受信パラメータを on または desired に設定します。Cisco UCS ポートでフロー制御フレームを受信する場合は、ネットワーク ポートの送信パラメータが on または desire に設定されていることを確認します。フロー制御を使用する必要がない場合は、ネットワーク ポートの受信パラメータと送信パラメータを off に設定できます。

          手順
             コマンドまたはアクション目的
            ステップ 1UCS-A# scope eth-uplink 

            イーサネット アップリンク モードを開始します。

             
            ステップ 2UCS-A /eth-uplink # scope flow-control 

            イーサネット アップリンク フロー制御モードを開始します。

             
            ステップ 3UCS-A /eth-uplink/flow-control # create policy policy-name 

            指定されたフロー制御ポリシーを作成します。

             
            ステップ 4UCS-A /eth-uplink/flow-control/policy # set prio prio-option 

            次のフロー制御プライオリティ オプションのいずれかを指定します。

            • auto:PPP がこのファブリック インターコネクトで使用されるかどうか、Cisco UCS システムとネットワークがネゴシエートします。

            • on:このファブリック インターコネクト上で PPP が有効にされます。

             
            ステップ 5UCS-A /eth-uplink/flow-control/policy # set receive receive-option 

            次のフロー制御受信オプションのいずれかを指定します。

            • off:ネットワークからのポーズ要求は無視され、トラフィック フローは通常どおり継続します。

            • on:ポーズ要求に従い、そのアップリンク ポート上のすべてのトラフィックは、ネットワークでポーズ要求が取り消されるまで停止されます。

             
            ステップ 6UCS-A /eth-uplink/flow-control/policy # set send send-option 

            次のフロー制御送信オプションのいずれかを指定します。

            • off:パケット負荷に関係なくポート上のトラフィックが通常どおり流れます。

            • on:着信パケット レートが非常に高くなる場合に、Cisco UCS システムがポーズ要求をネットワークに送信します。ポーズは数ミリ秒有効になった後、通常のレベルにリセットされます。

             
            ステップ 7UCS-A /eth-uplink/flow-control/policy # commit-buffer 

            トランザクションをシステムの設定にコミットします。

             

            次の例は、フロー制御ポリシーを設定し、トランザクションをコミットします。

            UCS-A# scope eth-uplink
            UCS-A /eth-uplink # scope flow-control
            UCS-A /eth-uplink/flow-control # create policy FlowControlPolicy23
            UCS-A /eth-uplink/flow-control/policy* # set prio auto
            UCS-A /eth-uplink/flow-control/policy* # set receive on
            UCS-A /eth-uplink/flow-control/policy* # set send on
            UCS-A /eth-uplink/flow-control/policy* # commit-buffer
            UCS-A /eth-uplink/flow-control/policy #
            
            次の作業

            フロー制御ポリシーと、アップリンク イーサネット ポート、またはポート チャネルを関連付けます。

            フロー制御ポリシーの削除

            手順
               コマンドまたはアクション目的
              ステップ 1UCS-A# scope eth-uplink 

              イーサネット アップリンク モードを開始します。

               
              ステップ 2UCS-A /eth-uplink # scope flow-control 

              イーサネット アップリンク フロー制御モードを開始します。

               
              ステップ 3UCS-A /eth-uplink/flow-control # delete policy policy-name 

              指定されたフロー制御ポリシーを削除します。

               
              ステップ 4UCS-A /eth-uplink/flow-control # commit-buffer 

              トランザクションをシステムの設定にコミットします。

               

              次の例は、FlowControlPolicy23 という名前のフロー制御ポリシーを削除し、トランザクションをコミットします。

              UCS-A# scope eth-uplink
              UCS-A /eth-uplink # scope flow-control
              UCS-A /eth-uplink/flow-control # delete policy FlowControlPolicy23
              UCS-A /eth-uplink/flow-control* # commit-buffer
              UCS-A /eth-uplink/flow-control #