Freigeben über


Konfigurieren der anwendungskonsistenten Sicherung für Azure Linux-VMs mit Azure Backup

In diesem Artikel wird beschrieben, wie Sie mithilfe von Azure Backup anwendungskonsistente Sicherungen für in Azure bereitgestellte Linux-VMs erstellen. Es behandelt die Konfiguration des Skript-Frameworks und die Problembehandlung.

Wenn Azure Backup einen Snapshot einer VM erstellt, stellt die Anwendungskonsistenz sicher, dass Anwendungen nach der VM-Wiederherstellung ordnungsgemäß gestartet werden. Um dies zu erreichen, verwenden Sie das Linux-Prescript- und Post-Script-Framework, das von Azure Resource Manager bereitgestellte Linux-VMs unterstützt. Diese Skripts funktionieren jedoch nicht für von Service Manager bereitgestellte oder Windows-VMs.

Wie funktioniert das Framework?

Das Framework bietet eine Option zum Ausführen von benutzerdefinierten Prescripts und Post-Scripts, während Sie VM-Snapshots erstellen. Prescripts werden kurz vor dem Erstellen des VM-Snapshots ausgeführt, und Post-Skripts werden unmittelbar nach dem Erstellen des VM-Snapshots ausgeführt. Prescripts und Post-Scripts bieten die Flexibilität, Ihre Anwendung und Umgebung zu steuern, während Sie VM-Snapshots erstellen.

Prescripts rufen native Anwendungs-APIs auf, die die E/A-Vorgänge stilllegen und In-Memory-Inhalte auf den Datenträger übertragen. Diese Aktionen stellen sicher, dass der Snapshot anwendungskonsistent ist. Post-Skripts verwenden native Anwendungs-APIs, um die E/A-Vorgänge aufzutauen, die es der Anwendung ermöglichen, den normalen Betrieb nach dem VM-Snapshot fortzusetzen.

Konfigurieren von Prescript und Post-Script für Azure Linux-VMs

Gehen Sie folgendermaßen vor, um Prescript und Post-Script zu konfigurieren:

  1. Melden Sie sich als Root-Benutzer bei der Linux-VM an, die Sie sichern möchten.

  2. Laden Sie VMSnapshotScriptPluginConfig.json von GitHub herunter, und kopieren Sie sie in den Ordner /etc/azure für alle VMs, die Sie sichern möchten. Wenn der Ordner /etc/azure nicht vorhanden ist, erstellen Sie ihn.

  3. Kopieren Sie das Prescript und das Post-Script für Ihre Anwendung auf alle VMs, die Sie sichern möchten. Sie können die Skripts an einen beliebigen Speicherort auf der VM kopieren. Achten Sie darauf, den vollständigen Pfad der Skriptdateien in der VMSnapshotScriptPluginConfig.json Datei zu aktualisieren.

  4. Um die folgenden Dateien zu verwenden, stellen Sie sicher, dass Sie über die entsprechenden Berechtigungen verfügen:

    • VMSnapshotScriptPluginConfig.json: Genehmigung 600. Beispielsweise sollte nur ein Root-Benutzer über Lese - und Schreibberechtigungen für diese Datei verfügen, und kein Benutzer sollte über Ausführungsberechtigungen verfügen.

    • Pre-Script-Datei: Berechtigung 700. Beispielsweise sollte nur der Root-Benutzerüber Lese-, Schreib- und Ausführungsberechtigungen für diese Datei verfügen. Es wird erwartet, dass die Datei ein Shellskript ist, aber theoretisch kann dieses Skript intern andere Skripte wie ein Python-Skript erzeugen oder auf diese verweisen.

    • Nachbearbeitung Erlaubnis 700. Beispielsweise sollte nur der Root-Benutzerüber Lese-, Schreib- und Ausführungsberechtigungen für diese Datei verfügen. Es wird erwartet, dass die Datei ein Shellskript ist, aber theoretisch kann dieses Skript intern andere Skripte wie ein Python-Skript erzeugen oder auf diese verweisen.

    Von Bedeutung

    Das Framework gibt den Benutzern zahlreiche Möglichkeiten. Sichern Sie das Framework, und stellen Sie sicher, dass nur Root-Benutzer Zugriff auf wichtige JSON- und Skriptdateien haben. Wenn die Anforderungen nicht erfüllt sind, wird das Skript nicht ausgeführt. Dies führt zu einem Absturz des Dateisystems und einer inkonsistenten Sicherung.

  5. Konfigurieren Sie VMSnapshotScriptPluginConfig.json entsprechend der folgenden Beschreibung:

    • pluginName: Lassen Sie dieses Feld unverändert, da die Skripts andernfalls ggf. nicht wie erwartet ausgeführt werden.

    • preScriptLocation: Geben Sie den vollständigen Pfad des Prescripts auf der VM an, die gesichert werden soll.

    • postScriptLocation: Geben Sie den vollständigen Pfad des Post-Skripts auf der VM an, die gesichert werden soll.

    • preScriptParams: Geben Sie die optionalen Parameter an, die an das Prescript übergeben werden müssen. Alle Parameter müssen in Anführungszeichen eingeschlossen werden. Trennen Sie die Parameter durch ein Komma, falls Sie mehrere Parameter verwenden.

    • postScriptParams: Geben Sie die optionalen Parameter an, die an das Post-Skript übergeben werden müssen. Alle Parameter müssen in Anführungszeichen eingeschlossen werden. Trennen Sie die Parameter durch ein Komma, falls Sie mehrere Parameter verwenden.

    • preScriptNoOfRetries: Legen Sie fest, wie oft das Prescript wiederholt werden soll, wenn vor dem Beenden ein Fehler auftritt. Null bedeutet nur einen Versuch und keine Wiederholung bei einem Fehler.

    • postScriptNoOfRetries: Hiermit legen Sie die Häufigkeit fest, mit der das Post-Skript bei einem Fehler vor seinem Abschluss wiederholt werden soll. Null bedeutet nur einen Versuch und keine Wiederholung bei einem Fehler.

    • timeoutInSeconds: Geben Sie individuelle Timeouts für das Prescript und das Post-Skript an (der Maximalwert kann 1800 sein).

    • continueBackupOnFailure: Legen Sie diesen Wert auf true fest, wenn Azure Backup auf eine dateisystemkonsistente/absturzkonsistente Sicherung zurückgreifen soll, wenn das Prescript- oder Post-Skript fehlschlägt. Wenn Sie diese Einstellung auf false festlegen, schlägt die Sicherung fehl, wenn ein Skriptfehler auftritt (es sei denn, Sie verfügen über eine VM mit einem einzelnen Datenträger, die unabhängig von dieser Einstellung auf eine absturzkonsistente Sicherung zurückgreift). Wenn der Wert continueBackupOnFailure auf FALSE festgelegt ist, wird der Sicherungsvorgang bei einem Sicherungsfehler erneut ausgeführt, und zwar basierend auf einer Wiederholungslogik im Dienst (für die festgelegte Anzahl von Versuchen).

    • fsFreezeEnabled: Geben Sie an, ob Linux fsfreeze aufgerufen werden soll, während Sie den VM-Snapshot erstellen, um die Konsistenz des Dateisystems sicherzustellen. Wir empfehlen die Beibehaltung dieser Einstellung auf TRUE, es sei denn, Ihre Anwendung ist von der Deaktivierung von „fsfreeze“ abhängig.

    • ScriptsExecutionPollTimeSeconds: Legen Sie fest, wie lange die Erweiterung zwischen Abfragen für die Skriptausführung pausieren soll. Wenn Sie den Wert beispielsweise auf „2“ festlegen, prüft die Erweiterung alle zwei Sekunden, ob die Pre-/Post-Skriptausführung abgeschlossen wurde. Der Wert muss zwischen 1 und 5 (jeweils einschließlich) liegen und eine ganze Zahl sein.

  6. Das Skriptframework ist nun konfiguriert. Wenn die VM-Sicherung bereits konfiguriert ist, ruft die nächste Sicherung die Skripts auf und löst eine anwendungskonsistente Sicherung aus. Wenn die VM-Sicherung nicht konfiguriert ist, konfigurieren Sie sie mithilfe von Sichern von virtuellen Azure-Computern in Recovery Services-Tresoren.

Behandeln von Fehlern bei anwendungskonsistenten Sicherungen von Azure Linux-VMs

Stellen Sie sicher, dass Sie beim Schreiben Ihres Prescripts und Post-Scripts eine entsprechende Protokollierung hinzufügen, und überprüfen Sie Ihre Skriptprotokolle, um Skriptprobleme zu beheben. Wenn Sie weiterhin Probleme beim Ausführen von Skripts haben, finden Sie weitere Informationen in der folgenden Tabelle.

Fehler Fehlermeldung Empfohlene Aktion
Pre-ScriptExecutionFailed Das Prescript hat einen Fehler zurückgegeben, sodass die Sicherung möglicherweise nicht anwendungskonsistent ist. Sehen Sie sich die Fehlerprotokolle für Ihr Skript an, um das Problem zu beheben.
Post-ScriptExecutionFailed Das Post-Skript hat einen Fehler zurückgegeben, der sich auf den Anwendungsstatus auswirken kann. Sehen Sie sich die Fehlerprotokolle für Ihr Skript an, um das Problem zu beheben, und überprüfen Sie den Anwendungsstatus.
Pre-ScriptNotFound Das Prescript wurde nicht an dem Speicherort gefunden, der in der VMSnapshotScriptPluginConfig.json Konfigurationsdatei angegeben ist. Stellen Sie sicher, dass prescript unter dem Pfad vorhanden ist, der in der Konfigurationsdatei angegeben ist, um eine anwendungskonsistente Sicherung sicherzustellen.
Post-ScriptNotFound Das Post-Skript wurde nicht an dem Speicherort gefunden, der in der VMSnapshotScriptPluginConfig.json Konfigurationsdatei angegeben ist. Stellen Sie sicher, dass das Post-Skript in dem Pfad vorhanden ist, der in der Konfigurationsdatei angegeben ist, um eine anwendungskonsistente Sicherung sicherzustellen.
IncorrectPluginhostDatei Die Pluginhost Datei, die mit der Erweiterung VmSnapshotLinux geliefert wird, ist beschädigt, sodass Prescript und Post-Script nicht ausgeführt werden können und die Sicherung nicht anwendungskonsistent ist. Deinstallieren Sie die VmSnapshotLinux-Erweiterung , und sie wird automatisch mit der nächsten Sicherung neu installiert, um das Problem zu beheben.
FalschJSONConfigDatei Die VMSnapshotScriptPluginConfig.json Datei ist falsch, sodass Prescript und Post-Script nicht ausgeführt werden können und die Sicherung nicht anwendungskonsistent ist. Laden Sie die Kopie von GitHub herunter, und konfigurieren Sie sie erneut.
InsufficientPermissionforPre-Script Beim Ausführen von Skripts sollte der Root-Benutzer der Besitzer der Datei sein, und die Datei sollte über 700 Berechtigungen verfügen (d. h., nur der Besitzersollte über Lese-, Schreib- und Ausführungsberechtigungen verfügen). Stellen Sie sicher, dass der Root-Benutzer der Eigentümer der Skriptdatei ist und dass nur der Besitzer über Lese -,Schreib - und Ausführungsberechtigungen verfügt.
InsufficientPermissionforPost-Script Beim Ausführen von Skripts sollte der Root-Benutzer der Besitzer der Datei sein, und die Datei sollte über 700 Berechtigungen verfügen (d. h., nur der Besitzersollte über Lese-, Schreib- und Ausführungsberechtigungen verfügen). Stellen Sie sicher, dass der Root-Benutzer der Eigentümer der Skriptdatei ist und dass nur der Besitzer über Lese -,Schreib - und Ausführungsberechtigungen verfügt.
Pre-ScriptTimeout Bei der Ausführung des Pre-Skripts für die anwendungskonsistente Sicherung kam es zu einer Zeitüberschreitung. Überprüfen Sie das Skript, und erhöhen Sie das Timeout in der VMSnapshotScriptPluginConfig.json Datei, die sich unter /etc/azure befindet.
Nach dem SkriptTimeout Bei der Ausführung der anwendungskonsistenten Backup-Postskripts kam es zu einer Zeitüberschreitung. Überprüfen Sie das Skript, und erhöhen Sie das Timeout in der VMSnapshotScriptPluginConfig.json Datei, die sich unter /etc/azure befindet.

Nächste Schritte

Konfigurieren der VM-Sicherung in einem Recovery Services-Tresor