Benutzer-Werkzeuge

Webseiten-Werkzeuge


infrastruktur:host:backup

Dies ist eine alte Version des Dokuments!


Backup

  • Verantwortung: DJWawa
  • Umgebung: ?
  • Laufende version: ?
  • OS: ?
  • Zustand: Läuft

infos

Backup ist eine VM auf Case zur Speicherung automatischer Backups von gallifrey.

Folgende Ordner werden gesichert:

  • /var/lib/machines (Daten der Systemd-nspawn Container)
  • /root (Einige Skripte wie mkcontainer.sh)
  • /etc/network (Netzwerkconfig des Host)

Todo:

Backup Account für Zugriff auf Willi

  1. Account mit dem Namen 'backup' im ldap einrichten
    1. Dieser Account wird für den SSH-Zugang auf Willi benötigt
    2. authorized keys (auf Willi) von root@magrathea public key

magrathea

  1. Folgende Ordner müssen gebackuped werden:
    • /var/lib/lxc (Container)
    • /root (Skripte)
    • /etc (Konfigurationen)
    • /mnt/shared/nextcloud
    • /mnt/shared/backup
    • ?
  2. Test-VM aufsetzen für Snapshot tests:
    • Mit virsh kann man über folgenden Befehl snapshots der VMs anlegen:virsh snapshot-create-as
  3. Borg installieren
    1. und einrichten: Willi als ssh-gate

case

  1. lokaler Account 'backup' (auf case direkt oder container) einrichten
    1. authorized keys von root@magrathea public key
  2. Borg installieren
    1. und einrichten

Wer macht was?

  • DJWawa:
    • 'backup' Account Einrichtung + SSH-Key Verteilung
    • Borg Einrichtung
  • Wupo:
    • Test-VM (snapshot_test) anlegen + wieder löschen
    • Container + VM Snapshots Script(e)

VM Snapshots

Es werden nach dieser Anleitung Backups von allen vorhandenen VMs angelegt. Voraussetzung ist, dass das Image der zu sichernden VM im qcow2 Format hinterlegt ist.
Die relevanten Skripte sind auf magrathea unter /root/backup_scripts abgelegt.
vm-backup.sh stammt aus diesem gist und wurde nur leicht an unsere Gegebenheiten angepasst.
vm-backup-all.sh führt das o.g. Skript für alle vorhandenen VMs aus.
Die disk images und metadaten .xml Dateien liegen unter /mnt/shared/backup/vms.

VMs vom Backup ausschließen

Es werden alle VMs gesichert, die nicht explizit ausgeschlossen worden sind.
Ausschließen kann man VMs über einen Eintrag in der /root/backup_scripts/vm-backup-all.sh Datei. Dort gibt es einen grep Befehl ähnlich zu diesem:

grep -vE 'gitlab-runner|snapshot_test'

Um nun eine weitere VM vom Backup auszuschließen muss hier lediglich ein Pipe-symbol und der Name der VM hinzugefügt werden z.B.

grep -vE 'gitlab-runner|snapshot_test|weitere_vm'

libvirt-daemon-system bug #932456

Es gibt derzeit (Stand 15.05.2021) noch einen Bug im libvirt-daemon-system. Dieser konnte durch den Patch am Ende der verlinkten Diskussion vorläufig behoben werden. Da diese Version allerdings nicht weiter gewartet wird, sollte nach baldmöglichst auf ein offizielles Update des libvirt-daemon-system pakets gewechselt werden.

LXC Snapshots

Es wird ein Skript geben, welches einmal die Woche von allen lxc containern einen snapshot anfertigt.
Dazu werden die Container zunächst gestoppt, dann gespeichert und im Anschluss wieder gestartet.

lxc-stop <container-name>
lxc-snapshot <container-name>
lxc-start <container-name>

Borg Backups

Borg ist auf Magrathea und Case installiert.
Einmal die Woche meldet sich Magrathea-Borg über Willi bei Case-Borg an und legt dort Backups ab.

Dateien aus einem Backup wiederherstellen

Eine kürzlich geänderte Datei wiederherstellen

Ein Backup des Zustandes der letzten Nacht ist unter /root/backup-gallifrey/daily gespeichert. Die Maschine kann aus dem Space unter backup.dhcp.nobreakspace.org über ssh oder sftp erreicht werden.Das Passwort für den root user liegt beim Vorstand.

Eine ältere Version wiederherstellen

Für Ältere Versionen von Dateien gibt es ein Borg-Backup Repository unter root/backup-gallifrey/archive-borg. Informationen zum wiederherstellen von Dateien sind unter extract oder mount zu finden. Die Passphrase für das Repo hat der Vorstand.

infrastruktur/host/backup.1621353436.txt.gz · Zuletzt geändert: 18.05.2021 15:57 von Moritz Welberg