Home ORDIX AG             Dienstleistung             Trainingsshop    Kunden / Referenzen Aktuelles    Kontakt
Home  Pfeil  ORDIX News  Pfeil  3/2007  Pfeil  Netzwerke
suche: 
Dieser Artikel richtet sich an Systemadministratoren, die sich über netzwerkbasierte Backup-Lösungen informieren möchten.

Glossar

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


It comes by night and sucks the vital essence from your computers.

Bacula - Die Netzwerk-Backup-Lösung

Backup: Meistens ist es eine notwendige Pflicht, die aber schnell zu einem Segen werden kann. Wo einfache Skripte nicht mehr ausreichen, einen zu hohen Aufwand verursachen oder zu geringen Komfort bieten, ist der Einsatz einer professionellen Backup-Lösung gefragt. Es existiert ein breites Angebot am Markt. Wer aber nach einer Open Source Lösung Ausschau hält, muss schon genauer suchen. Eine sehr komfortable Lösung, die alle Funktionen für einen professionellen Einsatz bietet, ist Bacula.

Die Einzelteile bilden das Ganze

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.

Features, Features, Features

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.

Device {
  Name = Ultrium-LTO2
  Media Type = LTO-2
  Archive Device = /dev/nst0
  AutomaticMount = yes;
  AlwaysOpen = no;
  RemovableMedia = yes;
  RandomAccess = no;
}
Abb. 2: Die Konfiguration des Storage Daemons.
Job {
  Name = "NightlySave-server01"
  Type = Backup
  Level = Full
  Client = server01
  FileSet = "Full Set"
  Messages = Standard
  Storage = Ultrium-LTO2
  Schedule = "NightlySave"
  Pool = TagesPool
  Priority = 10
}
Abb. 3: bacula-dir.conf - Job-Ressource.
Schedule {
  Name = "NightlySave"
  Run = Level=Full Pool=TagesPool mon-fri at 23:00
}
Abb. 4: bacula-dir.conf - Schedule-Ressource.
FileSet {
  Name = "Full Set"
  Include {
    Options {
      signature = MD5
      compression = GZIP
    }
    File = /
    File = /usr
    File = /var
    File = /opt
    File = /home
  }
  Exclude {
    File = /proc
    File = /sys
  }
}
Abb. 5: bacula-dir.conf - FileSet.

Job Kontrolle:

Security:

Recover:

Fortgeschrittenes Volume-/Pool Management:

Support für die meisten Storage Devices:

Unterstützung verschiedener Betriebssysteme:

Ein Beispiel aus der Praxis

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.

Storage Daemon einrichten

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.

Schedule-Ressource einrichten

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.

FileSet einrichten

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.

Volume Pool einrichten

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.

Der tägliche Umgang

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.

Der Blick in die Glaskugel

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.

Quintessenz

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).