Chapter 12. Configure Quality-of-Service (QoS)
Red Hat OpenStack Platform 9 introduces support for network quality-of-service (QoS) policies. These policies allow OpenStack administrators to offer varying service levels by applying rate limits to egress traffic for instances. As a result of implementing a QoS policy, any traffic that exceeds the specified rate is consequently dropped.
12.1. QoS Policy Scope
QoS policies are applied to individual ports, or to a particular tenant network, where ports with no specific policy attached will inherit the policy.
12.2. QoS Policy Management
QoS policies can be dynamically applied, modified, or removed. This example manually creates a bandwidth limiting rule and applies it to a port.
Review the list of tenants and determine the id of where you need to create QoS policy:
# openstack project list +----------------------------------+----------+ | ID | Name | +----------------------------------+----------+ | 4b0b98f8c6c040f38ba4f7146e8680f5 | auditors | | 519e6344f82e4c079c8e2eabb690023b | services | | 80bf5732752a41128e612fe615c886c6 | demo | | 98a2f53c20ce4d50a40dac4a38016c69 | admin | +----------------------------------+----------+
Create a QoS policy named
bw-limiter
in theadmin
tenant:# neutron qos-policy-create 'bw-limiter' --tenant-id 98a2f53c20ce4d50a40dac4a38016c69
Configure the policing rules for the
bw-limiter
policy:# neutron qos-bandwidth-limit-rule-create bw-limiter --max_kbps 3000 --max_burst_kbps 3000
Configure a neutron port to apply the
bw-limiter
policy:# neutron port-update <port id> --qos-policy bw-limiter
Review the QoS rule. For example:
# 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 | +-------------------+---------------------------------+
These values allow you to configure the policing algorithm accordingly:
-
max_kbps
- the maximum rate (in Kbps) that the instance is allowed to send. -
max_burst_kbps
- the maximum amount of data (in kbits) that the port could send in a instant if the token buffer was full. The token buffer is replenished at a "max_kbps" rate.
12.3. RBAC for QoS Policies
Red Hat OpenStack Platform 9 adds Role-based Access Control (RBAC) for QoS policies. As a result, you can now apply QoS policies to certain projects.
For example, you can now create a QoS policy that allows for lower-priority network traffic, and have it only apply to certain projects. In the following command below, the bw-limiter policy created previously is assigned to the demo tenant:
# neutron rbac-create 'bw-limiter' --type qos-policy --target-tenant 80bf5732752a41128e612fe615c886c6 --action access_as_shared