[OpenAFS] OpenAFS client and load balancing...

Rodney M Dyer rmdyer@uncc.edu
Tue, 09 Aug 2005 21:00:28 -0400


Would it be possible to put an algorithm for load balancing into the AFS 
client such that the client would select the next server in its preference 
list if the data stream fed to it by the server was "too slow"?  Then, 
every few minutes, or hours, re-try the primary preferences again and 
switch back.

Basically what I'm refering to here is an adaptive real-time algorithm 
where the client would upon startup keep a running history of its data 
bandwidth rate and when that rate dramatically falls for short periods of 
time, the client just switches to the next available server.

The current implementation of AFS server preferences for fail-over doesn't 
help to eliminate bottlenecks of caused by many machines hitting a single 
server and loading it down.

Why this would be needed?  At our site we have an algorithm that sets 
server preferences a special way.  Basically we set all the client machines 
in one building to randomize their preferences for all the servers in that 
building, then choose the other buildings and the servers in them at 
random, next in the list.  This is generally not a problem except in the 
case where you have lots of clients in a building, and few servers, or in 
our case 1 server.  However in our case, due to space limitations, we don't 
have room for more servers.  Now of course I could change our preferences 
setting algorithm for a "special case" where there are few servers for a 
building, howevever I don't want the client to always use another buildings 
servers, except in severe cases of loading.

How complex would this be to add to the client?