19.10. Datensicherung

Die wichtigsten Programme zur Sicherung von Daten in FreeBSD sind dump(8), tar(1), cpio(1) und pax(1).

19.10.1. Sichern und Wiederherstellen

dump und restore sind die traditionellen Backup-Programme in UNIX® Systemen. Sie betrachten das Laufwerk als eine Ansammlung von Blöcken, operieren also unterhalb des Abstraktionslevels von Dateien, Links und Verzeichnissen, die die Grundlage des Dateisystemkonzepts bilden. Im Gegensatz zu anderen Backup-Programmen sichert dump ein ganzes Dateisystem auf einem Gerät. Es ist nicht möglich nur einen Teil des Dateisystems, oder einen Verzeichnisbaum, der mehr als ein Dateisystem umfasst, zu sichern. dump schreibt keine Dateien oder Verzeichnisse, sondern die Blöcke, aus denen Dateien und Verzeichnisse bestehen. Wenn restore für das Extrahieren von Daten verwendet wird, werden temporäre Dateien standardmäßig in /tmp/ abgelegt. Wenn Sie von einer Platte mit einem kleinen /tmp-Verzeichnis zurücksichern, setzen Sie die Umgebungsvariable TMPDIR auf ein Verzeichnis mit mehr freiem Speicherplatz, damit die Wiederherstellung gelingt.

Anmerkung:

Wird dump benutzt, um das Root-Verzeichnis zu sichern, werden /home, /usr und viele andere Verzeichnisse nicht gesichert, da dies normalerweise Mountpunkte für andere Dateisysteme oder symbolische Links zu diesen Dateisystemen sind.

dump hat einige Eigenarten, die noch aus den frühen Tagen der Version 6 von AT&T UNIX® (ca. 1975) stammen. Die Parameter sind für 9-Spur-Bänder (6250 bpi) voreingestellt, nicht auf die heute üblichen Medien hoher Dichte (bis zu 62.182 ftpi). Bei der Verwendung der Kapazitäten moderner Bandlaufwerke muss diese Voreinstellung auf der Kommandozeile überschrieben werden.

rdump und rrestore können Daten über Netzwerk auf ein Band, das sich in einem Laufwerk eines anderen Computers befindet, überspielen. Beide Programme benutzen die Funktionen rcmd(3) und ruserok(3) zum Zugriff auf das entfernte Bandlaufwerk. Daher muss der Anwender, der das Backup durchführt, auf dem entfernten Rechner in .rhosts eingetragen sein. Die Argumente zu rdump und rrestore müssen zur Verwendung auf dem entfernten Computer geeignet sein. Wenn zum Beispiel mit rdump von einem FreeBSD-Rechner aus auf ein Exabyte-Bandlaufwerk mit Namen komodo zugreifen werden soll, nutzen Sie:

# /sbin/rdump 0dsbfu 54000 13000 126 komodo:/dev/nsa8 /dev/da0a 2>&1

Die Authentifizierung über .rhosts stellt ein Sicherheitsrisiko dar. Nutzen Sie diese Funktion also mit Vorsicht.

Es ist auch möglich, dump und restore über eine gesicherte Verbindung mit ssh einzusetzen:

Beispiel 19.1. dump mit ssh benutzen
# /sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \
	  targetuser@targetmachine.example.com dd of=/mybigfiles/dump-usr-l0.gz

Alternativ kann das integrierte RSH benutzt werden.

Beispiel 19.2. dump über ssh mit gesetzter RSH benutzen
# env RSH=/usr/bin/ssh /sbin/dump -0uan -f tatargetuser@targetmachine.example.com:/dev/sa0 /usr

19.10.2. tar

tar(1) stammt ebenfalls aus Version 6 von AT&T UNIX® (ca. 1975). tar arbeitet mit dem Dateisystem und schreibt Dateien und Verzeichnisse auf das Band. tar unterstützt zwar nicht alle Optionen, die bei cpio(1) zur Verfügung stehen, aber dafür erfordert es auch nicht die ungewöhnliche Kommando-Pipeline, die von cpio verwendet wird.

Um Daten mit tar auf ein angeschlossenes Exabyte-Bandlaufwerk am Host komodo zu archivieren:

# tar cf - . | rsh komodo dd of=tape-
device obs=20b

Bei der Sicherung über ein unsicheres Netzwerk, sollte stattdessen ssh benutzt werden.

19.10.3. Cpio

cpio(1) ist das ursprüngliche Programm von UNIX® Systemen zum Dateitransfer mit magnetischen Medien. cpio hat Optionen zum Byte-Swapping, zum Schreiben einer Anzahl verschiedener Archivformate und zum Weiterleiten von Daten an andere Programme über eine Pipeline. Dieses letzte Leistungsmerkmal macht cpio zu einer ausgezeichneten Wahl für Installationsmedien. cpio kann jedoch keine Dateibäume durchlaufen, so dass eine Liste der zu bearbeitenden Dateien über stdin angegeben werden muss.

cpio unterstützt keine Backups über das Netzwerk. Man kann aber eine Pipeline und ssh verwenden, um Daten an ein entferntes Bandlaufwerk zu senden.

# for f in directory_list; do
find $f >> backup.list
done
# cpio -v -o --format=newc < backup.list | ssh user@host "cat > backup_device"

Dabei steht directory_list für eine Aufzählung der Verzeichnisse, die gesichert werden sollen. user@host gibt den Benutzer auf dem Zielrechner an, der die Sicherung laufen lässt. Der Ort der Sicherung wird durch backup_device angegeben, beispielsweise/dev/nsa0.

19.10.4. pax

pax(1) ist IEEE/POSIX® Antwort auf tar und cpio. Über die Jahre hinweg sind die verschiedenen Versionen von tar und cpio leicht inkompatibel geworden. Daher hat POSIX®, statt eine Standardisierung zwischen diesen auszufechten, ein neues Archivprogramm geschaffen. pax versucht viele der unterschiedlichen cpio- und tar-Formate zu lesen und zu schreiben, außerdem einige neue, eigene Formate. Die Kommandostruktur ähnelt eher cpio als tar.

19.10.5. Amanda

Amanda (Advanced Maryland Network Disk Archiver) ist ein Client/Server-Backupsystem, nicht nur ein einzelnes Programm. Ein Amanda-Server kann auf einem einzigen Bandlaufwerk Datensicherungen von jeder beliebigen Anzahl von Computern speichern, sofern auf diesen jeweils ein Amanda-Client läuft und sie über Netzwerk mit dem Amanda-Server verbunden sind.

Ein häufiges Problem bei Standorten mit einer Anzahl großer Festplatten ist, dass das Kopieren der Daten auf Band langsamer vor sich geht als solche Daten anfallen. Amanda löst dieses Problem durch Verwendung einer Holding Disk, einer Festplatte zum gleichzeitigen Zwischenspeichern mehrerer Dateisysteme.

Für Datensicherungen über einen längeren Zeitraum erzeugt Amanda Archivsets von allen Dateisystemen, die in Amandas Konfigurationsdatei genannt werden. Ein Archivset ist eine Gruppe von Bändern mit vollen Backups und Reihen von inkrementellen oder differentiellen Backups, die jeweils nur die Unterschiede zum vorigen Backup enthalten. Zur Wiederherstellung von beschädigten Dateisystemen benötigt man Das Letzte volle Backup und alle darauf folgenden inkrementellen Backups.

Die Konfigurationsdatei ermöglicht die Feineinstellung der Backups und des Netzwerkverkehrs von Amanda. Amanda kann zum Schreiben der Daten auf das Band jedes der oben beschriebenen Backuprogramme verwenden. Amanda ist nicht Teil des Basissystems, es muss über die Ports-Sammlung oder als Paket installiert werden.

19.10.6. Tue nichts

Tue nichts ist kein Computerprogramm, sondern die am häufigsten angewendete Backupstrategie. Diese kostet nichts, man muss keinen Backup Plan befolgen, einfach nur nein sagen. Wenn etwas passiert, einfach grinsen und ertragen!

Wenn Ihre Zeit und Daten nicht so wichtig sind, dann ist die Strategie Tue nichts das geeignetste Backup-Programm für den Computer. Aber UNIX® ist ein nützliches Werkzeug, und im Laufe der Zeit kann es dazu verwendet werden, eine Sammlung von Dateien zu schaffen, die wertvoll sind.

Tue nichts ist die richtige Backupmethode für /usr/obj und andere Verzeichnisbäume, die vom Computer exakt wiedererzeugt werden können. Ein Beispiel sind die Dateien, die diese Handbuchseiten darstellen – sie wurden aus Quelldateien im Format XML erzeugt. Es ist nicht nötig, Sicherheitskopien der HTML- oder PostScript®-Dateien zu erstellen, solange die XML-Dateien in regelmäßige Backups mit einbezogen werden.

19.10.7. Welches Backup-Programm ist am Besten?

dump, Punkt und Schluss. Elizabeth D. Zwicky hat alle hier genannten Backup-Programme bis zur Erschöpfung ausgetestet. Ihre eindeutige Wahl zur Sicherung aller Daten mit Berücksichtigung aller Besonderheiten von UNIX® Dateisystemen ist dump.

Elizabeth erzeugte Dateisysteme mit einer großen Vielfalt ungewöhnlicher Bedingungen (und einiger gar nicht so ungewöhnlicher) und testete jedes Programm durch ein Backup und eine Wiederherstellung dieser Dateisysteme. Unter den Besonderheiten waren Dateien mit Löchern, Dateien mit Löchern und einem Block mit Null-Zeichen, Dateien mit ausgefallenen Buchstaben im Dateinamen, unlesbare und nichtschreibbare Dateien, Gerätedateien, Dateien, deren Länge sich während des Backups ändert, Dateien, die während des Backups erzeugt und gelöscht werden, u.v.m. Sie berichtete über ihre Ergebnisse in LISA V im Oktober 1991, s. Torture-testing Backup and Archive Programs.

