Login


 
Newsletter
Werbung

So, 8. Februar 2009, 00:00

Das Backup-Programm BoxBackup

Platzsparendes netzwerkweites Backup

In diesem Artikel wird das Einbinden des Backup-Programms BoxBackup in eine eigene Backup-Strategie beschrieben. Konfiguration von Server und Clients, Sicherung zusätzlich benötigter Daten und weitere Maßnahmen - kurz: eine komplette Lösung - werden behandelt.

Einleitung

Wie könnte das ideale Backup aussehen? Man könnte es mit drei Begriffen umschreiben: Redundanz, Redundanz und, Sie ahnen es bereits, Redundanz. Klingt redundant? Dann sind Sie nun bestens auf einen Artikel über Backup eingestimmt. Das Backup sollte alle wichtigen Daten aller Rechner im Netz erfassen, vollautomatisch laufen und die Daten so speichern, dass sie leicht wiederherstellbar sind. Ferner sollte es möglich sein, nicht nur Daten vom Vortag, sondern auch von früheren Tagen wieder herzustellen.

Alle Punkte gleichzeitig zu erfüllen, ist nur mit erheblichem Hardwareaufwand möglich. Der erste Punkt, alle wichtigen Daten aller Rechner im Netz zu erfassen, bedeutet eine hohe Datenmenge. Zusammen mit der zweiten Forderung, vollautomatisch zu laufen, stellt das hohe Anforderungen an das Backup-Medium. DVDs dürften damit meist ausscheiden, da sie zu klein sind. Es bleiben Bänder mit hoher Kapazität und Festplatten. Bedenkt man die Anschaffungskosten solcher Bänder und insbesondere des zugehörigen Laufwerks, dann dürften Festplatten mittlerweile die billigere Alternative sein.

Leichtes Wiederherstellen von Daten bedeutet für mich, dass man auf inkrementelle Sicherungen weitgehend verzichtet, denn dann müsste man beim Wiederherstellen mehrere Backups nacheinander wieder einspielen.

Suche nach dem geeigneten Programm

Zunächst hatte ich die Idee, auf Basis von LVM-Snapshots ein inkrementelles Backup zu machen, das für den Administrator wie ein Vollbackup jedes Tages aussieht. Es stellte sich jedoch schnell heraus, dass LVM-Snapshots nur auf Kurzlebigkeit ausgelegt sind: Ergeben sich zuviele Änderungen zwischen Snapshot und aktuellem Dateisystem, geht ihnen der Platz aus, und sie werden ungültig. Ein einziger Tag mit größeren Änderungen am Dateisystem hätte alle Sicherungsstände auf einen Schlag ungültig gemacht. Ferner wäre das Skript oder Programm zum Verwalten der Snapshots keinesfalls trivial geworden - eine Arbeit, die ich mir nicht machen wollte, ohne mich zu informieren, was es an Backup-Programmen noch so alles gibt.

So startete ich eine Suche mit dem Begriff »Backup« auf Freshmeat, was mehrere hundert Ergebnisse brachte. Ziel meiner Suche waren Programme, die darauf ausgelegt sind, auf eine Festplatte zu sichern, und die in der Lage sind, auf Client/Server-Basis zu arbeiten. Klassische Backup-Programme wie Amanda oder Bacula, die eher auf Bandsicherungen ausgelegt sind, auch wenn sie Festplatten nutzen könnten, ließ ich außen vor. Schnell stieß ich auf BoxBackup, und da dessen Beschreibung mein Interesse weckte und die Software auch aktiv gepflegt wird, fiel meine Entscheidung auf sie.

BoxBackup

BoxBackup steht unter einer BSD-Lizenz und wird hauptsächlich unter OpenBSD entwickelt. Der Ursprung der Software liegt im Jahr 2004, und die Entwicklung ist nicht abgeschlossen, da noch nicht alle Features implementiert sind, die den Entwicklern vorschweben. Die aktuelle Version 0.10 wird dennoch als stabil angesehen. Zu den herausragenden Features von BoxBackup zählen:

  • Alle Backup-Daten werden auf dem Server in Dateien gespeichert
  • Alle Backup-Daten werden verschlüsselt übers Netz gesandt und gespeichert
  • Auf den Clients (den Systemen, die gesichert werden müssen) läuft ein Daemon, der geänderte Dateien kontinuierlich oder - wie beim klassischen Backup - zu gegebener Zeit einen Schnappschuss sichern kann
  • Wie bei rsync werden nur Änderungen in den Dateien übertragen
  • Alte Versionen der Dateien auf dem Server werden als Änderungen gegenüber der aktuellen Version gespeichert
  • Alte Versionen von Dateien sowie gelöschte Dateien sind im Backup verfügbar
  • Implementiert ein Userspace-RAID1 auf dem Server, das man jedoch nicht nutzen muss

Als kleiner Nachteil von BoxBackup ist zu nennen, dass die Installation nicht trivial ist. Dies liegt überwiegend daran, dass das Backup verschlüsselt wird. Dafür werden Schlüssel und Zertifikate benötigt, die mit der Bibliothek OpenSSL generiert werden. Während es möglich ist, alles von Hand zu generieren (womit man exakt an sein System angepasste Zertifikate erhält), stellt BoxBackup eigene Tools bereit, die das alles etwas einfacher machen. Dafür sind diese Zertifikate recht allgemein gehalten.

Installation von Binärpaketen

Leider ist BoxBackup derzeit nicht im Debian-Archiv enthalten. Statt selbst Pakete zu bauen, holte ich mir Binärpakete von debian.myreseau.org/dists. Diese inoffiziellen Pakete gibt es für Sarge und Etch, aber jeweils nur für x86 oder als Quellpaket. Die Binärpakete sind in drei Pakete aufgeteilt: boxbackup-server, boxbackup-client und boxbackup-util. Auf dem Server installierte ich alle drei, auf den Clients genügt boxbackup-client.

Mittlerweile ist BoxBackup auch in Debian Lenny und Sid angekommen. Diese Version ist neuer und auf jeden Fall vorzuziehen. Das Paket boxbackup-util wurde mit dem Server-Paket vereinigt.

Die Debian-Pakete legen Init-Skripte und rudimentäre Konfigurationsdateien für Server und Client an. Man kann debconf verwenden, allerdings ist es instruktiver, wenn man die paar Handgriffe von Hand macht. Den Hauptteil der Arbeit, das Erzeugen der Zertifikate, nimmt einem debconf sowieso nicht ab. Für die weitere Konfiguration sollte man sich an die Anleitungen der BoxBackup-Homepage halten, die die Konfiguration recht gut beschreibt.

Installation eines Quellcodepakets

Für meine x86_64-Rechner beschloss ich, Binärpakete aus dem Quellpaket zu erstellen und diese dann zu installieren. Nachdem ich die drei Dateien boxbackup_0.10-1.dsc, boxbackup_0.10-1.diff.gz und boxbackup_0.10.orig.tar.gz heruntergeladen hatte, erzeugte ich mit dpkg-source -x boxbackup_0.10-1.dsc das Verzeichnis boxbackup-0.10. In diesem geht es weiter. Zunächst ist ein Problem beim Compilieren zu beheben, und zwar fehlten in bin/bbackupquery/BackupQueries.cpp die Definitionen von LLONG_MIN und LLONG_MAX. Der Fehler ist bereits bekannt, eine Lösung ist mittlerweile in der Entwicklungsversion. Da diese erst später kam, behalf ich mir, indem ich die Definitionen in die Datei kopierte, ungefähr ab Zeile 62:

# ifndef LLONG_MIN
# define LLONG_MIN LONG_LONG_MIN
# endif
# ifndef LLONG_MAX
# define LLONG_MAX LONG_LONG_MAX
# endif

Danach lassen sich mit dpkg-buildpackage -rfakeroot die Binärpakete erstellen, die man dann installieren kann.

Installation aus dem Quellcode

Für die Installation aus dem Quellcode sollte man die Bibliothek »libeditline« haben. Alternativ tut es »GNU ReadLine«, dann muss man beim Aufruf von configure die Option --enable-gnu-readline angeben. Entwicklerpakete von OpenSSL müssen installiert sein. Das Compilieren geht einfach mit den Kommandos configure; make vonstatten. Zur Installation muss man als Root make install-backup-client oder make install-backup-server aufrufen. Die benötigten Verzeichnisse für Konfigurations- und Arbeitsdateien werden später automatisch angelegt; um die Startdateien in /etc/init.d muss man sich jedoch selbst kümmern.

Installation aus SVN

Die Entwickler verwalten den Quellcode in einem Subversion (SVN)-System. Nachdem man den Code geholt hat, empfiehlt es sich, ihn in ein anderes Verzeichnis zu kopieren. So kann man den ursprünglichen Code immer wieder aktualisieren. Den Code holt man mit

svn co http://www.boxbackup.org/svn/box/trunk/

und aktualisiert wird er, in dem man im Code-Verzeichnis svn update aufruft.

Dann gibt man das Kommando ./bootstrap ein. Es geht weiter mit

./configure --sysconfdir=/etc
make
make install

Danach geht es weiter wie bei anderen Installationsmethoden. Zu beachten ist, dass das Standard-Konfigurationsverzeichnis nun /etc/box statt /etc/boxbackup ist. Außer dem Patchen des Quellcodes, das aufwendig ist, scheint es keine Möglichkeit zu geben, das zu ändern. Man kann aber mit der Option -c allen Programmen einen anderen Pfad mitgeben.

Kommentare (Insgesamt: 0 || Kommentieren )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung