VMware VMFork for pyVmomi creando VMs a mansalva
¿Qué harías si pudieses crear cientos de instancias de máquinas virtuales que se arrancan y están listas para su uso en tan sólo unos segundos? VMware presenta VMFork, una nueva tecnología de creación de VMs en VMware ESXi hipervisor, que te permite hacer precisamente eso. VMFork permite «bifurcar – forking» instancias de una VM encendida, cada una con su propia identidad única. VMFork aprovecha la tecnología existente (Linked Clones) para discos y extendiendola al hipervisor para permitir Copy-on-Write memory del estado de la VM, VMFork fomenta la creación instantánea de VM con poco overhead de CPU.
Es de recino y justo nombrar que esta tecnología no es realmente nueva ya que lleva más de un año trabajando en VMware Horizon View. Lo verdadderanmente nuevo es que ya no es una tecnología exclusiva del mundo VDI sino también de Servers o VMs que no tengan una demanda muy alta de CPU tal y como comenté en el parrafo anterior.
VMFork para pyVmomi permite la integración con las vSphere VMFork APIs en un entorno de vSphere existente independientemente de la plataforma que se ejecuta en las VMs. Anteriormente esta funcionalidad sólo estaba disponible por PowerCLI, pero ahora todo el mundo puede aprovecharse de VMFork sin ninguna sobrecarga adicional. Todo lo que tienes que hacer es importar el módulo en un entorno vSphere pyVmomi activado y estará en camino al instante el clonado de las máquinas virtuales en un abrir y cerrar de ojos.
Requerimientos
- Python 2.7
- pyVmomi versión > = 6.0.0
- paramiko > = 1.16.0
- vCenter y ESX 6.0
Instrucciones de instalación
A priori, el flujo de trabajo es sencillo. En primer lugar, una maquina padre (Parent) debe estar activada para que se bifurquen (Forking) o clonado instantaneo. Esto puede lograrse a través de la llamada vim.VirtualMachine.EnableForkParent. Para invertir el proceso, llama a DisableForkParent.
Una vez que el padre está habilitado para bifurcarse, el siguiente paso es poner en reposo la VM (Quiesce).Este Modo de inactividad consiste en hacerle saber al Hoste saber que está en un estado estable y está lista para ser bifurcada al ESXi. Cuando la llamada «vmfork begin -1-1» es emitida a través de vmware-rpctool dentro del host, el ESXi detendrá las instrucciones dentro del guest (VM), detentrá también todo el I/O y marcará las páginas de memoria copy-on-writte de la máquina padre. En este punto la VM se considerará que está en estado inactivo. VMware sugiere que el administrador ejecute un script intercalando la llamada de reposo (Quiesce) entre cualquier pre y post personalización, como la gestión de una NIC.
Por último, el administrador del VI puede llamar a vim. VirtualMachine.CreateForkChild con los parámetros adecuados en la VM con el fin de crear clones (Childs) desde el padre.
Para una información más completa usa la documentación y ejemplos de código en línea dentro del paquete de la solución vmFork y además desde los Flings de VMware
Gracias por leer nuestro blog, participar y compartir.