Plugin VMware VSphere Bacula Enterprise – Guía Rápida

Esta guía rápida presenta varias técnicas y estrategias para hacer copias de seguridad de hosts VMware ESXi mediante el plugin vSphere de Bacula Enterprise.

El complemento permite la copia de seguridad completa de las máquinas virtuales y utiliza la tecnología CBT (Changed Block Tracking) de VMware para asegurarse de que sólo los bloques que se han cambiado desde el Full inicial y/o la última copia de seguridad incremental o diferencial se copian en el flujo de copia de seguridad, proporcionando más eficiencia de copia de seguridad y carga de red reducida.

El complemento proporciona, entre otras, las siguientes características:

  • Copias de seguridad en línea basadas en VADP.
  • Rutina de creación automática de trabajos para cada VM, con filtros por nombre, tags etc. (Integración BWeb vSphere).
  • Backups de nivel de imagen completos, diferenciales e incrementales de máquinas virtuales.
  • Restauración instantánea de una máquina virtual o un solo archivo granular (con el Plugin Single-Item de Bacula Enterprise).
  • Restauración completa y automática de imágenes de máquinas virtuales.
  • Restauración de archivos vmdk a un directorio alternativo.
  • Soporte para TCP/IP y SAN (FC/ISCSI) en el acceso al almacenamiento de datos de VMware.

Copia de seguridad de imagen de VM con el plug-in vSphere de Bacula Enterprise

El plug-inVMware Vsphere de Bacula permite backup client-less de las máquinas virtuales completas. Esto significa que no es realmente necesario instalar un cliente Bacula en los sistemas operativos de las máquinas virtuales. Sin embargo, también puede utilizar el cliente Bacula y los complementos de aplicaciones específicas (por ejemplo, los de la base de datos) para proporcionar más opciones de restauración (por ejemplo, restaurar una sola base de datos).

Con la estrategia de nivel de copia de seguridad de imagen, el plug-in vSphere de Bacula Enterprise Edition salvará los discos de las máquinas virtuales a nivel básico en el contexto de VMware / vSphere. El plug-in vSphere de Bacula se pondrá en contacto con el servidor host VMware ESXi para leer y guardar el contenido de los discos de su máquina virtual mediante NBD (Network Block Device) o acceso SAN.

Al acceder directamente a una imagen vmdk almacenada en su almacenamiento de datos, Bacula no necesita recorrer el sistema de archivos Client para abrir/leer/cerrar/hacer stat de los archivos, por lo que consume menos recursos en la infraestructura ESXi que una copia de seguridad en cada máquina invitado.

Al utilizar técnicas diferenciales a nivel de bloques, debe asegurarse de que todas las copias de seguridad incrementales estén disponibles para la restauración y que sus períodos de retención sean lo suficientemente largos para recuperar todos los datos. Si uno de sus trabajos incrementales falta en el momento de la restauración, Bacula no puede crear una imagen coherente. El uso del nivel diferencial permite reducir el número de tareas necesarias para la restauración y así reducir el riesgo de que algo se pierde.

La restauración granular de archivos de VM es automatizada por otro plug-in – el complemento de restauración del elemento único del Bacula Enterprise, objeto de otra Guía Rápida/Whitepaper específica.

Instalación

Los paquetes están disponibles para RedHat Enterprise, CentOS y muchos otros. Deben instalarse junto con un cliente Bacula (bacula-fd). Póngase en contacto con ellos para obtenerlos. Ejemplo:

# rpm -ivh bacula-enterprise-libs-8.8.3-1.el7.x86_64.rpm 
# rpm -ivh bacula-enterprise-client-8.8.3-1.el7.x86_64.rpm 
# rpm -ivh bacula-enterprise-vsphere-8.8.3-1.el7.x86_64.rpm  
# rpm -ivh bacula-enterprise-vsphere-vixdisk-6.0.2-3566099.1.el7.x86_64.rpm

