A Better Alternative

With the specs of the Cisco-ArrowPoint load balancers publicly available, it wasn't too far of a stretch to think that we could put together a PC setup that would offer similar if not greater performance as a hardware load balancer.  The only problem here would be finding software that offered the same load balancing features as the Cisco-ArrowPoint systems.

While the Linux community is often put down by saying that the solutions they advocate couldn't possibly be used in a corporate environment because of a lack of support, the same argument could be made in regards to building and maintaining your own servers.  It turns out that there is quite an interesting project online known as the Linux Virtual Server Project.  This particular project essentially centers itself around the creation of a Linux based hardware load balancer, that would perform all of the duties of a more expensive Cisco unit, but without the excessive cost; after all, Linux is Open Source and thus definitely on the affordable side ;)

We were introduced to the Linux Virtual Server Project and it struck us as an option that just might work for our needs.  We took a risk eight months ago on Athlon servers and we have yet to regret it, so we felt that we might as well take a chance on this project too. 

The system works quite well actually; taking www.anandtech.com as an example (the same applies to forums.anandtech.com, just with a different IP address), the domain resolves to the IP address of the load balancer machine and the software directs you to the server with the least amount of load. 

The load balancer determines which box has the least amount of load by looking at the number of connections it has sent over to the box and comparing it to a weight variable that we define, which tells the load balancer how powerful one server is in comparison to another.  For example, one of our 1.3GHz Athlon servers would have a greater weight than a 1.0GHz Athlon server because it can handle more traffic.

The load balancer also does not require that all of the traffic go through it, it simply acts as a traffic director and sends you to the appropriate server (although you can configure it otherwise).  After you're sent to a server, all communication occurs directly between you and that particular server.  So when an AnandTech Web Server prepares Page 5 of our AMD 760MP Review and sends it off to you, it sends it through its own network cards directly to you and not through the load balancer.

With another load balancer in the setup, we would also have built in fail over support, because it's never good to have your entire setup rely on one machine.  If anything happens to the first load balancer, the second one takes over immediately.

Speaking of fail over support, one of the benefits of this setup vs. a software solution working with Round-Robin DNS is that there is seamless fail over support should a web server go down.  With the software/round-robin solution we had to remove the failed box from the Round-Robin DNS setup otherwise people could be redirected to a machine that wasn't up.  In this case, as soon as a box fails, the load balancer takes it out of the cluster. 

Software Clustering Finding the right hardware

Log in

Don't have an account? Sign up now