10.2. QoS ポリシーおよびルールの作成と適用

Quality of Service (QoS) ポリシーおよびルールを作成してポリシーをポートに適用するには、以下の手順を実施します。

手順

  1. QoS ポリシーを作成するプロジェクトの ID を特定します。

    (overcloud) $ openstack project list
    -------------------------------------------+
    | ID                               | Name    |
    -------------------------------------------+
    | 8c409e909fb34d69bc896ab358317d60 | admin   |
    | 92b6c16c7c7244378a062be0bfd55fa0 | service |
    -------------------------------------------+
  2. 新規 QoS ポリシーを作成します。

    (overcloud) $ openstack network qos policy create --share --project <project_ID> <policy_name>
  3. QoS ポリシーの新規ルールを作成します。

    (overcloud) $ openstack network qos rule create --type <rule-type> [rule properties] <policy_name>

    表10.1 ルールの属性

    属性説明

    max_kbps

    インスタンスが送信可能な最大速度 (Kbps 単位)

    max_burst_kbps

    トークンバッファーが満杯であった場合に、そのポートが一度に送信することのできるデータの最大量 (キロビット単位)。トークンバッファーは「max_kbps」の速度で補充されます。

    TCP トラフィックのバースト値は、必要な帯域幅の制限値の 80% に設定することができます。たとえば、帯域幅の制限が 1000 kbps に設定されている場合には、800 kbps のバースト値で十分です。

    注記
    • バースト値を低く設定しすぎると、帯域幅の制限値が適切であっても帯域幅の使用量にスロットリングが適用されるため、帯域幅が想定よりも低くなります。
    • バースト値の設定が高すぎると、ほとんどのパケットに制限が適用されず、帯域幅の制限が予想よりも高くなります。

    min-kbps

    インスタンスに確保される最小帯域幅 (Kbps 単位)

    ingress/egress

    ルールが適用されるトラフィックの方向。クラウドサーバーの視点からは、受信はダウンロードを意味し、送信はアップロードを意味します。

    dscp-mark

    DSCP マークの 10 進数値を指定します。

  4. ポリシーを適用するポートまたはネットワークを設定します。既存のポートまたはネットワークを更新することも、ポリシーを適用する新規ポートまたはネットワークを作成することもできます。

    • 既存のポートにポリシーを適用する場合:

      (overcloud) $ openstack port set --qos-policy <policy_name> <port_name|port_ID>
    • 新規ポートを作成する場合:

      (overcloud) $ openstack port create --qos-policy <policy_name> --network <network_name|network_ID> <port_name|port_ID>
    • 既存のネットワークにポリシーを適用する場合:

      (overcloud) $ openstack network set --qos-policy <policy_name> <network_name|network_ID>
    • 新規ネットワークを作成する場合:

      (overcloud) $ openstack network create --qos-policy <policy_name> <network_name>

10.2.1. 帯域幅を制限する QoS ポリシーおよびルールの作成と適用

ネットワーク、ポート、または Floating IP の帯域幅を制限する QoS ポリシーを作成して、指定したレートを超えるトラフィックをすべてドロップすることができます。帯域幅を制限する QoS ポリシーおよびルールを作成して適用するには、以下の手順を実施します。

手順

  1. /etc/neutron/plugins/ml2/<agent_name>_agent.ini で OpenStack Networking に対する qos 拡張機能がまだ有効にされていない場合は、以下の手順を実施します。

    1. カスタム環境ファイルを作成して、以下の設定を追加します。

      parameter_defaults:
        NeutronSriovAgentExtensions: 'qos'
    2. この設定を適用するには、その他の環境ファイルと共にカスタム環境ファイルをスタックに追加して、オーバークラウドをデプロイします。

      (undercloud) $ openstack overcloud deploy --templates \
        -e [your environment files]
        -e /home/stack/templates/<custom-environment-file>.yaml

      詳しい情報は、『director のインストールと使用方法』「オーバークラウド環境の変更」を参照してください。

  2. QoS ポリシーを作成するプロジェクトの ID を特定します。

    (overcloud) $ openstack project list
    +----------------------------------+----------+
    | ID                               | Name     |
    +----------------------------------+----------+
    | 4b0b98f8c6c040f38ba4f7146e8680f5 | auditors |
    | 519e6344f82e4c079c8e2eabb690023b | services |
    | 80bf5732752a41128e612fe615c886c6 | demo     |
    | 98a2f53c20ce4d50a40dac4a38016c69 | admin    |
    +----------------------------------+----------+
  3. admin プロジェクトに「bw-limiter」という名前の QoS ポリシーを作成します。

    (overcloud) $ openstack network qos policy create --share --project 98a2f53c20ce4d50a40dac4a38016c69 bw-limiter
  4. 「bw-limiter」ポリシーのルールを設定します。

    (overcloud) $ openstack network qos rule create --type bandwidth-limit --max_kbps 3000 --max_burst_kbps 300 bw-limiter
  5. 「bw-limiter」ポリシーを適用するポートを設定します。

    (overcloud) $ openstack port set --qos-policy bw-limiter <port_name|port_ID>