Subject: load balancing ethernet
To: None <tech-net@NetBSD.ORG>
From: Chris Jones <>
List: tech-net
Date: 07/17/1998 11:58:27
In my new job, we just got a grant to build a "distributed compute
cluster."  (We don't *really* know what that means, but it looked good on
paper.  :-)  As the admin for the group, I'm trying to get this to happen
with NetBSD, as I don't want to deal with a linux cluster.

We don't know how much bandwidth we're going to need, but we think it will
be a lot.  One thing we're looking at is multiplexing 100bT ethernet.
(There are cards out there which have multiple fast ether interfaces on
them -- I think I remember one by Adaptec.  I'll try to find out about
them and ask here if NetBSD can drive them.)

Anyway, NASA (and other groups) have projects such as Beowulf
( which do
something they refer to as "channel bonding."
(  Channel
bonding is supposed to load-balance (or multiplex, or whatever you want to
call it) multiple ethernet interfaces, so you can effectively multiply
your bandwidth.

Companies like Cisco and Cabletron have similar things that their switches
can do (e.g.,  I
don't know how these work, other than some vague mumbo-jumbo a Cabletron
salesman just told me about doing strange things with MAC addresses.  But
however they work, it seems to me that your OS is still going to need to
understand what's going on.

My actual question is, can we do something like this with NetBSD?  Really,
we just want to maximize the bandwidth/dollar ratio.  ATM looks expensive,
and 100bT may not have the bandwidth we need.  Is there a way to multiply
your bandwidth?

Obviously, we could just assign a different IP to each ether interface,
and use DNS load-balancing, but that solution gives a bunch of little
pipes to each machine.  We would really like to simulate a single, big
pipe (with low latency) to each machine.

Any thoughts?

Chris Jones                                
           Mad scientist at large          
"Is this going to be a stand-up programming session, sir, or another bug hunt?"