Cluster

A cluster' is a set of computers that cooperate together to provide some service or perform some action.

Clusters-based designs are often adopted in preference to traditional network designs in order to achieve increased scalability, manageability or availability (sometimes referred to as High Availability, or HA for short).

Types of clusters

 * Dense clusters are those in which nodes are typically tightly connected with low latency, high bandwidth links (typically LANs). Such clusters are often vulnerable to site failures.
 * Sparse clusters are those in which nodes are spread across relatively higher latency, low bandwidth links such as long distance internet connectivity.
 * HAC High Availability Computing
 * HPC High Performance Computing
 * HEC High Efficiency Computing
 * Grid

Messaging layer
Clusters typically employ a messaging layer such as Corosync (or the older Heartbeat) to distribute information regarding cluster state changes between the participating nodes.

Resource management layer
Cluster-based services are often managed by a resource management layer.

This layer may in turn be divided in to two components, the cluster resource management layer (typically taking in to account its view of the overall state of the cluster and all of its participants, and helping the cluster to maintain or transition towards some predefined, desirable state) and a local resource management layer (that might perform a similar function but within a single participating node).

Clusters on Gentoo
Gentoo is well suited to building clusters due to its configurability (see also: Benefits of Gentoo) and has been used to build a variety of clusters. Gentoo's cluster-related software is grouped under the sys-cluster section of portage.

Many modern Gentoo-based clusters make use of the Corosync messaging layer and the Pacemaker cluster resource manager (provided by the Linux-HA Project).

External resources

 * Linux-HA Project
 * Linux Cluster HOWTO