[openstack-dev] [neutron][qos] Egress minimum bandwidth assurance

Hirofumi Ichihara ichihara.hirofumi at lab.ntt.co.jp
Mon Jun 27 21:58:37 UTC 2016


I think that the implementation is complex for me and maybe reviewer.
Could you propose devref like vlan-aware-vms[1]?

[1]: https://review.openstack.org/#/c/318317/

Thanks,
Hirofumi

On 2016/06/24 18:10, Alonso Hernandez, Rodolfo wrote:
>
> Hello:
>
> Ichihara, thank you for your answer. It was just a test to find out 
> how to setup correctly the egress traffic shaping. I was facing this 
> situation and I found the problem: I was using bridges with 
> datapath_type = netdev, instead of system. That was the main problem. 
> Now I can correctly apply a QoS and a queue, and assign a traffic to 
> this queue.
>
> To avoid using veth between bridges, I’m implementing the following 
> solution:
>
> -Create a new queue for each min-qos rule applied to a port (the same 
> min-qos rule could be applied to several ports, of course).
>
> -Because ovs only shapes traffic in the egress direction (ovs point of 
> view):
>
> oCreate a qos policy for each port in br-int in the same network of 
> the port to apply the qos; then assign the created queue to this qos 
> policy.
>
> oCreate a qos policy for the external port in br-tun, and then assign 
> the queue
>
> oCreate a qos policy for the external port for the br-phy in the same 
> network, and assign the queue
>
> -In br-int, table 0, enqueue all traffic going into ovs from the port 
> with qos policy assigned to the queue created.
>
> With this implementation, you don’t need to use veth and all traffic 
> going from the port with the qos policy assigned to other VM or 
> external port (physical bridge, tunnel) will be shaped. Of course, 
> this implementation is a bit tangled, so please be gentle in the 
> code-review.
>
> Regards.
>
> *From:*Hirofumi Ichihara [mailto:ichihara.hirofumi at lab.ntt.co.jp]
> *Sent:* Tuesday, June 21, 2016 10:27 AM
> *To:* OpenStack Development Mailing List (not for usage questions) 
> <openstack-dev at lists.openstack.org>
> *Subject:* Re: [openstack-dev] [neutron][qos] Egress minimum bandwidth 
> assurance
>
> On 2016/06/15 18:54, Alonso Hernandez, Rodolfo wrote:
>
>     Hello:
>
>     Context: try to develop a driver for this feature in OVS.
>
>     During the last week I’ve been testing several scenarios to make a
>     POC of this feature.
>
>     Scenario 1:
>
>     3 VM connected to br-int, sending traffic through br-physical to
>     other host (an external physical machine).
>
>     The first VM will have a min BW of 15 Mb. The physical port will
>     be limited to 20 Mb, so for VM2 and VM3 should be only 5 Mb of
>     available BW.
>
>     Those three VM are using iperf to inject traffic against the
>     external host.
>
>     A) One qos policy and queue is created at VM1 port (with
>     other_config:{min-rate=15000000}). The traffic is not shapped.
>
>     B) Another qos policy and queue with this minimum BW is created at
>     int-phy-patchport. The traffic is not shapped.
>
>     C) Another qos policy and queue with this minimum BW is created at
>     phy-int-phy-patchport. The traffic is not shapped.
>
>     D) Another qos policy and queue with this minimum BW is created at
>     physical port. The traffic is still not shapped.
>
>     In OVS all traffic from VM1 is filtered to match the correct qos
>     and queues at the ports.
>
> It seems that this scenario doesn't expect some scenarios like DVR and 
> multiple NIC. I thought that the queue should be set in br-int with 
> veth(instead of patch port) between br-int and bt-tun. However, I 
> guess that this may occur a issue that traffic cannot turn back in 
> br-int. That may happen in Scenario2 case.
>
> Therefore, I think that we should set the queue to physical port but 
> we have a problem how do we specify the NIC in some cases(vlan, vxlan, 
> DVR mode router and DVR FloatingIP).
>
>
>
>     Scenario 2:
>
>     Similar to scenario 1, but using a fourth VM to act as server. In
>     this case, traffic only goes through br-int.
>
>     A) One qos policy and queue is created at VM1 port (with
>     other_config:{min-rate=15000000}). The traffic is not shapped.
>
>     B) Another qos policy and queue with this minimum BW is created at
>     output port (VM4 server port). The traffic is still not shapped.
>
>
>
> I think we cannot manage this case because we doesn't know MAX 
> bandwidth of traffic in br-int and the bandwidth is usually enough.
> We should focus our attention on a case that the traffic goes out to 
> other nodes.
>
> Thanks,
> Hirofumi
>
>
>     I need some help with this implementation, because I’m running out
>     of time an ideas!
>
>     Thank you in advance.
>
>
>
>
>     __________________________________________________________________________
>
>     OpenStack Development Mailing List (not for usage questions)
>
>     Unsubscribe:OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>     <mailto:OpenStack-dev-request at lists.openstack.org?subject:unsubscribe>
>
>     http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20160628/c8d146d7/attachment.html>


More information about the OpenStack-dev mailing list