admin
不忘初心,方得始终
级别: 管理员
只看楼主 | | | 0楼 发表于:2016-01-25 23:51

Openstack 云计算平台Juno版本中对VM的网络进行限速

Openstack Juno版本中对客户的VM进行限速是必不可少的。一个原因是可以保证用户使用的带宽不会超出阀值,另外如果客户的云主机中毒后会频繁对外发包,限制了虚拟路由器的接口带宽,可以保证一个租户的网络不稳定不会影响到云平台的其他用户。
具体的设置方法如下:
1. 先要查看虚拟路由器的名称。
查看虚拟路由器的名称

2.连接到Openstack控制节点,执行环境变量后使用neutron router-list查看虚拟路由器的设备UUID。
查看虚拟路由器设备的UUID

虚拟路由器的设备UUID为:0bfe6678-1b66-481d-8668-2bbb93f27556
3.使用neutron l3-agent-list-hosting-router命令通过路由器的设备UUID参数去获取到虚拟路由器所在的网络节点。
查看虚拟路由器所在的网络节点

通过观察,可以看到router2虚拟路由器创建在networker2的网络节点上。
4.在网络节点上执行命令:
ethtool –K enp5s0f1 gro off
ethtool –K eno2 gro off
5.通过ip netns |grep 0bfe6678-1b66-481d-8668-2bbb93f27556查找虚拟路由器对应的名称。
查找虚拟路由器的对应名称
  
查找到的虚拟路由器对应的名称为:
qrouter-0bfe6678-1b66-481d-8668-2bbb93f27556
6.通过ip netns exec 虚拟路由器名 ip address的命令查看虚拟路由器上的接口。
查看到的接口其中qr-XXX是对外网的设备,qg-XXX是对内网的设备。可以理解为qr-XXX限制云主机的下载,qg-XXX限制云主机的上传。
查看虚拟路由器上的接口名称

查看到虚拟路由器上的接口是:
qr-792fc84f-de
qg-c88e64f2-27。
7.如果要查看当前项目中对虚拟路由器接口上的限速可以使用命令:
ip netns exec qrouter-0bfe6678-1b66-481d-8668-2bbb93f27556 tc qdisc list dev qr-792fc84f-de
ip netns exec qrouter-0bfe6678-1b66-481d-8668-2bbb93f27556 tc qdisc list dev qg-c88e64f2-27
查看虚拟路由器限速情况

表示当前没有给此虚拟路由器的接口进行限速。
8.给路由器的接口增加限速,可以使用以下命令:
增加虚拟路由器接口限速

如果需要修改某个项目内的带宽,只要把add改成change,同时修改rate后的带宽值就行。
修改虚拟路由器接口限速
  
9.查看当前路由器的接口的网速,可以使用以下命令:
查看当前的虚拟路由器接口限速