Monday, January 25, 2010

Clustering / High Availability

Clustering
A simple term which refers a bunch or group,
In computer terminology refers to bunch of computers.

High Availability
Name itself tells making something which is available all
the times.

We can't imagine a website like google or ebay going down
even for few seconds.There are organisation who can't afford even few seconds of downtime (planned or unplanned).So High Availability has become more important these days
For example we want to make a website/service highly available.
The website may use the following:
Database( some times more than one)
Webserver(some times more than one)
NIC Cards
Storage Connectivity
Internet Connectivity
Power Supply
List goes on.........

It indirectly means that we need to make all the above( sometimes even more) highly available.And its not possible to monitor all these manually, no one
knows when something is going to break or fault.

Here comes Clustering into picture, A group of computers
which are configured in such a way that they can overcome
failures for applications, etc and provide resilency

The load is distributed across different servers, and even
if any of the servers fails, the application is still
accessible via other cluster nodes

Generally a software which manages all these things known as Cluster Server.

A cluster compromises of redundent nodes to provide High
Availability, minimum configutaion requires 2 nodes.

Cluster Server software monitors all resources required to
run an application or service.
It checks the health of disks, R/W access, N/W Access, DB
Access, etc the way we configure it.

For example if something goes wrong say Some process/thread
related to Web Server is killed, it(Cluster s/w) immediately
detects that and gracefully shutsdown the application on
that node and starts it in another node ( redundent )


Major Vendors:
Symantec - Veritas Cluster Server
Sun - Solaris Cluster
Microsoft Microsoft Cluster Server
IBM - IBM Cluster
HP - HP Service Guard

To know more, check the following
http://en.wikipedia.org/wiki/Cluster_(computing)

No comments: