Eine effektive Datensicherungsstrategie pflegen

Wichtung: 3

Beschreibung: Die Kandidaten sollen in der Lage sein, eine Backup-Strategie zu planen und Dateisysteme automatisch auf verschiedenen Medien zu sichern.

Wichtigste Wissensgebiete:
Raw-Devices in einer Datei sichern und umgekehrt.
Durchführung partieller und manueller Backups.
Integritätsprüfung eines Backups.
Backups partiell oder vollständig wiederherstellen.

Liste wichtiger Dateien, Verzeichnisse und Anwendungen:
cpio
dd
dump
restore
tar

Sicherungstrategie - Volles Backup, inkrementelles Backup

Datensicherung ist ein wichtiges Kapitel, denn es gibt nichts Schlimmeres als verloren gegangenen Daten nachzutrauern. Wenn man sich Gedanken gemacht, welche Dateien überhaupt regelmäßig gesichert werden sollen, so muss man sich eine Sicherungsstrategie überlegen.

Der erste Gedanke ist oftmals, die zu sichernden Dateien in bestimmten zeitlichen Abständen (ggf. täglich) komplett zu sichern. Hier spricht man von einem vollem Backup, so dass man den komplettet Datenbestand zurücksichern kann. Dies kann aber zu großen Leistungseinbrüchen führen, wenn es sich um einen großen Datenbestand handelt, da jedes mal die kompletten Daten gesichert werden, obwohl der Großteil der Daten sich nicht verändert hat.

Um diesem entgegenzusteuern kann man die Sicherungstrategie so festlegen, dass nur die Dateien gesichert werden, die sich seit der letzten Vollsicherung geändert haben. Dieses Prinzip nennt man inkrementelles Backup. Bei einem inkrementellen Backup kann man die Daten nur zurücksichern, wenn das Vollbackup vorhanden ist:

Montag: Vollbackup [20,9 GB]
Dienstag: inkrementelles Backup 1, geänderte Daten [60,2 MB]
Mittwoch: inkrementelles Backup 2, geänderte Daten [46,2 MB]
Donnerstag: inkrementelles Backup 3, geänderte Daten [5,9 MB]
Freitag: inkrementelles Backup 4, geänderte Daten [83,9 MB]

Um die komplette Datensicherung zurückzuspielen, benötigt man alle fünf Sicherungen, da sich in den inkrementellen Sicherungen jeweils die Änderungen vom Tag befinden.

Wichtig: Beim Zurückspielen muss die Reihenfolge eingehalten werden, wie diese auch gesichert wurden. Also zuerst das Vollbackup, dann die inkrementelle Sicherung 1, inkrementelle Sicherung 2, usw...

Backup-Level bei inkrementeller Sicherung
Bei der inkrementellen Sicherung kommt es zu der Problematik, dass alle Sicherungen benötigt werden, um ein Backup vollständig zurückgespielt werden muss. Aus diesem Grund wurden so genannte Backup-Level eingeführt. Hier werden den Backups (sowohl vollständige als auch inkrementelle Backups) Backup-Level zugeordnet. Somit werden bei der nächsten Sicherung die Daten, die sich seit dem letzten Backup-Level geändert haben.

Montag: Vollbackup, Level 0, [20,9 GB]
Dienstag: inkrementelles Backup 1, Level 1, geänderte Daten [60,2 MB]
Mittwoch: inkrementelles Backup 2, Level 1, geänderte Daten [98,2 MB]
Donnerstag: inkrementelles Backup 3, Level 1, geänderte Daten [125,0 MB]
Freitag: inkrementelles Backup 4, Level 1, geänderte Daten [153,2 MB]

Anders als im ersten Beispiel werden nun in jedem inkrementellen Backup die Änderungen seit dem Vollbackup gespeichert. Somit wächst logischerweise die Dateigröße der einzelnen inkrementellen Backups. Dafür benötigt man aber in diesem Fall nur noch zwei Sicherungen, nämlich das Vollbackup und eine inkrementelle Sicherung.

Backup mit tar

Das Programm tar wurde ursprünglich dafür entwickelt, um Backups auf Bandlaufwerken zu speichern. Heutzutage wird es dazu genutzt, um partielle bzw. manuelle Backups zu erstellen. Man kann tar dazu nutzen, um Verzeichnisse zu archivieren oder in eine gepackte Datei zu komprimieren. In der Regel wird letzteres durchgeführt, da tar mit dem Programm gzip zusammenarbeitet. Die drei wichtigsten Funktionen von tar sind -c für das Erstellen, -t für das Anzeigen und -x für das Entpacken von Archiven. Beispiele:

