Sicherung meines Docker Servers
Sicherungskonzept
Der Datenbereich des Servers wird von einem cron job zyklisch gesichert. Um die Verbindung zum Sicherungs-NAS herzustellen, wird beim Start der Sicherung das Netzlaufwerk mit autofs eingehängt und 5 Minuten nach Ende der Sicherung wieder ausgehängt.
Die Sicherung wird mit rsnapshot durchgeführt. Es werden nur die relevanten Verzeichnisse gesichert. Das ist zum einen das Verzeichnis etc und zum anderen das Verzeichnis, in dem die Docker Container (hier /docker) ihre Daten ablegen.
Notwendige Software
rsync
rsnapshot
autofs
anacron oder einen anderer cron
Sicherungs Zyklus
Die Sicherungen laufen cron gesteuer (Beispieleinträge):
täglich
0 22 * * * /usr/bin/rsnapshot daily
wöchentlich
0 23 * * 1 /usr/bin/rsnapshot weekly
monatlich
59 23 1 * * /usr/bin/rsnapshot monthly
Beispielkonfiguration für autofs
Die Konfiguration besteht im Wesentlichen aus den Dateien *auto.master und auto.backup.
Beispiel für die Konfigurationsdatei auto.master
Vorasusetzungen:
Das Verzeichnis /Backup existiert im root dateisystem
Durch diesen Eintrag wird festgelegt, dass die, in der Datei auto.backup definierten, externen Laufwerke unterhalb des Verzeichnis /Backup eingebunden werden.
Durch den Parameter --ghost werden die einzubindenden Verzeichnisse beim Start von autofs automatisch unterhalb von /Backup angelegt und binden beim Zugriff auf diese Ghost Freigabe das externe Laufwerke ein.
/Backup /etc/auto.backup --ghost +dir:/etc/auto.master.d +auto.master
Der hier verwendete Name auto.backup ist nicht vorgegeben und kann frei gewählt werden.
Beispiel für die Konfigurationsdateiauto.backup
In der Datei auto.backup werden die einzubindenden Laufwerke mit Dateisystem, Zugriffsberechtigungen und Mountpoint (unterhalb von /Backup) beschrieben.
Backup -fstype=nfs,rw,soft,tcp,nolock xxx.xxx.xxx.xxx:/Backups
Nach dem Starten von autofs ist dann die Verzeichnisstruktur /Backup/Backup vorhanden. Beim Betreten des Verzeichnisses /Backup/Backup wird diese Freigabe eingebunden und 5 Minuten (default) nach dem Verlassen wieder ausgehängt.
Eine Beschreibung zu autofs kann hier gefunden werden.
Beispielkonfiguration für rsnapshot
Die folgende Konfiguration wird in die Datei rsnapshot.conf eingetragen.
Für das Beispiel gelten folgende Annahmen:
Das Verzeichis /Backup enthält die durch auto.backup eingebunden Verzeichnisse
Auf dem unter /Backup/backup eingebundenen Laufwerk befindet sich das Verzeichnis, hier im Beispiel, dockerhost
Inhalt der Datei rsnapshot.conf
config_version 1.2 snapshot_root /Backup/Backup/dockerhost/ no_create_root 1 cmd_cp /bin/cp cmd_rm /bin/rm cmd_rsync /usr/bin/rsync cmd_logger /usr/bin/logger retain daily 7 retain weekly 5 retain monthly 3 verbose 2 loglevel 3 lockfile /var/run/rsnapshot.pid exclude lost+found/ exclude var/ link_dest 1 ############################### ### BACKUP POINTS / SCRIPTS ### ############################### # LOCALHOST backup /etc/ ./ backup /docker/ ./
Eine Erklärung zu rsnapshot ist hier verfügbar
Hinweise
Kann das Verzeichnis während des Sichewrungstarts nicht gefunden werden weil z.B. das NAS down ist wird die Sicherung abgebrochen, da rsnapshot das notwendige root Verzeichnis nicht anlegen darf.













