9.4. 使用 QoS 策略限制网络流量
您可以创建 Red Hat OpenStack Platform (RHOSP)网络服务(neutron)质量服务质量(QoS)策略,该策略限制 RHOSP 网络、端口或浮动 IP 上的带宽,并丢弃任何超过指定速率的流量。
先决条件
-
网络服务必须加载
qos
服务插件。(插件默认会被加载。)
流程
提供您的凭据文件。
示例
source ~/overcloudrc
$ source ~/overcloudrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确认
qos
服务插件已加载到网络服务中:openstack network qos policy list
$ openstack network qos policy list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果没有加载
qos
服务插件,则您会收到ResourceNotFound
错误,且您必须加载qos
服务插件,然后才能继续。更多信息请参阅 第 9.2 节 “为 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 策略。
示例
在本例中,为
admin
项目创建一个名为bw-limiter
的 QoS 策略:openstack network qos policy create --share --project 98a2f53c20ce4d50a40dac4a38016c69 bw-limiter
$ openstack network qos policy create --share --project 98a2f53c20ce4d50a40dac4a38016c69 bw-limiter
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置策略的规则。
注意只要每个规则的类型或方向不同,您可以在策略中添加多个规则。例如,您可以指定两个带宽限制规则,一个用于出口,另一个带有 ingress 方向。
示例
在本例中,为名为
bw-limiter
的策略创建 QoS 入口和出口规则,带宽限制为50000
kbps,最大突发大小为50000
kbps :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
$ 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以创建附加策略的端口,或者将策略附加到预先存在的端口。
示例 - 创建附加策略的端口
在本例中,策略
bw-limiter
与端口port2
关联:openstack port create --qos-policy bw-limiter --network private port2
$ openstack port create --qos-policy bw-limiter --network private port2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例 - 将策略附加到预先存在的端口
在本例中,策略
bw-limiter
与port1
关联:openstack port set --qos-policy bw-limiter port1
$ openstack port set --qos-policy bw-limiter port1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
确认将限制策略应用到端口。
获取策略 ID。
示例
在本例中,查询 QoS 策略
bw-limiter
:openstack network qos policy show bw-limiter
$ openstack network qos policy show bw-limiter
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查询端口,并确认其策略 ID 与上一步中获取的策略 ID 匹配。
示例
在本例中,查询
port1
:openstack port show port1
$ openstack port show port1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow