Bacula ist ein professionelles Backupprogramm für Unix. Es kann ganze Serverfarmen sichern, eignet sich aber auch für den Heimgebrauch gut geeignet. Bacula kann jedes Unixoide Betriebssystem und sogar jedes Windows (ab Win98) sichern.
1. Installation:
Als erstes Öffnet man Synaptic und sucht nach Bacula, ich habe Bacula mit folgenden Paketen installiert:
bacula, bacula-client, bacula-common, bacula-console, bacula-director-common, bacula-director-sqlite3, bacula-fd, bacula-sd, bacula-sd-sqlite3, bacula-server
Wichtig ist Bacula mit den sqlite Komponenten auszuwählen wenn man sich nicht mit MySQL rumschlagen will. Sqlite ist eine abgespeckte Datenbank, völlig ausreichend für Bacula.
2.Konfiguration:
Der Storage Daemon Schreibt die Backupdaten auf die Festplatte/Bandrobotter etc.
Die Konfigurationsdateien von Bacula liegen unter
/etc/bacula
Unter diesem Verzeichnis liegen folgende Dateien:
$ ls -l
insgesamt 32
-rw-r----- 1 root bacula 8678 2008-10-04 00:22 bacula-dir.conf
-rw-r----- 1 root root 1024 2008-10-04 00:22 bacula-fd.conf
-rw-r----- 1 bacula bacula 6505 2008-10-04 00:22 bacula-sd.conf
-rw-r----- 1 root bacula 178 2008-10-04 00:22 bconsole.conf
drwxr-xr-x 2 root root 4096 2008-10-04 00:22 scripts
- bacula-dir.conf Konfig für den Chef, der alles überwacht.
- bacula-fd.conf Konfig für den Daemon, der von den Clients Dateien zieht.
- bacula-sd.conf Konfig für den Daemon, der die Daten auf die Festplatte schreibt.
- bconsole.conf Konfig für die Bacula-Konsole über die man Bacula steuert.
- Der Ordner scripts ist für die Grundkonfiguration nicht von Bedeutung.
2.1 Konfiguration des Storage Daemons:
Das einzige was hier angepasst werden muss ist Archive Device.
Device {
Name = FileStorage
Media Type = File
Archive Device = /media/Backup
LabelMedia = yes; # lets Bacula label unlabeled media
Random Access = Yes;
AutomaticMount = yes; # when device opened, read it
RemovableMedia = no;
AlwaysOpen = no;
}
2.2 Konfiguration des File-Daemons:
Auf jedem Client muss ein solcher Filedaemon angelegt werden:
FileDaemon { # this is me
Name = mw88-desktop-fd
FDport = 9102 # where we listen for the director
WorkingDirectory = /var/lib/bacula
Pid Directory = /var/run/bacula
Maximum Concurrent Jobs = 20
FDAddress = 127.0.0.1
}
Wichtig ist dass Name, Port und FDAddress in der bacula-fd.conf auf dem Client und in der bacula-dir.conf auf dem Server gleich sind.
2.3 Konfiguration des Bacula-Directors
Der Bacula-Director ist das Herzstück von Bacula, er koordiniert alle Daemons und steuert die Backups.
Für jeden Client muss eine Jobdefinition angelegt werden, über die man später das Backup starten kann.
JobDefs {
Name = "Backupserver sichern"
Type = Backup
Level = Incremental
Client = mw88-desktop-fd
FileSet = "Full Set"
Schedule = "WeeklyCycle"
Storage = File
Messages = Standard
Pool = Default
Priority = 10
}
Name und Client müssen entsprechend angepasst werden, wenn keine automatischen Backups gewollt sind, muss Schedule rausgelöscht bzw mit einem vorangestellten # auskommentiert werden.
Damit man auch zurückspielen kann, muss noch ein Restorejob angelegt werden. Es reicht wenn nur ein solcher Job definiert ist, da man in der bconsole vor außführen des Jobs den Client austauschen kann.Job {
Name = "Restore Files"
Type = Restore
Client=mw88-desktop-fd
FileSet="Full Set"
Storage = File
Pool = Default
Messages = Standard
Where = /media/Backup/Wiederhergestellt
}
Where gibt an wohin die Daten wiederhergestellt werden sollen.
Sollen die Clients jede Nacht gesichert werden, muss jeweils ein Job angelegt werden.
Job {
Name = "Client1"
JobDefs = "DefaultJob"
Write Bootstrap = "/var/lib/bacula/Client1.bsr"
}
Name und Bootstrap müssen hier angepasst werden.
Für jeden Client muss ein FileSet definiert werden, das angibt was gesichert werden soll und welche Verzeichnisse/Dateien nicht mit einbezogen werden sollen.FileSet {
Name = "Full Set"
Include {
Options {
signature = MD5
}
File = /etc
File = /home/mw88
}
Exclude {
File = /home/mw88/.gvfs
File = /home/mw88/.wine/drive_c/windows/temp
}
}
Hier muss für jeden Client ein Gegenstück zu dem Filedaemon, der auf dem Client läuft, definiert werden.
Client {
Name = mw88-desktop-fd
Address = mw88-desktop
FDPort = 9102
Catalog = MyCatalog
Password = "Passwort" # password for FileDaemon
File Retention = 30 days # 30 days
Job Retention = 6 months # six months
AutoPrune = yes # Prune expired Jobs/Files
}
Wenn der Storage-Daemon auf dem gleichen Rechner laufen soll wie der Director, muss unter dem Punkt Storage nichts verändert werden. Alternativ lassen sich hier auch Bandrobotter oder DVD-Brenner als Sicherungsmedium eintragen.
Will man keine Automatischen Backups muss man die Schedule Punkte mit # auskommentieren, ansonsten müssen hier Datum und Uhrzeit angepasst werden.
2.4 Konfiguration der Bconsole
Die Bconsole ist das Interface, über dass Bacula gesteuert wird. Sie kann direkt auf dem Backupserver und auf einem entfernten Rechner ausgeführt werden. Dazu muss auf dem jeweiligen Rechner die Bconsole installiert sein und die bconsole.conf entsprechend angepasst werden.
Abschließend müssen die Dienste noch neugestartet werden./etc/init.d/bacula-director restart
/etc/init.d/bacula-fd restart
/etc/init.d/bacula-sd restart
Sollten sich in der Konfigurationsdatei Fehler eingeschlichen haben, werden die Skripte darauf hinweisen.
Damit ist die Konfiguration abgeschlossen, auf die Bediehnung geh ich im nächsten Post ein.