Tolerancia a fallos y disponibilidad

En un sistema compuesto por  nodos de cómputo distribuidos la probabilidad de que se produzca un fallo aumenta, pero se debe garantizar que el sistema siga funcionando a pesar de ellos. Y minimizando las pérdidas de información y/o rendimiento, es decir, garantizando una calidad de servicio mínima a los usuarios.

Desde el punto de vista de la arquitectura, la principal herramienta que se puede utilizar para resolver este problema es la redundancia, es decir, incluir recursos adicionales a los estrictamente necesarios para la operación normal del sistema. La redundancia siempre incrementa el coste de la arquitectura, por lo que es importante elegir adecuadamente el tipo de recurso adicional que se va a utilizar.
Existen distintos tipos de redundancia, principalmente hardware, software y  de información. Y se puede aplicar a diferentes niveles (físico, sistema operativo, aplicación). Por ejemplo, en lo que se refiere al hardware, dos de los elementos críticos para conseguir la tolerancia a fallos que se suelen incluir en todos los diseños actuales son las SAI (Sistemas de Alimentación Ininterrumpida) para la alimentación y los RAID para el almacenamiento.

A veces el concepto de la tolerancia a fallos se confunde con el de disponibilidad, pero, aunque estén relacionados, no se refieren exactamente a lo mismo. La disponibilidad es la capacidad de un sistema de garantizar la continuidad en su operación ante cualquier situación. Los usuarios deben tener, la mayor parte del tiempo, la capacidad de acceder a la arquitectura para lanzar trabajos, realizar tareas de configuración y mantenimiento, recoger resultados, etc. Esta capacidad del sistema se suele cuantificar con el porcentaje de tiempo que ha estado disponible para los usuarios (se habla de alta disponibilidad cuando este porcentaje está en un valor a partir de los tres nueves, es decir, por encima de un 99.9%).

Obviamante debemos tener resuelta la tolerancia a fallos para conseguir sistemas de alta disponibilidad. Pero la continuidad en el servicio no sólo se ve amenazada por fallos o desastres, también existen discontinuidades en el servicio por paradas programadas, por ataques de denegación de servicio o por picos de demanda del servicio, sólo por poner algunos ejemplos.

No hay comentarios: