So sichern Sie Citrix Xen-VMs kostenlos mit Xen-pocalypse (Bash)

So sichern Sie Citrix Xen-VMs kostenlos mit Xen-pocalypse (Bash)

How Backup Citrix Xen Vms

Mussten Sie jemals ein Backup Ihrer Citrix Xen Virtual Machines (VMs) erstellen, wollten aber nicht die Bank sprengen? HTG hat mit Xen-pocalypse genau das Bash-Skript für Sie.



Bild von h.koppdelaney , Im Brauch stecken geblieben und Hotfortech.

Eines der schönen Dinge in Citrix Xen ist, dass viele seiner Funktionen kostenlos kostenlos. Wenn Sie jedoch die automatische VM-Schutz- und Wiederherstellungsfunktion wünschen, müssen Sie für die Advance-Lizenz bezahlen. Selbst dann zahlen Sie nur für Backups auf Festplattenebene, die für viele Arten von Workloads wie Active Directory, Datenbanken usw. nicht ausreichen. Um dies zu überwinden, möchten Sie möglicherweise den Live-Speicher-Snapshot und die Wiederherstellung, wodurch der gesamte Maschinenzustand gespeichert werden kann , einschließlich des Inhalts des RAM. Diese Funktion ist jedoch Teil der Enterprise- und Platinum-Editionen, die noch teurer sind. Es ist nicht so, dass wir bei HTG den Wert einer echten Backup-Software ablehnen, aber wenn Sie ein knappes Budget haben und Ausfallzeiten für den Backup-Vorgang nichts ausmachen, könnten Sie Xen-pocalypse als eine absolut vernünftige Lösung finden bevor Sie die Budgetverpflichtung eingehen.

Überblick

Der Anwendungsfall: Sie haben ein paar VMs, die ein Backup benötigen. Das Ausschalten einer VM und das Exportieren als Datei aus dem Xen Center mit Rechtsklicks funktioniert in Ordnung, aber Sie möchten, dass dieser Vorgang automatisch und nach einem Zeitplan erfolgt. Dieses Bash-Skript verwendet den XE-Befehl, um seine Aufgaben auszuführen. XE ist die Xen-Befehlszeilenschnittstelle (CLI), ein automatisches Äquivalent zum Ausführen der Rechtsklicks im Xen Center. Wir werden das Skript von aufrufen Cron die den Planungsteil liefert. In seiner einfachsten Form ist der Backup-Flow:

  • Schalten Sie die Ziel-VM aus.
  • Exportieren Sie die VM als Datei an den Sicherungsspeicherort.
  • Wenn die VM vor dem Start des Backups eingeschaltet war, wird sie wieder eingeschaltet.

Lass uns krachen :)

Besorgen Sie sich das Skript

Xen-Pokalypse kann frei bezogen werden von github , mit den regulären Git-Methoden. Wenn das nicht der Fall ist versiert in git Sie können die ZIP-Datei jedoch mit abrufen dieser Link . 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-pocalypse/archive/master.zip
unzip master

Obwohl das oben Genannte funktionieren würde, wird empfohlen, die GIT-Methode zu verwenden, damit Sie von zukünftigen Updates profitieren können.

SendEmail abrufen (optional)

Wir haben in der Vergangenheit über das Perl-Programm SendEmail geschrieben , daher braucht es hier nicht wiederholt zu werden. Es genügt zu sagen, dass es unter Linux genauso funktioniert wie unter Windows.

Anzeige

Die Aktivierung von E-Mail ist zwar optional, wird jedoch dringend empfohlen, da das Skript dann Folgendes kann:

  • Informieren Sie, wann es gestartet und beendet wurde.
  • Benachrichtigen Sie Sie über alle Fehler, die erkannt und behandelt werden konnten.
  • Informieren Sie über Backup-Disqualifikationen aufgrund von Platzproblemen. (Dieses Verhalten kann deaktiviert werden, wenn nicht gewünscht)

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

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

wie viel kosten brenner handys

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

Tags definieren

