|
In this article:
- What is a computer cluster
- Types of computer clusters
What is a computer cluster?
A collection of computers that are interconnected and which work together such that they function as a single computer is called a computer cluster. Computer clusters typically use very fast local area networks or LANs in order to communicate with each other. The major aim of computer clusters is to increase speed and reliability in comparison to a single, stand-alone computer. Computer clusters also prove to be more cost-effective or economic as compared to as stand-alone computer system.
Types of computer clusters
There are certain categories that computer clusters fall into based on their qualities or features. These are discussed in detail below:
- High-availability (HA) clusters
These types of clusters are specifically built to ensure that the services that they provide remain available for a high amount of time (the ideal situation being the availability at all times). These clusters are comprised of redundant nodes that are put to use when any other components of the system fail to provide the services. These clusters are usually made up of only two computer systems or nodes which are also the minimum requirement for such a cluster. By making use of multiple nodes, these clusters are able to remove the redundancy which is a common feature in a cluster. Thus, they stay operative even if a particular node ‘fails to deliver’.
- Load-balancing clusters
These clusters make use of backend servers to direct all the workload coming from a single (or multiple) front-end systems and distributing it among the backend servers which gives the name of load-balancing clusters. They are aimed at improving the performance of the whole system and they are also capable of providing high-availability at the same time. These types of clusters are mostly used as a server farm, a collection of servers that act as a common server.
- High-performance (or HPC) clusters
As the name itself suggests, this type of clusters are built with the objective of achieving better performance. They are characterized by the technique they use to do so. These clusters divide a task to be performed into small parts and assigning each of the parts to the various nodes that form the cluster. These clusters find widespread usage in the field of scientific computing. Also, they are designed specifically to work under conditions where the various tasks being carried out on the different nodes need to be communicated to other nodes of the cluster for the final task (the ‘mother’ task) to be completed. This is often the case when the result of a particular task acts as input for some other task that is to be performed. A popular implementation of this type of cluster is one where all the nodes run Linux as the OS and then make use of free software to implement the parallelism that is needed in the cluster. This type of cluster is better known as a Beowulf cluster. They are often used to run software that is custom-built so as to make full use of this parallelism of the cluster. Scientific applications for such computers are made with the help of special libraries such as MPI.
- Grid computing
Grid computing, though related to cluster computing itself, has certain major differences from the usual clusters that are used in the world. The major function of a grid cluster is to connect various collections of computers together but these computers do not trust each other. Thus, instead of functioning as a single entity (or computer), they work like a utility. Grid computing is apt for use when there are a variety of individual tasks to be carried out. A common characteristic of such clusters is that they make use of a common storage (that is, it is shared among the nodes in the cluster) but the tasks performed by one node (or its results) do not affect the tasks being carried out by some other node.
|