Hi Paul,
Ethernet bonding with LVS can be fun - even without much documentation.
Is anyone else out there using LVS with the Linux bonding/ifenslave
setup? I feel a document coming on and would be happy to include any
additional wisdom others have gleaned from using and/or setting up linux
bonding[1].
What are the benefits?
I have yet to get heartbeat to work with it, but it should work given
enough elbow grease. Also, I have yet to get 2 separate bonds (bond0,
bond1, etc) to come up.
>
Here's what I wanted to do:
client network lvs server (dell 2550)
cisco 2924 ipvs1.0.0 on 2.4.18
port group 1 interface bond0
port 1 <------->eepro100 dualNIC port#1
port 2 <------->eepro100 dualNIC port#2
server network lvs server (dell 2550)
cisco 3548 ipvs1.0.0 on 2.4.18
port group 2 interface bond1
port 3 <------->eepro100 dualNIC port#1
port 4 <------->eepro100 dualNIC port#2
(for the sake of clarity in this example, the lvs servers mentioned
above both refer to the same box, not two separate lvs servers)
What is the purpose of this setup?
Interface bond0 comes up fine with eth1 and eth2 no problem. Bond1
fails miserably every time. I'm going to take that issue up on the
bonding mailing list.
Which patch did you try? Is it the following:
http://prdownloads.sourceforge.net/bonding/bonding-2.4.18-20020226
Did you pass max_bonds=2 when you loaded the bonding.o module? Without
that you have no chance. Read the source (if you haven't already) to see
what other fancy parameters you might want to pass.
And if you're talking to them you might ask them if they'd like to clean
up the bonding_init(void) function with the *dev_bond/*dev_bonds mess :)
Anyhow, here's what I ended up with:
client network lvs server (dell 2550)
cisco 2924 sw ipvs1.0.0 on 2.4.18
port group 1 interface bond0
port fa0/1 <------->eepro100 dualNIC port#1
port fa0/2 <------->eepro100 dualNIC port#2
Cool.
server network lvs server (dell 2550)
cisco 3548 ipvs1.0.0 on 2.4.18
port g0/1 <---->onboard GiGENIC (broadcomm chipset)
This is driven in part by our desire to see how far we can push lvs. I
know it does 100mb/s in and out. If it can keep 2 channels full, I'll
add a thirds, fourth,fifth, etc as necessary.
Read [http://www.sfu.ca/acs/cluster/nic-test.html] to get the impression
of what happens if you try to bond too many NICs. Been there, done that.
But again, feel free to excel. You might find out some more and maybe
even be able to linearly scale the throughput.
Using apache bench (ab) this time. ;)
How do you want to stress LVS with ab? :) You need much stronger tobacco
for that!
Best regards,
Roberto Nibali, ratz
|