# Alta disponibilidad

Alta disponibilidad (en inglés: high availability) es un protocolo de diseño del sistema y su implementación asociada que asegura un cierto grado absoluto de continuidad operacional durante un período de medición dado. La disponibilidad se refiere a la habilidad de la comunidad de usuarios para acceder al sistema, someter nuevos trabajos, actualizar o alterar trabajos existentes o recoger los resultados de trabajos previos. Si un usuario no puede acceder al sistema se dice que está no disponible. El término tiempo de inactividad (downtime) se emplea para definir el periodo de tiempo en que el sistema no está disponible.

## Tiempo de inactividad

Típicamente, el tiempo de inactividad planificado es el resultado del mantenimiento que resulta perjudicial para la operación del sistema y usualmente no puede evitarse con la configuración actualmente instalada. Algunos ejemplos de eventos que generan tiempos de inactividad planificados son los parches para el software de sistema que requieran un rearranque o cambios en la configuración del sistema que toman efecto después de un rearranque. En general, el tiempo de inactividad planificado es habitualmente el resultado de un evento lógico o de gestión iniciado.
Los tiempos de inactividad no planificados surgen de algún evento físico tales como fallos en el hardware o anomalías ambientales. Algunos ejemplos de eventos que generan tiempos de inactividad no planificados son los fallos de potencia, fallos en los componentes de CPU o RAM, una caída por recalentamiento, una ruptura lógica o física en las conexiones de red, brechas de seguridad o fallos en el sistema operativo, aplicaciones y middleware.
Muchos puestos computacionales excluyen el tiempo de inactividad planificado de los cálculos de disponibilidad, asumiendo, correcta o incorrectamente, que el tiempo de actividad no planificado tiene poco o ningún impacto sobre la comunidad de usuarios computacionales. Al excluir el tiempo de inactividad planificado, muchos sistemas pueden reclamar tener una disponibilidad muy alta, lo que puede crear falsas ilusiones de disponibilidad continua. Los sistemas que exhiben verdadera disponibilidad continua son comparativamente raros y caros, y suelen contar con diseños cuidadosamente implementados que eliminan cualquier punto único de fallo y permiten que el hardware, la red, el sistema operativo, middleware y actualización de aplicaciones, parches y reemplazos se hagan en línea.

## Cálculos porcentuales

La disponibilidad suele expresarse en forma de porcentaje del tiempo de funcionamiento en un año dado. En un año dado, el número de minutos de tiempo de inactividad no planeado es registrado para un sistema, el tiempo de inactividad no planificado agregado es dividido por el número total de minutos en un año (aproximadamente 525.600) produciendo un porcentaje de tiempo de inactividad; el complemento es el porcentaje de tiempo de funcionamiento el cual es lo que denominamos como disponibilidad del sistema. Valores comunes de disponibilidad, típicamente enunciado como número de "nueves" para sistemas altamente disponibles son:
* 99,9% = 43.8 minutos/mes u 8,76 horas/año ("tres nueves")
* 99,99% = 4.38 minutos/mes o 52.6 minutos/año ("cuatro nueves")
* 99,999% = 0.44 minutos/mes o 5.26 minutos/año ("cinco nueves")
Nótese que el tiempo de funcionamiento (uptime) y la disponibilidad no son sinónimos. Un sistema puede estar en funcionamiento y no disponible como en el caso de un fallo de red. Se puede apreciar que estos valores de disponibilidad son visibles mayormente en documentos de ventas o marketing, en lugar de ser una especificación técnica completamente medible y cuantificable.

## Medida e interpretación

La medición de la disponibilidad está sujeta a cierto grado de interpretación. Un sistema que ha estado en funcionamiento por 365 días en un año no bisiesto quizá ha sido eclipsado por un fallo de red que duró 9 horas durante un periodo de uso pico; la comunidad de usuarios verá el sistema como no disponible, mientras el administrador del sistema reclamará el 100% de “tiempo de funcionamiento”. Sin embargo siguiendo la verdadera definición de disponibilidad, el sistema estará aproximadamente 99.897% disponible (8751 horas de las 8760 horas por año no bisiesto).
Además, los usuarios pueden considerar que un sistema que esté experimentando problemas de rendimiento está parcial o completamente no disponible, a pesar de que el sistema sigue funcionando. De igual manera, la no disponibilidad de determinadas funciones de la aplicación podrá pasar desapercibida para los administradores, aunque sea muy notoria para los usuarios. Así, la verdadera medida de la disponibilidad debe ser holística.
La disponibilidad debe ser medida para ser determinada, idealmente con herramientas de monitorización exhaustivas ("instrumentación") que a su vez presenten una alta disponibilidad. Si hay una falta de instrumentación, los sistemas que estén sujetos a un alto volumen de procesamiento de transacciones a lo largo del día y de la noche tales como el procesamiento de tarjetas de crédito o los conmutadores telefónicos, suelen estar inherentemente mejor monitorizados, al menos por parte de los mismos usuarios, que los sistemas que experimentan pausas periódicas en la demanda.

## Conceptos relacionados

El tiempo de recuperación esta cercanamente relacionado con la disponibilidad, que es el tiempo total requerido para un apagón planificado o el tiempo requerido para la recuperación completa de un apagón no planificado. El tiempo de recuperación puede ser infinito con ciertos diseños y fallos del sistema, la recuperación total es imposible. Un ejemplo es un incendio o inundación que destruye un centro de datos y sus sistemas cuando no hay un centro de datos secundario para recuperación frente a desastres.
Otro concepto relacionado es la disponibilidad de datos, que es el grado en el cual las bases de datos y otros sistemas de almacenamiento de la información que registran y reportan fielmente las transacciones del sistema. Los especialistas de gestión de la información frecuentemente enfocan separadamente la disponibilidad de datos para determinar la pérdida de datos aceptable o actual con varios eventos de fracasos. Algunos usuarios pueden tolerar interrupciones en el servicio de aplicación pero no la pérdida de datos.

## Diseño de un sistema de alta disponibilidad

Paradójicamente, añadir más componentes al sistema total puede socavar esfuerzos para lograr alta disponibilidad. Esto se debe a que los sistemas complejos tienen inherentemente más puntos de fallos potenciales y son más difíciles de implementar correctamente. La mayoría de los sistemas altamente disponibles presentan un patrón de diseño simple: un sistema físico multipropósito simple de alta calidad con redundancia interna comprensible ejecutando todas las funciones interdependientes emparejadas con un segundo sistema en una localización física separada.
Este clásico patrón de diseño es común entre instituciones financieras por ejemplo. La industria de la informática y las comunicaciones ha establecido el Foro de la Disponibilidad de Servicio (Service Availability Forum), que acoge la creación de productos de infraestructura de red, servicios y sistemas de alta disponibilidad. El mismo principio de diseño básico se aplica más allá de la informática en diversos campos como potencia nuclear, aeronáutica y cuidados médicos.

## Diseño de un sistema de alta disponibilidad de capa 3

Los diseño jerárquico de la red tienen como características principal la alta disponibilidad en capa 3 y para su implementación en redes LAN se utilizan los protocolos como HSRP, GLBP y VRRP.