[Linux-cluster] Bonding Interfaces: Active Load Balancing & LACP

Eric epretorious at yahoo.com
Thu Jun 7 04:12:13 UTC 2012


I'm currently using the HP Procurve 2824 24-port Gigabit Ethernet switch to for a backside network for synchronizing file systems between the nodes in the group. Each host has 4 Gigabit NIC's and the goal is to bond two of the Gigabit NIC's together to create a 2 Gbps link from any host  to any other host but what I'm finding is that the bonded links are only capable of 1 Gbps from any host to any other host. Is it possible to 
create a multi-Gigabit link between two hosts (without having to upgrade to 10G) using a switch that "uses the 
SA/DA (Source Address/Destination Address) method of distributing 
traffic across the trunked links"?


The problem, at least as far as I can tell, comes down to the 
limitation of ARP resolution (in the host) and mac-address tables (in 
the switch):
When configured to use Active Load Balancing, the kernel driver leaves each of the interface's MAC 
addresses unchanged. In this scenario, when Host A sends sends traffic 
to host Host B, the kernel uses the MAC address of only one of Host B's 
NIC's as the DA. When the packet arrives at the switch, the switch 
consults the mac-address table for the DA and then sends the packet to 
the interface connected to the NIC with MAC address equal to DA. Thus 
packets from Host A to Host B will only leave the switch through one 
interface - the interface connected to the NIC with MAC address equal to DA. This has the effect of limiting the throughput from Host A to Host B to the speed of the one interface connected to the NIC with MAC address equal to DA.

When configured to use IEEE 802.3ad (LACP), the kernel driver assigns the same MAC address to all of the hosts' 
interfaces. In this scenario, when Host A sends traffic to Host B, the 
kernel uses Host B's shared MAC address as the DA. When the packet 
arrives at the switch, the switch creates a hash based on the SA/DA 
pair, consults the mac-address table for the DA, and and assigns the 
flow (i.e., traffic from Host A to Host B) to one of the interfaces 
connected to Host B. Thus packets from Host A to Host B will only leave 
the switch through one interface - the interface determined by the SA/DA hash. This has the effect of limiting the throughput from Host A to Host B to the speed of the one interface determined by the hashing method. However, if the flow (from Host A to Host B's shared MAC 
address) were to be distributed across the different interfaces in a 
round-robin 
fashion (as the 
packets were leaving the switch) the throughput between the hosts would 
equal the aggregate of 
the links (IIUC).

Is this a limitation of the the Procurve's 
implementation of LACP? Do other switches use  different methods of 
distributing traffic across the trunked links? Is there another method 
of aggregating the links between the two hosts (e.g., multipathing)?

TIA,
Eric Pretorious
Truckee, CA
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/linux-cluster/attachments/20120606/40789be5/attachment.htm>


More information about the Linux-cluster mailing list