Archive:Online Sicherung von virtuellen XEN Maschinen

From SEPsesam
DER INHALT DIESER SEITE IST VERALTET
Die SEP AG hat die Unterstützung für veraltete SEP sesam Versionen eingestellt. Anleitungen stehen nach wie vor für diese SEP sesam Produkte zur Verfügung, jedoch übernimmt SEP AG keine Verantwortung oder Haftung für Fehler oder Ungenauigkeiten in den Anleitungen oder für die falsche Bedienung veralteter SEP sesam Software. Es wird dringend empfohlen Ihre SEP sesam Software auf die neueste Version zu aktualisieren. Die neueste Dokumentation für SEP sesam finden Sie unter Dokumentation.

Copyright © SEP AG 1999-2024. Alle Rechte vorbehalten.

Jede Form der Reproduktion der Inhalte dieses Benutzerhandbuches, ganz oder in Teilen, ist nur mit der ausdrücklichen schriftlichen Erlaubnis der SEP AG gestattet. Bei der Erstellung dieses Benutzerhandbuches wurde mit größtmöglicher Sorgfalt gearbeitet, um korrekte und fehlerfreie Informationen bereit stellen zu können. Trotzdem kann die SEP AG keine Gewähr für die Richtigkeit der Inhalte dieses Benutzerhandbuches übernehmen.


Einleitung

XEN verfügt bisher über keine eigene Backup-API. Das bedeutet, dass XEN virtuelle Maschinen alleine über XEN Mechanismen nicht Online gesichert werden können. Ein probates Mittel ist die Zuhilfenahme von LVM (Logical Volume Manager) als Zwischenschicht zwischen physikalischer Platte und Dateisystem. Damit ist die Möglichkeit gegeben, eine virtuelle Maschine unter XEN über einen sogenannte LVM-Snapshot zu sichern. Dieser LVM-Snapshot kann anschließend ins Filesystem gemountet werden und dann mittels SEP sesam als Pfadsicherung auf Disk oder Band geschrieben werden.

Nicht zu vergessen die VM-Konfigurationsdateien im Verzeichnis /etc/xen. Auf diese wird hier nicht explizit eingegangen, da es auf Linux-Systemen generell sinnvoll ist das komplette /etc-Verzeichnis zu sichern.

ACHTUNG

Bitte beachten Sie, dass weder XEN noch LVM Bestandteil der SEP sesam Software sind. Weitergehende Informationen finden sie über die Literaturverweise am Ende des Dokuments oder allgemein im Internet.


Verbesserte Lösung in Sesam Version 4.2:

Ab SEP sesam Version 4.2 ist es möglich ein LVM-basiertes Backup zu definieren. Dazu ist die Checkbox Backup mit LVM in den Auftragseigenschaften zu aktivieren. Befindet sich eine Backup-Quelle auf einem LVM-Volume, erzeugt SEP sesam automatisch ein LVM-Snapshot, sichert die Quelle auf dem Snapshot und entfernt den Snapshot nach dem Backup wieder.

Die hier beschriebene Lösung ist so allgemein, dass sie im Prinzip nicht nur für XEN anzuwenden ist, sondern notfalls mit kleinen Anpassungen für alle Hypervisor ohne Backup-API z.B. KVM.

Systemvoraussetzungen

  • Betrieb der XEN Umgebung auf LVM (Logical Volume Manager)
  • Installation eines SEP sesam Klienten auf dem XEN Hostsystem
  • Aufnahme des XEN Hostsystems als SEP sesam Klient beim Sesam Server


Prinzipielle Vorgehensweise

Backup

  1. LVM Snapshot des Logical Volumes erzeugen, auf dem die VM liegt
  2. Snapshot ins Dateisystem einhängen
  3. Eine Pfadsicherung via SEP sesam über den Mountpoint des LVM Snapshot durchführen
  4. Nach dem Backup den Snapshot aus dem Filesystem aushängen
  5. Snapshot löschen

Recover

  1. Die XEN VM, die recovered werden soll, herunterfahren
  2. Restore des Savesets der VM Sicherung an den Original-Ort, auf dem die VM läuft, mit Überschreiben
  3. Start der VM


Detaillierte Vorgehensweise

ACHTUNG

Dieses Szenario ist nur als Beispiel zu verstehen, da die Größenbemessungen der LVs (Logical Volumes) von den virtuellen Maschinen und den darauf betriebenen Anwendungen Ihrer Systemumgebung abhängen.

In diesem Beispiel ist auf dem XEN Host astronomix die virtuelle Maschine vm1 auf dem Logical Volume (LV) /dev/system/xenvm gespeichert. Diese Partition ist nach /srv/xenvm gemountet. Die Dateien der VM vm1 sind im Verzeichnis /srv/xenvm/vm1 gespeichert.


Backup der XEN VM

LVM Snapshot erzeugen

Ein Snapshot Volume muss so groß angelegt werden, um alle während der Sicherungsdauer anfallenden Änderungen, die die virtuelle Maschine erzeugt, speichern zu können. In diesem Beispiel wird das Snapshot mit einer Größe von 1 GB angelegt.

# lvcreate -L1G -s -n vmbackup /dev/system/xenvm
    Logical volume "vmbackup" created

Das Snapshot wird über die Gerätedatei /dev/system/vmbackup im XEN Hostssystem bekanntgegeben.

ACHTUNG

Volllaufende Snapshots werden innerhalb der LVM-Konfiguration automatisch disabled. In solch einem Fall wird das Backup mit hoher Wahrscheinlichkeit inkonsistent und damit wertlos. Die Größe von 1 GB hier ist NUR als Beispiel zu verstehen. Bitte testen Sie vor dem Echtbetrieb, wieviel Änderungsdaten Ihre virtuellen Maschinen während des Backups erzeugen und bemessen sie das Snapshot danach.


Snapshot mounten

Jetzt wird das Snapshot in das Dateisystem nach /mnt/vmbackup eingehängt:

# mount /dev/system/vmbackup /mnt/vmbackup


Backup im Sesam einrichten und ausführen

  1. Definition eines Sicherungsauftrages "Backup_XEN_vm1" mit:
    • der Sicherungsquelle /mnt/vmbackup und
    • Sicherungstyp Pfadsicherung
  2. Damit kann das Backup per Sofortstart getestet werden. Für eine zeitgesteuerte Ausführung kann nun ein Zeitplan (z.B. täglich 20:00 Uhr) eingerichtet werden.


Aushängen und Löschen des Snapshots

Wenn das Backup abgeschlossen ist, kann das Snapshot aus dem Dateisystem wieder ausgehängt...

# umount /mnt/vmbackup

...und gelöscht werden.

# lvremove -f /dev/system/vmbackup
  Logical volume "vmbackup" successfully removed


Systemwiederherstellung einer VM

Beim Restore einer virtuellen Maschine ist...

  1. ...zunächst sicherzustellen, dass die bestehende VM heruntergefahren wurde, so dass die zu der VM gehörenden Dateien überschrieben werden können.
  2. Dann wird über den Restorewizard im SEP sesam eine Rücksicherung angestoßen.
    • als Rücksicherungsziel wird der originale Ort der virtuellen Maschine vm1, in diesem Fall /srv/xenvm/vm1, angegeben.
    • Da die Dateien der VM alle in demselben Verzeichnis liegen, ist die Option Original Baumstruktur abzuwählen. Damit landen alle Dateien in dem benannten Verzeichnis.
    • Existieren am Zielort des Restore noch Dateien, dann ist das Überschreiben existierender Dateien zu wählen.
  3. Nach erfolgreichem Restore kann die VM ganz normal gestartet werden.


Erweiterte Sesam Konfiguration

Zur besseren Automatisierung lassen sich die Punkte "Snapshot erzeugen" und "Mount Snapshot" vor dem Backup in einen Pre-Prozess und der "Unmount Snapshot" und das "Snapshots löschen" nach dem Backup in einen Post-Prozess einbinden. Details finden Sie unter Pre- und Post-Skripte verwenden.

Einrichten der Pre- und Post-Schnittstellen

Die Definition der Pre- und Post-Verarbeitung erfolgen per Skript auf dem Sesam-Klienten, auf dem das Backup laufen sollen. In diesem Falle ist das der XEN Host. Hierzu sind aus dem Verzeichnis /opt/sesam/skel/templates die Schnittstellen-Vorlagen sbc_pre und sbc_post in das Verzeichnis /opt/sesam/bin/sesam zu kopieren und entsprechend zu editieren.
Hier sind die Auszüge aus den Dateien als Muster zu sehen. Die Fehlerverarbeitung ist nur rudimentär und kann nach eigenem Bedarf angepasst werden.

sbc_pre

...
#=== Please insert your specific actions here=====================================

if [ $task == Backup_XEN_vm1 ]; then
  echo "Create a LVM snapshot for backup of virtual machine vm1..."
  lvcreate -L1G -s -n vmbackup /dev/system/xenvm
  rc=$?
  if [ $rc -eq 0 ]; then
    echo "...successful"
    echo
    echo "Mount LVM snapshot for backup..."
    mount /dev/system/vmbackup /mnt/vmbackup
    rc=$?
    if [ $rc -ne 0 ]; then         # if error clean up
      lvremove -f /dev/system/vmbackup
      echo STATUS:ERROR {Error on mounting LVM snapshot}
      exit
    fi
    echo "...successful"
  else
    echo STATUS:ERROR {Error on creating LVM snapshot}
    exit
  fi
fi
echo STATUS:OK
exit


sbc_post

...
#=== Please insert your specific actions here =====================================

if [ $task == Backup_XEN_vm1 ]; then
  echo "Unmount LVM snapshot after backup..."
  umount /mnt/vmbackup
  rc=$?
  if [ $rc -ne 0 ]; then
    echo STATUS:ERROR {Error on unmounting LVM snapshot}
    echo "Please unmount and remove LVM snapshot manually!"
    exit
  fi
  echo "...successful"
  echo
  echo "Delete LVM snapshot for virtual machine vm1..."
  lvremove -f /dev/system/vmbackup
  rc=$?
  if [ $rc -ne 0 ]; then         # if error clean up
    echo STATUS:ERROR {Error on deleting LVM snapshot}
    echo "Please delete LVM snapshot manually"
    exit
  fi
  echo "...successful"
fi
echo STATUS:OK
exit


Definition des Sicherungsauftrages im Sesam

Über die SEP sesam GUI ist am Klienten ein Sicherungsauftrag anzulegen. Als Sicherungsquelle wird hier der Mountpoint angegeben, auf den zum Backupzeitpunkt das Snapshot gemountet wird (/mnt/vmbackup).

Sicherungsauftrag definieren
Sicherungsauftrag definieren


Auf dem Register Optionen 1 sind die Checkboxen für die Pre- und Post-Verarbeitung vor und nach dem Backup zu setzen. Die Optionen sind so gewählt, dass der Backup abbricht, wenn im Pre-Job ein Fehler auftritt, da hier die Möglichkeit besteht, dass entweder der Snapshot nicht erstellt bzw. nicht gemountet wurde. Die Nachverarbeitung (Post) wird dagegen auch durchgeführt, wenn das Backup selbst auf einen Fehler gelaufen ist. Damit ist sichergestellt, dass nach dem Backup die Aufräumarbeiten, wie Snapshot aushängen und löschen, ordnungsgemäß durchgeführt werden.

Pre/Post aktivieren
Pre/Post aktivieren

Selektive Sicherung der VM

Das o. a. Szenario beschreibt die Sicherung einer virtuellen Maschine als Ganzes, d. h. es wird die VM als Container gesichert. Für ein selektives Backup von Teilen einer VM (von innen), ist die virtuelle Maschine genauso zu betrachten wie eine Physikalische. Das bedeutet, jede VM ist ein eigener IP-Host und dazu ist auf dieser VM ein Sesam Klient zu installieren und in der Sesam Umgebung zu konfigurieren. Damit kann dann für diese virtuelle Maschine ein selektiver Backup durchgeführt werden.


Literaturverweise