// Archiv erstellen
# tar -czf backup.tgz /home /var/log /etc

// Archiv anzeigen
# tar -tzf backup.tgz

// Archiv entpacken
# tar -xzf backup.tgz

Backup mit cpio

cpio hat einen ähnlichen Funktionsumfang während einer Sicherung wie tar, hat aber zwei nützliche Vorteile. Zum einen arbeitet cpio mithilfe der Linux-Pipe zusammen, so dass man cpio mit der Standard-Ausgabe füttern kann. Man kann z.B.: in einem Verzeichnis nur die JPG-Bilder sichern:

# ls *.jpg | cpio -o > /dev/fd0

Somit kann man mit den unterschiedlichsten Linux-Programmen wie find, ls, usw. eine beliebige Standard-Ausgabe erzeugen, welche von cpio verarbeitet wird. Man könnte beispielsweise eine inkrementelle Sicherung erstellen, indem man mit find sich die Dateien anzeigen lässt, die in einer Zeitspanne geändert wurden:

# find /etc -mtime -5 -maxdepth 2 -depth | cpio -o > /dev/fd0

dump/restore - Backup erstellen

Mit dump ist es möglich, Vollbackups und inkrementelle Backups inklusive Backup-Level zu erstellen. Außerdem kann dump ganze Dateisysteme (Partitionen) oder einzelne Verzeichnisse sichern. Somit ist dump ein vollwertiges Backup-Werkzeug. Dump speichert die Informationen über die erstellten Backups in der Datei /etc/dumpdates. Die Syntax lautet

dump [-Level] [-u] [-f Backupdatei] Dateisystem/Verzeichnis

Wichtige Optionen:

-f = Speicherort, kann Platte, Bandlaufwerk oder eine Datei sein
-u = Aktualisiert die Datei /etc/dumpdates

Beispiel:

//Erstes Vollbackup erstellen
dump -0ua -f /dev/tape /dev/hda1

//Erstes inkrementelles Backup erstellen
dump -1ua -f /dev/tape /dev/hda1

Restore - Backup wiederherstellen

Um Sicherungen wiederherzustellen, welche von dump erstellt wurden, benötigt man das Programm restore. Wichtige Optionen: -f = Angabe zur Datei, die das Backup enthält -C = Backup überprüfen -r = Backup wiederherstellen -i = Interaktiv, Eingabeaufforderung bei der Wiederherstellung

// Backup testen
# restore -C -f /home/backup

// Backup wiederherstellen
# mke2fs /dev/hda4
# mount /dev/hda4 /mnt/recovery
# cd /mnt/recovery
# restore -r -f /home/backup

Images mit dd (Device to Device Copy)

Das Programm dd (Device to Device copy) ist ein spezielles Kopierprogramm. Es wird in aller erster Linie dazu genutzt um Dateien von einem Gerät zu einem anderen zu kopieren. Dd erstellt 1:1-Kopien von Datenträgern. Egal ob Festplattenpartitionen, CDs oder DVDs -- Dd liest und schreibt zuverlässig blockweise. Da Dd diese Blöcke nicht verarbeitet oder interpretiert, spielt es keine Rolle, um welches Dateisystem es sich handelt.

Syntax:

dd if=Quelle of=Ziel

Beispiele:

// 1:1-Kopie von hda1 nach hdb1
dd if=/dev/hda1 of=/dev/hdb1

// CD-Image erstellen
dd if=/dev/hdc of=image.iso

// Blockgröße ändern
dd if=/dev/hda1 of=/dev/hdb1 bs=2k //2048 Bytes Blöcke

// MBR-Bootrecord sichern
dd if=/dev/hda of=/dev/fd0 bs=512 count=1

// MBR-Bootrecord zurückschreiben
dd if=/dev/fd0 of=/dev/hda1 bs=512 count=1

Count bedeutet die Sektorenzahl, die zum jeweiligen Dateisystem passt. Unter FAT16 ist es 1 Sektor, unter FAT32 sind 6 Sektoren, unter NTFS sind es 16 Sektoren und das Linux-Dateisystem Ext2fs verwendet zwei Sektoren. Zusätzlich sollte man den ersten Sektor jeder erweiterten Partition sichern. Er enthält die Infos über weniger bekannt, EPBR ( Extended Partition Boot Record ), der zum Zugriff auf die logischen Laufwerke benötigt wird.