13Jul

Wiederherstellen von Citrix-Xen-VMs mit Xen-Phoenix( Bash)

click fraud protection

Hatten Sie jemals die Notwendigkeit, Ihre Citrix-Xen-VMs für eine Disaster Recovery-Lösung( DR) im Massenbetrieb wiederherzustellen oder einfach zu testen, ob Ihre Sicherungen funktionieren? HTG erläutert, wie Xen-Phoenix, ein freies Bash-Skript, für die Wiederherstellung von VMs verwendet wird.

Bildnachweis: Ryan McCurdy über Compfight cc

Wie wir in "So sichern Sie Citrix Xen VMs kostenlos mit Xen-pocalypse" erwähnt haben, ist eines der schönen Dinge in Citrix Xen, dass viele seiner Funktionen kostenlos sindaufladen. Wenn Sie die Funktion "Automatisierte VM-Sicherung und -Wiederherstellung" möchten, müssen Sie mit der Zahlung der Lizenz "Advance" beginnen. Es ist nicht so, dass wir bei HTG den Wert einer echten Backup-Lösung ablehnen, aber wenn Sie ein knappes Budget haben, haben Sie bereits die VM-Images aus dem Hypervisor entfernt und benötigen eine Möglichkeit, Ihre "Test-Restore "/" DR-Refresh "-Verfahren, könnte Xen-Phoenix eine durchaus vernünftige Lösung sein, bevor Sie die Budgetverpflichtung eingehen.

instagram viewer

Überblick

Der "Anwendungsfall": Sie haben einige VMs, die eine Wiederherstellung erfordern. Der Import in "Xen Center" mit der rechten Maustaste funktioniert zwar, aber Sie möchten, dass dieser Prozess automatisch und nach einem Zeitplan abläuft. Dieses Bash-Skript verwendet den Befehl "XE", um seine Aufgaben auszuführen. XE ist die Xen-Befehlszeilenschnittstelle( Command Line Interface, CLI), eine automatische Entsprechung für die Ausgabe der "richtigen Klicks" im "Xen Center".Wir werden das Skript von Cron aufrufen, das den "Planungs" -Teil liefern wird. In seiner einfachsten Form ist der Wiederherstellungsablauf wie folgt:

  • löschen alle * zuvor vorhandenen VMs auf dem Server
  • Importieren Sie VMs aus Dateien am Sicherungsspeicherort.
  • Überprüfen Sie, ob alle VMs betriebsbereit sind, indem Sie sie nacheinander aktivieren und nach dem Heartbeat der Gastwerkzeuge suchen.
  • Schalten Sie VMs aus, wenn ein Heartbeat erkannt wurde oder ein Timeout erreicht wurde.

* Das Verhalten zum Löschen aller VMs kann vollständig deaktiviert werden und unterstützt Ausnahmen( siehe unten).

Lasst uns knacken:)

Erhalte das Skript

Xen-Phönix kann mit den regulären Git-Methoden frei von GitHub erhalten werden. Wenn Sie noch nicht mit Git vertraut sind, können Sie die Zip-Datei mit diesem Link abrufen. Da das Skript auf einem Ihrer Xen-Server ausgeführt werden muss, sollten Sie es dort extrahieren, damit die Ausführungsberechtigungen erhalten bleiben.

wget https: //github.com/aviadra/ Xen-phoenix /archive/ master.zip
entpacken master

Während das obige Verfahren funktioniert, sollten Sie die GIT-Methode verwenden, damit Sie von zukünftigen Updates profitieren können.

Der Exportort

Wir müssen konfigurieren, von wo aus die VM-Exporte ausgeführt werden sollen.

Während ich zufällig in Citrix Xen stoße, habe ich festgestellt, dass die Speicherrepositorys( SRs) für die Verwendung unter "/var/run/ sr-mount /% UUID%" verfügbar sind, wobei UUID der eindeutige Bezeichner des SR ist, der von derGUI.

Dies bedeutet, dass wir den regulären "Next - & gt;Nächstes - & gt;Beenden Sie den "Assistenten", um das "mount" an dem gewünschten Speicherort zu erstellen, und lassen Sie dann das Skript diesen Pfad verwenden( um das Problem mit dem Mounten über die Befehlszeile zu lösen, was den Rahmen dieses Handbuchs sprengen würde).

Um ein neues "mount" zu erstellen, klicken Sie mit der rechten Maustaste auf den Servernamen und wählen Sie New SR.

In diesem Beispiel zeigen wir Xen auf eine Windows-Freigabe. Wählen Sie daher "Windows File Sharing( CIFS)":

Schließen Sie das Next - & gt;Nächstes - & gt;Fertig.

Beziehen Sie die UUID des SRs

Um die UUID eines SR zu erhalten, klicken Sie einfach auf den Namen des SR im Xen Center und gehen Sie zur Registerkarte "Allgemein".

Um die UUID zu kopieren, klicken Sie mit der rechten Maustaste darauf und wählen Sie "Kopieren".

Mit diesen Informationen können Sie die Einstellungsdatei bearbeiten.

Konfigurieren der Einstellungsdatei

Das Xen-Phoenix-Projekt wird mit einer Dateivorlage für "Einstellungen" ausgeliefert. Diese Vorlage sollte entsprechend Ihrer Konfiguration bearbeitet und als erstes Argument an das Skript übergeben werden.

Die Einstellungsdatei bezeichnet Folgendes:

  • Der Speicherort der Quelltexte - Wenn Sie dem Leitfaden bis zu diesem Punkt gefolgt sind, müssen Sie nur die% UUID% durch die SR ersetzen, wie sie von oben erhalten wurde.
  • Der Speicherort von SendEmail - Wenn Sie sich für die Aktivierung von Email entschieden haben, müssen Sie hier angeben, wo Sie die Perl-Programmdatei extrahiert haben.
  • Verifier - Dies steuert die Überprüfung nach der Wiederherstellung. Dies ist standardmäßig aktiviert, da eine erfolgreiche "Wiederherstellung auf Dateiebene" nicht notwendigerweise eine funktionsfähige VM bedeutet.
  • Server_prep - Dies steuert die --Vorlöschung aller VMs auf dem DR-Server. Dies ist standardmäßig aktiviert, da angenommen wird, dass der DR-Server zu diesem Zweck ein dedizierter Server ist. Wenn Sie möchten, dass eine VM, die auf diesem Server ausgeführt wird, nicht gelöscht wird, konfigurieren Sie sie so, dass sie ausgeschlossen wird. Wenn dieses Verhalten für Ihre Situation nicht geeignet ist, deaktivieren Sie es einfach vollständig.
  • E-Mail-Details - Wenn Sie die E-Mail-Funktion aktiviert haben, müssen Sie wiederum folgende Details definieren: An, Von, Servername / IP &etc'.
  • Debugging - Standardmäßig wird das Debugging mit dem Wert "0"( Null) deaktiviert. Sie sollten dies nicht aktivieren müssen, aber wenn Sie dies tun, werden weitere Informationen im Abschnitt zur Fehlerbehebung aufgeführt.

Ausführung

Dieses Skript verwendet die Einstellungsdatei als erstes Argument und alle anderen Argumente als "Chevrons", nach denen gesucht werden soll( durch Leerzeichen getrennt).Chevrons sind "Strings", die reguläre Ausdrücke unterstützen, die mindestens einen Teil des gewünschten Dateinamens des VM-Exports darstellen.

Das heißt, in seiner einfachsten Form würde ein Aufruf von Xen-Phönix folgendermaßen aussehen:

. /Xen-phoenix.sh settings.cfg DevTools

Wo im obigen Fall befinden wir uns innerhalb des Verzeichnisses, das das Skript &Die Einstellungsdatei und das "Chevron", nach dem das Skript suchen soll, ist "DevTools".Dadurch werden alle Dateien im Exportverzeichnis mit der Zeichenfolge "DevTools" in ihrem Namen importiert.

Ein komplexeres Beispiel kann folgendermaßen aussehen:

. /Xen-phoenix.sh settings.cfg [Aa] [Dd] [Bb] [iI] [Dd] ev [Tt] ools

Wo im obigen Beispiel Dateien mitdas Wort "Devtools", das mit einem Großbuchstabe "D" und "T" oder nicht-Kapital geschrieben wird, sowie "AD" &"BI" mit oder ohne Großschreibung wird importiert.

Scheduling

Wie bereits erwähnt, verwenden wir Cron, um die Ausführung zu planen. Bevor wir in die Konfiguration gehen, ist es sehr zu empfehlen, zu konfigurieren, dass Sie das bereits installierte SSMTP-Paket auf Ihrem Xen-Server konfigurieren. Dies ist zwar ein optionaler Schritt, Sie erhalten jedoch einen "Rückspül" -Sammler. Wenn Sie einen solchen "Rückspülkollektor" haben, werden Sie möglicherweise auf Dinge hingewiesen, die das Skript nicht kann.

Geben Sie den Bearbeitungsmodus von cron ein, indem Sie Folgendes ausgeben:

crontab -e

Wenn Sie die obigen Anweisungen befolgt haben und für Sonntag um 01:31 Uhr eine geplante Sicherung hinzufügen möchten, geben Sie Folgendes ein:

