[ovs-discuss] Issue with group type select load balancing

Simon Jouet simon.jouet at gmail.com
Mon Oct 24 14:18:01 UTC 2016


Hi everyone,

I've been running into some problems with the balancing of traffic using
the group type select and I'm wondering if it's something I'm doing wrong
or a potential issue in ovs.

So the setup is quite simple, I'm using mininet to setup a fat-tree
topology with a k of 4, so I end-up with 4 core switches and 4 pods, each
pod containing 2 aggregation switches and 2 edge switches. (like that
http://image.slidesharecdn.com/fataugust13-130922092035-phpapp01/95/
fattree-a-scalable-commodity-data-center-network-architecture-23-638.jpg?cb=
1379842614)

I configure all the routes in the different switches and use a a group of
type select to share the traffic across the redundant paths, at the edge
switch everything is working fine and the traffic is shared evenly. (I made
a small UI to visualize the traffic, but I guess adding images in the
mailing list isn't a great idea..) So the traffic come in port 4 (one of
the host is generating traffic) and it's fairly load balanced between port
1 and port 2 (image: https://postimg.org/image/uxlq76b39/)

Then if I look at the aggregation layer (https://postimg.org/image/
ww5kfu8rh/) the traffic comes in port 3 and 4 from the lower layers but
doesn't get shared fairly at all between the two output ports (port 1 and
2). If the weight of the two buckets is the same no traffic goes through
port 1 at all, if I increase the weight of port 1 to 2 (and port 2 remains
at a weight of 1) then the traffic get distributed but unfairly (port 1 is
1/3 of port 2). The weird thing is that the first aggregation switch in
each pod is forwarding all the traffic to the first bucket in the group and
the second one to the second bucket in the group.

My initial thought has been about the hashing algorithm, the traffic is
initially shared across two buckets at the edge switch and then the same
hashing is performed in the aggregation resulting in always the same hash
and therefore bucket for the subset of traffic going through this specific
switch. I've played a bit with the *selection_method* argument to hash on a
different set of fields but it didn't seem like changing anything.

Anyway I'm open to suggestions :), I will try a bit more with the hashing
because I feel like it might be the issue ...

Thanks,
Simon
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://openvswitch.org/pipermail/ovs-discuss/attachments/20161024/6a245846/attachment-0002.html>


More information about the discuss mailing list