Datensicherung
Als Datensicherung (auch: Backup, Sicherung, Sicherungskopie) wird das teilweise oder gesamte Kopieren der auf einem Rechner (meist auf der Festplatte) vorhandenen Daten in einen anderen (häufig transportablen) Datenspeicher bezeichnet. Das Ziel ist, den Datenverlust bei versehentlichem Löschen, Schädlingsbefall, Inkonsistenzen des Dateisystems, Festplattendefekt oder Systemausfall durch eine regelmässige und häufige Datensicherung zu begrenzen. Die Wiederherstellung einer Datensicherung wird als Datenrücksicherung (auch: Restore, Wiederherstellung) bezeichnet.
Zum Erstellen und Zurücksichern einer Datensicherung wird Datensicherungssoftware verwendet.
Konzept
Die klassische Datensicherung unterscheidet drei verschiedene Verfahren, die üblicherweise in regelmässiger Reihenfolge miteinander kombiniert werden.
Sicherungsverfahren | Beschreibung | Vorteile | Nachteile |
---|---|---|---|
Vollständig | Es werden alle in einem Datenspeicher vorhandenen Daten gespeichert (engl. full dump). Dies geschieht üblicherweise durch Kopieren der vorhandenen Dateien, es kann aber (z. B. mit Clonezilla oder partimage) auch die gesamte Festplatte oder Partition gesichert werden. |
|
|
Differentiell | Es werden nur die Daten gesichert, die sich seit der letzten Vollsicherung geändert haben oder neu hinzugekommen sind. |
|
|
Inkrementell | Es werden nur die Daten gesichert, die sich seit der letzten inkrementellen Sicherung geändert haben oder neu hinzugekommen sind. |
|
|
Eine häufig verwendete Datensicherungsstrategie ist das sogenannte "Generationen-Rotationsprinzip" (auch bekannt als "Grossvater-Vater-Sohn"): Die "Sohn"-Medien enthalten die Tagessicherungen, die "Vater"-Medien die Wochensicherungen und die "Grossvater"-Medien die Monatssicherungen. Der Ablauf ist dabei beispielsweise wie folgt:
- An den ersten vier Tagen der ersten Woche (Montag bis Donnerstag) wird jeweils eine inkrementelle oder differentielle Datensicherung auf die "Sohn"-Medien 1 bis 4 erstellt.
- Am fünften Tag (Freitag) der ersten Woche wird eine Vollsicherung auf das "Vater"-Medium 1 gemacht. Die Sicherung der Woche 1 des Vormonats wird dabei überschrieben.
- An den ersten vier Tagen der zweiten Woche (Montag bis Donnerstag) wird jeweils eine inkrementelle oder differentielle Datensicherung auf die "Sohn"-Medien 1 bis 4 erstellt. Die Sicherungen der Vorwoche werden dabei überschrieben.
- Am fünften Tag (Freitag) der zweiten Woche wird eine Vollsicherung auf das "Vater"-Medium 2 gemacht. Die Sicherung der Woche 2 des Vormonats wird dabei überschrieben.
- An den ersten vier Tagen der dritten Woche (Montag bis Donnerstag) wird jeweils eine inkrementelle oder differentielle Datensicherung auf die "Sohn"-Medien 1 bis 4 erstellt. Die Sicherungen der Vorwoche werden dabei überschrieben.
- Am fünften Tag (Freitag) der dritten Woche wird eine Vollsicherung auf das "Vater"-Medium 3 gemacht. Die Sicherung der Woche 3 des Vormonats wird dabei überschrieben.
- An den ersten vier Tagen der vierten Woche (Montag bis Donnerstag) wird jeweils eine inkrementelle oder differentielle Datensicherung auf die "Sohn"-Medien 1 bis 4 erstellt. Die Sicherungen der Vorwoche werden dabei überschrieben.
- Am fünften Tag (Freitag) der vierten Woche wird eine Vollsicherung auf das "Grossvater"-Medium 1 gemacht. Die entsprechende Monatssicherung des Vorjahres wird dabei überschrieben. Die "Grossvater"-Medien sollten dabei für den Katastrophenfall an einem Ort ausser Hause gelagert werden.
- Nun beginnt der Zyklus von vorne.
Sicherungsmedien
Im Allgemeinen eignet sicher jeder Datenspeicher als Sicherungsmedium, sofern er das nötige Fassungsvermögen mitbringt.
Speichermedium | Beschreibung | Vorteile | Nachteile | Haltbarkeit |
---|---|---|---|---|
Interne Festplatte | Zusätzliche Festplatte innerhalb des Rechners, auf welche die zu sichernden Daten kopiert werden. |
|
|
über 10 Jahre |
Interne Festplatte mit RAID 1 | Eine zusätzliche Festplatte wird mit der bestehenden zu einem RAID 1-Verbund zusammengefasst |
|
|
über 10 Jahre |
Externe Festplatte | Die externe Festplatte wird ausschliesslich zum Zweck der Datensicherung an den Rechner angehängt. |
|
über 10 Jahre | |
Festkörperlaufwerk |
|
langfristig | ||
USB-Stick | Der USB-Stick wird ausschliesslich zum Zweck der Datensicherung an den Rechner eingesteckt. |
|
|
langfristig |
CD, DVD |
|
|
3 bis 5 Jahre | |
Magnetband | Nach wie vor die häufigste Art der Sicherung für Langzeitarchivierung. |
|
|
langfristig |
Online-Sicherung | Online-Sicherungen |
|
? | |
Analoge Medien | Auslagerung auf analoge Medien wie Papier oder Ausbelichten digitaler Bilder auf Dias. |
|
|
über 30 Jahre (Papier) |
Für langfristige Datensicherungen stellen sich durch den rasanten Wechsel von Standards weitere Probleme:
- Werden Schnittstellen wie IDE, SATA oder USB in Zukunft überhaupt noch unterstützt?
- Werden die gesicherten Dateiformate in Zukunft noch unterstützt?
FAQ
Datensicherung mit dd
Grundsätzlich genügt eine Datensicherung mit dd, um ein einzelnes Linux-System zu sichern. Beim Sichern einer Partition sollte diese aber entweder nicht oder nur lesbar (read-only) eingehängt sein. Beim Sichern einer vollständigen Festplatte sollte der Rechner entweder nicht laufen - sehr unpraktisch! - oder von einem externen Medium booten. Wird das nicht beachtet, entsteht als Ergebnis womöglich ein korruptes Dateisystem!
Die Datenrücksicherung mit einer solchen Lösung ist für den Systemverwalter nicht sehr schwierig, dauert aber für eine einzelne Datei ebenso lange wie für den ganze Datensicherung.
Datensicherung mit tar
Erstellen eines vollständigen Abbilds einer Linux-Installation in der Datei "backup.tar.bz2", die sich später (im Notfall oder zur Vervielfältigung) auf eine andere Festplatte und ein anderes Dateisystem entpacken lässt. Dabei wird ein Archiv erzeugt ("-c"), die Zugriffsrechte bleiben erhalten ("-p"), es erfolgt eine ausführliche Ausgabe auf dem Bildschirm ("-v") und die hinter der Option "-f" stehende Datei wird mit bzip2 komprimiert ("-j").
# tar -cvjpf /tmp/backup.tar.bz2 /
Eine Datensicherung dieser Art erzeugt einige Fehlermeldungen: weil tar ein Abbild von der Wurzel ("/") des Dateisystems an erzeugen soll, versucht es zwangsläufig, in einer Rekursion sich selber mit in die Datensicherung einzubinden. Bei diesem Versuch meldet es notgedrungen, dass die Abbilddatei sich während des Archivierens verändert hat. Zwar lässt sich mit dieser Fehlermeldung leben, doch ist es ohnehin nicht sinnvoll, alle Dateien und Verzeichnisse in die Abbilddatei mit aufzunehmen: die Daten im Heimatverzeichnis "/home" etwa sollten ohnehin regelmässig auf ein externes Speichermedium gesichert werden. In der Abbilddatei zur Systemwiederherstellung haben sice nichts zu suchen, denn zur eigentlichen Systemwiederherstellung tragen sie nichts bei und blähen nur den Tarball unnötig auf.
Mit dem Schalter "--exclude-from" können bestimmte Dateien und Verzeichnisse ausdrücklich aus dem Tarball ausgeschlossen werden. Diese Option liest auszuschliessende Dateien und Verzeichnisse aus einer Datei ein.
# cat << EOF >> /tmp/exclude > /home/* > /mnt/* > /usr/portage/distfiles/* > /tmp/backup.tar.bz2 > EOF # tar -cvjp --exclude-from=/tmp/exclude -f /tmp/backup.tar.bz2 /
Die Wildcards ("*") hinter den Verzeichnisangaben blenden sämtliche Dateien und Unterverzeichnisse innerhalb des auszuklammernden Verzeichnisses aus. Fehlt die Wildcard, so übernimmt tar das gesamte Verzeichnis nicht mit ins Archiv. Auch der Dateiname der Abbilddatei selbst sollte in der Ausschlussdatei stehen (hier "/tmp/backup.tar.bz2").
Vor dem Erstellen der Abbilddatei sollte mit mount geprüft werden, was genau im System gerade eingehängt ist. Etwa eingehängte externe Datenträger oder Netzwerkfreigaben würden sonst mit ins Abbild einfliessen, falls sie nicht vorher ausgehängt oder ausdrücklich ausgeschlossen werden. Andererseits hängen manche Distributionen aus Sicherheitsgründen die Boot-Partition nicht mit ein. In diesem Fall muss darauf geachtet werden, dass auch sie mit ins Abbild gelangt.
Eine so erstellte Abbilddatei kann anschlissend auf eine DVD gebrannt werden.
Datenrücksicherung mit tar
Bei der Wiederherstellung der erzeugten Abbilddatei hilft eine Live-CD (z. B. Knoppix), wobei auch textbasierte Live-CDs wie Grml oder die Installationsdatenträger von SUSE oder Red Hat im Rescue-Modus völlig ausreichen. Damit nach dem Start der Live-Distribution das DVD-Laufwerk wieder für den Datenträger mit dem Abbild frei wird, muss die Live-CD so gebootet werden, dass das Betriebssystem im Arbeitsspeicher des Rechners abgelegt wird und von dort aus arbeitet. Dies erlaubt es, nach dem Hochfahren die Live-CD auszuhängen und gegen den Datenträger mit dem Abbild auszutauschen. Bei den meisten Live-Systemen heisst der entsprechende Bootparameter "toram". Knoppix wird also mit "knoppix toram" gestartet, bei Grml heisst der Befehl "grml toram", bei Gentoo "gentoo docache".
Vor dem Zurückspielen der Abbilddatei muss erst einmal die neue Festplatte partitioniert und formatiert werden, am besten mit cfdisk.
Nun müssen die neu erstellten Partitionen ins Dateisystem der Live-CD eingehängt werden. Bei Verwendung der Gentoo-Live-CD kann das Einhängen beispielsweise wie folgt aussehen. Der dabei verwendete Einhängepunkt "/mnt/gentoo" stellt eine spezielle Konvention von Gentoo Linux dar; bei anderen Live-CDs wird vorab ein geeigneter Einhängepunkt angelegt. Hier wird erst das Wurzelverzeichnis von der Festplatte eingehängt, danach werden die Einhängepunkte für die Boot- und Home-Partition angelegt, diese beiden Partitionen eingehängt und schliesslich die Swap-Partition aktiviert.
# mount /dev/hda3 /mnt/gentoo # mkdir /mnt/gentoo/{boot,home} # mount /dev/hda1 /mnt/gentoo/boot # mount /dev/hda4 /mnt/gentoo/home # swapon /dev/hda2
Nun kann die Abbilddatei auf die Festplatte gespielt werden. Dazu wird zuerst die Live-CD aus dem System ausgehängt:
# umount /mnt/cdrom
Jetzt wird die DVD mit der Abbilddatei eingelegt und eingehängt. Im Beispiel steht "/dev/hdb" für die Gerätebezeichnung des DVD-Laufwerks, die aber auch anders lauten kann.
# mount /dev/hdb /mnt/cdrom
Schliesslich wird die Abbilddatei in die richtige Partition (hier "/mnt/gentoo") entpackt. Der Unterschied zum Anlegen der tar-Datei liegt dabei in der Option "-x", welche für das Entpacken des Archivs steht.
# cd /mnt/gentoo # tar -xvjpf /mnt/cdrom/backup.tar.bz2
Bleiben Partitionen und Laufwerkshierarchie gegenüber der ursprünglichen Installation erhalten, so brauchen keine Konfigurationsänderungen am Bootmanager oder an der Partitionstabelle durchgeführt zu werden. Änderungen an der Partitionstabelle müssen aber in der zurückgesicherten Datei "/etc/fstab" eingetragen werden. Wurde das Abbild "umgezogen", also beispielsweise statt auf die erste auf eine zweite Festplatte entpackt, so müssen die Einträge in der Datei "/boot/grub/grub.conf" entsprechend angepasst werden.
Abschliessend muss bei der Wiederherstellung auf eine neue Festplatte auch der noch fehlende Bootmanager in den Master Boot Record der ersten Festplatte installiert werden - geschieht das nicht, läuft der erste Bootvorgang ins Leere. Fast alle aktuellen Distributionen verwenden als Bootmanager GRUB, der sich wie folgt aus den Daten des wiederhergestellten Abbild installieren lässt. Mit den folgenden Befehlen wird ins entpackte Abbild gewechselt, als sei davon gebootet worden; das ermöglicht der Befehl chroot. Im Verzeichnis "/proc" liegen etliche Systeminformationen, die GRUB benötigt. Deshalb ist es notwendig, dieses Verzeichnis zuvor einzuhängen.
# mount -t proc none /mnt/gentoo/proc # chroot /mnt/gentoo /bin/bash
Nach dem Aufruf von GRUB innerhalb der chroot-Umgebung findet man sich wieder in einer Eingabeaufforderung. Der Befehl "root" zeigt dabei auf die Boot-Partition (hier mit "hd0,0" auf die erste Partition der ersten Festplatte; das wäre auch der richtige Befehl, falls es bei der Installation keine eigene Boot-Partition gibt, sondern "/boot" direkt in der Root-Partition sitzt. Bei einer Wiederherstellung auf die erste Partition der zweiten Festplatte müsste der Befehl dagegen "hd1,0" lauten.). Mit dem Befehl "setup" wird der Bootmanager in den MBR der Festplatte geschrieben, meist soll er auf "hd0" landen, also auf der ersten Festplatte im System.
# grub grub> root (hd0,0) grub> setup (hd0) grub> quit
Vor einem Neustart aus der Live-CD heraus ins neue, aus der Abbilddatei hergestellte Linux, werden alle eingehängten Partitionen mit umount aus dem System ausgehängt. Die Swap-Partition wird dabei mit "swapoff /dev/hda2" deaktiviert. Ein Reboot des Rechners führt dann zum Hochfahren des neu installierten Systems (hoffentlich ;-).
Datensicherung mit kombinierten Befehlen
1. Sicherung und gleichzeitige Komprimierung des Verzeichnisses "/etc".
$ cd /etc $ find . -print | cpio -o | gzip | dd of=/tmp/etcbkg.cpio.gz
2. Datenrücksicherung.
$ mkdir /tmp/etc $ cd /tmp/etc $ dd if=/tmp/etcbkg.cpio.gz | gzip -d | cpio -idum
Datensicherung auf entferntem Rechner ("remote backup")
Erstellung eines remote backup von "/etc" auf Rechner "meister".
$ ssh meister "find /etc -depth -print | cpio -oc" > /tmp/meister_etc.cpio
Alternativemöglichkeit zur Erstellung eines remote backup von "/etc" auf Rechner "meister".
$ ssh meister "find /etc -depth -print | cpio -oc" | gzip | dd of=/tmp/meister_etc.cpio.gz
Datensicherung auf ein Magnetband
Das folgende Skript "shareTar.sh" wechselt ins Verzeichnis "/samba/share/mitarbeiter" und sichert dort die Verzeichnisse "abc" und "xyz" auf das im Bandlaufwerk "/dev/st0" eingelegte Magnetband. Nach erfolgreicher Datensicherung wird das Magnetband zurückgespult und ausgeworfen.
#!/bin/bash # # Author Michael Kuhn # Date 27 January 2009 # Description Script to backup the SMB share of host gnu using tar(1). # The script should be launched as user "root" with # # nohup /home/sisis/bin/shareTar.sh & # TAPE=/dev/st0 LISTING=/home/sisis/shareTar.list # Launch the backup # printf "Backup started at %s\n" "$(date)" cd /samba/share/mitarbeiter # # There is no backup for directory "kuhn" since there is only old stuff in it tar cf ${TAPE} abc xyz rc=$? printf "Backup done with rc=%d\n" ${rc} test ${rc} -eq 0 || { printf "PANIC -- check the backup tape or device\n\n" exit 1 } # Re-read the archive # printf "re-reading the tape... started at %s\n" "$(date)" tar tvf ${TAPE} > ${LISTING} numberOfFiles=$(wc -l < ${LISTING}) printf "\nDone -- found %d files on archive\n" ${numberOfFiles} printf "Listing can be found in ${LISTING}\n" printf "Backup done at %s\n\n" "$(date)" test -c ${TAPE} && mt -f ${TAPE} rewoffl exit ${rc}
Weblinks
Herausgeber | Sprache | Webseitentitel | Anmerkungen |
---|---|---|---|
Wikipedia | ger | Datensicherungwbm | Enzyklopädischer Artikel |