Instalación y configuración de VMware Virtual Consolidated Backup – VMware VCB
VCB o Virtual Consolidated Backup es la forma ideal de hacer nuestras copias de seguridad del entorno virtual de VMware. En este documento mostraremos cómo configurar VCB para realizar backups de las máquinas virtuales que nos interese, sean copias completas de las MV o copias de sus contenidos. Además integraremos VCB con Symantec Backup Exec.
VMware Consolidated Backup es un programa centralizado de backup fácil de utilizar que incorpora las mejores funciones de ambas opciones. Proporciona backup archivo por archivo sin la necesidad de un agente de backup, y admite protección de archivos incremental y completa.
Este sería el esquema de VCB. Tenemos uno o varios Host ESX’s con sus máquinas virtuales y su almacenamiento. VCB se apoya en los snapshots para hacer una ‘foto’ de la máquina virtual en cuestión y copia estos datos a la ubicación que le indiquemos. Tendremos en cuenta que el servidor VCB debe ser un servidor físico, con Windows. Lo ideal es que este servidor tenga al menos una HBA para conectarse directamente con el almacenamiento, ya que la copia a través de la ethernet puede ser sudorosa. Una vez tengamos la(s) MV(s) montada(s) simplemente usaremos un método alternativo para meterlos a una unidad de cintas u en otra ubicación, sea un disco USB externo… posterior a la copia será el desmontaje de esta.
Lo primero es hacernos con VCB en la web oficial de VMware (http://www.vmware.com/download/) una vez nos hayamos registrado o logueado con nuestras cuentas de VMware, iniciamos la instalación de VMware Consolidated Backup Framework. “Next”,
Debemos aceptar el contrato de licencia “I accept the terms in the license agreement” & “Next”,
El path de instalación por defecto será “C:Archivos de programaVMwareVMware Consolidated Backup Framework” & “Next”,
Pulsamos en “Install” para instalar ya VCB!
… esperamos unos segundos mientras se instala…
“Finish”, lista la instalación.
Bien, ahora antes de seguir e instalándo la aplicación para integrarla con Symantec Backup Exec, vemos los comandos que podemos utilizar para hacer copias de nuestras máquinas virtuales. Esto podremos usarlo para hacer copias con scripts o aplicaciones de copias de seguridad que nos permita una pretarea y una postarea. Para ver todas las posibilidades que tenemos ejecutamos desde una ventana de MSDOS en “C:Archivos de programaVMwareVMware Consolidated Backup Framework” el comando vcbMounter.exe /?. Con esto veremos todas las posibilidades, para montar una máquina virtual completa ‘fullvm’ llamada ‘XPe01’ en el servidor VirtualCenter ‘10.130.48.88’ en el directorio ‘C:TempXPe01-fullVM y atráves de la red de fibra ‘san’ se ejecutaría el siguiente comando: vcbMounter.exe -h HOST_ESX/VIRTUAL_CENTER -u USUARIO -p CONTRASEÑA -a name:NOMBRE_MV -r DIRECTORIO_DESTINO -t TIPO_COPIA(fullvm/file) -m TIPO_RED(san/nbd). Esto sería la Pre-tarea.
…esperamos mientras copia está MV completa…
Listo, sólo nos copiará los datos usados de la MV no todo el disco. Bien.
Si abrimos el directorio destino podemos comprobar que ya tenemos la máquina aquí, ahora simplemente con alguna tarea haríamos una copia de este contenido a otra ubicación, sea otro HD, sea una unidad de cintas…
Una vez lo tenemos montado en esa ruta, ejecutamos una copia con algún programa de backup o un simple COPY de MSDOS, o con NTBackup…
…esperamos mientras nos hace la copia de seguridad a otra ubicación…
Listo!
Posterior a la copia a otro HD o cinta, debemos desmontar lo anterior, para ello ejecutamos en “C:Archivos de programaVMwareVMware Consolidated Backup Framework”: vcbMounter.exe -h HOST_ESX/VIRTUALCENTER -u USUARIO -p CONTRASEÑA -U DIRECTORIO_DONDE_SE_MONTO. Esto podría ser la post-tarea de un backup.
… esperamos unos segundos mientras se desmonta… (vamos, que eliminará dicho directorio),
Listo,
Ahora, podemos aprovecharnos de unos scripts (realizados por un coleguita) para automatizar todo esto, si no tenemos una aplicación de backup como Dios manda, siempre podremos recurrir a esto, super útil. Son varios ejecutables, que entre unos se llaman a los otros para hacer un backup de varias máquinas virtuales, en un orden especificado en un fichero de texto llamado ‘VMs.txt’, a continuación muestro dichos scripts en orden de ser llamados. El primer fichero le llamaremos BkpVMs.cmd con el contenido:
@ECHO OFF REM *** REM *** Monta, copia y desmonta las imagenes de servidores virtuales según la lista de VMs.txt REM *** FOR /F “eol=;” %%i IN (VMs.txt) DO montaVM.cmd %%i |
El segundo fichero, montaVM.cmd montará las máquinas virtuales que le vaya pasando el comando anterior:
@ECHO OFF REM *** REM *** Recibe como parámetro %1 el nombre de la máquina virtual, tal y como es conocido en el Virtual Center. REM *** REM *** Tener en cuenta que la variable %VCBBASE% tiene el valor: “c:Archivos de programaVMwareVMware Consolidated Backup Framework” REM *** REM *** Crea el snapshot de la maquina virtual %1 y lo monta en la SAN (lun VMBackup) REM *** ECHO %1;%DATE%-%TIME%;Inicio montaVM >> LOGBkpVMs.LOG “%VCBBASE%vcbmounter” -h VIRTUALCENTER.DOMINIO.ESO -u USUARIO -p CONTRASEÑA -a name:%1 -r X:PATH%1-fullVM -t fullvm -m san ECHO %1;%DATE%-%TIME%;Fin montaVM >> LOGBkpVMs.LOG REM *** REM *** Ejecuta la copia de la maquina virtual %1 REM *** ECHO %1;%DATE%-%TIME%;Inicio copiaVM >> LOGBkpVMs.LOG CALL copiaVM.cmd %1 ECHO %1;%DATE%-%TIME%;Fin copiaVM >> LOGBkpVMs.LOG REM *** REM *** Desmonta de la maquina virtual %1 REM *** ECHO %1;%DATE%-%TIME%;Inicio desmontaVM >> LOGBkpVMs.LOG desmontaVM.cmd %1 ECHO %1;%DATE%-%TIME%;Fin desmontaVM >> LOGBkpVMs.LOG |
El fichero ‘copiaVM.cmd’ hace la copia que nos interese, en el EJEMPLO1 vemos una copia con NTBACKUP, en el EJEMPLO2 hace una copia con un COPY. Contiene lo siguiente:
@ECHO OFF REM *** REM *** Recibe como parámetro %1 el nombre de la máquina virtual, tal y como es conocido en el Virtual Center. REM *** REM *** Ejemplo 1: REM *** C:WINDOWSsystem32ntbackup.exe backup X:PATH%1-FullVM /a /v:no /r:no /rs:no /hc:off /m normal /j Bkp_%1 /l:s /f RUTA_FICHERO.bkf REM *** REM *** Ejemplo 2: REM *** copy X:PATH%1-FullVM DESTINO |
Una vez haya copiado debe desmontar el directorio previamente montado con el ‘desmontaVM.cmd’, su contenido:
@ECHO OFF REM *** REM *** Recibe como parámetro %1 el nombre de la máquina virtual, tal y como es conocido en el Virtual Center. REM *** “%VCBBASE%vcbmounter” -h VIRTUALCENTER.DOMINIO.ESO -u USUARIO -p CONTRASEÑA -U X:PATH%1-FullVM |
Estos son algunos Scripts con los que nos podemos apoyar para hacer copias de seguridad de nuestras máquinas virtuales.
Otra forma de hacer las copias es con el parámetro ‘file’ a la hora de montar las máquinas virtuales, vemos un ejemplo.
Nos monta como un dispositivo virtual su disco duro virtual…
Vemos que se ejecuta el comando en unos segundos y nos monta las unidades de discos duros virtuales que tenga en el directorio que hayamos especificado.
Si accedemos con un explorador, veremos el contenido de sus discos duros virtuales, ahora con una aplicación de backup podremos hacer copias del contenido de la máquina virtual sin tener por qué hacer un backup completo de la MV.
Y tras la copia que hagamos, recordar que hay que desmontarlo!
Listo.
Integrar VMware Consolidated Backup con Symantec Backup Exec,
Bueno, en esta parte del documento, mostramos cómo se integra VCB con Symantec BackupExec. Para ello, debemos descargarnos este fichero (AKI) y descomprimirlo en “C:Archivos de programaVMwareVMware Consolidated Backup Framework” con el nombre de “backupexec”.
Listado de los ficheros…
Nos vamos hasta esa ruta por MSDOS a “C:Archivos de programaVMwareVMware Consolidated Backup Frameworkbackupexec” y ejecutamos ‘install.bat’.
Nos pregunta si el directorio de VCB es correcto, comprobamos si es, y damos al Enter.
pulmos ‘y’,
Pulsamos ‘y’ para ver el fichero de configuración.
Nos recorremos todo el fichero y configuramos los parámetros correctamente, ejemplo del fichero.
/* * Generic configuration file for VMware Consolidated Backup (VCB). */ /* * Directory where all the VM backup jobs are supposed to reside in. * For each backup job, a directory with a unique name derived from the * backup type and the VM name will be created here. * If omitted, BACKUPROOT defaults to c:mnt. * * Make sure this directory exists before attempting any VM backups. */ BACKUPROOT="F:DIRECTORIO"; /* * URL that is used by "mountvm" to obtain the block list for a * disk image that is to be mounted on the backup proxy. * * Specifying this option is mandatory. There is no default * value. */ HOST="virtualcenter.dominio.local"; /* * Port for communicating with all the VC SDK services. * Defaults to 902 */ PORT="902"; /* * Username/password used for authentication against the mountvm server. * Specifying these options is mandatory. */ USERNAME="usuario"; PASSWORD="contraseña"; /* * SNAPSHOT_POLICY determines how disk snapshots for backup are being created: * +) "automatic" * A snapshot is being generated automatically by the Legato Networker * Interoperability Module right before backup and it is being removed * automatically right after backup. * +) "manual" - * Exactly one snapshot named "_VCB-BACKUP_" must already exist for * each protected VM. The snapshot is mounted/unmounted on the proxy, * but the snapshot is neither created nor deleted by the Legato Networker * Interoperability Module. - This can be used to have external tools * manage backup snapshot. * +) "createonly" * The Legato Networker Interoperability Module will create the snapshot * for each VM right before it gets backed up, but will not remove the * snapshot after unmounting. * +) "deleteonly" * The Legato Networker Interoperability Module assumes that the snapshot * named "BACKUP" has been created beforehand. The snapshot will be deleted * automatically after backup. * * This is useful when Legato Networker should still be used in the protected * VM to get application-consistent snapshots that are obtained from within * the VM. See README-legato.html for more details. * * The default option is "automatic" * */ //SNAPSHOT_POLICY="automatic"; |
Lo editamos a nuestro antojo, lo guardamos y lo cerramos.
Ojo! antes de seguir debemos de crear el directorio donde montará las máquinas virtuales, yo en mi caso le he ficho que será ‘F:mnt’, así que me creo este directorio para que las monte ahí. Aprovecho para crear un directorio para guardar una copia de seguridad de las MV’s en ella, ya que no tengo un equipo con cintas para copiar ahí, creo ‘F:vmbackups’.
En Symantec Backup Exec voy a crear una carpeta para poder hacer las copias ahí, se supone que es en un disco externo ;),
Le indico un nombre, en este caso de ejemplo ‘VMBackup’ que hará referencia a ‘F:vmbackups’
Bueno, seguimos con el asistente de configuración, indicamos que ‘n’
Nos pregunta si queremos ver la ayuda, como sea, aunq si es tu primera vez te lo recomiendo, s/n,
Ok, cerramos la ventana de DOS…
Una vez instalado VCB y configurado para nuestro Symantec Backup Exec, debemos reiniciar los servicios de BackuExec, para ello, en la consola de Symantec Backup Exec, vamos a “Herramientas” > “Servicios de Backup Exec…”
Seleccionamos nuestro servidor y pulsamos “Reiniciar todos los servicios”
…esperamos mientras los reinicia…
Bien, tenemos que configurar el comando PreTarea, para ello vamos por una consola de DOS a “C:Archivos de programaVMwareVMware Consolidated Backup Frameworkbackupexec” y ejecutamos el siguiente comando: ‘pre-backup.bat NOMBRE_DE_TAREA NOMBRE_MV-fullVM’ y lo ejecutamos. Si el comando se ejecuta bien copiar el comando en un Bloc de notas,
Vemos que donde hemos indicado al fichero de configuración de VCB nos está montando la máquina virtual que le indicamos.
Una vez montado, debemos desmontar la MV, para ello desde la misma consola de DOS, ejecutamos ‘post-backup.bat NOMBRE_DE_TRAEA’. Si el comando se ejecuta bien copiar el comando en el Bloc de notas,
Bien, ahora que todo funciona, vamos a Backup Exec a crear una tarea de copia donde ejecutemos esta PreTarea, la copia y la PostTarea. Sobre “Configuración de tareas” > “Tarea nueva”
En la parte de “Configuración” > “General” debemos indicar antes de nada el ‘Nombre de tarea’ con el mismo que acabamos de indicar en los comandos Pre y Post tarea. En “Método de copia de seguridad de archivos” seleccionamos “Archivos de copia de seguridad completa – Usar hora de modificación” y desmarcamos el check de “Usar diario de cambios de Windows si está disponible”.
Más, en “Comandos pre-tarea y post-tarea” debemos indicar lo mismo de antes:
Comando pre-tarea: ‘pre-backup.bat NOMBRE_DE_TAREA NOMBRE_MV-fullVM’
Comando post-tarea: ‘post-backup.bat NOMBRE_DE_TRAEA’
Ojo, ahora debemos ir a “Selecciones” para seleccionar qué queremos hacer backup, pero no lo encontraremos ya que la MV que queremos copiar no está montada, así que tenemos dos opciones, o ejecutamos en DOS el comando para montarla; o en “Ver detalles de selección” introducimos el path donde se montarán las MV a mano. Configuramos todas las demás configuraciones que nos interese, como donde guardar el backup, programación… Pulsamos en “Enviar” para guardarla.
La iniciamos…
Y durante la copia comprobamos cómo la MV se monta, se va almacenando en su dispositivo y finalmente se desmonta la MV automáticamente.
Si abrimos la consola de VMware VirtualCenter con el VMware Infrastructure Client, veremos en la barra de tareas que se están creando snapshots y posteriormente se eliminan, esto es pq VCB se apoya en esta tecnología.
Si modificamos el parámetro PreTarea y quitamos el parámetro -fullVM no nos montará la máquina virtual completa, si no veremos el contenido de ella, sólo para hacer backup de sus datos,
Comando pre-tarea: ‘pre-backup.bat NOMBRE_DE_TAREA NOMBRE_MV’
Cuando montemos la máquina virtual de esta forma, veríamos el contenido de sus discos duros virtuales montados.
Cómo recuperar una máquina virtual cuando hemos hecho un backup con VCB,
¿interesante, no? 😀
Simplemente, usaremos VMware Converter (podemos apoyarnos en http://www.bujarra.com/?p=1093) para importarla, abrimos la consola del VMware Virtual Center, sobre un host o un clúster con botón derecho > “Import Machine…”
“Siguiente”,
“Other”,
Seleccionamos el fichero VMX que tenemos por ahí guardado milagrosamente, tiene que ser una ruta UNC! indicamos un usuario y una contraseña para poder acceder a dicho recurso, “Siguiente”,
“Siguiente”,
“Siguiente”,
Le indicamos el nombre de MV que tenía antes, seleccionamos el DataCenter destino, “Siguiente”,
Seleccionamos la LUN donde estaba o almacenamiento compartido, “Siguiente”,
Comprobamos que tiene todos los adaptadores de red OK y en su red correspondiente, “Siguiente”,
“Siguiente”,
“Siguiente”,
“Finalizar”,
Comprobamos en la barra de tareas que está importando la MV de la que teníamos copia de seguridad de nuevo a nuestro entorno virtual,
Listo! sólo queda arrancarla!!!!