Wiederherstellen von Citrix-Xen-VMs mit Xen-Phoenix (Bash)
Hatten Sie schon einmal die Notwendigkeit, Ihre Citrix-Xen-VMs für eine Notfallwiederherstellungslösung (DR) massiv wiederherzustellen oder nur zu testen, ob Ihre Sicherungen funktionieren? HTG erläutert, wie Sie Xen-Phoenix, ein kostenloses Bash-Skript, für die VM-Wiederherstellung verwenden.
Bildnachweis: Ryan McCurdy über Compfight cc
Wie wir bereits unter „So sichern Sie Citrix Xen-VMs kostenlos mit Xen-Pocalypse“ erwähnt haben, ist eine der schönen Eigenschaften von Citrix Xen, dass viele seiner Funktionen darin bestehen kostenlos kostenlos. Wenn Sie jedoch die Funktion "Automatischer Schutz und Wiederherstellung von VMs" wünschen, müssen Sie für die "Advance" -Lizenz bezahlen. Es ist auch nicht so, dass wir bei HTG den Wert einer echten Sicherungslösung ablehnen, aber wenn Sie nur über ein begrenztes Budget verfügen, haben Sie die VM-Images bereits aus dem Hypervisor herausgeholt und benötigen eine Möglichkeit, Ihr System zu automatisieren. Wenn Sie die Wiederherstellungsprozedur „/ Restore“ / „DR Refresh“ durchführen, können Sie Xen-Phoenix als absolut vernünftige Lösung betrachten, bevor Sie die Mittelbindung vornehmen.
Überblick
Der "Anwendungsfall": Es gibt einige VMs, die eine Wiederherstellung erfordern. Das Importieren in „Xen Center“ mit Rechtsklicks funktioniert in Ordnung, aber Sie möchten, dass dieser Vorgang automatisch und nach einem Zeitplan ausgeführt wird. Dieses Bash-Skript verwendet den Befehl "XE", um seine Aufgaben auszuführen. XE ist die Xen-Befehlszeilenschnittstelle (CLI), ein automatisches Äquivalent für die Ausgabe von „Rechtsklicks“ im „Xen Center“. Wir rufen das Skript von Cron an, das den Teil "Scheduling" bereitstellt. In seiner einfachsten Form lautet der Wiederherstellungsfluss:
- Löschen alle * zuvor auf dem Server vorhandenen VMs
- Importieren Sie VMs aus Dateien am Sicherungsspeicherort.
- Stellen Sie sicher, dass alle VMs funktionsfähig sind, indem Sie sie einzeln aktivieren und nach dem Takt der Gast-Tools suchen.
- Schalten Sie VMs aus, wenn ein Heartbeat entdeckt wurde oder ein Timeout erreicht wurde.
* Das Verhalten zum Löschen aller VMs kann vollständig deaktiviert werden und unterstützt Ausnahmen (siehe unten)..
Lass uns knacken :)
Erhalten Sie das Skript
Xen-Phoenix kann unter Verwendung der üblichen Git-Methoden frei von Github bezogen werden. Wenn Sie sich mit git noch nicht auskennen, können Sie die zip-Datei mit diesem Link verwenden. 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
Master entpacken
Während die obigen Ausführungen funktionieren, wird empfohlen, die GIT-Methode zu verwenden, damit Sie von zukünftigen Updates profitieren können.
Der Exportstandort
Wir müssen konfigurieren, woher die VM-Exporte genommen werden sollen.
Während ich in Citrix Xen nach dem Zufallsprinzip herumspielte, habe ich festgestellt, dass die Speicher-Repositorys (SRs) unter „/ var / run / sr-mount /% UUID%“ verfügbar sind, wobei UUID der eindeutige Bezeichner des SR ist von der GUI erhalten.
Dies bedeutet, dass wir den regulären Assistenten "Next -> Next -> Finish" verwenden können, um das "mount" am gewünschten Backup-Speicherort zu erstellen. Anschließend kann das Skript diesen Pfad verwenden (wie es beim Anhängen von der Befehlszeile aus mit dem Mounting verbunden ist) über den Rahmen dieses Leitfadens hinaus).
Um ein neues „Mount“ zu erstellen, klicken Sie mit der rechten Maustaste auf den Servernamen und wählen Sie New SR aus.
In diesem Beispiel verweisen wir Xen auf eine Windows-Freigabe. Wählen Sie „Windows File Sharing (CIFS)“:
Beenden Sie das Next -> Next -> Finish.
Besorgen Sie sich die UUID des SR
Um die UUID eines SR zu erhalten, klicken Sie einfach auf den Namen in Xen Center und wechseln Sie zur Registerkarte „General“.
Um die UUID zu kopieren, klicken Sie einfach mit der rechten Maustaste darauf und wählen Sie "Kopieren"..
Mit diesen Informationen können Sie die Einstellungsdatei bearbeiten.
Konfigurieren Sie die Einstellungsdatei
Das Xen-phoenix-Projekt wird mit einer Dateivorlage für Einstellungen geliefert. Diese Vorlage sollte entsprechend Ihrem Setup bearbeitet und als erstes Argument an das Skript übergeben werden.
Die Einstellungsdatei bezeichnet Folgendes:
- Die Position der Quellenexporte - Wenn Sie dem Leitfaden bis zu diesem Punkt gefolgt sind, müssen Sie nur die% UUID% durch die SRs ersetzen, wie sie von oben erhalten wurden.
- Der Speicherort von SendEmail - Wenn Sie sich für die Aktivierung von E-Mail entschieden haben, müssen Sie angeben, wo Sie die ausführbare Perl-Datei hier extrahiert haben.
- Verifier - Hiermit wird der Überprüfungsvorgang nach der Wiederherstellung gesteuert. Dies ist standardmäßig aktiviert, da eine erfolgreiche Wiederherstellung auf Dateiebene nicht unbedingt eine funktionierende VM bedeutet.
- Server_prep - Dies steuert die Vorwiederherstellung Streichung aller VMs auf dem DR-Server. Dies ist standardmäßig aktiviert, da davon ausgegangen wird, dass der DR-Server für diesen Zweck ein dedizierter Server ist. Wenn Sie eine VM benötigen, die auf diesem Server ausgeführt wird, um nicht gelöscht zu werden, 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 die folgenden Details definieren: An, Von, Servername / IP usw..
- Debugging - Standardmäßig ist das Debugging mit dem Wert "0" (Null) deaktiviert. Sie sollten dies nicht aktivieren, wenn dies jedoch der Fall ist, werden im Fehlerbehebungssegment weitere Informationen angezeigt.
Ausführung
Dieses Skript verwendet die Einstellungsdatei als erstes Argument und alle anderen Argumente als "Chevrons", nach denen gesucht werden soll (getrennt durch Leerzeichen). Chevrons sind "Zeichenfolgen", die reguläre Ausdrücke unterstützen, die mindestens einen Teil des gewünschten Dateinamens des VM-Exports darstellen.
In seiner einfachsten Form würde ein Aufruf von Xen-Phoenix so aussehen:
./Xen-phoenix.sh settings.cfg DevTools
In dem obigen Fall befinden wir uns in dem Verzeichnis, in dem sich das Skript und die Einstellungsdatei befinden, und nach dem "Chevron", nach dem das Skript sucht, "DevTools". Dadurch werden alle Dateien im Exportverzeichnis mit der Zeichenfolge "DevTools" im Namen importiert.
Ein komplexeres Beispiel kann wie folgt aussehen:
./Xen-phoenix.sh settings.cfg [Aa] [Dd] [Bb] [iI] [Dd] ev [Tt] Werkzeuge
Im obigen Beispiel werden Dateien importiert, die das Wort "devtools" enthalten, die mit "D" und "T" (Großbuchstaben) oder nichtkapitalisierten Schreibweisen geschrieben werden, sowie "AD" und "BI" mit oder ohne Großschreibung.
Terminplanung
Wie oben erwähnt, verwenden wir Cron, um die Ausführung zu planen. Bevor wir in die Konfiguration gehen, ist es so sehr empfehlenswert dass Sie das bereits installierte SSMTP-Paket auf Ihrem Xen-Server konfigurieren. Während dies ein optionaler Schritt ist, erhalten Sie einen Rückspülkollektor. Wenn Sie einen solchen Rückspülkollektor haben, werden Sie möglicherweise auf Dinge aufmerksam gemacht, zu denen das Skript nicht in der Lage ist.
Wechseln Sie in den Bearbeitungsmodus von cron, indem Sie Folgendes ausgeben:
Crontab -e
Wenn Sie die obigen Anweisungen befolgt haben und ein geplantes Backup für Sonntag um 01:31 Uhr (01:31 Uhr) hinzufügen möchten, geben Sie Folgendes ein:
31 01 * * sun /root/Xen-phoenix-master/Xen-phoenix.sh /root/Xen-phoenix-master/settings.cfg [Aa] [Dd] DB [Bb] [iI] [Dd] ev [Tt ] ools
Das obige ist korrekt, vorausgesetzt, Ihr Skript und die Einstellungsdatei befinden sich beide unter "/ root / Xen-phoenix-master /"..
Erhalten Sie SendEmail (optional)
Wir haben in der Vergangenheit über das SendEmail-Perl-Programm geschrieben, so dass hier nicht nochmals darauf hingewiesen werden muss. Es genügt zu sagen, dass es unter Linux genauso funktioniert wie unter Windows.
Die Aktivierung von E-Mails ist zwar optional, wird jedoch dringend empfohlen, da das Skript dann Folgendes kann:
- Informieren Sie, wann es gestartet wurde und beendet wurde.
- Sie auf Fehler aufmerksam machen, die es erkennen und handhaben 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 Ort, an den Sie es extrahiert haben. Sie benötigen es für die Einstellungsdatei.
Definition des Tags "Ausnahme löschen" (optional)
Xen-Phoenix nimmt eine Seite von seinem Vorfahren (Xen-Pocalypse) und gibt Ihnen die Möglichkeit, eine VM mithilfe eines Steuer-TAGs systematisch vom systemweiten Löschen auszuschließen. Dazu 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" aus..
Wenn Sie zum ersten Mal ein „benutzerdefiniertes Feld“ definieren (wie im obigen Beispiel), haben Sie nicht das Feld „Phoenix_keeper“, in das Daten eingegeben werden können. Sie müssen es also erstellen. Klicken Sie dazu im sich öffnenden Dialogfeld auf "Benutzerdefinierte Felder bearbeiten" und anschließend auf "Hinzufügen".
Erstellen Sie ein Textfeld mit dem Namen "Phoenix_keeper"..
Hinweis: Der Name des benutzerdefinierten Felds wurde im Skript „fest codiert“. Daher MÜSSEN Sie nicht von der obigen Schreibweise abweichen, es sei denn, Sie ändern auch den entsprechenden Code.
Nachdem das Feld erstellt wurde, sollten Sie Folgendes sehen:
Schließe das Fenster. Sie sollten nun das Feld "Phoenix_keeper" wie in der Abbildung unten ausfüllen.
Jetzt müssen Sie nur noch eine Bemerkung in dieses Feld eintragen (jede Bemerkung wird dies tun), die von Xen-phoenix beim Löschen übersprungen wird.
Fehlerbehebung
Obwohl ich mich sehr darum bemüht habe, das Skript so benutzerfreundlich und narrensicher wie möglich zu gestalten, ist „die Welt ein größeres Labor“. Die nachstehenden Informationen können Ihnen dabei helfen, die Ursache Ihrer Probleme zu ermitteln.
Protokollierung
Die gesamte Protokollierung wird vom Xen-Host erfasst, der das Skript im Syslog-Mechanismus ausführt. Dies kann natürlich angesehen werden mit:
weniger + F / var / log / messages
Sie suchen nach dem Stichwort "Xen-Phoenix".
Hinweis: Citrix hat eine Aufbewahrungsrichtlinie von zwei (2) Tagen für Syslog seiner Server festgelegt. Sie sollten dies für Postmortems berücksichtigen.
Debugging
Wie im Einstellungsdateisegment erwähnt, gibt es eine Anweisung, die das Debugging aktiviert. Die Aktivierung des Debugging führt dazu, dass das Skript ausführliche Protokollierung an die Konsole ausgibt und es so aussieht, dass es keine E-Mails sendet und tatsächlich Importe ausführt, es sei denn, die entsprechenden Flags sind ebenfalls gesetzt. Die möglichen Flags sind in der Einstellungsdateivorlage vermerkt und ermöglichen es Ihnen, das Debugging genau zu definieren.
Ich hoffe, dass Sie kein Debugging benötigten und Sie die Früchte meiner Arbeit ernten :)
Denken Sie nur an all die Armut, den Hass und die Lügen und stellen Sie sich die Zerstörung dessen vor, was Sie verachten. Langsam aus der Asche wird der Phönix entstehen ...