Toepassingsconsistente back-up van Azure Linux-VM’s

Wanneer u back-upmomentopnamen van uw VM's maakt, betekent toepassingsconsistentie dat uw toepassingen worden gestart wanneer de VM's worden opgestart nadat ze zijn hersteld. Zoals u zich kunt voorstellen, is toepassingsconsistentie uiterst belangrijk. Om ervoor te zorgen dat uw Linux-VM's toepassingsconsistent zijn, kunt u het linux-prescript- en postscript-framework gebruiken om toepassingsconsistente back-ups te maken. Het prescript- en postscript-framework ondersteunt virtuele Machines van Azure Resource Manager geïmplementeerde Virtuele Linux-machines. Scripts voor toepassingsconsistentie bieden geen ondersteuning voor Service Manager geïmplementeerde virtuele machines of virtuele Windows-machines.

Hoe het framework werkt

Het framework biedt een optie om aangepaste prescripts en postscripts uit te voeren terwijl u VM-momentopnamen maakt. Prescripts worden uitgevoerd vlak voordat u de vm-momentopname maakt. Na scripts worden direct na het maken van de VM-momentopname uitgevoerd. Prescripts en postscripts bieden de flexibiliteit om uw toepassing en omgeving te beheren terwijl u VM-momentopnamen maakt.

Pre-scripts roepen systeemeigen toepassings-API's aan, waarmee de IO's worden stilgeslagen en inhoud in het geheugen naar de schijf wordt leeggemaakt. Deze acties zorgen ervoor dat de momentopname toepassingsconsistent is. Postscripts maken gebruik van systeemeigen toepassings-API's om de IO's te ontdooien, waardoor de toepassing de normale bewerkingen na de VM-momentopname kan hervatten.

Stappen voor het configureren van prescript en postscript

  1. Meld u als de hoofdgebruiker aan bij de Linux-VM waar u een back-up van wilt maken.

  2. Download vanuit GitHubVMSnapshotScriptPluginConfig.json en kopieer het naar de map /etc/azure voor alle VM's waar u een back-up van wilt maken. Als de map /etc/azure niet bestaat, maakt u deze.

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

  4. Zorg voor de volgende machtigingen voor deze bestanden:

    • VMSnapshotScriptPluginConfig.json: Machtiging '600'. Alleen de hoofdgebruiker mag bijvoorbeeld de machtiging Lezen en Schrijven voor dit bestand hebben en geen enkele gebruiker mag de machtiging 'uitvoeren' hebben.

    • Prescriptbestand: Machtiging '700'. Alleen de hoofdgebruiker mag bijvoorbeeld de machtigingen lezen, schrijven en uitvoeren voor dit bestand hebben. Het bestand is naar verwachting een shellscript, maar in theorie kan dit script intern spawnen of verwijzen naar andere scripts, zoals een Python-script.

    • Na het script Machtiging '700'. Alleen de hoofdgebruiker mag bijvoorbeeld de machtigingen lezen, schrijven en uitvoeren voor dit bestand hebben. Het bestand is naar verwachting een shellscript, maar in theorie kan dit script intern spawnen of verwijzen naar andere scripts, zoals een Python-script.

    Belangrijk

    Het framework biedt gebruikers veel kracht. Beveilig het framework en zorg ervoor dat alleen de hoofdgebruiker toegang heeft tot kritieke JSON- en scriptbestanden. Als niet aan de vereisten wordt voldaan, wordt het script niet 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 zoals het is, anders werken uw scripts mogelijk niet zoals verwacht.

    • preScriptLocation: geef het volledige pad op van het prescript op de VM waarvan een back-up wordt gemaakt.

    • postScriptLocation: geef het volledige pad op van het postscript op de VM waarvan een back-up wordt 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 voorscript opnieuw moet worden geprobeerd als er een fout optreedt voordat het script wordt beëindigd. Nul betekent slechts één poging en geen nieuwe poging als er een fout optreedt.

    • postScriptNoOfRetries: stel het aantal keren in dat het script opnieuw moet worden geprobeerd als er een fout optreedt voordat het script wordt beëindigd. 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 kan 1800 zijn).

    • 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 dit instelt op false , mislukt de back-up als er een scriptfout optreedt (behalve wanneer u een VM met één schijf hebt die terugvalt op crashconsistente back-up, ongeacht deze instelling). Wanneer de waarde continueBackupOnFailure is ingesteld op false en de back-up mislukt, wordt de back-upbewerking opnieuw geprobeerd 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 VM-momentopname maakt om consistentie van het bestandssysteem te garanderen. We raden u aan deze instelling op true te houden, tenzij uw toepassing afhankelijk is van het uitschakelen van fsfreeze.

    • ScriptsExecutionPollTimeSeconds: stel de tijd in die de extensie in de slaapstand moet zetten tussen elke poll en de uitvoering van het script. Als de waarde bijvoorbeeld 2 is, controleert de extensie of de uitvoering van het pre-/postscript elke 2 seconden is voltooid. De minimum- en maximumwaarde die kan worden gebruikt, is respectievelijk 1 en 5. De waarde moet strikt een geheel getal zijn.

  6. Het scriptframework is nu geconfigureerd. Als de back-up van de VM al is geconfigureerd, roept de volgende back-up de scripts aan en wordt een toepassingsconsistente back-up geactiveerd. Als de vm-back-up niet is geconfigureerd, configureert u deze met behulp van een back-up maken van virtuele Azure-machines naar Recovery Services-kluizen.