31 01 * *Sonne /root/ Xen-Phoenix-Meister / Xen-phoenix.sh /root/ Xen-Phoenix-Meister / settings.cfg [Aa] [Dd] DB [Bb] [Ii] [Dd] ev [Tt] ools

Das oben genannte ist richtig anzunehmenIhr Skript und Ihre Einstellungsdatei befinden sich beide unter "/root/ Xen-phoenix-master /".

SendEmail erhalten( optional)

Wir haben in der Vergangenheit über das Programm SendEmail perl geschrieben, daher brauchen Sie hier nicht zu wiederholen. Es genügt zu sagen, dass es unter Linux genauso funktioniert wie unter Windows.

Während das Aktivieren von E-Mails optional ist, wird es dringend empfohlen, da das Skript dann in der Lage ist:

  • Sie zu informieren, wenn es gestartet wurde &fertig laufen.
  • Warnt Sie vor Fehlern, die es erkennen und behandeln konnte.

Laden Sie es auf den Xen-Server herunter und extrahieren Sie es.

wget http: //caspian.dotconf.net/menu/Software/SendEmail/ sendEmail-v1.56.tar.gz
tar xvzhf sendEmail-v1.56.tar.gz

Notieren Sie sich den Speicherort, an den Sie ihn extrahiert haben. Sie werden es für die Einstellungsdatei benötigen.

Definieren des Tags "Delete Exception"( optional)

Xen-Phoenix nimmt eine Seite von seinem Vorgänger( Xen-Pocalypse) und gibt Ihnen die Möglichkeit, eine VM von der systemweiten Löschung mithilfe einer Kontroll-TAG granular auszuschließen. Um dies zu tun, müssen Sie ein neues "Benutzerdefiniertes Feld" definieren.

Öffnen Sie dazu die Eigenschaften des Servers oder sogar einer VM.Wählen Sie im Navigationsbereich "Benutzerdefinierte Felder".

Wenn Sie zum ersten Mal ein "benutzerdefiniertes Feld" definieren( wie im obigen Beispiel), haben Sie nicht das Feld "Phoenix_keeper", in das Sie Daten eingeben können. Sie müssen es also erstellen. Klicken Sie dazu im erscheinenden Dialogfenster auf "Benutzerdefinierte Felder bearbeiten" und dann auf "Hinzufügen. ..".

Erstellen Sie ein Feld "Text" mit dem Namen "Phoenix_keeper".

Hinweis: Der Name des benutzerdefinierten Felds wurde im Skript "fest codiert", sodass Sie NICHT von der obigen Schreibweise abweichen dürfen, es sei denn, Sie ändern den entsprechenden Code ebenfalls.

Sobald das Feld erstellt wurde, sollten Sie folgendes sehen:

Schließen Sie das Fenster. Sie sollten jetzt das Feld "Phoenix_keeper" ausfüllen, wie im Bild unten gezeigt.

Nun musst du nur noch dieses Feld mit einer Bemerkung füllen( jede Bemerkung wird es tun), was Xen-Phoenix dazu bringt, es beim Löschen zu überspringen.

Fehlerbehebung

Während ich viel Mühe darauf verwendet habe, das Skript so einfach und so kinderleicht wie möglich zu machen, "ist die Welt ein größeres Labor".Die folgenden Informationen können Ihnen helfen festzustellen, was die Ursache Ihrer Probleme ist.

Protokollierung

Die gesamte Protokollierung wird vom Xen-Host erfasst, der das Skript im Syslog-Mechanismus ausführt. Dies kann natürlich mit angezeigt werden:

less + F /var/log/ Meldungen

Sie suchen das Schlüsselwort "Xen-Phoenix".

Hinweis: Citrix hat eine Aufbewahrungsrichtlinie für zwei( 2) Tage für Syslog seiner Server festgelegt. Vielleicht möchten Sie dies für postmortems berücksichtigen.

Debugging

Wie im Einstellungsdateisegment angegeben, gibt es eine Direktive, um das Debugging zu aktivieren. Das Aktivieren des Debuggens führt dazu, dass das Skript eine ausführliche Protokollierung an der Konsole ausgibt und es kastriert, keine E-Mails zu senden und die Importe tatsächlich auszuführen, sofern nicht die entsprechenden Flags ebenfalls festgelegt sind. Die möglichen Flags werden in der Einstellungsdateivorlage notiert und ermöglichen es Ihnen, detailliert festzulegen, was Sie debuggen möchten.

Es ist meine Hoffnung, dass du kein Debuggen benötigt hast und du erntest die Früchte meiner Arbeit:)

Denk nur an all die Armut, den Hass und die Lügen, und stell dir vor die Zerstörung von allem, was du verachtest. Langsam aus der Asche wird der Phönix entstehen. ..