Teniendo definidos varios grupos de protección diferentes en Azure Backup Server, uno de ellos fallaba continuamente al realizar la copia online diferencial. Curiosamente solo pasaba con unos directorios sin apenas movimiento, los registros del propio programa mostraban que se realizaba la copia local pero no la remota, otras fallaban ambas… un comportamiento errático difícil de acotar.
Debemos tener en cuenta el tipo de información incluido en el grupo de protección, ya que no es lo mismo realizar la protección de datos de carpetas locales con documentos de ofimática de poca rotación, un servidor de Exchange, una base de datos SQL, una máquina virtual… donde además pueden utilizarse otro tipo de mecanismos (como el servicio de instantáneas de volumen VSS)
En este caso, para comprender mejor el funcionamiento estableceremos un ejemplo sencillo: para una carpeta compartida en un servidor, el agente de protección utiliza un filtro y un diario de cambios; de este modo determina qué archivos se han modificado, posteriormente se calcula la suma de comprobación para poder sincronizar solo los bloques modificados. Durante la sincronización, se envían al servidor DPM (Data Protection Manager) local o remoto (en Azure) los cambios.
Ahora bien, si la réplica se vuelve incoherente es necesario sincronizar los orígenes de los datos, de tal modo que forzando una sincronización manual la copia de seguridad volvía a realizarse pero la siguiente volvía a fallar… vaya… algo más no acaba de funcionar…
En este caso es necesario revisar los registros detallados donde encontrábamos errores del tipo:
Resetting NW Datamover
timer prematurely since we have received the final response and reader is in faulted mode
...
Backup.DeltaDataTransferLoop.DatasetDataTransferLoop
...
Los registros muestran que hubo algún problema con el filtro DPM para rastrear los cambios en el archivo y todavía apuntaba a archivos que ya no existen ¿Qué ha podido causar estos errores? Más difícil de determinar, pero seguramente algún reinicio o apagado del servidor dejó un proceso a medias…
La solución pasa por regenerar el filtro que utiliza el agente para monitorizar los cambios, forzando una sincronización manual posterior. Lo primero que debemos hacer es descargar el filtro mediante Filter Manager Control Program:
fltmc.exe unload DpmFilter
Utlizaremos PsExec para iniciar una consola con la cuenta del sistema y ejecutar:
psexec.exe -s cmd
cd "C:\System Volume Information"
del DPMFilter*
exit
Con este comando eliminaremos los archivos relacionados: DPMFilterBitmap{Guid}, DPMFilterStatus, DPMFilterLog, DPMFilterTrace*
Una vez nos aseguramos que se han eliminado los archivos del filtro DPM, volvemos a cargar:
fltmc.exe load DpmFilter
Debemos asegurarnos de lanzar una comprobación de coherencia y reiniciar la protección de manera habitual.