Alta disponibilidad en Máquinas Virtuales.
Hola:
Hablando de alta disponibilidad en el centro de Datos en sitio, regularmente la infraestructura contempla elementos de redundancia o “fail over”, ya sean ruteadores de red, ruteadores de fibra, los servidores tienen 2 tarjetas de internet, 2 tarjetas de fibra, 2 fuentes de poder, así mismo las unidades de almacenamiento tienen 2 unidades de procesamiento con 2 tarjetas cada una para lograr la alta disponibilidad.
Al hablar de alta disponibilidad en la nube, manejamos el mismo concepto de tener múltiples recursos para lograr redundancia y evitar tiempos caídos de servicios, con una gran ventaja, los recursos físicos disponibles en los centros de datos de Azure que nos permiten tener más redundancia debido al volumen de equipos. Como cualquier equipo físico en el planeta, pueden enfrentar fallas y tiempos muertos, que puede causar que las máquinas virtuales radicando en ellos no estén disponibles temporalmente. Vamos a ver cómo podemos minimizar el impacto de estos eventos en nuestros servicios corriendo en Máquinas virtuales y así obtener el nivel de servicio de 99.95% descrito en SLA for Virtual Machines.
¿Como tomamos ventaja de estos recursos para nuestras máquinas virtuales?
Al proveer el mismo servicio en múltiples máquinas virtuales en Azure, estamos tratando de obtener alta disponibilidad y minimizar los tiempos fuera de servicio. Sin embargo, Microsoft no sabe que es lo que está corriendo en las máquinas virtuales y podrían estar corriendo en el mismo servidor físico, o en servidores con una misma fuente de energía y mismo ruteador de datos de red. En caso de un mantenimiento, planeado o no planeado, esto podría resultar en una interrupción del servicio, lo cual se podría evitar.
La forma en que le indicamos a Azure que queremos alta disponibilidad para las funciones en nuestras Máquinas Virtuales, es a través de “Conjuntos de Disponibilidad’ o “Availability Sets”
Con el uso de “Availability Sets” en nuestras Máquinas virtuales le informamos a Microsoft que ese grupo de máquinas virtuales se utilizan para proveer el mismo servicio, y por razones de alta disponibilidad no deberían interrumpirse al mismo tiempo. Esto es muy importante, ya que como no tenemos control de en qué servidores físicos radicaran las maquinas, Microsoft las ubicara cumpliendo con estos requisitos.
Los “Availability Sets” es la manera de agrupar nuestras máquinas virtuales con el mismo servicio para minimizar el riesgo de interrupciones al mismo.
¿Como funcionan los “Availability Sets”?
Hagamos una homología con nuestro Centro de datos en sitio con el siguiente diagrama.
Tenemos 4 Racks con 7 servidores cada uno, los Racks 1 y 2 están alimentados de una fuente de Energía común diferente a la fuente de energía que alimenta a los Racks 3 y 4, en el caso de que falle la fuente de energía 1, fallarán los Racks 1 y 2, pero los Racks 3 y 4 seguirán levantados, por lo tanto, los servidores que tienen infraestructura física común constituyen un Dominio de falla o “Fault Domain”.
De la misma manera, digamos que los mantenimientos y actualizaciones de firmware a los equipos se agendan por Racks independientes, por lo tanto, al momento de efectuar un mantenimiento programado, los servidores del Rack 1 reiniciaran simultáneamente sin interferencia de los servidores en los Racks 2, 3 y 4, por lo tanto, cada conjunto de servidores que se les efectúa mantenimiento simultáneamente constituye un Dominio de Actualización o “Update Domain”.
A la hora de definir nuestros Availability Sets, podemos definir hasta 3 Dominios de falla y 5 Dominios de actualización. De modo que en una situación de “Falla” de hardware, una de cada 3 máquinas virtuales reiniciara, pero las otras 2 no serán afectadas, así mismo, en el caso de mantenimientos programados, una de cada 5 máquinas virtuales podrá reiniciar sin afectar a las otras 4.
Para la documentación oficial, favor de ir al enlace:
Manage the availability of Windows virtual machines in Azure
/en-us/azure/virtual-machines/windows/manage-availability
Gracias y esperamos que sea de su agrado.
Saludos
Mariano Carro