Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

2. Incrementales a nivel de bloque utilizando Changed Block Tracking (CBT)

Las máquinas virtuales de un host ESX/ESXi pueden detectar los sectores de disco que han cambiando. Esta funcionalidad se llama  Changed Block Tracking (CBT). En muchos sistemas de ficheros, CBT identifica los sectores de disco modificados entre dos puntos. En las particiones VMFS, además CBT puede identificar todos los sectores que están actualmente en uso.

 

Los cambios en los bloques de los discos virtuales son detectados desde la capa de virtualización, fuera de las máquinas virtuales. Cuando se realiza un backup, es posible solicitar la transmisión de los bloques que han sido modificado desde el último backup, o los bloques que están en uso. CBT se puede utilizar por aplicaciones de terceros como parte de VADP preguntando al VMkernel los bloques que han cambiado desde el último snapshot.

El plugin de Vmware integra la tecnología CBT para asegurar que solamente los bloques que han cambiando desde el Full inicial, o desde el último backup incremental o diferencial, se envían durante un backup incremental o diferencial, proporcionando backups mas efectivos y reduciendo el consumo de ancho de banda.

2.1. Habilitando el incremental a nivel de bloque.

Tenga en cuenta que CBT no está soportado cuando la versión del Hardware Virtual de la máquina es 6 o inferior. Tampoco se puede utilizar cuando la máquina virtual tiene asociado un bus SCSI virtual compartido. También se debe tener en cuenta que cuando se utilizan los discos "Thick Provisioned Eager Zeroed", CBT reportará que todos los bloques están siendo usados durante un backup completo. Para las máquinas virtuales que no permiten el uso de CBT, el plugin de VMware realizará siempre un backup completo de todos los discos virtuales.

Para comprobar si un disco virtual tiene CBT habilitado, abra el cliente de vSphere, seleccione una máquina apagada sin snapshots y haga lo siguiente:

  • Haga click con el botón derecho sobre la VM y elija "Edit Settings"
  • Haga click sobre la pestaña de "Options"
  • Haga click en "General" en la sección de "Advanced" y haga click en "Configuration Parameters". Se abrirá una nueva ventana.
  • Haga click en "Add Row"
  • Añada el parámetro "ctkEnabled" y establezca su valor a "true"
  • Haga click en "Add Row" y añada "scsi0:0.ctkEnabled" y ponga el valor a "true"

Importante: scsi0:0 en scsi0:0.ctkEnabled, se refiere al dispositivo SCSI asignado al disco duro de la VM. Cada disco duro añadido a la VM tiene un indicador SCSI parecido a scsi0:0, scsi0:1 o scsi1:1. Durante el primer backup completo, el plugin de Vmware intentará activar automáticamente CBT si la VM está apagada. 

No deben existir snapshots en la VM cuando se active CBT. Para más información ver http://kb.vmware.com/kb/1033816.

2.2. Inconsistencias cuando se usa CBT

