Stateless ESXi y VMware Auto Deploy – parte I

Que tal gente, el día de ayer echando un ojo en las comunidades pude ver una pregunta sobre ESXi y drivers, lo que me hizo recordar un post de william lam en su blog sobre como insertar drivers a un iso de ESXi utilizando el appliance Auto Deploy de una manera sencilla y rápida.. no como los antiguos métodos modificando nuestro oem.tgz.

Primero quiero dejar en claro cual es el concepto de “Stateless” y también de “Stateful”, para esto necesitamos conocer un poco más a fondo la arquitectura de ESXi:

El vmkernel de ESXi utiliza un sistema de archivos que reside totalmente en memoria RAM, a este sistema de archivos se le conoce como visorfs, el cual esta constituido por una serie de comprimidos .gz o vgz ( vmtar) que son cargados a la memoria RAM en el momento que se realiza el boot del sistema. Podemos comprobar que el visorfs esta montado en sistema con un simple:

mount

En la primera fase  el bootloader mboot c32 se encarga de cargar  los paquetes conocidos como Executives, que son los siguientes:

  • tboot.gz – este paquete verifica la integridad del sistema utilizando un componente de hardware conocido como Trusted Platform module, esto nos permite verificar integridad de la información cargada por el vmkernel, para poder prevenir malware y código malicioso. Esto se logra mediante el uso de una clave RSA que viene incluida en dicho modulo de hardware (TPM) con la cual se firman digitalmente los módulos y código del vmkernel para poder identificar modificaciones si es que llegaran a existir.
  • vmkboot.gz (también conocido como b.z)- este paquete prepara la memoria para el paquete vmkernel.gz.
  • vmkernel.gz (también conocido como k.z , vmk.gz.) – Inicializa todos los subsistemas y la memoria. En este proceso se incluye el inicio del filesystem visorfs, este es almacenado en /bootbank.

Una vez cargados estos paquetes a la RAM (ramdisk) se procede a cargar los paquetes que se les llama “tardisks” los cuales constituyen el la estructura básica del sistema, algunos de ellos son guardados en /bootbank :

  • a.z
  • c.z
  • cimstg.tgz
  • license.tgz
  • m.z
  • oem.tgz
  • pkgdb.tgz
  • s.z
  • state.tgz

Por /bootbank debemos de entender a la partición FAT16 donde residen los comprimidos llamados “executives” y los “tar disks”, existen 2 /bootbanks, uno con la versión actual de ESXi y otra con la versión pasada. Esto se tiene pensado para que en el caso que se tenga una falla con la versión actual (en el caso de haber sido actualizada) se pueda carga una versión anterior.

Bueno y a todo esto ….

¿Cual es la diferencia entre un sistema Stateless y Stateful?

En los “Tardisks” podemos encontrar uno llamado “state.tgz”, este tar disk guardan los archivos de sistema que deberán persistir entre reinicios (generalmente los que residen en /etc)  marcados como “sticky” o el atributo “T”, estos archivos los podemos ver con un simple

ls -lah

Cada hora un script (/sbin/auto-backup.sh) se encarga de respaldar aquellos archivos que han cambiado y que forman parte del state.tgz, los archivos modificados se pueden identificar por .# ,este respaldo se realiza al disco local creando un nuevo “local.tgz” que a su vez reside dentro de un nuevo state.tgz  dentro de la partición /bootbank. Por lo cual la siguiente vez que se inicie el sistema se leerán los archivos contenidos en dicho state.tgz.

Entonces básicamente aquí tenemos la diferencia:

  • Stateless – un sistema que no tiene un medio de booteo local (discos o LUN) . Por lo cual no se podrá realizar el respaldo de aquellos archivos de sistema que se modificaron, en el momento de reinicio se perderán todos los cambios debido a que todo reside en RAM

  • Stateful – un sistema que tiene discos locales (discos o LUN) se le conoce como stateful, debido a que aquellos archivos que se modifiquen persistirán a un reinicio, en este caso el script de respaldo podrá crear un nuevo state.tgz dentro de la partición bootbank cada vez que se modifiquen archivos.

¿En que me puede ayudar VMware Auto Deploy?

Este appliance está basado en otro appliance muy conocido de VMware, vMA. Nos permite hacer un deploy  rápido de servidores ESXi, este appliance tiene servicios de DHCP,  TFTP , HTTP, un repositorio de imágenes, etc.

Básicamente este appliance se encarga de darles información de red y parámetros de booteo. Lo interesante aquí es que tenemos la capacidad de configurar nuestros hosts utilizando un vCenter y Host profiles, todo de manera automatizada. El proceso se ilustra en esta imagen:

En los siguientes posts de esta serie les estaré mostrando con ejemplos como configurar y utilizar este appliance.

Leave a Reply