Cluster de servidores, ¿qué es y como funciona?

Llega un momento en el que un portal de renombre no cubre las necesidades con su servidor de dedicado, los sistemas cluster podrán ayudarte a tener la infraestructura que necesitas.

 

¿Qué es exactamente un sistema Cluster?

Este tipo de sistemas se basa en la unión de varios servidores que trabajan como si de uno sólo se tratase. Los sistemas cluster han evolucionado mucho desde su primera aparición, ahora se pueden crear distintos tipos de clusters, en función de lo que se necesite:

  1. Unión de Hardware
  2. Clusters de Software
  3. Alto rendimiento de bases de datos

Estas son solo algunas de las opciones que tenemos disponibles. En resumen, cluster es un grupo de múltiples ordenadores unidos mediante una red de alta velocidad, de tal forma que el conjunto es visto como un único ordenador, más potente que los comunes de escritorio. De un sistema de este tipo se espera que presente combinaciones de los siguientes servicios:

  1. Alto rendimiento
  2. Alta disponibilidad
  3. Equilibrio de carga
  4. Escalabilidad

Para que un sistema cluster funcione no es necesario que todas las máquinas dispongan del mismo Hardware y sistema operativo (cluster heterogéneo). Este tipo de sistemas debe de disponer de un interfaz de manejo de clusters, la cual se encargue de interactuar con el usuario y los procesos, repartiendo la carga entre las diferentes máquinas del grupo.

Sistema Cluster

¿Qué componentes necesita un cluster para funcionar?

Por norma general un cluster hace uso de diferentes componentes para funcionar, entre estos están:

  • Nodos (Ordenadores o servidores)
  • Sistema operativo
  • Conexión de Red (ampliado más abajo)
  • Middleware (capa entre el usuario y el sistema operativo)
  • Protocolos de comunicación y servicio
  • Aplicaciones

Nodos:
Los nodos pueden ser ordenadores de escritorio o servidores, de hecho se puede establecer un cluster con cualquier tipo de máquina.

Sistema operativo:
Este debe de tener un entorno multiusuario, cuanto más fácil sea el manejo del sistema menores problemas tendremos. Comúnmente Solingest instala sus cluster con sistemas Microsoft Cluster Services (MSCS), pero es totalmente factible la instalación de un Cluster con un sistema Linux o Unix como podrían ser Rocks (Linux) o Solaris (Unix).

Han surgido ocasiones en las que se ha requerido el montaje de un sistema cluster en Mac OS X, sobretodo en Granjas de render (para procesado 3D).

Conexiones de Red:
Las conexiones utilizadas en este tipo de sistema pueden ser muy variadas, se pueden utilizar desde simples conexiones Ethernet con placas de red comunes o sistemas de alta velocidad como Fast Ethernet, Gigabit Ethernet, Myrinet, Infiniband, SCI, etc.

Middleware:
El middleware es el software que actúa entre el sistema operativo y las aplicaciones y que brinda al usuario la experiencia de estar utilizando una única super máquina. Este software provee una única interfaz de acceso al sistema, denominada SSI (Single System Image). Optimiza el sistema y provee herramientas de mantenimiento para procesos pesados como podrían ser migraciones, balanceo de carga, tolerancia de fallos, etc.

Este sistema también se encarga de la escalabilidad del cluster, detectando nuevas máquinas y añadiéndolas al grupo.

Por lo tanto, si un cliente quisiera disponer de un cluster para su servidor Web, este podría optar entre diferentes opciones. No habría ningún problema en instalar un cluster que tuviese un sistema MySQL y PHP repartido entre diferentes máquinas.

¿Tiene alguna desventaja?

Ninguna, este tipo de sistemas son los más fiables, ya que para la parada total del proceso deben de pararse todas las máquinas que componen el grupo. Es la mejor solución para crecer según las necesidades reales, ya que puede añadir tantas máquinas necesite.

Empresas muy importantes como Google y Microsoft utilizan este tipo de sistemas para poner en marcha sus portales. Realmente con este tipo de soluciones las posibilidades son inmensas.