El Bacula Client y el Plugin se pueden instalar en cualquier máquina con la red o acceso a la SAN en los nodos vCenter o ESXi para realizar la copia de seguridad de la máquina virtual. Sin embargo, si decide también instalar el complemento de Single Item Restore (opcional), esta máquina DEBE SER la misma del Storage Daemon del Bacula para poder ejecutar la restauración de archivo granular.

Libera el puerto de los firewalls necesarios. El Plugin se conecta a vSphere por las pueras 403 y 902/TCP.

El acceso a la red de vSphere debe configurarse en /opt/bacula/etc/vsphere_global.conf.

% cat /opt/bacula/etc/vsphere_global.conf
[vsphere]
username = root
password = vspherepassword
server = 192.168.0.1
url = https://192.168.0.1/sdk
thumbprint = 34:F5:0F:10:82:59:EF:2D:DB:96:CC:5B:C4:66:33:83:DC:91:AF:09

El valor del huella dactilar del vCenter se puede lograr con el comando siguiente:

/opt/bacula/bin/vsphere-ctl thumbprint 192.168.0.1

Tenga en cuenta que puede especificar varios servidores vSphere en el archivo vsphere_global.conf, como en el ejemplo siguiente:

% cat /opt/bacula/etc/vsphere_global.conf
[vsphere]
username = root
password = vspherepassword
server = 192.168.0.1
url = https://192.168.0.1/sdk
default_datastore = datastore1
default_restore_host = esx1
thumbprint = 34:F5:0F:10:82:59:EF:2D:DB:96:CC:5B:C4:66:33:83:DC:91:AF:09
[vsphere2]
username = root
password = vspherepassword
server = 192.168.0.2
url = https://192.168.0.2/sdk
default_datastore = abigdatastore
thumbprint = 59:F5:0F:10:82:59:EF:2D:DB:96:CC:5B:C4:66:33:83:DC:91:AF:C4

Para probar el plug-in de vSphere, puede utilizar el siguiente comando como usuario de Bacula FileDaemon (normalmente root):

# /opt/bacula/bin/vsphere-ctl update
  1: 3 squeeze2
  2: 4 squeeze.esx

El comando vsphere-ctl update debe imprimir una lista de todas las máquinas virtuales definidas en su servidor ESXi. De lo contrario, compruebe que sus credenciales en vsphere-global.conf se establecen correctamente.

El comando list permite ver información que se detecta en hosts ESX y en los datasets.

# /opt/bacula/bin/vsphere-ctl list
Display host list available and their datastores:
  esxi.lan
    datastore1
    datastore2
...

Como se muestra en la Tabla 1, una sección [global] también se puede definir en vsphere_global.conf con opciones que se aplican a todas las conexiones de vSphere. Otras directivas también se enumeran y se describen.

Sección Opción Necesario Default Descripción
global keep_generation No 100 Número máximo de copias de seguridad entre los Full
global profile_all_vm No vsphere_all_vm.profile Nombre de archivo interno utilizado para almacenar información de perfil de máquina virtual
global root_directory No /opt/bacula/working/vsphere Directorio de trabajo del Plugin de vSphere
global vddk_path No /opt/bacula/bin/vddk
vsphere username Yes Nombre de usuario permitido para conectarse a vSphere
vsphere password Yes Contraseña de usuario permitida para conectarse a vSphere
vsphere server Yes Servidor vSphere ESXi utilizado para copia de seguridad
vsphere url Yes URL del servidor de vSphere ESXi utilizado para la llamada SOAP
vsphere default_datastore No datastore1 Datastore predeterminado para la restauración
vsphere default_restore_host No Servidor ESX estándar utilizado para la restauración, si varios están disponibles en vCenter

Tabla 1. Opciones de vSphere plugin vsphere_global.conf

Configuración de la Copia de Seguridad

Después de que el Bacula Client se adjunta al director, es el momento de crear un nuevo FileSet. Esto se puede hacer a través de texto o mediante la GUI de bweb, como se muestra en la Figura 1.

Plugin VMware VSphere Bacula Enterprise – Guía Rápida 1

Figura 1. Pantalla de bweb – vSphere FileSet Edit Plugin

La única opción de plug-in realmente necesaria es el vsphere one, que ejecutará la copia de seguridad de todas las máquinas virtuales encontradas.

FileSet {
  Name = vSphere
  Include {
   Options { Signature=MD5 }
   Plugin = "vsphere:"
  }
}

Para realizar la copia de seguridad de una sola máquina, simplemente especifique su nombre en la directiva de host =:

FileSet {
  Name = vSphere
  Include {
   Options { Signature=MD5 }
   Plugin = "vsphere: host=vm_name"
  }
}

Se pueden especificar múltiples líneas «Plugin = vsphere: etc.», y las directivas host_include o host_exclude se pueden utilizar para proporcionar los estándares RegExp de Java que coincidan con los nombres de las máquinas virtuales.

Algunas opciones actuales del plug-in de vSphere se enumeran y se describen en la Tabla 2.

Opción Necesario Default Descripción Ejemplo
host No Nombre de la máquina virtual host=srv1
host_include No Estándar RegExp de nombres de VM para la inclusión en la copia de seguridad host_include=srv3
host_exclude No Estándar RegExp de nombres de VM para la eliminación de la copia de seguridad host_exclude=srv[12]
disk_exclude No Número de disco de VSphere para eliminar disk_exclude=0,2,4
keep_cbt No No intentar activar el CBT keep_cbt
server No vsphere Especificar un servidor vsphere server=vsrv2
debug No Habilitar la depuración debug

Tabla 2. Opciones del plugin de vSphere

Nota: se pueden encontrar muchas otras opciones en el portal oficial de Bacula Systems, Bsysdoc.

Finalmente, cree un nuevo Job para realizar una copia de seguridad de un FileSet con una, algunas o varias máquinas. ES NECESARIO habilitar la opción Accurate (Precisión) del Job Bacula.

Puede probar el nuevo trabajo de copia de seguridad y el FileSet con el comando de Bacala:

*estimate listing job=vmware1
Using Catalog "MyCatalog"
Connecting to Client 127.0.0.1-fd at 127.0.0.1:8102
-rwx------ 0 root root           0 2012-01-10 18:22:16  /@vsphere/3-squeeze2
-rw-r----- 1 root root        1923 2012-01-10 18:22:19  /@vsphere/3/vmbkp_generation.profile
-rw-r----- 1 root root        4693 2012-01-10 18:22:19  /@vsphere/3/3.ovf
-rw------- 1 root root  2147483648 2012-01-10 18:22:20  /@vsphere/3/0.bvmdk
-rw------- 1 root root   104857600 2012-01-10 18:22:21  /@vsphere/3/1.bvmdk
-rwx------ 1 root root           0 2012-01-10 18:22:26  /@vsphere/79-squeeze.esx
...
104857600 2012-01-10 18:22:30
2000 OK estimate files=10 bytes=2,462,069,574

Ejecute el trabajo de copia de seguridad. Puede comprobar los mensajes de generación de las instantáneas de las máquinas virtuales en el registro Bacala.

Configuración de Situación y Solución de Problemas

Problemas de Copia de Seguridad Incremental/Diferencial

Para comprobar que un disco virtual tiene el CBT habilitado, abra vSphere Client, seleccione una máquina virtual desconectada sin instantáneas.

  • Haga clic con el botón secundario en el equipo virtual y, a continuación, haga clic en Editar configuración.
  • Haga clic en la ficha Opciones.
  • Haga clic en general en la sección Avanzadas y, a continuación, haga clic en Parámetros de configuración. Se abre el cuadro de diálogo Parámetros de configuración.
  • Haga clic en Agregar línea.
  • Agregue el parámetro ctkEnabled y, a continuación, establezca su valor en true.
  • Haga clic en Agregar fila, agregue scsi0: 0.ctkEnabled y establezca su valor en true.

