Soluciones de copia de seguridad y recuperación de XenServer

Software de copia de seguridad de XenServer fácil y rápido de Bacula Systems

La tecnología de Bacula Systems para la realización de copias de seguridad de XenServer y la recuperación de desastres aporta una velocidad y una comodidad nunca vistas a los usuarios de Xen, todo ello diseñado para que las copias de seguridad de las máquinas virtuales Xen sean más sencillas y sin necesidad de pasos intermedios.

La integración nativa de Bacula Enterprise Editions con Xen proporciona una recuperación de máquinas virtuales a nivel imagen, mientras que su capacidad para realizar copias de seguridad a nivel de huésped simplifica la protección de datos de las aplicaciones críticas. La copia de seguridad puede realizarse para una máquina virtual invitada en cualquier estado de energía (en ejecución o detenida). La recuperación de un solo archivo está disponible.

Bacula utiliza la API del servidor Xen para acceder y realizar copias de seguridad de máquinas virtuales. Aporta una amplia gama de características, capacidades y automatización al entorno Xen, incluyendo niveles de copia de seguridad incrementales y diferenciales. A continuación, una descripción detallada de las capacidades de Bacula Enterprise con XenServer (Citrix Hypervisor):

Funciones de copia de seguridad de XenServer de Bacula

  • Copia de seguridad en línea basada en instantáneas de cualquier VM invitada
  • Niveles de copia de seguridad diferenciales e incrementales
  • Recuperación de un solo archivo
  • Instantáneas de huéspedes basadas en VSS para poner en cuarentena las aplicaciones basadas en VSS
  • Copia de seguridad completa a nivel de imagen
  • Capacidad de restaurar la imagen completa de la máquina virtual
  • Capacidad de restaurar el archivo de la máquina virtual en un directorio alternativo
  • Utiliza imágenes de disco sin procesar y configuración ova
  • Soporta la restauración de formatos de copia de seguridad antiguos
  • Registros completos de trabajos de restauración

Bacula también muestra información útil sobre los recursos disponibles de XenServer, lo que podría simplificar la configuración de las copias de seguridad y las operaciones de restauración, como por ejemplo:

  • Lista de etiquetas de nombres de las VM invitadas
  • Lista de UUID de las VM invitadas
  • Lista de repositorios de almacenamiento de XenServer

Ventajas de la solución de copia de seguridad de XenServer de Bacula 

Es importante contar con una estrategia de copia de seguridad de XenServer que vaya más allá del uso de scripts a nivel de línea de comandos o shell, que no ofrecen alternativas ni beneficios en términos de:

  • Granularidad al utilizar copias de seguridad y restauraciones de VM de Citrix XenServer
  • Ejecución de diferentes niveles de copia de seguridad de VM de Citrix XenServer
  • Facilidad en la recuperación de datos de VM de Citrix Xen
  • Programación de copias de seguridad para XenSever de Citrix

Bacula Enterprise le permite gestionar y ejecutar las copias de seguridad de XenServer VM configuradas en diversos entornos, ya sean físicos, remotos o en la nube.

Operaciones de copia de seguridad y restauración de XenServer

(Nota: todas las secciones siguientes están en revisión, debido a que el módulo acaba de ser actualizado con nuevas características)

Copia de seguridad

La operación de copia de seguridad de una única máquina virtual XenServer invitada sigue los siguientes pasos:

  • Buscar y eliminar cualquier instantánea de copia de seguridad antigua o estancada si se encuentra.
  • Crear una nueva instantánea de Bacula de la VM invitada y prepararla para la copia de seguridad.
  • Ejecutar el comando vm-export de XenServer y enviar los datos al demonio de almacenamiento de Bacula para su almacenaje.
  • Borra la instantánea de Bacula de la VM invitada.

Las copias de seguridad de XenServer pueden realizarse para una VM huésped en cualquier estado de energía (en ejecución o detenida). Cualquier instantánea de VM huésped con un nombre-etiqueta que coincida con la siguiente plantilla: BaculaSnapshot_<UUID>_JobID_<NR> será tratada como una instantánea de copia de seguridad antigua para esta VM invitada y se eliminará automáticamente durante la copia de seguridad. Evite crear instantáneas manuales que coincidan con este esquema de nomenclatura. Cualquier otra instantánea de la VM huésped no se verá afectada. El plugin de copia de seguridad de XenServer le informará sobre el inicio y la finalización de cada copia de seguridad de la VM huésped, incluyendo información sobre las instantáneas de copia de seguridad antiguas estancadas y las actividades de las instantáneas de copia de seguridad. Por ejemplo:

JobId 135: Start Backup JobId 135, Job=xen.2017-12-28_15.52.21_11
JobId 135: Using Device "FileChgr1-Dev1" to write.
JobId 135: Volume "Vol-0002" previously written, moving to end of data.
JobId 135: xenserver: Start Backup vm: CentOS 7 (fe1ccf3b-1865-3942-c928-d98138397ff1)
JobId 135: xenserver: Old stalled backup snapshots found.
JobId 135: xenserver: Snapshot deleted: 12e387c0-eac5-84b1-8e40-1d0601c9eebf
JobId 135: xenserver: Snapshot created: 03afdf67-4ae3-7b0a-5eb0-2c2520c8580f
JobId 135: xenserver: Snapshot deleted: 03afdf67-4ae3-7b0a-5eb0-2c2520c8580f
JobId 135: xenserver: Backup of vm: CentOS 7 (fe1ccf3b-1865-3942-c928-d98138397ff1) OK.
...

La copia de seguridad creará un único archivo para cada VM huésped guardado en forma de/@xen/<name-label>/<vmuuid>.xva. Se crearán varios archivos durante la copia de seguridad si se encuentran varias VM invitadas para respaldar. Puede utilizar esta información para localizar el archivo de la VM huésped adecuada durante una restauración.

+-------------------------------------------------------+
| filename |
+-------------------------------------------------------+
| /@xen/vm1/10908c8a-f932-6f91-9cac-3034e3acf45b.xva |
| /@xen/vm1/03fad8c9-d88b-ea7e-98da-2f3bcd20d0c4.xva |
| /@xen/CentOS/fe1ccf3b-1865-3942-c928-d98138397ff1.xva |
+-------------------------------------------------------+

Restauración

El módulo de copia de seguridad y recuperación de máquinas virtuales de XenServer proporciona dos objetivos principales para las operaciones de restauración:

  • Restaurar a un hipervisor XenServer como VM huésped nueva u original
  • Restaurar en un directorio local como archivo o archivos XenServer XVA

Restaurar en XenServer

Para utilizar este método de restauración tiene que establecer un parámetro de restauración de Bacula "where=/". El archivo de la VM invitada se enviará al hipervisor XenServer y se restaurará como una nueva VM invitada (comportamiento por defecto) o se restaurará como un original cuando se establezca la opción de restauración del plugin preserve. Puede cambiar el repositorio de almacenamiento donde se restaurará la VM huésped.

Para listar los Repositorios de Almacenamiento disponibles puede utilizar un modo de listado, véase 6.1 en la página 13. Si establece un Repositorio de Almacenamiento inadecuado (por ejemplo: inexistente) para la restauración, el proceso de restauración creará la VM huésped en el almacenamiento predeterminado de XenServer.

Restaurar en el directorio local

Para utilizar este método de restauración tiene que establecer un parámetro de restauración de Bacula "where=/some/path". La ruta tiene que ser una ubicación de directorio en el servidor donde está instalado el plugin de copia de seguridad de XenServer VM. Si la ruta no existe, será creada por el plugin.


Instalación de solución de copia de seguridad y restauración para XenServer

Tiene que instalar y configurar el Demonio de Ficheros (FileDaemon) de Bacula en su máquina de hipervisor XenServer que aloja sus VMs invitadas virtuales de las que quiere hacer una copia de seguridad. El hipervisor XenServer utiliza una distribución CentOS personalizada (derivada de RHEL), por lo que debe instalar el Demonio de Ficheros (FileDaemon) de Bacula Enterprise compatible con esa distribución de Linux.

Configuración

La directiva Plugin Directory del recurso File Daemon en /opt/bacula/etc/baculafd.conf debe apuntar a dónde está instalado el plugin xenserver-fd.so. El directorio estándar del plugin de Bacula es /opt/bacula/plugins

 

FileDaemon {
Name = bacula-fd
Plugin Directory = /opt/bacula/plugins
...
}

Instalación del plugin de copia de seguridad de XenServer VM

Puede instalar el plugin de Bacula Enterprise XenServer ampliando el archivo de repositorio de su gestor de paquetes para que contenga una sección para el plugin. Por ejemplo, en Redhat/CentOS 7, /etc/yum.repos.d/bacula.repo:

 

