4.2. 使用 QoS 策略限制网络流量


您可以在 OpenShift (RHOSO)网络服务(neutron)质量上创建一个 Red Hat OpenStack Services,以限制 RHOSP 网络、端口、浮动 IP 或网关 IP (技术预览)上的带宽,并丢弃超过指定率的任何流量。

先决条件

  • 您的管理员已使用 qos 服务插件启用了 Networking 服务。(默认情况下会加载插件。)
  • 管理员已为您创建一个项目,并为您提供了一个 clouds.yaml 文件来访问云。
  • python-openstackclient 软件包驻留在您的工作站上。

    $ dnf list installed python-openstackclient
    Copy to Clipboard Toggle word wrap

流程

  1. 确认为您的云设置了系统 OS_CLOUD 变量:

    $ echo $OS_CLOUD
    my_cloud
    Copy to Clipboard Toggle word wrap

    如果需要,重置变量:

    $ export OS_CLOUD=my_other_cloud
    Copy to Clipboard Toggle word wrap

    作为替代方案,您可以在每次运行 openstack 命令时添加 --os-cloud <cloud_name > 选项指定云名称。

  2. 确认 qos 服务插件已加载到网络服务中:

    $ openstack network qos policy list
    Copy to Clipboard Toggle word wrap

    如果没有加载 qos 服务插件,则您会收到 ResourceNotFound 错误,并且您必须加载 qos 服务插件,然后才能继续。如需更多信息,请参阅您的 RHOSO 管理员。

  3. 识别您要为其创建 QoS 策略的项目的 ID:

    $ openstack project list
    Copy to Clipboard Toggle word wrap

    输出示例

    +----------------------------------+----------+
    | ID                               | Name     |
    +----------------------------------+----------+
    | 4b0b98f8c6c040f38ba4f7146e8680f5 | auditors |
    | 519e6344f82e4c079c8e2eabb690023b | services |
    | 80bf5732752a41128e612fe615c886c6 | demo     |
    | 98a2f53c20ce4d50a40dac4a38016c69 | admin    |
    +----------------------------------+----------+
    Copy to Clipboard Toggle word wrap

  4. 使用上一步中的项目 ID,为项目创建一个 QoS 策略。

    示例

    在本例中,为 admin 项目创建一个名为 bw-limiter 的 QoS 策略:

    $ openstack network qos policy create --share --project 98a2f53c20ce4d50a40dac4a38016c69 bw-limiter
    Copy to Clipboard Toggle word wrap
  5. 配置策略的规则。

    注意

    您可以在策略中添加多个规则,只要每个规则的类型或方向不同。例如,您可以指定两个带宽限制规则,一个用于出口,另一个具有入口方向。

    示例

    在本例中,为名为 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
    Copy to Clipboard Toggle word wrap
  6. 您可以创建一个附加策略的端口,或将策略附加到预先存在的端口。

    示例 - 创建带有附加策略的端口

    在本例中,策略 bw-limiter 与端口 port2 关联:

    $ openstack port create --qos-policy bw-limiter --network private port2
    Copy to Clipboard Toggle word wrap

    输出示例

    +-----------------------+--------------------------------------------------+
    | Field                 | Value                                            |
    +-----------------------+--------------------------------------------------+
    | admin_state_up        | UP                                               |
    | allowed_address_pairs |                                                  |
    | binding_host_id       |                                                  |
    | binding_profile       |                                                  |
    | binding_vif_details   |                                                  |
    | binding_vif_type      | unbound                                          |
    | binding_vnic_type     | normal                                           |
    | created_at            | 2024-09-19T19:20:24Z                             |
    | data_plane_status     | None                                             |
    | description           |                                                  |
    | device_id             |                                                  |
    | device_owner          |                                                  |
    | dns_assignment        | None                                             |
    | dns_name              | None                                             |
    | extra_dhcp_opts       |                                                  |
    | fixed_ips             | ip_address='192.0.2.210', subnet_id='292f8c-...' |
    | id                    | f51562ee-da8d-42de-9578-f6f5cb248226             |
    | ip_address            | None                                             |
    | mac_address           | fa:16:3e:d9:f2:ba                                |
    | name                  | port2                                            |
    | network_id            | 55dc2f70-0f92-4002-b343-ca34277b0234             |
    | option_name           | None                                             |
    | option_value          | None                                             |
    | port_security_enabled | False                                            |
    | project_id            | 98a2f53c20ce4d50a40dac4a38016c69                 |
    | qos_policy_id         | 8491547e-add1-4c6c-a50e-42121237256c             |
    | revision_number       | 6                                                |
    | security_group_ids    | 0531cc1a-19d1-4cc7-ada5-49f8b08245be             |
    | status                | DOWN                                             |
    | subnet_id             | None                                             |
    | tags                  | []                                               |
    | trunk_details         | None                                             |
    | updated_at            | 2024-09-19T19:23:00Z                             |
    +-----------------------+--------------------------------------------------+
    Copy to Clipboard Toggle word wrap

    示例 - 将策略附加到预先存在的端口

    在本例中,策略 bw-limiterport1 关联:

    $ openstack port set --qos-policy bw-limiter port1
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat