Roman Milert - Fotolia
Open-Source-Backup-Lösung auf Ubuntu einrichten
Bacula gehört zu den bekanntesten Backup-Lösungen für Unternehmen. Der Beitrag erläutert, welche Backup-Möglichkeiten das Tool bietet, und die Einrichtung für Ubuntu.
Bacula ist in verschiedenen Editionen verfügbar. Die Community Edition ist eine Open-Source-Version, die kostenlos genutzt werden kann und alle grundlegenden Funktionen für Backup und Wiederherstellung bietet. Diese Edition richtet sich vor allem an kleine bis mittelgroße Unternehmen sowie an private Nutzer, die eine robuste und flexible Backup-Lösung suchen. Daneben gibt es die Bacula Enterprise Edition, die zusätzliche Funktionen und kommerziellen Support bietet. Diese Edition ist speziell für große Unternehmen und Organisationen konzipiert, die erweiterte Anforderungen an ihre Backup-Infrastruktur haben, wie verbesserte Skalierbarkeit, erweiterte Sicherheitsfunktionen und umfassenden Support. Die Enterprise Edition umfasst zusätzliche Features wie deduplizierte Backups, erweiterte Reporting- und Monitoring-Tools sowie Integration mit verschiedenen Cloud-Diensten.
Das bietet Bacula
Bacula offeriert umfassende Möglichkeiten zur Datensicherung und -wiederherstellung über Netzwerke hinweg und unterstützt eine Vielzahl von Betriebssystemen, darunter Linux, Windows und macOS. Mit Bacula lassen sich verschiedenste Datenarten sichern, von Dateien und Verzeichnissen bis hin zu kompletten Systemabbildern. Durch die modulare Architektur, bestehend aus Komponenten wie dem Bacula Director, der Konsole, dem File- und Storage-Daemon sowie dem Katalog, ermöglicht Bacula eine flexible und skalierbare Backup-Lösung. Bacula Director steuert die Backup-, Restore-, und Verifizierungsprozesse, während der File-Daemon auf den zu sichernden Clients installiert wird und die eigentlichen Datenübertragungen übernimmt. Der Storage-Daemon sorgt für die Speicherung und Wiederherstellung der Daten auf physischen Medien wie Festplatten oder Bandlaufwerken. Ein besonderer Vorteil von Bacula ist die Unterstützung verschiedener Datenbanksysteme wie MySQL, PostgreSQL und SQLite. Durch die Möglichkeit, detaillierte Backup-Jobs und Zeitpläne zu erstellen, lassen sich sowohl einfache als auch komplexe Sicherungsszenarien abbilden.
Bacula Community Edition auf Linux installieren
Die Installation der Bacula Community Edition auf einem Ubuntu-System erfolgt über die Paketverwaltung Zunächst sollte das System aktualisiert werden, um sicherzustellen, dass alle Pakete auf dem neuesten Stand sind:
sudo apt update && sudo apt upgrade -y
Anschließend wird das Bacula-Paket installiert. Standardmäßig wird dabei PostgreSQL als Katalogdatenbank verwendet. Wenn SQLite oder MySQL für den Katalog verwendet werden soll, installiert man stattdessen bacula-director-sqlite3oder bacula-director-mysql. Um Bacula zu installieren, führt man den folgenden Befehl aus:
sudo apt install bacula -y
Während der Installation erscheint eine Eingabeaufforderung, in der ein Passwort für den Datenbankbenutzer des Bacula-Katalogs festgelegt werden muss. Der Bacula-Katalog ist ein zentraler Bestandteil des Bacula-Systems, der die Indizes und Metadaten aller gesicherten Dateien verwaltet. Er ermöglicht eine schnelle und effiziente Wiederherstellung von Daten, da er detaillierte Informationen über die gespeicherten Backups, einschließlich Dateinamen, Speicherorte und Zeitstempel, enthält. Der Katalog unterstützt verschiedene Datenbanksysteme wie MySQL, PostgreSQL und SQLite.
Nach Abschluss der Installation sind die Konfigurationsdateien in /etc/bacula verfügbar. Es ist sinnvoll, die Konfiguration an die spezifischen Anforderungen anzupassen, insbesondere die Dateien bacula-dir.conf, bacula-fd.conf und bacula-sd.conf, um die Passwörter und Einstellungen der verschiedenen Bacula-Dienste abzugleichen. Nach der Konfiguration der Dienste sollten diese neu gestartet werden, um die Änderungen zu übernehmen:
sudo systemctl restart bacula-director
sudo systemctl restart bacula-fd
sudo systemctl restart bacula-sd
Zusätzlich kann es notwendig sein, Benutzer zur Bacula-Gruppe hinzuzufügen, um die Bacula-Konsole nutzen zu können. Dies geschieht mit folgendem Befehl:
sudo adduser $username bacula
Dabei wird $username durch den tatsächlichen Benutzernamen ersetzt. Nach einem Neustart des Systems oder einer Abmeldung und erneuten Anmeldung des Benutzers sind die neuen Berechtigungen wirksam. Mit diesen Schritten ist die Bacula Community Edition auf Ubuntu installiert und einsatzbereit.
Detaillierte Konfiguration von Bacula
Bacula-Konfigurationsdateien sind basierend auf Ressourcen formatiert, die aus durch geschweifte Klammern {} eingeschlossenen Direktiven bestehen. Jede Bacula-Komponente hat eine eigene Datei im Verzeichnis /etc/bacula.
Die verschiedenen Bacula-Komponenten müssen sich gegenseitig autorisieren. Dies geschieht mittels der Passwort-Direktive. Beispielsweise muss das Passwort der Storage-Ressource in der Datei /etc/bacula/bacula-dir.conf mit dem Passwort der Director-Ressource in /etc/bacula/bacula-sd.conf übereinstimmen.
Standardmäßig ist der Backup-Job namens BackupClient1 so konfiguriert, dass er den Bacula-Katalog archiviert. Wenn mehr als ein Client gesichert werden soll, empfiehlt es sich, den Namen dieses Jobs zu ändern. Dazu bearbeitet man /etc/bacula/bacula-dir.conf:
#
# Define the main nightly save backup job
# By default, this job will back up to disk in
Job {
Name = "BackupServer"
JobDefs = "DefaultJob"
Write Bootstrap = "/var/lib/bacula/Client1.bsr"
}
Das obige Beispiel ändert den Jobnamen in BackupServer, entsprechend dem Hostnamen der Maschine. Die Konsole kann verwendet werden, um den Director nach Jobs abzufragen. Damit die Konsole mit einem Nicht-Root-Benutzer verwendet werden kann, muss der Benutzer zur Bacula-Gruppe hinzugefügt werden. Dies geschieht mit folgendem Befehl im Terminal:
sudo adduser $username bacula
Um spezifische Verzeichnisse auf einem einzelnen Host auf ein lokales Bandlaufwerk zu sichern, bearbeitet man /etc/bacula/bacula-sd.conf und fügt hinzu:
Device {
Name = "Tape Drive"
Device Type = tape
Media Type = DDS-4
Archive Device = /dev/st0
Hardware end of medium = No;
AutomaticMount = yes;
AlwaysOpen = Yes;
RemovableMedia = yes;
RandomAccess = no;
Alert Command = "sh -c 'tapeinfo -f %c | grep TapeAlert'"
}
Das Beispiel ist für ein DDS-4-Bandlaufwerk. Media Type und Archive Device sollten an die eigene Hardware angepasst werden. Nach dem Bearbeiten von /etc/bacula/bacula-sd.conf muss der Storage-Daemon neu gestartet werden:
sudo systemctl restart bacula-sd.service
Danach fügt man eine Storage-Ressource in /etc/bacula/bacula-dir.conf hinzu, um das neue Gerät zu verwenden:
# Definition of "Tape Drive" storage device
Storage {
Name = TapeDrive
# Do not use "localhost" here
Address = backupserver # N.B. Use a fully qualified name here
SDPort = 9103
Password = "Cv70F6pf1t6pBopT4vQOnigDrR0v3LT3Cgkiyjc"
Device = "Tape Drive"
Media Type = tape
}
Die Address-Direktive muss der vollständig qualifizierte Domänenname (FQDN) des Servers sein. Darüber hinaus sollte backupserver durch den tatsächlichen Hostnamen ersetzt werden. Das Passwort in der Password-Direktive muss mit dem Passwort in /etc/bacula/bacula-sd.conf übereinstimmen. Ein neues FileSet wird erstellt, um die zu sichernden Verzeichnisse zu definieren:
# LocalhostBacup FileSet.
FileSet {
Name = "LocalhostFiles"
Include {
Options {
signature = MD5
compression=GZIP
}
File = /etc
File = /home
}
}
Dieses FileSet sichert die Verzeichnisse /etc und /home. Die Optionen in der Include-Ressource konfigurieren das FileSet so, dass für jede gesicherte Datei eine MD5-Signatur erstellt und die Dateien mit GZIP komprimiert werden. Anschließend wird ein neuer Zeitplan für den Backup-Job erstellt:
# LocalhostBackup Schedule -- Daily.
Schedule {
Name = "LocalhostDaily"
Run = Full daily at 00:01
Der Job wird täglich um 00:01 Uhr ausgeführt. Danach wird der Job erstellt:
# Localhost backup.
Job {
Name = "LocalhostBackup"
JobDefs = "DefaultJob"
Enabled = yes
Level = Full
FileSet = "LocalhostFiles"
Schedule = "LocalhostDaily"
Storage = TapeDrive
Write Bootstrap = "/var/lib/bacula/LocalhostBackup.bsr"
}
Der Job führt täglich ein vollständiges Backup auf das Bandlaufwerk durch. Jedes verwendete Band muss ein Label haben. Wenn das aktuelle Band kein Label hat, sendet Bacula eine E-Mail zur Benachrichtigung. Um ein Band mit der Konsole zu labeln, gibt man folgenden Befehl im Terminal ein:
bconsole
label
Es gibt dabei zahlreiche weitere Optionen und Einstellungsmöglichkeiten für Bacula. Das flexible Backup-System ist damit auch in großen Unternehmen sinnvoll und optimal einsetzbar. Hier ist aber Support notwendig, da bei Problemen die Fehlerbehebung durchaus komplex sein kann.