Datensicherungen mit Bacula

zur Webseite von Bacula

Was ist Bacula ?

Bacula ist ein Netzwerkbackupsystem dass Daten von unterschiedlichen Rechnern "Windows 7/8/10/Ubuntu/Debian" über das Netzwerk sichen kann.
Auf jeden Rechner, dessen Daten gesichert werden sollen, muss ein Client installiert werden. Dieser stellt die Kommunikation zum Bacula Server her.
Den Server gibt es einmal in der Community Edtion und in einer Enterprise Edition.

Sicherungsarten des Bacula Servers

Vollsicherungen
Alle zu sichernden Dateien werden bei jeder Sicherung komplett gesichert

Differentielle Sicherung
bei der differentiellen Sicherung werden nur die Dateien gesichert, welche sich seit der letzten Vollsicherung geändert haben

Inkrementelle Sicherung
die inkrementelle Sicherung entspricht technisch gesehen der differentiellen Sicherung, nur dass hier nur die unterscheide zur jeweils letzten inkrementellen Sicherung gesichert werden.

Über einen Webbrowser können Sicherungen / Rücksicherungen ausgeführt werden. Mit einer kleinen Einweisung kann auch der Kunde selbst diese Aufgaben übernehmen.
Zusätzlich wird jeden Tag eine E-Mail über Erfolg und Misserfolg der Sicherungen gesendet. Somit behält man den aktuellen Status der Sicherungen im Auge.

Seit mehr als 4 Jahren sichere ich so die internen Server und Arbeitsplatzstationen. Die Konfiguration des Bacula Servers nicht ganz einfach, aber ist dieser ersteinmal eingerichtet, läuft dieser wie ein Uhrwerk.

Arbeiten mit Bacula

Der Bacula Server wird ohne eine Grafische Benutzeroberfläche installiert. Jeder einzelne Rechner im Netzwerk der gesichert werden muss, wird auf dem Backup Server inform einer Datei angelegt.
Weiterhin muss auf jedem Rechner einen Client installiert werden. Nur über diesen kann jeder zu sicherende Rechner im Netzwerk mit dem Backup Server kommunizieren.

Hier eine Demoseite von Baculum "username=admin / passwort=admin"

Zusätzlich wird nach jeder Sicherung eine E-Mail über den aktuellen Status der Sicherung an eine E-Mail-Adresse gesendet "inklusive Warnungen", das erleichtert die Suche nach einem Fehler.

Bei den Einstellungen der jeweiligen Sicherungen pro Server können einzelne Dateien oder auch einzelne/mehrere Ordner ausgeschlossen werden, diese werden in der jeweiligen Konfigurationsdatei festgelegt.
Jeder zu sichernde Rechner hat eine Datei, in der alles eingestellt wird.

In diesem Beispiel wird ein Owncloud Server gesichert, allerdings sollen die Mülleimer von jedem Benutzer ausgeschlossen werden, da dieser nicht benötigt wird.

Exclude {

# Alle Mülleimer von Owncloud werden nicht mitgesichert.
File = /web/owncloud/data/user1/files_trashbin
File = /web/owncloud/data/user2/files_trashbin
File = /web/owncloud/data/user3/files_trashbin
File = /web/owncloud/data/user4/files_trashbin
File = /web/owncloud/data/user5/files_trashbin
File = /web/owncloud/data/user6/files_trashbin

}

Dateien mit bestimmten Endungen wie *.exe können auch ausgeschlossen werden.

Über die Einstellung

# Aufgaben vor der Sicherung
ClientRunBeforeJob = "/root/baculasripts/webserver-before.sh"

# Aufgaben nach der Sicherung
ClientRunAfterJob = "/root/baculasripts/webserver-after.sh"

kann genau festgelegt werden, welche Befehle vor/nach der Sicherung ausgeführt werden.

Bei einem Seafile Server würde dieses so ausehen.

ClientRunBeforeJob = "/root/bacula/sripts/seafiler-before.sh"

1, stoppe den seafile server
2, erstelle einen zip archive der gesamten datenstruktur von seafile
3, datenbank backup durchführen
4, gebe plattenplatz auf dem seafile server wieder frei
5,überprüfe die struktur vom seafile server

Jetzt wird die Sicherung über den Bacula Server ausgeführt, nach dieser erfolgt der

ClientRunAfterJob = "/root/bacula/sripts/seafile-after.sh"

1, lösche das vorher angelegte archive und die datenbank
2, starte den seafile server wieder und sende einen status bericht per e-mail

Jede einzelene Sicherung kann über einen Scheduler eingerichtet werden.

Hier wird jeden Tag von Montag bis Freitag ein kompletter Webserver Inkrementell gesichert und am Samstag wird eine Vollsicherung durchgeführt.

Schedule
{
Name = "Schedule-webserver-fd"
Run = Incremental Pool=pool-webserver mon-fri at 22:00
Run = Full Pool=pool-webserver sat at 22:00
}

Diese Sicherung wird 14 Tage lang aufgehoben

Pool
{
Name = pool-webserver
Pool Type = Backup
Recycle = yes
AutoPrune = yes
Volume Retention = 14 days
}

danach wird diese wieder überschrieben. So kann der Datenbestand von den letzten 2 Wochen wiederhergestellt werden.

Bitte beachten Sie, dass auch ein Backup Server gesichert werden muss!

Daher kann ich nur empfehlen, den Server zu virtualisieren damit dieser komplett gesichert werden kann.

Sollte wirklich einmal der Proxmox Server ausfalllen, so kann der Bacula Server jederzeit  auf einen anderen Proxmox Server einspielt werden .
Ich selbst sichere die Bacula Server täglich auf eine externe USB-Festplatte.

 

Die Sicherungen Ihrer Daten können entweder auf einen anderen Rechner im Netzwerk, NAS, externe USB Festplatte gesichert werden.
Diese Medien müssen im Bacula Server selbst eingebunden werden. Sicherungen über OpenVPN sind ebenfalls möglich.

Eine Beispiel einer Sicherung eines Windows 2012R2 Datei Servers.

Der Bacula Server steht im Gebäude A. Eine NAS "auf der die Sicherung geschrieben wird" im Gebäude B.

Vollsicherung

Elapsed time:          3 hours 31 mins 43 secs
Priority:                   10
FD Files Written:      438,136
SD Files Written:      438,136
FD Bytes Written:     439,213,438,497 (439.2 GB)
SD Bytes Written:     439,305,697,160 (439.3 GB)
Rate:                        34575.6 KB/s

Sehr gerne berate ich Sie über die Möglickeiten, wenn Sie in Ihrem Unternehmen einen Bacula Server einsetzen möchten.