¿En qué dirección va la virtualización en bhyve de FreeBSD?
Imagen tomada del sitio: https://gyptazy.com/wp-content/uploads/2024/10/bhvye_freebsd_logo_vm.jpg
Buenos días/tardes/noches estimados Steemians que les gusta el Opensource!
En esta ocasión vamos a hablar del sistema de virtualización nativo de FreeBSD conocido como bhyve. enfocandonos principalmente en una característica que otros sistemas de virtualización como vmware, KVM (Proxmox) y Xen (XCP-ng) tienen que es la migración en vivo de una máquina virtual de un equipo a otro, el siguiente post es una traducción y adaptación de la siguiente página:
https://gyptazy.com/bhyve-on-freebsd-and-vm-live-migration-quo-vadis/.
Antecedentes
Cuando pensamos sobre la Migracióne en Vivo de bhyve, que es algo que se encuentra con mucha frecuencia en llamadas de consultoría. Cuyo tópico predominante es que VMware está luchando con los problemas de licencia de Broadcom, incluso ahora que estamos acercandonos al final del 2024. Es en verdad sorprendente que muchos clientes aún sientan incertidumbre sobre como sortear
este desastre. Dado que VMWare ha estado presente en los ambientes empresarial por varios años, estos problemas que estan en curso ponen a sus clientes nerviosos. Y deberían de estarlo - es dificil confiar en algo cuando incluso la situación de su
licenciamiento se siente volátil.
Ahora, a pesar de que son un fan de hueso colorado de FreeBSD, debemos admitir que FreeBSD aún se queda corto cuando se habla de virtualización - al menos desde una perspectiva empresarial. En este ambiente, no se trata solo de correr una máquina virtual; se trata de tener la flexibilidad y capacidades para gestionar cargas de trabajo sin interrupción. Hace años, las soluciones de open-source como KVM (Proxmox) y Xen (XCP-ng) introdujeron caracaterísticas como la migración en vivo, dónde se podía mover Máquinas Virtuales entre anfitriones con un tiempo de caida igual a cero. Y aún más recientemente, soluciones tales como Harvester de SUSE Linux (utilizando KuberVit para correr Máquinas Virtuales) han mostrado que ésta característica es ahora una parte esencial de los ecosistemas de virtualización.
Siempre que se habla con clientes sobre posibles alternativas a VMware, frecuentemente se menciona, "No hay nada que pueda reemplazar a VMware en una relación 1 a 1 en características!" Y desafortunadamente es la verdad. Es por eso lo importante de entender sus requerimientos completamente antes de sugerir cualquier solución. 9 de cada 10 veces, la migración en vivo es un requerimiento crítico o muy crítico. Y tan pronto como llegamos a ese punto, se hace claro que FreeBSD no es una opción realista para la mayoría de las empresas en este momento – al menos no para ambientes de virtualización con requerimientos empresariales.
Por supuesto que ya se han migrado algunos sistemas a soluciones basadas en FreeBSD, pero estos han sido configuraciones de un solo nodo. Eso está bien para algunos casos de uso, pero en el mundo empresarial de hoy, la idea de decirle a un cliente que necesitan apagar sus máquinas virtuales solo para realizar un mantenimiento en el anfitrión es absurda. Tiempo muerto, incluso por cortos periodos, es simplemente inaceptable. Incluso si solo se esta copiando un disco de Máquina Virtual a otro anfitrión, apagarlo y sincronizar deltas antes de regresar en línea esa máquina virtual el tiempo es aún demasiado largo para los estándares
de 2024. Todas las conexiones se caerían. Imagina tirar conexiones de VPN , transferencia de archivos (enormes) y otras sesiones importantes. Eso simplemente no es una solución viable.
En bhyve finalmente se comienzan a hacer progresos con la migración en vivo en el mundo de FreeBSD, y es un gran alivio. Durante mucho tiempo se había sentido que era necesario un cambio de mentalidad del tipo "funciona para mi", desde luego que FreeBSD funciona fantastico para aquellos quienes son fans de hueso colorado de FreeBSD, pero la realidad es que hay millones de personas que tienen diferentes requerimientos, especialmente en ambientes empresariales. No podemos solamente enfocarnos en lo que funciona para nosotros personalmente si queremos que FreeBSD crezca y se convierta en un competidor serio con respecto a las soluciones de virtualización basadas en Linux, se necesita pensar en grande.
Por suerte, hay algunas personas muy talentosas trabajando para resolver esta brecha. Elena Mihăilescu, Mihai Carabaș, Oleg Ginzburg, y Oleg Minin (Oleg G., y Oleg. M. en CBSD (migración en vivo cbsd)/ ClonOS) que están atacando las partes difíciles de hacer una migración en vivo una realidad para FreeBSD. Elena y Mihai presentaron las últimas actualizaciones en el BSDCan de 2019 en Ottawa, canada y su trabajo nos da una foto más clara de como las cosas están evolucionando. Su documento proporciona conocimientos frescos de los conceptos detras de mover una máquina virtual invitada desde un anfitrión a otro, cubriendo migración en frío, en caliente, y migración en vivo.
La migración en vivo, desde luego, es lo más crítico para empresas. Ésta permite mover una máquina virtual en ejecución desde un anfitrión a otro sin tiempo muerto y funciona por medio de migrar la memoria en rondas, mientras que la máquina virtual invitada aún está corriendo. En la última ronda, la máquina virtual fuente es detenida, y la memoria restante es copiada, junto con el estado del CPU y los dispositivos, y entonces la nueva Máquina Virtual es iniciada en el anfitrión de destino. Este delicado proceso, y migración de memoria siempre es la parte más compleja, requiriendo múltiples rondas para asegurar una transición suave.
Imagen tomada del sitio: https://gyptazy.com/wp-content/uploads/2024/10/bhyve_FreeBSD_live_migration.jpeg.
Captura de pantalla tomado de los documentos de “Migrando un invitado de bhyve”, BSDCan 2019
Una de las técnicas que usan es la de la estratégia basada en la falla de página. Y aquí está como funciona: primero, la máquina virtual de orígen es detenida y su estado de CPU y dispositivo son copiados al anfitrión de destino. Entonces la máquina virtual es iniciada en el nuevo anfitrión, pero en ligar de copiar toda la memoria de una vez, el sistema espera a que ocurra error de página. Cuando ocurre un error de página (significa que la máquina virtual intenta acceder a una parte de memoria que no ha sido transferida todavía), esa página de memoria es copiada de regreso en ese momento. Este método ayuda a reducir el tiempo muerto y mantiene la máquina virtual corriendo lo más suave posible durante la migración.
Como en cualquier tecnología de migración en vivo, la migración de memoria por si misma es la parte más complicada. Hacerlo de forma eficiente y sin interrumpir el sistema en ejecución requiere de una orquestación, razón por la cual ésta ocurre en multiples rondas, pero con este trabajo en marcha, estamos empezando a ver un progreso real, y es un enorme paso hacia adelante para hacer de FreeBSD un contendiente serio en el espacio de la virtualización.
Modo de Uso
¿Cómo se puede usar ahora? Esto se logra por medio de usar el parámetro recientemente introducido –migrate-live y también puede ser usado fácilmente.
# Run a VM
bhyve <options> vm_src
# Receive VM to be migrated
bhyve <options> -R src_IP,port vm_dst
# Send/Start VM to migrate
bhyvectl–migrate-live=dst_IP,port vm_src
Limitaciones
Aunque sean tan excitantes los nuevos desarrollos en bhyve y la migración en vivo, tenemos que ser realistas sobre sus limitaciones actuales. Desde una perspectiva propia, aunque es verdad que se han tenido progresos, aún hay varios desafíos
que necesitan ser superados antes de que FreeBSD y bhyve puedan competir realmente en el espacio de la virtualización empresarial y también está el tiempo tan lento de progreso. No me malinterpreten, es un gran proceso para tan pequeño grupo y el trabajo realmente es apreciado pero el progreso en general no es comparable con otras soluciones y han estado muy quietos - demasiado
quietos alrededor de este asunto. Adicionalmente, hay varias restricciones aún...
Una de las restricciones más grandes es que la migración en vivo actualmente solo funciona para el segmento de memoria baja - específicamente para Máquinas Virtuales con menos de 3 GB de RAM. En ambientes empresariales modernos dónde las máquinas virtuales frecuentemente tienen cargas de trabajo que demandan mucha más memoria, esta es una limitación significativa. Un basto número de
casos de uso de dependen de una huella de memoria más grande, y al no ser capaz de migrar Máquinas Virtuales con más de 14 GB de RAM (consulte los documentos de la Asia BSDCon 2023) eso es una barricada mayor para superar. Con suerte, esto ya es una gran mejora con respecto a los 3 GB mencionados previamente en la BSDCan 2019. Las empresas necesitan la flexibilidad de migrar máquinas virtuales
de uso de recursos intensivo, sin ello, FreeBSD estaría perdiendo un pieza crucial del rompecabezas. Y mientras aunque esto suene dificil, esto solo refleja la situación actual en FreeBSD, bhyve y la situación del mercado y esto no significa que nadie esté haciendo algo mal, es totalmente lo opuesto! Debemos estar alerta de estos muchachos que están haciendo un trabajo absolutamente sorprendente con cosas muy complejas tras bambalinas!
Otra limitación es el de los problemas actuales que tienen que ver con la corrupción de memoria, que parecen estar ligados al manejo de hilos de bhyve para red y operaciones de disco durante la migración en vivo. La corrupción de memoria es un problema serio, especialmente en ambientes de producción dónde la dependencia y la estabilidad son lo principal. Este tipo de problemas pueden causar un comportamiento impredecible en Máquinas Virtuales o incluso caídas de sistema, lo que lo haría más dificil el usar de forma confiable a bhyve para cargas de misión crítica. Hasta que estos problemas de estabilidad no sean corregidos, sería muy difícil convencer a empresas de confiar completamente en FreeBSD como una plataforma de virtualización.
Adicionalmente, la migración en vivo solo fue posible con memoria cableada. Esto significa que solo páginas aseguradas dentro de la memoria física pueden ser migradas, debido a que la memoria hace uso del espacio de intercambio de disco (swap) hay un riesgo de que algunas páginas pudieran ser intercambiadas a disco en medio de la migración, llevando a inconsistencias y fallos durante el proceso. Mientras que la memoria cableada asegura que las páginas estén disponibles siempre para migración, no es una solución ideal debido a que ésta limita la flexibilidad. En ambientes grandes donde la gestión de memoria necesita ser altamente dinámica, el depender de la memoria cableada se convierte en un cuello de botella. Las empresas esperan plataformas de virtualización que puedan gestionar la memoria de forma eficiente, incluyendo el manejo de intercambios de memoria y la liberación de recursos conforme se necesite – algo que la configuración de migración en vivo actual de FreeBSD no soporta completamente aún.
De cualquier forma, también se han realizado grandes pasos adelante en esto de acuerdo con documentos de la Asia BSDCon 2023.
Nos sentimos optimistas debido a que estos avances son exactamente lo que FreeBSD necesita para ser más atratactivo a una audiencia más amplia. Ya no estamos hablando de ideas teóricas - estamos viendo pasos reales que pueden cambiar el juego. Con esta característica, los usuarios serán capaces de realizar migraciones en vivo de máquinas virtuales sin la necesidad de apagarlas nunca más. Es un paso crítico para eliminar la laguna entre bhyve de FreeBSD y otros jugadores mayores en el mercado de la virtualización, tales como KVM o VMware.
Imagine lo que esto significaría para FreeBSD y bhyve si fueran adoptados de forma más amplia en el mercado de la virtualización empresarial. Más y más gente tomarían nota de lo que FreeBSD puede ofrecer, no solo en términos de virtualización, si no en un ecosistema completo. Conforme aumente el interés, también aumentará el número de personas que usen FreeBSD para una amplia variedad de casos de uso; más allá de lo que tradicionalmente se conoce de FreeBSD.
Esta adopción más amplia podría crear un efecto bola de nieve. Una vez que la gente comience a usar FreeBSD en sus ambientes de virtualización, ellos naturalmente comenzarán a explorar su potencial para otras áreas. Ellos podrían experimentar con FreeBSD en contenedores, red, almacenamiento, y más!. Esta creciente curiosidad podría lograr un influjo de desarrolladores y ansiosos contribuidores a construir soluciones que solucionen nuevos retos, especialmente en áreas dónde actualmente no hay alternativas viables.
Un muy buen ejemplo de como esto pudiera desarrollar es lo que se ha visto con Podman corriendo en FreeBSD. La introducción de contenedores por medio de Podman atrajo una ola de interés de desarrolladores que tradicionalmente estában más enfocados en ambientes Linux. Lo mismo podría pasar con bhyve conforme la migración en vivo se haga más robusta. Una vez que la gente se den cuenta del poder y la flexibilidad de FreeBSD para la virtualización, ellos comenzarán a desarrollar características adicionales y soluciones que extiendan su alcance dentro de mercados nuevos. Mientras sea posible encontrar muchos "Cómo se hace?" (HowTo´s) para uso general como los que se encuentran en el sitio de vermaden:
https://vermaden.wordpress.com/2023/08/18/freebsd-bhyve-virtualization/
pero ahora ya se pueden encontrar varios proyectos grandiosos que están llendo en la dirección correcta como ClonOS o BVCP (Administrador Web para bhyve) los cuales pueden ser una base para la solución que esperamos y llenar las lagunas actuales.
Este compromiso más amplio podría ser crucial para el crecimiento de FreeBSD. Podría llevar al desarrollo de soluciones de grado empresarial que puedan llenar las actuales lagunas tales como la orquestación avanzada de Máquinas Virtuales, mejores soluciones de almacenamiento, y características de seguridad integradas. Estas soluciones, en cambio, volverían más atractivo a FreeBSD para las empresas que actualmente dependen de soluciones propietarias basadas en Linux.
Bueno, les deseo éxito en todo lo que hagan en relación al software opensource.
Estamos a la espera de sus comentarios, hasta la próxima publicación donde continuaremos con más sobre FreeBSD y el software libre.
@cosmicboy123 fuera!
Integrate al grupo de Telegram de @team-mexico 😀 donde yo y otros usuarios de México y de otros países de habla hispana compartimos experiencias y opiniones así como nuestros propios posts. Una gran iniciativa de @cristo
| 👉Entra a https://t.me/TeamMexico 👈|