En este post quiero dar a conocer cómo #Openstack resuelve una de las problemáticas o requerimientos más críticos que necesitas las empresas para tener sus servicios de misión crítica siempre activos y es la alta disponibilidad de su infraestructura. Gracias a #Masakari, módulo nativo de Openstack podremos trabajar en 3 capas (Procesos, VM y Hosts) para poder detectar eventos de fallos y migrar cargas automáticas mediante patrones personalizables. En este post haré una introducción y configuración básica de que opciones y como personalizar nuestro plan de contingenciacon este servicio.
Lo primero que debemos saber esque Openstack es una solución modular, donde en la fase de arquitectura tendremos que decidir que requerimientos y necesidades tiene nuestra infraestructura y poder diseñas los módulos y su configuración correctamente. Masakari no es un módulo “Core” de openstack, es decir, no se instala de base y debemos de añadirlo con nuestra herramienta de Gestión, en este caso nosotros utilizaremos #Kolla-Ansible para ello.
Para ello manejaremos varios conceptos simples:
- Segmento: Agrupación de Hosts físicos.
- Hosts: Servidor físico de virtualización donde corren las VM de nuestra Cloud.
Esta configuración la podremos realizar tanto por interfaz gráfica en nuestro#Horizon o por CLI de manera sencilla. Para ello seguiremos estos pasos:
1. Definiremos nuestros Segmentos en función de las políticas que necesitemos. Por ejemplo, podremos tener Segmentos para cargas o Hosts críticos que queramos levantar con mas prioridad o simplemente categorizar o agrupar por servicios o paquetes de Hosts.
2. Crearemos cada uno de los segmentos donde trabajamos principalmente definiendo su Recovery Method. Este parámetro permite elegir desde tener un host reservado para ser el elegido como destino en la evacuación de nuestras VM o delegar esta tarea en auto a openstack, siendo el mediante detección de carga quien migrará del host caído a cada uno de los hosts disponibles.
3. Asignaremos cada uno de los Hosts que tenemos en la plataforma al Segmento asociado en el primer punto.
Una vez tengamos configurado este punto ya tendríamos definidas nuestra políticas de HighAvailability. Podremos acceder a información de Notificaciones para conocer si ha pasado algún evento de caída ya sea bien por fallo en el proceso de una VM o por un Host de computación de nuestro entorno.
En caso de activación de estas políticas, automática el Scheduler de Nova encargado de realizar los placement a los nuevos hosts disponibles según nuestras políticas se verán en la sección VMoves, donde podremos ver en tiempo real las evacuaciones que se producen.
Conclusión: La funcionalidad de #HighAvailability en Openstack es un tema no tan conocido en la comunidad debido a ser un módulo no fundamental para este stack. Gracias a esta configuración podemos sumar un punto mas en nuestra arquitectura y ofrecer una opción de resiliencia y reducir nuestro RTO en caso de caídas. Siempre recuerdo que esto debería ser un “Must” en cualquier solución y es el complemento perfecto a nuestro plan de continuidad de negocio.