Toepassingsconsistente back-up van Virtuele Azure Linux-machines met behulp van Azure Backup
In dit artikel wordt beschreven hoe u toepassingsconsistente back-ups van uw virtuele Linux-machines naar Azure maakt met behulp van Azure Backup. In dit artikel configureert u het scriptframework om een back-up te maken van door Azure geïmplementeerde Linux-VM's. Dit artikel bevat ook de informatie over probleemoplossing.
Wanneer u back-upmomentopnamen van VM's maakt, betekent toepassingsconsistentie dat uw toepassingen starten 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 Prescript- en postscript-framework van Linux gebruiken om toepassingsconsistente back-ups te maken. Het prescript- en postscript-framework ondersteunt door Azure Resource Manager geïmplementeerde virtuele Linux-machines. Scripts voor toepassingsconsistentie bieden geen ondersteuning voor door Service Manager geïmplementeerde virtuele machines of virtuele Windows-machines.
Hoe het framework werkt
Het framework biedt een optie voor het uitvoeren van aangepaste prescripts en postscripts tijdens het maken van VM-momentopnamen. Prescripts worden uitgevoerd vlak voordat u de momentopname van de VM maakt en postscripts worden direct uitgevoerd nadat u de momentopname van de VM 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 IOs worden stilgemaakt en inhoud in het geheugen naar de schijf wordt leeggemaakt. Deze acties zorgen ervoor dat de momentopname consistent is met de toepassing. Na scripts worden systeemeigen toepassings-API's gebruikt om de IO's te ontdooien, zodat de toepassing normale bewerkingen kan hervatten na de momentopname van de VM.
Prescript en postscript configureren voor Azure Linux-VM
Voer de volgende stappen uit om Prescript en postscript te configureren:
Meld u aan als hoofdgebruiker voor de Virtuele Linux-machine waarvoor u een back-up wilt maken.
Download vanuit GitHub VMSnapshotScriptPluginConfig.json en kopieer deze naar de map /etc/azure voor alle VM's die u wilt back-ups maken. Als de map /etc/azure niet bestaat, maakt u deze.
Kopieer het prescript en postscript voor uw toepassing op alle VM's 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.
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.
Machtiging na script '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.
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 de bewerking 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 VM 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.
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 met behulp van back-ups maken van virtuele Azure-machines naar Recovery Services-kluizen.
Probleemoplossing
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 met het uitvoeren van scripts, raadpleegt u de volgende tabel voor meer informatie.
Error | Foutbericht | Aanbevolen actie |
---|---|---|
Pre-ScriptExecutionFailed | Het prescript heeft een fout geretourneerd, zodat de back-up mogelijk niet toepassingsconsistent is. | Bekijk de foutenlogboeken 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 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 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 prescript en postscript kunnen niet worden uitgevoerd en de back-up is niet toepassingsconsistent. | Verwijder de VmSnapshotLinux-extensie en wordt automatisch opnieuw geïnstalleerd met de volgende back-up om het probleem op te lossen. |
IncorrectJSONConfigFile | Het VMSnapshotScriptPluginConfig.json-bestand 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 700 machtigingen hebben (dat wil gezegd: alleen 'eigenaar' mag de machtigingen lezen, schrijven en uitvoeren 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: alleen 'eigenaar' mag de machtigingen lezen, schrijven en uitvoeren 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 bij het uitvoeren van de toepassingsconsistente back-up. | Controleer het script en verhoog de time-out in het VMSnapshotScriptPluginConfig.json-bestand dat zich bevindt op /etc/azure. |
Post-ScriptTimeout | Er is een time-out opgetreden bij het uitvoeren van de toepassingsconsistente back-up na scripts. | Controleer het script en verhoog de time-out in het VMSnapshotScriptPluginConfig.json-bestand dat zich bevindt op /etc/azure. |