Login
Newsletter
Werbung

So, 28. Januar 2007, 00:00

Sicherung verteilter Systeme mit Bacula

Wichtige Konfigurationsparameter sind unter anderem:

  • Type = Typ Art des Jobs; entweder eine Sicherung, eine Rücksicherung, ein Verifikationslauf (Vergleich der Quelle mit der Sicherung) oder ein Administrationslauf (z. B. Bereinigung des Katalogs oder Rückspulen und Auswerfen der Bänder)
  • Level = Level Art der Sicherung; entweder Full, Incremental oder Differential. Für einen Verify-Job existieren eigene Level, die im Handbuch beschrieben sind.
  • Pool = Name gibt den zu verwenden Pool an. Mit mehreren Pools können mehrere Medien (z. B. Tagesbänder) verwaltet werden. Es existieren weitere Optionen, um Pools für verschiedene Sicherungstypen zu definieren.
  • Recycle = yes | no gibt an, ob ein existierendes Volume überschrieben werden darf
  • VolumeRetention = Zeit Aufbewahrungsdauer des Volumes
  • Schedule = Name gibt den zu verwendenden Zeitplan an
  • Storage = Name gibt den zu verwendenden Storage-Daemon an. Somit kann man verschiedene Sicherungsgeräte verwenden.
  • Client = Name Name des zu sichernden Rechners
  • FileSet = Name Name des zu sichernden FileSets
  • RerunFailedLevels = yes | no wenn vorhergehende, höherlevelige Sicherungsläufe fehlgeschlagen sind, wird das Level des jetzigen Laufes erhöht. Nützlich für Laptops, die nicht immer im Netz sind und z.B. bei der letzten Komplettsicherung übergangen wurden.
  • RunBeforeJob = Befehl führt Befehl vor dem Sicherungslauf aus. Nützlich für Aufräumarbeiten oder um z.B. eine Datenbank in eine zu sichernde Datei zu exportieren.
  • RunAfterJob = Befehl führt Befehl nach dem Sicherungslauf aus, z. B. Auswurf der Bänder

JobDefs {
 Name = Sicherung"
 Client = fafnir-fd
 Type = Backup
 Level = Full
 FileSet = "home"
 Messages = Standard
 Pool = Default
 Priority = 10
}
Job {
 Name = Archivierung"
 JobDefs = "DefaultJob"
 Schedule = Ärchivband"
 Storage = FileStorage
 RunBeforeJob = "/root/bin/my_pg_dumpall.sh"
 RunAfterJob = "cp /usr/bacula/vol* /mnt/nfs/archiv"
}
Job {
 Name = "Client1"
 JobDefs = "DefaultJob"
 Schedule = "Wochenzyklus"
 Storage = DDS4
}

Anstatt Bänder kann Bacula die Sicherungen auch als Datei auf eine Wechselplatte schreiben. Diese Methode ist recht kostengünstig und schnell, erfordert aber einigen Konfigurationsaufwand. Normalerweise labelt Bacula jedes Volume (also jedes Band oder hier jede Datei) mit einem eigenen Label, das der Verwaltung dient. Möchte man nicht nur ein Volume verwenden, das immer wieder überschrieben wird, muss man verschiedene Pools definieren, in denen die Verwendung eines Volumes beschränkt wird. Das folgende Listing zeigt eine mögliche Konfiguration. Hierbei werden fünf verschiedene, gleichartige Pools, für jeden Werktag einer, erzeugt. Die Pools verwenden eine Wechselfestplatte als Medium, auf das sie zwei Volumes (Maximum Volume Jobs = 2) schreiben dürfen. Sind beide Volumes voll, wird das erste wieder überschrieben (Recycle = yes). Mit den RunBeforeJob- und RunAfterJob-Befehlen wird die Wechselfestplatte ein- bzw. ausgemountet und kann so nach der Sicherung entfernt werden. Im Schedule wird für jeden der täglichen Sicherungsläufe ein eigener Pool definiert, der die Pool-Option in der Job-Konfiguration überschreibt. Zusätzlich wird im Job noch eine Max Start Delay von 14 Stunden festgelegt, d.h. Bacula versucht bei Fehlern, 14 Stunden lang den Lauf auszuführen. Somit hat der Administrator die Möglichkeit, evtl. auftretende Fehler zu beheben. Weiterhin wird mit Write Bootstrap eine Bootstrap-Datei erzeugt und auf der jeweiligen Wechselplatte abgelegt. Diese Bootstrapdatei enthält alle notwendigen Metadaten zur Sicherung, ist also quasi nichts anderes als das passende Kapitel aus dem Katalog. Mit dieser Datei kann man die Sicherung auch von Hand zurückspielen.

Schedule {
Name = "TaeglPlatte"
Run = Level=Full Pool=MontagPool Monday at 06:00
Run = Level=Full Pool=DienstagPool Tuesday at 06:00
Run = Level=Full Pool=MittwochPool Wednesday at 06:00
Run = Level=Full Pool=DonnerstagPool Thursday at 06:00
Run = Level=Full Pool=FreitagPool Friday at 06:00
}
Pool {
 Name = MontagPool
 Pool Type = Backup
 Recycle = yes
 AutoPrune = yes
 Volume Retention = 6d
 Accept Any Volume = yes
 Maximum Volume Jobs = 2
 RunBeforeJob = "/sbin/mount -o softdep,noatime /dev/sd4a /mnt/sd4a/"
 RunAfterJob = "/sbin/umount /dev/sd4a"
}
[...]
Pool {
 Name = FreitagPool
 Pool Type = Backup
 Recycle = yes
 AutoPrune = yes
 Volume Retention = 6d
 Accept Any Volume = yes
 Maximum Volume Jobs = 2
 RunBeforeJob = "/sbin/mount -o softdep,noatime /dev/sd4a /mnt/sd4a/"
 RunAfterJob = "/sbin/umount /dev/sd4a"
}
Job {
 Name = "TaeglichKomplettAufPlatte"
 Type = Backup
 Client = ServerName
 FileSet = "Full Set"
 Schedule = "TaeglPlatte"
 Media Type = File
 Archive Device = /mnt/sd4a
 LabelMedia = yes
 Random Access = Yes
 AutomaticMount = yes
 RemovableMedia = no;
 AlwaysOpen = no
 Messages = Standard
 Pool = Default
 Write Bootstrap = "/mnt/sd4a/NightlySave.bsr"
 Max Start Delay = 14h
}

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung