Mit Obnam komfortabel Backups erledigen

Aus LinuxUser 07/2014

Mit Obnam komfortabel Backups erledigen

© Haloocyn, freeimages.com

In die Vollen

Das CLI-Tool Obnam erlaubt Backups und das Wiederherstellen selbst dann, wenn der X-Server streikt. Die Vielfalt an Option ermöglicht den Einsatz im heimischen Netz, aber auch im SOHO-Bereich.

Festplatten kennen nur drei grundlegende Zustände: leer, voll, kaputt. Zwischen den ersten beiden speichern sie mehr oder weniger wichtige Daten. Allerdings wechselt die Hardware oft schneller zu Zustand 3, als es einem lieb ist. Wer also nicht nach der Torvalds-Devise “Echte Männer brauchen keine Backups” lebt, benötigt über kurz oder lang eine geeignete Strategie und die dazu passende Software.

Die Auswahl der passenden Programme fällt groß aus [1]. Obnam hebt sich von der Masse durch eine Vielzahl an Optionen ab, die es in den meisten Fällen ermöglichen, eine optimale Sicherung zu erstellen. Das ausgezeichnete Tutorial [2] und die Manpage des Projekts [3] helfen bei Spezialfällen weiter.

Obnam stammt aus der Feder des finnischen Debian-Entwicklers und Linux-Urgesteins Lars Wirzenius. Er arbeitet seit 2006 an der Python-Software, die auf Wunsch Backups auf lokalen Festplatten, auf NFS- oder SMB-Shares oder auf entfernten Servern speichert, wozu sie das SFTP-Protokoll unterstützt.

Auf Nummer sicher

Die meisten Backup-Tools basieren auf den Algorithmen von Rsync [4]. Diese liefern eine der wichtigsten Eigenschaften, die eine Backup-Software bieten sollte: die inkrementelle Datensicherung. Dabei sichert die Software immer nur die Änderungen seit der letzten vollen oder inkrementellen Sicherung.

Allerdings macht diese Methode von Zeit zu Zeit eine komplette Sicherung der Daten notwendig. Das kostet Zeit und beim Transfer über das Internet zusätzlich Bandbreite. Beim Wiederherstellen erhöht sich bei dieser Methode ebenfalls der Aufwand, da die Daten sich meist aus mehreren einzelnen Sicherungen zusammensetzen. Die Alternative einer differenziellen Sicherung, die immer die Änderungen zur letzten komplett speichert, braucht dagegen mehr Speicherplatz.

Als Lars Wirzenius im Jahr 2006 einen Onlinedienst für Backups ins Leben rufen wollte, gefielen ihm diese Ansätze nicht, wie er in der Ankündigung zur stabilen Version 1.0 von Obnam im Jahr 2012 schrieb [5]. Er implementierte daher für Obnam die Funktion Copy-on-Write, kurz COW [6], die ebenfalls im Dateisystem BTRFS für die Snapshot-Funktion zum Einsatz kommt.

Das blockbasierte Vorgehen ermöglichte in Obnam die Snapshot-Funktion, die es von vielen anderen Backup-Systemen unterscheidet und in die Nähe von kommerziellen Produkten mit “Near-continuous Data Protection” (Near-CDP) rückt [7]. Dabei verwendet die Software bereits vorhandene identische Blöcke wieder, selbst wenn sie sich in einer anderen Datei oder einer älteren Sicherung befinden. Die Technik heißt Deduplikation [8]. Somit erscheint jede Sicherung von Obnam wie ein komplettes Backup, selbst wenn es sich von der Theorie her um ein inkrementelles Backup handelt.

In medias res

Was nach einem komplizierten Konzept klingt, vereinfacht sich in der Praxis durch Obnam, und zwar vor allem gerade dadurch, dass das Tool keine grafische Oberfläche mitbringt: Die wäre durch die vielen Optionen entweder total überladen oder unzureichend.

Dank der guten Dokumentation eignet sich das Programm für alltägliche Fälle. In weniger als einer halben Stunde haben Sie die Software in der Regel konfiguriert. Danach verrichtet sie ihre Arbeit auf Wunsch völlig automatisch zu festgelegten Zeiten. Parallel bietet Obnam aber die Möglichkeit, das Sichern sowie Wiederherstellen jederzeit über die Kommandozeile anzustoßen.

Die Installation der Applikation gestaltet sich unter Debian am einfachsten: Dazu genügt der simple Befehl:

