Artículo
Nancy Martínez · Dic 10, 2020 Lectura de 5 min

Backups consistentes de InterSystems IRIS y Caché, con Azure Backup

Los sistemas de bases de datos tienen requisitos muy específicos para las copias de seguridad ("backups") que, en entornos empresariales, necesitan una previsión y planificación. En el caso de los sistemas de bases de datos, el objetivo de una copia de seguridad es crear una copia de los datos en un estado equivalente a cuando la aplicación se apaga de forma correcta. Las copias de seguridad consistentes con las aplicaciones cumplen estos requisitos, y Caché ofrece un conjunto de APIs que facilitan la integración con soluciones externas para lograr este nivel de consistencia en las copias de seguridad.

Estas APIs son ExternalFreeze y ExternalThaw. ExternalFreeze detiene de forma temporal la escritura en el disco y durante este periodo Caché almacena los cambios en la memoria. Durante este periodo, debe completarse la operación de backup y debe ir seguida por una llamada a ExternalThaw. Esta llamada involucra a los demonios de escritura para que escriban el caché actualizado en el grupo de búfer de los globals (base de datos de Caché) en el disco y reanuda las operaciones normales del demonio de escritura de la base de datos de Caché. Este proceso es transparente para los procesos del usuario con Caché. Los métodos específicos para las clases de las API son:

##Class(Backup.General).ExternalFreeze()

##Class(Backup.General).ExternalThaw()

Estas API, junto con la nueva funcionalidad de Azure Backup de ejecutar un script antes y después de la ejecución de una operación snapshot, ofrecen una completa solución de backup para implementaciones de Caché en Azure. La funcionalidad de pre/post scripting de Azure Backup solo está disponible en las máquinas virtuales de Linux.

Requisitos previos

En el nivel más alto, hay que realizar tres pasos antes de que puedas hacer una copia de seguridad de una máquina virtual mediante Azure Backup:

  1. Crear un almacén de Servicios de Recuperación
  2. Instalar la última versión del agente de la máquina virtual.
  3. Verifique el acceso de red a los servicios de Azure desde su máquina virtual. 

El almacén  ("vault") de servicios de recuperación gestiona los objetivos, políticas y elementos de la copia de seguridad que se deben proteger. Puedes crear un almacén de servicios de recuperación a través del Portal Azure o mediante los scripts que se utilizan en PowerShell.  Azure Backup requiere de una extensión que se ejecuta en tu máquina virtual, se controla por el agente de máquina virtual de Linux, y también se necesita la última versión del agente. La extensión interactúa con puntos de conexión externos HTTPS endpoints de Azure Storage y del almacén de Servicios de Recuperación.  El acceso seguro a esos servicios desde la máquina virtual se puede configurar mediante un proxy y las normas que rigen la red en un grupo de seguridad en la red de Azure.

Para obtener más información sobre estos pasos, ve a: Prepara tu entorno para hacer una copia de seguridad de las máquinas virtuales implementadas por el Administrador de Recursos.

Configuración previa y posterior a la creación de scripts

En la última versión de la extensión de Azure Backup (Microsoft.Azure.RecoveryServices.VMSnapshotLinux) se incluye la capacidad de llamar a un script antes y después de la operación de backup. Para más información sobre cómo instalar la extensión, consulte la documentación.

De forma predeterminada, la extensión incluye, de prueba, scripts previos y posteriores, que se ubican en tu máquina virtual de Linux en: 

/var/lib/waagent/Microsoft.Azure.RecoveryServices.VMSnapshotLinux-1.0.9110.0/main/tempPlugin

Y debe copiarse en las siguientes ubicaciones respectivamente.

/etc/azure/prescript.sh
/etc/azure/postScript.sh

También se puede descargar la plantilla del script desde GitHub.

Para Caché, el postScript.sh y el script prescript.sh en el que se puede implementar una llamada a la API de ExternalFreeze deben contener la implementación que ejecuta ExternalThaw.

La siguiente es una implementación de muestra de *prescript.sh* para Caché.

#!/bin/bash
# variables used for returning the status of the script
success=0
error=1
warning=2
status=$success
log_path="/etc/preScript.log"   #path of log file
printf  "Logs:\n" > $log_path
# TODO: Replace <CACHE INSTANCE> with the name of the running instance
csession <CACHE INSTANCE> -U%SYS "##Class(Backup.General).ExternalFreeze()" >> $log_path
status=$?
if [ $status -eq 5 ]; then
echo "SYSTEM IS FROZEN"
printf  "SYSTEM IS FROZEN\n" >> $log_path
elif [ $status -eq 3 ]; then
echo "SYSTEM FREEZE FAILED"
printf  "SYSTEM FREEZE FAILED\n" >> $log_path
status=$error
csession <CACHE INSTANCE> -U%SYS "##Class(Backup.General).ExternalThaw()"
fi

exit $status

La siguiente es una implementación de muestra de *postScript.sh* para Caché.

#!/bin/bash
# variables used for returning the status of the script
success=0
error=1
warning=2
status=$success
log_path="/etc/postScript.log"   #path of log file
printf  "Logs:\n" > $log_path
# TODO: Replace <CACHE INSTANCE> with the name of the running instance
csession <CACHE INSTANCE> -U%SYS "##class(Backup.General).ExternalThaw()"
status=$?
if [ $status req 5]; then
echo "SYSTEM IS UNFROZEN"
printf  "SYSTEM IS UNFROZEN\n" >> $log_path
elif [ $status -eq 3 ]; then
echo "SYSTEM UNFREEZE FAILED"
printf  "SYSTEM UNFREEZE FAILED\n" >> $log_path
status=$error
fi
exit $status

Cómo ejecutar una copia de seguridad

En el Portal Azure se puede activar la primera copia de seguridad cuando navega hacia el Servicio de Recuperación. Piensa que el tiempo necesario para consolidar snapshots de máquina virtual debería ser de unos pocos segundos, independientemente de la primera copia de seguridad o de las posteriores. La transferencia de datos de la primera copia de seguridad tardará más tiempo, pero la transferencia de datos comenzará después de ejecutar la edición posterior del script para llamar la base de datos de Thaw y no debería tener ningún impacto en el tiempo entre la edición previa & la posterior del script.

Es muy recomendable que restaures frecuentemente tu copia de seguridad en un entorno que no esté en producción y realices revisiones sobre la integridad de la base de datos, para asegurar que tus operaciones de protección de datos son eficaces.

Para tener más información sobre cómo activar la copia de seguridad y otros temas como programar la copia de seguridad, puedes consultar Cómo realizar un backup de las máquinas virtuales de Azure en una Bóveda de servicios de recuperación.

00
2 0 0 27