[Bacula]
name=Bacula Enterprise Edition
baseurl=https://www.baculasystems.com/dl/@customer-string@/rpms/bin/@version@/rhel7-64/
enabled=1
protect=0
gpgcheck=0
[BEEXenPlugin]
name=BEE XenServer Plugin
baseurl=https://www.baculasystems.com/dl/@customer-string@/rpms/xenserver/@version@/rhel7-64/
enabled=1
protect=0
gpgcheck=0

A continuación, realice una actualización de yum y después podrá instalar el paquete bacula-enterprise-xenserverplugin con yum install.
Si prefiere instalar manualmente los paquetes, también puede descargarlos desde su área de descargas y utilizar una de las herramientas de gestión de paquetes de bajo nivel como rpm para realizar la instalación del plugin.


Configuración de la copia de seguridad de XenServer

El plugin de copia de seguridad de XenServer se configura utilizando los parámetros definidos en la sección "Include" de un FileSet de la configuración de Bacula Enterprise Director.

Parámetros genéricos del plugin

Los siguientes parámetros del plugin de copia de seguridad de XenServer VM afectan a cualquier tipo de trabajo (copia de seguridad, estimación o restauración).

  • server=<address> especifica la dirección de la API de XenServer utilizada para las operaciones. Se trata de la dirección utilizada en el comando xe como el parámetro -s <address> Este parámetro es opcional. Si se omite se utilizará el acceso por defecto.
  • port=<number> especifica el puerto de la API de XenServer utilizado para las operaciones. Este es el valor utilizado en el comando xe como el parámetro -p <number> El valor de este parámetro tiene que estar en el rango de 1..65536. Un valor no válido hará que se aborte el trabajo. Este parámetro es opcional. Si se omite se utilizará el acceso por defecto.
  • username=<string> especifica el nombre de usuario utilizado para acceder al sistema API de XenServer. Este es el valor utilizado en el comando xe como parámetro -u <string>. Este parámetro es opcional. Si se omite se utilizará el acceso por defecto.
  • password=<string> especifica la contraseña utilizada para acceder al sistema de la API de XenServer. Este es el valor utilizado en el comando xe como parámetro -pw<string>. Este parámetro es opcional. Si se omite se utilizará el acceso por defecto.
  • passfile=<string> especifica un archivo local del demonio de archivos que contiene la contraseña del nombre de usuario. Este es el valor utilizado en el comando xe como el parámetro -pwf<string>. Este parámetro es opcional. Si se omite se utilizará el acceso por defecto.
  • abort_on_error[=<0 o 1>] especifica si el plugin debe abortar o no su ejecución (y el trabajo de Bacula) si se produce un error fatal durante una operación de copia de seguridad, estimación o restauración. Este parámetro es opcional. El valor por defecto es 0.

Parámetros del plugin de copia de seguridad de VM de XenServer

  • vm=<name-label> especifica un nombre de VM huésped para realizar la copia de seguridad. Todas las VM invitadas con un nombre-etiqueta proporcionado serán seleccionadas para la copia de seguridad. Se pueden proporcionar múltiples parámetros vm=... Si no se encuentra una VM invitada con <name-label>, se generará un error de trabajo único y la copia de seguridad procederá a la siguiente VM a menos que se establezca abort_on_error, lo que hará que se aborte el trabajo de copia de seguridad. Este parámetro es opcional.
  • uuid=<uuid> especifica un UUID de la VM huésped para realizar la copia de seguridad. Se pueden proporcionar múltiples parámetros uuid=... Si no se encuentra una VM huésped con <uuid>, se generará un error de trabajo único y la copia de seguridad procederá a la siguiente VM a menos que se establezca abort_on_error, lo que hará que se aborte el trabajo de copia de seguridad. Este parámetro es opcional.
  • include=<name-label-regex> especifica la lista de nombres de una VM invitada para realizar la copia de seguridad utilizando una sintaxis de expresión regular. Todas las VM invitadas que coincidan con el <name-label-regex> proporcionado serán seleccionadas para la copia de seguridad. Se pueden proporcionar múltiples parámetros include=... Si ninguna VM invitada coincide con el <name-label-regex> proporcionado, la copia de seguridad procederá a los siguientes parámetros de VM o terminará con éxito sin hacer la copia de seguridad de ninguna VM. El parámetro abort_on_error no abortará el trabajo cuando no se encuentre ninguna VM invitada con un <name-label-regex>. Este parámetro es opcional.
  • exclude=<name-label-regex> especifica la lista de nombres de una VM invitada que se excluirá de la copia de seguridad utilizando una sintaxis de expresión regular. Se excluirán todas las VMs invitadas que coincidan con el name-label-regex proporcionado y que hayan sido seleccionadas para la copia de seguridad utilizando los parámetros include=... Este parámetro no afecta a las máquinas virtuales invitadas seleccionadas para la copia de seguridad con los parámetros vm=... o uuid=... Se pueden proporcionar múltiples parámetros exclude=... Este parámetro es
    opcional.
  • quiesce[=<0 o 1>] especifica si la instantánea de la VM huésped debe crearse utilizando un método quiesce o no. El método quiesce sólo es compatible con XenServer para el sistema operativo Windows con las herramientas de invitado instaladas. Se trata de una limitación del propio XenServer. Si no se puede crear la instantánea de la máquina virtual invitada con quiesce, se abortará todo el trabajo de copia de seguridad. En este caso, deberá repetir una copia de seguridad sin el parámetro quiesce.

