Sleipner is an extensible load-balancing framework using multicasting, developed for the Linux 2.4 kernel. It was written as a project at ITU with the
purpose of studying decentralized (no single point of failure) load balancing technologies. The project is not in a state where we would recommend real world usage and it is not being developed further or mainained for the time being.
If you need to use something like this in production systems we recommend that you take a look at the CLUSTER_IP netfilter module, which ships with the kernel.
However the code remains available for download should you
wish to peruse it or play with it.
As do the report of our work which contains documentation of the code, detailed description of
the method, test results and a survey of load-balancing technologies.
Sleipners orignal purpose
Various load-balancing solutions are available today. Most of these suffer
from several issues such as single point of failure or merely the high prices
that comes with specialised and proprietary solutions. We propose and implement
a framework for load balancing solutions that eliminates the single
point of failure. The framework, called Sleipner after the Odin's eight legged horse
from Nordic mythology, is flexible and enables programmers to adapt
the load balancing to the exact requirements a such may have. The framework
enables the programmer to create single system image clusters, which
to the outside world looks like a single host. We use multicasting in order
to distribute the packets to all cluster hosts. These are hereafter filtered
on each cluster host such that only one host ends up receiving the packet.
The idea is that no two web clusters are alike.
Each cluster has its own unique requirements in respect to reliability and performance.
In order for this to be accomplished we have created the foundation for future implementations
of load-balancing algorithms, that is we have hidden all the kernel specific implementation
that is needed to make load balancing.