Disaster Recovery mit Rear

Übersicht

Rear (Relax and Recover) ist eine einfach aufgebaute, aber sehr effiziente Anwendung für Backup und Bare Metal Restore von Linux-Systemen. Es erstellt Recovery-Images, die genau an das jeweilige System angepasst sind, und bei Bedarf auch Backups. Es arbeitet aber auch mit vielen gängigen Backup-Anwendungen zusammen, wie zb. das an der ETH Zürich eingesetzte Tivoli Storage Manager von IBM (TSM).

Abgesehen davon, dass die Disk neu partitioniert und formatiert wird (logisch bei einem Bare Metal Restore) und einem Relabeling bei SELinux (siehe unten), ist das System zu 100% identisch mit dem Original. Für ein RHEL6 mit 4 GB auf Disk belegt dauert der Vorgang

  • 5 Minuten vom Start des Bootens bis die ersten Daten von TSM kommen
  • nochmal 5 Minuten für den eigentlichen Restore
  • SELinux restaurieren nochmals 5 Minuten

Nach 15 Minuten ist das System wieder einsatzbereit.

Installation

Verfügbar in verschiedensten Formaten, komplette Liste.

Für RHEL muss das EPEL-Repository eingebunden sein, dann installieren mit

yum install rear

Sollte für das Erstellen eines Recovery Images notwendige Software fehlen (z. B. für die Erzeugung eines ISO-Images), wird das beim Start des Programms gemeldet. Alles benötigte ist in den üblichen Repos verfügbar.

Die Installation fügt einen cron-Job in /etc/cron.d hinzu, der (nach durchgeführter Konfiguration) regelmässig ein Update des Recovery-Images vornehmen kann. Ein neues Recovery Image wird erstellt, wenn sich das Disk-Layout ändert.

Konfiguration

Eine einzige Konfigurationsdatei: /etc/rear/local.conf

Eine Konfiguration kann so aussehen:

BACKUP=TSM
OUTPUT=PXE
MODULES_LOAD=(vmxnet)
BACKUP_URL=file:///mnt/rear/images
PXE_CONFIG_PATH=/mnt/rear/pxe
PXE_CREATE_LINKS=IP

Dies sorgt für

  • Einbinden der Client-Software von TSM ins Recovery Image
  • Es wird eine PXE-Umgebung erstellt (möglich sind ausserdem ISO und USB)
  • Das Modul vmxnet (Netzwerkkarte für VMware) wird im Image eingebunden

Weitere Konfigurationoptionen sind in /usr/share/rear/conf/default.conf zu finden, zb. für weitere Optionen für PXE, für die diversen Backup-Umgebungen uvm.

Aufruf

Bei Benutzung eines externen Backups reicht das Erstellen des Recovery Images:

rear mkrescue

Das Image wird auf der Basis des installierten Kernels und der verwendeten Module erstellt, und enthält auch das aktuelle Disk-Layout. Jedes System erhält so sein individuelles Images, welches garantiert, dass

  • sich das System booten lässt
  • das identische Disk-Layout erstellt wird
  • die benötigte Client-Software für den Restore vorhanden ist

Mit einer entsprechenden Konfiguration der PXE-Optionen lässt sich eine komplette Boot-Umgebung fürs Recovery aufbauen. Ein Image umfasst ca. 150 MB, das summiert sich auch für viele Server nicht auf Riesenmengen. Da für Images keine Versionierung gemacht wird, wächst die Datenmenge auch nicht über die Zeit an, wie dies beim Backup der Fall ist.

In den Images stecken keine sensitiven Daten, eine Ablage für Images kann somit allen Servern Zugriff gegeben werden.

Abschliessend muss allenfalls das Image auf eine sichere Ablage transferiert werden, wenn das nicht schon durch den Pfad beim Erstellen garantiert ist.

Recovery

Nach dem Starten eines Recovery Images bootet das System in eine Recovery-Shell, mit einem root-Konto ohne Passwort. Wenn beim Erstellen des Images ein SSH-Publickey mitgegeben wurde, ist auch ein Zugriff mit SSH möglich. Mit

rear -v recover

wird der Restore gestartet. Nach der Angabe der Disk, auf die zurückgespielt werden soll, legt Rear los, formatiert die Disk, spielt das Backup aus dem vorgegebenen Backup-System zurück und erstellt die Boot-Konfiguration. Bei Bedarf lassen sich Informationen ausgeben oder das Ergebnis des Prozesse analysieren.

SELinux und TSM

Mit RHEL5 und 6 und aktivem SELinux kommt ein System nach dem Restore von TSM nicht ohne manuelle Hilfe wieder in den normalen Betrieb. Dem Backup fehlt ein Verzeichnis /selinux, ohne dieses Verzeichnis bootet das System nur mit deaktiviertem SELinux.

Dazu ist beim Booten die Option selinux=0 als Kernelparameter zu übergeben:

  1. im Boot-Screen von grub die Tabulator-Taste drücken
  2. den Boot-Eintrag mit Taste 'e' editieren
  3. die Zeile mit 'kernel' wählen
  4. nochmal 'e' zum Bearbeiten drücken
  5. 'selinux=0' anfügen
  6. mit 'ENTER' bestätigen
  7. und mit 'b' den Boot-Prozess starten

Nach dem Booten das Verzeichnis erstellen und ein Relabeling der Disk forcieren:

mkdir /selinux; touch /.autorelabel

Beim nächsten Start werden die Labels für SELinux neu erstellt (manuelle Konfigurationen müssen danach noch durchgeführt werden), und das System ist wieder bereit.

Maintenance

ReaR richtet bei der Installation einen cron-Job ein, der täglich prüft, ob sich das Disk-Layout geändert hat. Denn: das Boot-Image muss aktualisiert werden, wenn

  1. das Disk-Layout geändert hat, denn ReaR formatiert beim Recovery die Disks und muss darum die Informationen zum Disk-Layout im Image ablegen
  2. neue Hardware eingebaut UND Treiber dafür installiert wurden
  3. die externe Backup-Software gewechselt wird oder ein zwingendes Update des Clients nötig ist

Eine Aktualisierung ist zb. nicht nötig, wenn OS-Updates eingespielt wurden, oder gar ein OS-Upgrade gemacht wurde. Das Image wird im RAM installiert, gebootet und richtet von dort aus die Platten ein und aktiviert den Restore. Konnte es einmal nachweislich gebootet werden, dann tut es das unabhängig vom installierten OS. Nur geänderte Disk-Layouts oder Hardware-Änderungen können den Boot- und Formatierungsprozess stören, und der Wechsel der Backup-Software kann bedingen, dass die Software im Image aktualisiert werden muss.

Wird ReaR mittels interner Mechanismen wie tar oder rsync auch für das Backup verwendet, muss ein regelmässiger Backup-Job von Hand eingerichtet werden.

Natürlich muss ein durch den cron-Job erstelltes Image von Hand sichern, wenn das nicht bereits durch die Konfiguration des Prads gegeben ist.

Quellen