Si se recupera una VM a partir de un snapshot más antiguo que el último incremental, se debe hacer un backup completo antes de volver a hacer un incremental. Esta incidencia está resuelta en vSphere 4.1 y vSphere 4.0 Update 3.  ( http://kb.vmware.com/kb/1021607   )

2.3. Reducir el tamaño del backup restableciendo CBT

Una vez que un bloque está marcado como usado por CBT, dicho bloque siempre será respaldado hasta el próximo backup completo incluso si este bloque se marca en un momento dado como "free" por el sistema operativo. Después de un tiempo, puede resultar que el el backup sea muy grande con una utilización real de disco muy baja.

Recreando el disco con vMotion es posible restablecer la tabla de CBT para que se marquen solamente los bloques realmente usados. Para esta operación, es necesario limpiar el disco del cliente escribiendo "ceros" en el espacio libre. Nótese que esta operación consumirá recursos y es recomendable realizarla en horas no productivas.

En Windows, se puede realizar esta tarea con "sdelete" http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx

En Linux, puede utilizarse "dd". Es importante limitar la escritura para no rellenar todo el disco. 

# dd if=/dev/zero bs=1M count=1000 of=/afile
# rm -f /afile


Una vez realizado, será necesario parar la VM. Se puede hacer desde la consola ESXi:

esxi# vim-cmd vmsvc/getallvms
Vmid Name File Guest OS Version
3 squeeze2 [datastore1] squeeze2/squeeze2.vmx rhel6_64Guest vmx-08
4 squeeze.esx [datastore1] squeeze.esx/squeeze.esx.vmx rhel6Guest vmx-08
esxi# vim-cmd vmsvc/power.shutdown 3


También se puede obtener información sobre el disco y su localización usando:

esxi# vim-cmd vmsvc/get.datastore 3
...
esxi# vim-cmd vmsvc/get.filelayout 3
...


Después, todos los bloques VMDK a cero se pueden limpiar desde la consola usando:

esxi# vmkfstools -K squeeze2_3.vmdk
vmfsDisk: 1, rdmDisk: 0, blockSize: 1048576
Hole Punching: 100% done.


Una vez realizado, será necesario desactivar CBT para las unidades que se deseen reducir. Esta operación también puede realizarse desde la consola:

esxi# sed -i ’s/scsi0:0.ctkEnabled = "true"/scsi0:0.ctkEnabled = "false"/’ squeeze2.vmx
Then, the guest need to be powered/unpowered to apply the CBT change, note that you can wait for the host to be completely started.
esxi# vim-cmd vmsvc/power.on 3
esxi# sleep 1
esxi# vim-cmd vmsvc/power.off 3


No deberían existir más ficheros “*-ctk.vmdk”,y se podrá reactivar CBT en la configuración del host e iniciar la VM:

esxi# sed -i ’s/scsi0:0.ctkEnabled = "false"/scsi0:0.ctkEnabled = "true"/’ squeeze2.vmx
esxi# vim-cmd vmsvc/power.on 3


3. Configuración del plugin de Vmware

Hay que tener en cuenta que este plugin no está incluido en la configuración básica de WBSAirback y necesitará adquirir un contrato de soporte específico para activar este módulo.

Para su activación vaya a SUSCRIPCIÓN, inserte su código y pulse en "Guardar". Esto activará el plugin de Vmware en su sistema.

3.1. Configurando vCenter o el Host ESXi

Antes de crear un patrón de ficheros para las VMs, es necesario configurar la conexión con el vCenter o el Host ESXi. Si no tiene una licencia válida para el vCenter o el Host ESXi, no será posible utilizar todas las opciones del API Vmware, haciendo así no funcional el plugin.

Para configurar su host/vCenter, haga click en BACKUP > Clientes  y  añada  un nuevo cliente.

Después establezca la dirección IP y las credenciales de acceso eligiendo “Vmware host/center” como sistema operativo.

El usuario usado en la configuración debe ser administrador de la plataforma vSphere. En caso de que no sea posible establecer estos permisos, consulte la sección 6 de este documento.  

Importante: se debe comprobar la conexión antes del siguiente paso. Si el cliente no está "online", compruebe las credenciales y la configuración de red.

3.2. Creando un patrón de ficheros para Vmware

El siguiente paso es crear un nuevo patrón de ficheros escogiendo todas las VMs que se quiere respaldar. Elija BACKUP > Patrón de ficheros > Vmware  y haga click en el icono “+” para añadir un nuevo patrón. En esta pantalla podrá ver todos los vCenter / Host ESXi configurados y se podrá navegar por los hosts y datastores para ver todas las máquinas virtuales. En ocasiones, dependiendo del tamaño de entorno, la carga del listado de máquinas virtuales puede ser lenta. Por favor, sea paciente y deje terminar la carga.

Establezca un nombre, sin usar caracteres extraños, y elija si quiere usar CBT. Si no usa CBT, los backups serán siempre copias completas. Si necesita más información acerca de CBT, por favor revise la sección 2.3 de este documento.

También es posible elegir si se quiere utilizar firmas MD5 para asegurar la integridad de los datos respaldados y un algoritmo de compresión para aplicar al backup. Tenga en cuenta que si usa compresión en el patrón de ficheros, la tecnología  de compresión y deduplicación de ZFS no funcionará adecuadamente.

Por último, se elegirán las máquinas virtuales a respaldar. Es posible elegir una VM, varias VMs, datastores completos, hosts completos o una infraestructura completa o, incluso, combinaciones de ellas.

3.3. Excluyendo discos

En el patrón de ficheros no existe la posibilidad de seleccionar los discos de la máquina virtual que se desean respaldar, pero es posible realizar esta operación modificando la configuración de la máquina virtual. Si se activa el modo de "disco independiente" ese disco será excluido del backup.

 

3.4. Otras configuraciones

Tenga en cuenta que si desea ejecutar un backup de Vmware, debe configurar todos los elementos de un backup estándar como pools, repositorios, jobs y planificaciones. De hecho, el backup de Vmware es esencialmente como un backup estándar, salvo que la configuración del patrón de ficheros es distinta.

3.5. "Quiesce" de máquinas virtuales

Para realizar adecuadamente la operación de "quiesce", las "Vmware Tools" deben estar instaladas en el sistema operativo de la VM.

3.5.1. Linux

Se debe crear un script especial en /usr/sbin/pre-freeze-script, y el sistema será capaz de realizar un "quiesce" automático cada vez que se crea un snapshot. vSphere también intentará ejecutar el script situado en /usr/sbin/post-thaw-script .

3.5.2. Consideraciones con Windows VSS 

El plugin realiza la protección de los sistemas Windows utilizando snapshots basados en VSS, de manera que puede respaldar de forma consistente aquellas aplicaciones que soporten esta tecnología. 

4. Ejecutar un backup de una máquina virtual

Para ejecutar un backup usando el plugin de Vmware se debe seguir el proceso estándar para ejecutar un backup en WBSAirback, es decir, busque el job en el cliente adecuado y utilice el icono de "play" para ejecutarlo.

 

Los pasos seguidos para un backup online de una VM son:

  1. Se realiza un snapshot de la VM

  2. Se detectan los discos de la VM

  3. Se vuelca el contenido de los discos secuencialmente

  4. Se elimina el snapshot

Se puede observar siguiendo el log del job:
10-janv. 15:18: Start Backup JobId 1, Job=TestPluginTest.2012-01-10_15.18.47_36
10-janv. 15:18: Recycled volume "vol1"
10-janv. 15:18: Using Device "FileStorage"
10-janv. 15:18: Recycled volume "vol1" on device "FileStorage" (/tmp), all previous data lost.
10-janv. 15:20: Backup "testvm1" (79) start.
10-janv. 15:20: create snapshot name TestPluginTest.2012-01-10_15.18.47_36 succeeded.
10-janv. 15:20: There are 2 disks.
10-janv. 15:20: Dump vmdk 6000C293-962a-ed44-16a1-1dcd3b813d6e succeeded.
10-janv. 15:20: Dump vmdk 6000C29a-d459-921c-ec81-13515928e186 succeeded.
10-janv. 15:20: Delete snapshot TestPluginTest.2012-01-10_15.18.47_36 succeeded.
10-janv. 15:20: BACKUP OK testvm1 (79)
10-janv. 15:20: Job write elapsed time = 00:01:39, Transfer rate = 24.86 M Bytes/second
10-janv. 15:20: Sending spooled attrs to the Director. Despooling 2,774 bytes ...


4.1. Comprobación de errores

Aunque no es lo más recomendable, un mismo patrón de ficheros puede incluir muchas VMs, de manera que cuando el backup de una VM falla se muestra un "Warning". Es muy importante tener esto en cuenta ya que un error puede pasar desapercibido si no se comprueba el motivo de la advertencia.

Para determinar por qué está fallando el backup, se debe comprobar la consola de errores de vCenter y del Host ESXi. Los problemas más comunes son:

  • Problemas con los permisos

  • Fallo al crear un snapshot: es un fallo común, en muchos casos, relacionado con los dispositivos o discos de la VM (como los discos RDM). Compruebe del log de tareas de vSphere para diagnosticar este error
  • La versión del Hardware vitual es inferior a la 6

5. Restaurar un backup de máquina virtual

Existen dos métodos para restaurar una máquina virtual en WBSAirback: restauración de una VM completa o restauración de ficheros.

5.1. Restaurar una máquina virtual completa

El plugin de Vmware realiza backups en base a cambios en los bloques en información, por lo que es necesario asegurarse que todos los backups incrementales están disponibles para la restauración. Si falta cualquiera de ellos, WBSairback no será capaz de crear una imagen consistente de los discos. Usar el nivel diferencial permite reducir el numero de jobs que se requieren para una restauración y, por lo tanto, se reduce el riesgo de una restauración inconsistente, aunque esto será a costa de almacenar backups más grandes. Para evitar perder jobs incrementales es importante asegurarse que la retención de los datos es suficiente para hacer una recuperación completa.

Usando este tipo de restauración, es posible elegir la VM que se quiere restaurar desde una lista y en que datastore y host se quiere que se aloje. Esto creará una nueva VM con el mismo nombre que la original más el identificador del job de restore.

Los pasos a seguir son los siguientes:

  1. Seleccionar el cliente vSphere y “ Ficheros respaldados

  2. Seleccionar "Recuperación de máquina virtual completa"

  3. Seleccionar las VMs a restaurar

  4. Y seleccionar el host y datastore donde se desear alojar

  5. Por último escoger la fecha o la versión del backup a restaurar

5.2. Extraer ficheros de un VMDK

Cuando se restaura un VMDK a un disco local, es posible montar la imagen localmente utilizando la herramienta Vmware-Mount o con QEMU-NBD y realizar restauraciones a nivel de fichero.

Este es un ejemplo de como sería este proceso utilizando las herramientas de QEMU:

% qemu-img convert -O vmdk /tmp/0.bvmdk /tmp/0.vmdk


# modprobe nbd max_part=16
# qemu-nbd -c /dev/nbd0 /tmp/0.bvmdk
# partprobe /dev/nbd0
# fdisk -l /dev/nbd0

Disk /dev/nbd0: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders, total 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000a7154

Device Boot Start End Blocks Id System
/dev/nbd0p1 * 63 1686824 843381 83 Linux
/dev/nbd0p2 1686825 4192964 1253070 5 Extended
/dev/nbd0p5 1686888 1959929 136521 82 Linux swap
/dev/nbd0p6 1959993 4192964 1116486 83 Linux

# mount /dev/nbd0p1 /mnt/image
# ls /mnt/image
bin cdrom etc initrd.img lost+found mnt proc sbin
tmp var boot dev home lib media opt
sys usr vmlinuz srv selinux root
# umount /mnt/image
# qemu-nbd -d /dev/nbd0


6. Configuración de permisos

Como se dijo anteriormente, la mejor opción, si queremos evitar problemas, es usar un administrador local en la infraestructura de vSphere, pero si no existe esa posibilidad, esta es la lista de permisos necesarios:

RecomendadoObligatorio

Alarms




Acknowledge alarm



Create alarm



Disable alarm action



Modify alarm



Remove alarm



Set alarm status


Datacenter




Create Datacenter



IP pool configuration



Move Datacenter



Remove Datacenter



Rename Datacenter


Datastore




Allocate space



Browse Datastores



Configure Datastores



Low level file operations



Move datastore



Remove Datastore



Remove File



Rename Datastore



Update virtual machine Files


Distributed Virtual port 
group




Create



Delete



Modify



Policy operation



Scope operation


Distributed Virtual Switch




Create



Delete



Host operation



Modify



Move



Policy operation



Port configuration operation



Port setting operation



VSPAN Operation


Extension




Register



Update



Unregister


Folder




Create Folder



Delete Folder



Rename Folder



Move Folder


Global




Act as vCenter Server



Cancel Task



Capacity Planning



Diagnostics



Disable Methods



Enable Methods



Global Tag



Health



Licenses



Log Event



Manage Custom Attributes



Proxy



Script Action



Service Managers



Set Custom Attributes



Settings



System Tag


Host




CIM




CIM Interaction


Configuration




Advanced Settings



Change Date Time Settings



Change PciPassthru settings



Change Settings



Change SNMP Settings



Connection



Firmware



Hyper Threading



Maintenance



Memory Configuration



Network Configuration



Query Patch



Security Profile and Firewall



Storage Partition Configuration



System Management



System Resources



Virtual Machine Auto-start Configuration


Inventory




Add Host to Cluster



Add Standalone Host



Create Cluster



Modify Cluster



Move Cluster/Standalone Host



Move Host



Remove Cluster



Remove Host



Rename Cluster


Local Operations




Add host to vCenter



Create Virtual Machine



Delete Virtual Machine



Manage User Groups



Reconfigure virtual machine

Host Profile




Clear



Create



Delete



Edit



View


Network




Assign Network



Configure



Move Network



Remove


Perfomance




Modify Intervals


Permissions




Modify Permission



Modify Role



Reassign Role Permissions


Resource




Apply recommendation



Assign Vapp to resource pool



Assign Virtual Machine 
to resource pool



Create resource pool



Migrate



Modify resource pool



Move resource pool



Relocate



Query Vmotion



Remove resource pool



Rename resource pool


Scheduled Task




Create Tasks



Modify Task



Remove Task



Run Task


Sessions




Impersonate User



Message



Validate Session



View and stop sessions


Storage views




Configure service



View


Tasks




Create task



Update task


vApp




Add virtual machine



Assign virtual machine



Assign vApp



Clone



Create



Delete



Export



Import



Move



Power Off



Power On



Rename



Unregister



vApp application configuration



vApp instance configuration



vApp resource configuration



View OVF Environment


Virtual Machine




Configuration




Add Existing Disk



Add New Disk



Add or Remove Device



Advanced



Change CPU Count



Change Resource



Disk change tracking



Disk Lease



Extend virtual disk



Host USB Device



Modify Device Settings



Query unowned files



Raw Device



Reload from path



Remove Disk



Rename



Reset Guest Information



Memory



Settings



Swap Placement



Upgrade Virtual Hardware


Interaction




Answer question



Backup operation on virtual machine



Configure CD media



Congirure floppy media



Console interation



Create screenshot



Defragment all disks



Device connection



Disable Fault Tolerance



Enable Fault Tolerance



Power Off



Power On



Record session on Virtual Machine



Replay session on Virtual Machine



Reset



Suspend



Test Failover



Test restart Secondary VM



Turn Off Fault Tolerance



Turn On Fault Tolerance



Vmware Tools install


Inventory




Create from existing



Create New



Move



Register



Remove



Unregister


Provisioning




Allow Disk Access



Allow Read-only Disk Access



Allow Virtual Machine Download



Allow Virtual Machine Files Upload



Clone Template



Clone Virtual Machine



Create Template from Virtual Machine



Customize



Deploy Tempate



Mark As Template



Mark as Virtual Machine



Modify Customization Specification



Promote disks



Read Customization Specifications


State




Create Snapshot



Remove Snapshot



Rename Snapshot



Revert to Snapshot

VMware vCenter Update Manager




Configure




Configure Service


Manage Baseline




Assign Baseline



Manage Baseline


Manage Patches and Upgrades




Remediate Patches and Upgrades



Scan Patches and Upgrades



Stage Patches



View Compliance Status

Nota: la infraestructura de vSphere puede llegar a ser muy compleja en cuanto a permisos se refiere, lo que hace que, aún configurando los permisos tal y como se indica, pueden surgir problemas.

7. Compatibilidad

El plugin VMWare es compatible con:

  • Versiones 5.0,5.1, 5.5, 6.0, 6.5 y 6.7 (6.57u3) de vSphere
  • Versión mínima del hardware de las máquinas virtuales: 7

8. Limitaciones

El plugin VMWare no es compatible con backups sintéticos o tipo Virtual Full. Por favor, no intente combinar estas dos tecnologías, pues las máquinas virtuales respaldadas no podrán ser recuperadas.

...