Einrichtung Bareos Backuplösung

Getestet mit UCS4.4.1 und Bareos 17.2

Bareos (Backup Archiving Recovery Open Sourced) arbeitet netzwerkübergreifend und kann Daten vieler Betriebssysteme (Linux, Windows, macOS, FreeBSD, AIX, HP-UX und Solaris) sichern, archivieren und wiederherstellen. Sie können Ihre Backups auf Festplatten und Bandlaufwerken ablegen oder die Daten in der Cloud sichern. Es ist möglich, Zeitpläne für volle, inkrementelle und differenzielle Backups zu definieren. Über eine mehrsprachige Weboberfläche (das Bareos Web UI) erhalten Sie Zugriff auf die Bareos-Komponenten und auf die gesicherten Daten.

Bareos besteht aus mehreren Komponenten, die Hand in Hand arbeiten:

  • Bareos Director
  • Bareos File Daemon(s)
  • Bareos Storage Daemon(s)

Der Bareos Director (der Server) ist die Steuerzentrale, der die Datenbank (Bareos-Katalog), die angeschlossenen Clients, die File Sets (beschreiben, welche Daten Bareos sichern soll), die Zeitpläne und die Backup-Jobs selbst verwaltet. Der File Daemon ist auf jedem Client-Rechner installiert, den Bareos sichern soll. Er führt die Anweisungen des Bareos Director aus und schickt die Daten an den Storage Daemon, der sie zusammen mit ihren Attributen auf den eingerichteten Sicherungsmedien speichern kann. Im einfachsten Fall können alle Komponenten auf einem einzigen Rechner laufen (detailliertere Informationen bietet das Bareos-Handbuch).

Folgende Variabel UCR sind wichtig:

ucr search bareos

Alle anderen Configs befinden sich am Bareosserver unter /etc/bareos.

Die wichtigsten Verzeichnisse:

/etc/bareos/bareos-dir.d/fileset (Was wird gesichert und was nicht)
/etc/bareos/autogenerated/clients (Clientconfig generiert von UCS)
/etc/bareos/bareos-dir.d/schedule (Backupzeiten, Weekly...)

Bei neuen Files in diesen Verzeichnissen immer darauf achten das die Datei dem Bareosbenutzer und der Gruppe gehört.

Wir gehen hier von einer UCS VM aus, die auf Proxmox (ZFS) installiert ist. Für die Speicherung der Backups hängen wir einfach eine weitere virtuelle HDD ein. Hier auch wieder wichtig: „immer darauf achten das die Datei dem Bareosbenutzer und der Gruppe gehört.“ Den Pfad der Storage kann man mit folgender Variable ändern:

ucr get bareos/filestorage

Die Limits sind sehr klein gehalten. Deshalb sollte man sich vorher überlegen wie viel man sichern möchte, und wie lange man die Daten aufbehalten möchte.

ucr set bareos/max_full_volume_bytes=320
ucr set bareos/max_diff_volume_bytes=30
ucr set bareos/max_incr_volume_bytes=30

Wer den UCS-Bareosserver auch mit sichern möchte. Macht natürlich für etc usw. Sinn, setzt noch folgende Variable:

ucr set bareos/backup_myself=yes

Auch das Einrichten der Rechner aus der UCS-Domäne, die Bareos sichern soll, gelingt schnell und komfortabel. In der derzeitigen Version (Bareos 17.2.6 unter UCS 4.3 und 4.4) werden lediglich Windows- und Linux-Clients unterstützt. Um einen neuen Client in den Bareos-Backup-Plan aufzunehmen, wechseln Sie in der Univention Management Console (UMC) in die Abteilung Geräte und wählen Rechner aus. Klicken Sie in der Liste auf einen Rechnernamen. Auf der linken Seite sehen Sie unter Allgemein nun den Menüpunkt Bareos Backup. Klicken Sie auf diesen und aktivieren dann rechts die Checkbox Backup-Job aktivieren.

