Wackamole is an interesting application that helps with making a cluster highly available. It runs a service using multiple DNS RR records without the worry of one of the machines crashing -- if the machine crashes, the virtual IP addresses it was responsible for will be managed by the remaining machines in the cluster. Wackamole is quite unique in that it operates in a completely peer-to-peer mode within the cluster. From the project home page:
Wackamole is an application that helps with making a cluster highly available. It manages a bunch of virtual IPs, that should be available to the outside world at all times. Wackamole ensures that a single machine within a cluster is listening on each virtual IP address that Wackamole manages. If it discovers that particular machines within the cluster are not alive, it will almost immediately ensure that other machines acquire these public IPs. At no time will more than one machine listen on any virtual IP. Wackamole also works toward achieving a balanced distribution of number IPs on the machine within the cluster it manages.
Download wackamole software
Visit the wackamole project:
=> wackamole web site
I've worked with a various load balancing systems (LBS). They are complex pieces of hardware and software. In this post I will highlight some of the open source load balancing software. But what is load balancing?
It is nothing but a technique used to share (spared) load / services between two or more servers. For example, busy e-commerce or bank website uses load balancer to increase reliability, throughput, uptime, response time and better resource utilization. You can use following softwares as an advanced load balancing solution for web, cache, dns, mail, ftp, auth servers, VoIP services etc.
Linux Virtual Server (LVS)
LVS is ultimate open source Linux load sharing and balancing software. You can easily build a high-performance and highly available server for Linux using this software. From the project page:
Virtual server is a highly scalable and highly available server built on a cluster of real servers. The architecture of server cluster is fully transparent to end users, and the users interact with the cluster system as if it were only a single high-performance virtual server.
=> Project Web Site
Red Hat Cluster Suite
It is a high availability cluster software implementation from Linux leader Red Hat. It provide two type services:
- Application / Service Failover - Create n-node server clusters for failover of key applications and services
- IP Load Balancing - Load balance incoming IP network requests across a farm of servers
=> Product web page
The High Availability Linux Project
Linux-HA provides sophisticated high-availability (failover) capabilities on a wide range of platforms, supporting several tens of thousands of mission critical sites.
=> Project web site
Ultra Monkey is a project to create load balanced and highly available network services. For example a cluster of web servers that appear as a single web server to end-users. The service may be for end-users across the world connected via the internet, or for enterprise users connected via an intranet.
Ultra Monkey makes use of the Linux operating system to provide a flexible solution that can be tailored to a wide range of needs. From small clusters of only two nodes to large systems serving thousands of connections per second.
=> Project web site
Personally, I've worked with both LVS and Red Hat Cluster Suite and I highly recommend these softwares.
M. Shuaib Khan has published a list of open-source cluster management systems.
Personally, I had used openMosix and Red Hat Cluster software (which is also based upon open source software funded by Red Hat).
From the article: In computing world, the term "cluster" refers to a group of independent computers combined through software and networking, which is often used to run highly compute-intensive jobs. With a cluster, you can build a high-speed supercomputer out of hundreds or even thousands of relatively low-speed systems. Cluster management software offers an easy-to-use interface for managing clusters, and automates the process of queuing jobs, matching the requirements of a job and the resources available to the cluster, and migrating jobs across the cluster:
Read this article it offers feature, cons and pros of each solution.