検索

10.2.2. 最小帯域幅を確保する QoS ポリシーおよびルールの作成と適用

download PDF

物理ネットワーク (physnet) がサポートする segmentation_type=flat または segmentation_type=vlan が設定されたネットワークのポートに対して、帯域幅の確保を要求することができます。

注記
  • 同じ物理インターフェース上で、帯域幅を確保するポートと確保しないポートを混在させないでください。確保しないポートの帯域幅が不足する可能性があるためです。ホストアグリゲートを作成して、帯域幅を確保するポートを確保しないポートから分離します。
  • 最小帯域幅を確保する QoS ポリシーを変更できるのは、ポリシーが割り当てられたポートを使用するインスタンスがない場合に限ります。

サポートされているドライバーおよびエージェント

  • SR-IOV (sriovnicswitch) vnic_types: direct、macvtap
  • ML2/OVS (openvswitch) vnic_types: normal、direct

    注記

    ML2/OVN は最小帯域幅をサポートしません。

前提条件

  • Placement サービスは、マイクロバージョン 1.29 をサポートする必要があります。
  • Compute (nova) サービスは、マイクロバージョン 2.72 をサポートする必要があります。
  • Networking (neutron) サービスは、以下の API 拡張機能をサポートする必要があります。

    • agent-resources-synced
    • port-resource-request
    • qos-bw-minimum-ingress
  • OpenStack CLI を使用して配置情報を照会するには、アンダークラウドに Placement サービスパッケージ python3-osc-placement をインストールします。

手順

  1. Openstack Networking で Placement サービスプラグインがまだ設定されていない場合には、以下の手順を実施します。

    1. カスタム環境ファイルに NeutronServicePlugins がすでに設定されている場合には、パラメーターを更新して「placement」を含めます。そうでなければ、カスタム環境ファイルを作成して以下の設定を追加します。

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

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

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

  2. (オプション) vnic_types をブラックリストに登録するには (複数の ML2 メカニズムドライバーがデフォルトでサポートし、複数のエージェントが Placement により追跡されている場合)、/etc/neutron/plugins/ml2/ml2_conf.inivnic_type_blacklist を追加して、エージェントを再起動します。

    [ovs_driver]
    vnic_type_blacklist = direct
    [sriov_driver]
    #vnic_type_blacklist = direct
  3. 最小帯域幅を提供する必要のある各コンピュートノードの該当するエージェントに対して、リソースプロバイダーの受信および送信帯域幅を設定します。以下の形式を使用して、受信もしくは送信のみ、またはその両方を設定することができます。

    • 送信帯域幅だけを設定する場合 (kbps 単位):

      resource_provider_bandwidths = <bridge0>:<egress_kbps>:,<bridge1>:<egress_kbps>:,...,<bridgeN>:<egress_kbps>:
    • 受信帯域幅だけを設定する場合 (kbps 単位):

      resource_provider_bandwidths = <bridge0>::<ingress_kbps>,<bridge1>::<ingress_kbps>,...,<bridgeN>::<ingress_kbps>
    • 送信および受信帯域幅の両方を設定する場合 (kbps 単位):

      resource_provider_bandwidths = <bridge0>:<egress_kbps>:<ingress_kbps>,<bridge1>:<egress_kbps>:<ingress_kbps>,...,<bridgeN>:<egress_kbps>:<ingress_kbps>

      以下に例を示します。

      • OVS エージェント用にリソースプロバイダーの受信および送信帯域幅を設定するには、/etc/neutron/plugins/ml2/openvswitch_agent.iniresource_provider_bandwidths を追加します。

        [ovs]
        bridge_mappings = physnet0:br-physnet0
        resource_provider_bandwidths = br-physnet0:10000000:10000000
      • SRIOV エージェント用にリソースプロバイダーの受信および送信帯域幅を設定するには、/etc/neutron/plugins/ml2/sriov_agent.iniresource_provider_bandwidths を追加します。

        [sriov_nic]
        physical_device_mappings = physnet0:ens5,physnet0:ens6
        resource_provider_bandwidths = ens5:40000000:40000000,ens6:40000000:40000000

    リソースプロバイダーの帯域幅を実装するには、設定したエージェントを再起動します。

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

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

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

    (overcloud) $ openstack network qos rule create --type minimum-bandwidth --min-kbps 40000000 --ingress guaranteed_min_bw
    (overcloud) $ openstack network qos rule create --type minimum-bandwidth --min-kbps 40000000 --egress guaranteed_min_bw
  7. 「guaranteed_min_bw」ポリシーを適用するポートを設定します。

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

検証

  1. 利用可能なすべてのリソースプロバイダーを一覧表示します。

    (undercloud) $ openstack --os-placement-api-version 1.17 resource provider list

    出力例:

    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    | uuid                                 | name                                                | generation | root_provider_uuid                   | parent_provider_uuid                 |
    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    | 31d3d88b-bc3a-41cd-9dc0-fda54028a882 | dell-r730-014.localdomain                           |         28 | 31d3d88b-bc3a-41cd-9dc0-fda54028a882 | None                                 |
    | 6b15ddce-13cf-4c85-a58f-baec5b57ab52 | dell-r730-063.localdomain                           |         18 | 6b15ddce-13cf-4c85-a58f-baec5b57ab52 | None                                 |
    | e2f5082a-c965-55db-acb3-8daf9857c721 | dell-r730-063.localdomain:NIC Switch agent          |          0 | 6b15ddce-13cf-4c85-a58f-baec5b57ab52 | 6b15ddce-13cf-4c85-a58f-baec5b57ab52 |
    | d2fb0ef4-2f45-53a8-88be-113b3e64ba1b | dell-r730-014.localdomain:NIC Switch agent          |          0 | 31d3d88b-bc3a-41cd-9dc0-fda54028a882 | 31d3d88b-bc3a-41cd-9dc0-fda54028a882 |
    | f1ca35e2-47ad-53a0-9058-390ade93b73e | dell-r730-063.localdomain:NIC Switch agent:enp6s0f1 |         13 | 6b15ddce-13cf-4c85-a58f-baec5b57ab52 | e2f5082a-c965-55db-acb3-8daf9857c721 |
    | e518d381-d590-5767-8f34-c20def34b252 | dell-r730-014.localdomain:NIC Switch agent:enp6s0f1 |         19 | 31d3d88b-bc3a-41cd-9dc0-fda54028a882 | d2fb0ef4-2f45-53a8-88be-113b3e64ba1b |
    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  2. 特定のリソースが提供する帯域幅を確認します。

    (undercloud) $ openstack --os-placement-api-version 1.17 resource provider inventory list <rp_uuid>

    以下の出力例には、dell-r730-014 のインターフェース enp6s0f1 によって提供される帯域幅が示されています。

    [stack@dell-r730-014 nova]$ openstack --os-placement-api-version 1.17 resource provider inventory list e518d381-d590-5767-8f34-c20def34b252
    ---------------------------------------------------------------------------------------------------
    | resource_class             | allocation_ratio | min_unit |   max_unit | reserved | step_size |    total |
    ---------------------------------------------------------------------------------------------------
    | NET_BW_EGR_KILOBIT_PER_SEC |              1.0 |        1 | 2147483647 |        0 |         1 | 10000000 |
    | NET_BW_IGR_KILOBIT_PER_SEC |              1.0 |        1 | 2147483647 |        0 |         1 | 10000000 |
    ---------------------------------------------------------------------------------------------------
  3. インスタンス実行時のリソースプロバイダーに対する要求を確認するには、以下のコマンドを実行します。

    (undercloud) $ openstack --os-placement-api-version 1.17 resource provider show --allocations  <rp_uuid>

    出力例:

    [stack@dell-r730-014 nova]$ openstack --os-placement-api-version 1.17 resource provider show --allocations  e518d381-d590-5767-8f34-c20def34b252 -f value -c allocations
    {3cbb9e07-90a8-4154-8acd-b6ec2f894a83: {resources: {NET_BW_EGR_KILOBIT_PER_SEC: 1000000, NET_BW_IGR_KILOBIT_PER_SEC: 1000000}}, 8848b88b-4464-443f-bf33-5d4e49fd6204: {resources: {NET_BW_EGR_KILOBIT_PER_SEC: 1000000, NET_BW_IGR_KILOBIT_PER_SEC: 1000000}}, 9a29e946-698b-4731-bc28-89368073be1a: {resources: {NET_BW_EGR_KILOBIT_PER_SEC: 1000000, NET_BW_IGR_KILOBIT_PER_SEC: 1000000}}, a6c83b86-9139-4e98-9341-dc76065136cc: {resources: {NET_BW_EGR_KILOBIT_PER_SEC: 3000000, NET_BW_IGR_KILOBIT_PER_SEC: 3000000}}, da60e33f-156e-47be-a632-870172ec5483: {resources: {NET_BW_EGR_KILOBIT_PER_SEC: 1000000, NET_BW_IGR_KILOBIT_PER_SEC: 1000000}}, eb582a0e-8274-4f21-9890-9a0d55114663: {resources: {NET_BW_EGR_KILOBIT_PER_SEC: 3000000, NET_BW_IGR_KILOBIT_PER_SEC: 3000000}}}
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.