LACP and load balancing

sphinx99

[H]ard|Gawd
Joined
Dec 23, 2006
Messages
1,062
What load balancing algorithms are used in a LACP pair? Is the load balancing driven by client? Server?

Situation: I have two PCs with dual-port Intel ET NICs. I setup teaming across the two ports on each, using LACP, default settings, latest drivers.

Each pair is connected to a switch (HP-branded 3-Com / V1910) and setup LACP across each pair of ports. The switch shows active LACP on each pair of ports.

I start two file copies from PC #1 to PC#2. Each source and destination is a HD capable of 100MB/sec read/write and I am expecting to come close to using the full bandwidth of both lines, but instead the traffic is only going through one interface on each PC according to the switch. I am capping out a single GigE line w/o issues but the second line is untouched.

Does LACP round-robin packets across the interfaces? Or is there some sort of IP or MAC hashing scheme going on such that 2Gb from A to B is not possible?
 
LACP does not guarantee packet order, therefore you need multiple concurrent connections to utilize more bandwidth than that of single interface.
 
LACP has nothing to do with the load balancing on an etherchannel hence the acronym Link Agregation Control Protocol. It only performs negotiation between switch and host or switch and switch to bring up the port channel and notifies each end when a port drops out or is added to the channel.

Usually the default load balancing algorithm for an ether channel is source-destination IP pair and as such each flow will only use the link they were load balanced to. This is all controlled by the endpoints, not LACP. You may be able to configure your switch and host to do per-packet based load balancing which would load both links fairly evenly.
 
You're not going to get load balancing like you want between two hosts over a single connection. That's why I refer to these as load distribution, not load balancing. There are many different hash algorithms but if you look they don't help a single connection between two hosts utilize more than one physical link. Port Channels are for multiple connections and distribute the load. If you want faster speed between two hosts on a single connection you move up to 10Gb Ethernet. :)
 
The question has been answered but since I was playing with this the other day in the data center i figured I'd add my 2cents. (LACP across two Nexus 2248 FEX's, using a vPC on the Nexus 5548's)

ESX/ESXi does not support LACP or PAgP.
 
The question has been answered but since I was playing with this the other day in the data center i figured I'd add my 2cents. (LACP across two Nexus 2248 FEX's, using a vPC on the Nexus 5548's)

ESX/ESXi does not support LACP or PAgP.

It supports LACP if you have the Nexus 1000v virtual distributed switch. Else...no.
 
Thank you, this helps clear up my understanding.

I guess the question, then, is whether Intel server NICs and their associated drivers allow for load balancing under an OS such as Server 2008?
 
I guess the question, then, is whether Intel server NICs and their associated drivers allow for load balancing under an OS such as Server 2008?
Yes. I use this setup for my Hyper-V VM's.
I have a 2GB/sec team which I then pass to Hyper-V as a virtual network and share that connection between my VM's.
 
Sorry I meant load balancing across paths to a single target.

I ws hoping to beef up bandwidth a bit between the storage box and the backup-of-storage-box box.
 
Sorry I meant load balancing across paths to a single target.

I ws hoping to beef up bandwidth a bit between the storage box and the backup-of-storage-box box.

Again, that's two hosts. The only way to speed that up is to break out the communication in to multiple streams over different ports, MAC address, or IP addresses and then selecting the appropriate hashing mechanisms. Or buy two 10Gb NICs and direct connect them, if you don't have any 10Gb switch ports.
 
Back
Top