Si no se especifica ninguno de los parámetros vm=..., uuid=..., include y exclude, se realizará una copia de seguridad de todas las VM invitadas disponibles alojadas en el hipervisor XenServer.

Parámetros de restauración del plugin

Durante la restauración, el plugin de copia de seguridad de XenServer utilizará los mismos parámetros que se establecieron para el trabajo de copia de seguridad y se guardaron. Algunos de ellos pueden modificarse durante el proceso de restauración si es necesario.

  • server: <address> especifica la dirección de la API de XenServer utilizada para las operaciones. Se trata de la dirección utilizada en el comando xe como el parámetro -s <address>. Este parámetro es opcional. Si se omite se utilizará el acceso por defecto.
  • port: <number> especifica el puerto de la API de XenServer utilizado para las operaciones. Este es el valor utilizado en el comando xe como el parámetro -p <number>. El valor del parámetro debe estar en el rango de 1..65536. Un valor no válido hará que se aborte el trabajo. Este parámetro es opcional. Si se omite, se utilizará el acceso por defecto.
  • username: <string> especifica el nombre de usuario utilizado para acceder al sistema API de XenServer. Es el valor utilizado en el comando xe como parámetro -u <string>. Este parámetro es opcional. Si se omite se utilizará el acceso por defecto.
  • password: <string> especifica la contraseña utilizada para acceder al sistema API de XenServer. Es el valor utilizado en el comando xe como parámetro -pw <string>. Este parámetro es opcional. Si se omite, se utilizará el acceso por defecto.
  • passfile: <string> especifica un archivo local del demonio de archivos que contiene la contraseña del nombre de usuario. Este es el valor utilizado en el comando xe como el parámetro -pwf <string>. Este parámetro es opcional. Si se omite se utilizará el acceso por defecto.
  • storage_res: <storage> especifica un repositorio de almacenamiento de XenServer donde se guardarán las VM invitadas restauradas. Si no se establece, una VM invitada se guardará en un Repositorio de Almacenamiento XenServer configurado como predeterminado. Este parámetro es opcional.
  • preserve: <yes o no> especifica si un trabajo de restauración debe preservar todos los parámetros de configuración de la VM huésped que sea posible. El valor predeterminado es crear una nueva VM en la restauración. Un trabajo de restauración con esta opción de preservación establecida en "yes" podría fallar si la restauración pudiera crear objetos duplicados en el hipervisor XenServer. Este parámetro es opcional.

Ejemplos de FileSet

En el ejemplo siguiente, se realizará una copia de seguridad de todas las VM invitadas.

FileSet {
Name = FS_XenAll
Include {
Plugin = "xenserver:"
}
}

En el ejemplo siguiente, se realizará una copia de seguridad de una única VM invitada con el nombre "VM1".

FileSet {
Name = FS_Xen_VM1
Include {
Plugin = "xenserver: vm=VM1"
}
}

El mismo ejemplo anterior, pero utilizando uuid en su lugar:

FileSet {
Name = FS_Xen_VM1
Include {
Plugin = "xenserver: uuid=fe1ccf3b-1865-3942-c928-d98138397ff1"
}
}

En el ejemplo siguiente, se realizará una copia de seguridad de todas las VM invitadas que tengan "Prod" en el nombre.

FileSet {
Name = FS_Xen_ProdAll
Include {
Plugin = "xenserver: include=Prod"
}
}

En el ejemplo siguiente, se realizará una copia de seguridad de todas las VM invitadas, excepto de las VM cuyo nombre-etiqueta empiece por "Test".

