29
julio
2019

Failover

La conmutación por error, o failover, es un modo de funcionamiento de respaldo en el que las funciones de un componente de un sistema primario, como el procesador, un servidor, la red o una base de datos, por ejemplo, son asumidos por componentes de un sistema secundario cuando el primero no está disponible, ya sea debido a una falla o por el tiempo de mantenimiento programado.

Se utiliza para hacer los sistemas más tolerantes a fallos, y suele ser una parte integral de los sistemas de misión crítica que deben estar constantemente disponibles.

El objetivo principal de failover es permitir que procesos que normalmente se ejecutan en un nodo sean transferidos a otro, en caso de que el principal que brinda los servicios falle. Este método, entre otras funciones, también permite realizar mantenimientos y cambios de hardware, sin afectar los servicios específicos que se brindan al usuario final.

Una recomendación para el failover es que los nodos estén ubicados en centros de datos diferentes, y si es posible, en diferentes lugares geográficos para una mayor efectividad.

El procedimiento implica descargar tareas de forma automática a un componente del sistema en modo de espera, para que, al ocurrir la falla en el sistema principal, el traspaso al secundario ocurra tan transparente como sea posible para el usuario final.

La capacidad de recuperación automática significa que las funciones normales pueden mantenerse a pesar de las interrupciones inevitables causadas por problemas con el equipo o el servicio.

Estrategias

El nivel de tolerancia a fallos dependerá de las técnicas utilizadas para conseguirlo; no obstante, nunca será absoluta ya que, por lo general, siempre existirá algún tipo de fallo masivo que produciría un error irrecuperable.

Para cada sistema crítico será necesario diseñar su tolerancia a fallos de forma que los esfuerzos realizados para mitigar cierto tipo de “caídas” compensen los perjuicios que provocaría no tolerarla.

En este sentido, existen distintas estrategias para conseguir un sistema lo más tolerante a fallos posible. Las más importantes y conocidas son:

  • Redundancia: existencia de módulos pasivos que realizan exactamente lo mismo que otros activos, de forma tal que puedan sustituirlo y evitar que el sistema se detenga por el fallo de un elemento.
  • Replicación: para evitar que un fallo produzca la pérdida de la información almacenada, se suele replicar esa información en más de un soporte físico, o en un equipo o dispositivo externo a modo de respaldo. De esta forma, si se produce alguna falla que pueda ocasionar pérdida de datos, el sistema debe ser capaz de restablecer toda la información, recuperando los datos necesarios a partir de algún medio de respaldo disponible.

Implementación

Existen dos tipos de conmutación por error: failover y switchover, que en la práctica son esencialmente la misma operación, excepto que la primera es automática y generalmente funciona sin previo aviso, mientras que la segunda requiere la intervención humana.

En sistemas que dan soporte a servidores o redes que requieren de una disponibilidad casi continua y un alto grado de confiabilidad, se emplea una capacidad de conmutación por error de forma automática.

La automatización de la conmutación por error generalmente utiliza un sistema de "latido" que conecta dos servidores, ya sea mediante un cable separado (por ejemplo, puertos serie RS-232 / cable) o una conexión de red.

Mientras un "pulso" o "latido" regular continúe entre el servidor principal y el segundo servidor, este último no pondrá sus sistemas en línea. También puede haber un tercer servidor de "piezas de repuesto" que tenga componentes de respaldo en ejecución para el cambio "en caliente" y con ello evitar el tiempo de inactividad.

El segundo servidor asume el trabajo del primero en cuanto detecta una alteración en el "latido" del primero. Algunos sistemas, incluso, tienen la capacidad de enviar una notificación de conmutación por error.

Otros sistemas, intencionalmente, no realizan una conmutación por error de forma totalmente automática, sino que requieren intervención humana. Esta configuración "automatizada con aprobación manual" se ejecuta automáticamente una vez que un humano ha aprobado la conmutación por error.

El uso del software de virtualización ha permitido que las prácticas de conmutación por error se vuelvan menos dependientes del hardware físico a través del proceso denominado migración, en el que una máquina virtual en ejecución se mueve de un host físico a otro, con poca o ninguna interrupción en el servicio.

Failover Clustering

Un clúster de conmutación por error (failover clustering) es un conjunto de servidores de computadoras que trabajan juntos para proporcionar alta disponibilidad o disponibilidad continua.

Si uno de los servidores deja de funcionar, otro nodo del clúster puede asumir su carga de trabajo con un tiempo de inactividad mínimo o nulo. Algunos clústeres de conmutación por error utilizan solo servidores físicos, mientras que otros involucran máquinas virtuales.

El propósito principal de un clúster de conmutación por error es proporcionar disponibilidad desde dos perspectivas: una continua, y otra alta, para aplicaciones y servicios.

Los clústeres de disponibilidad continua permiten a los usuarios finales seguir utilizando aplicaciones y servicios sin experimentar tiempos de espera si un servidor falla.

Con los clústeres de alta disponibilidad, por otro lado, un usuario puede sufrir una breve interrupción en el servicio, pero el sistema se recuperará automáticamente sin pérdida de datos y con un tiempo de inactividad mínimo.

Si bien los clústeres de conmutación por error de disponibilidad continua están diseñados para una disponibilidad del 100%, los clústeres de alta disponibilidad intentan tener una disponibilidad del 99.999% (también conocida como "cinco nueves").

Como compensación por su menor disponibilidad, los clústeres de alta disponibilidad son menos costosos de implementar que los de disponibilidad continua, debido a los mayores requisitos de hardware de estos últimos.

Registro y Monitoreo

Otras habilidades importantes asociadas a failover son registrar y mantener el historial de los cambios de estado de los enlaces, así como la notificación a un administrador referente a los cambios. Esto permite que, ante estas informaciones, los responsables puedan tomar las medidas necesarias y mitigar las fallas.

Se espera también de estas soluciones que, tras la ocurrencia de un siniestro, y la realización de las configuraciones de contingencia, los enlaces que presentaron fallas continúen siendo monitoreados y, al ser reestablecidos de forma transparente, el equipo proceda con los cambios necesarios para retornar al escenario original, anterior a la ocurrencia de la falla.

Es importante resaltar la importancia de la realización de pruebas periódicas (programadas) de las configuraciones de failover para garantizar que su funcionamiento esté de acuerdo con lo esperado y se mantenga actualizado ante los cambios en la estructura.

Un plan de contingencia eficaz y un equipo que permita la configuración de la redundancia automática de los vínculos, es esencial cuando se trata de garantizar la continuidad del servicio y en el caso de los sistemas de ciberseguridad aún más.