Backup coerente con l'applicazione di macchine virtuali Linux di Azure con Backup di Azure

Questo articolo descrive come creare backup coerenti con l'applicazione dei Macchine virtuali Linux in Azure usando Backup di Azure. In questo articolo si configurerà il framework di script per eseguire il backup di macchine virtuali Linux distribuite in Azure. Questo articolo fornisce anche le informazioni sulla risoluzione dei problemi.

Quando si eseguano snapshot di backup delle macchine virtuali, la coerenza dell'applicazione significa che le applicazioni vengono avviate all'avvio delle macchine virtuali dopo il ripristino. È pertanto evidente che la coerenza con le applicazioni è un fattore estremamente importante. Per garantire che le macchine virtuali Linux siano coerenti con l'applicazione, è possibile usare il framework di prescrizione e post-script Linux per eseguire backup coerenti con l'applicazione. Il framework prescript e post-script supporta macchine virtuali Linux distribuite con Azure Resource Manager. Gli script per la coerenza delle applicazioni non supportano macchine virtuali distribuite da Service Manager o macchine virtuali Windows.

Come funziona il framework

Il framework offre un'opzione per eseguire prescrizioni personalizzate e post-script durante la creazione di snapshot delle macchine virtuali. I prescrizioni vengono eseguiti subito prima di acquisire lo snapshot della macchina virtuale e gli script post-script vengono eseguiti immediatamente dopo aver creato lo snapshot della macchina virtuale. I prescritti e gli script post-script offrono la flessibilità necessaria per controllare l'applicazione e l'ambiente, durante la creazione di snapshot delle macchine virtuali.

I prescrizioni richiamano le API dell'applicazione nativa, che disattivano le operazioni di I/O e scaricano il contenuto in memoria sul disco. Queste azioni garantiscono la coerenza dello snapshot con le applicazioni. Gli script post-backup usano le API native dell'applicazione per sbloccare le operazioni di I/O, che consentono all'applicazione di riprendere le normali operazioni dopo lo snapshot della macchina virtuale.

Configurare prescript e post-script per la macchina virtuale Linux di Azure

Per configurare Prescript e post-script, seguire questa procedura:

  1. Accedere come utente root alla macchina virtuale Linux VM di cui si vuole eseguire il backup.

  2. Da GitHub scaricare VMSnapshotScriptPluginConfig.json e copiarlo nella cartella /etc/azure per tutte le macchine virtuali di cui si desidera eseguire il backup. Se la cartella /etc/azure non esiste, crearla.

  3. Copiare il prescript e il post-script per l'applicazione in tutte le macchine virtuali di cui si prevede di eseguire il backup. È possibile copiare gli script in qualsiasi posizione nella macchina virtuale. Assicurarsi di aggiornare il percorso completo del file di script nel file VMSnapshotScriptPluginConfig.json.

  4. Assicurarsi che siano disponibili le autorizzazioni seguenti per i file:

    • VMSnapshotScriptPluginConfig.json: autorizzazione "600". Ad esempio solo l'utente "root" deve avere le autorizzazioni di "lettura" e "scrittura" per questo file, nessun utente deve avere autorizzazioni di "esecuzione".

    • File script di pre-backup: autorizzazione "700". Ad esempio, solo l'utente "root" deve avere le autorizzazioni di "lettura", "scrittura" ed "esecuzione" per questo file. Il file dovrebbe essere uno script della shell, ma teoricamente questo script può generare internamente o fare riferimento ad altri script come uno script Python.

    • Script di post-backup: autorizzazione "700". Ad esempio, solo l'utente "root" deve avere le autorizzazioni di "lettura", "scrittura" ed "esecuzione" per questo file. Il file dovrebbe essere uno script della shell, ma teoricamente questo script può generare internamente o fare riferimento ad altri script come uno script Python.

    Importante

    Il framework offre notevoli potenzialità agli utenti. Controllare il framework e assicurarsi che solo l'utente "root" abbia accesso ai file di script e JSON critici. Se i requisiti non vengono soddisfatti, lo script non viene eseguito e pertanto si verificherà un arresto anomalo del file system e verrà creato un backup non coerente.

  5. Configurare VMSnapshotScriptPluginConfig.json come illustrato di seguito:

    • pluginName: lasciare invariato il campo. In caso contrario, gli script potrebbero non funzionare come previsto.

    • preScriptLocation: specificare il percorso completo della trascrizione nella macchina virtuale di cui verrà eseguito il backup.

    • postScriptLocation: specificare il percorso completo dello script di post-backup nella VM di cui si eseguirà il backup.

    • preScriptParams: specificare i parametri facoltativi che devono essere passati al prescript. Tutti i parametri devono essere racchiusi tra virgolette. Se si usano più parametri, separare i parametri con una virgola.

    • postScriptParams: specificare i parametri facoltativi da passare allo script di post-backup. Tutti i parametri devono essere racchiusi tra virgolette. Se si usano più parametri, separare i parametri con una virgola.

    • preScriptNoOfRetries: impostare il numero di tentativi di ripetizione del prescrittio se si verifica un errore prima di terminare. Zero indica un solo tentativo, senza alcun nuovo tentativo in caso di errore.

    • postScriptNoOfRetries: impostare il numero di volte in cui lo script di post-backup deve essere ripetuto se è presente un errore prima di terminare. Zero indica un solo tentativo, senza alcun nuovo tentativo in caso di errore.

    • timeoutInSeconds: specificare singoli timeout per il prescritto e lo script di post-script (il valore massimo può essere 1800).

    • continueBackupOnFailure: impostare questo valore su true se si vuole Backup di Azure eseguire il fallback a un backup coerente/coerente con l'arresto anomalo del file system in caso di errore di prescript o post-script. Se si imposta su false , il backup ha esito negativo se si verifica un errore di script (tranne quando si dispone di una macchina virtuale a disco singolo che esegue il fallback al backup coerente con l'arresto anomalo indipendentemente da questa impostazione). Quando il valore continueBackupOnFailure è impostato su false, se il backup non riesce, l'operazione di backup verrà ritentata in base a una logica di ripetizione dei tentativi nel servizio (per il numero stabilito di tentativi).

    • fsFreezeEnabled: specificare se il comando fsfreeze di Linux deve essere chiamato durante la creazione dello snapshot della macchina virtuale per garantire la coerenza del file system. Si consiglia di mantenere questa impostazione su true, a meno che l'applicazione abbia legami di dipendenza con la disattivazione di fsfreeze.

    • ScriptsExecutionPollTimeSeconds: impostare il tempo di sospensione dell'estensione tra ogni polling e l'esecuzione dello script. Ad esempio, se il valore è 2, l'estensione controlla se l'esecuzione dello script pre/post è stata completata ogni 2 secondi. Il valore minimo e massimo che può essere richiesto è rispettivamente 1 e 5. Il valore deve essere rigorosamente un numero intero.

  6. Il framework di script è ora configurato. Se il backup della macchina virtuale è già configurato, il backup successivo richiamerà gli script e attiverà backup coerenti con le applicazioni. Se il backup della macchina virtuale non è configurato, configurarlo usando Backup di macchine virtuali di Azure negli insiemi di credenziali di Servizi di ripristino.

