La escalabilidad es la capacidad de un equipo para hacer frente a volúmenes de trabajo cada vez mayores sin, por ello, dejar de prestar un nivel de rendimiento aceptable. Existen dos tipos de escalabilidad:
La disponibilidad y la fiabilidad son dos conceptos que, si bien se encuentran íntimamente relacionados, difieren ligeramente. La disponibilidad es la calidad de estar presente, listo para su uso, a mano, accesible; mientras que la fiabilidad es la probabilidad de un funcionamiento correcto.
Pero hasta el más fiable de los equipos acaba fallando. Los fabricantes de hardware intentan anticiparse a los fallos aplicando la redundancia en áreas clave como son las unidades de disco, las fuentes de alimentación, las controladoras de red y los ventiladores, pero dicha redundancia no protege a los usuarios de los fallos de las aplicaciones. De poco servirá, por lo tanto, que un servidor sea fiable si el software de base de datos que se ejecuta en dicho servidor falla, ya que el resultado no será otro que la ausencia de disponibilidad. Ésa es la razón de que un solo equipo no pueda ofrecer los niveles de escalabilidad, disponibilidad y fiabilidad necesarios que sí ofrece un cluster.
Vemos cómo los clusters imitan a los arrays RAID al aumentar el nivel de disponibilidad y fiabilidad. En las configuraciones de discos tolerantes a fallos, como RAID 1 o RAID 5, todos los discos funcionan conjuntamente formando un array redundante de modo que cuando uno de ellos falla, sólo hay que reemplazarlo por otro; el resto del array sigue funcionando sin problemas, sin necesidad de que se efectúen tareas de configuración y, lo que es más importante, sin que se produzcan tiempos muertos. En efecto, el sistema RAID reconstruye automáticamente la unidad nueva para que funcione conjuntamente con las restantes. De igual modo, cuando falla un equipo que forma parte de un cluster, sólo hay que sustituirlo por otro. Algunos programas de cluster incluso configuran e integran el servidor de forma automática en el cluster, y todo ello sin que el cluster deje de estar disponible ni un solo instante.
En definitiva, un cluster es un conjunto de computadoras interconectadas con dispositivos de alta velocidad que actúan en conjunto usando el poder cómputo de varios CPU en combinación para resolver ciertos problemas dados.
Se usa un cluster con varios computadores para crear un supercomputador.
Hoy día los supercomputadores son equipos excesivamente costosos que están fuera del alcance de empresas o instituciones pequeñas. Un cluster, siendo una combinación de equipos microcomputadores (IBM PC Compatibles), puede ser instalado inclusive por particulares y puede ofrecer rendimiento muy cercano a un SuperComputador en cuanto a poder de cómputo.
En pocas palabras imagínate unos 20 PCs Pentium II ó III de 500 Mhz que actúan en conjunto como si fuese un sólo CPU de 10.000 Mhz!!! (Si bien no es tan fácil como eso, sirve para ilustrar algo aproximado a lo que se obtendrá).
El surgimientos de plataformas computacionales de comunicación y procesamiento estándares de bajo costo, les ha brindado la oportunidad a los programadores académicos de crear herramientas computacionales del dominio público o de costo razonable. Estas realidades permiten la implantación de códigos paralelizados sobre este tipo de plataformas obteniendo un rendimiento competitivo en relación a equipos paralelos especializados cuyos costos de operación y mantenimiento son elevados.
Una de las herramientas de más auge en la actualidad son los llamados cluster Beowulf, los cuales presentan diversas capacidades para el cómputo paralelo con un relativo alto rendimiento.