Datensicherung

Eine Datensicherung, auch Backup genannt, ist eine notwendige und zugleich komplexe Angelegenheit.

Deswegen sollte man sich vorher klar machen, was man erreichen möchte. Zusätzlich sollte man allen Beteiligten (Auftraggeber bzw. Benutzern und Vorgesetzten) gelegentlich erklären, was das Backup leistet - und was eben nicht.

Ein Wiederherstellen des letzten gesicherten Standes des Rechners ist ein klassisches Backup. Aus Sicherheitsgründen sollte man immer mehrere Generationen des Backups besitzen. Auch Backup-Medien können Defekte aufweisen.

Vom Backup zu unterscheiden ist die Offlinelagerung und die Verfügbarkeit der Daten.

Richtige Datenbanken brauchen besondere Beachtung beim Backup. Meist bringt die Datenbank ein spezielles Tool mit.

Anmerkung: Dies ist ein sehr schlechte Idee da dies ein großes Sicherheitsrisiko ist. So können alle angemeldeten Benutzer aus der für jeden zugänglichen Prozesstabelle(etwa mit ps aux das Passwort auslesen. Besser ist es das Benutzername und Passwort in  .my.cnf  zu speichern und diese Datei read-only (-r-------; 0400) für den Backup-User zugänglich zu machen.

Teilweise Sicherung

Normalerweise reicht es, folgendes zu sichern:

Das setzt aber voraus, dass wirklich sämtliche Konfigurationsdateien in und unterhalb von /etc liegen (wie bei Debian), dass alle Installationen von selbst kompilierter Software und nicht in Paketform gelieferter Software in und unterhalb von /usr/local und /opt liegen (da mußt Du selbst aufpassen), und natürlich, dass es eine Möglichkeit gibt, die Paketliste wieder automatisiert zurück zu installieren, und zwar möglichst schnell und einfach (ist bei Debian der Fall, mittels dpkg --get-selections und dpkg --set-selections und anschließendem apt-get dselect-upgrade).

Klassischerweise werden Backups mit Programmen wie tar auf Bänder gemacht (Tape/Streamer)

Wenn man kein Band benutzen will ... Automatische Sicherungen

Auch wenn Bandlaufwerke Vorteile bieten sind sie doch teuer, langsam und benötigen fast immer manuelles zutun. Deshalb kann es gerechtfertigt sein sie z.B nur für bestimmte Zwecke ergänzend zu Backupservern mit Festplatten zu verwenden.

Für Ideen schaue man sich die Seite rsync/SnapshotBackups sowie die Links auf der Originalseite an. Oder auch das Tool dar.

Vollständige Sicherung

Ansonsten kann man natürlich, genug Platz vorausgesetzt, auch einfach das gesamte System sichern. Außer einer Möglichkeit zu booten, die Platten ggf. neu zu partitionieren und auf das Backup-Gerät zuzugreifen (nicht lachen: so selbstverständlich scheint das gar nicht zu sein), braucht man nichts weiter zu beachten. Linux besitzt keine versteckten Systemdateien oder so etwas ähnliches. Und diese Features bietet meistens die Distributions-CD, wenn nicht, bastelt man sich eine BootDiskette mit der Bootdisk-HOWTO.

Man kann für solche Aktivitäten tar benutzen. Ein Komplettbackup des gesamten Systems auf DAT-Tape geht mit

    cd / ; tar cvf /dev/st0 --exclude=./proc --exclude=./tmp .

Man hüte sich davor, dabei Kompression mit gzip ("z") oder bzip2 ("j") zu verwenden, denn:

Man sollte aber vorher u.U. ein init S machen, d.h. auf Singleuser-Modus ohne Netzwerk runterfahren, damit so wenig wie möglich Dienste während des Backups laufen. Dann muss man sich noch Gedanken machen, wie man ein Linux wieder booten kann, wenn der Plattencrash passiert ist - oft reicht die Boot-CD der jeweiligen Distribution, aber nicht immer ist dort auch der passende Code für das gerade benutzte Tape dabei.

Am besten einmal ein Backup fahren, von der CD booten und mittels (st0 = SCSI-Tape-Device 0)

    tar tvf /dev/st0

gucken, ob man auf das Tape Zugriff hat. Ansonsten kann man auch folgendes benutzen, um z.B. auf irgendein Medium (ZIP, MOD, JAZ, etc.) zu sichern:

    mount /mod; cd / ; tar cvjf /mod/backup.tar.bz2 --exclude=./mod .   # weitere excludes s.o.!

das Restore geht dann analog:

    cd / ; tar xvjf /mod/backup.tar.bz2 .

aber vorher natürlich sicherstellen, dass tar und bzip2 auf einem bootfähigen Rettungsmedium zur Verfügung stehen. Und natürlich die Partitionen entsprechend anordnen. Man kann auch innerhalb des Rettungssystems die zukünftige root-Partition z.B. unter /mnt mounten, alle anderen Partitionen dann, wie gewünscht, darunter. Die Partitionierung ist im Prinzip beliebig (sie muss nicht unbedingt mit der vorherigen übereinstimmen), man sollte aber darauf achten, dass auf den neu erstellten Partitionen genug Platz ist für die jeweiligen geplanten Mountpoints (z.B. ein /var von 10 MB ist selten sinnvoll).

Der Parameter "j" beim tar-Aufruf komprimiert den Datenstrom mit bzip2, siehe dazu auch Anmerkungen bei der Bandsicherung. Bei Sicherung auf Festplatte / Wechselmedium kann das sinnvoll sein, denn die komprimieren i.d.R. nicht selbst - es bleibt aber gefährlich bei Medienfehlern!

Links

Fragen und Antworten

Frage: Wie kann man unter Linux bestimmte Files und die ganze Partition so sichern, dass man nachher einzelne Files aus einem Backup wieder herstellen kann? Geht das mit tar? Und wie kann man dann auf dem Band (SCSI-Dat) sehen, welche Files dort schon angelegt wurden? Wieso kann man nicht mit xtar auf das Band zugreifen? Fragen über Fragen...

Antwort:

Versuche es mit dump. Alle Zugriffsrechte, Zeiten, Links und sonst alles Notwendige werden gesichert.

    dump 0f /dev/st0 /mountpoint    # sichert eine Partition
    dump 0f /dev/st0                # sichert einzelne Files

    cd /mnt ; restore rf /dev/st0   # stellt eine Partition wieder her
    cd /mnt ; restore if /dev/st0   # stellt einzelne Files per interaktivem Eingriff wieder her

Zu weiteren Optionen siehe man dump und man restore (ggfs. vorher installieren).

Anmerkung: dump & restore gehen nur auf ext2/ext3 Dateisystemen (und einigen anderen Dateisystemen, die dump/restore implementiert haben).

Wenn man eine Liste von Dateien haben will, die gesichert wurden, und mittels dieser Liste dann schnell einzelne Dateien restaurieren will (d.h. aus 2GB innerhalb von 1-2 Minuten, nicht einer Stunde), sollte man sich einmal dds2tar anschauen. Das ist eine Erweiterung für tar, welche eine Indexdatei erzeugt und beim Restore das Band schnell an die richtige(n) Stelle(n) spulen kann. tar selbst kann das von Haus aus normalerweise nicht.

Ist es richtig, dass dds2tar nicht bei DLT Laufwerken funktioniert (der Programmname deutet ja auch eigentlich auf dds Streamer) ? Beim Erstellen der index-Datei mit dds2index scheint noch Alles zu klappen aber beim Zurücksichern bekomme ich die Meldung "ioctl SEEK input/output ERROR". Ursprünglich war ich auf der Suche, die Rücksicherung einer einzelnen Datei aus einem 5 GB tar-Archiv vom DLT Band zu beschleunigen... -- IngoSchnieders 2003-06-23 09:41:51

Wer eine hübsche, simple GUI für das Tape-Backup haben will und ein DAT-Tape hat, kann sich ruhig mal kdat angucken. Das Programm für KDE erzeugt Standard-tar-Archive auf dem Tape, diese lassen sich also auch ohne ein laufendes KDE wieder restaurieren - und es erlaubt ein Restore von einzelnen Dateien, erzeugt Index-Dateien und ist nett zu bedienen.

Frage: Ich möchte einmal wöchentlich eine Vollsicherung durchführen und die restlichen (6) Tage nur eine Differential-/Zuwachssicherung. Sollte man nun als Referenz die letzte Sicherung nehmen oder doch lieber die letzte Vollsicherung? Der Vorteil, wenn ich die letzte Sicherung nehme düfte sein, dass die Backups kleiner sind, da sich ja von Samstag auf Sonntag weniger ändert als von Montag auf Sonntag (Wenn Sonntag auf Montag die Vollsicherung stattfindet). Allerdings werd ich im Falle einer Rücksicherung alle Differentialsicherungen seit der letzten Vollsicherung benötigen, was sicherlich auch suboptimal ist (Eine defekte Datei/Datenträger unter 7 Stück und schon kann man Sonntags keine vollständige Rücksicherung mehr machen) Wie macht Ihr eure Differentialsicherungen?

Erfahrungen aus dem Alltag

Software

Zur Durchführung von Backups gibt es einiges an Software. Als erstes wäre hier natürlich tar zu nennen. Eine etwas neuere Abwandlung von tar zum Backup auf Fesplatten nennt sich dar. Und dann gibt es noch höherwertige Komplettlösungen für Backups:


DatenSicherung (zuletzt geändert am 2009-07-23 20:00:20 durch JonesHamatoma)