Benutzer-Werkzeuge

Webseiten-Werkzeuge


infrastruktur:backup

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
infrastruktur:backup [12.09.2021 15:58] Moritz Welberginfrastruktur:backup [24.09.2022 19:16] (aktuell) – [Backups/snapshots anzeigen] Paul
Zeile 1: Zeile 1:
-====== Backup ======+====== Backup Doku ======
  
-  VerantwortungDJWawa, wupo+**Was noch nicht gebackupped wird (stand 24.09.2022):**
  
-====infos====+   * nextcloud user data (''/mnt/shared/nextcloud''
 +   * VMs 
 +   * Video-server (''/mnt/shared/video'')
  
-Folgende Ordner werden gesichert: 
-  * ''/var/lib/machines'' (Daten der Systemd-nspawn Container) 
-  * ''/root'' (Einige Skripte wie mkcontainer.sh) 
-  * ''/etc/network'' (Netzwerkconfig des Host) 
  
-==== Todo:==== +Folgende Pfade werden gebackupped:
-===  Backup Account für Zugriff auf Willi === +
-  - Account mit dem Namen 'backup' im ldap einrichten +
-    - Dieser Account wird  für den SSH-Zugang auf Willi benötigt +
-    - authorized keys (auf Willi) von root@magrathea public key +
-===  magrathea === +
-  - Folgende Ordner müssen gebackuped werden: +
-    * ''/var/lib/lxc'' (Container) +
-    * ''/root'' (Skripte) +
-    * ''/etc'' (Konfigurationen) +
-    * ''/mnt/shared/nextcloud'' +
-    * ''/mnt/shared/backup'' +
-    * ? +
-  - Test-VM aufsetzen für Snapshot tests:\\ +
-    * Mit virsh kann man  über folgenden Befehl snapshots der VMs anlegen:''virsh snapshot-create-as'' +
-  - [[https://borgbackup.readthedocs.io/en/stable/|Borg]] installieren +
-    - und einrichten:  Willi als ssh-gate +
-=== case === +
-  - lokaler Account 'backup' (auf case direkt oder container) einrichten +
-    - authorized keys von root@magrathea public key +
-  - [[https://borgbackup.readthedocs.io/en/stable/|Borg]] installieren +
-    - und einrichten+
  
-=== Wer macht was? === +   * ''/var/lib/lxc/codi'' 
-  DJWawa: +   ''/var/lib/lxc/keycloak'' 
-    * 'backupAccount Einrichtung + SSH-Key Verteilung +   * ''/var/lib/lxc/md'' 
-    Borg Einrichtung+   * ''/var/lib/lxc/openproject'' 
 +   * ''/var/lib/lxc/redmine'' 
 +   * ''/var/lib/lxc/spacedeck'' 
 +   * ''/var/lib/lxc/web'' 
 +   * ''/var/lib/lxc/dokuwiki'' 
 +   * ''/var/lib/lxc/keycloak2'' 
 +   * ''/var/lib/lxc/monitoring'' 
 +   * ''/var/lib/lxc/pad'' 
 +   * ''/var/lib/lxc/roundcube'' 
 +   * ''/var/lib/lxc/thelounge'' 
 +   * ''/var/lib/lxc/website'' 
 +   * ''/var/lib/lxc/ffhl-blackbox'' 
 +   ''/var/lib/lxc/ldap'' 
 +   * ''/var/lib/lxc/nbspstatus'' 
 +   * ''/var/lib/lxc/sediment'' 
 +   * ''/var/lib/lxc/torproxy'' 
 +   * ''/var/lib/lxc/whiteboard'' 
 +   * ''/var/lib/lxc/gitlab'' 
 +   * ''/var/lib/lxc/mail'' 
 +   * ''/var/lib/lxc/nextcloud'' 
 +   * ''/var/lib/lxc/pretix'' 
 +   * ''/var/lib/lxc/social'' 
 +   * ''/var/lib/lxc/video'' 
 +   * ''/var/lib/lxc/zammad''
  
-  * Wupo: 
-    * Test-VM (snapshot_test) anlegen + wieder löschen 
-    * Container + VM Snapshots Script(e) 
  
  
-==== systemd unit ==== +===== Übersicht =====
-Es gibt unter '/etc/systemd/user' zwei systemd units: +
-  * weekly-backup.timer' +
-  * weekly-backup.service'+
  
-Diese starten das regelmäßige backup, über ein  weiteres script '/root/backup_scripts/backup'. Letzteres ruft das 'vm-backup-all.sh' und das 'backup-to-case.sh' script unter '/root/backup_scripts/' auf.   +**Ein Backupserver (nbsp-backup) pullt regelmäßig btrfs-snapshots von magrathea.**
-==== Log ==== +
-Der output der systemd units wird unter '/var/log/backup.log' festgehalten. +
-==== VM Snapshots ==== +
-Es werden nach [[https://wiki.libvirt.org/page/Live-disk-backup-with-active-blockcommit|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 [[https://gist.github.com/cabal95/e36c06e716d3328b512b|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: +
-<code> +
-grep -vE 'gitlab-runner|snapshot_test' +
-</code> +
-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. +
-<code> +
-grep -vE 'gitlab-runner|snapshot_test|weitere_vm' +
-</code>+
  
-===  libvirt-daemon-system bug #932456 === +**Auf Magrathea** sind ist das ''/'' ein [[https://btrfs.wiki.kernel.org/index.php/Main_Page|BTRFS]] DateisystemJeder Container ist ein eigenes subvolumesdass individuell gesnapshoted werden kann. Es wird jeweils immer der letzte snapshot aufgehoben um inkrementelle Backups zu machen.
-Es gibt derzeit (Stand 15.05.2021) noch einen [[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=932456|Bug]] im libvirt-daemon-systemDieser konnte durch den Patch am Ende der verlinkten Diskussion vorläufig behoben werden. Da diese Version allerdings nicht weiter gewartet wirdsollte 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.\\ +
-<code> +
-lxc-stop <container-name> +
-lxc-snapshot <container-name> +
-lxc-start <container-name> +
-</code> +
-==== Borg Backups ==== +
-[[https://borgbackup.readthedocs.io/en/stable/|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 ====+**Auf nbsp-backup** gibt es einen Backup-VM. In dieser ist das ''/'' ebenfalls ein BTRFS. Das Programm [[https://digint.ch/btrbk/index.html|''btrbk'']] macht täglich automatisch inkrementelle Backups von konfigurierten subvolumes. Dafür nutzt es ssh und ''btrfs-send''/''btrfs-receive''.
  
-=== Eine kürzlich geänderte Datei wiederherstellen ===+===== Backup einrichten: =====
  
-Ein Backup des Zustandes der letzten Nacht ist unter ''/root/backup-gallifrey/daily'' gespeichertDie 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.+Um ein Subvolume von Magrathea backuppen zu lassen, muss das Subvolume **auf dem Backupserver** in der Datei ''/etc/btrbk.conf'' ergänzt werdenUm z.Beinen Container zu backuppen, muss diese Zeile zu der Liste hinzugefügt werden:
  
-=== Eine ältere Version wiederherstellen ===+<code> 
 +subvolume var/lib/lxc/<container_name> 
 +</code>
  
-Für Ältere Versionen von Dateien gibt es ein [[https://borgbackup.readthedocs.io/en/stable/|Borg-Backup]] Repository unter ''root/backup-gallifrey/archive-borg''. Informationen zum wiederherstellen von Dateien sind unter [[https://borgbackup.readthedocs.io/en/stable/usage/extract.html|extract]] oder [[https://borgbackup.readthedocs.io/en/stable/usage/mount.html|mount]] zu finden. Die Passphrase für das Repo hat der Vorstand.+===== Backups/snapshots anzeigen =====
  
-{{tag>infrasystem host case}}+**Auf nbsp-backup** liegen alle subvolumes in ''/backups''. Dort kann einfach in die subvolumes ''cd'''t werden und die Dateien angeschaut und kopiert werden.
infrastruktur/backup.txt · Zuletzt geändert: 24.09.2022 19:16 von Paul