9.3. QoS ポリシーを使用した最小帯域幅の制御
Red Hat OpenStack Platform (RHOSP) Networking サービス (neutron) の場合、ネットワークサービスのバックエンドの適用とリソース割り当てのスケジューリングの 2 つの異なるコンテキストで保証された最小帯域幅の QoS ルールを適用できます。
ネットワークバックエンド、ML2/OVS または ML2/SR-IOV は、ルールが適用される各ポートが指定されたネットワーク帯域幅以上であることを保証しようとします。
リソース割り当てスケジューリング帯域幅強制を使用すると、Compute サービス (nova) は最小帯域幅をサポートするホストにのみ VM インスタンスを配置します。
ネットワークサービスバックエンドの適用、リソース割り当てスケジュールの適用、またはその両方を使用して、QoS 最小帯域幅ルールを適用できます。
次の表は、最小帯域幅の QoS ポリシーをサポートする Modular Layer2(ML2) メカニズムドライバーを示しています。
ML2 メカニズムドライバー | エージェント | VNIC タイプ |
---|---|---|
ML2/SR-IOV | sriovnicswitch | direct |
ML2/OVS | openvswitch | normal |
9.3.1. Networking サービスのバックエンドの実行を使用した最小帯域幅の適用 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Platform (RHOSP) のサービス品質 (QoS) ポリシーをポートに適用することで、ポートのネットワークトラフィックの最小帯域幅を保証できます。これらのポートは、フラットまたは VLAN 物理ネットワークによってサポートされている必要があります。
現在、Open Virtual Network メカニズムドライバー (ML2/OVN) を備えた Modular Layer 2 プラグインは、最小帯域幅の QoS ルールをサポートしていません。
前提条件
-
RHOSP Networking サービス (neutron) には、
qos
サービスプラグインがロードされている必要があります。(これがデフォルトです)。 同じ物理インターフェイス上で、帯域幅が保証されているポートと保証されていないポートを混在させないでください。これにより、保証のないポートで必要なリソースが拒否される (枯渇する) 可能性があります。
ヒントホストアグリゲートを作成して、帯域幅が保証されているポートと帯域幅が保証されていないポートを分離します。
手順
Source コマンドで認証情報ファイルを読み込みます。
例
source ~/overcloudrc
$ source ~/overcloudrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow qos
サービスプラグインが Networking サービスにロードされていることを確認します。openstack network qos policy list
$ openstack network qos policy list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow qos
サービスプラグインがロードされていない場合は、ResourceNotFound
エラーが発生します。続行するにはqos
サービスプラグインをロードする必要があります。詳細は、「QoS ポリシーのネットワークサービスの設定」 を参照してください。QoS ポリシーを作成するプロジェクトの ID を特定します。
openstack project list
$ openstack project list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 前の手順のプロジェクト ID を使用して、プロジェクトの QoS ポリシーを作成します。
例
この例では、
guaranteed_min_bw
という名前の QoS ポリシーがadmin
プロジェクト用に作成されています。openstack network qos policy create --share \ --project 98a2f53c20ce4d50a40dac4a38016c69 guaranteed_min_bw
$ openstack network qos policy create --share \ --project 98a2f53c20ce4d50a40dac4a38016c69 guaranteed_min_bw
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ポリシーのルールを設定します。
例
この例では、
guaranteed_min_bw
という名前のポリシーに対して、最小帯域幅が40000000
kbps の入力および出力の QoS ルールが作成されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ポリシーを適用するポートを設定します。
例
この例では、
guaranteed_min_bw
ポリシーがポート56x9aiw1-2v74-144x-c2q8-ed8w423a6s12
に適用されます。openstack port set --qos-policy guaranteed_min_bw \ 56x9aiw1-2v74-144x-c2q8-ed8w423a6s12
$ openstack port set --qos-policy guaranteed_min_bw \ 56x9aiw1-2v74-144x-c2q8-ed8w423a6s12
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
ML2/SR-IOV
ルートアクセスを使用して、コンピュートノードにログインし、物理関数で保持されている仮想関数の詳細を表示します。
例
ip -details link show enp4s0f1
# ip -details link show enp4s0f1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ML2/OVS
ルートアクセスを使用して、コンピュートノードにログインし、物理ブリッジインターフェイスに
tc
ルールとクラスを表示します。例
tc class show dev mx-bond
# tc class show dev mx-bond
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
class htb 1:11 parent 1:fffe prio 0 rate 4Gbit ceil 34359Mbit burst 9000b cburst 8589b class htb 1:1 parent 1:fffe prio 0 rate 72Kbit ceil 34359Mbit burst 9063b cburst 8589b class htb 1:fffe root rate 34359Mbit ceil 34359Mbit burst 8589b cburst 8589b
class htb 1:11 parent 1:fffe prio 0 rate 4Gbit ceil 34359Mbit burst 9000b cburst 8589b class htb 1:1 parent 1:fffe prio 0 rate 72Kbit ceil 34359Mbit burst 9063b cburst 8589b class htb 1:fffe root rate 34359Mbit ceil 34359Mbit burst 8589b cburst 8589b
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.3.2. 最小帯域幅の QoS ポリシーを使用したインスタンスのスケジューリング リンクのコピーリンクがクリップボードにコピーされました!
最小帯域幅の QoS ポリシーをポートに適用して、Red Hat OpenStack Platform (RHOSP) VM インスタンスが生成されるホストに最小のネットワーク帯域幅があることを保証できます。
前提条件
-
RHOSP Networking サービス (neutron) には、
qos
およびplacement
サービスのプラグインがロードされている必要があります。qos
サービスプラグインはデフォルトでロードされます。 ネットワークサービスは、次の API 拡張機能をサポートする必要があります。
-
agent-resources-synced
-
port-resource-request
-
qos-bw-minimum-ingress
-
- ML2/OVS または ML2/SR-IOV メカニズムドライバーを使用する必要がある。
- 最小帯域幅を確保する QoS ポリシーを変更できるのは、ポリシーが割り当てられたポートを使用するインスタンスがない場合に限る。ポートがバインドされている場合、ネットワークサービスは配置 API の使用情報を更新できない。
- Placement サービスは、マイクロバージョン 1.29 をサポートする必要があります。
- Compute サービス (nova) はマイクロバージョン 2.72 をサポートする必要があります。
手順
Source コマンドで認証情報ファイルを読み込みます。
例
source ~/overcloudrc
$ source ~/overcloudrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow qos
サービスプラグインが Networking サービスにロードされていることを確認します。openstack network qos policy list
$ openstack network qos policy list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow qos
サービスプラグインがロードされていない場合は、ResourceNotFound
エラーが発生します。続行するにはqos
サービスプラグインをロードする必要があります。詳細は、「QoS ポリシーのネットワークサービスの設定」 を参照してください。QoS ポリシーを作成するプロジェクトの ID を特定します。
openstack project list
$ openstack project list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 前の手順のプロジェクト ID を使用して、プロジェクトの QoS ポリシーを作成します。
例
この例では、
guaranteed_min_bw
という名前の QoS ポリシーがadmin
プロジェクト用に作成されています。openstack network qos policy create --share \ --project 98a2f53c20ce4d50a40dac4a38016c69 guaranteed_min_bw
$ openstack network qos policy create --share \ --project 98a2f53c20ce4d50a40dac4a38016c69 guaranteed_min_bw
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ポリシーのルールを設定します。
例
この例では、
guaranteed_min_bw
という名前のポリシーに対して、最小帯域幅が40000000
kbps の入力および出力の QoS ルールが作成されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ポリシーを適用するポートを設定します。
例
この例では、
guaranteed_min_bw
ポリシーがポート56x9aiw1-2v74-144x-c2q8-ed8w423a6s12
に適用されます。openstack port set --qos-policy guaranteed_min_bw \ 56x9aiw1-2v74-144x-c2q8-ed8w423a6s12
$ openstack port set --qos-policy guaranteed_min_bw \ 56x9aiw1-2v74-144x-c2q8-ed8w423a6s12
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
- アンダークラウドホストに stack ユーザーとしてログインします。
source コマンドでアンダークラウドの認証情報ファイルを読み込みます。
source ~/stackrc
$ source ~/stackrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 利用可能なすべてのリソースプロバイダーをリスト表示します。
openstack --os-placement-api-version 1.17 resource provider list
$ openstack --os-placement-api-version 1.17 resource provider list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 特定のリソースが提供する帯域幅を確認します。
openstack --os-placement-api-version 1.17 \ resource provider inventory list <rp_uuid>
(undercloud)$ openstack --os-placement-api-version 1.17 \ resource provider inventory list <rp_uuid>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
この例では、リソースプロバイダー UUID、
e518d381-d590-5767-8f34-c20def34b252
を使用して、ホストdell-r730-014
のインターフェイスenp6s0f1
によって提供される帯域幅がチェックされます。openstack --os-placement-api-version 1.17 \ resource provider inventory list e518d381-d590-5767-8f34-c20def34b252
[stack@dell-r730-014 nova]$ openstack --os-placement-api-version 1.17 \ resource provider inventory list e518d381-d590-5767-8f34-c20def34b252
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow インスタンス実行時のリソースプロバイダーに対する要求を確認するには、以下のコマンドを実行します。
openstack --os-placement-api-version 1.17 \ resource provider show --allocations <rp_uuid>
(undercloud)$ openstack --os-placement-api-version 1.17 \ resource provider show --allocations <rp_uuid>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
この例では、リソースプロバイダーに対するクレームは、リソースプロバイダー UUID
e518d381-d590-5767-8f34-c20def34b252
を使用して、ホストdell-r730-014
でチェックされます。openstack --os-placement-api-version 1.17 resource provider show --allocations e518d381-d590-5767-8f34-c20def34b252 -f value -c allocations
[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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
{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}}}
{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}}}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow