Backup ESXi Host Configuration: 4 Métodos Diferentes

La virtualización ofrece varias ventajas para hacer backups y operaciones de recuperación, que son la columna vertebral de la protección de datos, la continuidad operativa y la disponibilidad. Y lo que es más importante, la virtualización hace posibles los backups a nivel de host sin agentes y basados en imágenes. Estos tipos de backups pueden capturar la VM completa, incluyendo la configuración de la VM así como los datos de la VM.

Sin embargo, también es importante proteger los hosts, ya que para que las máquinas virtuales se ejecuten correctamente es importante que los hosts ESXi estén en buen estado. Se recomienda que también haga backups de la configuración de ESXi, ya que un backup del host utilizable puede ayudarle a restaurar la configuración del host en minutos sin tener que configurar un servidor ESXi desde cero. Siga leyendo para conocer los diferentes métodos para hacer backups del host ESXi.

NAKIVO for VMware vSphere Backup

NAKIVO for VMware vSphere Backup

Complete data protection for VMware vSphere VMs and instant recovery options. Secure backup targets onsite, offsite and in the cloud. Anti-ransomware features.

Método 1: Utilizar la línea de comandos de ESXi para hacer backup de hosts ESXi

Utilizar la línea de comandos de ESXi es el método más asequible para hacer backup de la configuración de un host ESXi. No es necesario instalar ningún software adicional para utilizar la línea de comandos de ESXi. Sólo tiene que habilitar el shell ESXi y el acceso SSH remoto a un host ESXi. Una vez que se haya conectado a su host ESXi a través de SSH, puede ejecutar los comandos.

La configuración de ESXi se guarda cada hora automáticamente en el archivo /bootblank/state.tgz. Por este motivo, debe asegurarse de que la configuración actual de ESXi se escribe en los archivos de configuración de ESXi en este momento para asegurarse de que se guardan todos los cambios realizados con la configuración de ESXi desde el último autoguardado. Para ello:

  1. Compruebe y sincronice la configuración de ESXi con el almacenamiento persistente:

    vim-cmd hostsvc/firmware/sync_config

  2. Haga backup de la configuración de ESXi una vez finalizada la sincronización:

    vim-cmd hostsvc/firmware/backup_config

    Cómo hacer backup de la configuración del host ESXi en la línea de comandos ESXi

    De este modo, recibirá un enlace para descargar el archivo configBundle.tgz del host ESXi.

    http://*/downloads/UUID/configBundle-ESXiNameOrIPAddress.tgz

  3. Sustituya el asterisco (*) por la dirección IP de su host ESXi. El archivo que contiene la copia de seguridad de la configuración de ESXi se guarda en el directorio /scratch/downloads durante un breve periodo de tiempo (unos minutos).

    El paquete de backups de configuración de ESXi está disponible para su descarga.

    Puede encontrar la dirección IP de su host ESXi en la interfaz de consola directa de ESXi o en la línea de comandos con el comando:

    esxcli network ip interface ipv4 get

    La dirección IP del host ESXi utilizado en el ejemplo actual es 192.168.101.208

  4. Descargue el archivo de backups de ESXi lo antes posible y guárdelo en un lugar seguro.

Cómo hacer backups automáticos de la configuración de ESXi en la línea de comandos de ESXi

La ventaja de una interfaz de línea de comandos es la capacidad de automatizar, y el backup de las configuraciones de ESXi no es una excepción. Repasemos los pasos para hacerlo:

  1. Cree un directorio para almacenar los archivos de backups en su almacén de datos ESXi:

    mkdir /vmfs/volumes/datastore1/ESXi_backup

  2. Crear un script para hacer backup de la configuración de ESXi:

    vi /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh

  3. Añade las siguientes líneas al script:

    vim-cmd hostsvc/firmware/sync_config

    vim-cmd hostsvc/firmware/backup_config

    find /scratch/downloads/ -name \*.tgz -exec cp {} /vmfs/volumes/datastore1/ESXi_backup/ESXi_config_backup_$(date +'%Y%m%d_%H%M%S').tgz \;

    Creación de un sencillo script de backups para hacer backups de la configuración del host ESXi

  4. Guarda el archivo y sal de vi:

    :wq

    NOTA: Para mayor comodidad, también puede incluir el nombre del host ESXi o la dirección IP al nombre del archivo backups. Esto le ayudará a evitar confusiones con varios hosts ESXi.

  5. Haz que el script sea ejecutable:

    chmod +x /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh

  6. Vaya al directorio donde se encuentra el script:

    cd /vmfs/volumes/datastore1/ESXi_backup/

  7. Ejecute el script:

    ./esxi_backup.sh

  8. Verificar que se ha creado un archivo de backups:

    ls -al

    Se crea un archivo de backups de configuración de ESXi

  9. Asegúrese de que el script de backups de la configuración de ESXi se ejecuta según lo programado (automáticamente). Para ello, edite la configuración del programador:

    vi /var/spool/cron/crontabs/root

  10. Añada la siguiente cadena para hacer backups de la configuración de ESXi cada día a las 02:10 AM:

    10 02 * * * /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh

  11. Guarda los cambios en el archivo. Para guardar los cambios en el archivo de sólo lectura, introduzca:

    :wq!

    Como alternativa, puede cambiar los permisos de los archivos antes de editarlos:

    chmod +w /var/spool/cron/crontabs/root

    Programación del proceso de backups de la configuración de ESXi

Una vez configurado, la configuración de ESXi se hará backup automáticamente a las 02:10 AM cada noche en el archivo con este archivo: ESXi_config_bakup_date_time.tgz

Cómo recuperar la configuración de ESXi en la línea de comandos de ESXi

Debe tener ESXi de la misma versión y número de compilación que el host ESXi del que se ha hecho backup instalado en el equipo en el que desea restaurar la configuración de ESXi. Esta regla es válida para todos los métodos de recuperación de la configuración de ESXi considerados en esta entrada del blog.

Si va a restaurar la configuración de ESXi en un host ESXi instalado desde cero (recién instalado), deberá establecer la dirección IP de la interfaz de red utilizada para la red de gestión de ESXi y habilitar el acceso SSH.

El UUID debe ser el mismo tanto en el servidor ESXi del que se hizo la copia de seguridad como en el servidor ESXi en el que se restaurará la configuración. Los pasos a seguir si los valores UUID son diferentes se tratan en la siguiente sección.

Para recuperar la configuración de ESXi:

  1. Una vez que haya preparado su host ESXi recién instalado para restaurar la configuración de ESXi a partir de un backup, conéctese al host ESXi a través de SSH, y entre en el host en modo mantenimiento (las máquinas virtuales se detienen en este modo).

    esxcli system maintenanceMode set --enable yes

    o

    vim-cmd hostsvc/maintenance_mode_enter

  2. Copie el archivo que contiene la copia de seguridad de la configuración de ESXi en un directorio del host ESXi utilizando un cliente SCP, por ejemplo, WinSCP. Copiemos el archivo configBundle-xxxx.tgz de la máquina local al directorio /tmp/ del servidor ESXi de destino.

    Copia del archivo de backups de configuración de ESXi en el host ESXi de destino.

  3. Cambie el nombre del archivo configBundle-xxxx.tgz a configBundle.tgz antes de introducir el comando para restaurar la configuración de ESXi. De lo contrario, aparecerá el mensaje de error«No se encontró el archivo /tmp/configBundle.tgz«.

    Puede cambiar el nombre del archivo en el intérprete de comandos ESXi al que se haya conectado a través de SSH:

    mv /tmp/configBundle-esxi6-7b.localdomain.tgz /tmp/configBundle.tgz

  4. Restaurar la configuración de ESXi:

    vim-cmd hostsvc/firmware/restore_config /tmp/configBundle.tgz

    Después de ejecutar este comando, el host ESXi se reiniciará automáticamente.

    Cómo restaurar la configuración de ESXi a partir de un backups

  5. Después de reiniciar el servidor ESXi, salga del modo de mantenimiento, tras lo cual podrá utilizar el host como de costumbre.

    esxcli system maintenanceMode set --enable no

    o

    vim-cmd hostsvc/maintenance_mode_exit

Cómo cambiar el UUID para restaurar la configuración de ESXi

Puede utilizar una de las dos formas siguientes para comprobar el UUID del servidor ESXi:

  1. En la interfaz de línea de comandos de ESXi:

    esxcfg-info -u

  2. En el archivo Manifest.txt dentro del archivo configBundle.tgz backups que has hecho con los comandos explicados anteriormente.

    El UUID de ESXi se almacena en el archivo Manifest.txt dentro del archivo configBundle.tgz

No se puede cambiar el UUID del servidor ESXi ya que el identificador se genera en función del hardware. Sin embargo, puede recuperar la configuración ESXi del host ESXi A en el host ESXi B después de cambiar el UUID en el archivo Manifest.txt almacenado en el archivo de backups de configuración configBundle.tgz ESXi.

Veamos ahora cómo cambiar el UUID para aplicar la configuración de la copia de seguridad a otro servidor físico. El servidor A es el servidor de cuya configuración se ha hecho copia de seguridad y el servidor B es el servidor al que se aplicará la configuración.

Fase 1

Compruebe el UUID en el host ESXi al que desea aplicar la configuración de la que se ha hecho backup (servidor B). Esto se puede hacer con al menos dos métodos, pero el segundo método también le permite comprobar la versión de ESXi:

  1. Ejecute la página esxcfg-info -u
  2. Hacer backup de la configuración del servidor ESXi B:

    vim-cmd hostsvc/firmware/sync_config

    vim-cmd hostsvc/firmware/backup_config

  3. Copie el archivo de backups en el directorio temporal y vaya a ese directorio:

    cp /scratch/downloads/_hash_value_/configBundle-localhost.localdomain.tgz /tmp

    cd /tmp/

  4. Extrae archivos del archivo:

    tar zxvf configBundle.tgz

  5. Abra el archivo Manifest.txt con vi y compruebe el valor UUID (verá una línea aparte con el UUID). Anote el UUID:

    vi Manifest.txt

    En nuestro caso, el UUID es 1E9E4D56-B724-DFBE-D19D-4C2D827E0188

  6. Puede eliminar los archivos temporales del directorio /tmp/:

    rm configBundle-localhost.localdomain.tgz Manifest.txt state.tgz

Fase 2

  1. Copie el archivo de copia de seguridad de configuración configBundle.tgz del Servidor ESXi A al Servidor B, por ejemplo, en el directorio /tmp/y vaya a ese directorio.
  2. Extrae archivos del archivo configBundle.tgz:

    tar zxvf configBundle.tgz

  3. Abre el archivo Manifest.txt con vi y actualiza el valor UUID del Servidor A al UUID del Servidor B:

    vi Manifest.txt

    En nuestro caso, cambiamos 9EA94D56-7E39-96A8-AB45-DF31EF0971EC por 1E9E4D56-B724-DFBE-D19D-4C2D827E0188

    Guarde el archivo y salga del editor de texto:

    :wq

    Cambio del valor UUID en los archivos backups del host ESXi

  4. Cambie el nombre de su archivo configBundle.tgz de origen a configBundle1.tgz, por ejemplo (si el nombre de su archivo de backup de configuración de ESXi difiere de configBundle.tgz, puede omitir este paso):

    mv configBundle.tgz configBundle1.tgz

  5. Tar Manifest.txt, state.tgz y jumpstrt.gz archivos a un nuevo configBundle.tgz archivo:

    tar zcvf configBundle.tgz Manifest.txt state.tgz jumpstrt.gz

  6. Ponga el host ESXi en modo de mantenimiento y restaure la configuración:

    esxcli system maintenanceMode set --enable yes

    vim-cmd hostsvc/firmware/restore_config /tmp/configBundle.tgz

Método 2: Cómo hacer backup del host ESXi con vSphere CLI

Otra interfaz de línea de comandos proporcionada por VMware para gestionar hosts ESXi es vSphere CLI (no confundir con VMware PowerCLI). Debe instalar vSphere CLI en un equipo que ejecute Linux o Windows para gestionar los hosts ESXi de forma remota. Se necesita Perl para instalar vSphere CLI.

La ventaja de utilizar vSphere CLI es la comodidad y la potencia de bash en Linux. Este método es especialmente conveniente para ESXi 6.x. Si utiliza ESXi 8, opte por otros métodos explicados en este artículo.

Instalación y configuración de vCLI

  1. Descargue la versión necesaria de vSphere CLI para su sistema operativo del sitio web de VMware. En este ejemplo se utiliza Ubuntu Linux.
  2. Vaya al directorio donde se encuentra el archivo descargado y extraiga los archivos del archivo:

    tar -zxvf VMware-vSphere-CLI-6.5.0-4566394.x86_64.tar.gz

  3. Instale los paquetes necesarios:

    apt-get install -y perl-doc libmodule-build-perl libssl-dev libxml-libxml-perl libsoap-lite-perl libuuid-perl build-essential

    La recomendación oficial de VMware es instalar este conjunto de paquetes:

    apt-get install ia32-libs build-essential gcc uuid uuid-dev perl libssl-dev perl-doc liburi-perl libxml-libxml-perl libcrypt-ssleay-perl

  4. Vaya al directorio donde se encuentran los archivos extraídos y ejecute el instalador:

    ./vmware-install.pl

  5. Lea y acepte el contrato de licencia. Si el instalador le pide que instale algunos módulos necesarios, escriba y e instale los módulos.

    Instalación de módulos para vSphere CLI

  6. En nuestro caso, algunos módulos deben instalarse manualmente. Pueden instalarse utilizando el shell interactivo de Perl.

    Algunos módulos deben instalarse manualmente

    Entra en el shell interactivo de Perl:

    perl -MCPAN -e shell

  7. Ejecute el comando para instalar el módulo Perl necesario:

    install Devel::StackTrace

    Del mismo modo, instale otros módulos.

    Instalación manual de módulos Perl para hacer backup de la configuración de ESXi

    NOTA: En nuestro caso, un módulo no pudo ser instalado en el shell interactivo de Perl, pero podemos instalar ese módulo con el comando en la consola de Ubuntu:

    apt-get install libcrypt-ssleay-perl

  8. Después de instalar los módulos Perl, ejecute de nuevo el instalador de VMware vSphere CLI.
  9. La instalación se ha completado con éxito, y en este caso puede ver la siguiente pantalla:

    La instalación de vSphere CLI se ha completado correctamente

  10. Ahora intentemos usar vSphere CLI e introduzcamos el siguiente comando en la consola Linux para mostrar la lista de dispositivos del servidor ESXi:

    esxcli --server 192.168.101.208 storage core device list

    Donde 192.168.101.208 es la dirección IP del servidor ESXi.

    Uso de vSphere CLI para la gestión de un host ESXi

  11. La huella SHA-1 del servidor no es de confianza y la conexión con el host ESXi ha fallado. Esto significa que debe definir la huella digital por motivos de seguridad. Probemos con otro comando:

    esxcli --server 192.168.101.208 --thumbprint B3:63:9F:67:E2:D9:C4:53:7D:A9:2A:4A:37:DC:AE:73:3C:83:C7:DA system maintenanceMode get

    El nombre de usuario y la contraseña se solicitarán en la consola en el modo interactivo.

    Se necesita un nombre de usuario y una contraseña para ejecutar el comando en un servidor ESXi

    Intente no utilizar comandos en los que el Nombre de usuario y la contraseña se escriban como texto sin formato, como en este caso:

    esxcli --server 192.168.101.208 --username root --password TestPass_555 --thumbprint B3:63:9F:67:E2:D9:C4:53:7D:A9:2A:4A:37:DC:AE:73:3C:83:C7:DA system maintenanceMode get

    NOTA: Esto es por motivos de seguridad. Los comandos ejecutados se guardan en Linux hasta que ejecute el comando history -c para borrar el historial. Si necesita evitar utilizar el modo interactivo e introducir un nombre de usuario y una contraseña manualmente, puede guardar la sesión de ESXi en un archivo y utilizar este archivo cuando ejecute comandos. Guardar las sesiones es seguro a diferencia de introducir una contraseña como texto plano en el comando. A continuación se explica cómo guardar las sesiones.

Guardar una huella digital para conectarse a hosts ESXi

Introducir una huella de ESXi cada vez que se ejecuta un comando no es conveniente. Afortunadamente, es posible guardar la huella digital y ejecutar otros comandos con vSphere CLI sin definir una huella digital.

  1. Ve al directorio:

    cd /usr/lib/vmware-vcli/apps/general/

  2. Ejecuta el comando como:

    /usr/lib/vmware-vcli/apps/general/credstore_admin.pl add -s server -t thumbprint

    En nuestro ejemplo particular, el comando es:

    /usr/lib/vmware-vcli/apps/general/credstore_admin.pl add -s 192.168.101.208 -t B3:63:9F:67:E2:D9:C4:53:7D:A9:2A:4A:37:DC:AE:73:3C:83:C7:DA

    Guardar una huella digital para ejecutar comandos en vSphere CLI

  3. Ahora puede ejecutar comandos en vSphere CLI sin tener que introducir una huella digital cada vez:

    esxcli --server 192.168.101.208 system maintenanceMode get

    Introducción de un nombre de usuario y una contraseña para ejecutar un comando en un host ESXi de forma remota

No obstante, deberá introducir un Nombre de usuario y una contraseña. Puede configurar vSphere CLI para ejecutar comandos sin introducir la contraseña cada vez, como se muestra en las secciones siguientes.

Uso de un archivo de sesión para conectarse a hosts ESXi

El uso de un archivo de sesión guardado es uno de los métodos para evitar introducir el nombre de usuario y la contraseña al ejecutar un comando en un host ESXi remoto mediante vSphere CLI.

  1. Cree un directorio para almacenar los archivos de backups de la configuración de ESXi, por ejemplo, /backup/.

    mkdir /backup

  2. Vaya a ese directorio:

    cd /usr/lib/vmware-vcli/apps/session

  3. Guarde su sesión autorizada de host ESXi en el archivo utilizando un script Perl con el comando:

    perl save_session.pl --savesessionfile /backup/192-168-101-208session --server 192.168.101.208 --username root --password TestPass_555

    Dónde:

    savesessionfile /backup/192-168-101-208session es el nombre del archivo de sesión creado

    server 192.168.101.208 es el nombre del host ESXi cuya sesión se guarda (este host ESXi se utiliza en varios ejemplos)

    Nombre de usuario root es el nombre del usuario que está conectado al host ESXi

    contraseña TestPass_555 es la contraseña del usuario que está conectado al host ESXi

Ahora puede ejecutar comandos sin introducir una contraseña, pero debe introducir la clave –sessionfile (opción) y definir la ruta al archivo de sesión.

Por ejemplo:

esxcli --sessionfile /backup/192-168-101-208session system maintenanceMode get

Ejecutar comandos en vSphere CLI de mediante un archivo de sesión

Uso de un archivo de configuración para conectarse a hosts ESXi

La idea detrás de este método es guardar las credenciales en el archivo de configuración como texto plano y referirse a este archivo cuando se ejecutan comandos ESXi en vSphere CLI.

  1. Cree un archivo de configuración:

    vim /backup/vcli-config

  2. Introduzca las credenciales de la siguiente manera:

    VI_USERNAME=root

    VI_PASSWORD=PaseDePrueba_555

  3. Guarda el archivo.
  4. Ejecute este comando en el servidor ESXi remoto utilizando vSphere CLI:

    esxcli --server 192.168.101.208 --config vcli-config system maintenanceMode get

    Ejecutar comandos en vSphere CLI de mediante un archivo de configuración

NOTA: Dado que las credenciales se guardan como texto sin formato, este método no es seguro.

Uso de un almacén de credenciales para conectarse a hosts ESXi

Un almacén de credenciales es el archivo xml ubicado en el directorio de usuario en el subdirectorio de vmware ~/.vmware/credstore/vicredentials.xml. La ventaja de utilizar el almacén de credenciales para ejecutar comandos en hosts ESXi remotos es que la contraseña no se guarda como texto sin formato. Como resultado, este método proporciona una mayor seguridad.

  1. Para añadir credenciales al almacén de credenciales, ejecute el comando:

    /usr/lib/vmware-vcli/apps/general/credstore_admin.pl add --server 192.168.101.208 --username root

  2. Enumerar las credenciales guardadas en el almacén de credenciales para asegurarse de que están presentes las credenciales necesarias:

    /usr/lib/vmware-vcli/apps/general/credstore_admin.pl list

  3. Ejecute el comando en el host ESXi remoto sin introducir la contraseña utilizando el almacén de credenciales:

    # esxcli --server 192.168.101.208 --credstore /root/.vmware/credstore/vicredentials.xml system maintenanceMode get

    Si utiliza un usuario que no es root, el archivo de credenciales se guarda en /home/nombre_usuario/.vmware/credstore/vicredentials.xml.

    Ejecutar comandos en vSphere CLI sin introducir las credenciales

    En la captura de pantalla siguiente, puede ver cómo se guardan las credenciales en el archivo del almacén de credenciales.

    Las credenciales de ESXi se guardan en el almacén de credenciales

Uso de vSphere CLI para hacer backup de la configuración del host ESXi

Ahora que ha configurado vSphere CLI en la máquina Ubuntu Linux, puede ejecutar los comandos y hacer backup de la configuración de ESXi:

  1. Vaya al directorio /usr/bin/:

    cd /usr/bin

  2. Para hacer backups de la configuración de ESXi sin introducir el nombre de usuario y la contraseña, utilice uno de los siguientes comandos.
    • Para el Nombre de usuario y contraseña guardados en el almacén de credenciales, utilice el comando:

      vicfg-cfgbackup --server 192.168.101.208 --credstore /root/.vmware/credstore/vicredentials.xml -s /backup/192-168-101-208-esxi-cfg.tgz

    • O después de guardar la sesión en el archivo de sesión, utilice el comando:

      vicfg-cfgbackup --sessionfile /backup/192-168-101-208session -s /backup/192-168-101-208-esxi-cfg.tgz

      Backup de la configuración del host ESXi utilizando el archivo de sesión para la autenticación.

      NOTA: los comandos vicfg- están obsoletos. Si vicfg no funciona en su caso, utilice los comandos equivalentes de ESXCLI en la interfaz de línea de comandos cuando trabaje con hosts ESXi de las últimas versiones. Consulte los comandos para otros métodos de backups de configuración de ESXi.

      La desventaja de utilizar la opción –sessionfile es el tiempo de espera cuando está inactivo durante 30 minutos después de ejecutar el último comando en vSphere CLI. Después de eso, tienes que autenticarte y crear de nuevo un archivo de sesión.

    • Si desea crear un backup de la configuración de ESXi mientras introduce una contraseña en el modo interactivo, puede ejecutar el comando

      vicfg-cfgbackup --server 192.168.101.208 -s /backup/192-168-101-208-esxi-cfg.tgz

      Hacer backup de la configuración de ESXi e introducir un login y contraseña en modo interactivo

Cómo hacer backups automáticos de la configuración de ESXi

Si tiene un entorno que cambia dinámicamente y la configuración de los hosts ESXi cambia a menudo, puede que no resulte práctico hacer backups manuales de los hosts ESXi. En este caso, puede automatizar el backup de la configuración de ESXi añadiendo un comando de backup o un script de backup que contenga varios comandos al programador. Crontab es un programador en Linux.

  1. Edite la configuración del programador en Linux para ejecutar periódica y automáticamente el comando de backup de la configuración de ESXi.

    crontab -e

    NOTA: Si es la primera vez que edita la configuración de crontab, debe seleccionar el editor de texto predeterminado que debe utilizarse para editar la configuración de crontab. En nuestro ejemplo, utilizamos /usr/bin/vim.basic para este propósito.

    El formato de la configuración de crontab es el siguiente:

    minutos horas día_del_mes mes día_de_la_semana comando 

  2. Vamos a hacer backup de la configuración del host ESXi cada noche a las 03:25 AM añadiendo la siguiente línea a la configuración crontab:

    25 03 * * * /usr/bin/vicfg-cfgbackup server 192.168.101.208 config /backup/vcli-config -s /backup/192-168-101-208-esxi-cfg-cron.tgz

  3. Escriba la configuración del programador crontab y salga del editor de texto vim (que se utiliza en este ejemplo):

    :wq

    Automatización del backup de la configuración de ESXi mediante crontab

  4. Esperemos hasta después de las 03:25 AM para comprobar el directorio en el que deben guardarse los archivos de configuración de backups de ESXi:

    ls -al

    Como puede ver en la captura de pantalla siguiente, el archivo de backup de la configuración del host ESXi se creó automáticamente a las 03:25.

    El backup de la configuración de ESXi se guarda automáticamente

Ahora el backup de la configuración de ESXi se ha creado automáticamente, lo cual es genial, pero hay una desventaja. Cada vez que crontab ejecuta un comando programado para crear el backup de la configuración de ESXi, el archivo tgz anterior es sobrescrito por el nuevo archivo tgz. Esto puede causar problemas si el backup con la configuración ESXi correcta creado anteayer es sobrescrito por un archivo creado al día siguiente que contiene la configuración ESXi incorrecta. Para evitar este problema, debe hacer backup de la configuración de ESXi en archivos diferentes.

Vamos a crear un script simple para guardar la configuración de ESXi cada vez como un archivo separado con un nombre de archivo único que contiene la fecha y hora de creación del archivo de backup de la configuración de ESXi en el nombre del archivo. La creación de un script permite añadir comandos para hacer backup de varios host ESXi ejecutando un único script.

  1. Cree el archivo esxi_backup.sh en el directorio /backup/:

    vim /backup/esxi_backup.sh

  2. Añada las siguientes líneas al archivo:

    #!/bin/bash

    ESXI101_208_BACKUP_NAME=»192-168-101-208-$(fecha +’%Y%m%d_%H%M%S’)esxi-cfg.tgz»

    vicfg-cfgbackup server 192.168.101.208 config /backup/vcli-config -s /backup/$ESXI101_208_BACKUP_NAME

  3. Escriba los cambios en el archivo y salga del editor de texto vim:

    :wq

  4. Haz que el archivo sea ejecutable:

    chmod +x /backup/esxi_backup.sh

  5. Edite la configuración del programador:

    crontab -e

  6. Añade la línea así:

    50 06 * * * /backup/esxi_backup.sh

    Esta línea de configuración nos permite configurar crontab para que ejecute el script de backups de configuración de ESXi a las 06:50 AM.

    Desactive la tarea programada anterior que haya añadido añadiendo el carácter # al principio de la línea.

    Guarda la configuración.

    Cron configuración que crea ESXi config backups archivos con nombres únicos

  7. Espere la hora establecida y, a continuación, compruebe si se ha creado el archivo de copia de seguridad de la configuración de ESXi.

    Los archivos de backups de configuración de ESXi tienen nombres únicos

Este es un simple script que demuestra la idea de automatización. Puede crear scripts complejos para hacer backup de varios host ESXi.

NOTA: después de cada reinicio de ESXi o de 30 minutos de tiempo de inactividad, caduca la autenticación para la sesión de ESXi. Conserve en mente esta función cuando cree un script para el backup automatizado de ESXi.

Cómo recuperar la configuración de ESXi en vSphere CLI

Los requisitos para restaurar la configuración de ESXi mediante vSphere CLI son similares a los requisitos de otros métodos. Para restaurar la configuración de ESXi, asegúrese de que el acceso remoto a través de SSH está activado y de que se conoce la dirección IP del servidor ESXi (se recomienda utilizar la misma dirección IP que la del host ESXi del que se ha hecho backup).

Para restaurar la configuración de ESXi ejecute el comando como:

vicfg-cfgbackup --server=ESXi_host_IP_address --username=root -l backup_file

En nuestro ejemplo particular, el comando es:

vicfg-cfgbackup --server=192.168.101.208 --username=root -l /backup/192-168-101-208-esxi-cfg.tgz

Si el UUID del host ESXi de destino en el que desea restaurar la configuración es diferente del UUID del servidor ESXi del que se ha hecho backup (cuyo UUID está definido en el archivo Manifest.txt dentro del archivo de backup tgz ), puede utilizar la clave -f (forzar) para anular el UUID.

Cómo restaurar la configuración de ESXi a partir de su backups

Puede comprobar el UUID del host ESXi en ejecución con el comando, como recuerda:

esxcfg-info -u

NOTA: Desde las versiones ESXi 7.0 U2, la anulación forzada de UUID no funciona si se utiliza un TPM (Trusted Platform Module) en un host ESXi.

Método 3: Utilizar PowerCLI para hacer backup de hosts ESXi

Los usuarios a los que les guste Windows PowerShell pueden utilizar PowerCLI para la gestión de vSphere y para hacer backup de las configuraciones de ESXi. PowerCLI es un conjunto de cmdlets de PowerShell, y en esta entrada del blog se explican algunos comandos básicos de PowerCLI.

Para utilizar PowerCLI para hacer backup del host ESXi, primero tiene que instalar PowerCLI en su sistema operativo:

  1. Ejecute PowerCLI como administrador en Windows.
  2. Conecte con su servidor ESXi:

    Connect-VIServer ESXi_IP_address -user user_name -password your_password

    En nuestro caso, utilizamos los comandos:

    Connect-VIServer 192.168.101.208 -user root -password TestPass_555

    Get-VMHostFirmware -vmhost 192.168.101.208 -BackupConfiguration -DestinationPath "C:\backup ESXi host"

    Cómo hacer backups del host ESXi con PowerCLI

    • Si sus hosts ESXi están gestionados por vCenter Server, puede conectarse primero a vCenter y después hacer backup de la configuración ESXi de sus hosts en PowerCLI sin necesidad de autenticarse cada vez antes de hacer backup de cada configuración de host:

      Connect-VIServer 10.10.10.16

      Introduzca su nombre de usuario y contraseña administrativos para acceder a vCenter Server. Para ello aparece una ventana emergente.

      Conectar con el servidor vCenter en PowerCLI

  3. Haga backup de la configuración ESXi de cada host:

    Get-VMHostFirmware -vmhost 10.10.10.61 -BackupConfiguration -DestinationPath "C:\backup ESXi host"

    Get-VMHostFirmware -vmhost 10.10.10.46 -BackupConfiguration -DestinationPath "C:\backup ESXi host"

    Cómo hacer backup de la configuración de cada host ESXi en PowerCLI

Cómo restaurar la configuración de ESXi en PowerCLI

  1. Ejecute VMware PowerCLI como administrador.
  2. Conecte con el host ESXi en el que desea recuperar la configuración. En nuestro ejemplo, recuperamos la configuración en el host ESXi con dirección IP 192.168.101.208
  3. Ponga el host ESXi en modo de mantenimiento:

    Set-VMHost -VMHost 192.168.101.208 -State Maintenance

  4. Asegúrese de que las máquinas virtuales que residen en ese host ESXi están apagadas o han migrado a otro host ESXi antes de recuperar la configuración ESXi. Tenga en cuenta que después de ejecutar el comando para restaurar la configuración, el host ESXi se reiniciará automáticamente.
  5. Restaure la configuración con el comando Set-VMHostFirmware restore :

    Set-VMHostFirmware -vmhost 192.168.101.208 -Restore -SourcePath "C:\backup ESXi host\configBundle-192.168.101.20

    8.tgz" -HostUser root -HostPassword TestPass_555

    La configuración de ESXi se recupera en PowerCLI

La versión, el número de compilación y el UUID del host ESXi en el que se recupera la configuración deben coincidir con la versión, el número de compilación y el UUID del host ESXi cuyo backup está utilizando para recuperar la configuración. Utilice la clave -force en el comando para omitir la comprobación del UUID.

Método 4: Backup y restauración manual de la configuración de ESXi

También debe estar preparado para una situación en la que no pueda iniciar sesión en su host ESXi o cuando un host ESXi no pueda iniciarse y no pueda utilizar la interfaz de línea de comandos para ejecutar el comando para hacer backup o restaurar la configuración de ESXi. Esto puede deberse a un fallo del hardware o a problemas de software. En este caso, es mejor saber cómo hacer backup y recuperar una configuración ESXi manualmente.

Como recordará de la configuración crontab por defecto en un host ESXi, el script /sbin/auto-backup.sh se ejecuta cada hora y cada vez que un host ESXi se reinicia o se apaga. Este script está destinado a hacer backup (guardar) la configuración de ESXi almacenada en la memoria en el archivo /bootbank/state.tgz.

NOTA: El archivo /bootbank/state.tgz no debe estar cifrado para utilizar este método.

La configuración de ESXi se almacena en la memoria RAM del ordenador cuando se ejecuta un servidor ESXi (el disco RAM correspondiente se monta en el directorio /etc/ ). Cuando ESXi está iniciada, los archivos del sistema se extraen del archivo /bootbank/state.tgz al directorio /etc/. Puede copiar manualmente el archivo /bootbank/state.tgz si su host ESXi está en ejecución utilizando un cliente SCP como WinSCP (el acceso SSH remoto debe estar habilitado). Como alternativa, puede arrancar desde el Live DVD y copiar el archivo state.tgz manualmente si su host ESXi no es arrancable (por ejemplo, debido a un fallo de hardware).

Flujo de trabajo de recuperación manual

  1. Prepare el archivo de backups que hizo anteriormente con ESXi shell, vSphere CLI o PowerCLI. En nuestro caso, el nombre del archivo es configBundle-192-168-101-208.tgz. Puede copiar el archivo en una unidad flash USB, por ejemplo, e insertar esa unidad flash en un puerto USB del servidor ESXi en el que tiene que recuperar la configuración del sistema.
  2. Inicio desde el CD/DVD en vivo en la máquina donde está instalado ESXi. Puedes utilizar el disco de instalación de Ubuntu como CD/DVD en vivo.
  3. Abra la consola (terminal) en Linux.
  4. Enumera las particiones:

    ls -al /dev/sd*

    fdisk -l | grep /dev/sda

    En este caso, necesitamos la partición /dev/sda5/ que está marcada como datos básicos de Microsoft.

    Las particiones de disco de ESXi se mencionaron en la entrada del blog sobre el inicio de ESXi desde una unidad flash USB y la recuperación de la contraseña de ESXi.

    Montaje de la partición que contiene el archivo de configuración de ESXi

    En este caso nos interesa la partición /dev/sda5.

  5. Cree el directorio en el que se montará la partición /dev/sda5:

    mkdir /mnt/sda5

  6. Monte la partición del disco en ese directorio:

    mount /dev/sda5 /mnt/sda5

  7. En el directorio /mnt/sda5 se encuentra el archivo state.tgz, que contiene la configuración de ESXi. Este directorio (en el que se almacena state.tgz ) se denomina /bootblank/ cuando se inicia un host ESXi.
  8. Copie el archivo de copia de seguridad de la configuración de ESXi desde la unidad flash USB al directorio /tmpde Ubuntu cargado desde el Live DVD. En nuestro ejemplo, copiamos:

    cp /media/Ubuntu/Ubuntu\ 18.0/backup_ESXi_host/configBundle-192-168-101-208.tgz /tmp/configBundle.tgz

  9. Extraer archivos del archivo backups:

    tar zxvf /tmp/configBundle.tgz

  10. Puede ver que el archivo state.tgz está extraído del archivo:

    ls -al /tmp/

  11. Cambie el nombre del archivo original state.tgz que se encuentra en la partición /dev/sda5 montada en /mnt/sda5/.

    mv /mnt/sda5/state.tgz /mnt/sda5/state-old.tgz

  12. Copie el archivo state.tgz que ha extraído del archivo de copia de seguridad de la configuración de ESXi(configBundle.tgz) en el directorio /tmp/:

    cp /tmp/state.tgz /mnt/sda5/

  13. Desmontar particiones montadas:

    umount /dev/sda5/

  14. Reinicia el servidor. Expulse el Live DVD de Ubuntu y arranque desde el disco en el que está instalado ESXi.

    init 6

Ahora su configuración ESXi debería estar restaurada.

Conclusión

El uso de la interfaz de línea de comandos de ESXi es bueno porque no es necesario instalar software adicional. Las ventajas de vSphere CLI son la posibilidad de ejecutar comandos de forma remota utilizando máquinas Linux y la posibilidad de hacer backups de la configuración de ESXi de forma automatizada. PowerCLI, en cambio, puede ser apreciado por los usuarios de Windows.

Si un host ESXi no está en buen estado y no puede arrancarlo, puede hacer backup y restaurar la configuración manualmente. Tenga en cuenta que la información de bootblank y la información sobre máquinas virtuales no se almacenan en el archivo de backup de configuración de ESXi. Después de restaurar la configuración de ESXi, puede que necesite registrar máquinas virtuales en su inventario.

Se recomienda hacer backup de las máquinas virtuales vSphere además de hacer backup de los hosts ESXi. NAKIVO Backup & Replication es una solución de backup universal que permite realizar copias de seguridad de sus máquinas virtuales VMware, Hyper-V VM, instancias de Amazon EC2, así como de servidores físicos Linux y Windows.

Try NAKIVO Backup & Replication

Try NAKIVO Backup & Replication

Get a free trial to explore all the solution’s data protection capabilities. 15 days for free. Zero feature or capacity limitations. No credit card required.

Artículos recomendados