【openstack网络】neutron专项总结七:qos特性

本文介绍了OVS中的QoS策略,包括Policing和Shaping的实现方式,并通过iperf3工具进行了测试。此外,还探讨了OpenStackneutron的QoS配置,如何在neutron中创建和应用QoS策略,并提到了浮动IP的QoS原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、OVS qos原理

QoS在OVS中的使用和传统网络一样,主要分为如下两种:

Policing管制介绍

Policing用于控制接口上接收分组(ingress)的速率,是一种简单的QoS的功能,通过简单的丢包机制实现接口速率的限制,它既可以作用于物理接口,也可以作用于虚拟接口;

Shaping介绍

Shaping是作用于接口上的出口流量(egress)策略,可以实现多个QoS队列,不同队列里面处理不同策略;

OVS自身并不实现QoS功能,QoS功能的实现是在linux内核中,OVS只是能够配置部分OVS支持的QoS类型。如果需要一些OVS不支持的QoS类型,可以通过patch来支持这些配置,也可以通过传统的TC工具直接进行QoS的策略配置。

Policing实现

policing在OVS中采用ingress_policing_rate和ingress_policing_burst两个字段完成ingress入口限速功能,该两个字段放在Interface表中,由于QoS的内核实现都是原有的linux的sch_xx模块,所以这里不分析内核实现。

ovs-vsctl set interface eth1 ingress_policing_rate=1000
ovs-vsctl set interface eth1 ingress_policing_burst=100

eth1:加入ovs桥端口的网络接口名称;
ingress_policing_rate:为接口最大收包速率,单位kbps,超过该速度的报文将被丢弃,默认值为0表示关闭该功能;
ingress_policing_burst:为最大突发流量大小,单位kb。默认值0表示1000kb,这个参数最小值应不小于接口的MTU,通常设置为ingress_policing_rate的10%更有利于tcp实现全速率;
通过命令ovs-vsctl list interface eth1可以查看配置:
在这里插入图片描述-

Shaping整形实现

shaping用于实现出口流量的控制,使用了队列queue,可以缓存和调度数据包发送顺序,比policing更加精确和有效,在OVS的数据表中主要使用QoS和Queue两张表。

ovs-vsctl set port eth1 qos=@newqos -- 
--id=@newqos create qos type=linux-htb queues=0=@q0 -- 
--id=@q0 create queue other-config:max-rate=100000000

其中
–id=@q0 create queue other-config:max-rate=100000000创建q0队列,设置最大速率100M,通过ovs-vsctl查看配置的Queue表内容如下:
在这里插入图片描述
–id=@newqos create qos type=linux-htb queues=0=@q0 创建qos规则newqos,类型为linu

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值