4.2. QoS ポリシーを使用したネットワークトラフィックの制限
RHOSP ネットワーク、ポート、Floating IP、またはゲートウェイ IP (テクノロジープレビュー) の帯域幅を制限し、指定されたレートを超えるトラフィックをドロップする Red Hat OpenStack Services on OpenShift (RHOSO) Networking サービス (neutron) のサービス品質 (QoS) ポリシーを作成できます。
前提条件
-
管理者が、
qosサービスプラグインを使用して Networking サービスを有効にした。(プラグインはデフォルトでロードされます。) -
管理者がプロジェクトを作成し、管理者からクラウドにアクセスするための
clouds.yamlファイルが提供されている。 python-openstackclientパッケージがワークステーション上に存在する。$ dnf list installed python-openstackclient
手順
システムの
OS_CLOUD変数がクラウドに設定されていることを確認します。$ echo $OS_CLOUD my_cloud必要に応じて変数をリセットします。
$ export OS_CLOUD=my_other_cloud代わりに、
openstackコマンドを実行するたびに--os-cloud <cloud_name>オプションを追加してクラウド名を指定することもできます。qosサービスプラグインが Networking サービスにロードされていることを確認します。$ openstack network qos policy listqosサービスプラグインがロードされていない場合は、ResourceNotFoundエラーが発生します。続行するにはqosサービスプラグインをロードする必要があります。詳細は、RHOSO 管理者に問い合わせてください。QoS ポリシーを作成するプロジェクトの ID を特定します。
$ openstack project list出力例
+----------------------------------+----------+ | ID | Name | +----------------------------------+----------+ | 4b0b98f8c6c040f38ba4f7146e8680f5 | auditors | | 519e6344f82e4c079c8e2eabb690023b | services | | 80bf5732752a41128e612fe615c886c6 | demo | | 98a2f53c20ce4d50a40dac4a38016c69 | admin | +----------------------------------+----------+前の手順のプロジェクト ID を使用して、プロジェクトの QoS ポリシーを作成します。
例
この例では、
adminプロジェクト用にbw-limiterという名前の QoS ポリシーが作成されます。$ openstack network qos policy create --share --project 98a2f53c20ce4d50a40dac4a38016c69 bw-limiterポリシーのルールを設定します。
注記各ルールのタイプまたは方向が異なる限り、複数のルールをポリシーに追加できます。たとえば、1 つを送信方向、もう 1 つを受信方向に設定して 2 つの bandwidth-limit ルールを指定できます。
例
この例では、帯域幅制限が
50000kbps、最大バーストサイズが50000kbps のbw-limiterという名前のポリシーに対して QoSIngress と Egress ルールが作成されます。$ openstack network qos rule create --type bandwidth-limit \ --max-kbps 50000 --max-burst-kbits 50000 --ingress bw-limiter $ openstack network qos rule create --type bandwidth-limit \ --max-kbps 50000 --max-burst-kbits 50000 --egress bw-limiterポリシーがアタッチされたポートを作成するか、既存のポートにポリシーをアタッチできます。
例 - ポリシーがアタッチされたポートの作成
この例では、ポリシー
bw-limiterがポートport2に関連付けられています。$ openstack port create --qos-policy bw-limiter --network private port2出力例
+-----------------------+--------------------------------------------------+ | Field | Value | +-----------------------+--------------------------------------------------+ | admin_state_up | UP | | allowed_address_pairs | | | binding_host_id | | | binding_profile | | | binding_vif_details | | | binding_vif_type | unbound | | binding_vnic_type | normal | | created_at | 2024-09-19T19:20:24Z | | data_plane_status | None | | description | | | device_id | | | device_owner | | | dns_assignment | None | | dns_name | None | | extra_dhcp_opts | | | fixed_ips | ip_address='192.0.2.210', subnet_id='292f8c-...' | | id | f51562ee-da8d-42de-9578-f6f5cb248226 | | ip_address | None | | mac_address | fa:16:3e:d9:f2:ba | | name | port2 | | network_id | 55dc2f70-0f92-4002-b343-ca34277b0234 | | option_name | None | | option_value | None | | port_security_enabled | False | | project_id | 98a2f53c20ce4d50a40dac4a38016c69 | | qos_policy_id | 8491547e-add1-4c6c-a50e-42121237256c | | revision_number | 6 | | security_group_ids | 0531cc1a-19d1-4cc7-ada5-49f8b08245be | | status | DOWN | | subnet_id | None | | tags | [] | | trunk_details | None | | updated_at | 2024-09-19T19:23:00Z | +-----------------------+--------------------------------------------------+例 - ポリシーの既存のポートへのアタッチ
この例では、ポリシー
bw-limiterがport1に関連付けられています。$ openstack port set --qos-policy bw-limiter port1