Visión General
Esta guía rápida presenta varias técnicas de copia de seguridad de máquinas virtuales KVM con el plug-in exclusivo Enterprise Bacula (EBacula), que proporciona los siguientes recursos, entre otros:
- Copia de Seguridad de Máquinas Virtuales (VM)
- Recuperación Granular en el Nivel de Archivo
- Descubrimiento Automático de Máquinas Virtuales
- Soporte de nivel de Backup Full, Diferencial e Incremental
- Bachop con Estados de las VMs de copia de seguridad en «en ejecución», «en pausa» y «deshabilitado»
- La capacidad de Incluir o Eliminar Archivos de la Copia de Seguridad de la Máquina Virtual
El plug-in KVM está diseñado para ser utilizado cuando el hipervisor utiliza almacenamiento local para discos de máquinas virtuales y libvirtd para su administración. Sin embargo, el EBacula también tiene otros plugins específicos para Proxmox, Redhat RHEV/Ovirt y OpenStack.
Instalación
Instale el cliente de copia de seguridad de EBacula, Libs y el paquete KVM en su hipervisor. Considere la distribución, versión y arquitectura de Linux, como en:
rpm -ivh install bacula-enterprise-libs-10.0.5-1.el7.x86_64.rpm rpm -ivh install bacula-enterprise-client-10.0.5-1.el7.x86_64.rpm rpm -ivh install bacula-enterprise-kvm-plugin-10.0.5-1.el7.x86_64.rpm
Nota: el plug-in de KVM utiliza instantáneas (snapshots) cuando realiza una copia de seguridad de las máquinas virtuales invitadas. Durante una instantánea, los bloques modificados por VM host se deben copiar en el espacio temporal, el espacio necesario depende de la actividad del disco invitado. De forma predeterminada, el espacio se asigna en /var/ tmp, por lo que asegúrese de que hay espacio para ello.
Las herramientas de virtualización (qemu-ga) deben instalarse en el invitado y es posible que tenga que configurar las máquinas virtuales para deshabilitar el sistema de archivos correctamente durante la fase de instantánea.
Configuración
Cliente de Backup
El daemon libvirtd debe iniciarse y accesible. El File Daemon del servidor del hipervisor KVM debe tener acceso local, montado en la red o SAN, donde se almacenan las imágenes KVM. En el servidor host KVM, el siguiente comando debe enumerar todas las máquinas virtuales locales:
# virsh list --all Id Name State ---------------------------------------------------- 1 gentoo running 2 centos paused - debian shut off
Si la especificación de un URI usando el parámetro -c del comando virsh es necesaria, el parámetro uri= correspondiente también será necesario en el comando del plug-in mas adelante.
# virsh -c qemu:///system list --all Id Name State ---------------------------------------------------- 1 gentoo running 2 centos paused - debian shut off
El script install-kvm.sh está diseñado para probar la configuración del KVM del hipervisor. La secuencia de comandos debe informar a un «OK» al final, como en el ejemplo. En caso contrario, póngase en contacto con su soporte.
# /opt/bacula/scripts/install-kvm.sh check Enter the libvirt URI to connect libvirtd [qemu:///system]: Trying to list VMs using virsh -r -c 'qemu:///system' list --all, it should not ask for a password. Id Name State ---------------------------------------------------- 1 gentoo running 2 centos paused - debian shut off Did you have to enter a password to get the VM list? [y/N]: N Enter the name of a guest that will be used to test the KVM plugin requirements: gentoo Trying to mount gentoo filesystem as /tmp/bee-kvm-gentoo.2vsYz Mount OK. Attempting to list 10 files from gentoo root filesystem. /tmp/bee-kvm-gentoo.2vsYz/ /tmp/bee-kvm-gentoo.2vsYz/bin /tmp/bee-kvm-gentoo.2vsYz/bin/bb /tmp/bee-kvm-gentoo.2vsYz/bin/dd /tmp/bee-kvm-gentoo.2vsYz/bin/cp /tmp/bee-kvm-gentoo.2vsYz/bin/df /tmp/bee-kvm-gentoo.2vsYz/bin/du /tmp/bee-kvm-gentoo.2vsYz/bin/ip /tmp/bee-kvm-gentoo.2vsYz/bin/ln /tmp/bee-kvm-gentoo.2vsYz/bin/ls Unmounting gentoo filesystem. OK: All tests are good.
Prepara tu conexión Cliente a Director (configura tu Nombre del Director real en el bacula-fd.conf, copia y pega la contraseña para el anexo del Director). Reinicie el Bacula Client para aplicar los cambios.
Director Bacula
Adjunte el cliente al director (cree una nueva característica de configuración del cliente mediante la contraseña copiada del último paso).
Cree un nuevo FileSet con las opciones de plug-in de KVM que desee. El ejemplo de la Figura 1 realizará una copia de seguridad de todas las máquinas virtuales del hipervisor. Puede utilizar la GUI de BWeb si lo desea.
Figura 1. Configuración de Plug-in de KVM para Realizar Copias de Seguridad de Todas las Máquinas Virtuales
En este segundo ejemplo, puede incluir las VM específicas para este FileSet:
FileSet { Name = FS_KVM Include { Options { Signature = MD5 Compression = LZO } Plugin = "kvm: host=centos,gentoo" } }
Si un FileSet realiza copias de seguridad de varias máquinas virtuales, aparecerán en el árbol de selección de archivos de restauración con el nombre de la máquina virtual como el primer directorio para la restauración, como el siguiente:
* list files jobid=100 +---------------------------------+ | filename | +---------------------------------+ | ... | | /centos/boot | | /centos/boot/grub | | /centos/boot/grub/menu.lst | | ... | | /gentoo/etc/passwd | | /gentoo/etc/group | | /gentoo/etc/hosts | | ... | + --------------------------------+
Si un FileSet KVM contiene sólo una máquina virtual, la ruta de cada archivo no se prefijará con el nombre de la máquina virtual, como se muestra a continuación. Este comportamiento predeterminado se puede reemplazar mediante el parámetro de plug-in KVM host_prefix. El siguiente FileSet:
FileSet { Name = FS_KVM_centos Include { Plugin = "kvm: host=centos" } }
Resultará en la siguiente salida de comando list jobs de bconsole:
* list files jobid=101 +---------------------------------+ | filename | +---------------------------------+ | ... | | /boot | | /boot/grub | | /boot/grub/menu.lst | | ... | + --------------------------------+
La selección de inclusión o eliminación de archivos o directorios de FileSet se omite al utilizar el complemento KVM. Para incluir o Eliminar directorios específicos, se debe utilizar el siguiente ejemplo.
FileSet { Name = FS_KVM_etc_home Include { Plugin = "kvm: host=centos include=/etc include=/home exclude=/home/tmp" } }
Las opciones actuales del Plugin se detallan de la siguiente manera:
Option | Default | Description |
---|---|---|
uri | El identificador de URI parámetro especifica cómo conectarse al hipervisor. La documentación de la página en http://libvirt.org/uri.html lista los valores admitidos. | |
host | La máquina virtual se debe reiniciar. Es posible especificar una lista de hosts separados por «,» (sin espacios). | |
include | Especifique los archivos o los directorios de copia de seguridad. Es posible especificar múltiples include = parámetros en el complemento de línea de comandos. | |
exclude | Especifique archivos o directorios para excluir. Es posible especificar varios parámetros exclude= en la línea de comandos del plugin. | |
host_prefix | No | Prefije todos los archivos con el nombre de la máquina virtual (obligatorio al realizar una copia de seguridad de varias máquinas virtuales en el mismo trabajo). |
host_sep | , | Especifique un separador de host utilizado en el parámetro de host. host_sep =: host = h1: h2: h3 |
abort_on_error | No | Abortar el Job si se produce un error durante el trabajo. De forma predeterminada, si no se puede acceder a una máquina virtual, por ejemplo, el trabajo finalizará con JobStatus OK (T) y algunos JobErrors. |
Crear un nuevo trabajo de copia de seguridad utilizando un cliente KVM y nuevo FileSet. Recargue o reinicie el daemon del Director para aplicar los cambios.
Restauración
Para restaurar un archivo, haga clic en el comando Restaurar, seleccione o trabaje de copia de seguridad y ejecute trabajo de restauración tradicional.
Consideraciones
- Al realizar una copia de seguridad en el nivel del controlador de dominio (KVM), algunos recursos de Bacula, como ejecutar secuencias de comandos (RunScripts) en el cliente, no se admiten. El dump de una base de datos MySQL en un VM guest antes de la copia de seguridad requerirá el uso de scripts personalizados usando SSH, por ejemplo, o instalar un cliente Bacula dentro del sistema operativo de la máquina virtual.
- Los CD-ROM se deben desconectar de las máquinas virtuales antes de intentar una copia de seguridad con el complemento KVM. Además, el sistema puede informar
Referencias
- KVM Plugin Using Bacula Enterprise Edition Whitepaper, Bacula Systems. http://baculasystems.com
Disponível em: Português (Portugués, Brasil)English (Inglés)Español