martes, 13 de julio de 2010

Alta Disponibilidad

La alta disponibilidad es cuando un sistema resuelve las nececidades de los usuarios en un porcentaje de tiempo elevado, las nececidades del usuario pueden ser escribir un dato en el sistema, leer un dato en el sistema, procesar un dato en el sistema.
Existen dos tipos de inactividades que son las causas de que el usuario no pueda trabajar con el sistema y por consiguiente no hay alta disponibilidad, estas son:
Inactividad Programada
Inactividad No Programada

La inactividad programada son todas aquellas interrupciones del sistema que se llevan a cabo con hecho pensado, entre las cuales destacamos el mantenimiento, actualizacion de sistema operativo, antivirus u otro software. En algunas ocaciones no se toman en cuenta para medir la disponibilidad del sistema pero lo correcto es incluir este tiempo de inactividad para obtener el porcentaje de dispoinibilidad de servicio.

Las inactividades no programadas son aquellas que ocurren accidentalmente y sin acto de meditacion o de voluntad por ejemplo cuando se corta la corriente, algun ataque de virus, denegaciones de servicio por stress del sistema, fallas en el cableado de red, errores internos en el software entre otros, estas inactividades son las que frecuentemente se toman en cuenta para proporcionar un dato porcentual de funcionamiento del sistema.

Es prudente hablar del tiempo de recuperacion, es importante medir el tiempo de recuperacion ante diferentes tipos de inactividades debido a que este dato es fundamental para poder proporcionar a nuestros clientes un porcentaje real del tiempo de disponibilidad. Existen ocaciones en que el tiempo de recuperacion es demaciado grande o incluso infinito por ejemplo el caso de un incendio o una inundacion, para lo cual es prudente estar preparado con un plan de continuidad el cual nos garantice recuperarnos en un tiempo prudente.

La inactividad del sistema es tolerable por parte del usuario, por ejemplo imaginemos que queremos entrar a la banca electronica de nuestro banco y esta se encuentra deshabilitada por mantenimiento, como usuarios intentamos mas tarde y no hay mayor inconveniente incluso cuando sera muy preciso saber el dato, nosotros como usuarios vamos a esperar. Lo que definitivamente el usuario no puede permitir es la perdida de datos o la inconsistencia de los mismos, imaginemos el mismo caso del banco, de nada nos sirve que este disponible en un 99.999999% del tiempo si cada vez que consulto mi saldo es diferente y sin una justificacion aceptable, o que cuando quiera entrar a mi cuenta me aparezcan menos de los depositos que yo he realizado.

El calculo del porcentaje de disponibilidad se lleva a cabo de la siguiente forma:
porcentaje_disponibilidad =1- tiempo_inactividad / tiempo_año

Por ejemplo:
1 - 11dias / 365dias = 0.9698, en porcentaje seria 96.98% de disponibilidad anual.



Índice de disponibilidadDuración del tiempo de inactividad
97%11 días
98%7 días
99%3 días y 15 horas
99,9%8 horas y 48 minutos
99,99%53 minutos
99,999%5 minutos
99,9999%32 segundos

Solucion
Para proporcionar un sistema de alta disponibilidad es sencillo, debemos instalar un cluster de equipos que tengan el mismo nivel de servicio y un balanceador de disponibilidad.

La logica consiste en dos o mas servidores que tengan la misma informacion replicada entre ellos, el balanceador de disponibilidad verifica si el servidor esta funcionando y en caso deje de funcionar el balanceador redirecciona el trafico de los usuarios hacia el servidor de respaldo, el cual es bueno mencionar que tiene la misma informacion replicada del servidor principal y que resuelve las peticiones de forma similar. Finalmente cuando se ha restablecido el servidor principal, este se pone en linea, se actualizan los datos que han sido modificados en el cluster respaldo.

Nota: no debemos confundir el cluster de alta disonibilidad que garantiza funcionamiento continuo con el cluster de alto rendimiento que su funcionalidad es balancear las cargas en multiples servidores para que se procesen mas rapido los datos.


Software:
Existen multiples sistemas operativos que incluyen software para configurar la alta disponibilidad, entre ellos:
  • HearBeat
  • Idirectord y LVS (Linux Virtual Server)
  • Pirahna
  • UltraMonkey
  • Kimberlite








No hay comentarios:

Publicar un comentario