Das FreeBSD-Handbuch
Zurück | Kapitel 19. Speichermedien | Weiter

# 19.12. Datensicherung

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

## 19.12.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. Das `dump`-Kommando schreibt keine Dateien oder Verzeichnisse auf das Band, 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, müssen Sie möglicherweise die Umgebungsvariable `TMPDIR` auf ein Verzeichnis mit mehr freiem Speicherplatz setzen, damit die Wiederherstellung gelingt.

> Anmerkung: Wenn Sie mit `dump` das Root-Verzeichnis 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 Sie zum Beispiel mit `rdump` von einem FreeBSD-Rechner aus auf ein Exabyte-Bandlaufwerk einer Sun mit Namen `komodo` zugreifen möchten, setzen Sie das folgende Kommando ab:

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

Zum Ausführen dieses Kommandos müssen Sie auf dem entfernten Rechner in `.rhosts` eingetragen sein. Die r-Kommandos sind ein großes Sicherheitsrisiko, daher sollten Sie deren Verwendung sorgfältig abwägen.

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

Sie können ebenfalls mit der internen Methode von `dump` auf entfernte Rechner zugreifen, indem Sie die Umgebungsvariable `RSH` setzen:

Beispiel 19-2. `dump` über ssh mit gesetzter `RSH` benutzen

    # RSH=/usr/bin/ssh /sbin/dump -0uan -f tatargetuser@targetmachine.example.com:/dev/sa0 /usr

## 19.12.2. `tar`

tar(1) stammt ebenfalls aus Version 6 von AT&T UNIX (ca. 1975). `tar` arbeitet mit dem Dateisystem, denn es 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 an einer Sun-Workstation (namens `komodo`) angeschlossenes Exabyte-Bandlaufwerk zu archivieren, geben Sie Folgendes ein:

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

Wenn Sie Bedenken bezüglich der Sicherheit beim Backup über das Netz haben, sollten Sie `ssh` anstatt `rsh` benutzen.

## 19.12.3. Cpio

cpio(1) ist das ursprüngliche Programm von UNIX Systemen zum Dateitransfer mit magnetischen Medien. `cpio` hat (neben vielen anderen Leistungsmerkmalen) 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. Leider kann `cpio` 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 `rsh` 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 Sie sichern wollen. `user`@`host` gibt den Benutzer auf dem Zielrechner an, der die Sicherung laufen lässt. Der Ort der Sicherung wird durch `backup_device` angegeben (z.B. `/dev/nsa0`).

## 19.12.4. `pax`

pax(1) ist die Antwort von IEEE/POSIX® 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.12.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, Sie müssen Amanda über die Ports-Sammlung oder als Paket installieren.

## 19.12.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 Ihre Daten nicht so wichtig sind, dann ist die Strategie “Tue nichts” das geeignetste Backup-Programm für Ihren Computer. Aber UNIX ist ein nützliches Werkzeug, Sie müssen damit rechnen, dass Sie innerhalb von sechs Monaten eine Sammlung von Dateien haben, die für Sie wertvoll geworden 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 SGML erzeugt. Es ist nicht nötig, Sicherheitskopien der Dateien in den sekundären Formaten wie etwa HTML zu erstellen. Die Quelldateien in SGML sollten jedoch in die regelmäßigen Backups mit einbezogen werden.

## 19.12.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.12.8. Die Wiederherstellung in einem Notfall

### 19.12.8.1. Vor dem Unglück

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

Als erstes drucken Sie das bsdlabel jeder Ihrer Festplatten (z.B. mittels `bsdlabel da0 | lpr`), die Partitions- und Dateisystemtabelle jeder Festplatte (mit `/etc/fstab`) sowie alle Bootmeldungen, jeweils in zweifacher Ausfertigung.

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/9.1/FreeBSD-9.1-RELEASE-i386-livefs.iso.

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

Viertens, testen Sie das in Schritt 2 erstellte “livefs”-System sowie die für das Backup notwendigen Bänder. Dokumentieren Sie diesen Test und bewahren Sie diese Notizen zusammen mit der “livefs”-CD und den Bändern auf. Wenn der Ernstfall eintritt, werden Sie vielleicht so genervt sein, dass Sie ohne Ihre Notizen vielleicht das Backup auf Ihren Bändern zerstören. (Wie das geht? Man braucht nur unglücklicherweise den Befehl `tar cvf /dev/sa0` einzugeben um ein Band zu überschreiben).

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 Bürogebäude. Eine Anzahl von Firmen im World Trade Center musste diese Lektion auf die harte Tour lernen. Ein entfernter Standort sollte von Ihrem Computer und Ihren Festplatten physikalisch durch eine erhebliche Entfernung getrennt sein.

### 19.12.8.2. Nach dem Unglück

Die Schlüsselfrage ist, ob Ihre Hardware überlebt hat. Denn da Sie ja regelmäßig Backups angefertigt haben, brauchen Sie sich um die Software keine 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 in das Laufwerk ein und starten den Rechner, wodurch das originale Installationsprogramm von FreeBSD gestartet wird. Legen Sie zuerst Ihr Land fest. Danach öffnen Sie das Menü `Fixit -- Repair mode with CDROM/DVD/floppy or start a shell.` und wählen den Eintrag CDROM/DVD -- Use the live filesystem CDROM/DVD aus. `restore` und die anderen Programme, die Sie benötigen, befinden sich dann im Verzeichnis `/mnt2/rescue`.

Stellen Sie die Dateisysteme nacheinander wieder her.

Versuchen Sie die Root-Partition Ihrer ersten Festplatte einzuhängen (z.B. mit `mount /dev/sd0a /mnt`). 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, das Sie ausgedruckt und aufbewahrt haben.

Verwenden Sie `newfs` um neue Dateisysteme auf den Partitionen anzulegen. Hängen Sie nun die Root-Partition der Festplatte mit Schreibzugriff ein (mit `mount -u -o rw /mnt`). Benutzen Sie Ihr Backup-Programm um die Daten für das jeweilige Dateisystem aus den Backup-Bändern wieder her zu stellen (z.B. durch `restore vrf /dev/sta`). Hängen Sie das Dateisystem wieder aus (z.B. durch `umount /mnt`). Wiederholen Sie diesen Ablauf für jedes betroffene Dateisystem.

Sobald Ihr 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 dranhängen, kann Ihnen später ein weiteres Missgeschick ersparen.

Zurück | Zum Anfang | Weiter
Backup-Strategien | Nach oben | Netzwerk-, speicher- und dateibasierte Dateisysteme

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>.