Nach einem Klick auf Speichern werden automatisch neue Konfigurationsdateien für den Bareos Director und für den Bareos File Daemon erzeugt. Auf dem Windows- oder Linux-Rechner installieren Sie danach den Bareos File Daemon. Abschließend gilt es, die Konfigurationsdatei vom UCS-Rechner auf den Client zu übertragen. Dazu kopieren Sie die passende Einrichtungsdatei aus dem Verzeichnis /etc/bareos/autogenerated/clients auf dem UCS-Server auf den jeweiligen Client-Rechner. Die Konfigurationsdateien enthalten zur besseren Orientierung den in der Management Console gesetzten Rechnernamen.

Zur Installation der Client-Pakete unter Linux und Windows und zu den Konfigurationsdateien der jeweiligen File Daemons gibt es ein englisches Howto, das die wichtigsten Schritte beschreibt.

Weiters setzt man den FQDN in diesem File /etc/bareos/bareos-dir.d/storage/File.conf. Da ansonsten nur vom Hostnamen ausgegangen wird. Beispiel:

file.conf
Storage {
  Name = File
  Address = bareos.supertux.lan                # N.B. Use a fully qualified name here (do not use "localhost" here).
  Password = "XXXXXXXXXXXXXXXXXxx"
  Device = FileStorage
  Media Type = File
  Collect Statistics = yes
}

Danach muss das bareos-dir.service neu gestartet werden.

Richtet man danach neue Client ein, Filesets, Configs, usw. begibt man sich in die „bconsole“ mit „help“ wird einem sehr ausführlich gezeigt was für Befehle es gibt. Mit dem Commando „reload“ ist die neue Konfig aktiv. Rechte der Configs beachten. Mit „messages“ gibt einem bareos auch sehr ausführlich Fehler in der soeben getätigen Konfiguration aus. Die Konsole gibt es übrigens auch über das Webinterface.

Bareos spricht auch IPV6. Default aber nur IPV4. Um das zu ändern editiert man diese Files /etc/bareos/bareos-dir.d/director/bareos-dir.conf, /etc/bareos/bareos-sd.d/storage/bareos-sd.conf, /etc/bareos/bareos-fd.d/client/myself.conf und fügt folgenden Bereich hinzu. Danach startet man den Director, Filedaemon und die Storage neu. Achtung, die Einrückungen müssen hier genau passen, sonst starten die Services nicht mehr.

...
Dir Addresses  = {
    ipv6 = {
        addr = ::;
    }
  }
...
...
SD Addresses  = {
    ipv6 = { addr = ::; }
  }

...
Client {
  Name = bareos-fd
  Maximum Concurrent Jobs = 20

  # remove comment from "Plugin Directory" to load plugins from specified directory.
  # if "Plugin Names" is defined, only the specified plugins will be loaded,
  # otherwise all filedaemon plugins (*-fd.so) from the "Plugin Directory".
  #
  # Plugin Directory = "/usr/lib/bareos/plugins"
  # Plugin Names = ""

  # if compatible is set to yes, we are compatible with bacula
  # if set to no, new bareos features are enabled which is the default
  # compatible = yes
  FD Addresses  = {
    ipv6 = { addr = ::; }
  }

}
systemctl restart bareos-sd.service bareos-dir.service bareos-fd.service

Überprüfen ob die Ports offen sind:

lsof -i :9101 (Director)
lsof -i :9102 (Filedaemon)
lsof -i :9103 (Storagedaemon)

Diese Version 18.2 funktioniert nicht mit den UCS-Servern (Stand 09.2019). Da die Version des Clients (Filedaemon) immer exakt die gleiche sein muss wie am Server, also 17.2. Installation des Clients 17.2 für Ubuntu 18.04. Direkt vom Repository der Firma ITEAS IT Services Gmbh..

apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 2FAB19E7CCB7F415
echo "deb https://apt.iteas.at/iteas bionic main" > /etc/apt/sources.list.d/iteas.list
apt update
apt install bareos-filedaemon

Optinal die QTGUI wenn man eine Desktopworkstation benutzt:

apt install bareos-traymonitor

Für die Installation (neueste Version) muss ein Rository eingebunden werden, direkt von Bareos.

RELEASE=release/latest/
DIST=xUbuntu_$(lsb_release -sr)
URL=http://download.bareos.org/bareos/$RELEASE/$DIST 
printf "deb $URL /\n" | sudo tee  /etc/apt/sources.list.d/bareos.list
wget -q $URL/Release.key -O- | sudo apt-key add - 
apt update
apt install bareos-client -y