# apt-get install obnam

Er kopiert weniger als 5 MByte Daten auf die Festplatte. Für Ubuntu, Gentoo und OpenSuse finden sich Pakete auf der Downloadseite, wo auch der Quellcode bereitsteht [9]. Für die allermeisten Szenarien fertigen Sie sinnvollerweise eine Konfigurationsdatei an. Dazu erstellen Sie als User mit dem Befehl touch ~/.obnam.conf im Home-Verzeichnis eine Textdatei. Listing 1 zeigt ein Beispiel für deren Inhalt.

Listing 1

[config]
# Ablage für die Sicherungen
repository=/media/Backup
# Ablage für die Protokolldatei
log = /home/Username/obnam.log
# Log-Tiefe
log-level = info
# maximale Größe der Log-Datei
log-max = 100 mb
# Backup-Ausschlüsse (Endungen, Downloads-Ordner)
exclude = .mp3$, .mp4$, .part$, .rar$, .nfo$, /Downloads$
# Auschluss aller Caches
exclude-caches = yes
# Ausschluss externer Dateisysteme (/proc, NFS, etc.)
one-file-system = yes
# behält ein Backup täglich für die letzten 14 Tage etc.
keep = 14d,10w,12m
# verschlüsselt die Sicherung mittels GnuPG
encrypt-with = "Ihr Bezeichner"

TIPP

Zum Sichern des Root-Dateisystems oder von Teilen davon empfiehlt sich eine eigene Konfigurationsdatei, in der Sie zusätzlich eine Zeile wie root = /etc, /var einfügen, die in die jeweiligen Verzeichnisse sichert.

Erste Sicherung

Ein erstes manuelles Backup zum Sichern des gesamten Home-Verzeichnisses starten Sie über den folgenden Befehl:

$ obnam backup $HOME

Das setzt voraus, dass Sie das Ziel der Sicherung bereits eingebunden haben und sich in der Konsole in diesem Verzeichnis befinden. Alternativ geben Sie das Ziel der Sicherung im Befehl selbst über die Option -r an oder legen es in der Konfiguration fest.

Das nächste Backup, falls ebenfalls manuell angestoßen, starten Sie mittels des gleichen Befehls. Es sichert alle neuen und geänderten Dateien. Bei größeren Backups wie dem ersten kompletten Durchlauf besteht die Möglichkeit, dass die Verbindung abbricht – insbesondere, falls Sie per WLAN über das Internet auf einen Server gehen. Deshalb erstellt das Programm alle 100 MByte eine Marke und nimmt nach einem Abbruch bei dieser die Arbeit wieder auf.

Allerdings verrichtet Obnam seine Arbeit ohnehin ziemlich zügig. Im Test dauerte das Sichern eines Home-Verzeichnisses mit 61 GByte Daten auf eine externe Platte mit USB-3-Anschluss rund 37 Minuten. Nach Vollzug meldete sich die Software mit der Nachricht aus der ersten Zeile von Listing 2. Ein zweiter Lauf einige Tage später ergab die Meldung aus der zweiten Zeile – das Programm war also gut eine halbe Stunde schneller.

Listing 2

$ Backed up 98627 files (of 98628 found), uploaded 61.0 GiB in 37m18s at 28.1 MiB/s average speed
$ Backed up 4633 files (of 101010 found), uploaded 3.0 GiB in 3m24s at 15.1 MiB/s average speed

Um zu kontrollieren, wie viele Backup-Generationen Sie bereits erzeugt beziehungsweise behalten haben, genügt die Eingabe von obnam generations. Listing 3 zeigt das Ergebnis zu den Backups aus Listing 2.

Listing 3

5543    2014-04-27 19:52:12 .. 2014-04-27 19:59:35 (98628 files, 69491282768 bytes)
6751    2014-05-01 09:42:39 .. 2014-05-01 09:43:20 (101010 files, 71257775259 bytes)

Teile und herrsche

In den seltensten Fällen kommt es jedoch vor, das Sie das gesamte Home-Verzeichnis sichern. Die Vorgehensweise bei der Auswahl oder dem Ausschluss von Dateien hängt davon ab, was sich schneller definieren lässt. Wollen Sie nur fünf Verzeichnisse sichern, so bietet es sich an, diese im Befehl zur Sicherung oder über die Konfiguration festzulegen.

Häufiger dürfte jedoch der Fall sein, dass Sie einzelne Verzeichnisse und Dateien vom Sichern ausschließen möchten. Das erreichen Sie über den Parameter --exclude, den Sie dem Tool entweder auf der Kommandozeile mitgeben oder – sinnvollerweise – direkt in die Konfiguration schreiben. Zusätzlich besteht die Möglichkeit, mit exclude-caches = yes alle temporären Speicher ebenso auszuschließen wie mittels one-file-system = yes extern eingehängte Dateisysteme oder das virtuelle Proc-Verzeichnis.

Wer seine Sicherungen im Internet ablegt, dem kommt die Option gelegen, Obnam die Backups mittels GnuPG verschlüsseln zu lassen. Das setzt voraus, dass Sie neben der Installation des Programms GnuPG-Agent respektive GPG-Agent (je nach Distribution) ein Schlüsselpaar erzeugen. Das erledigen Sie als User mit dem Befehl gpg --gen-key. Einen tieferen Einblick in die Möglichkeiten gewährt die Dokumentation von GnuPG [10].

Jeder Schlüssel hat einen Bezeichner, den die Software beim Erzeugen des Schlüssels als Kommentar abfragt. Dieser Bezeichner erscheint auch in der Liste, wenn Sie mit --list-keys die Informationen zu den gespeicherten Schlüsseln abrufen. Den Bezeichner geben Sie in der Konfiguration über die folgende Zeile an:

encrypt-with = "Bezeichner"

Mit diesem schlichten Eintrag ist die Verschlüsselung bereits fertig eingerichtet.

Im Ernstfall

Haben Sie Daten verloren und möchten diese nun wiederherstellen, bietet Obnam dazu zwei Wege. Der erste macht sich die Eigenschaften des FUSE-Dateisystems [11] zunutze, das auf modernen Linux-Systemen meist standardmäßig installiert ist. Der zweite, weit weniger komfortable Weg kommt zum Einsatz, wenn FUSE nicht bereitsteht.

Bei FUSE handelt es sich um ein Dateisystem im Userspace. Nutzen Sie es, zeigt Ihnen Obnam die Backups wie ein normales Verzeichnis an, das Sie einhängen. Dazu legen Sie mit dem Befehl aus der ersten Zeile von Listing 4 einen neuen Ordner im Home-Verzeichnis an. Dann hängen Sie das Verzeichnis mit den Sicherungen dort ein (Zeile 2) und sehen sich deren Inhalt an (Zeile 3).

Listing 4

$ mkdir ~/backups
$ obnam mount --to ~/backups
$ ls -l ~/backups
drwxr-xr-x 25 root root 4096 Apr 27 19:59 5543
drwxr-xr-x 25 root root 4096 Mai  1 09:43 6751
lrwxr-xr-x 25 root root 4096 Mai  1 09:43 latest -> 6751
$ fusermount -u ~/backups

Dabei entspricht jedes angezeigte Verzeichnis einer (durch die Nummer eindeutig bezeichneten) Backup-Generation. Sie haben nun die Möglichkeit, in die Sicherung zu schauen, die Sie komplett oder teilweise wiederherstellen wollen. Dazu wechseln Sie in das entsprechende Verzeichnis und prüfen dessen Inhalt. Möchten Sie die letzte Sicherung oder Teile davon wiederherstellen, genügt der Parameter latest anstatt der Nummer.

Möchten Sie nur eine einzelne Datei zurückkopieren, legen Sie zuerst ein Verzeichnis an beliebiger Stelle an. Dann spielen Sie das File per Copy-Befehl dorthin. Nun haben Sie die Möglichkeit, die Datei mittels Diff [12] mit einer eventuell noch vorhandenen Version zu vergleichen. Nach dem erfolgreichen Wiederherstellen hängen Sie das Verzeichnis wieder aus (Listing 4, Zeile 7).

Steht FUSE und damit der Befehl obnam mount nicht bereit, suchen Sie mit dem Parametern generations und dem Befehl ls auf der Kommandozeile, was Sie zurückspielen wollen. Mit dem Befehl aus der ersten Zeile von Listing 5 holen Sie dann die fragliche Datei aus dem Repository. Die komplette letzte Generation restaurieren Sie mit dem Befehl aus Zeile 2, eine ältere Sicherung geben Sie per Nummer an (Zeile 3).

Listing 5

$ obnam restore --repository Repository/Pfad --to Pfad
$ obnam restore --to Pfad
$ obnam restore --to Pfad --5543

Automatisierte Backups erhalten Sie, indem Sie einen Cronjob [13] anlegen, der im angegebenen Intervall sichert. Einen solchen Cronjob richten Sie unter Gnome durch Nachinstallieren des Pakets gnome-schedule in einer grafischen Oberfläche ein. Ähnliches gilt für KDE, wo ein passendes Werkzeug bereits unter Systemeinstellungen | Aufgabenplaner vorliegt. Auf der Konsole gibt es einen Editor, den Sie mit crontab -e aufrufen.

Sie sollten testweise zu Beginn eine kleine Sicherung anlegen und diese sowohl komplett als auch teilweise zurücksichern. Das schafft das nötige Vertrauen in die Backups für den Fall eines Datenverlustes, sei es durch eine kaputte Festplatte oder ein versehentlich gelöschtes Verzeichnis. Der ein oder andere Fall wird mit ziemlicher Wahrscheinlichkeit früher oder später eintreten.

Fazit

Obnam ermöglicht es, mit ein wenig Lernaufwand Daten so platzsparend wie möglich lokal oder auf entfernten Servern zu sichern und im Notfall verlässlich wieder zurückzukopieren. Das Programm bietet zwar keine grafische Oberfläche, erweist sich in der Praxis aber trotzdem als einfach zu bedienen. Was nützt auch die schönste grafische Oberfläche, wenn Sie sie nach einem Absturz des Systems nicht mehr erreichen?

Obnam versteht sich auf Mandanten: Das ermöglicht kleinen und selbst mittleren Firmen Flexibilität, um die jeweiligen Anforderungen zu erfüllen. Welche Bedeutung die Daten haben und damit, wie aufwendig Sie sie sichern möchten, hängt vom Einzelfall ab. Obnam setzt Ihnen hier keinerlei Grenzen und sichert auf Wunsch die Daten mehrerer Kunden unter Berücksichtigung der Deduplikation in einem Repository. 

TIPP

Als Obnam-Alternative mit grafischer Oberfläche bietet sich für den Hausgebrauch das auf dem Qt-Framework basierende Lucky Backup (Abbildung 1) an [14]. Es werkelt im Hintergrund mit Rsync, wodurch die Sicherungen um einiges größer ausfallen als mit Obnam. Dafür tun sich Ungeübte mit dem Einrichten leichter.

Abbildung 1: Lucky Backup bietet sich als Alternative für Anwender an, die sich auf der Kommandozeile nicht sattelfest fühlen.

Abbildung 1: Lucky Backup bietet sich als Alternative für Anwender an, die sich auf der Kommandozeile nicht sattelfest fühlen.

Infos

[1] Backup-Programme: http://de.wikipedia.org/wiki/Liste_von_Datensicherungsprogrammen

[2] Obnam-Tutorial: http://liw.fi/obnam/tutorial/

[3] Obnam-Manpage: http://liw.fi/obnam/obnam.1.txt

[4] Rsync: Heike Jurzik, “Synchroner Datenstrom”, LU 04/2006, S. 90, https://www.linux-community.de/9850

[5] Release Notes zu Obnam: http://liw.fi/obnam/1.0/

[6] Copy-on-Write: http://de.wikipedia.org/wiki/Copy-On-Write

[7] Near-CDP: http://www.searchstorage.de/definition/Near-Continuous-Data-Protection-Near-CDP-fast-kontinuierliche-Datensicherung

[8] Deduplikation: http://de.wikipedia.org/wiki/Deduplikation

[9] Obnam herunterladen: http://liw.fi/obnam/download/

[10] GnuPG: http://gnupg.archive.sunet.se/documentation/index.de.html

[11] FUSE: http://de.wikipedia.org/wiki/Filesystem_in_Userspace

[12] Diff: Heike Jurzik, “Der kleine Unterschied”, LU 11/2006, S. 94, https://www.linux-community.de/11124

[13] Cron: Heike Jurzik, “Punktlandung”, LU 02/2006, S. 94, https://www.linux-community.de/9812

[14] Lucky Backup: Falko Benthin, “Auf Knopfdruck”, LU 09/2012, S. 62, https://www.linux-community.de/25953

Der Autor

Ferdinand Thommes lebt und arbeitet als Linux-Entwickler, freier Autor und Stadtführer in Berlin.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 07/2014 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben