2017-08-16 47 views
1

现在我正在学习OpenStack中的中子QoS服务。这是一个规则,即“带宽限制”。使用OpenStack Doucumentation的用户指南,我可以限制网络的带宽,并在Iperf使用后,我已验证带宽限制正在工作。OpenStack中子带宽限制方法

------------------------------------------------------------ 
Server listening on TCP port 5001 
TCP window size: 85.3 KByte (default) 
------------------------------------------------------------ 
[ 4] local 10.30.0.7 port 5001 connected with 192.168.115.105 port 
42726 
[ ID] Interval  Transfer  Bandwidth 
[ 4] 0.0- 6.5 sec 1.25 MBytes 1.62 Mbits/sec 

现在我很困惑中子可以限制网络或端口带宽的方法是什么。通过检查源代码,我还没有找到带宽限制的方法。

有谁知道中子的方法?哪些部分在限制带宽方面发挥重要作用?

感谢您的帮助:)中子

回答

1

带宽限制使用的是“服务质量”(“服务质量”)驱动程序实现的。正在使用的特定驱动程序取决于您的配置,但一个示例是neutron/plugins/ml2/drivers/openvswitch/agent/extension_drivers/qos_driver.py中的OVS(Open vSwitch)驱动程序。

该代码利用qos features in OVS在入口(进入交换机的数据包)上对出口(离开交换机的数据包)和监管(丢弃数据包)执行带宽整形(数据包排队和输出速率控制)。

linuxbridge插件的QoS为neutron/plugins/ml2/drivers/linuxbridge/agent/extension_drivers/qos_driver.py,并且使用标准Linux traffic control commandtc)通过neutron/agent/linux/tc_lib.py中的包装器。

+0

是的,你是绝对正确的。我的配置基于[配置](https://docs.openstack.org/mitaka/networking-guide/config-qos.html)。我想这是linuxbridge插件。请问,如果我更改** tc_lib.py **,可能会导致更多的数据包丢失?我想改变流量控制,以便通过使用Iperf来验证数据包丢失差异。谢谢。 – Otto

+0

我并不是很熟悉这部分中子代码,这里的评论将是讨论的一个可怕的地方。你可能想把这个问题提交给[openstack开发邮件列表](http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev)。 – larsks