
| Bacula Netzwerkbasierte Backup-Lösung für Unix. |
| ACL Access Control List. Eine über die übliche Unix-Berechtigung hinausgehende Spezifizierung von Zugriffsrechten auf Dateiebene. |
Weiterführende Links

Bacula besteht im Groben aus fünf verschiedenen Komponenten (siehe Abbildung 1), die nur zusammen funktionieren können. Die einzelnen Dienste können jeweils auf einem eigenen oder aber auch alle zusammen auf einem Server laufen. Dies bietet eine große Flexibilität und gute Skalierbarkeit.
|
| Abb. 1: Die fünf Komponenten von Bacula. |
Der Chef der verschiedenen Dienste ist der so genannte Director. Er verwaltet alle Operationen wie Backup- oder Restore-Jobs und kennt alle seine Mitarbeiter. Wie ein richtiger Chef in einer Firma ist er jedoch nichts ohne seine Angestellten.
Die Bacula Console dient dem Administrator dazu, mit dem Director zu kommunizieren. Sie existiert in drei verschiedenen Formen: Die einfachste Möglichkeit bietet ein Shell-Programm (bconsole). Die beiden anderen Möglichkeiten beinhalten die Bedienung über GUIs. Die am weitesten entwickelte GUI ist eine wxWidgets GUI (wx-console), die alle Funktionen der bconsole bietet und darüber hinaus noch ein interaktives Wiederherstellen von Daten ermöglicht. Zur Zeit in der Entwicklung befindet sich eine Gnome GUI (gnome-console), welche aber noch nicht an den Funktionsumfang der wx-console heranreicht. Die GUIs bieten den Vorteil, dass die Administration von Bacula von einem entfernten Windows Client möglich ist.
Der Dienst, der auf dem Client läuft, ist der File Daemon. Er ist dafür zuständig, auf Anfrage vom Director die zu sichernden Daten und Dateiattribute zur Verfügung zu stellen. Dabei ist er in der Lage, nicht nur einfache Zugriffsrechte, sondern beispielsweise auch ACL-Spezifikationen zu sichern. Es existieren Versionen für die meisten Unix-Derivate, MacOS und alle gängigen Windows-Versionen.
Für das Speichern der Daten auf verschiedenen Medien ist der Storage Daemon verantwortlich. Als Sicherungsmedium können nicht nur Bänder, sondern unter anderem auch Festplatten oder DVDs dienen. Für die Handhabung von Autochangern nutzt Bacula das mtx-Kommando und unterstützt somit eine Vielzahl verschiedener Tape Libraries.
Durch den Cataloge hebt sich Bacula von kleinen Backup Tools wie z. B. tar ab. Der Cataloge ist eine Datenbank, in der viele verschiedene Informationen zu den Backups gespeichert werden. Somit ist es sehr schnell möglich, Daten zu lokalisieren und zurückzusichern. Es werden zur Zeit drei verschiedene Datenbanksysteme unterstützt: MySQL, PostgreSQL und SQLite.
Im Folgenden stellen wir die Funktionen von Bacula vor. Die Informationen stammen aus der Entwicklerdokumentation von Bacula und werden ständig aktualisiert. Der Teil der Dokumentation, der die vollständigen Informationen enthält, ist unter [1] zu finden.
| ||
| ||
| ||
|
Job Kontrolle:
Security:
Recover:
Fortgeschrittenes Volume-/Pool Management:
Support für die meisten Storage Devices:
Unterstützung verschiedener Betriebssysteme:
Nichts ist für das Verständnis der Konfiguration eines Programms hilfreicher als ein Beispiel aus der Praxis. Aus diesem Grund wird auch an dieser Stelle ein typisches Szenario vorgestellt. In unserem Fall wird die Sicherung direkt von dem sichernden System auf ein Bandlaufwerk durchgeführt. Der Einfachheit halber wird jede Nacht eine Vollsicherung auf dasselbe Band durchgeführt. Nachfolgend werden einige Konfigurationsbereiche, die wichtig sind, erläutert. Dabei handelt es sich jedoch nicht um eine vollständige Konfiguration.
Als erstes sollten wir uns um die Einrichtung des Storage Daemons kümmern. In seiner Konfigurationsdatei (bacula-sd.conf) werden alle Sicherungsmedien eingetragen und die Verbindung zum Director konfiguriert. In Abbildung 2 ist der Teil für die Konfiguration des Bandlaufwerks abgebildet. Zum Testen der Konfiguration des Storage Daemons bietet Bacula ein eigenes Programm btape, welches unter anderem alle für Bacula notwendigen Funktionen testet. Dabei ist darauf zu achten, dass die Bacula-Dienste, insbesondere der Storage Daemon, gestoppt sind. Die restlichen, für uns interessanten Einstellungen werden in der bacula-dir.conf vorgenommen.
Job-Ressource einrichten Als erstes werden die Jobs angegeben. Um dies zu realisieren, stehen zwei Konfigurationsabschnitte zur Verfügung. Der erste Abschnitt ist Jobs. In diesem Bereich wird der eigentliche Job definiert. Der zweite Abschnitt ist JobDefs. An dieser Stelle werden Einstellungen vorgenommen, die für alle Jobs, die JobDefs einbeziehen, gelten sollen. Der auf unsere Bedürfnisse angepasste Job ist in Abbildung 3 zu sehen.
In der Job-Ressource werden einige Inhalte aus anderen Konfigurationsabschnitten eingebunden. Der Schedule-Eintrag besagt, welche Schedule-Ressource eingebunden wird. Für unseren Backupjob ist der Schedule-Eintrag in Abbildung 4 abgebildet.
Durch das FileSet (siehe Abbildung 5) wird für den Job festgelegt, welche Dateien er sichern soll. In unserem Fall heißt der FileSet "Full Set". Neben den zu sichernden Dateien und Ordnern werden an dieser Stelle auch Optionen angegeben, wie zum Beispiel, ob zu den Dateien eine Prüfsumme angelegt werden soll oder ob die Dateien schon auf dem Client komprimiert werden sollen. Diese Optionen kommen auch bei unserem FileSet zum Einsatz.
Bei Bacula müssen alle Volumes einem Pool zugeordnet werden, weil Sicherungen immer auf einen Pool erfolgen. Dies bietet große Vorteile und macht das System sehr flexibel. Der Poolin Abbildung 6 wurde für unser System konfiguriert. Alle Volumes in einem Pool verfügen über dieselben Eigenschaften, die in diesem Punkt definiert werden. Damit für unsere Sicherung jeden Tag dasselbe Band verwendet werden kann, müssen hier einige Parameter eingetragen werden, die durch die Kommentare in der jeweiligen Zeile erläutert werden. Mit diesen Informationen lässt sich schon eine einfache Konfiguration erstellen. Aber auch komplexere Lösungen bedürfen keines wesentlich höheren Konfigurationsaufwands.
Pool {
Name = TagesPool
Pool Type = Backup
# Abgelaufene Jobs werden automatisch aus dem Catalog entfernt
AutoPrune = yes
# Falls kein anderes Volume existiert, wird dieses benutzt
Recycle = yes
# Jedoch nur, wenn in diesem Fall 23 Std vergangen sind
Volume Retention = 23h
# Es können maximal 2 Jobs auf das Band geschrieben werden
Maximum Volume Jobs = 2
}
|
| Abb. 6: bacula-dir.conf - Pool. |
Um die Handhabung des Benutzer-Interfaces vorzustellen, wird an dieser Stelle gezeigt, wie ein Job manuell gestartet wird. Alle anderen Kommandos lassen sich direkt auf der Oberfläche mit dem Kommando help anzeigen. Die Bedienung der bconsole ist analog zu der der wxWidgets GUI (siehe Abbildung 7). Somit ist es möglich, die gesamte Steuerung der Backup Software auch von der Konsole vorzunehmen.
|
| Abb. 7: Bacula wx-console. |
Für die Weiterentwicklung von Bacula sind einige neue Funktionen vorgesehen, die über kurz oder lang in Bacula integriert werden sollen. Die wichtigsten möchten wir Ihnen an dieser Stelle vorstellen:
In Zukunft soll Bacula über eine GUI verfügen, die alle möglichen Operationen unterstützt. Dies soll Bacula für noch mehr Anwender interessant machen und die Nutzung des Programms erleichtern.
Um mehrere Kopien von einem Volume anzufertigen, wird heute das Tool bcopy genutzt. Da dies wenig komfortabel ist, ist die Implementierung eines Copy Pools geplant, der in der bacula-dir.conf konfiguriert werden kann. Darüber hinaus soll es dem File Daemon ermöglicht werden, Backups anzustoßen, was zu einer größeren Flexibilität führen würde.
Moderne Bandbibliotheken führen ein automatisches Reinigen des Laufwerks durch. Um ähnliche Funktionen auch für einfache Laufwerke und alte Bibliotheken zur Verfügung zu stellen, sollen die Fähigkeiten des Cleaning Managment erweitert werden.
In vielen Unternehmen ist bereits eine Datenbank in Betrieb, in der Kataloge gespeichert werden könnte. Da es sich dabei aber zum großen Teil um kommerzielle Datenbankenhandelt, ist dies heute nicht möglich. Deshalb ist für eines der nächsten Releases eine Erweiterung der unterstützten Datenbanken geplant.
Abschließend bleibt noch zu sagen, dass Bacula eine gute, kostengünstige Alternative zu den bekannten Backup-Lösungen ist. Das Projekt hat von der Version 1.3 auf 2.0 einen riesigen Schritt nach vorne gemacht, ist mittlerweile sehr komfortabel und bietet im Großen und Ganzen alles, was von einer professionellen Backup- Lösung erwartet wird. Bei der Einführung einer neuen Backup-Lösung sollten mit die- sen Erkenntnissen nicht nur die "üblichen Verdächtigen", sondern auch Bacula einer Prüfung unterzogen werden. Denn dieses Open Source Produkt hat eine Menge zu bieten.
Marius Dorlöchter (info@ordix.de).