Share via


Toepassingsconsistente back-up configureren voor Virtuele Azure Linux-machines met behulp van Azure Backup

In dit artikel wordt beschreven hoe u toepassingsconsistente back-ups maakt voor door Azure geïmplementeerde virtuele Linux-machines (VM's) met behulp van Azure Backup. Hierin wordt beschreven hoe u het scriptframework configureert en hoe u problemen kunt oplossen.

Wanneer Azure Backup een momentopname van een VIRTUELE machine maakt, zorgt toepassingsconsistentie ervoor dat toepassingen correct worden gestart na het herstellen van de VM. Gebruik het prescript- en postscript-framework van Linux, dat linux-VM's ondersteunt die zijn geïmplementeerd met Azure Resource Manager om dit gedrag te bereiken. Deze scripts werken niet voor VM's die zijn geïmplementeerd met System Center Service Manager of Windows.

Hoe werkt het framework?

Het framework biedt een optie voor het uitvoeren van aangepaste prescripts en postscripts tijdens het maken van VM-momentopnamen. Prescripts worden uitgevoerd voordat u de VM-momentopname maakt. Postscripts worden direct uitgevoerd nadat u de momentopname van de VIRTUELE machine hebt gemaakt. Prescripts en postscripts bieden de flexibiliteit om uw toepassing en omgeving te beheren terwijl u VM-momentopnamen maakt.

Prescripts roepen systeemeigen toepassings-API's aan, waardoor de I/O-activiteiten rust krijgen en de inhoud in het geheugen naar de schijf wordt geschreven. Deze acties zorgen ervoor dat de momentopname applicatieconsistent is. Postscripts gebruiken api's voor systeemeigen toepassingen om het I/Os te ontdooien, waardoor de toepassing normale bewerkingen na de momentopname van de VM kan hervatten.

Prescript en postscript configureren voor Virtuele Azure Linux-machines

Volg deze stappen om prescript en postscript te configureren:

  1. Meld u aan als hoofdgebruiker voor de Virtuele Linux-machine waarvoor u een back-up wilt maken.

  2. Download GitHubVMSnapshotScriptPluginConfig.json en kopieer het naar de map /etc/azure voor alle VM's die u wilt back-uppen. Als de map /etc/azure niet bestaat, maakt u deze.

  3. Kopieer het prescript en postscript voor uw toepassing op alle VM's waarop u een back-up wilt maken. U kunt de scripts kopiëren naar elke locatie op de virtuele machine. Zorg ervoor dat u het volledige pad van de scriptbestanden in het VMSnapshotScriptPluginConfig.json bestand bijwerkt.

  4. Als u de volgende bestanden wilt gebruiken, moet u ervoor zorgen dat u over de bijbehorende machtigingen beschikt:

    • VMSnapshotScriptPluginConfig.json: Machtiging is 600. Zo moet alleen de hoofdgebruiker lees- en schrijfmachtigingen voor dit bestand hebben en mag geen gebruiker machtigingen hebben voor het uitvoeren van machtigingen.
    • Prescript-bestand: Machtiging is 700. Alleen de hoofdgebruiker moet bijvoorbeeld lees-, schrijf- en uitvoermachtigingen voor dit bestand hebben. Het bestand is naar verwachting een shellscript, maar theoretisch kan dit script intern spawn of verwijzen naar andere scripts, zoals een Python-script.
    • Postscript: De permissie-instelling is 700. Alleen de hoofdgebruiker moet bijvoorbeeld lees-, schrijf- en uitvoermachtigingen voor dit bestand hebben. Het bestand is naar verwachting een shellscript, maar theoretisch kan dit script intern spawn of verwijzen naar andere scripts, zoals een Python-script.

    Belangrijk

    Het framework biedt gebruikers talloze bevoegdheden. Beveilig het framework en zorg ervoor dat alleen de hoofdgebruiker toegang heeft tot kritieke JSON- en scriptbestanden.

    Als niet aan de vereisten wordt voldaan, kan het script niet worden uitgevoerd, wat resulteert in een crash van het bestandssysteem en inconsistente back-up.

  5. Configureer VMSnapshotScriptPluginConfig.json zoals hier wordt beschreven:

    • pluginName: laat dit veld staan, anders werken uw scripts mogelijk niet zoals verwacht.
    • preScriptLocation: Geef het volledige pad op van het prescript op de virtuele machine waarvan een back-up moet worden gemaakt.
    • postScriptLocation: Geef het volledige pad op van het postscript op de virtuele machine waarvan een back-up moet worden gemaakt.
    • preScriptParams: Geef de optionele parameters op die moeten worden doorgegeven aan het prescript. Alle parameters moeten tussen aanhalingstekens staan. Als u meerdere parameters gebruikt, scheidt u de parameters met een komma.
    • postScriptParams: Geef de optionele parameters op die moeten worden doorgegeven aan het postscript. Alle parameters moeten tussen aanhalingstekens staan. Als u meerdere parameters gebruikt, scheidt u de parameters met een komma.
    • preScriptNoOfRetries: Stel het aantal keren in dat het prescript opnieuw moet worden geprobeerd als er een fout optreedt vóór het beëindigen. Nul betekent slechts één poging en geen nieuwe poging als er een fout optreedt.
    • postScriptNoOfRetries: Stel het aantal keren in dat het postscript opnieuw moet worden geprobeerd als er een fout optreedt vóór het beëindigen. Nul betekent slechts één poging en geen nieuwe poging als er een fout optreedt.
    • timeoutInSeconds: Geef afzonderlijke time-outs op voor het prescript en het postscript (maximumwaarde is 1800).
    • continueBackupOnFailure: Stel deze waarde in op true als u wilt dat Azure Backup terugvalt op een bestandssysteemconsistente/crashconsistente back-up als prescript of postscript mislukt. Als u deze waarde instelt op false , mislukt de back-up als er een scriptfout optreedt. (Een uitzondering is wanneer u een VM met één schijf hebt die terugvalt op crashconsistente back-up, ongeacht deze instelling.) Als de continueBackupOnFailure waarde is ingesteld op onwaar, wordt de back-upbewerking opnieuw uitgevoerd op basis van een logica voor opnieuw proberen in de service (voor het aangegeven aantal pogingen).
    • fsFreezeEnabled: Geef op of Linux fsfreeze moet worden aangeroepen terwijl u de momentopname van de VM maakt om consistentie van het bestandssysteem te garanderen. U wordt aangeraden deze instelling ingesteld te houden op waar , tenzij uw toepassing afhankelijk is van het uitschakelen fsfreeze.
    • ScriptsExecutionPollTimeSeconds: Stel de tijd in waarop de extensie moet slapen tussen elke poll en de uitvoering van het script. Als de waarde bijvoorbeeld 2 is, controleert de extensie of de prescript- of postscript-uitvoering elke 2 seconden is voltooid. De minimum- en maximumwaarde die het kan aannemen, zijn respectievelijk 1 en 5. De waarde moet strikt een geheel getal zijn.
  6. Het scriptframework is nu geconfigureerd. Als de VM-back-up al is geconfigureerd, roept de volgende back-up de scripts aan en activeert de toepassingsconsistente back-up. Als de vm-back-up niet is geconfigureerd, configureert u deze door de stappen in Back-up maken van virtuele Azure-machines naar Recovery Services-kluizen uit te voeren.

Problemen met back-upfouten in Azure Linux VM-toepassingen oplossen

Zorg ervoor dat u de juiste logboekregistratie toevoegt terwijl u het prescript en postscript schrijft. Controleer uw scriptlogboeken om eventuele scriptproblemen op te lossen. Als u nog steeds problemen ondervindt met het uitvoeren van scripts, raadpleegt u de volgende tabel.

Fout Foutmelding Aanbevolen actie
Pre-ScriptExecutionFailed Het prescript heeft een fout geretourneerd, zodat de back-up mogelijk niet consistent is met de toepassing. Bekijk de foutlogboeken voor uw script om het probleem op te lossen.
Post-ScriptExecutionFailed Het postscript heeft een fout geretourneerd die van invloed kan zijn op de toepassingsstatus. Bekijk de foutenlogboeken voor uw script om het probleem op te lossen en controleer de toepassingsstatus.
Pre-ScriptNotFound Het prescript is niet gevonden op de locatie die is opgegeven in het VMSnapshotScriptPluginConfig.json configuratiebestand. Zorg ervoor dat het prescript aanwezig is op het pad dat is opgegeven in het configuratiebestand om toepassingsconsistente back-up te garanderen.
Post-ScriptNotFound Het postscript is niet gevonden op de locatie die is opgegeven in het VMSnapshotScriptPluginConfig.json configuratiebestand. Zorg ervoor dat het postscript aanwezig is op het pad dat is opgegeven in het configuratiebestand om toepassingsconsistente back-up te garanderen.
IncorrectPluginhostFile Het Pluginhost bestand, dat bij de VmSnapshotLinux extensie wordt geleverd, is beschadigd, dus het prescript en postscript kunnen niet worden uitgevoerd en de back-up is niet toepassingsconsistent. Verwijder de VmSnapshotLinux extensie. Het wordt automatisch opnieuw geïnstalleerd met de volgende back-up om het probleem op te lossen.
IncorrectJSONConfigFile Het VMSnapshotScriptPluginConfig.json-bestand is onjuist, dus het prescript en postscript kunnen niet worden uitgevoerd en de back-up is niet toepassingsconsistent. Download de kopie van GitHub en configureer deze opnieuw.
InsufficientPermissionforPre-Script Voor het uitvoeren van scripts moet de hoofdgebruiker de eigenaar van het bestand zijn. Het bestand moet 700 machtigingen hebben. (Dat wil gezegd, alleen de eigenaar moet lees-, schrijf- en uitvoermachtigingen hebben.) Zorg ervoor dat de hoofdgebruiker de eigenaar is van het scriptbestand en dat alleen de eigenaar lees-, schrijf- en uitvoermachtigingen heeft.
InsufficientPermissionforPost-Script Voor het uitvoeren van scripts moet de hoofdgebruiker de eigenaar van het bestand zijn. Het bestand moet 700 machtigingen hebben. (Dat wil gezegd, alleen de eigenaar moet lees-, schrijf- en uitvoermachtigingen hebben.) Zorg ervoor dat de hoofdgebruiker de eigenaar is van het scriptbestand en dat alleen de eigenaar lees-, schrijf- en uitvoermachtigingen heeft.
Pre-ScriptTimeout Er is een time-out opgetreden bij het uitvoeren van het prescript voor een toepassingsconsistente back-up. Controleer het script en verhoog de time-out in het VMSnapshotScriptPluginConfig.json bestand op /etc/azure.
Post-ScriptTimeout Er is een time-out opgetreden bij het uitvoeren van de postscript voor toepassingsconsistente back-ups. Controleer het script en verhoog de time-out in het VMSnapshotScriptPluginConfig.json bestand op /etc/azure.