第10章 Quality-of-Service (QoS) の設定
Red Hat OpenStack Platform 9 ではネットワークの quality-of-service (QoS) ポリシーがサポートされるようになりました。これらのポリシーにより、OpenStack の管理者は、インスタンスの出力トラフィックに速度制限を適用して、さまざまなサービスレベルを提供することができます。QoS ポリシーを実装すると、指定した速度を超過するトラフィックはドロップされるようになります。
10.1. QoS ポリシースコープ
QoS ポリシーは個々のポートまたは特定のテナントネットワークに適用されます。テナントネットワークに適用される場合、そのポリシーは、ポリシーが適用されていないポートに継承されます。
10.2. QoS ポリシー管理
QoS ポリシーは、動的に適用、変更、削除することができます。以下の例では、帯域幅を制限するルールを手動で作成して、1 つのポートに適用します。
テナントの一覧を確認して、QoS ポリシーを作成するテナントの ID を決定します。
# openstack project list +----------------------------------+----------+ | ID | Name | +----------------------------------+----------+ | 4b0b98f8c6c040f38ba4f7146e8680f5 | auditors | | 519e6344f82e4c079c8e2eabb690023b | services | | 80bf5732752a41128e612fe615c886c6 | demo | | 98a2f53c20ce4d50a40dac4a38016c69 | admin | +----------------------------------+----------+
admin
テナントにbw-limiter
という名前の QoS ポリシーを作成します。# neutron qos-policy-create 'bw-limiter' --tenant-id 98a2f53c20ce4d50a40dac4a38016c69
bw-limiter
の規制ルールを設定します。# neutron qos-bandwidth-limit-rule-create bw-limiter --max_kbps 3000 --max_burst_kbps 3000
bw-limiter
ポリシーを適用する neutron ポートを設定します# neutron port-update <port id> --qos-policy bw-limiter
QoS ルールを確認します。以下に例を示します。
# neutron qos-rule-show 9be535c3-daa2-4d7b-88ea-e8de16 +-------------------+---------------------------------+ | Field | Value | +-------------------+---------------------------------+ | id | 9be535c3-daa2-4d7b-88ea-e8de16 | | rule_type | bandwidth_limit | | description | | | max_kbps | 3000 | | max_burst_kbps | 300 | +-------------------+---------------------------------+
以下の値により、規制のアルゴリズムを適宜に設定することができます。
-
max_kbps
: インスタンスが送信可能な最大速度 (Kbps 単位) -
max_burst_kbps
: トークンのバッファーが満杯であった場合にそのポートが一度に送信することができたデータの最大量 (キロビット単位)。トークンのバッファーは「max_kbps」の速度で補充されます。
10.3. QoS ポリシーの RBAC
Red Hat OpenStack Platform 9 では、QoS ポリシーにロールベースアクセス制御 (RBAC) を追加され、QoS ポリシーを特定のプロジェクトに適用できるようになりました。
たとえば、優先順位が低いネットワークトラフィックを許可する QoS ポリシーを作成して、特定のプロジェクトにのみ適用することができます。以下のコマンドでは、以前に作成した bw-limiter ポリシーが demo テナントに割り当てられます。
# neutron rbac-create 'bw-limiter' --type qos-policy --target-tenant 80bf5732752a41128e612fe615c886c6 --action access_as_shared