Una forma optimizada del sistema de gestión de recursos en entornos OpenStack y Kubernetes
El avanzado sistema de gestión de recursos integrado en FishOS proporciona una gestión inteligente y eficiente de los recursos dentro de OpenStack y Kubernetes. Esto se consigue con una combinación de 2 motores de decisión: FishOS Placement Engine y Rebalancing Engine, que trabajan conjuntamente para garantizar operaciones de centro de datos altamente eficientes.
El Motor de Colocación y el Motor de Reequilibrio de FishOS son dos motores de decisión que trabajan conjuntamente para garantizar operaciones altamente eficientes en el centro de datos.
Situación
Para conseguir una alta eficiencia en la utilización de los recursos, hay 2 situaciones que deben ser tratadas:
- Dado un conjunto concreto de nuevas máquinas virtuales que se van a iniciar, ¿dónde deben colocarse las máquinas virtuales, teniendo en cuenta la utilización de los recursos vivos en toda la instalación?
- Dado un conjunto de máquinas virtuales que se ejecutan en la instalación, ¿cómo se pueden empaquetar las máquinas virtuales en el número óptimo de servidores, satisfaciendo al mismo tiempo las necesidades de recursos de las máquinas virtuales, sin que ello afecte al rendimiento?
La primera se denomina Colocación, mientras que la segunda se llama Reequilibrio.
Aunque la Colocación y el Reequilibrio están relacionados, hay que tratarlos como tareas computacionales diferentes y, por tanto, decisiones diferentes.
Como se verá más adelante, el sistema inteligente de gestión de recursos en FishOS se basa en la disponibilidad de la migración en vivo. Para Kubernetes, este esquema depende de que Kubernetes se ejecute dentro de máquinas virtuales.
Vista de alto nivel
A alto nivel, el sistema analiza:
- todos los hipervisores del sistema determinando su capacidad y
- todas las máquinas virtuales en ejecución determinando la carga que crean
La información sobre la capacidad frente a la carga se obtiene de las métricas recogidas de los hipervisores y las máquinas virtuales. Estas métricas reflejan recursos como la memoria, el disco, la red y la CPU.
El impacto
Utilizando este enfoque minimizaríamos el número de hipervisores utilizados para alojar máquinas virtuales sin poner una restricción adicional al funcionamiento de esas máquinas virtuales.
Permite utilizar un menor número de servidores para alojar la misma cantidad de máquinas virtuales, con lo que se consiguen menores gastos operativos y de capital, y se reducen los costes de licencias y electricidad.
Motor de Colocación FishOS
El propósito del Motor de Colocación es determinar dónde debe(n) iniciarse (colocarse) la(s) máquina(s) virtual(es) cuando lo solicita un Consumidor de Servicios.
¿Dónde van las nuevas máquinas virtuales?
La respuesta a la pregunta de dónde deben colocarse las nuevas máquinas virtuales se obtiene del siguiente modo:
Si todos los hipervisores del sistema están libres, las máquinas virtuales van primero al hipervisor con menor capacidad para alojarlas. De este modo, no necesitaríamos utilizar servidores más grandes sólo para alojar un conjunto de máquinas virtuales pequeñas.
Si hay hipervisores en el sistema que están en uso (es decir, con algunas máquinas virtuales en ellos), las nuevas máquinas virtuales se colocarán preferentemente allí (siempre que haya capacidad en esos hipervisores para alojar máquinas virtuales). Esto se hace para minimizar el número de hipervisores que sería necesario encender para alojar las máquinas virtuales.
El Motor de Colocación hace estimaciones basadas en el sabor seleccionado para la máquina virtual, lo que ayuda a comprobar si una determinada máquina virtual cabrá en un hipervisor concreto.
Motor de Reequilibrio FishOS
El objetivo del Motor de Reequilibrio es determinar cómo se puede reequilibrar una infraestructura ya en funcionamiento para que sea más eficiente.
¿Es necesario optimizar la infraestructura? Antes de proceder a realizar cualquier tarea de reequilibrio, la primera pregunta que surge es si es necesario optimizar la infraestructura.
Para cada MV hay que responder a una serie de preguntas, entre ellas
- ¿Es necesario trasladarlo a otro hipervisor?
- ¿Se puede mover? ¿Hay alguna operación, como un exceso de procesos de escritura en disco o actividad de red, que pueda impedir que se complete la migración en vivo?
¿Cómo optimizar la infraestructura?
Una vez que se ha determinado que la infraestructura en funcionamiento no es óptima, la siguiente pregunta es cómo se puede optimizar la infraestructura. Asociado a ello, el Motor de Reequilibrio también se ocupa de cuestiones como:
- ¿Cuál es la combinación óptima de movimientos de máquinas virtuales?
- Si una máquina virtual puede y debe moverse, ¿dónde la movemos? (Consulta la sección Motor de Colocación).
- ¿Cuál es el impacto tras la operación de reequilibrio?
Una vez calculado el Plan de Reequilibrio, el Motor de Reequilibrio emite las solicitudes para realizar esas migraciones.
Colocación y reequilibrio
FishOS Placement Engine y Rebalancing Engine utilizan métricas de utilización en vivo de toda la instalación, para resolver el problema de optimización de recursos en vivo. El enfoque no sólo utilizará los valores de reserva especificados por el sabor para determinar si una determinada máquina virtual cabe en un hipervisor concreto, sino que también utilizará importantes datos de utilización reales, obtenidos mediante la recopilación de métricas de las máquinas virtuales y los hipervisores.
El Motor de Colocación garantiza que se utilicen los servidores adecuados capaces de alojar la(s) VM(s), minimizando al mismo tiempo el número de servidores necesarios para alojar la totalidad de las cargas de trabajo de las VM. El Motor de Colocación trata los sabores definidos en OpenStack como límites superiores de los recursos que se pueden asignar a las VM, indicando la cantidad máxima que debe consumir cada VM, controlando los recursos adecuados.
FishOS garantiza que si un host que ya está siendo utilizado es, basándose en la utilización real de recursos, todavía capaz de albergar VM adicionales, se dará preferencia a ejecutar nuevas VM adicionales en ese host. FishOS permite a un Operador controlar fácilmente el número de hipervisores que se utilizarán en cualquier momento, mejorando las tasas de utilización de recursos de OpenStack.
El Motor de Reequilibrio garantiza que una infraestructura ya en funcionamiento funcione de forma eficiente, permitiendo a los Operadores optimizar el uso de los recursos de las instalaciones teniendo en cuenta la utilización de recursos en vivo de las cargas de trabajo.
Por defecto, el Motor de Reequilibrio de FishOS se ejecuta automáticamente en el sistema, al tiempo que permite a un Operador configurar la frecuencia de reequilibrio. Una vez calculado un Plan de Reequilibrio, el Motor de Reequilibrio emite las solicitudes para realizar esas migraciones, sin requerir la intervención de un Operador, y también es capaz de proporcionar funciones como:
- migración automática de las máquinas virtuales de los hipervisores desactivados
- reequilibrar la carga migrando en vivo las máquinas virtuales no ancladas
- registro de los resultados para comprender el estado de la infraestructura
- Interfaz CLI con opción de ejecución en seco para ayudar al Operador a comprender el impacto
- los hipervisores desactivados se migran forzosamente en vivo
Componentes de apoyo
Para que los Motores de Colocación y Reequilibrio puedan tomar decisiones, cada uno de ellos necesita datos. Los datos necesarios son recogidos por un conjunto de recopiladores de datos de estado implementados como plugins de recopilados.
Sardina eligió implementar los recopiladores de datos de estado como plugins de collected porque collected tiene una serie de ventajas, que van desde que es habitual en entornos Linux, ser de código abierto, así como ser fácilmente extensible y tener un bajo coste de integración, lo que permite a los administradores de sistemas Linux ampliarlo y expandirlo fácilmente.
Los datos de estado recogidos son enviados por un plugin de recogida y acaban en una base de datos de series temporales escalable horizontalmente, diseñada para manejar un gran número de pequeñas escrituras y un pequeño número de grandes lecturas.
A continuación, los datos de la base de datos de series temporales son consumidos por los Motores de Colocación y Reequilibrio.
Activado por defecto
Tanto el Motor de Colocación como el Motor de Reequilibrio están activados por defecto en los sistemas FishOS, con el Motor de Reequilibrio configurado para ejecutarse periódicamente.
Código abierto
Como Sardina quiere apoyar OpenStack y su modelo de código abierto, ahora ofrecemos acceso gratuito a FishOS Deployer durante un periodo de tiempo limitado.
Visita nuestra página www.sardinasystems.com para más información o ponte en contacto con nosotros en info@sardinasystems.com.
Gracias.