Hat man alles installiert, editiert man die Datei

nano /etc/bareos/bareos-fd.d/client/myself.conf

Dort schreibt man den richtigen Namen hinein so wie dieser auch in der autogenerierten Config am Server steht. z.B. ubuntu.supertux.lan-fd Weiters editiert man die Datei

nano /etc/bareos/bareos-fd.d/director/bareos-dir.conf

Dort schreibt man das richtige Passwort von der autogenerierten Config am Server ab und ersetzt das in dieser Datei. Event. möchte man noch Zeitpläne und Filesets anpassen. Hat man das erledigt, kann man das Backup auch schon starten.

Um die richtige Version in UCS zu bekommen muss man die Appcenterquelle einbinden. Wichtig auch hier das die Clientersion immer analog zur Serverversion passt. In unserem Fall wieder die Version 17.2.x

Nun das neue Repository im Webinterface unter „Software → Repository-Einstellungen“, unter „Zusätzliche Repositories“ auf „Neu“ klicken und die Tabelle wie folgt ausfüllen:

Dann auf „Änderungen Anwenden“ klicken. Das Repo wird nun eingelesen. Der Vorgang kann je nach Serverlast, Internetlast und Geschwindigkeit etwas dauern. Danach kann man den Client im Webinterface unter „Software → Paketverwaltung“ installieren. Paketname: „bareos-client“. Oder auf der CMD mit:

univention-install bareos-client

Diese Version 18.2 funktioniert nicht mit den UCS-Servern (Stand 09.2019). Da die Version des Clients (Filedaemon) immer exakt die gleiche sein muss wie am Server, also 17.2. Installation des Clients 17.2 für Ubuntu 18.04. Direkt vom Repository der Firma ITEAS IT Services Gmbh..

apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 2FAB19E7CCB7F415
echo "deb https://apt.iteas.at/iteas buster main" > /etc/apt/sources.list.d/iteas.list
apt update
apt install bareos-client

Auch auf Gentoo spielt das ganze einwandfrei zusammen. Folgende Dinge müssen gesetzt sein.

Useflags in der Datei /etc/portage/package.use/static

app-backup/bareos clientonly -storage-daemon -postgres

Plus Freischaltung der richtigen Version in der Datei /etc/portage/package.keywords/static

=app-backup/bareos-17.2.6

Danach kann man das Paket ganz normal mit emerge installieren. Konfiguration gleich wie bei bei den anderen Systemen.

Bareos spricht auch IPV6. Default aber nur IPV4. Um das zu ändern editiert man folgendes File /etc/bareos/bareos-fd.d/client/myself.conf Achtung, die Einrückungen müssen hier genau passen.

myself.conf
Client {
  Name = ubuntudev.osit.cc-fd
  Maximum Concurrent Jobs = 20
 
  # remove comment from "Plugin Directory" to load plugins from specified directory.
  # if "Plugin Names" is defined, only the specified plugins will be loaded,
  # otherwise all storage plugins (*-fd.so) from the "Plugin Directory".
  #
  # Plugin Directory = /usr/lib/bareos/plugins
  # Plugin Names = ""
 
  # if compatible is set to yes, we are compatible with bacula
  # if set to no, new bareos features are enabled which is the default
  # compatible = yes
 
  FD Addresses  = {
    ipv6 = { addr = ::; }
  }
 
 
}

Danach startet man den Filedaemon neu.

systemctl restart bareos-filedaemon.service

Ob es funktioniert sieht man mit lsof -i :9102.

COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
bareos-fd 20971 root    3u  IPv6  97544      0t0  TCP *:bacula-fd (LISTEN)

Um die Fortschrittsanzeige im Webinterface zu aktivieren, muss man die Statistiken auf dem Server einschalten.

(assuming default/out-of-the-box config filenames)

/etc/bareos/bareos-dir.d/director/bareos-dir.conf:
(Director section)
Statistics Collect Interval = XX # interval in seconds
/etc/bareos/bareos-dir.d/storage/File.conf:
(Storage section)
Collect Statistics = yes
/etc/bareos/bareos-sd.d/storage/bareos-sd.conf:
(Storage section)
Collect Job Statistics = yes

Danach muss der Director und der Storagedaemon neu gestartet werden.