[Redes] Clusters

Un clúster es un grupo de múltiples ordenadores conectados mediante una red que trabajan coordinadamente.

Definiciones

Nodo. Cada una de las máquinas que componen el clúster. Pueden ser desde simples ordenadores personales a servidores dedicados conectados por una red. La regla general es que los nodos deben tener características similares como: arquitectura, componentes, sistema operativo, etc.

Sistemas operativos. Se utilizan sistemas operativos de tipo servidor con características de multiproceso y multiusuario, así como capacidad para abstracción de dispositivos y trabajo con interfaces IP virtuales.

Middleware. Es el software que actúa entre el sistema operativo y los servicios o aplicaciones finales. El middleware recibe los trabajos entrantes del clúster y los redistribuye de manera que el proceso se ejecute más rapido y el sistema no sufra sobrecargas en un servidor.

Conexión de red. Los nodos del clúster se pueden conectar con una simple red Fast Ethernet o utilizar tecnologías de red más avanzadas como Gigabit Ethernet, Infiniband, SCI, etc.

Protocolos de comunicación. Definen la intercomunicación entre los nodos del clúster.

Sistema de almacenamiento. El almacenamiento puede ir desde sistemas comunes de almacenamiento interno del servidor hasta redes de almacenamiento compartido como NAS o SAN.

Servicios y aplicaciones. Servicios y aplicaciones a ejecutar sobre el clúster.

Características

Los clúster permiten aumentar la escalabilidad, disponibilidad y fiabilidad.

Favorecen la alta disponibilidad.

Alta disponibilidad es mantener un servicio constantemente o la mayor cantidad de tiempo posible de forma automática.

Cuando falle un nodo sus máquinas virtuales se pasarán a otro nodo que funcione, para no perder el servicio.

Un clúster puede ser de gran interés en el ámbito empresarial, ya que pueden aprovechar las características mencionadas anteriormente para poder mantener sus equipos actualizados por un precio más económico que el que les supondría actualizar todos sus equipos informáticos, además, tendrían más capacidad de computación y disponibilidad.

Tipos de clusters

Clúster de alta disponibilidad (HA, High Availability)

Tiene como propósito principal proporcionar la máxima disponibilidad de los servicios que ofrece.

Esto se consigue mediante software que monitoriza constantemente el clúster, detecta fallos y permite recuperarse frente a ellos.

Si lo que se quiere es lograr que las MVs desplegadas en el clúster estén operativas la mayor parte del tiempo, este tipo de cluster es el más adecuado.

Clúster de alto rendimiento (HP, High Performance)

Se utiliza para ejecutar programas paralelizables que requieren una gran capacidad computacional.

Se utilizan normalmente en la comunidad científica o industrias que tengan que resolver problemas complejos o simulaciones.

Clúster de balanceo de carga (LB, Load Balancing)

Este tipo de clúster permite distribuir las peticiones de servicio entrantes hacia un conjunto de equipos que las procesa.

Se utiliza principalmente para servicios de red sin estado, como un servidor web o un servidor de correo electrónico, con altas cargas de trabajo y de tráfico de red.

Almacenamiento distribuido/sincronizado

Distribuido

Un sistema de almacenamiento distribuido es una infraestructura que puede repartir los datos entre varios servidores físicos y, a menudo, entre más de un centro de datos. Suele adoptar la forma de un clúster de unidades de almacenamiento, con un mecanismo de sincronización y coordinación de datos entre los nodos del clúster. Este sistema tiene las siguiente ventajas:

Escalabilidad. La principal motivación para distribuir el almacenamiento es escalar horizontalmente, añadiendo más espacio de almacenamiento al clúster.

Redundancia. Los sistemas de almacenamiento distribuido pueden almacenar más de una copia de los mismos datos, con fines de alta disponibilidad, copia de seguridad y recuperación de desastres.

Coste. El almacenamiento distribuido permite utilizar hardware básico y más barato para almacenar grandes volúmenes de datos a bajo coste.

Rendimiento. El almacenamiento distribuido puede ofrecer un mayor rendimiento que un único servidor en algunos casos. Por ejemplo, puede almacenar datos más cerca de sus consumidores o permitir el acceso masivo en paralelo a archivos de gran tamaño.

Una limitación inherente a los sistemas de almacenamiento distribuido es que estos sistemas vienen definidos por el teorema de CAP. Este teorema establece que un sistema distribuido no puede mantener la consistencia, la disponibilidad y la tolerancia a la partición (capacidad de recuperarse ante un fallo de partición que contiene parte de los datos), se tiene que renunciar,al menos, a una de estas tres propiedades.

Ceph es un almacén de objetos distribuido y un sistema de archivos diseñado para ofrecer buen rendimiento, fiabilidad y escalabilidad.

Sincronizado

Si el cluster no cumple con las especificaciones recomendadas para crear un sistema de almacenamiento distribuido vía Ceph, se puede optar por una solución alternativa que pasa por crear una partición ZFS idéntica en cada servidor, y configurar tareas de replicación periódicas entre los mismos. A esta práctica se le conoce como almacenamiento sincronizado.

ZFS es un sistema de archivos local y gestor de volúmenes lógicos creado por Sun Microsystems Inc para dirigir y controlar la ubicación, el almacenamiento y la recuperación de datos en sistemas informáticos de clase empresarial. El sistema de archivos y gestor de volúmenes ZFS se caracteriza por la integridad de los datos, una gran escalabilidad y funciones de almacenamiento integradas como: replicación, deduplicación, compresión, snapshots, clones, protección de datos, etc.

Para crear un volúmen ZFS en Proxmox, basta con dirigirse a Disks > ZFS dentro del nodo y hacer clic sobre Create: ZFS.

La replicación de datos entre los dos servidores fı́sicos se realizará a través de una red interna (10.10.10.0/24) previamente configurada en System > Network.

En Proxmox, basta con dirigirse a Replication dentro del nodo y hacer clic sobre Add. Aparecerá un panel donde se deberá escoger la MV a replicar, el nodo destino y la perioricidad, entre otras cosas.