La división de la información en varios servidores o nodos, denominada clustering es una práctica cada vez más común en las empresas para evitar la pérdida del servicio ante una eventual caída del sistema. Existen varias configuraciones de cluster en el mercado según las necesidades y el negocio de las diferentes compañías.
En una empresa moderna existen varios factores que influyen en los resultados del negocio. Uno de ellos es la total disponibilidad. En otras palabras, que la información y las transacciones informáticas nunca se interrumpan. Para solucionar este problema existen diversas técnicas y soluciones entre las que destaca un sistema de respaldo en línea, denominado clustering. En otras palabras, el dicho de "no poner los huevos en la misma canasta" es traspasado al entorno de los datos, de tal forma que existan siempre dos o más canastas (servidores) para que los "huevos" estén siempre disponibles.
La agrupación en cluster es el proceso mediante el que se unen varios servidores para obtener una mayor tolerancia a fallas o un mayor rendimiento. Durante años, los clientes han podido agrupar servidores para incorporar mayor tolerancia a fallas para sus sistemas y aplicaciones. Sin embargo, estas soluciones de agrupación en cluster estaban basadas en tecnología propietaria y carecían de estándares, por lo que las aplicaciones eran demasiado caras de desarrollar, administrar y migrar a nuevas plataformas. Debido a esta arquitectura propietaria y elevada en costo, muchas compañías sólo podían implementar soluciones de agrupación en cluster para las aplicaciones empresariales más críticas.
Dicho de otra forma, clustering (agrupamiento) es el proceso de dividir un conjunto de datos en grupos mutuamente excluyentes de tal manera que cada miembro de un grupo esté lo "más cercano" posible a otro, y grupos diferentes estén lo "más lejos" posible uno del otro, donde la distancia está medida con respecto a todas las variables disponibles.
Si analizamos en profundidad, detrás del concepto de cluster está la filosofía de la creación de Internet en los'60, cuando aún era Arpanet, un proyecto militar. La idea en ese entonces era crear un sistema informático interconectado, en donde cada uno de sus nodos compartiera la información y pudiera recuperarla, en caso de que una de las partes fuera destruida por un ataque nuclear.
Utilizando esa misma estrategia, en la actualidad, el clustering tiene como principal objetivo mantener la información de una empresa las 24 horas del día y los 7 días de la semana. De esta forma, si un servidor presenta algún problema de disponibilidad, siempre existirá otro similar para recuperar los datos y mantener el servicio activo. Este factor se hace aún más crítico en empresas donde los servicios en línea son fundamentales, como por ejemplo, los servicios bancarios.
Para lograr un soporte continuo debe existir una coordinación de la comunicación entre los dos o más servidores, de modo que puedan realizar tareas comunes. Cualquiera de los servidores puede dejar de funcionar y un proceso denominado de failover automáticamente conmuta la carga de trabajo a otro servidor para proporcionar un servicio continuo.
Además del failover, algunas formas de clustering también emplean el denominado "balance de carga", que permite la distribución de la carga de trabajo entre una red de computadores conectados entre sí. Este Balance de Carga de Red (Network Load Balancing) mejora la escalabilidad y disponibilidad de servicios basados en TCP/IP, de misión crítica, tales como servidores Web, servicios de terminal, redes privadas virtuales o servidores multimedia. Este componente se ejecuta dentro de los hosts en cluster como parte del sistema operativo que se esté utilizando y no requiere soporte de hardware dedicado. Para incrementar el rendimiento, el Balance de Carga de Red distribuye el tráfico IP entre múltiples hosts en el cluster.
Recuperación ante Fallos
El sistema de cluster existente más básico es el denominado "a prueba de fallos". Consiste en dos servidores o "nodos" conectados entre sí, donde uno de ellos está "ocioso". O sea, es un respaldo del principal que ante cualquier falla comienza a correr inmediatamente para no perder la información.
Estas soluciones están diseñadas con infinidad de características de máxima fiabilidad en continuo funcionamiento para proteger el sistema que posee la empresa contra errores que puedan afectar la disponibilidad de aplicaciones o servicios. Características como la memoria del sistema de comprobación y corrección de errores ECC, fuentes de alimentación y refrigeración redundantes y unidades de disco duro intercambiables en marcha están diseñadas para mantener un sistema en funcionamiento o resistir los errores.
Los clusters de recuperación ante fallos están conectados y comparten un sistema de almacenamiento externo; si algún servidor falla, el otro asume el sistema de almacenamiento del servidor que se ha caído, reanuda los servicios de red, recupera las direcciones IP y reinicia las aplicaciones registradas.
Por lo general, los dos servidores están interconectados mediante una conexión Ethernet y controlan constantemente el estado de funcionamiento y disponibilidad entre sí mediante un mecanismo de comprobación de comunicación.
Los clusters de recuperación ante fallos son ideales para ubicaciones que no tienen un administrador de sistemas dedicado, como pequeñas empresas, entidades gubernamentales o sitios remotos de grandes empresas, ya que cambian automáticamente al servidor adicional, si fuese necesario.
Cuando no existe un sistema de cluster de este tipo, por lo general se debe interrumpir el mantenimiento periódico o la actualización de los servidores a los usuarios o programar el evento para horas de poco uso, como las noches o los fines de semana, algo inconcebible en las empresas modernas, especialmente las que poseen un tipo de actividad que cualquier interrupción significa pérdida de dinero o una baja en la calidad del servicio hacia sus clientes.
Los clusters de recuperación ante fallos minimizan el impacto de estos eventos, ya que permiten poner un servidor fuera de línea para realizar el mantenimiento o las actualizaciones mientras los usuarios aún siguen accediendo al otro servidor del par. Esto le permite obtener el máximo rendimiento de su personal de servicio y planificar proyectos que maximicen la productividad en lugar de pagar horas extra.
Escalabilidad
La primera solución antes mencionada es la más sencilla e ideal para comenzar en el mundo de los cluster. Sin embargo, a medida que los sistemas de una empresa se van haciendo más complejos o bien se quiere aumentar la seguridad, lo mejor es pasar a otro tipo de soluciones, en donde dos o más nodos están 100% activos, organizados en una agrupación determinada.
La denominada informática empresarial escalable (SEC) incluye muchos pilares estándares que permiten a los clientes diseñar clusters con más de dos servidores, lo que aumenta la disponibilidad, el rendimiento y la escalabilidad del sistema.
Este tipo de sistemas se puede configurar de forma personalizada para satisfacer las demandas de información de prácticamente cualquier empresa en crecimiento. El hospedaje Web, OLTP, el almacenamiento de datos y las aplicaciones de bases de datos por departamentos son sólo algunos de los entornos adecuados para las configuraciones de informática empresarial escalable.
En este caso pueden existir dos nodos o servidores, donde ambos realizan la misma función o bien se dividen las funciones informáticas de una empresa. Por ejemplo, en esta configuración ambas partes pueden compartir los servicios de correo electrónico corporativo; en cambio, en el segundo, uno de ellos cumple la función de servidor de correo y el otro la de base de datos. Ante cualquier falla uno respalda al otro rápidamente y cumple sus funciones, para sí mantener el servicio activo.
Según Fernando Norero, gerente de Productos de CIENTEC Computación, en el primero de estos casos se pueden presentar algunas complejidades técnicas, ya que cuando ambos nodos cumplen una misma función, podría haber una inconsistencia para saber que está haciendo exactamente cada uno de ellos en un momento determinado.
"Lo más usual es que cada servidor esté haciendo su tarea por separado y en caso de que falle alguno, el otro absorbe sus tareas. Posiblemente, en el momento en que esto ocurra exista un servicio algo degradado, ya que un mismo nodo tiene más actividad de lo normal, pero esto dura un período corto, hasta que el elemento defectuoso vuelve a recuperarse", explica el ejecutivo.
Para estos casos, independiente de la marca de hardware que se utilice, existen compañías que poseen herramientas específicas para los sistemas de clustering que disponen de la misma tarea. En una de estas soluciones ambos servidores se comunican entre sí para mantener sincronizados las escrituras y de esta forma evitar las inconsistencias que podrían producirse por un acceso concurrente a los discos duros compartidos entre ambos.
Múltiples Combinaciones
También pueden configurarse sistemas combinados, por ejemplo de tres nodos, en donde dos tienen bajo su responsabilidad una tarea específica y el tercero sirve sólo de respaldo. De esta forma, ante cualquier fallo, la carga de trabajo se distribuye en los dos restantes.
En general, entre algunas de las ventajas clave de la informática empresarial escalable se pueden incluir: mayor escalabilidad de rendimiento, mayor disponibilidad, mejor capacidad de administración del sistema y reducción del costo total de la propiedad.
Además, el servicio de clustering puede instalarse al interior de la empresa o de forma externa, en modalidad de outsourcing. Este es el caso de HQI Transelec Chile, filial de la canadiense Hydro Quebec que domina el Sistema Interconectado Central (SIC) de Chile con 7.276 kms. de líneas. (ver Clientes)
En este caso, la compañía contrató los servicios del CIENTEC Data Center para mantener un servicio 7x24. Lo que ellos necesitaban era un nivel de disponibilidad de 99,99%, la que se obtuvo con una configuración de clustering escalable, que hasta el momento se ha mantenido en perfectas condiciones.
Por otro lado, las configuraciones pueden realizarse en la modalidad remota, o sea, que estén separadas en "distancias metropolitanas", en donde la comunicación entre ellos puede estar hasta 40 kilómetros de distancia (de fibra). Esto es muy utilizado en empresas que poseen varias sucursales dentro de una misma ciudad y prefieren separar un poco más sus servidores.
Incluso, la tecnología permite en la actualidad configurar los denominados "Nodos Globales", en donde los servidores pueden estar en cualquier parte del mundo. "Si falla por ejemplo el nodo que está en Santiago, rápidamente su símil en Nueva York asume su trabajo.", explica Norero.
El inconveniente con las soluciones de cluster global proviene de la replicación de datos por canales de ancho de banda muy inferiores a los que se puede obtener a nivel local o metropolitano. Por lo tanto, al planificar una solución de cluster global hay que transar entre rendimiento, perdida de algunas transacciones y ancho de banda (costo) de enlaces.