Compartir a través de


Configuración de una copia de seguridad coherente con la aplicación para máquinas virtuales Linux de Azure mediante Azure Backup

En este artículo se describe cómo crear copias de seguridad coherentes con la aplicación para máquinas virtuales Linux implementadas en Azure mediante Azure Backup. Cubre la configuración del marco de script y la solución de problemas.

Cuando Azure Backup toma una instantánea de una máquina virtual, la coherencia de la aplicación garantiza que las aplicaciones se inicien correctamente después de la restauración de la máquina virtual. Para ello, use el marco de script previo y posterior de Linux, que admite máquinas virtuales Linux implementadas por Azure Resource Manager. Sin embargo, estos scripts no funcionan para máquinas virtuales Windows o implementadas por Service Manager.

¿Cómo funciona el marco?

El marco proporciona una opción para ejecutar scripts previos y posteriores personalizados mientras se toman instantáneas de VM. Las secuencias de comandos previas se ejecutan justo antes de tomar la instantánea de la máquina virtual y las secuencias de comandos posteriores se ejecutan inmediatamente después de tomar la instantánea de la máquina virtual. Las prescripciones y posscripts proporcionan la flexibilidad necesaria para controlar la aplicación y el entorno, mientras se toman instantáneas de máquina virtual.

Las prescriptas invocan las API de aplicaciones nativas, que ponen en modo inactivo las E/S y vacían el contenido en memoria del disco. Estas acciones garantizan que la instantánea sea coherente con la aplicación. Los scripts posteriores usan API de aplicación nativas para descongelar las E/S, lo que permite que la aplicación reanude las operaciones normales después de la instantánea de máquina virtual.

Configuración de prescript y post-script para máquinas virtuales Linux de Azure

Para configurar Prescript y post-script, siga estos pasos:

  1. Inicie sesión como usuario raíz en la máquina virtual Linux de la que desea realizar una copia de seguridad.

  2. En GitHub, descargue VMSnapshotScriptPluginConfig.json y cópielo en la carpeta /etc/azure de todas las máquinas virtuales de las que desee realizar una copia de seguridad. Si la carpeta /etc/azure no existe, créela.

  3. Copie el guión previo y posterior de la aplicación en todas las máquinas virtuales de las que tenga previsto realizar una copia de seguridad. Puede copiar los scripts en cualquier ubicación de la máquina virtual. Asegúrese de actualizar la ruta completa de los archivos de script en el archivo VMSnapshotScriptPluginConfig.json .

  4. Para utilizar los siguientes archivos, asegúrese de que dispone de los permisos correspondientes:

    • VMSnapshotScriptPluginConfig.json: Permiso 600. Por ejemplo, solo el usuario root debe tener permisos de lectura y escritura en este archivo, y ningún usuario debe tener permisos de ejecución .

    • Archivo de pre-script: Permiso 700. Por ejemplo, solo el usuario root debe tener permisos de lectura, escritura y ejecución para este archivo. Se espera que el archivo sea un script de shell, pero en teoría este script puede generarse internamente o hacer referencia a otros scripts como un script de Python.

    • Posdata Permiso 700. Por ejemplo, solo el usuario root debe tener permisos de lectura, escritura y ejecución para este archivo. Se espera que el archivo sea un script de shell, pero en teoría este script puede generarse internamente o hacer referencia a otros scripts como un script de Python.

    Importante

    El marco otorga a los usuarios numerosos poderes. Proteja el marco y asegúrese de que solo el usuario root tenga acceso a los archivos JSON y de script críticos. Si no se cumplen los requisitos, el script no se ejecutará, lo que produce un bloqueo del sistema de archivos y una copia de seguridad incoherente.

  5. Configure VMSnapshotScriptPluginConfig.json como se describe aquí:

    • pluginName: deje este campo tal como está o es posible que los scripts no funcionen según lo previsto.

    • preScriptLocation: proporcione la ruta de acceso completa del script previo en la máquina virtual de la que se va a realizar la copia de seguridad.

    • postScriptLocation: Indique la ruta completa del post-script en la máquina virtual que se va a respaldar.

    • preScriptParams: Proporciona los parámetros opcionales que se deben pasar al prescript. Todos los parámetros deben estar entre comillas. Si usa varios parámetros, separe los parámetros con una coma.

    • postScriptParams: proporcione los parámetros opcionales que deben pasarse al script posterior. Todos los parámetros deben estar entre comillas. Si usa varios parámetros, separe los parámetros con una coma.

    • preScriptNoOfRetries: establezca el número de veces que se debe volver a intentar el prescript si hay algún error antes de finalizar. Cero significa solo un intento y ningún reintento si se produce un error.

    • postScriptNoOfRetries: establezca el número de veces que se debe reintentar el script posterior si hay algún error antes de finalizar. Cero significa solo un intento y ningún reintento si se produce un error.

    • timeoutInSeconds: especifique tiempos de espera individuales para el prescript y el post-script (el valor máximo puede ser 1800).

    • continueBackupOnFailure: establezca este valor en true si desea que Azure Backup recurra a una copia de seguridad coherente con el sistema de archivos o con un bloqueo si se produce un error en el prescript o el post-script. Si se establece en false, la copia de seguridad fallará si hay un error de script (excepto cuando se tiene una máquina virtual de un solo disco que retrocede a una copia de seguridad consistente ante fallos, independientemente de esta configuración). Cuando el valor de continueBackupOnFailure se establece en false, si se produce un error en la copia de seguridad, se intentará nuevamente la operación de copia de seguridad, basada en la lógica de reintento del servicio, según el número de intentos estipulados.

    • fsFreezeEnabled: Especifique si se debe ejecutar fsfreeze de Linux al realizar la instantánea de la VM para garantizar la coherencia del sistema de archivos. Se recomienda mantener esta configuración establecida en true a menos que la aplicación tenga una dependencia de deshabilitar fsfreeze.

    • ScriptsExecutionPollTimeSeconds: establezca el tiempo que la extensión tiene que dormir entre cada sondeo para la ejecución del script. Por ejemplo, si el valor es 2, la extensión comprueba si la ejecución del script anterior o posterior se completó cada 2 segundos. El valor mínimo y máximo que puede tomar es 1 y 5 respectivamente. El valor debe ser estrictamente un entero.

  6. El marco de script ahora está configurado. Si la copia de seguridad de la máquina virtual ya está configurada, la siguiente copia de seguridad invoca los scripts y desencadena la copia de seguridad coherente con la aplicación. Si la copia de seguridad de la máquina virtual no está configurada, configúrela usando Copia de seguridad de máquinas virtuales de Azure en bóvedas de Recovery Services.

