Toepassingsconsistente back-up van virtuele Azure Linux-machines onderzoeken

Voltooid

Wanneer u back-upmomentopnamen van uw virtuele machines uitvoert, betekent toepassingsconsistentie dat uw toepassingen moeten kunnen starten wanneer de virtuele machines worden opgestart nadat ze zijn hersteld. In virtuele Windows-machines zijn momentopnamen afhankelijk van VSS om toepassingsconsistentie te vergemakkelijken. Voor virtuele Linux-machines kunt u het prescript- en postscriptframework van Linux gebruiken om toepassingsconsistente back-ups uit te voeren.

Het framework biedt een optie om aangepaste prescripts en postscripts uit te voeren terwijl u momentopnamen van virtuele machines maakt. Prescripts worden uitgevoerd vlak voordat u de momentopname van de virtuele machine maakt en postscripts worden direct uitgevoerd nadat u de momentopname van de virtuele machine hebt gemaakt.

Prescripts roepen systeemeigen toepassings-API's aan, die de IOS's stilmaken en inhoud in het geheugen naar de schijf leegmaken. Deze acties zorgen ervoor dat de momentopname consistent is met de toepassing. Na scripts worden systeemeigen toepassings-API's gebruikt om de IOs te ontdooien, zodat de toepassing normale bewerkingen kan hervatten na de momentopname van de virtuele machine.

Prescript en postscript configureren

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

  2. Download VMSnapshotScriptPluginConfig.json van GitHub en kopieer deze naar de map /etc/azure van alle virtuele machines waarvan u een back-up wilt maken. Als de /etc/azure-directory niet bestaat, maakt u deze.

  3. Kopieer het prescript en postscript voor uw toepassing naar alle virtuele machines waarvoor 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. Zorg ervoor dat de volgende machtigingen voor deze bestanden zijn:

    • VMSnapshotScriptPluginConfig.json: Machtiging '600'. Zo moet alleen de gebruiker 'hoofd' machtigingen voor lezen en schrijven voor dit bestand hebben en mag geen gebruiker machtigingen voor uitvoeren hebben.

    • Prescriptbestand: Machtiging '700'. Zo moet alleen de gebruiker 'root' de machtigingen lezen, schrijven en uitvoeren 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: Machtiging '700'. Zo moet alleen de gebruiker 'root' de machtigingen lezen, schrijven en uitvoeren 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 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 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 wordt gemaakt.

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

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

    • ScriptsExecutionPollTimeSeconds: Stel de tijd in waarop de extensie moet worden geslapen tussen elke poll en de uitvoering van het script. Als de waarde bijvoorbeeld 2 is, controleert de extensie of de uitvoering van het script vóór/na elke 2 seconden is voltooid. De minimum- en maximumwaarde die het kan duren, 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 virtuele machine al is geconfigureerd, roept de volgende back-up de scripts aan en activeert de toepassingsconsistente back-up. Als de back-up van de virtuele machine niet is geconfigureerd, configureert u deze door back-ups te maken van virtuele Azure-machines naar Recovery Services-kluizen.