19.10.8. Die Wiederherstellung in einem Notfall

19.10.8.1. Vor dem Unglück

Es sind vier Vorkehrungen zu treffen, um auf jedes erdenkliche Unglück vorbereitet zu sein.

Als erstes drucken Sie das bsdlabel jeder Festplatte mit einem Befehl wie bsdlabel da0 | lpr. Drucken Sie ebenfalls eine Kopie von /etc/fstab) sowie alle Bootmeldungen.

Zweitens, brennen Sie eine livefs-CD. Diese CD-ROM enthält alle nötigen Programme, um in einen Reperaturmodus zu starten, aus dem heraus Sie unter anderem dump(8), restore(8), fdisk(8), bsdlabel(8), newfs(8) sowie mount(8) starten können. ISO-Abbilder für das livefs-System finden Sie unter ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/ISO-IMAGES/10.2/FreeBSD-10.2-RELEASE-i386-livefs.iso.

Anmerkung:

Seit FreeBSD 9.0-RELEASE sind ISO-Abbilder für das livefs-System nicht mehr verfügbar. Neben den ISO-Abbildern für CD-ROM können auch Abbilder für USB-Datenspeicher verwendet werden, um ein System wiederherzustellen. Das memstick-Abbild für FreeBSD/i386 10.2-RELEASE finden Sie unter ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/i386/ISO-IMAGES/10.2/FreeBSD-10.2-RELEASE-i386-memstick.img.

Drittens, machen Sie regelmäßig Backups auf Band. Jede Änderung seit dem letzten Backup kann unwiederbringlich verloren gehen. Versehen Sie die Backup-Bänder mit Schreibschutz.

Viertens, testen Sie das erstellte livefs-System sowie die Backups. Dokumentieren Sie diesen Test und bewahren Sie diese Notizen zusammen mit der livefs-CD und den Backups. Diese Notizen können Ihnen im Notfall helfen eine versehentliche Zerstörung des Backups zu verhindern, während Sie unter Druck eine Wiederherstellung durchführen.

Als zusätzliche Sicherheitsvorkehrung, kann man jeweils die livefs-CD und Bänder doppelt erstellen. Eine der Kopien sollte an einem entfernten Standort aufbewahrt werden. Ein entfernter Standort ist NICHT der Keller im gleichen Gebäude. Ein entfernter Standort sollte von den Computern und den Festplatten physikalisch durch eine erhebliche Entfernung getrennt sein.

19.10.8.2. Nach dem Unglück

Prüfen Sie als Erstes, ob die Hardware überlebt hat. Dank regelmäßigen Offside-Backups besteht kein Grund, sich um die Software Sorgen zu machen.

Falls die Hardware beschädigt wurde, ersetzen Sie zuerst die defekten Teile bevor Sie den Computer benutzen.

Falls die Hardware funktioniert, legen Sie die livefs-CD ein und starten den Rechner. Das originale Installationsprogramm wird auf dem Bildschirm angezeigt werden. Legen Sie zuerst Ihr Land fest. Danach öffnen Sie das Menü Fixit -- Repair mode with CD-ROM/DVD/floppy or start a shell. und wählen den Eintrag CD-ROM/DVD -- Use the live filesystem CD-ROM/DVD aus. restore und die anderen benötigten Programme, befinden sich dann im Verzeichnis /mnt2/rescue.

Stellen Sie die Dateisysteme nacheinander wieder her.

Versuchen Sie mit mount die Root-Partition der ersten Festplatte einzuhängen. Wenn das bsdlabel beschädigt wurde, benutzen Sie bsdlabel um die Platte neu zu partitionieren und zu benennen und zwar so, dass die Festplatte mit dem Label übereinstimmt, welches ausgedruckt und aufbewahrt wurde.

Verwenden Sie newfs um die Dateisysteme neu zu erstellen. Hängen Sie mit mount -u -o rw /mnt die Root-Partition der Festplatte mit Schreibzugriff ein. Benutzen Sie die Backups, um die Daten für das jeweilige Dateisystem wieder her zu stellen. Hängen Sie das Dateisystem mit umount /mnt wieder aus. Wiederholen Sie diesen Ablauf für jedes beschädigte Dateisystem.

Sobald das System wieder läuft, machen Sie gleich wieder ein vollständiges Backup auf neue Bänder. Denn die Ursache für den Absturz oder den Datenverlust kann wieder zuschlagen. Eine weitere Stunde, die Sie jetzt noch investieren, kann später weiteres Missgeschick ersparen.

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <de-bsd-questions@de.FreeBSD.org>.

Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.