X

Servidor en Cluster

Hoy en día hablar de servidor en clúster, alta disponibilidad, balanceo de carga o servidores en espejo es algo bastante común entre administradores de sistema, arquitectos cloud o desarrolladores web.

Sin embargo, las personas no tan técnicas como empresarios, inversionistas y demás desconocen bastante sobre las implicancias del concepto de servidor en clúster.

Por eso desde este artículo intentaremos echar luz a dicho tema, aclarando la pregunta de qué es un servidor en clúster, cuáles son sus características, componentes, así como ventajas y desventajas de su implementación.

¿Qué es un servidor en cluster?

Un servidor en clúster, también conocido como clúster de servidores, se trata de la unión de varios sistemas informáticos (servidores) que funcionan como si fueran uno solo.

Cuando hablamos de «unir» nos referimos a que comparten recursos de hardware y software, funcionando así como si fueran un solo sistema unificado. Esta unión de recursos se realiza con diversos fines, aunque la razón más popularidad es ofrecer velocidad y por sobre todo alta disponibilidad ante fallos.

Proveedores pioneros en el uso de servidores en clúster fueron el proyecto ARPANET en 1969, así como Sun Microsystems o IBM. Luego ya en la década de los 90 y posteriores años se popularizó el concepto gracias al uso masivo de servicios de empresas como Microsoft con productos como el viejo MSN, el servicio de servidores de correo Hotmail, Yahoo con Yahoo Mail, o los cientos de servicios de Google que conocemos hoy en día.

En palabras claras, un clúster de servidores se puede definir como un grupo de equipos informáticos que comparten recursos balanceados y están conectados a una red de alta velocidad.

Ventajas de los servidores en clúster

Existen múltiples beneficios y ventajas del uso de servidores en clúster:

  1. Alta disponibilidad: este es uno de los grandes beneficios de la tecnología de clustering, es decir, ofrecer un mejor uptime de servidores gracias a que si falla uno, el resto tomará el trabajo ofreciendo así una alta disponibilidad del servicio.
  2. Alta velocidad de despacho: se obtiene gracias al equilibrio de las cargas, haciendo que los servidores que reciben las solicitudes de los clientes puedan despachar los datos de forma inmediata, sin delays ni retrasos de ningún tipo.
  3. Balanceo de carga: se establecen diferentes métodos de balanceo de carga, haciendo que una o varias peticiones se deriven a determinados hosts, mientras que otras irán destinadas a otro grupo de servidores bajo el clúster. Esto hace que ningún servidor se vea saturado.
  4. Escalabilidad: la mayoría de los clúster de servidores soportan escalabilidad de forma horizontal, permitiendo agregar más servidores de forma masiva según se necesite debido a una posible creciente demanda de parte de los usuarios.
  5. Resistencia ante ataques DDOS: tener un clúster de servidores ofrece un beneficio adicional de soportar mejor las cargas de sistema que se originan ante ataques DDOS masivos, donde se suelen inundar los servidores con peticiones no deseadas. El uso de múltiples servidores puede ayudar a resistir mejores diferentes tipos de ataque destinados a agotar los recursos de sistema o red.

Desventajas de un servidor en clúster

Los clúster, a pesar de estar tan idealizados en la industria, también tienen sus desventajas o contras, veamos algunas de ellas:

  • Altos costos: esta es una de las principales desventajas que tiene trabajar con un clúster de servidores, y es que el setup y puesta a punto de tecnologías como este tipo cuesta bastante más caro que trabajar con servidores dedicados tradicionales, o con servidores en la nube. No solo es caro para montarlo, también se debe tener en cuenta que al necesitar escalar se necesitará agregar más servidores al esquema de red, incrementando así los gastos.
  • Complejidad: no todas las empresas proveedores de servicios de Internet, o de web hosting tienen el tiempo, la infraestructura y el personal técnico calificado para montar este tipo de soluciones. La alta complejidad a nivel técnico hace que montar un servidor en clúster se logre hoy por hoy en muy pocos proveedores del mundo hispano.
  • Tiempo de implementación: montar, configurar y dejar a punto un clúster de servidores puede tomar varias semanas, a varios meses, dependiendo de la complejidad del sistema, de las aplicaciones y tipos de balanceo de carga y replicación de datos (servidores en espejo por ejemplo) usados en la arquitectura. Por lo que no suele ser una solución para quienes necesitan una opción rápida.
  • No son a prueba de fallos: contrario a su finalidad y naturaleza, lamentablemente, los servidores en clúster también pueden fallar, le ha sucedido a Gmail, Yahoo, Hotmail, la NASA, tarde o temprano la perfecta arquitectura del clúster puede fallar por errores de red, software o hardware, siempre debes tenerlo en cuenta. Lo que si te pueden garantizar es que fallarán mucho menos que otras soluciones.

