23.4 Backups und Datensicherungen
Dabei wollen wir uns zuerst der wichtigen Thematik der Datensicherung widmen. Als Datensicherung oder Backup bezeichnet man sowohl den Vorgang der Sicherung als auch die Sicherung selbst.
Diese Datensicherung dient natürlich in erster Linie der Vorbeugung des Datenverlustes z. B. durch:
- Hardwareprobleme (Festplatten-Crash)
- Diebstahl
- Feuer- und Wasserschäden
- versehentliches Löschen von Daten
Des Weiteren ist eine Datensicherung natürlich auch zur längerfristigen Archivierung sowie zur Dokumentation des Werdegangs verschiedener Projekte sinnvoll.
Ein Backup wird erst dann zum Backup, wenn es im Rahmen einer gut dokumentierten Backup-Strategie vorgenommen wird sowie innerhalb eines angemessenen Zeitraums vollständig wieder eingespielt werden kann.
Ansonsten unterscheidet man noch zwischen vollständiger und inkrementeller Datensicherung. Bei einer inkrementellen Datensicherung werden nur die Daten gesichert, die sich in Bezug auf die letzte Sicherung verändert haben, während ein vollständiges Backup entsprechend alle Daten sichert und daher auch mehr Plattenplatz benötigt.
23.4.1 Die Backup-Strategie
Aber vor dem ersten Backup steht natürlich eine entsprechende Strategie. Ohne diese Überlegungen zur Datensicherung macht ein Backup keinen Sinn. Und so muss man mindestens festlegen,
- Wann
- ... ein Backup vorgenommen wird. Wichtig in diesem Zusammenhang ist die Regelmäßigkeit. So könnte man zum Beispiel definieren, dass jede Woche ein vollständiges und jeden Tag ein inkrementelles Backup gemacht werden soll.
- Wie
- ... das Backup erfolgen soll – also ob inkrementell oder vollständig.
- Wer
- ... für die Datensicherung verantwortlich ist und diese auf Erfolg oder Misserfolg kontrolliert.
- Welche
- ... Daten überhaupt gesichert werden sollen und in welchem Zusammenhang sie mit den anderen »Angaben« stehen. Vielleicht muss man manche Daten weniger oft speichern als andere?
- Was
- ... für eine Archivierungsmethode vorgesehen ist. Man könnte zum Beispiel die wöchentlichen Backups auf Tapes speichern, während die täglichen Sicherungen nur auf einem Backup-Server abgelegt werden.
- Wo
- ... sich das Archiv mit den Datensicherungen befindet. Sinnvollerweise ist es in einem anderen Gebäude oder zumindest in einem anderem Raum als die Server selbst, sonst haben Sie nämlich bei einem Feuer oder einem Wasserschaden nichts gewonnen.
- Wie lange
- ... die einzelnen Backups aufzubewahren sind. Soll eine Datensicherung gleichzeitig als Archiv dienen, so ist mit dieser selbstverständlich anders zu verfahren als mit einer reinen Sicherheitskopie, von der vielleicht nur die jeweils aktuelle Version benötigt wird.
- Wann, wie und wiederum durch wen
- ... die Backups auf Wiederherstellbarkeit überprüft werden. Nichts ist schlimmer als eine unbrauchbare Sicherung.
Wenn man sich im Rahmen der Planung einer Backup-Strategie nicht mit allen diesen Fragen beschäftigt, dann hat man definitiv ein paar Aspekte vergessen. Vor allem der letzte Punkt ist extrem wichtig.
23.4.2 Die Software
Es stellt sich als Nächstes die Frage, welche Software man zur Backup-Erstellung einsetzen möchte. Schließlich wird sich niemand regelmäßig hinsetzen und Daten per Hand kopieren – dieser Illusion sollte man sich gar nicht erst hingeben.
Gerade in diesem Bereich gibt es nun viele kommerzielle Lösungen, die teilweise auch mit beziehungsweise für Spezialhardware wie Tape-Bibliotheken oder Ähnliches vertrieben werden. Aber gerade für kleine bis mittlere Setups bieten sich auch der normale Unix-Baukasten und die darauf aufbauende Software an.
Der Unix-Baukasten
Der normale Unix-Baukasten bringt schon alles mit, was man zum Bauen eines Backup-Systems so braucht. Mit dem Programm tar und diversen Komprimierungstools wie gzip oder bzip2 kann man schließlich schon Archive erstellen. Im Besonderen bietet tar auch verschiedene Möglichkeiten, bestehende Backup-Archive mit dem Dateisystem zu synchronisieren: So gibt es eine Option »-d«, die den Inhalt des Archivs mit dem des Dateisystems vergleicht. Auch können neue Dateien zu einem Archiv hinzugefügt und alte entsprechend gelöscht werden. <Die Manpage beziehungsweise Kapitel 9 im Buch helfen bei diesen Features sicherlich weiter.>
Dass bestimmte Verzeichnisse automatisiert in einem mit dem aktuellen Datum versehenen Archiv gesichert werden, lässt sich natürlich am besten mit einem Skript erreichen. Ein entsprechendes Skript ist in der Regel schnell geschrieben, schließlich muss außer date (um das Archiv nach dem aktuellen Datum zu benennen), tar und gzip nicht viel aufgerufen werden.
Lässt man dieses Skript nun durch cron regelmäßig ausführen, muss man sich auch nicht mehr selbst um die Ausführung kümmern, und zwei potenzielle Fehlerquellen – die eigene Faulheit und die ersten Alzheimer-Anzeichen – sind auch ausgeschaltet.
Jetzt stellt sich nur noch die Frage: Wohin damit? Schließlich nützt einem nach einem Festplatten-Crash das auf derselben Platte gespeicherte Backup recht wenig. Eine zweite Platte sollte also mindestens im Budget enthalten sein. Wenn man möchte, kann man das Backup auch über SSH z. B. mit scp auf einen zweiten Rechner verschieben. Setzt man dabei das Login über RSA-Keys ein, kann das sogar automatisiert erfolgen, da die Authentifizierung kein per Hand eingegebenes Passwort erfordert.
Fertige Projekte
Auf diese Art und Weise könnte man sich also ein einfaches Backup-System selbst basteln. Wer hier jedoch nicht das Rad neu erfinden möchte, kann natürlich auch bei den üblichen Verdächtigen wie freshmeat.net nach entsprechenden Projekten suchen – die meisten freien Backup-Projekte nutzen intern ebenfalls diese Standardwerkzeuge.
Abbildung 23.1 BackupPC Dateirestore
Ein solches Projekt ist beispielsweise der backuppc (backuppc.sf.net). Das Projekt entwickelt eine Backup-Software für dedizierte Backup-Server. Mit anderen Worten läuft die Software auf einem separaten Rechner, der die gesicherten Daten speichert. Auf die Daten kann schließlich über SSH oder auf Windows-Freigaben über einen Samba-Client zugegriffen werden.
Diese Daten werden je nach Konfiguration in regelmäßigen Abständen auf den BackupPC-Rechner kopiert und dort gespeichert. Über das Web- interface kann man schließlich einen Restore über das Netzwerk ausführen, also die Dateien einzeln oder auch insgesamt zurücksichern.