Citrix Xen bietet Ihnen die Möglichkeit, benutzerdefinierte Felder für Filterfunktionen zu konfigurieren. Wir werden die Felder erstellen und sie dann mit den Informationen füllen, die von Xen-pocalypse verwendet werden. Xen-pocalypse erkennt 3 Kontroll-TAGs, die den Namen des Tags für die Sicherung und die Eltern-Kind-Beziehungen angeben. Wenn Sie nicht beabsichtigen, die Dateieingabemethode zu verwenden, MÜSSEN Sie mindestens das Feld für den Namen des Backup-Tags erstellen.

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

Wenn Sie zum ersten Mal eine Beziehung definieren (wie im obigen Beispiel), haben Sie keine Felder zum Eingeben von Daten, daher müssen Sie diese erstellen. Klicken Sie dazu im angezeigten Dialogfeld auf Benutzerdefinierte Felder bearbeiten, klicken Sie auf Hinzufügen…

Anzeige

Erstellen Sie drei (3) Texttypfelder. Einer wird BackupTAG und die anderen Eltern und Kinder heißen.

Notiz: Die Namen der benutzerdefinierten Felder wurden im Skript fest codiert, sodass Sie nicht von der obigen Schreibweise abweichen dürfen, es sei denn, Sie ändern auch den entsprechenden Code.

Nachdem alle Felder erstellt wurden, sollten Sie Folgendes sehen:

Schließen Sie das Fenster. Sie sollten jetzt die Felder BackupTAG, Parent und Children ausfüllen, wie in der Abbildung unten.

Jetzt müssen Sie nur noch festlegen, welche VMs zu welchem ​​BackupTAG gehören.
In der Firma, in der das Skript gewachsen war, hatten wir beispielsweise VMs, die am Donnerstag und Freitag wöchentlich gesichert werden sollten, einen Zeitplan für unsere Atlassian Produkt-VMs und einige, die nur monatlich gesichert werden sollten. Unsere Übersicht sah also so aus:

Wo zum Beispiel wöchentlich-fri der Text war, den wir in das benutzerdefinierte Feld BackupTAG eingegeben haben. Ordentlich oder? :)

Eltern & Kinder (optional)

Die wahre Schönheit dieses Skripts besteht darin, dass es Eltern-Kind-Beziehungen unterstützt. Das heißt, es ist möglich, eine Liste von untergeordneten VMs festzulegen, die vor dem übergeordneten Element deaktiviert und gesichert werden würden, und dass diese untergeordneten VMs erst wieder aktiviert werden, wenn das übergeordnete Element seine Sicherung abgeschlossen und wieder eingeschaltet wurde. Dies ist in Fällen nützlich, in denen das Ausschalten der übergeordneten VM dazu führt, dass der Dienst in der untergeordneten VM nicht mehr verfügbar ist. Dies würde bedeuten, dass der Dienst auf der untergeordneten VM zweimal nicht verfügbar wäre, einmal für den Backup-Prozess des Kindes und einmal für den des Elternteils. Die Schaffung dieser Beziehung überwindet dieses Problem.

Anzeige

Alle unsere Atlassian-VMs verwendeten beispielsweise eine einzige DataBase (DB)-VM, die ebenfalls gesichert werden sollte. Wenn Sie also beachten, dass die DB-VM den anderen VMs übergeordnet ist, kann eine ordnungsgemäße Reihenfolge beim Herunterfahren -> Backup -> Starten sichergestellt werden.

Zum Zeitpunkt dieses Schreibens hat diese Funktion einige Vorbehalte:

So richten Sie Twitch-Spenden ein
  1. Die Namen der VMs, die eine solche Beziehung haben sollen, dürfen keine Leerzeichen enthalten. Sie müssen Leerzeichen aus Ihren VM-Namen entfernen, da sie durch Leerzeichen getrennt werden, wie im folgenden Beispiel.
  2. Es kann nur einen geben Elternteil. Die Benennung von mehreren ist nicht einmal geplant, geschweige denn getestet.

Um diese Beziehung zu erstellen, gehen Sie in die Eigenschaften der VM. Wenn dies ein Elternteil ist, schreiben Sie, wer seine Kinder sind, und wenn dies ein Kind ist, schreiben Sie, wer seine Eltern sind. Beispielsweise:

Hinweis: Wenn Sie für ein Kind kein Elternteil festlegen, kann dies dazu führen, dass das Kind gestartet wird, bevor das Elternteil bereit ist, und kann dazu führen, dass es zweimal gesichert wird.

Die FILE-Methode (optional)

Aus historischen Gründen unterstützt Xen-pocalypse auch das Abrufen der Liste der zu sichernden VMs als Textdatei. Während der Code noch drin ist, ist die Funktionalität schwer niedriger nach der TAGs-Methode und wird daher nicht empfohlen. Wenn Sie jedoch aus irgendeinem Grund die Listenmethode bevorzugen, gelten die folgenden Einschränkungen:

  1. Die Namen der VMs dürfen keine Leerzeichen oder Sonderzeichen enthalten.
  2. Es kann nur einen VM-Namen pro Zeile geben.
  3. Leerzeilen sind nicht erlaubt.

Um die Liste zu generieren, kopieren Sie entweder den Namen der VM aus dem Xen-Center oder führen Sie auf einem Xen-Host aus:

xe vm-list | grep name-label | awk '{ print }' | sort

Kopieren Sie die obige Liste in eine normale Textdatei.

Der Backup-Speicherort

Beim zufälligen Herumstöbern in Citrix Xen habe ich festgestellt, dass die Speicher-Repositories (SRs) stehen zur Verwendung unter /var/run/sr-mount/%UUID% zur Verfügung, wobei UUID die eindeutige Kennung der SR ist, die über die GUI abgerufen werden kann.

Anzeige

Das bedeutet, dass wir den regulären Next -> Next -> Finish Wizard verwenden können, um den Mount am gewünschten Backup-Speicherort zu erstellen, und dann das Skript diesen Pfad verwenden lassen (im Gegensatz zum Durcheinander mit Mounten von der Kommandozeile ), aber dies würde den Rahmen dieses Handbuchs sprengen.

Um einen neuen 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 a Fenster teilen , also wählen Sie Windows File Sharing (CIFS):

Schließen Sie Weiter -> Weiter -> Fertig ab.

Erhalten Sie die UUID . des SR

Um die UUID einer SR zu erhalten, klicken Sie einfach auf ihren Namen im Xen Center und gehen Sie zur Registerkarte Allgemein.

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

Anzeige

Mit diesen Informationen können Sie die Einstellungsdatei bearbeiten.

Konfigurieren Sie die Einstellungsdatei.

Das Xen-pocalypse-Projekt wird mit einer Einstellungsdateivorlage geliefert. Diese Vorlage sollte so bearbeitet werden, dass sie Ihr Setup widerspiegelt, und als erstes Argument an das Skript übergeben werden. Die Einstellungsdatei bezeichnet Folgendes:

Die Methode zum Abrufen der zu sichernden VMs – Die Standardmethode ist TAGs. Sie können dies in DATEI ändern, dies wird jedoch nicht empfohlen.

Der Standort des Backup-Ziels – Wenn Sie die Anleitung bis zu diesem Punkt befolgt haben, 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 hier eingeben, wo Sie die ausführbare Perl-Datei extrahiert haben.

E-Mail-Details – Auch hier müssen Sie, wenn Sie E-Mail aktiviert haben, Details wie: An, Von, Servername/IP & etc. definieren.

Anzeige

Kompression – Dies ist standardmäßig auf Nein gesetzt, da durch die Aktivierung zwar eine kleinere Backup-Datei erstellt wird, der Backup-Vorgang jedoch auch erheblich länger ausgeführt wird.

Auf freien Speicherplatz prüfen auf dem Ziel – Dadurch überprüft das Skript, ob die Sicherung der VM nicht dazu führt, dass der freie Speicherplatz des Sicherungsspeicherorts unter 10 GB fällt. Dies geschieht, um sicherzustellen, dass die meisten VMs gesichert werden, anstatt nur eine sehr große VM. Die Berechnung erfolgt anhand der Brutto-Festplattengröße aller Festplatten, die der VM zugeordnet sind.

Wort in Google Docs importieren

Debuggen – Standardmäßig ist das Debugging mit dem Wert 0 (Null) ausgeschaltet. Sie sollten dies nicht aktivieren müssen, aber wenn Sie dies tun, finden Sie weitere Informationen im Abschnitt zur Fehlerbehebung.

Ausführung/Terminplanung

In seiner einfachsten Form würde ein Aufruf von Xen-pocalypse so aussehen:

./Xen-backup.sh settings.cfg weekly-fri

Im obigen Fall befinden wir uns in dem Verzeichnis, das das Skript und die Einstellungsdatei enthält. Das Tag, nach dem das Skript sucht, ist wöchentlich-fr.

Wie oben erwähnt, verwenden wir Cron die Ausführung zu planen. Bevor wir in die Konfiguration gehen, ist es sehr empfehlenswert das du das bereits installierte SSMTP-Paket konfigurieren auf Ihrem Xen-Server. Obwohl dies ein optionaler Schritt ist, erhalten Sie dadurch einen Rückspülsammler. Ein solcher Rückspülsammler kann Sie auf Dinge aufmerksam machen, die das Skript nicht kann.

Steigen Sie mehr in die Bearbeitung von Cron ein, indem Sie Folgendes ausgeben:

crontab -e

Wenn Sie die obigen Anweisungen befolgt haben und ein geplantes Backup für Freitag um 18:01 (18:01 Uhr) hinzufügen möchten, geben Sie Folgendes ein:

01 18 * * fri /root/Xen-pocalypse-master/Xen_Backup.sh /root/Xen-pocalypse-master/settings.cfg weekly-fri

Anzeige

Das obige ist korrekt, vorausgesetzt, Ihr Skript und Ihre Einstellungsdatei befinden sich beide unter /root/Xen-pocalypse-master/.

Fehlerbehebung

Obwohl ich viel Mühe darauf verwendet habe, das Skript so einfach zu verwenden und so narrensicher wie möglich zu machen, ist die Welt ein größeres Labor. Die folgenden Informationen können Ihnen dabei helfen, die Quelle von . zu ermitteln deine Probleme .

Fortschritt

Vielleicht möchten Sie diesen einen Liner verwenden, um schnell alle laufenden Aufgaben zu sehen, um zu sehen, ob sie tatsächlich vorankommen oder ob sie tatsächlich stecken bleiben.

while [ -e /dev/null ]; do for VM in '$( xe task-list | grep uuid | awk '{print }' )' ; do xe task-param-get param-name=progress uuid=$VM ;sleep 1; done; done

Um das Anschauen zu beenden, verwenden Sie Strg+C, um die while-Schleife zu unterbrechen.

Protokollierung

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

less +F /var/log/messages

Sie suchen nach dem Stichwort Xen-Pokalypse.

Linux Dateien entfernen älter als

Hinweis: Citrix hat eine zwei (2) Tage lange Aufbewahrungsrichtlinie für das Syslog seiner Server festgelegt. Das sollten Sie bei Obduktionen im Hinterkopf behalten.

Debuggen

Anzeige

Wie im Abschnitt der Einstellungsdatei angegeben, gibt es eine Anweisung zum Aktivieren des Debuggens. Das Aktivieren des Debuggens führt dazu, dass das Skript eine ausführliche Protokollierung an die Konsole ausgibt und es vom Senden von E-Mails und dem tatsächlichen Ausführen der Exporte kastriert, es sei denn, die entsprechenden Flags sind ebenfalls gesetzt. Die möglichen Flags sind in der Einstellungsdateivorlage vermerkt und ermöglichen es Ihnen, granular zu definieren, was Sie debuggen möchten.

Ich hoffe, dass Sie kein Debugging benötigt haben und die Früchte meiner Arbeit ernten :)


Schub, mein Mann, Sie sind dabei, die Nummer eins unter den Decepticons zu werden...

WEITER LESEN
  • › So stellen Sie Citrix-Xen-VMs kostenlos mit Xen-Phoenix (Bash) wieder her
  • › Was ist MIL-SPEC Fallschutz?
  • › Der Computerordner ist 40: Wie Xerox Star den Desktop erstellte
  • › Funktionen vs. Formeln in Microsoft Excel: Was ist der Unterschied?
  • & rsaquo; Cyber ​​Monday 2021: Die besten Tech-Deals
  • › 5 Websites, die jeder Linux-Benutzer mit einem Lesezeichen versehen sollte
  • › So finden Sie Ihr Spotify Wrapped 2021