Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel wird beschrieben, wie Sie anwendungskonsensige Sicherungen für von Azure bereitgestellte virtuelle Linux-Computer (VMs) mithilfe von Azure Backup erstellen. Es befasst sich mit der Konfiguration des Skriptframeworks und der Problembehandlung.
Wenn Azure Backup eine Momentaufnahme eines virtuellen Computers erstellt, stellt die Anwendungskonsistenz sicher, dass Anwendungen nach der Wiederherstellung des virtuellen Computers ordnungsgemäß gestartet werden. Um dieses Verhalten zu erreichen, verwenden Sie das Linux-Präscript- und Postscript-Framework, das Linux-VMs unterstützt, die mit Azure Resource Manager bereitgestellt werden. Diese Skripts funktionieren nicht für VMs, die mit System Center Service Manager oder Windows bereitgestellt werden.
Wie funktioniert das Framework?
Das Framework bietet die Möglichkeit, benutzerdefinierte Vorskripte und Nachskripte auszuführen, während Sie VM-Momentaufnahmen erstellen. Vorskripte werden ausgeführt, bevor Sie die VM-Momentaufnahme erstellen. Postscripts werden unmittelbar nach dem Erstellen der VM-Momentaufnahme ausgeführt. Prä- und Postskripts ermöglichen es Ihnen, Ihre Anwendung und Umgebung beim Erstellen von VM-Momentaufnahmen flexibel zu steuern.
Präskripts rufen APIs nativer Anwendungen auf, mit denen die E/A-Vorgänge stillgelegt werden und der Arbeitsspeicherinhalt auf den Datenträger geleert wird. Diese Aktionen stellen sicher, dass die Momentaufnahme anwendungskonsensiert ist. Postscripts verwenden systemeigene Anwendungs-APIs, um die I/Os aufzutauen, wodurch die Anwendung normale Vorgänge nach der VM-Momentaufnahme fortsetzen kann.
Konfigurieren von Präscript und Postscript für Azure Linux-VMs
Führen Sie die folgenden Schritte aus, um präscript und postscript zu konfigurieren:
Melden Sie sich bei der zu sichernden Linux-VM als Root-Benutzer an.
Laden Sie von GitHubVMSnapshotScriptPluginConfig.json herunter, und kopieren Sie sie in den Ordner "/etc/azure" für alle virtuellen Computer, die Sie sichern möchten. Erstellen Sie den Ordner /etc/azure, falls er nicht vorhanden ist.
Kopieren Sie das Präskript und Postskript für Ihre Anwendung auf alle zu sichernden VMs. Sie können die Skripts in einem beliebigen Speicherort auf der VM kopieren. In der Datei VMSnapshotScriptPluginConfig.json müssen Sie den vollständigen Pfad der Skriptdateien aktualisieren.
Um die folgenden Dateien zu verwenden, stellen Sie sicher, dass Sie über die entsprechenden Berechtigungen verfügen:
- VMSnapshotScriptPluginConfig.json: Berechtigung ist 600. Beispielsweise sollte nur der Stammbenutzer Über Lese- und Schreibberechtigungen für diese Datei verfügen, und kein Benutzer sollte über Ausführungsberechtigungen verfügen.
- Präscriptdatei: Berechtigung ist 700. Beispielsweise sollte nur der Stammbenutzer Ü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, starten oder auf diese verweisen.
- Postscript: Berechtigung ist 700. Beispielsweise sollte nur der Stammbenutzer Ü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, starten oder auf diese verweisen.
Von Bedeutung
Das Framework bietet Benutzern zahlreiche Befugnisse. Sichern Sie das Framework, und stellen Sie sicher, dass nur der Stammbenutzer Zugriff auf kritische JSON- und Skriptdateien hat.
Wenn die Anforderungen nicht erfüllt sind, kann das Skript nicht ausgeführt werden, was zu einem Absturz des Dateisystems und einer inkonsistenten Sicherung führt.
Konfigurieren Sie VMSnapshotScriptPluginConfig.json entsprechend der folgenden Beschreibung:
-
pluginName: Lassen Sie dieses Feld unverändert, da Ihre Skripte sonst möglicherweise nicht wie erwartet funktionieren. -
preScriptLocation: Geben Sie den vollständigen Pfad des Skripts auf der zu sichernden virtuellen Maschine an. -
postScriptLocation: Geben Sie den vollständigen Pfad des Postscripts auf dem virtuellen Computer an, der gesichert werden soll. -
preScriptParams: Geben Sie die optionalen Parameter an, die an das Präscript übergeben werden müssen. Alle Parameter müssen in Anführungszeichen stehen. Trennen Sie die Parameter durch ein Komma, falls Sie mehrere Parameter verwenden. -
postScriptParams: Geben Sie die optionalen Parameter an, die an das Postscript übergeben werden müssen. Alle Parameter müssen in Anführungszeichen stehen. Trennen Sie die Parameter durch ein Komma, falls Sie mehrere Parameter verwenden. -
preScriptNoOfRetries: Legen Sie fest, wie oft die Vorschreibung wiederholt werden soll, wenn vor dem Beenden ein Fehler auftritt. Null bedeutet nur einen Versuch und keinen Wiederholungsversuch, wenn ein Fehler auftritt. -
postScriptNoOfRetries: Legen Sie fest, wie oft das Postscript wiederholt werden soll, wenn vor dem Beenden ein Fehler auftritt. Null bedeutet nur einen Versuch und keinen Wiederholungsversuch, wenn ein Fehler auftritt. -
timeoutInSeconds: Geben Sie einzelne Timeouts für das Präscript und das Postscript an (Maximalwert ist 1800). -
continueBackupOnFailure: Legen Sie diesen Wert auf true fest, wenn Azure Backup auf eine dateisystemkonsistente/absturzsichere Sicherung zurückgreifen soll, wenn das vorherige oder nachfolgende Skript fehlschlägt. Wenn Sie diesen Wert auf "false " festlegen, schlägt die Sicherung fehl, wenn ein Skriptfehler auftritt. (Eine Ausnahme liegt vor, wenn eine VM mit einem einzelnen Datenträger unabhängig von dieser Einstellung auf die absturzkonsistente Sicherung zurückgesetzt wird.) Wenn der WertcontinueBackupOnFailureauf 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 Linuxfsfreezeaufgerufen werden soll, während Sie die VM-Momentaufnahme erstellen, um die Dateisystemkonsistenz sicherzustellen. Es wird empfohlen, diese Einstellung auf "true " festzulegen, es sei denn, Ihre Anwendung ist von der Deaktivierungfsfreezeabhängig. -
ScriptsExecutionPollTimeSeconds: Legen Sie fest, wie lange die Erweiterung zwischen Abfragen für die Skriptausführung pausieren soll. Wenn der Wert beispielsweise 2 ist, überprüft die Erweiterung, ob die Vorskript- oder Nachskriptausführung alle 2 Sekunden abgeschlossen wird. Der mindeste und maximal zulässige Wert beträgt 1 bzw. 5. und eine ganze Zahl sein.
-
Das Skriptframework ist nun konfiguriert. Wenn die VM-Sicherung bereits konfiguriert ist, werden bei der nächsten Sicherung die Skripts aufgerufen und eine anwendungskonsistente Sicherung ausgelöst. Wenn die VM-Sicherung nicht konfiguriert ist, konfigurieren Sie sie, indem Sie die Schritte in Azure-VMs in den Recovery Services-Tresoren sichern. befolgen.
Behandeln von Fehlern bei anwendungskonsistenten Sicherungen von Azure Linux-VMs
Stellen Sie sicher, dass Sie eine angemessene Protokollierung einfügen, während Sie das Vorskript und Nachskript schreiben. Überprüfen Sie Ihre Skriptprotokolle, um Skriptprobleme zu beheben. Wenn weiterhin Probleme beim Ausführen von Skripts auftreten, lesen Sie die folgende Tabelle.
| Fehler | Fehlermeldung | Empfohlene Aktion |
|---|---|---|
Pre-ScriptExecutionFailed |
Das Vorskript hat einen Fehler zurückgegeben, sodass die Sicherung möglicherweise nicht anwendungskonsistent ist. | Untersuchen Sie die Fehlerprotokolle des Skripts, um das Problem zu beheben. |
Post-ScriptExecutionFailed |
Der PostScript gab einen Fehler zurück, der sich auf den Anwendungszustand 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 Präscript wurde nicht an dem Speicherort gefunden, der in der konfigurationsdatei VMSnapshotScriptPluginConfig.json angegeben ist. | Stellen Sie sicher, dass das Präscript im Pfad vorhanden ist, der in der Konfigurationsdatei angegeben wurde, um eine anwendungskonsensierte Sicherung sicherzustellen. |
Post-ScriptNotFound |
Der Postskript wurde am Speicherort, der in der Konfigurationsdatei VMSnapshotScriptPluginConfig.json angegeben wurde, nicht gefunden. | Stellen Sie sicher, dass das Postscript im Pfad vorhanden ist, der in der Konfigurationsdatei angegeben wurde, um eine anwendungskonsensierte Sicherung sicherzustellen. |
IncorrectPluginhostFile |
Die Pluginhost Datei, die mit der VmSnapshotLinux Erweiterung enthalten ist, ist beschädigt, sodass das Vorskript und das Nachskript nicht ausgeführt werden können und die Sicherung nicht anwendungskonsistent ist. |
Deinstallieren Sie die VmSnapshotLinux Erweiterung. Es wird automatisch mit der nächsten Sicherung neu installiert, um das Problem zu beheben. |
IncorrectJSONConfigFile |
Die Datei "VMSnapshotScriptPluginConfig.json" ist ungültig, sodass das Präskript und Postskript 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 |
Für die Ausführung von Skripts sollte der Stammbenutzer der Besitzer der Datei sein. Die Datei sollte über 700 Berechtigungen verfügen. (Das heißt, nur der Besitzer sollte Über Lese-, Schreib- und Ausführungsberechtigungen verfügen.) | Stellen Sie sicher, dass der Stammbenutzer der Besitzer der Skriptdatei ist und nur über Lese-, Schreib- und Ausführungsberechtigungen verfügt. |
InsufficientPermissionforPost-Script |
Für die Ausführung von Skripts sollte der Stammbenutzer der Besitzer der Datei sein. Die Datei sollte über 700 Berechtigungen verfügen. (Das heißt, nur der Besitzer sollte Über Lese-, Schreib- und Ausführungsberechtigungen verfügen.) | Stellen Sie sicher, dass der Stammbenutzer der Besitzer der Skriptdatei ist und nur über Lese-, Schreib- und Ausführungsberechtigungen verfügt. |
Pre-ScriptTimeout |
Bei Ausführung des Präskripts für eine anwendungskonsistente Sicherung ist ein Timeout aufgetreten. | Überprüfen Sie das Skript, und erhöhen Sie das Timeout in der VMSnapshotScriptPluginConfig.json Datei unter /etc/azure. |
Post-ScriptTimeout |
Bei Ausführung des Postskripts für eine anwendungskonsistente Sicherung ist ein Timeout aufgetreten. | Überprüfen Sie das Skript, und erhöhen Sie das Timeout in der VMSnapshotScriptPluginConfig.json Datei unter /etc/azure. |