Problemen oplossen

Zorg ervoor dat u de juiste logboekregistratie toevoegt tijdens het schrijven van uw prescript en postscript, en controleer uw scriptlogboeken om eventuele scriptproblemen op te lossen. Als u nog steeds problemen ondervindt bij het uitvoeren van scripts, raadpleegt u de volgende tabel voor meer informatie.

Fout Foutbericht Aanbevolen actie
Pre-ScriptExecutionFailed Het prescript heeft een fout geretourneerd, waardoor de back-up mogelijk niet toepassingsconsistent is. 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 foutlogboeken voor uw script om het probleem op te lossen en controleer de status van de toepassing.
Pre-ScriptNotFound Het prescript is niet gevonden op de locatie die is opgegeven in het configuratiebestand VMSnapshotScriptPluginConfig.json . Zorg ervoor dat het prescript aanwezig is op het pad dat is opgegeven in het configuratiebestand om een toepassingsconsistente back-up te garanderen.
Post-ScriptNotFound Het nascript is niet gevonden op de locatie die is opgegeven in het configuratiebestand VMSnapshotScriptPluginConfig.json . Zorg ervoor dat postscript aanwezig is op het pad dat is opgegeven in het configuratiebestand om toepassingsconsistente back-up te garanderen.
IncorrectPluginhostFile Het Pluginhost-bestand , dat wordt geleverd met de extensie VmSnapshotLinux, is beschadigd, dus pre-script en post-script kunnen niet worden uitgevoerd en de back-up is niet toepassingsconsistent. Verwijder de extensie VmSnapshotLinux . Deze wordt automatisch opnieuw geïnstalleerd met de volgende back-up om het probleem op te lossen.
IncorrectJSONConfigFile Het bestand VMSnapshotScriptPluginConfig.json is onjuist, dus 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 en moet het bestand de machtigingen '700' hebben (dat wil gezegd dat alleen 'eigenaar' machtigingen 'lezen', 'schrijven' en 'uitvoeren' moet hebben). Zorg ervoor dat de hoofdgebruiker de 'eigenaar' van het scriptbestand is en dat alleen 'eigenaar' de machtigingen lezen, schrijven en uitvoeren heeft.
InsufficientPermissionforPost-Script Voor het uitvoeren van scripts moet de hoofdgebruiker de eigenaar van het bestand zijn en moet het bestand '700'-machtigingen hebben (dat wil gezegd dat alleen 'eigenaar' machtigingen 'lezen', 'schrijven' en 'uitvoeren' moet hebben). Zorg ervoor dat de hoofdgebruiker de 'eigenaar' van het scriptbestand is en dat alleen 'eigenaar' de machtigingen lezen, schrijven en uitvoeren heeft.
Pre-ScriptTimeout Er is een time-out opgetreden voor de uitvoering van de toepassingsconsistente back-up. Controleer het script en verhoog de time-out in het bestand VMSnapshotScriptPluginConfig.json dat zich in /etc/azure bevindt.
Post-ScriptTimeout Er is een time-out opgetreden bij de uitvoering van de toepassingsconsistente back-up na het script. Controleer het script en verhoog de time-out in het bestand VMSnapshotScriptPluginConfig.json dat zich in /etc/azure bevindt.

Volgende stappen

Vm-back-up configureren naar een Recovery Services-kluis