Nota: scsi0: 0 en scsi0: 0.ctkEnabled indica el dispositivo SCSI asignado al disco duro que se agrega a la máquina virtual. Todo disco duro agregado a la máquina virtual recibe un dispositivo SCSI que parece similar a scsi0:0, scsi0:1 o scsi1:1.

Durante la primera copia de seguridad completa, el complemento de vSphere intentará habilitar el CBT automáticamente si la máquina virtual está apagada. Para deshabilitar esta función, utilice la opción keep_cbt en la cadena de comandos del Plugin.

Plugin = "vsphere: keep_cbt host=guest1"

Ninguna snapshot debe existir en una máquina virtual en el momento de la activación de la CBT. Para más detalles, consulte http://kb.vmware.com/kb/1033816.

Utilizar el Acceso SAN para la Copia de Seguridad (LANFree)

Para utilizar el método de transporte SAN, el servidor de copia de seguridad en el que está instalado el plug-in vsphere debe tener acceso a todos los LUN exportados al servidor ESX.

Cuando su disco está visible como /dev/sda, /dev/sdb,… el plug-in de vSphere abrirá cada disco para obtener el UUID y compararlo con lo que el servidor ESX está proporcionando.

Al asignar una LUN al servidor de Bacula, es necesario escanear los nuevos discos:

for i in /sys/class/scsi_host/host*/scan ; do echo - - - > $i ; done

Al usar iSCSI, el comando lsscsi los mostrará como:

% lsscsi 
[5:0:0:0]     disk     IET    VIRTUAL-DISK    0    /dev/sdb

Puede comprobar el método de transporte utilizado en el registro del backup.

Archivos de Depuración

De acuerdo con la Tabla 3, los siguientes archivos de rastreo proporcionan información, dependiendo del error del plug-in Bacula vSphere.

