Die Planung und Umsetzung einer Backup-Strategie ist unerlässlich, um Daten in bestimmten Situationen wiederherstellen zu können, zum Beispiel bei Plattendefekten, versehentlichem Löschen von Dateien, willkürlicher Korrumpierung von Dateien oder der vollständigen Zerstörung des Systems und der Backups, die am gleichen Ort aufbewahrt werden.
Die Art und der Zeitplan des Backups kann variieren, abhängig von der Wichtigkeit der Daten, der benötigten Granularität zur Wiederherstellung von Dateien und der Dauer einer akzeptablen Ausfallzeit. Zu den möglichen Backup-Strategien gehören unter anderem:
Die Archivierung des kompletten Systems auf externen Datenträgern. Dieser Ansatz schützt zwar vor allen oben aufgeführten Problemen, ist aber zeitaufwändig und unbequem bei der Wiederherstellung, insbesondere für nicht privilegierte Benutzer.
Dateisystem-Snapshots sind nützlich bei der Wiederherstellung von gelöschten Dateien, bzw. früheren Versionen von Dateien.
Kopien ganzer Dateisysteme oder Festplatten, die mit einem anderen System im Netzwerk mittels net/rsync synchronisiert werden.
Hardware oder Software RAID, was im Falle von Plattendefekten die Ausfallzeit minimiert oder vermeidet.
Üblicherweise wird eine Mischung aus verschiedenen Strategien verwendet. Es kann zum Beispiel ein Sicherungsplan erstellt und automatisiert werden, um eine wöchentliche, vollständige Systemsicherung, ergänzt mit stündlichen ZFS-Snapshots, zu erstellen. Darüber hinaus könnte man eine manuelle Sicherung einzelner Verzeichnisse oder Dateien machen, bevor diese bearbeitet oder gelöscht werden.
Dieser Abschnitt beschreibt einige Programme, die zur Erstellung und Verwaltung von Sicherungen unter FreeBSD verwendet werden können.
Die traditionellen UNIX®-Programme zum Sichern und
Wiederherstellen von Dateisystemen sind dump(8) und
restore(8). Diese Programme arbeiten auf der Block-Ebene
der Festplatte, 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 und nicht nur einen Teil des Dateisystems, oder
einen Verzeichnisbaum, der mehr als ein Dateisystem umfasst.
Anstatt Dateien oder Verzeichnisse zu schreiben, schreibt
dump
die Blöcke, aus denen die Dateien und
Verzeichnisse bestehen.
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.
Wenn restore
zum 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.
Beachten Sie bei der Verwendung von
dump
, dass es einige Eigenarten aus den
frühen Tagen der Version 6 von AT&T UNIX® (ca. 1975)
beibehalten hat. Die Standardparameter gehen davon aus, dass
auf einem 9-Spur-Band gesichert wird, und nicht auf ein
anderes Medium oder auf Sicherungsbänder mit hoher Dichte.
Diese Standardwerte müssen auf der Kommandozeile überschrieben
werden.
Es ist möglich, das Dateisystem über das Netzwerk auf einem anderen Rechner zu sichern, oder auf einem Bandlaufwerk eines anderen Rechners. Obwohl die Programme rdump(8) und rrestore(8) für diese Zwecke benutzt werden können, gelten sie als nicht sicher.
Verwenden Sie stattdessen dump
und
restore
in einer sichereren Weise über eine
SSH-Verbindung. In diesem Beispiel wird
eine vollständige, komprimierte Sicherung von
/usr
erstellt, das
anschließend an einen bestimmten Host über eine
SSH-Verbindung gesendet wird.
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
In diesem Beispiel wird RSH
gesetzt, um
über eine SSH-Verbindung eine Sicherung auf
ein Bandlaufwerk eines entfernten Systems zu schreiben:
dump
über
ssh mit gesetzter
RSH
benutzen#
env RSH=/usr/bin/ssh /sbin/dump -0uan -f tatargetuser@targetmachine.example.com:/dev/sa0 /usr
Einige integrierte Werkzeuge stehen zur Sicherung und Wiederherstellung von bestimmten Dateien und Verzeichnissen bei Bedarf zur Verfügung.
Wenn es um die Sicherung von Dateien in einem Verzeichnis geht, ist tar(1) eine gute Wahl. Dieses Werkzeug stammt aus Version 6 von AT&T UNIX® und erwartet standardmäßig eine rekursive Sicherung auf ein lokales Band. Es können jedoch Optionen angegeben werden, um den Namen einer Sicherungsdatei zu bestimmen.
In diesem Beispiel wird eine komprimierte Sicherung des
aktuellen Verzeichnisses nach
/tmp/mybackup.tgz
gespeichert. Achten
Sie bei der Sicherungsdatei darauf, dass sie nicht in dem
Verzeichnis gespeichert wird, welches gesichert werden
soll.
Um eine komplette Sicherung wiederherzustellen, wechseln
Sie mit cd
in das Verzeichnis, in dem Sie
die Daten wiederherstellen möchten und geben Sie den Namen der
Sicherungsdatei an. Beachten Sie, dass dabei alle Dateien in
dem Verzeichnis überschrieben werden. Im Zweifel sichern Sie
besser in einem temporären Verzeichnis, oder geben Sie den
Verzeichnisnamen bei der Wiederherstellung an.
Es gibt dutzende Optionen, die in tar(1) beschrieben werden. Das Programm unterstützt auch die Verwendung von Ausschlußmustern, um bestimmte Dateien von der Sicherung oder Wiederherstellung von Verzeichnissen auszuschließen.
Um bestimmte, aufgelistete Dateien und Verzeichnisse zu
sichern, ist cpio(1) eine gute Wahl. Im Gegensatz zu
tar
weiß cpio
nicht
wie ein Verzeichnisbaum durchlaufen wird. Daher ist es auf
eine Liste von zu sichernden Dateien angewiesen.
So kann beispielsweise eine Liste von Dateien mit
ls
oder find
erzeugt
werden. Dieses Beispiel erstellt eine rekursive Liste des
aktuellen Verzeichnisses, die dann über eine Pipe an
cpio
übergeben wird, um eine Sicherung
namens /tmp/mybackup.cpio
zu
erstellen.
ls
und cpio
#
ls -R | cpio -ovF /tmp/mybackup.cpio
pax(1) ist ein Programm, welches versucht die
Funktionen von tar
und
cpio
zu kombinieren. Über die Jahre
hinweg sind die verschiedenen Versionen von
tar
und cpio
leicht
inkompatibel geworden. Daher hat POSIX®
pax
geschaffen, welches versucht viele
der unterschiedlichen cpio
- und
tar
-Formate zu lesen und zu schreiben,
außerdem einige neue, eigene Formate.
Für die vorangegangenen Beispiele wäre ein äquivalenter
Aufruf von pax
:
Obwohl sich Bandmedien mit der Zeit weiterentwickelt haben, verwenden moderne Backup-Systeme in der Regel Offsite-Backups in Verbindung mit lokalen Wechseldatenträgern. FreeBSD unterstützt alle SCSI-Bandlaufwerke, wie etwa LTO und DAT. Zusätzlich gibt es begrenzte Unterstützung für SATA- und USB-Bandlaufwerke.
Für SCSI-Bandlaufwerke nutzt FreeBSD den
sa(4) Treiber, der die Schnittstellen
/dev/sa0
, /dev/nsa0
und /dev/esa0
bereitstellt. Der Name des
physikalischen Geräts ist /dev/sa0
.
Wird /dev/nsa0
benutzt, dann wird die
Backup-Anwendung nach dem Schreibvorgang das Band nicht
zurückspulen, was es ermöglicht, mehr als eine Datei auf das
Band zu schreiben. Die Verwendung von
/dev/esa0
wirft das Band aus, nachdem das
Gerät geschlossen wurde.
FreeBSD nutzt mt
für die Steuerung der
Operationen des Bandlaufwerks, wie die Suche nach Dateien auf
einem Band, oder um Kontrollmarkierungen auf ein Band zu
schreiben. Beispielsweise können die ersten drei Dateien auf
einem Band erhalten bleiben, indem sie übersprungen werden,
bevor eine neue Datei auf das Band geschrieben wird
#
mt -f /dev/nsa0 fsf 3
Dieses Werkzeug unterstützt viele Operationen. Weitere Einzelheiten finden Sie in mt(1).
Um eine Datei mit tar
auf ein Band zu
schreiben, geben Sie den Namen des Bandlaufwerks und den
Dateinamen an:
#
tar cvf /dev/sa0
file
Wiederherstellung von Dateien aus dem
tar
-Archiv von Band in das aktuelle
Verzeichnis:
#
tar xvf /dev/sa0
Benutzen Sie dump
, um ein
UFS-Dateisystem zu sichern. Dieses
Beispiel sichert /usr
, ohne danach das
Band zurückzuspulen:
#
dump -0aL -b64 -f /dev/nsa0 /usr
Interaktive Wiederherstellung von Dateien aus einer dump(8)-Datei von Band in das aktuelle Verzeichnis:
#
restore -i -f /dev/nsa0
Die FreeBSD Ports-Sammlung enthält viele Programme von Drittanbietern, die verwendet werden können um die zeitliche Erstellung von Sicherungen zu planen, zu vereinfachen und bequemer zu machen. Viele dieser Programme basieren auf dem Client-Server-Modell und können benutzt werden, um die Sicherung von einzelnen Systemen oder allen Rechnern in einem Netzwerk zu automatisieren.
Zu den bekannten Programmen gehören Amanda, Bacula, rsync und duplicity.
Zusätzlich zu den regelmäßigen Sicherungen empfiehlt es sich, die folgenden Schritte im Rahmen eines Notfallplans durchzuführen.
Erstellen Sie einen Ausdruck der Ausgabe der folgenden Kommandos:
gpart show
more /etc/fstab
dmesg
Bewahren Sie diesen Ausdruck und eine Kopie des
Installationsmediums an einem sicheren Ort auf. Im Falle
einer Wiederherstellung im Notfall, starten Sie von dem
Installationsmedium und wählen Sie Live CD
,
um eine Rettungs-Shell zu starten. Dieser Rettungsmodus kann
verwendet werden, um den aktuellen Stand des Systems
anzuzeigen, und wenn nötig, Festplatten zu formatieren und
Daten aus den Sicherungen wiederherzustellen.
Das Installationsmedium für
FreeBSD/i386 10.4-RELEASE enthält
keine Rettungs-Shell. Laden Sie für diese Version ein
Abbild der Livefs CD von ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/ISO-IMAGES/10.4/FreeBSD-10.4-RELEASE-i386-livefs.iso
.
Als nächstes testen Sie die Rettungs-Shell und die Sicherungen. Dokumentieren Sie diesen Ablauf. Bewahren Sie diese Notizen zusammen mit den Medien, den Ausdrucken und den Sicherungen auf. Diese Notizen können Ihnen im Notfall helfen eine versehentliche Zerstörung der Sicherungen zu verhindern, während Sie unter Stress eine Wiederherstellung durchführen.
Als zusätzliche Sicherheitsvorkehrung kann jeweils die letzte Sicherung an einem entfernten Standort aufbewahrt werden. Dieser Standort sollte räumlich von den Computern und Festplatten durch eine erhebliche Entfernung getrennt sein.
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>.