Evitar calculating digest en replicas de Veeam Backup

Cuando los del departamento de IT vemos el mensaje de «calculating digest» mientras se esta ejecutando la tarea de Replica en Veeam Backup nos viene a la mente un pensamiento:

¿Cuantas horas le va costar terminar?. El proceso de «calculating digest» es un proceso que hace Veeam en las tareas de replicas para ver la diferencia entre la VM de origen y la VM de replica, el tiempo que le cuesta terminar creo que es de 1 GB por minuto, por lo que dependiendo del tamaño y la cantidad de las VMs puede que no termine en días. Muchas veces es mejor borrar la replica y crearla de nuevo.

Por que se inicia el proceso «Calculating digest»?, hay varias razones.

  • Aumento de algún virtual disk de la VM, en este caso no se puede hacer nada mas que esperar a que termine el proceso o eliminar la replica y crearla de nuevo
  • Reinstalar el vCenter o creación de uno nuevo.
  • Fallo en el datastore de las replicas y posterior desconexión.
  • des-registrar la replica del inventario del vCenter y volver a registrarla.

Por que ocurre esto? porque el VM ID de la replica ha cambiado.

Como podemos solucionarlo? buscando la manera de cambiar el viejo VM ID por el nuevo.

El los 3 últimos casos hay solución, pero cuidado, este proceso no se si esta soportado por Veeam, ya que se hacen cambios en la BBDD de Veeam Backup.

Vamos con el laboratorio, lo he probado varias veces con diferentes VMs y el método ha funcionando correctamente.

Antes de nada recordaros de hacer un Backup de la BBDD de Veeam.

Empezamos el lab, primero veremos una de las razones de porque ocurre. Vamos al vCenter y quitamos del inventario por la razón que sea una replica que tiene 2 Snapshots.

Si la volvemos a registrar, limpiamos metadatos (porque si no da error), hacemos un seeding o mapeo de la replica y lanzamos la tarea de replica, nos encontraremos que comenzará el proceso de Calculating digest. En este caso la VM de prueba es pequeña y puede que no nos importe mucho, pero como decía antes, si es grande y esta dentro de una tarea con varias VMs con el mismo proceso, dependiendo de como tengamos configurados los jobs, las tareas comenzarán a solaparse.

Ademas, nos generará otra carpeta nueva con los metadatos, un problema que nos encontramos muchas veces, carpetas que no sirven ocupando espacio y que nadie se atreve a borrar.

 

Si nos fijamos en la anterior captura hay 2 carpetas de metadatos con diferente VM ID, el vm-1865 es el antiguo antes de quitar la VM del inventario y el vm-1872, que es el nuevo id al volver a registrar la VM al inventario del vCenter. Cada vez que la VM se quita del inventario y se vuelve a agregar a este, el VM ID cambia.

NOTA: olvidaros de todos los VM ID anteriores, esa parte del laboratorio la he hecho después de las pruebas con exito. Lo digo por si seguís las capturas de pantalla y no os coinciden los VM ID.

 

Empezamos con la prueba, si vamos al vCenter, quitamos del inventario la replica de la VM. Nota: hacer un backup de la BBDD de Veeam antes de tocar nada.

Vamos al datastore de las replicas y la volvemos a registrar.

Una vez registrada, con PowerCli o RVTools (por cierto, muy grande este herramienta, muy recomendable), sacamos el nuevo VM ID que le ha dado y con PowerCli y lanzando un Get-VM | ft -Property Name,ID -Autosize.

Conociendo el dato del nuevo VM ID de la replica, abrimos el SQL Server Management Studio y nos conectamos a la instancia de Veeam Backup. lanzamos la siguiente consulta para conocer el VM ID que tenia la replica antes de quitarla del inventario.

Select target_vm_ref, vm_name from dbo.replicas , el resultado será los VM ID de todas las replicas. Aqui darle gracias a Guillerv por echarme un cable.

Cogemos el dato del nuevo VM ID y creamos la siguiente consulta para cambiar el VM ID viejo por el nuevo:

update dbo.Replicas

set [target_vm_ref] = ‘vm-1865’ ——— aquí escribimos el nuevo VM ID

where [target_vm_ref] = ‘vm-1859’ ——— aquí escribimos el antiguo VM ID

Ejecutamos y nos mostrará un mensaje de que se ha cambiado. Lo que hacemos con esta consulta, es cambiar en la BBDD de Veeam el nuevo VM ID por el antiguo.

Una vez cambiado el VM ID, otra cosa muy importante, la carpeta de los metadatos, no se cambia sola.

Por lo que tendremos que cambiar el vm-antiguo por el vm-nuevo.

Vamos a la consola de Veeam y hacemos un «rescan replicas».

Se sincronizaran las replicas

Y lanzamos la tarea de replica donde si os fijáis, no inicia el proceso de Calculating digest.

La tarea terminará como una incremental mas.

Como se han hecho cambios, mi compañero QQ, me ha recomendado probar una restauración.

Seleccionamos un punto anterior a los cambios y otro de después de los cambios.

 

Y la consola de FLR se abrirá correctamente y la restauración funcionará.

Saludos y espero que os sirva. Recordar que esto no se si esta soportado por Veeam.