Archivo Componente Nota
/opt/bacula/*/vsphere-ctl.log vsphere-ctl Este archivo es producido por el programa Java vsphere-ctl que envía comandos a ESXi / vCenter
servidor.
/opt/bacula/working/vsphere/*/*/*.log vddk Este archivo es producido por el programa vddk de C ++ que lee/escribe en el VMDK.
/opt/bacula/working/*.trace bacula-fd Este archivo es producido por el File Daemon del Bacula al activar la depuración (comando setdebug).

Tabla 3. Archivos de depuración del complemento de vSphere

Excluir Discos Específicos de la VM de la Copia de Seguridad

Para eliminar un disco específico, puede activar el modo independiente en la consola de vSphere, o usando la opción disk_exclude en el FileSet de respaldo de VM.

Restauración

Restaurar para una nueva máquina virtual

Usando bweb (por ejemplo), en el menú Restaurar Web, elija una tarea de copia de seguridad terminada de vSphere para la restauración. En la selección de archivos, marque uno o más directorios de archivos de las máquinas virtuales que desea restaurar.

Si ejecuta la restauración utilizando la opción de restauración donde = / del Bacula, vSphere Plugin intentará restaurar sus discos en una nueva máquina virtual creada durante la restauración con los mismos atributos (discos, controlador, tipo de CPU, …).

Si una máquina con el mismo nombre existe, otra se creará con un nombre modificado, aunque este comportamiento se puede cambiar en futuras versiones del complemento para reemplazar la máquina virtual si la opción Replace = Always de la restauración Bacula está configurada.

El host ESX y el datastore que se utilizará para restaurar su invitado se detectarán automáticamente, pero puede cambiarlo durante las Opciones avanzadas de restauración del complemento o configurar los destinos predeterminados en vsphere_global.conf (consulte default_restore_host y default_datastore).

Tenga en cuenta que debe tener al menos una máquina virtual configurada en su servidor ESX para restaurar una máquina virtual de Bacula automáticamente. Planeamos eliminar esta limitación en una versión futura.

Bacula no volverá a crear todas las configuraciones de red durante la restauración, tendrá que comprobar la configuración de red.

Restaurar Máquinas en un Disco Local

Al usar where=/ruta/directorio en la opción de restauración, el complemento restaurará automáticamente los archivos seleccionados a esta ubicación. A continuación, puede importar máquinas a vCenter manualmente o, si lo desea, puede montar la imagen localmente mediante la herramienta VMware vmware-mount o qemu-nbd y realizar restauraciones a nivel de archivo. Estas operaciones se automatizan y se ejecutan gráficamente con el Plugin de Single-Item Restore del Bacula.

También puede copiar la imagen en bruto a cualquier dispositivo o montarlo y restaurar archivos directamente.

modprobe nbd max_part=16
qemu-nbd -c /dev/nbd0 /tmp/0.bvmdk
partprobe /dev/nbd0
fdisk -l /dev/nbd0
mount /dev/nbd0p1 /mnt/image # example
ls /mnt/image

Solución de Problemas

Si tiene problemas en la restauración a ejemplo de la importación de OVF, como:

# Bacula Job log:
...
2018-10-01 22:02:24 pocbacula-fd JobId 148: Error: No default OVF defined, aborting...
2018-10-01 22:02:24 pocbacula-fd JobId 148: Error: Unable to restore the host. null
2018-10-01 22:02:24 pocbacula-fd JobId 148: Warning: Unable to create VM, logs are in /opt/bacula/working/vsphere-ctl-0.log
2018-10-01 22:02:24 pocbacula-fd JobId 148: Error: Import of the OVF structure probably failed...
...

# and

cat /opt/bacula/working/vsphere-ctl-0.log
..
2018-10-02 12:19:28 WARN  GlobalManager:446 - W: Line 1: Unable to parse 'backing.exclusive' for attribute 'key' on element 'Config'.
2018-10-02 12:19:28 WARN  GlobalManager:485 - The operation is not supported on the object.
2018-10-02 12:19:28 WARN  GlobalManager:487 - Could not obtain nfc lease.
..

Asegúrese de que su usuario de VSphere puede crear máquinas y moverlas a los ESXi y los datastores necesarios a través de la consola de VCenter.

Nota: la copia de seguridad de templates de VSphere no está permitida por la API de VMware.

El registro de VCenter (/var/log/vmware/vpxd/vpxd.log) puede proporcionar información útil para problemas en la copia de seguridad de las máquinas virtuales. De igual forma, el uso de la palabra clave debug en la línea Plugin de FileSet (vsphere: debug …) creará un registro de depuración en la máquina que ejecuta el Plugin en:

/opt/bacula/working/vsphere/vm-xxx/xxx/0.log

Sustituir los xxx por el ID de la máquina virtual y la secuencia incremental de las copias de seguridad con depuración activa.

Es posible aumentar el nivel de depuración e incluso hacer un ajuste de la copia de seguridad de VSphere al crear un archivo /opt/bacula/etc/vixdisklib.conf. Ejemplo:

vixDiskLib.nfc.LogLevel=7
vixDiskLib.san.LogLevel=7
vixDiskLib.transport.LogLevel=7
tmpDirectory=/tmp
logDirectory=/tmp

Más opciones de Vixdisklib están disponibles en: https://pubs.vmware.com/vsphere-51/index.jsp?topic=%2Fcom.vmware.vddk.pg.doc%2FvddkFunctions.6.11.html

Referencia

VMware Backup Using Bacula Enterprise Edition – https://www.baculasystems.com

 

Disponível em: pt-brPortuguês (Portugués, Brasil)enEnglish (Inglés)esEspañol

Deja una respuesta