Risoluzione dei problemi

Assicurarsi di aggiungere la registrazione appropriata durante la scrittura dei prescritti e post-script e esaminare i log degli script per risolvere eventuali problemi di script. Se continuano a verificarsi problemi durante l'esecuzione degli script, vedere la tabella seguente per altre informazioni.

Errore Messaggio di errore Azione consigliata
Pre-ScriptExecutionFailed Il codice ha restituito un errore, quindi il backup potrebbe non essere coerente con l'applicazione. Controllare i log di errore dello script per risolvere il problema.
Post-ScriptExecutionFailed Lo script di post-backup ha restituito un errore che potrebbe compromettere lo stato dell'applicazione. Controllare i log di errore dello script per risolvere il problema e verificare lo stato dell'applicazione.
Pre-ScriptNotFound Il codice non è stato trovato nel percorso specificato nel file di configurazione VMSnapshotScriptPluginConfig.json . Assicurarsi che la trascrizione sia presente nel percorso specificato nel file di configurazione per garantire il backup coerente con l'applicazione.
Post-ScriptNotFound Lo script di post-backup non è stato trovato nel percorso specificato nel file di configurazione VMSnapshotScriptPluginConfig.json. Assicurarsi che lo script di post-backup sia presente nel percorso specificato nel file di configurazione per garantire un backup coerente con le applicazioni.
IncorrectPluginhostFile Il file Pluginhost , fornito con l'estensione VmSnapshotLinux, è danneggiato, quindi non è possibile eseguire prescript e post-script e il backup non sarà coerente con l'applicazione. Disinstallare l'estensione VmSnapshotLinux che sarà automaticamente reinstallata con il backup successivo per risolvere il problema.
IncorrectJSONConfigFile Il file di VMSnapshotScriptPluginConfig.json non è corretto, quindi prescript e post-script non possono essere eseguiti e il backup non sarà coerente con l'applicazione. Scaricare la copia da GitHub ed eseguirne di nuovo la configurazione.
InsufficientPermissionforPre-Script Per eseguire gli script, l'utente "root" deve essere il proprietario del file e il file deve avere le autorizzazioni "700" (ovvero solo il "proprietario" deve possedere le autorizzazioni di "lettura", "scrittura" ed "esecuzione"). Assicurarsi che l'utente "root" sia il "proprietario" del file di script e che solo il "proprietario" abbia le autorizzazioni di "lettura", "scrittura" ed "esecuzione".
InsufficientPermissionforPost-Script Per eseguire gli script, l'utente root deve essere il proprietario del file e il file deve avere le autorizzazioni "700" (ovvero solo il "proprietario" deve possedere le autorizzazioni di "lettura", "scrittura" ed "esecuzione"). Assicurarsi che l'utente "root" sia il "proprietario" del file di script e che solo il "proprietario" abbia le autorizzazioni di "lettura", "scrittura" ed "esecuzione".
Pre-ScriptTimeout Si è verificato il time-out dell'esecuzione dello script di pre-backup per un backup coerente della applicazioni. Controllare lo script e aumentare il timeout nel file VMSnapshotScriptPluginConfig.json disponibile all'indirizzo /etc/azure.
Post-ScriptTimeout Timeout dell'esecuzione di post-script di backup coerenti con l'applicazione. Controllare lo script e aumentare il timeout nel file VMSnapshotScriptPluginConfig.json disponibile all'indirizzo /etc/azure.

Passaggi successivi

Configurare il backup di una VM in un insieme di credenziali di Servizi di ripristino