背景:链路聚合(Link Aggregation Control Protocol, or LACP)

Linux下可以多端口Bongding,那么Open vSwitch也是没问题的。

假设我们用得是Dell R730机器,4个网口,捆成一个,dell的网卡名是em1,而不是eth0。

ovs加bonding的命令:

ovs-vsctl add-bond <bridge name> <bond name> <list of interfaces>  

So

ovs-vsctl add-bond ovsbr0 bond0 em1 em2 em3 em4  lacp=active other_config:lacp-time=fast  

注意加了个lcap-active,缺省不激活的,没法用。

查看一下:

ovs-appctl bond/show <bond name>  
ovs-appctl lacp/show <bond name>

bond/show的结果:

# ovs-appctl bond/show bond0
bond_mode: balance-slb  
bond-hash-algorithm: balance-slb  
bond-hash-basis: 0  
updelay: 0 ms  
downdelay: 0 ms  
next rebalance: 6415 ms  
lacp_negotiated: true

slave em4: enabled  
    active slave
    may_enable: true

slave em3: enabled  
    may_enable: true

slave em2: enabled  
    may_enable: true

slave em1: enabled  
    may_enable: true

这样bond就设置好了,链路也聚合了,但是,没完啊,没有地址,大家按以前的方法把bond0的ip和网关设置好即可:

# vi /etc/sysconfig/network-scripts/ifcfg-bond0
-----------
DEVICE=bond0  
DEVICETYPE=ovs  
TYPE=OVSPort  
OVS_BRIDGE=ovsbr0  
BOOTPROTO=none  
NM_CONTROLLED=yes  
IPV6INIT=no  
PEERDNS=no  
ONBOOT=yes  
IPADDR=192.168.56.200  
NETMASK=255.255.255.0  
------

上面我们用得Bonding模式是balance-slb,Open vSwitch(2.3.1)支持以下三种方式:

  • active-backup
  • balance-slb
  • balance-tcp

  • active-backup 主-备,不说了。

  • balance-slb, 根据包的 source MAC + vlan tag來均衡流量
  • banlnce-tcp, 根据包的 L2/L3/L4 header来均衡流量

banlance-tcp必须让硬件交换机设置802.3ad,balance-slb则设不设均可,设了流量提高比较大。

总体来讲,ovs支持的bongding和Linux下的相比,差了很多,所以不建议在ovs做bonding,直接在linux下设置比较好。

comments powered by Disqus