1. Introducción

La finalidad de este documento es explicar de forma breve cómo montar dos tipos de clusters: aquellos destinados a la alta disponibilidad y los destinados al alto rendimiento. El primer tipo utilizará las tecnologías: Ultra Monkey: (HeartBeat, LVS, Ldirectord, MON) y NTP, entre otras; y el segundo: OpenMosix.

Este documento está basado en la rama de desarrollo de la distribución Debian GNU/Linux, más conocida como Sid. Aunque los pasos que aquí se detallan son fácilmente adaptables a otras distribuciones de GNU/Linux.

También se destaca que para leer este documento se han de poseer unos conocimientos avanzados en administración de sistemas GNU/Linux, ya sean para configurar aspectos como la red, el núcleo Linux o distintas partes del sistema. Aspectos que no entran dentro de este artículo y de los cuales existe una documentación muy extensa, como la que se lista en el apartado: Documentación general sobre GNU/Linux de la Bibliografía.

1.1. Tipos de clusters: conceptos básicos

Normalmente, al diseñar un cluster se piensa en solucionar alguno de los siguientes problemas:

  • Mejora de rendimiento

  • Abaratamiento del coste

  • Distribución de factores de riesgo del sistema

  • Escalabilidad

Para solucionar este tipo de problemas, se han implementado distintas soluciones. Aquí veremos dos de ellas: cluster de alta disponibilidad y de alto rendimiento.

[Note]Nota

Los clusters de alta disponibilidad son bastante ortogonales a los clusters de alto rendimiento, en lo relativo a funcionalidad. Los clusters de alta disponibilidad pretenden dar servicios 24*7, de cualquier tipo, son clusters donde la principal funcionalidad es estar controlando y actuando para que un servicio, o varios, se encuentren activos durante el máximo período de tiempo posible.

[Note]Nota

Los clusters de alto rendimiento han sido creados para compartir el recurso más valioso de un ordenador: el tiempo de proceso. Generalmente se utilizan en ambientes científicos o en grandes empresas, donde se utilizan para la compilación o renderización. Cualquier operación que necesite altos tiempos de CPU y millones de operaciones, puede ser utilizada en un cluster de alto rendimiento, siempre que se encuentre un algoritmo que sea paralelizable. Existen clusters que pueden ser denominados de alto rendimiento tanto a nivel de sistema como a nivel de aplicación. A nivel de sistema tenemos openMosix (el que trataremos en esta documentación), mientras que a nivel de aplicación se encuentran otros como MPI, PVM, Beowulf y otros muchos. En cualquier caso, estos clusters hacen uso de la capacidad de procesamiento que pueden tener varias máquinas.