What is a cluster
Multiple computing nodes or hosts that work together to support an application or middleware such as a database. A cluster is a group of inter-connected computers or hosts that work together to support applications and middleware (e.g. databases). In a cluster, each computer is referred to as a “node”. Unlike grid computers, where each node performs a different task, computer clusters assign the same task to each node. Nodes in a cluster are usually connected to each other through high-speed local area networks. Each node runs its own instance of an operating system. A computer cluster may range from a simple two-node system connecting two personal computers to a supercomputer with a cluster architecture. Computer clusters are often used for cost-effective high-performance computing (HPC) and high availability (HA). If a single component fails in a computer cluster, the other nodes continue to provide uninterrupted processing. A computer cluster can provide faster processing speed, larger storage capacity, better data integrity, greater reliability and wider availability of resources. Computer clusters are usually dedicated to specific functions, such as load balancing, high availability, high performance or large-scale processing.
Types of clusters
- Fail-over Clusters consist of 2 or more network connected computers with a separate heartbeat connection between the 2 hosts. The Heartbeat connection between the 2 machines is being used to monitor whether all the services are still in use: as soon as a service on one machine breaks down the other machines try to take over.
- With load-balancing clusters, the concept is that when a request for say a web-server comes in, the cluster checks which machine is the least busy and then sends the request to that machine. A Load-balancing cluster is usually also a Fail-over cluster but with the extra load balancing functionality and often with more nodes.
- High Performance Computing Cluster: the machines are being configured specially to give data centers that require extreme performance what they need. These kinds of clusters also have some load-balancing features; they try to spread different processes to more machines in order to gain performance. But what distinguishes this situation is that a process is being parallelized and that routines that can be ran separately will be spread on different machines instead of having to wait till they get done one after another.
The most common examples of load balancing and failover clusters are webfarms, databases or firewalls.