Componentes

Para que se pueda montar y gestionar un clúster de servidores debidamente, se requieren de varias cosas puntuales:

  • Hardware: es decir, el hardware de cada uno de los sistemas informáticos (servidores) que estarán detrás soportando la carga, se trata de procesadores, discos, RAM y placa madre.
  • Red: interconexiones de red de alta velocidad que alimentan al clúster de servidores, generalmente el mínimo es de 1Gbps, pero en algunos casos se necesitan de 10Gbps incluso.
  • Software de Sistema Operativo: es el sistema operativo que estará instalado en cada uno de los servidores o nodos del clúster. En Infranetworking usamos CentOS Linux en nuestras instalaciones de clústering.
  • Software Maestro o Middleware: es el que se encarga de gestionar la inteligencia del clúster, es decir, el que está entre el cliente que solicita información, y el servidor de datos que la despacha. Se utiliza para configurar el clúster, ver estadísticas de uso, añadir nuevos nodos, migrar datos o replicarlos entre los nodos que trabajan detrás.
  • Servicios de sistema: son los que despachan el contenido desde cada nodo, es decir, en el caso de la web puede ser el servidor web clásico Apache, o modernas alternativas como Nginx o LiteSpeed, mientras que por ejemplo para bases de datos se puede usar MySQL Clustering o MariaDB Clustering en servidores de bases de datos NoSQL.
  • Aplicaciones: se trata de las aplicaciones en si que necesitan tener dicho balanceo, estas las aporta el cliente siempre y basándose en como éstas funcionan es como se elabora la arquitectura del clúster de servidores.

Tipos de servidor en clúster

Cuando comenzamos a adentrarnos en el concepto de clustering aparecen diferentes tipos de clúster que conviene diferenciar bien. Vamos a ver las características de cada uno de ellos.

Dependiendo de la arquitectura usada

  • Clúster en la nube: son servicios de clustering, balanceo y replicación basados en la nube, suelen implementarse más rápido, pero permiten menos personalización para adaptarse a las necesidades de la aplicación.
  • Clúster de servidores dedicados: son la solución ideal para adaptarse al 100% a las necesidades de la aplicación, aunque se demora un poco más en su implementación.

Dependiendo de la solución que ofrecen::

  • Clúster de alto rendimiento (High Performance Computing Cluster): se utilizan para realizar tareas que implican gran procesamiento de datos, utilizan gran potencia a nivel de CPU, memoria o velocidad de lectura/escritura en disco.
  • Clúster de alta disponibilidad (High Availability Computing Cluster): son los que brindan mejores garantías ante fallas de red, hardware o software para permitir que tu aplicación siempre esté online las 24 hs.
  • Clúster de alta eficiencia (High Throughput Computing Cluster): se utilizan para que el procesamiento de datos sea lo más eficiente posible, realizando grandes cantidades de tareas en el menor tiempo posible.

Dependiendo del campo donde se aplican:

  • Clúster comercial: son los que se utilizan por empresas, corporaciones y multinacionales para soportar las demandas de sus servicios.
  • Clúster gubernamental: son utilizados por los gobiernos y agencias de cada país para despachar de forma eficiente, manteniendo la alta disponibilidad para los ciudadanos de una región determinada.
  • Clúster científico: se utiliza para procesamiento de datos científicos en instituciones de investigación de determinados campos como ingeniería, biología, medicina, genética, etc.

A pesar de las discrepancias a nivel de requisitos de las aplicaciones, muchas de las características de las arquitecturas de hardware y software, que están por debajo de las aplicaciones en todos estos clústeres, son las mismas. Más aún, un clúster de determinado tipo, puede también presentar características de los otros.

Conclusión

Como hemos visto, el uso de servidores en clúster tiene muchísimas ventajas para las personas que realmente necesitan una solución robusta, veloz y que otorgue alta disponibilidad en entornos empresariales.

Sin embargo, tiene también algunas desventajas como altos costos y complejidad, que hacen que su adopción no sea tan masiva como en otros productos del mercado.

Algo que conviene preguntarse siempre es: ¿realmente necesito servidores en clúster? Eso depende en gran medida de cuantos usuarios se verían afectados, así como del impacto que el tiempo offline podría causar a tu empresa en caso de fallo de los sistemas informáticos.

 


¿Buscas Servidores en Clúster para soportar altas cargas?

Mira nuestro Servicio de Balanceo de Carga y Alta Disponibilidad

Replicación, balanceo y clustering de datos garantizado


 

Artículos relacionados