Vorwort
Ein Backup-System zu installieren gleicht unter Linux fast einem Abenteuer. Wo soll ich anfangen? Welche Programme brauche ich? Gibt es nicht einfach eine Backup-Software? Wenn Sie noch kein Backup-System unter Linux aufgebaut haben werden Sie genau vor solchen Fragen stehen. Ich versuche Ihnen hier einen guten Einstieg zu geben um in kurzer Zeit mit dem Backup-System umgehen zu können. Dazu gehört sowohl die Sicherungsmethode, welches Sicherungsgerät Sie verwenden sollten und welche Software dafür geeignet ist. Zudem möchte ich noch sagen das diese Dokumentation wirklich nur den Serverbereich abdeckt.
Sicherungsmethode
Bevor überhaupt ein Backup durchgeführt wird, sollten Sie sich auf jeden Fall überlegen nach welcher Methode Sie sichern möchten. Das heißt genauer gesagt: Sind Ihre Daten sehr sensibel (hängt also Ihre Existenz davon ab) oder weniger, dann sollten Sie jeden Tag ein komplettes Backup mit wechselnden Bändern durchführen. Besitzen Sie weniger sensible Daten dann reicht auch ein komplettes Wochenbackup mit ständig wechselnden Bändern. Weiter unten finden Sie eine Empfehlung wie Sie evtl. Ihr Backup-System aufbauen könnten. Dies ist wie gesagt nur eine Empfehlung und kann selbstverständlich auch anders aufgebaut sein.
Datenart Sicherungstage i. d. Woche Wieviele Medien
hoch sensibel Mo.- Fr. 5 insg. / 1 pro Sicherungstag
sensibel Mo., Mi., Fr. 3 insg. / 1 pro Sicherungstag
normal Fr. 2 insg. / 1 pro Sicherungstag in der Woche
fast egal 1x im Monat 2 insg. / 1 pro Sicherungstag im Monat
Auch wenn Sie fast auf alle Ihre Daten verzichten können, ist es sehr von Vorteil wenn Sie eine Sicherung durchführen. Es fehlen einem nämlich immer irgendwelche wichtigen Dateien nach einer Neuinstallation :-)) ! Alle Medien werden in der obigen Tabelle selbstverständlich immer in wechselndem Zyklus, also im Wochen- bzw. Monatstakt gewechselt und somit jede Woche bzw. jeden Monat überschrieben.
Die Sicherungen sollten nach Möglichkeit ohne Datenkompression durchgeführt werden. Sie ist zwar zuverlässig, kostet aber relativ viel Zeit. Wenn Sie also alle Daten auf dem Band unkomprimiert unterbringen können, sollten Sie das auch nutzen bis ihr Platz nicht mehr ausreicht.
Es gibt noch 2 Unterschiede: Ein Voll- und ein Teilbackup. Generell ist es immer besser ein Vollbackup zu machen. Das heißt alle Daten bei einer Sicherung komplett auf einem Band. Ein Teilbackup empfiehlt sich nur, wenn Sie mit dem Platz auf einem Band trotz Kompression nicht auskommen. Das heißt es wird pro Sicherung nur ein Teil Ihrer ganzen Daten gesichert. Diese Daten werden bei der nächsten Sicherung nicht überschrieben sondern aktualisiert. Die Backup-Software stellt anhand des Datums fest, ob die zu sichernde Datei neuer ist oder nicht. Ist sie neuer so wird sie gesichert und die alte Datei überschrieben.
Sicherungsgeräte
Wenn Sie ihre Sicherung zentral über einem Server laufen lassen wollen, dann gibt es generell eigentlich nur eine Wahl: SCSI Streamer. SCSI Streamer zeichnen sich durch ihre Stabilität besonders aus. Sie sind sehr flexibel in der Bedienung und erreichen eine sehr hohe Datentransferrate. Dafür sind sie aber auch etwas teuerer und benötigen zudem noch einen zusätzlichen SCSI Controller. IDE Streamer werden über einen IDE Kanal angesprochen und sind weniger flexibel als SCSI Streamer. Das zeichnet sich oft schon bei der Installation eines IDE Streamers aus, so daß oftmals der Kernel mit herstellerabhängigen Treiber gepatcht werden muss. IDE Streamer laufen relativ stabil aber haben eine relativ niedrige Übertragungsrate im Gegensatz zum SCSI Streamer. Ein weiterer Vorteil ist allerdings der geringe Preis.
Die Hardware
Mein Backupsystem sah wie folgt aus: Ein K5-100MHz (ja... darauf kriegt man ein Sicherungssystem ans laufen :-)) ), 32MB RAM eine 1GB HD und ein OnStream 30GB IDE Sicherungsgerät mit SuSE Linux 6.2 mit Samba 2.05a. Der Kernel ist derzeitig 2.2.14 und er wurde zusätzlich noch gepatcht, damit ich den Streamer ans laufen bekam. Ich bevorzuge persönlich lieber SCSI Geräte (siehe Sicherungsgeräte), da die Erfahrung doch gezeigt hat, daß sie um einiges stabiler laufen. Aus Kostengründen mußte ich mich aber durchringen dieses Laufwerk zu benutzen, welches allerdings unter Linux problemlos läuft.
Mein Ziel war es über meinem Linux Rechner verschiedene Shares von einem NT Server zu sichern, ohne die Daten auf dem Linux Rechner zwischenzulagern. Genau dieses wird Stück für Stück weiter unten beschrieben.
Backup-Software
Auf dem Linuxmarkt gibt es eine Vielzahl an Programmen. Ich habe einige Programme für mein Ziel gesucht, allerdings nicht das gefunden, was ich haben wollte. Somit mußte ich mir selber ein Backup-Script schreiben um genau das Ziel zu erreichen. Aber wir fangen erst mal mit den Grundlagen an. Um überhaupt sichern zu können ist das bewährte Programm tar der richtige Anfang. Dann sollten Sie noch wissen welche Gerätedateien angesprochen werden müssen. Bei SCSI-Streamern ist das im allgemeinen /dev/st0, bei mir war es /dev/ht0. Dann müssen Sie noch wissen wieviel Datenblöcke auf einmal geschrieben werden können. In meinen Fall waren dieses 32kB Blockgröße. Die 32kB ergeben sich aus 512byte/Sektor x 64. Dieses ist von Gerät zu Gerät ein wenig unterschiedlich. Sie können es generell von Ihrem Hersteller erfahren.
Sie müssen jetzt als root angemeldet sein. Um nun zum Beispiel all ihre Homeverzeichnisse über tar zu sichern, geben sie folgendes ein:
tar -cvv -b 64 -f /dev/st0 /home
Die Rücksicherung erfolgt fast genauso:
tar -xvv -b 64 -f /dev/st0 /home
Wenn Sie aber ein anderes Verzeichnis für die Rücksicherung benutzen möchten benutzen Sie folgenden Befehl:
tar -xvv --directory=/pfad -b 64 -f /dev/st0
Das ist die einfachste Methode. Nun kann es aber schon mal vorkommen, daß Sie mehrere Sicherungen auf ein Band nutzen möchten. Standardmäßig wird das Band nach jeder Sicherung zurückgespult und bei jeder neuen Sicherung überschrieben wird. Damit das Medium nicht nach jeder Sicherung zurückgespult wird, müssen Sie die "non rewinding" Gerätedatei für das Bandlaufwerk verwenden, wie z.B. /dev/nst0 oder wie bei meinem IDE Bandlaufwerk /dev/nht0. Zusätzlich benötigen Sie noch den mt Befehl. mt ist ein Programm, daß es ermöglicht ein Bandlaufwerk individueller zu steuern. Damit ist es zum Beispiel möglich ein Medium zu löschen, oder Daten an ein bestehendes Archiv anzuhängen. Gehen wir davon aus das Sie Daten an ein bestehendes Archiv anhängen möchten:
tar -cvv -b 64 -f /dev/nst0 /daten1
# Datensicherung erfolgt im "non rewinding" Modus.
mt -f /dev/nst0 rewind
# Das Medium wird jetzt zurückgespult und kann erst dann entnommen werden.
# Möchten Sie es nicht entnehmen, sondern sofort weitersichern so entfällt der Befehl.
mt -f /dev/nst0 eom
# Das Bandlaufwerk wird an das Ende der zuletzt beschriebenen Daten vorgespult.
tar -cvv -b 64 -f /dev/nst0 /daten2
# Die Sicherung beginnt wieder und die Daten werden jetzt angehängt.
mt -f /dev/nst0 rewind
# Das Medium wird jetzt zurückgespult und kann wieder entnommen werden.
Hinweis: Sie können die TAPE Variabel mit dem Befehl export TAPE=/dev/nst0 setzen, damit Programme wie tar oder mt standardmäßig darauf zurückgreifen.
Jetzt haben Sie zum Beispiel alle Daten gesichert. Jetzt geht es an die Rücksicherung. Auch hier hilft uns das mt Programm weiter. Möchten Sie das erste Backup wieder herstellen geben Sie folgendes ein:
mt -f /dev/nst0 rewind
# Band wird zurückgespult
tar -xvv -b 64 -f /dev/nst0 /daten1
# Rücksicherung /daten1 erfolgt
mt -f /dev/nst0 rewind
mt -f /dev/nst0 fsf 1
# Das erste Archiv wird übersprungen
tar -xvv -b 64 -f /dev/nst0 /daten2
# Rücksicherung /daten2 erfolgt
mt -f /dev/nst0 rewind
# Medium kann entnommen werden
Ich liste Ihnen hier noch die wichtigsten Optionen zu dem mt Programm auf.
Option Beschreibung
fsf Das Medium springt zu dem ersten Block des nächsten Archivs
bsf Das Medium springt zu dem ersten Block des vorherigen Archivs
eom Das Medium wird zum Ende der zuletzt beschriebenen Daten gespult
rewind Das Medium wird zurückgespult
status Es werden Statusinformationen über das Medium angezeigt
retension Das Band wird nachgespannt (vor- und zurückgespult)
erase Das Medium wird gelöscht
Das sind die wichtigsten Optionen von mt. Weitere Optionen finden Sie in der entsprechenden Manpage.
Hinweis: Sie müssen sich unbedingt merken wieviele Archive sich auf dem Medium befinden, damit die fsf Angabe korrekt gesetzt wird.
Nun gehen wir noch ein Schritt weiter und Sie möchten ihren Linux Rechner als Backup-Server einsetzen und damit z.B. 2 NT Shares zu sichern. Dazu empfehle ich den Befehl smbclient um auf den NT Server zuzugreifen. Dieses sieht bei der Sicherung wie folgt aus:
mt -f /dev/nst0 rewind
smbclient \\\\server_nt\\share_1 -U name%password -Tcb 64 /dev/nht0
# Es wird auf dem Server server_nt zugegriffen, um die Share share_1 zu sichern
# Dazu muss ein existierender Benutzer auf dem NT Server lese Rechte auf die zu
# sichernden Daten haben. Durch die Option T wird tar benutzt um ein Backup
# zu erstellen (Parameter c). Die Blockgröße ist wieder auf 64 gesetzt.
mt -f /dev/nst0 rewind
mt -f /dev/nst0 eom
smbclient \\\\server_nt\\share_2 -U name%password -Tcb 64 /dev/nht0
# Share share_2 wird gesichert
mt -f /dev/nst0 rewind
Nun muss nur noch die Rücksicherung erfolgen:
mt -f /dev/nst0 rewind
smbclient \\\\server_nt\\share_1 -U name%password -Txb 64 /dev/nht0
# Es wird auf dem Server server_nt zugegriffen, um die Daten auf share_1
# zurückzusichern. Dazu muss ein existierender Benutzer auf dem NT Server
# schreib Rechte auf die Share haben. Durch den Parameter x (extract) erfolgt
# die Rücksicherung.
mt -f /dev/nst0 rewind
mt -f /dev/nst0 fsf 1
smbclient \\\\server_nt\\share_2 -U name%password -Txb 64 /dev/nht0
# Die Daten werden auf share_2 zurückgesichert.
mt -f /dev/nst0 rewind
Nun werden Kenner wahrscheinlich einen Einwand haben. Es geht nämlich auch etwas einfacher mit dem Befehl smbmount. Es könnten ja einfach alle Shares von dem NT Server auf den Linux Rechner gemountet werden, um sie dann einfach in einem Archiv zu sichern. Prinzipiell ist das richtig, aber smbmount steckt ziemlich voll mit Bugs. Er trennt merkwürdigerweise nach einiger Zeit die Verbindung mit der Fehlermeldung "Broken Pipe". Das geschah bei mir während ich auf die zu sichernden Daten zugegriffen habe. Aus diesem Grund ist dieses Verfahren mit smbmount nicht zu empfehlen. Sollte jemand dazu noch nähere Informationen haben, so würde ich mich über ein Feedback freuen.
Hinweis: Wenn Sie in der Richtung einen Backup-Server aussetzen möchten empfehle ich Ihnen dringend eine Rücksicherung zu testen.
Fazit
Es ist zwar eine etwas umständliche Art zumal es auch andere Software gibt, wie z.B. afio und cpio. Allerdings hat man so ein absolut individuelles Backup-System das in einem Rutsch (wenn erwünscht) von einem NT Server, einem NFS Server und anderen Hosts sichern kann. Aus diesem Grund denke ich das sich die Arbeit lohnen wird. Weiterhin möchte ich noch sagen, daß ich keinerlei Verantwortung für den Inhalt bzw. Richtigkeit dieser Dokumentation übernehme.
Quellen
SuSE Linux Handbuch
smbclient Manpage
tar helpfile & Manpage
mt Manpage
Original Artikel