9.2. QoS ポリシーのネットワークサービスの設定
Red Hat OpenStack Platform (RHOSP) Networking サービス (neutron) のサービス品質機能は、qos サービスプラグインを通じて提供されます。ML2/OVS および ML2/OVN メカニズムドライバーでは、デフォルトで qos が読み込まれます。ただし、これは ML2/SR-IOV には当てはまりません。
ML2/OVS および ML2/SR-IOV メカニズムドライバーで qos サービスプラグインを使用する場合は、それぞれのエージェントに qos 拡張機能もロードする必要があります。
次のリストは、ネットワークサービスを QoS 用に設定するために実行する必要があるタスクをまとめたものです。タスクの詳細は、次のリストの後に続きます。
すべてのタイプの QoS ポリシーの場合:
-
qosサービスプラグインを追加します。 -
エージェントの
qos拡張機能を追加します (OVS および SR-IOV のみ)。
-
最小帯域幅ポリシーのみを使用して VM インスタンスをスケジュールするための追加タスク:
- Compute サービス (nova) が使用する名前と異なる場合は、ハイパーバイザー名を指定します。
- 各コンピュートノードで、関連するエージェントのリソースプロバイダーの入力帯域幅と出力帯域幅を設定します。
-
(オプション)
vnic_typesをサポート対象外としてマークします。
トンネリングのみで ML/OVS を使用するシステムでの DSCP マーキングポリシーの追加タスク:
-
dscp_inheritをtrueに設定します。
-
前提条件
-
RHOSP アンダークラウドにアクセスできる
stackユーザーである必要がある。
手順
-
アンダークラウドホストに
stackユーザーとしてログインします。 source コマンドでアンダークラウドの認証情報ファイルを読み込みます。
$ source ~/stackrc
qosサービスプラグインがまだロードされていないことを確認します。$ openstack network qos policy list
qosサービスプラグインがロードされていない場合、ResourceNotFoundエラーが発生します。エラーが発生しない場合は、プラグインがロードされており、このトピックの手順を実行する必要はありません。YAML カスタム環境ファイルを作成します。
例
$ vi /home/stack/templates/my-neutron-environment.yaml
ご自分の環境ファイルには、
parameter_defaultsというキーワードを含める必要があります。parameter_defaultsの下の新しい行で、NeutronServicePluginsパラメーターにqosを追加します。parameter_defaults: NeutronServicePlugins: "qos"
ML2/OVS および ML2/SR-IOV メカニズムドライバーを使用する場合は、それぞれ
NeutronAgentExtensionsまたはNeutronSriovAgentExtensions変数を使用して、エージェントにqos拡張機能もロードする必要があります。ML2/OVS
parameter_defaults: NeutronServicePlugins: "qos" NeutronAgentExtensions: "qos"
ML2/SR-IOV
parameter_defaults: NeutronServicePlugins: "qos" NeutronSriovAgentExtensions: "qos"
最小帯域幅 QoS ポリシーを使用して VM インスタンスをスケジュールする場合は、次のことも行う必要があります。
プラグインのリストに
placementを追加し、リストにqosも含まれていることを確認します。parameter_defaults: NeutronServicePlugins: "qos,placement"
ハイパーバイザー名が Compute サービス (nova) で使用される標準的なハイパーバイザー名と一致する場合は、ステップ 7.iii に進みます。
ハイパーバイザー名が Compute サービスで使用される標準的なハイパーバイザー名と一致しない場合は、
resource_provider_default_hypervisorを使用して代替のハイパーバイザー名を指定します。ML2/OVS
parameter_defaults: NeutronServicePlugins: "qos,placement" ExtraConfig: Neutron::agents::ml2::ovs::resource_provider_default_hypervisor: %{hiera('fqdn_canonical')}ML2/SR-IOV
parameter_defaults: NeutronServicePlugins: "qos,placement" ExtraConfig: Neutron::agents::ml2::sriov::resource_provider_default_hypervisor: %{hiera('fqdn_canonical')}重要代替ハイパーバイザー名を設定する別の方法は、
resource_provider_hypervisorを使用することです。ML2/OVS
parameter_defaults: ExtraConfig: Neutron::agents::ml2::ovs::resource_provider_hypervisors:"ens5:%{hiera('fqdn_canonical')},ens6:%{hiera('fqdn_canonical')}"ML2/SR-IOV
parameter_defaults: ExtraConfig: Neutron::agents::ml2::sriov::resource_provider_hypervisors: "ens5:%{hiera('fqdn_canonical')},ens6:%{hiera('fqdn_canonical')}"
最小帯域幅を提供する必要のある各コンピュートノードの該当するエージェントに対して、リソースプロバイダーの受信および送信帯域幅を設定します。
次の形式を使用して、送信、受信、またはその両方を設定できます。
送信帯域幅だけを設定する場合 (kbps 単位):
NeutronOvsResourceProviderBandwidths: <bridge0>:<egress_kbps>:,<bridge1>:<egress_kbps>:,...,<bridgeN>:<egress_kbps>:
受信帯域幅だけを設定する場合 (kbps 単位):
NeutronOvsResourceProviderBandwidths: <bridge0>::<ingress_kbps>,<bridge1>::<ingress_kbps>,...,<bridgeN>::<ingress_kbps>
送信および受信帯域幅の両方を設定する場合 (kbps 単位):
NeutronOvsResourceProviderBandwidths: <bridge0>:<egress_kbps>:<ingress_kbps>,<bridge1>:<egress_kbps>:<ingress_kbps>,...,<bridgeN>:<egress_kbps>:<ingress_kbps>
例 - OVS エージェント
OVS エージェント用にリソースプロバイダーの受信および送信帯域幅を設定するには、ネットワーク環境ファイルに以下の設定を追加します。
parameter_defaults: ... NeutronBridgeMappings: physnet0:br-physnet0 NeutronOvsResourceProviderBandwidths: br-physnet0:10000000:10000000
例 - SRIOV エージェント
SRIOV エージェント用にリソースプロバイダーの受信および送信帯域幅を設定するには、ネットワーク環境ファイルに以下の設定を追加します。
parameter_defaults: ... NeutronML2PhysicalNetworkMtus: physnet0:1500,physnet1:1500 NeutronSriovResourceProviderBandwidths: ens5:40000000:40000000,ens6:40000000:40000000
オプション:
vnic_typesをサポート対象外として識別するには (複数の ML2 メカニズムドライバーがデフォルトでサポートし、複数のエージェントが Placement サービスで追跡されている場合)、環境ファイルに以下の設定を追加します。例 - OVS エージェント
parameter_defaults: ... NeutronOvsVnicTypeBlacklist: direct
例 - SRIOV エージェント
parameter_defaults: ... NeutronSriovVnicTypeBlacklist: direct
DSCP マーキングポリシーを作成し、トンネリングプロトコル (VXLAN または GRE) で ML2/OVS を使用する場合は、
NeutronAgentExtensionsの下に次の行を追加します。parameter_defaults: ... ControllerExtraConfig: neutron::config::server_config: agent/dscp_inherit: value: truedscp_inheritがtrueの場合、Networking サービスは内部ヘッダーの DSCP 値を外部ヘッダーにコピーします。コア heat テンプレート、その他の環境ファイル、およびこの新しいカスタム環境ファイルを指定して、deployment コマンドを実行します。
重要後で実行される環境ファイルで定義されているパラメーターとリソースが優先されることになるため、環境ファイルの順序は重要となります。
例
$ openstack overcloud deploy --templates \ -e <other_environment_files> \ -e /home/stack/templates/my-neutron-environment.yaml
検証
qosサービスプラグインがロードされていることを確認します。$ openstack network qos policy list
qosサービスプラグインがロードされている場合、ResourceNotFoundエラーは発生しません。
関連情報
- RHOSP Networking サービス用のメカニズムドライバードライバー
- Director インストールと使用方法 ガイドの 環境ファイル
- Director インストールと使用方法 ガイドの オーバークラウドの作成時の環境ファイルの追加
- 「Networking サービスのバックエンドの実行を使用した最小帯域幅の適用」
- 「最小帯域幅の QoS ポリシーを使用したインスタンスのスケジューリング」
- 「QoS ポリシーを使用したネットワークトラフィックの制限」
- 「DSCP マーキング QoS ポリシーを使用したネットワークトラフィックの優先順位付け」