Solución de problemas de errores de copia de seguridad coherentes con la aplicación de máquinas virtuales Linux de Azure

Asegúrese de agregar el registro adecuado mientras escribe el prescript y el posscripto, y revise los registros de script para solucionar cualquier problema de script. Si sigue teniendo problemas para ejecutar scripts, consulte la siguiente tabla para obtener más información.

Error Mensaje de error Acción recomendada
Pre-ScriptExecutionFailed El script previo devolvió un error, por lo que es posible que la copia de seguridad no sea coherente con la aplicación. Examine los registros de errores del script para solucionar el problema.
Post-ScriptExecutionFailed La secuencia de comandos devolvió un error que podría afectar al estado de la aplicación. Examine los registros de errores del script para solucionar el problema y comprobar el estado de la aplicación.
Pre-ScriptNotFound El prescript no se encontró en la ubicación especificada en el archivo de configuración VMSnapshotScriptPluginConfig.json . Asegúrese de que el prescript esté presente en la ruta especificada en el archivo de configuración para garantizar una copia de seguridad coherente con la aplicación.
Post-ScriptNotFound La posdata no se encontró en la ubicación especificada en el archivo de configuración VMSnapshotScriptPluginConfig.json . Asegúrese de que la secuencia de comandos posterior esté presente en la ruta especificada en el archivo de configuración para garantizar una copia de seguridad coherente con la aplicación.
IncorrectPluginhostFile El Pluginhost archivo, que viene con la extensión VmSnapshotLinux, está dañado, por lo que el prescript y el post-script no se pueden ejecutar y la copia de seguridad no será coherente con la aplicación. Desinstale la extensión VmSnapshotLinux y se reinstalará automáticamente con la próxima copia de seguridad para solucionar el problema.
Archivo JSONConfigIncorrecto El archivo VMSnapshotScriptPluginConfig.json es incorrecto, por lo que el prescript y el post-script no se pueden ejecutar y la copia de seguridad no será coherente con la aplicación. Descargue la copia de GitHub y configúrela de nuevo.
InsufficientPermissionforPre-Script Para ejecutar scripts, el usuario root debe ser el propietario del archivo y el archivo debe tener 700 permisos (es decir, solo el propietario debe tener permisos de lectura, escritura y ejecución ). Asegúrese de que el usuario root sea el propietario del archivo de script y que solo el propietario tenga permisos de lectura, escritura y ejecución .
InsufficientPermissionforPost-Script Para ejecutar scripts, el usuario root debe ser el propietario del archivo y el archivo debe tener 700 permisos (es decir, solo el propietario debe tener permisos de lectura, escritura y ejecución ). Asegúrese de que el usuario root sea el propietario del archivo de script y que solo el propietario tenga permisos de lectura, escritura y ejecución .
Pre-ScriptTimeout Se agotó el tiempo de espera de la ejecución del prescript de copia de seguridad coherente con la aplicación. Compruebe el script y aumente el tiempo de espera en el archivo VMSnapshotScriptPluginConfig.json que se encuentra en /etc/azure.
Post-ScriptTimeout Se agotó el tiempo de espera de la ejecución de las posdatas de copia de seguridad coherentes con la aplicación. Compruebe el script y aumente el tiempo de espera en el archivo VMSnapshotScriptPluginConfig.json que se encuentra en /etc/azure.

Pasos siguientes

Configuración de la copia de seguridad de máquina virtual en un almacén de Recovery Services