Ü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:
- im Boot-Screen von grub die Tabulator-Taste drücken
- den Boot-Eintrag mit Taste 'e' editieren
- die Zeile mit 'kernel' wählen
- nochmal 'e' zum Bearbeiten drücken
- 'selinux=0' anfügen
- mit 'ENTER' bestätigen
- 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
- das Disk-Layout geändert hat, denn ReaR formatiert beim Recovery
die Disks und muss darum die Informationen zum Disk-Layout im Image
ablegen
- neue Hardware eingebaut UND Treiber dafür installiert wurden
- 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