Einführung in Bacula

Dieser Artikel wir in der Univention Supportdatenbank weiter gepflegt: http://sdb.univention.de/

1 Einführung in Bacula
Bacula ist ein System von Diensten zum Sichern, Prüfen und Wiederherstellen von Daten innerhalb eines heterogenen Netzwerks. Alle Dienste können dabei auf einem einzelnen System installiert, oder im Netzwerk auf unterschiedliche Server verteilt werden. Die Sicherung der Daten kann auf unterschiedlichste Medien wie z.B. Bänder, CDs, DVDs oder Festplatten erfolgen. Im Folgenden werden die einzelnen Dienste von Bacula sowie die Installation und Einrichtung unter UCS grundlegend beschrieben.

1.1 Unterstützte Betriebsysteme für die Sicherung
Bacula ermöglicht die Sicherung der meisten gängigen Betriebsysteme (eine vollständige Liste ist unter Supported Operating Systems zu finden):
[ul]
[li] Linux[/li]
[li] Windows (Win98/Me, WinNT/2K/XP, Vista)[/li]
[li] MacOS X/Darwin[/li]
[li] Solaris[/li]
[li] FreeBSD[/li]
[li] OpenBSD[/li]
[li] Irix[/li]
[li] Tru64[/li][/ul]

1.2 Unterstütze Tape-Laufwerke und Autochanger
Eine Liste der als funktionstüchtig bekannter Tape-Laufwerke kann unter Supported Tape Drives eingesehen werden. Unterstützte Autochanger sind unter Supported Autochangers sowie mtx.opensource-sw.net zu finden. Grundsätzlich sollten jedoch alle Geräte mit Bacula verwendbar sein die sich mit Programmen wie mt und mtx ansteuern lassen.

2 Bacula Komponenten
Bacula besteht grundlegend aus fünf Komponenten die, wenn gewünscht, auf unterschiedliche Systeme verteilt werden können. Nähere Informationen zum Aufbau der Bacula Komponenten sind in der Bacula Dokumentation unter What is Bacula zu finden.

2.1 Bacula Director
Der Bacula Director kontrolliert und überwacht in einer Bacula Umgebung alle Sicherungs-, Wiederherstellungs-, Verifizierungs- und Archivierungsvorgänge. Der Administrator verwendet diesen Dämon um die Zeitpunkte für Sicherungen, sowie die zu sichernden Systeme und Dateien zu definieren.

2.2 Bacula File-Dämon
Der Bacula File-Dämon wird auf den zu sichernden Systemen einer Bacula Umgebung installiert und kann somit auch als Bacula Client bezeichnet werden. Er ist verantwortlich für die Auslieferung der zu sichernden Dateien sowie deren Attribute. Außerdem übernimmt er den betriebssystemabhängigen Teil der Wiederherstellung von Dateien aus der Sicherung und nimmt evtl. konfigurierte Dateikompressionen sowie das Generieren von Hash-Werten für die zu sichernden Dateien vor.

2.3 Bacula Storage-Dämon
Der Bacula Storage-Dämon ist für das Schreiben und Lesen der zu sichernden Dateien und ihrer Attribute auf und von den physikalischen Sicherungsmedien zuständig. Die File-Dämons der zu sichernden Systeme verbinden sich direkt mit dem Storage Dämon um die zu sichernden Dateien und Attribute zu übergeben.

2.4 Bacula Console
Die Bacula Console ist ein Programm das es dem Administrator sowie berechtigten Benutzern ermöglicht mit dem Bacula Director zu kommunizieren um z.B. Sicherungen zu starten, Rücksicherungen zu planen und Medien zu Labeln. Die Bacula Console steht momentan in einer Kommandozeilenversion sowie zwei Graphischen Versionen (QT und wxWidgets) zur Verfügung.

2.5 Catalog
Eine relationale Datenbank (momentan MySQL, PostgreSQL oder SQLite) stellt den Bacula Catalog bereit. In diesem werden Informationen über abgearbeitete Backup-Jobs, gesicherte Dateien und deren Attribute sowie über erstellte Volumes gespeichert. Abhängig von der Anzahl der zu sichernden Dateien und der Vorhaltezeit der Backups kann der Catalog sehr umfangreich werden.

3 Installation unter UCS 2.1
Die Bacula Pakete sowie Programme zum Ansteuern von Tape-Streamern wurden in einer zusätzlichen Komponente auf apt.univention.de veröffentlicht. Um Sie zu installieren, müssen zusätzlich zu den Sourcen der UCS 2.1 Pakete, die folgenden Zeilen in die /etc/apt/sources.list eingetragen werden:

deb http://apt.univention.de/2.1/maintained/component/ bacula/all/
deb http://apt.univention.de/2.1/maintained/component/ bacula/i386/
deb http://apt.univention.de/2.1/maintained/component/ bacula/amd64/
deb http://apt.univention.de/2.1/maintained/component/ bacula/extern/
deb-src http://apt.univention.de/2.1/maintained/component/ bacula/source/

Mit den folgenden Befehlen können anschließend die Bacula Server Komponenten (der Bacula Director, sowie der Storage Daemon und die Kommandozeilenbasierte Bacula Console), benötigte Pakete zum Ansteuern von Tape-Streamern und Autochanger-Einheiten sowie eine PostgreSQL-Datenbank zum als Bacula Catalog installiert werden:

apt-get install bacula-sd-pgsql bacula-director-pgsql bacula-client mtx mt-st univention-postgresql

Während der Installation wird die Frage gestellt ob die Konfiguration der (PostgreSQL) Datenbank für bacula-director-pgsql mit dbconfig-common geschehen soll, hier ist mit “” zu antworten.

3.1 Einrichtung und Konfiguration der PostgreSQL Datenbank
Für den Zugriff von Bacula auf den PostgreSQL-Server muss ein entsprechender Benutzer (in diesem Beispiel “bacula”) mit einem Passwort angelegt werden. Anschließend kann die Einrichtung des Bacula Catalog über mitgelieferte Scripte vorgenommen werden:

[ul]
[li] Anlegen des PostgreSQL Benutzers “bacula” (das angegebene Passwort ist in der Bacula Director Konfiguration anzugeben):

createuser -P bacula

[li] Anlegen der PostgreSQL Datenbank:

createdb -E SQL_ASCII

[li] Erzeugen der benötigten Tabellen:

/usr/share/bacula-director/make_postgresql_tables

[li] Setzen der Berechtigungen für den Benutzer “bacula”:

/usr/share/bacula-director/grant_postgresql_privileges

Um dem Benutzer “bacula” mit dem angegebenen Passwort die Anmeldung am PostgreSQL-Server zu erlauben, ist eine zusätzliche Konfiguration des PostgreSQL-Servers notwendig. Um dies zu realisieren kann der Univention Configuration Registry-Mechanismus verwendet werden:

[ul]
[li] Ablegen eines zusätzlichen Templates:
Um die Konfigurationsdatei pg_hba.conf des PostgreSQL-Servers um zusätzliche Einträge zu erweitern, kann eine Datei /etc/univention/templates/files/etc/postgresql/7.4/main/pg_hba.conf.d/12-bacula_user.conf mit dem folgenden Inhalt erzeugt werden:

[code]

Bacula Database Access

local bacula bacula md5
host bacula bacula 127.0.0.1 255.255.255.255 md5
@!@
print “host bacula bacula %s %s md5” % (baseConfig[‘interfaces/eth0/network’], baseConfig[‘interfaces/eth0/netmask’])
@!@
[/code][/li]
[li] Registrieren des zusätzlichen Templates:
Um dem Univention Configuration Registry-Mechanismus die neue Template-Datei bekannt zu machen, muss eine Datei /etc/univention/templates/info/univention-postgresql-bacula.info mit dem folgenden Inhalt angelegt werden:

[code]
Type: multifile
Multifile: etc/postgresql/7.4/main/pg_hba.conf

Type: subfile
Multifile: etc/postgresql/7.4/main/pg_hba.conf
Subfile: etc/postgresql/7.4/main/pg_hba.conf.d/12-bacula_user.conf
Variables: interfaces/eth0/network
Variables: interfaces/eth0/netmask
[/code][/li][/ul]
Anschließend kann die PostgreSQL-Konfiguration mittels Univention Configuration Registry neu geschrieben und der PostgreSQL Server anschließend neu gestartet werden:

univention-config-registry commit /etc/postgresql/7.4/main/pg_hba.conf
/etc/init.d/postgresql-7.4 restart

3.2 Einrichtung und Konfiguration von Bacula
Die Konfiguration der Bacula Komponenten ist, je nach Backup-Strategie und Umfang, sehr unterschiedlich. Es empfiehlt sich daher, um für ein grundsätzliches Verständnis der Konfigurationsdateien und der darin notwendigen Passagen zu erlangen, mit dem Kapitel Getting Started with Bacula der Bacula Dokumentation zu beginnen.

Mit freundlichen Grüßen
Janis Meybohm

Mastodon