Datensicherung

Aus Mikiwiki
Zur Navigation springen Zur Suche springen

Als Datensicherung (auch: Backup, Sicherung, Sicherungskopie) wird das teilweise oder gesamte Kopieren der in einem Rechnersystem vorhandenen Daten in einen anderen (häufig transportablen) Datenspeicher bezeichnet. Das Ziel ist, den Datenverlust bei versehentlichem Löschen, Schädlingsbefall, Inkonsistenzen des Dateisystems oder Systemausfall zu begrenzen. Die Wiederherstellung einer Datensicherung wird als Datenrücksicherung (auch: Restore, Wiederherstellung) bezeichnet.

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)
  • Einfache Wiederherstellbarkeit aller Dateien
  • Grosse Datenmengen
  • Lange Sicherungszeiten
Differentiell Es werden nur die Daten gesichert, die sich seit der letzten Vollsicherung geändert haben oder neu hinzugekommen sind.
  • Einfache Wiederherstellbarkeit aller Dateien mittels der letzten Vollsicherung und der letzten differentiellen Sicherung.
  • Vergleichsweise grosse Datenmengen durch die Redundanzen der differentiellen Sicherungen.
Inkrementell Es werden nur die Daten gesichert, die sich seit der letzten inkrementellen Sicherung geändert haben oder neu hinzugekommen sind.
  • Kleine Datenmengen, da keine doppelten Daten gesichert werden.
  • Eher umständliche Wiederherstellung, die immer alle Sicherungssätze seit der letzten Vollsicherung benötigt.

Sicherungsmedien

Im Allgemeinen eignet sicher jeder Datenspeicher als Sicherungsmedium, sofern er das nötige Fassungsvermögen mitbringt.

Speichermedium Beschreibung Vorteile Nachteile Haltbarkeit
Festplatte Zusätzliche Festplatte innerhalb des Rechners, auf welche die zu sichernden Daten kopiert werden.
  • Einfache Art der Sicherung
  • Lästiges händisches Kopieren, das allerdinsg verskriptet werden kann.
  • Die Daten sind nur nie wirklich vollständig.
über 10 Jahre
RAID 1 Eine zusätzliche Festplatte wird mit der bestehenden zu einem RAID 1-Verbund zusammengefasst
  • Hilft gegen Festplattenausfall, da immer zumindest eine Platte alle Daten enthält.
  • Ereignisse, die den Rechner beschädigen oder gar zerstören (etwa bei Überspannung durch Blitzeinschlag) ziehen unter Umständen beide Platten in Mitleidenschaft.
  • Hilft nicht gegen Fehler im Dateisystem oder versehentliches Löschen von Dateien.
  • Insbesondere Software-RAID bringt den Nachteil mit sich, dass die Performance gegenüber einer Einzelplatte unter Umständen um 30 oder mehr Prozent sinkt.
über 10 Jahre
Externe Festplatte Die externe Festplatte wird ausschliesslich zum Zweck der Datensicherung an den Rechner angehängt.
  • Lästiges, nicht automatisierbares Verfahren.
über 10 Jahre
USB-Stick Der USB-Stick wird ausschliesslich zum Zweck der Datensicherung an den Rechner eingesteckt.
  • Robuster als eine Festplatte.
  • Geringeres Datenfassungsvermögen als eine Festplatte
  • Begrenzte (aber doch sehr hohe) Anzahl Schreibzyklen
langfristig
CD, DVD
  • Handliches Medium für kleine Sicherungen, die nicht ewig halten müssen.
  • Sehr geringes Datenfassungsvermögen
  • Notwendiger Brennvorgang
3 bis 5 Jahre
Online-Sicherung Online-Sicherungen
  • Daten nicht mehr unter direkter Kontrolle
  • Notwendigkeit einer Verschlüsselung der Daten, um Fremdzugriff zu verhindern
  • Keine Gewähr, dass der Anbieter in Zukunft noch existiert
?
Band Nach wie vor die häufigste Art der Sicherung für Langzeitarchivierung.
  • Grosse Haltbarkeit
  • Umständliche Wiederherstellung
langfristig
Analoge Medien Auslagerung auf analoge Medien wie Papier oder Ausbelichten digitaler Bilder auf Dias.
  • Sehr lange Haltbarkeit
  • Grosser Zusatzaufwand beim Sichern und Widerherstellen
über 30 Jahre

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?

Software

Zum Erstellen einer Datensicherung können unter Linux folgende Befehle verwendet werden:

Es gibt auch eine Reihe eigenständiger Datensicherungslösungen:

  • Amanda
  • Bacula ermöglicht die Sicherung, Wiederherstellung und Überprüfung von Daten in einem heterogenen Netzwerk.
  • Backuppc ermöglicht eine zentrale Erstellung und Verwaltung von Datensicherungen verschiedener Rechner.
  • Make CD-ROM Recovery erstellt eine bootfähige CD, die bei der entsprechenden Einstellung das System vollautomatisch wiederherstellt.

Daneben gibt es auch eine Anzahl proprietärer Programme wie Arkeia, Atempo, Bakbone Netvault Backup, BRU Server for Linux, EMC Legato Networker, Symantec Veritas Netbackup und SEP Sesam.

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