FileSet {
Name = FS_Xen_AllbutTest
Include {
Plugin = "xenserver: include=.* exclude=^Test"
}
}


Restauración

Restaurar a un hipervisor XenServer

Para restaurar una VM o VMs a un hipervisor XenServer, debe ejecutar el comando restore y especificar el parámetro "where" como en este ejemplo:

 

* restore where=/

... A continuación, establezca cualquier otro parámetro del plugin de restauración necesario para su restauración. En el siguiente ejemplo de sesión de restauración, la opción de restauración del plugin "Preservar la configuración de la vm en la restauración" está establecida en "yes":

 

* restore where=/
...
Run Restore job
JobName: RestoreFiles
Bootstrap: /opt/bacula/working/srv-xen-01-dir.restore.2.bsr
Where: /
Replace: Always
FileSet: Full Set
Backup Client: srv-xen-01-fd
Restore Client: srv-xen-01-fd
Storage: File1
When: 2018-01-05 12:47:16
Catalog: MyCatalog
Priority: 10
Plugin Options: *None*
OK to run? (yes/mod/no): mod
Parameters to modify:
1: Level
2: Storage
3: Job
4: FileSet
5: Restore Client
6: When
7: Priority
8: Bootstrap
9: Where
10: File Relocation
11: Replace
12: JobId
13: Plugin Options
Select parameter to modify (1-13): 13
Automatically selected : xenserver: uuid=fe1ccf3b-1865-3942-c928-d98138397ff1
Plugin Restore Options
server: *None* (*None*)
port: *None* (*None*)
username: *None* (*None*)
password: *None* (*None*)
passfile: *None* (*None*)
storage_res: *None* (*Default location*)
preserve: *None* (*No*)
Use above plugin configuration? (yes/mod/no): mod
You have the following choices:
1: server (Restore server name)
2: port (Restore server port number)
3: username (Restore user name)
4: password (Restore user password)
5: passfile (Restore user password file)
6: storage_res (Storage Resource location for restore)
7: preserve (Preserve vm config on restore)
Select parameter to modify (1-7): 7
Please enter a value for preserve: yes
Plugin Restore Options
server: *None* (*None*)
port: *None* (*None*)
username: *None* (*None*)
password: *None* (*None*)
passfile: *None* (*None*)
storage_res: *None* (*Default location*)
preserve: yes (*No*)
Use above plugin configuration? (yes/mod/no):

El registro del trabajo de restauración le informará sobre qué VM huésped se ha restaurado y qué VM huésped nueva se ha creado.

 

JobId 131: Start Restore Job RestoreFiles.2017-12-28_14.42.25_15
JobId 131: Using Device "FileChgr1-Dev2" to read.
JobId 131: xenserver: VM restore: vm1/10908c8a-f932-6f91-9cac-3034e3acf45b
JobId 131: Forward spacing Volume "Vol-0002" to addr=1758441248
JobId 131: Elapsed time=00:04:51, Transfer rate=3.158 M Bytes/second
JobId 131: xenserver: VM UUID created: 45c49e07-ff20-ab55-e622-05ff2fbb0c1f

La nueva VM invitada creada durante la restauración obtendrá un nuevo nombre-etiqueta establecido por el plugin como <name-label>/<vmuuid> donde <vmuuid> es el UUID de la VM original de la que se hizo la copia de seguridad.

Restaurar en el directorio local

 

* restore where=/tmp/bacula/restores

Por favor, compruebe el siguiente ejemplo para la prueba "VM local restore":

 

JobId 112: Start Restore Job RestoreFiles.2017-12-28_11.30.19_34
JobId 112: Using Device "FileChgr1-Dev2" to read.
JobId 112: xenserver: VM local restore
JobId 112: Forward spacing Volume "Vol-0001" to addr=5190619786
JobId 112: Elapsed time=00:00:30, Transfer rate=30.64 M Bytes/second

El registro del trabajo de restauración le informará de que la restauración se realizará en un directorio local.


Nicolas Van Eenaeme
Netlog’s Director of ITS
«A medida que crecíamos, las copias de seguridad de XenServer tardaban cada vez más en completarse. Entonces decidimos firmar un contrato de soporte con Bacula Systems y utilizar la solución Open Core Bacula Enterprise Edition. Nos han ayudado a optimizar la configuración de nuestras máquinas virtuales XenServer, y ahora las copias de seguridad se completan casi el doble de rápido que antes»

Más información sobre las copias de seguridad de XenServer: