Login
Newsletter
Werbung

So, 28. Januar 2007, 00:00

Sicherung verteilter Systeme mit Bacula

Dieser Artikel stellt Bacula vor, ein Sicherungssystem für verteilte heterogene Systeme. Es arbeitet Client/Server-basiert und verwendet eine Datenbank als Katalog, daher ist es hervorragend geeignet, um komplexe Sicherungen durchzuführen. Bacula wird unter der GPL vertrieben, läuft auf fast jedem Unix-artigem Betriebssystem und bietet auch einen Client für MS-Windows an.

Bacula

Heterogene verteilte Systeme zu sichern, erfordert in der Regel mehr Aufwand für die Konfiguration der Sicherung, als die eigentliche Sicherung der Dateien. Hier stoßen kleinere Backupsysteme oder selbstgemachte Shellskript-Lösungen mit Dump oder Rsync schnell an ihre Grenzen. Besonders delikat ist in solchen Systemen auch die Verwaltung der Sicherungsmedien, weiß doch der geneigte Systemadministrator, daß der GAU immer in seiner Freizeit eintreten wird. Und wer will schon den Sonntag damit verbringen, im Keller unzählige Dump-Bänder auf der Suche nach Frau Müllers Kaffekasse.xls durchzuspulen?

Ab einem gewissen Rechner-Umfang müssen spezielle Sicherungssysteme für große Netzwerke eingesetzt werden. Bisher gab es diese nur für teures Geld von kommerziellen Anbietern. Die einzig freie Lösung für komplexere Situationen - Amanda - stößt wegen der zugrundeliegenden Prinzipien schnell an gewisse Grenzen.

Seit 2002 existiert mit Bacula ein System zur Datensicherung, das speziell für verteilte Systeme entwickelt wurde. Es wird unter der GPL/LGPL vertrieben und ist somit frei einsetzbar. Im Laufe der Zeit hat Bacula einen Funktionsumfang gewonnen, der es mit den meisten kommerziellen Systemen problemlos aufnehmen kann.

Der Bacula-Server kann unter Linux, Solaris, NetBSD oder FreeBSD betrieben werden, der notwendige Client neben o.g. Systemen auch auf weiteren Unix-artigen, wie HP/UX, AIX, IRIX oder Mac OS X/Darwin. Exotischere Betriebssysteme können notfalls ihre Verzeichnisse per NFS o.ä. auf Hosts exportieren, die über einen Bacula-Client verfügen, und dort ihre Daten sichern lassen. Eine fertige Binärdatei des Clients existiert auch für Windows, so dass diese Rechner gesichert werden können. Ich beschreibe in diesem Artikel die Einrichtung auf einem NetBSD-Server und -Client mit einsatzbereitem Paketverwaltungssystem pkgsrc. Unter Linux gibt es zumeist vorgefertigte Pakete der Distribution. Die Pfade zu den Dateien sind ähnlich, oft entfällt einfach das Präfix /usr/pkg.

Der Aufbau

Bacula besteht aus verschiedenen Daemonen, die relativ einfach den Client-Server-Betrieb ermöglichen:

  • Director (bacula-dir)
  • Storage (bacula-sd)
  • File (bacula-fd)
  • Catalog (PostgreSQL)
  • Console (bconsole)

Der Director läuft als Steuerungsprozess im Hintergrund und koordiniert alle Sicherungsaktivitäten. Er wird eingesetzt, um Daten zu sichern und wiederherzustellen und um Aufgaben zu planen.

Der Storage-Daemon übernimmt das Schreiben der Daten auf die Sicherungsmedien und ggf. das Auslesen der Sicherung. Die Medien können Bänder, Wechselfestplatten, CDs, DVDs oder Disketten sein.

Der File-Daemon liefert die Daten des zu sichernden Rechners auf Befehl des Directors an den Storage-Daemon. Der File-Daemon ist betriebssystemabhängig. Für NetBSD kann er via pkgsrc installiert werden, für andere Unix-artige Betriebssysteme steht er ebenfalls zur Verfügung, meist schon in den jeweiligen Paketverwaltungssystemen.

Der Catalog speichert alle Metadaten zu den Sicherungsläufen, also Daten wie: »welche Datei wurde in welcher Version wann auf welches Band gesichert und hat dabei folgende Prüfsumme?«. Mit ihm ist es möglich, die Sicherungsbänder zu organisieren und ggf. für eine Rücksicherung das gewünschte Band bequem zu finden.

Da hierzu mehr als eine einfache Textdatei notwendig ist, kann sich Bacula an SQLite, PostgreSQL oder MySQL binden. Ich beschränke mich hier auf PostgreSQL, da ich selber einige PostgreSQL-Server betreue. Hat man keinerlei Ambitionen, selbst per SQL in der Index-Datenbank zu suchen oder überhaupt noch keine Datenbanken im Einsatz, empfiehlt es sich, als Index SQLite zu verwenden.

Der Katalog ist wichtig, wenn man Dateien zur Rücksicherung suchen will. Daher sollte er zwingend gesichert werden. Das Bacula-Handbuch zeigt, wie man den Katalog exportiert und für eine Notfall-CD aufbereitet. Außerdem kann man natürlich PostgreSQL-eigene Funktionen verwenden, um den Katalog zu sichern, oder ihn per Replikation auf mehreren Rechnern vorhalten.

Die Console ermöglicht den Zugriff auf die Bacula-Dienste. Neben einer einfachen Shell-basierten Textkonsole existieren auch klicki-bunte Varianten für Gnome, Java oder wxWidgets.

Alle Komponenten kommunizieren über das Netz miteinander und können so auf verteilten Systemen eingesetzt werden. Zur Authentifizierung verwenden sie CRAM-MD5 und zur Verschlüsselung kann TLS eingesetzt werden. Bacula verwendet wohldefiniert nur die Ports 9101 bis 9103, lässt sich also sehr pflegeleicht in Firewalls durchschleusen.

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