Login
Newsletter
Werbung

Do, 7. November 2013, 15:00

Disaster Recovery mit Hilfe der richtigen Backup-Strategie

Sichern auf Dateiebene

Dabei kann sogar der Zieldatenträger kleiner sein als seine Quelle, vorausgesetzt der belegte Platz reicht aus. Partitionen, in denen Programme enthalten sind, bei welchen die Sektorposition eine Rolle spielt, sind aber weiterhin per Image zu klonen, da es sonst zu Problemen kommt. Linux-Systeme sind von solchen Restriktionen eher nicht betroffen – vom Bootloader einmal abgesehen. Dieser kann jedoch entweder wie zuvor gezeigt per dd separat übertragen werden oder man installiert ihn nachträglich manuell.

Diese Vorgehensweise eignet sich auch sehr gut zum Umsortieren von Partitionsschemata, z.B. für den Fall, dass die auf dem Quelldatenträger weit hinten liegende System- und Swap-Partitionen auf dem Zieldatenträger weiter nach vorn verlagert werden sollen. Oder vielleicht will man beim Übertragen der Daten von der Quelle zum Ziel das Dateisystem konvertieren, vielleicht von Reiser zu ext4 oder von ext4 zu Btrfs.

Bei gewünschter Weiterverwendung muss man das Partitionsschema von der Quell- zur Zielplatte übertragen. Ansonsten kann man nach neuen Bedürfnissen und Platzverhältnissen die Partitionen manuell auf der Zielplatte anlegen, formatieren und benennen. Besonders komfortabel geht das alles in einem Durchgang mit GNU-parted.

Im folgenden Beispiel soll das o. g. Partitionsschema von sda als Quelle dienen. Dieses kann auf sdb übertragen werden oder aber es wird manuell dort mit dem Programm der Wahl erstellt. Die Partitionen im Ziel muss man dann ggf. mit dem neuen Dateisystem formatieren.

Sichern durch Kopieren

Nun muss man unterhalb von /mnt folgende Einhängepunkte erzeugen: sda1 bis sda4 und ebenso für sdb1 bis sdb4.

Dann muss man die Partitionen entsprechend zugeordnet einhängen:

# mount /dev/sda1 /mnt/sda1

bis

mount /dev/sda4 /mnt/sda4

sowie die analogen Befehle für sdb.

Nun gilt es alle Inhalte von sda1 nach sdb1, sda2 zu sdb2 etc. zu kopieren, egal ob auf der Konsole mit cp oder mit dem Dateimanager der Wahl. Dann sollte man jedoch daran denken, alle Dateien einzuschließen.

# cp -a /mnt/sda1/* /mnt/sdb1

falls cp selbst -f (»force«) stets interaktiv ist, hilft der Aufruf mit absolutem Pfad.

# /bin/cp -a(u,f) /mnt/sda1/* /mnt/sdb1

ist für das Update bereits vorhandener Dateien. Soll dagegen die Reihenfolge der Partitionsinhalte geändert werden, so werden statt einer eins-zu-eins-Kopie die Daten durch das Kopieren verlagert.

Beispiel: Das System liegt im Quell-Datenträger auf sda3, soll nun aber im Zieldatenträger physikalisch möglichst weit nach außen, also auf sdb1 geraten, um die Zugriffszeit zu verringern. Dann würde man analog dazu entsprechend umstellen und später noch die fstab und abhängig vom Bootloader, zum Beispiel die grub.conf entsprechend anpassen.

Noch flexibler geht das alles jedoch mit Rsync.

Sichern mit Rsync

Das Synchronisierungsprogramm bietet Optionen, um Dateieigenschaften zu erhalten, arbeitet mit SSH zusammen und eignet sich ideal, um auch große Datenmengen schnell, auch übers Netzwerk (auch via Internet, dann aber besser Verschlüsselt mit -e), zu übertragen.

Besonders vorteilhaft ist Rsync, wenn auf der Zielseite schon eine ältere Kopie vorliegt, denn es überprüft, welche Unterschiede zwischen Quelle und Ziel existieren und überträgt nur die geänderten Teile der Daten. Rsync vergleicht die Daten zweier Speicherorte miteinander. Der grundsätzliche Aufruf lautet daher:

# rsync [Optionen] Quelle Ziel

Hier ist die Wahl von Quelle und Ziel entscheidend. Zu beachten ist vorher, in welche Richtung man synchronisiert, um einen Datenverlust auszuschließen. Rsync bietet eine Hilfe zum Prüfen des Datentransfers: Zusammen mit der Option -n startet das Programm lediglich einen Testlauf und verrät, welche Operationen es durchführen möchte.

Es folgen ein paar simple Beispiele zu den vielfältigen Kombinationsmöglichkeiten, in Anlehnung an die obigen cp-Befehle.

Hinweis: Der Parameter -a beinhaltet die häufig erforderlichen Parameter -rlptgoD. Beide Variationen erfordern allerdings Root-Rechte.

# rsync -a --progress --stats --del /mnt/sda1/ /mnt/sdb1/

Wichtig ist jeweils der abschließende Schrägstrich nach der Pfadangabe, im Gegensatz zum vorherigen cp-Befehl.

--progress zeigt den Fortschritt an, benötigt allerdings zusätzliche Zeit, --stats zeigt die Übertragungsstatistik erst am Ende, --del löscht noch während der Übertragung auf dem Ziel Dateien, die auf dem Quelldatenträger nicht vorhanden sind. Weitere Parameter mit den zugehörigen Erklärungen zu den hier verwendeten findet man in der Manpage.

Das ganze sollte man dann für alle Partitionen durchführen, entweder nacheinander oder gleichzeitig von verschiedenen Konsolen aus.

Wer sein System bereits vollständig geklont hat und es als Zweitsystem im gleichen Rechner verwendet, der musste einige Anpassungen der Pfade an fstab und zum Beispiel grub.conf vornehmen. Wenn man die Systeme auf die hier beschriebene Art nur aktualisieren möchte, so ist es sinnvoll, die geänderten Dateien oder besser den gesamten Bootloader vom Synchronisieren durch Rsync auszuschließen:

# rsync -a --del --exclude=/boot/ --exclude=/etc/fstab /mnt/sda1/ /mnt/sdb1/

Wer viel und regelmäßig zu exkludieren hat, schreibt die Pfade und Dateien besser in eine Textdatei untereinander. Dann kann man diese mit --exclude-from=Exclude_Datei als Option einbinden und muss sie nicht jedes Mal erneut eingeben.

Möchten man unter den oben genannten Vorbedingungen die gleichen Partitionen mittels Rsync übers Netzwerk auf die Festplatte eines anderen Rechners übertragen, so sähe der Rsync-Aufruf so aus. Auf dem Quellrechner:

# rsync -a --progress --del /mnt/sda1/ root@IP.of.Target:/mnt/sdb1/

Auf dem Zielrechner:

# rsync -a --progress --del root@IP.of.Source.PC:/mnt/sda1/ /mnt/sdb1/

Anschließend wird man aufgefordert, das Root-Passwort des jeweils anderen PC einzugeben (sofern die Authentifizierung nicht über SSH-Schlüssel läuft), bevor die Übertragung beginnt. Das gelingt natürlich nur, wenn dort bereits der ssh-Daemon läuft und wenn sich die beiden Rechner im gleichen Subnetz befinden.

Bei IP.of.Target muss man die IP-Adresse des Zielrechners einsetzen, bei IP.of.Source dagegen die IP des Quellrechners.

Nutzerdaten sichern

Möchte man lediglich regelmäßig alle seine Nutzerdaten auf eine separate Festplatte sichern und das aus einem installierten Linux heraus, also ohne eine Live-CD zu booten, so braucht man lediglich dafür Sorge zu tragen, dass kein Nutzer angemeldet ist. Dann wechselt man auf die Konsole als root, hängt die Sicherungsplatte ein, zum Beispiel wieder unter /mnt/backup und kopiert wiederum per cp oder dem Dateimanager, unter Einschluss aller versteckten Dateien, entweder das gesamte /home-Verzeichnis oder nur einzelne ausgewählte Verzeichnisse auf das Sicherungsmedium.

Alternativ und etwas einfacher kann man natürlich Rsync benutzen. Man synchronisiert das /home-Verzeichnis zum Sicherungsmedium mittels des Befehls:

# rsync -a --progress --del /home/ /mnt/backup/

Vielleicht auch ohne --delete Anweisung, für den Fall, dass die in der Quelle nicht mehr existenten Dateien noch in dem Backup bewahrt werden sollen, falls dafür noch genügend Platz zur Verfügung steht.

Kommentare (Insgesamt: 21 || Alle anzeigen )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung