Backup mit Bacula: freie Datensicherung für Rechenzentren

© frankie8, 123RF

Vorsorge

Datensicherung ist selbstverständlich unverzichtbar. Dennoch macht es keine Mühe, die Anzahl ernst zu nehmender Backup-Programme im Open-Source-Bereich zu überblicken, die auch andere Systeme als Linux sichern. Eines, das besonders für die Sicherung ganzer heterogener Netze in Rechenzentren taugt, ist Bacula.
Was das Backup wert war, erweist sich, sobald man es versucht ganz oder teilweise wiederherzustellen. Spätestens dann macht sich die Wahl des richtigen Tools ... (mehr)

Bacula ist kein Tamagotchi, und das ist einer seiner größten Vorzüge: Es ruft nicht ständig nach der Aufmerksamkeit des Administrators. Stattdessen tut es still und absolut zuverlässig im Hintergrund seinen Dienst, nach richtiger Konfiguration lange Zeit ohne jeden administrativen Aufwand. Und selbst im schlimmsten Fall, nach einem Horror-Crash des Backupservers, ist nichts verloren. Dann lassen sich die Backups direkt von den Sicherungsmedien wiederherstellen. Wo also Stabilität, Verlässlichkeit und Robustheit an erster Stelle stehen, lohnt es, einen Blick darauf zu werfen.

Wer sich mit Bacula beschäftigt, dem springt eine Besonderheit gleich ins Auge: Für jede Aufgabe ist ein eigenes Programm im Bacula System zuständig. Zu diesen Aufgaben gehört etwa das Lesen der zu sichernden Daten und ihre Übertragung via Netzwerk, das Schreiben auf die Sicherungsmedien oder die Aktualisierung der Kataloge. Jede dieser Aufgaben nimmt in Bacula ein eigener Daemon wahr.

Der File Daemon wird auf dem zu sichernden Computer installiert, und liest dort die zu sichernden Daten, um sie über das Netzwerk zu übertragen. Bei einer Rücksicherung empfängt er die Daten und schreibt sie wieder auf die Platten zurück.

Der Storage Daemon spricht im Bacula System die Sicherungsmedien an. Er erhält die vom File Daemon gelesenen Daten und legt sie dann auf den Sicherungsmedien ab. Bei Rücksicherungen liest er entsprechend umgekehrt die Daten von den Sicherungsmedien und überträgt sie an den File Daemon.

Der Director Daemon verwaltet die Informationen der Katalogdatenbank. In der Katalogdatenbank wird zu jeder Datensicherung gespeichert, welche Datei bei welcher Sicherung von welchem File Daemon auf welchem Medium gespeichert wurde. Zudem ist der Director für die Zeitplanung und den pünktlichen Start der Sicherungen verantwortlich. Schließlich empfängt der Director auch Meldungen, Statistiken und Berichte und verarbeitet sie weiter.

Die Bacula Console ist eine einfache Anwenderschnittstelle zum Bacula System und stellt für den Admin eine Verbindung zum Director Daemon her. Interaktiv lassen sich so Sicherungen und Rücksicherungen starten und der Zustand aller Daemons im Bacula System abfragen.

Die vier Elemente des Bacula Systems sind in Abbildung 1 zu sehen. Die Kommunikation zwischen den verschiedenen Bacula Daemons erfolgt über bei der IANA registrierte Ports (Tabelle 1).

Abbildung 1: Die Komponenten eines Bacula-Systems im Zusammenspiel. Zentrale Steuerungsinstanz ist der Director, mit dem sich die Anwenderschnittstellen verbinden.

Tabelle 1

Bacula-Ports

Name

Port

Beschreibung

bacula-dir

9101/tcp

Bacula Director

bacula-dir

9101/udp

Bacula Director

bacula-fd

9102/tcp

Bacula File Daemon

bacula-fd

9102/udp

Bacula File Daemon

bacula-sd

9103/tcp

Bacula Storage Daemon

bacula-sd

9103/udP

Bacula Storage Daemon

Über Bacula

Das Projekt wurde im Jahr 2000 von Kern Sibbald gegründet. Die Architektur und der wesentliche Teil der Programmierung und Dokumentation hat Kern Sibbald erstellt. Die Webseite des Bacula-Projektes ist unter [http://bacula.org] zu finden. [1]

Es gibt eine aktive Community, die die Weiterentwicklung vorantreibt. Im Gegensatz zu anderen Open-Source-Projekten sind die Codequalität und die Dokumentation hervorragend; die Dokumentation umfasst inzwischen rund 700 A4-Seiten.

Das Bacula-Projekt hat das Urheberrecht der Software in einem treuhänderischen Verhältnis an die Free Software Foundation Europe e.V. übertragen.

Neben der Community-Version von Bacula.org gibt die Firma Bacula Systems eine auf den Unternehmenseinsatz zugeschnittene Version heraus. Diese Firma bietet dazu Support, Zertifizierungen, Schulungen und Backup-Plugins für die Sicherung von speziellen Anwendungen. Die Bacula Enterprise Edition ist über ein Subskriptionsmodell erhältlich.

Sämtliche Software, auch die der Enterprise Edition, wird als Open-Source-Software angeboten. Die Weiterentwicklung von Bacula ist durch die Firma Bacula Systems gewährleistet.

Als Katalogdatenbank unterstützt Bacula SQLite, MySQL und PostgreSQL, eine der beiden letztgenannten Datenbanken ist besonders bei größeren Installationen zu empfehlen.

Die Konfiguration

Jedes Element eines Bacula Systems verfügt über eine eigene Konfigurationsdatei. Die Syntax der Konfigurationsdateien ist dabei immer gleich. Jede Bacula Konfigurationsdatei besteht aus mehreren sogenannten Ressourcen. Jede Ressource besteht selbst aus Konfigurationsdirektiven in der Form »Schlüsselwort = Wert« und kann selbst auch wieder Unterressourcen enthalten.

Das allgemeine Konfigurationsformat sieht so aus:

ResourceTyp {
 Schlüsselwort = Wert
 Schlüsselwort = Wert
 UnterResourceTyp {
 Schlüsselwort = Wert
 Schlüsselwort = Wert
 }
}

Jede Ressource-Definition wird mit dem Namen eines Ressource-Typs eingeleitet. Darauf folgt der Inhalt der Ressource in der Form »Schlüsselwort = Wert« , wobei bei einigen Ressourcen zusätzlich Unterressourcen erlaubt sind. Je nach Schlüsselwort kann der Wertteil einen Text, einen Zahlenwert oder einen Verweis auf eine andere Ressource enthalten, wobei im letztgenannten Fall der Name der referenzierten Ressource eingetragen wird.

Ein paar echte Ressourcen aus einer Director Daemon-Konfigurationsdatei sollen als Beispiel dienen (Listing 1). In der Director Resource wird der Daemon selbst konfiguriert. Die Fileset Resource ist ein gutes Beispiel für eine Ressource mit Unterressourcen. In der Director Resource wird mit der Zeile "Messages = Daemon" auf die unten definierte Messages Resource mit dem Namen "Daemon" verwiesen. Nach der Erstkonfiguration für die Kommunikation mit dem Director sind normalerweise kaum noch Änderungen fällig. Weder in der Konfiguration des File Daemon noch der Console sind Eingriffe nötig, und auch Änderungen in der Konfiguration des Storage Daemon sind im Betrieb sehr selten. Die häufigsten Änderungen betreffen die Einstellungen des Bacula Director, die die Konfiguration für das Gesamtsystem enthalten. Die folgende Auflistung erläutert die in der Director-Konfigurationsdatei vorhandenen Ressourcen und deren Aufgaben:

Listing 1

Auszug aus einer Director-Konfiguration

 

Director: In der Director Resource werden Konfigurationsparameter zum Director selbst eingestellt. Die zentralen Direktiven sind Name und Password, die für die Kommunikation der Bacula Console mit dem Director benötigt werden. Die Director Resource taucht genau einmal in der Konfiguration auf.

Storage: In der Storage Resource des Directors wird konfiguriert, an welcher Adresse und mit welchem Passwort der Director einen Storage Daemon erreichen kann. Zusätzlich gibt die Konfiguration Gerät und Medientyp dieses Speicherorts an.

Catalog: Die Catalog Resource beschreibt den Zugriff des Directors auf die Katalog Datenbank: Datenbankname, Adresse des Datenbankservers, User Name und Passwort. In der Datenbank werden die Informationen zu allen gesicherten Daten gespeichert.

Messages: Bacula verfügt über ein ausgefeiltes System der Nachrichtenverarbeitung. Die vom System erzeugten Meldungen lassen sich flexibel verarbeiten. Jede Nachricht gehört zu einer Nachrichtenklasse, nach der gefiltert werden kann.

Die Messages Resource stellt wesentliche Parameter der Meldungsverarbeitung ein: Die Beispiel-Ressource mit dem Namen »Daemon« gibt Folgendes vor: Alle Nachrichten außer denen der Klasse »skipped« landen in der Datei »/var/lib/bacula/log« . Nachrichten, die zur Klasse »skipped« oder »saved« gehören, gibt die Konsole nicht aus. Alles außer »skipped« wird zudem per Mail an »root@localhost« versandt. Wie das geschehen soll, das definiert »Mail Command« .

Pool: Die Medienverwaltung von Bacula fasst gleichartige Medien in sogenannten Pools zusammen. Für Datensicherungen wird immer ein Pool angegeben, aus dem Bacula dann selbstständig das geeignete Medium auswählt.

Console: Mit einer Console Resource lassen sich zusätzlich zum Vollzugriff auf den Director weitere Konsolenzugänge anlegen. Sie lassen sich dann bei Bedarf über ACLs auf bestimmte Clients, Pools oder andere Ressourcen beschränken.

Client: Die Client Resource teilt dem Director mit, unter welchem Namen und mit welchem Passwort auf welcher Adresse ein Client Daemon erreicht werden kann. Statt »Client« kann auch das Synonym »File Daemon« verwendet werden. Wenn ein weiterer Computer in die Datensicherung aufgenommen wird, so geschieht dies durch Anlegen einer Client Resource.

Fileset: Ein Fileset gibt an, was zu sichern ist. Die Resource enthält die Namen zu sichernder Verzeichnisse und Muster für Dateien und Verzeichnisse, die von der Sicherung auszunehmen sind.

Schedule: Eine Schedule Resource repräsentiert einen Zeitplan, der beschreibt, wann eine Sicherung erfolgen soll. Der Zeitplaner in Bacula ist sehr mächtig und beherrscht eine Vielzahl von Intervallen (Tabelle 2). Wenn eine Zeitangabe fehlt, wird stattdessen »immer« angenommen. Die maximale Zeitspanne ist 1 Jahr.

Tabelle 2

Scheduler-Intervalle

Zeiteinheit

Beispiel

Stunde, Minute

at 23:05

Tage des Monats

12

Tag der Woche

Mon

Woche des Monats

2nd

Woche des Jahres

w04

Montag bis Samstag

mon-sat at 23:10

erster Montag im Monat

1st mon at 23:10

Montag der ersten Jahreswoche

mon w01 at 23:10

Job: Die Job Resource definiert die eigentliche Datensicherung und fasst dafür andere Ressourcen zusammen: Welcher Computer soll gesichert werden(Client)? Was soll auf diesem Computer gesichert werden (Fileset)? Wann soll die Sicherung erfolgen (Schedule)? Auf welche Medien soll gespeichert werden (Pool)? Mit welchem Gerät sollen die Medien beschrieben werden (Storage Name)?

Zusätzlich zu den Referenzierungen anderer Resourcen können noch viele weitere Konfigurationsdirektiven in einem Job definiert werden.

JobDefs: Um den Konfigurationsaufwand zu minimieren, lassen sich in Bacula JobDefs-Ressourcen konfigurieren. Sie stellen Schablonen für Job-Ressourcen dar und enthalten alle Konfigurationsoptionen eines Jobs. Direktiven, die direkt im Job angegeben sind, überschreiben die Vorgaben aus der JobDef-Ressource. Mit JobDefs lassen sich in der Praxis zentralisierte Job-Gruppen konfigurieren.

Neben den drei Bacula Hauptbestandteilen Director, Storage Daemon und File Daemon enthält das Bacula-Paket noch weitere Dienstprogramme, die eigenständig lauffähig sind (Tabelle 3).

Tabelle 3

Dienstprogramme

Programm

Verwendungszweck

bcopy

Kopiert Bacula Medien

bextract

Kann Bacula Medien öffnen und Dateien extrahieren.

bscan

Kann aus Baucula Medien die CatalogDB rekonstruieren.

bsmtp

Bacula SMTP-Client

btape

Programm zum Test von Bandlaufwerken mit Bacula

btraceback

Programm, um bei Abstürzen Informationen zu sammeln.

bregex, bwild

Programme zum Test von regulären Ausdrücken bzw. von Wildcard Ausdrücken.

dbcheck

Programm zur Pflege und Plausibilitätsüberprüfung der Katalogdatenbank.

Daemons im Detail

Der Bacula File Daemon ist für sehr viele Betriebssysteme verfügbar, konkret so gut wie für jedes Linux, Unix, Windows und MacOS. Neben der Sicherung von Dateien verfügt der File Daemon über die Fähigkeit, Filesystem-ACLs zu sichern. Unter Windows wird der VSS angesprochen, sodass hier konsistente Backups aller VSS-fähigen Anwendungen automatisch erfolgen.

Selbstverständlich kann der Bacula File Daemon Skripte vor und nach der Datensicherung ausführen. Die Ausgaben der Skripte und Rückgabewerte werden berücksichtigt und in den Sicherungsbericht mit aufgenommen. Der Bacula File Daemon kann die Sicherungsdaten vor dem Senden an den Storage Daemon außerdem komprimieren und/oder verschlüsseln.

Die Verschlüsselung erfolgt transparent, jedoch kann nur der File Daemon, der über den richtigen Schlüssel verfügt, die Daten auch wieder zurücksichern. Ein sicher verwahrter Master-Schlüssel verhindert, dass bei Schlüsselverlust der Zugriff auf die gesicherten Daten unmöglich wird.

Der Bacula Storage Daemon schreibt die Daten auf Sicherungsmedien. Als Sicherungsmedien kommen Festplatten, Einzelbandlaufwerk und Bandwechsler infrage. Für einen hohen Durchsatz und eine materialschonende Arbeitsweise benötigen Bandlaufwerke einen konstanten Datenstrom. Um den zu garantieren, kann der Bacula Storage Daemon über ein Spool-Verzeichnis die ankommenden Daten zwischenspeichern und dann am Stück mit hoher Geschwindigkeit auf das Band übertragen. Die Ansteuerung von Bandwechslern übernimmt ein Skript. Grundsätzlich redet es mit jedem beliebigen Wechselgerät, das sich über Kommandozeilenbefehle steuern lässt.Zusätzlich verfügt der Storage Daemon über die Möglichkeit, Daten von einem Speichermedium auf ein anderes zu kopieren, was Migrationsfunktionen und Virtual Backups ermöglicht.

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019