ADMIN

2021

04

2021-04-01T12:00:00

Backup und Recovery

SCHWERPUNKT

090

Disaster Recovery

Recovery

Open-Source

Disaster Recovery mit Relax-and-Recover

Entspannt bleiben

von Tim Schürmann

Veröffentlicht in Ausgabe 04/2021 - SCHWERPUNKT

Ein holperndes oder defektes System lässt Nutzer gern verzweifeln. Das gilt für Windows- wie für Linux-User. Für Letztere bietet sich mit Relax-and-Recover eine bequeme Möglichkeit, einen Rechner im Problemfall wiederherzustellen. Das Werkzeug erlaubt eine Vielzahl an Bootmedien und zeigt sich überaus flexibel.

Relax-and-Recover (kurz Rear) erzeugt ein maßgeschneidertes Rettungsmedium, das ein defektes System halbautomatisch wieder in einen betriebsbereiten Zustand versetzt. Nach seinem Start rekonstruiert das Rettungsmedium zunächst die ursprüngliche Partitionierung und spielt dann ein Backup zurück. Auf Wunsch erstellt Rear selbst die Sicherung, das Werkzeug arbeitet aber auch mit professionellen Backupumgebungen zusammen.
Das Rettungsmedium besteht im einfachsten Fall aus einem von Rear entsprechend präparierten USB-Stick. Alternativ erzeugt das Tool ein ISO-Image, erstellt ein via OBDR bootfähiges Tape, schreibt die Daten auf einen beliebigen Datenträger oder erzeugt alle notwendigen Dateien für ein Booten via PXE. Das fertige Rettungsmedium speichert Rear lokal oder schiebt es mithilfe zahlreicher möglicher Protokolle auf einen Server. Damit lässt sich das Werkzeug auch automatisiert aufrufen beziehungsweise in eine vorhandene Backup-Toolchain integrieren.
Rear spielt die Datensicherung nicht nur auf das ursprüngliche, sondern auch auf ein beliebiges anderes System zurück. Zudem dürfen Administratoren vor der Wiederherstellung des Backups in das Festplattenlayout eingreifen. Auf diese Weise lässt sich beispielsweise ein defektes Notebook ausmustern und die Sicherung auf ein neues Gerät mit größerem Datenträger aufspielen. Gleichzeitig lässt sich Rear für eine schnelle Migration "missbrauchen". So könnte ein Nutzer beispielsweise die Daten von einem Software-RAID auf ein Hardware-RAID umbetten. Rear kommt dabei auch mit komplexeren Festplattenlayouts zurecht, neben dem erwähnten Software-RAID unter anderem auch mit LVM, Multipathing, DRBD, iSCSI und via LUKS verschlüsselten Partitionen. Als Quelle und Ziel kommen selbstverständlich auch virtuelle Maschinen infrage. Rear untersteht der GNU GPLv3 und lässt sich daher im kommerziellen Umfeld kostenfrei einsetzen.
Relax-and-Recover (kurz Rear) erzeugt ein maßgeschneidertes Rettungsmedium, das ein defektes System halbautomatisch wieder in einen betriebsbereiten Zustand versetzt. Nach seinem Start rekonstruiert das Rettungsmedium zunächst die ursprüngliche Partitionierung und spielt dann ein Backup zurück. Auf Wunsch erstellt Rear selbst die Sicherung, das Werkzeug arbeitet aber auch mit professionellen Backupumgebungen zusammen.
Das Rettungsmedium besteht im einfachsten Fall aus einem von Rear entsprechend präparierten USB-Stick. Alternativ erzeugt das Tool ein ISO-Image, erstellt ein via OBDR bootfähiges Tape, schreibt die Daten auf einen beliebigen Datenträger oder erzeugt alle notwendigen Dateien für ein Booten via PXE. Das fertige Rettungsmedium speichert Rear lokal oder schiebt es mithilfe zahlreicher möglicher Protokolle auf einen Server. Damit lässt sich das Werkzeug auch automatisiert aufrufen beziehungsweise in eine vorhandene Backup-Toolchain integrieren.
Rear spielt die Datensicherung nicht nur auf das ursprüngliche, sondern auch auf ein beliebiges anderes System zurück. Zudem dürfen Administratoren vor der Wiederherstellung des Backups in das Festplattenlayout eingreifen. Auf diese Weise lässt sich beispielsweise ein defektes Notebook ausmustern und die Sicherung auf ein neues Gerät mit größerem Datenträger aufspielen. Gleichzeitig lässt sich Rear für eine schnelle Migration "missbrauchen". So könnte ein Nutzer beispielsweise die Daten von einem Software-RAID auf ein Hardware-RAID umbetten. Rear kommt dabei auch mit komplexeren Festplattenlayouts zurecht, neben dem erwähnten Software-RAID unter anderem auch mit LVM, Multipathing, DRBD, iSCSI und via LUKS verschlüsselten Partitionen. Als Quelle und Ziel kommen selbstverständlich auch virtuelle Maschinen infrage. Rear untersteht der GNU GPLv3 und lässt sich daher im kommerziellen Umfeld kostenfrei einsetzen.
Installation nicht zwingend nötig
Die meisten großen Linux-Distributionen offerieren Rear direkt über ihre Softwareverwaltung. Alternativ finden Sie die jeweils aktuelle Version des Werkzeugs auf Github [1]. Das dort angebotene Archiv entpacken Sie und spielen Rear dann mit sudo make install ein. Diese Installation ist übrigens nicht zwingend notwendig, Sie müssen Rear dann jedoch zukünftig immer mit sudo usr/sbin/rear anstelle von sudo rear aufrufen.
Unter der Haube spannt Rear einige Standardprogramme ein. So erzeugt "dd" bei Bedarf ein Datenträgerabbild, während "gzip" die Daten komprimiert. Alle notwendigen Hilfsprogramme gehören zur Grundausstattung der meisten Linux-Systeme. Sollte Rear dennoch eine Software vermissen, weist es Sie später automatisch darauf hin. Auf den von Rear erstellten Rettungsmedien müssen allerdings ein paar Werkzeuge liegen, die viele Linux-Distributionen nicht standardmäßig installieren. Darunter fallen unter anderem "mingetty" oder "agetty", "sfdisk" oder "parted", "syslinux", "genisoimage" und die "grub2-efi-modules". Letztgenanntes Paket enthält Zusatzmodule für den Bootmanager Grub 2, die später den Start auf EFI-Systemen ermöglichen. Das entsprechende Paket hat auf Ihrer Distribution unter Umständen einen abweichenden Namen. Wenn Sie Rear über Ihre Softwareverwaltung installieren, sollten bereits alle genannten Abhängigkeiten aufgelöst sein.
Erste Schritte
Um die Arbeitsweise von Rear kennenzulernen, genügt ein alter Laptop mit einem kleinen Linux-System, auf dem Sie das Werkzeug installieren. Des Weiteren muss ein leerer USB-Stick her, der gleich als Rettungsmedium fungiert und zudem das Backup aufnimmt. Der Stick sollte daher ausreichend groß dimensioniert sein. In einer produktiven Umgebung speichern Sie das Backup selbstverständlich auf einem etwas verlässlicheren Medium ab. Stecken Sie den USB-Stick in das Testsystem und bereiten Sie ihn mit folgendem Befehl für das Rettungssystem vor, wobei Sie "/dev/sdd" gegen die Gerätedatei Ihres USB-Sticks tauschen:
sudo rear format /dev/sdd
Damit löscht Rear den USB-Stick und legt auf ihm eine Partition mit dem EXT3-Dateisystem an. Die Formatierung über den obigen Befehl wenden Sie auch auf andere externe Datenträger an, die als Rettungsmedium fungieren sollen – wie etwa eine externe Festplatte. Da sämtliche Daten auf dem Medium verloren gehen, verlangt Rear noch eine Bestätigung. Kontrollieren Sie noch einmal die Gerätedatei und beantworten Sie dann die Rückfrage durch die Eingabe von "Yes". Achten Sie darauf, dass Ihr Linux-System den USB-Stick nicht automatisch einbindet beziehungsweise mounted.
Bevor Rear ein Rettungsmedium erstellen kann, müssen Sie auf dem Linux-System eine kleine Konfigurationsdatei erstellen. Sie verrät dem Werkzeug unter anderem, ob es ein ISO-Image erstellen oder einen USB-Stick präparieren soll. Abhängig von Ihrem System heißt die Konfigurationsdatei entweder "/etc/rear/local.conf" oder "/etc/rear/site.conf". Öffnen Sie sie mit einem Texteditor. Standardmäßig enthält die Datei zahlreiche Kommentare, die mit "#" beginnen. Alle Einstellungen notieren Sie darunter, wobei in jeder Zeile genau eine Einstellung steht. Ein Beispiel für eine Konfigurationsdatei finden Sie in Listing 1.
Listing 1: Konfigurationsdatei für Rear
OUTPUT=USB USB_DEVICE=/dev/disk/by-label/REAR-000 BACKUP=NETFS BACKUP_URL=usb:///dev/disk/by-label/REAR-000
Die dort verwendete Notation dürfte Ihnen vielleicht bekannt vorkommen: Tatsächlich ist die Konfigurationsdatei ein Bash-Skript, das Rear per "source" einbindet. Die einzelnen Einstellungen liegen dabei in Umgebungsvariablen. Da es sich um ein Shell-Skript handelt, überprüfen Sie die Konfigurationsdatei penibel auf Tippfehler. Andernfalls kann es passieren, dass später die Verarbeitung abbricht.
Rettungsmedium angeben
Zunächst müssen Sie Rear hinter "OUTPUT=" mitteilen, was für ein Rettungsmedium es erstellen soll. Im Fall von "OUTPUT=USB" entsteht gleich ein bootbarer USB-Stick. Alle weiteren Möglichkeiten finden Sie in der Tabelle "Mögliche Werte für OUTPUT". Einige von ihnen erfordern weitere Einstellungen. Im Fall des USB-Sticks müssen Sie beispielsweise die zugehörige Gerätedatei hinter "USB_DEVICE=" angeben. Im einfachsten Fall ist das die entsprechende Partition, wie etwa "USB_DEVICE=/dev/sdd1". Listing 1 zeigt noch eine Variante: Beim Formatieren des Sticks hat Relax-and-Recover der Partition automatisch den Namen "REAR-000" verpasst. An genau diese Partition gelangen Sie via "/dev/disk/by-label/REAR-000".
Mögliche Werte für OUTPUT
Wert
Bedeutung
RAMDISK
Erstellt nur das Basissystem des Rettungssystems in Form der "initramfs".
ISO
Erzeugt ein ISO-Image.
PXE
Legt auf einem externen PXE/NFS-Server alle für den Start des Rettungssystems notwendigen Dateien an.
OBDR
Schafft ein bootbares OBDR-Tape, das gleichzeitig das Backuparchiv enthält. Die Gerätedatei für das OBDR-Gerät ist hinter "TAPE_DEVICE=" anzugeben.
USB
Erstellt einen bootbaren USB-Stick. Die Gerätedatei für den USB-Stick ist hinter "USB_DEVICE=" zu nennen.
RAWDISK
Erzeugt ein bootfähiges Disk-Image im RAW-Format.
Möchten Sie ein ISO-Image erstellen, müssen Sie hingegen angeben, wo Rear die Datei ablegen soll. Gleiches gilt auch beim Einsatz von "OUTPUT=RAMDISK" und "OUTPUT=RAWDISK". Den Ablageort spezifizieren Sie in allen Fällen mit "OUTPUT_URL=". Im einfachsten Fall ist das, wie im folgenden Beispiel, ein Verzeichnis. Alle weiteren Speichermöglichkeiten verrät die Tabelle "Mögliche Werte für OUTPUT_URL":
OUTPUT_URL=file:///var/lib/rear/output
Mögliche Werte für OUTPUT_URL
Wert
Speicherort
file://
Lokales Verzeichnis.
fish://
Überträgt die Daten mit "lftp" und dem FISH-Protokoll.
ftp://
Transferiert die Daten mit "lftp" und dem FTP-Protokoll.
ftps://
Übermittelt Daten mit "lftp" und dem FTPS-Protokoll.
hftp://
Überträgt die Daten mit "lftp" und dem HFTP-Protokoll.
http://
Kopiert die Daten mit "lftp" und dem HTTP-Protokoll (per PUT).
https://
Transportiert die Daten mit "lftp" und dem HTTPS-Protokoll (per PUT).
nfs://
Überträgt die Daten mit "nfs" und dem NFS-Protokoll.
rsync://
Übermittelt die Daten mit "rsync" und dem RSYNC-Protokoll.
sftp://
Transferiert die Daten mit "lftp" und dem SFTP-Protokoll.
sshfs://
Überträgt die Daten mit "sshfs" und dem SSH-Protokoll.
Sicherung anlegen
Das Rettungssystem stellt später ein vorhandenes Backup wieder her. Diese Sicherung kann wahlweise Rear oder aber eine separates Backupsystem erstellen. Wer für die Datensicherung verantwortlich ist, verraten Sie Rear mit der Einstellung "BACKUP=". Mit "BACKUP=NETFS" übernimmt Rear die Datensicherung, indem es einfach alle Dateien mit "tar" in ein riesiges Archiv verpackt. Wo es das Archiv ablegen soll, bestimmt die Einstellung "BACKUP_URL=".
Im einfachsten Fall landet das Archiv mit "BACKUP_URL=file:///mnt/backup/" in einem Verzeichnis. Sie können das Back­up aber auch direkt auf dem USB-Stick und somit dem Rettungsmedium ablegen. Dazu geben Sie wie in Listing 1 die Gerätedatei des USB-Sticks an, wobei Sie noch ein "usb://" voranstellen. Weitere mögliche Speicherorte verrät die Tabelle "Mögliche Werte für BACKUP_URL".
Mögliche Werte für BACKUP_URL
Wert
Speicherort
Beispiel
cifs://
Samba/CIFS-Share
BACKUP_URL=cifs://cifs-server-name/share/path
file://
Lokales Verzeichnis
BACKUP_URL=file:///mnt/backup/
nfs://
NFS
BACKUP_URL=nfs://nfs-server-name/share/path
sshfs://
Netzwerkbackup via sshfs (benötigt das fuse-sshfs-Paket)
BACKUP_URL=sshfs://root@server/export/archives
tape://
Bandlaufwerk
BACKUP_URL=tape:///dev/nst0
usb://
USB-Gerät
BACKUP_URL=usb:///dev/sdd
Damit ist die Konfigurationsdatei bereits komplett. Den USB-Stick verwandelt Rear jetzt mit folgendem Befehl in ein Rettungsmedium:
sudo rear -v mkbackup
Rear generiert zunächst das eigentliche Rettungssystem und schreibt es auf den USB-Stick. Anschließend erzeugt das Tool das Backup und schiebt dieses, wie in der Konfigurationsdatei angegeben, ebenfalls auf den USB-Stick. Der Parameter "-v" sorgt dafür, dass Rear seine Arbeit wie in Bild 1 ausführlich protokolliert. Der Aufruf mit "mkbackup" funktioniert nur, wenn Rear selbst das Backup erstellen soll. Nur das Rettungsmedium erzeugen Sie mit dem Befehl:
sudo rear -v mkrescue
Bild 1: Rear stellt das Rettungssystem aus dem laufenden Linux-System zusammen.
System wiederherstellen
Sobald Rear den USB-Stick präpariert hat, starten Sie von ihm den Rechner. Das auf dem Stick wartende Rettungssystem begrüßt Sie mit dem Menü aus Bild 2. Dort haben Sie zunächst die Möglichkeit, von einem der internen Datenträger zu starten. Das passiert auch automatisch, wenn Sie 30 Sekunden lang keine Taste drücken. Ein im Laufwerk vergessenes Rettungsmedium richtet so keinen Schaden an.
Bild 2: Das im Menü des USB-Sticks angebotene "Hardware Detection Tool" gibt einen Überblick über die verbaute Hardware.
Die Punkte im oberen Teil des Menüs hängen vom Rettungsmedium ab. Auf dem USB-Stick finden Sie ganz oben den Hostnamen des gesicherten Rechners. In Bild 2 lautet er "ubuntu". Wenn Sie ihn anwählen, sehen Sie zwei neue Punkte: Der untere mit der Bezeichnung "Automatic Recover" stellt das Linux-System ohne weitere Rückfragen wieder her. Das funktioniert allerdings nur, wenn das Rettungssystem direkt ohne weitere Konfiguration auf das Backup zugreifen kann. Dies wäre beim USB-Stick aus dem Beispiel der Fall.
Verschiedene Eingriffsmöglichkeiten in den Wiederherstellungsprozess bietet der obere Punkt, der damit eigentlich immer die erste Wahl darstellt. Einige Rettungsmedien zeigen anstelle des Hostnamens ganz oben im Menü die beiden Punkte "Recover [...] "und "Automatic Recover [...]" an. Auch hier stellt der Letztere das Linux-System ohne weitere Rückfragen wieder her, der erste Punkt "Recover ..." startet hingegen die geführte Wiederherstellung.
In jedem Fall bootet ein minimales Linux-System. Sofern Sie sich für die geführte Wiederherstellung entschieden haben, melden Sie sich als Benutzer "root" an, ein Passwort benötigen Sie nicht. Die Wiederherstellung stoßen Sie schließlich über das Kommando rear recover an. Mithilfe von Multiple-Choice-Fragen begleitet Sie Rear jetzt durch die Wiederherstellung. In der Regel können Sie die Vorgaben übernehmen. Bei Problemen erzeugt das Werkzeug eine Log-Datei unter "/var/log/rear/". Sobald Rear das System wiederhergestellt hat, starten Sie es mit reboot neu.
Fallstricke bei Rettungsmedien vermeiden
Nach dem gleichen Prinzip verpflanzen Sie das gesicherte System auf einen anderen Rechner oder in eine virtuelle Maschine: Starten Sie dort das Rettungsmedium, mit dem Sie dann das Backup wie gezeigt zurückspielen. Dabei müssen Sie gleich zu Beginn eine der im neuen System verbauten Netzwerkschnittstellen auswählen. Sie dient als Ersatz für die Netzwerkschnittstelle im ursprünglichen System.
Da viele Virtualisierungssysteme nach wie vor Probleme beim Booten von USB-Sticks haben, empfiehlt sich dort als Rettungsmedium ein ISO-Image. In Listing 2 finden Sie dazu eine passende Konfigurationsdatei. Mit ihr erstellt Rear ein ISO-Image als Rettungsmedium ("OUTPUT=ISO"), wobei es das fertige Image im Verzeichnis "/mnt" ablegt. Das Backup übernimmt Rear wieder selbst, während die Sicherung im Ordner "/mnt/backup" landet. In genau diesem Verzeichnis erwartet auch das Rettungssystem später das Backup. Sofern wie im Beispiel Rear das Backup erstellt, dürfen Sicherung und Rettungssystem nicht auf dem Datenträger des zu sichernden Systems liegen.
Listing 2: Konfigurationsdatei für ein ISO-Image
OUTPUT=ISO OUTPUT_URL=file:///mnt/ BACKUP=NETFS BACKUP_URL=file:///mnt/backup
Wenn Sie Listing 2 übernehmen, müssen Sie folglich unter "/mnt" eine externe Festplatte oder einen anderen Datenträger mounten. Das Rettungssystem nebst Backup erstellt auch hier wieder sudo rear -v mkbackup. Bevor Sie später die Wiederherstellung mit rear recover anstoßen, müssen Sie gewährleisten, dass der Ordner "/mnt/backup" existiert und die Sicherung enthält. Liegtdas Backup beispielsweise auf einer externen Festplatte, hängen Sie diese per "mount" wieder unter "/mnt/backup" ein. Das Rettungssystem erwartet das Backup immer in dem Verzeichnis, das Sie in der Rear-Konfigurationsdatei angegeben hatten.
Sofern Sie Rear das Backup erstellen lassen, landen alle Dateien in einem TAR-Archiv. Dabei achtet Rear nicht auf noch laufende Datenbanken oder Schreibvorgänge. Folglich ist ein solches Backup mit hoher Wahrscheinlichkeit inkonsistent. Darüber hinaus erhalten Sie auf diese Weise immer nur einen Schnappschuss des aktuellen Systems.
Das Rettungssystem stellt folglich später den Stand wieder her, wie er beim Aufruf von sudo rear mkbackup vorlag. In produktiven Umgebungen sollten Sie daher nicht Rear Ihr System sichern lassen, sondern diese Aufgabe an eine Backup-Lösung delegieren. Rear spricht direkt mit Bacula, Bareos, Borg, Duplicity, Micro Focus Data Protector, FDR/Upstream, CommVault Galaxy ab Version 5 beziehungsweise Simpana, Symantec NetBackup, EMC NetWorker (Legato) und Rsync.
Darüber hinaus können Sie auch eigene Kommandozeilenbefehle hinterlegen und so beliebige weitere Backupprodukte einbinden. Um Rear mit einer Backupumgebung bekanntzumachen, hinterlegen Sie ein passendes Kürzel hinter "BACKUP=". Hinzu kommen noch weitere Informationen und Einstellungen, die vom jeweiligen Backupprogramm abhängen. Eine Beschreibung würde daher den Rahmen dieses Artikels sprengen. Sie finden jedoch alle notwendigen Informationen in der etwas unübersichtlichen Rear-Dokumentation [2]. Zahlreiche Praxisbeispiele für die Konfigurationsdatei liefert dort die Seite "Usage Scenarios" [3].
Fazit
Ein Rechner gibt in der Regel dann den Geist auf, wenn es der Nutzer am wenigsten gebrauchen kann. Mir Rear lassen sich schnell maßgeschneiderte Rettungssysteme erstellen, die im Ernstfall einen Computer wieder lauffähig machen. Dies setzt allerdings voraus, dass Sie das Rettungsmedium zu einem Zeitpunkt erstellt haben, zu dem das System noch lief.
Auch wenn die Konfiguration nur wenige Handgriffe erfordert, sollten Sie immer die Wiederherstellung durchspielen und so den Ernstfall proben. Nur so fällt Ihnen eine fehlerhafte Konfiguration frühzeitig auf. Rear selbst besteht übrigens nur aus einem Bash-Skript und lässt sich bei Bedarf um eigene Funktionen erweitern.
(dr)
Link-Codes
[3] Einsatzszenarien für Rear: http://relax-and-recover.org/usage/