Hallo liebe IT Bubble,

ich habe mir aus Interesse einen kleinen Rootserver gemietet und mit Hilfe des Ansible-Playbook einen Lemmyserver aufgespielt. Für die Förderation lasse ich einen Bot laufen, klappt erstaunlicherweise recht ordentlich. Soweit so gut.
Jetzt beschäftige ich mich mit einer vernünftigen Backupstrategie. Bisher lasse ich täglich eine Kopie des Lemmyserver auf einen Storagespace und auf meinen Homeserver erstellen, umgesetzt mit rsync über ssh. Zusätzlich versuche ich regelmäßig einen Snapshot des gesamten Server zu machen.
Meint ihr das geht so in Ordnung? Bin ja nur Hobbyadmin und hätte gerne ne zweite Meinung dazu.
Wenn ihr noch weiter Ratschläge oder Anmerkungen habt, ich bin offen für alles.

Gruß Ranslite


Nachtrag:

Es scheint jetzt alles zu funktionieren, so habe ich es gemacht.

Auf dem Lemmy Server selbst habe ich ein Bash Script für die Sicherung erstellt.

#!/bin/bash     
cd /srv/lemmy/zonenranslite.de      
docker compose exec postgres pg_dumpall -c -U lemmy | gzip > /mnt/storagespace/lemmyDB/zonenranslite_dump`date +%d-%m-%Y"_"%H_%M_%S`.sql.gz      
rsync -avP /srv/lemmy/zonenranslite.de/volumes /mnt/storagespace/lemmyVolumes/

Es öffnet das Docker Verzeichnis, da sonst der docker compose Befehl nicht funktioniert.
Sichert die Datenbank und packt sie in den gemounteten Storagespace.
Danach werden mit rsync die restlichen Daten in den Storeagespace kopiert.

Das lasse ich als root cronjob um 01:00 laufen.

Um 03:00 startet auf meinen Homeserver dieses Bash Script als cronjob:

#!/bin/sh
# DB Backup
rsync -av --rsync-path="sudo rsync" XXX@zonenranslite.de:/mnt/storagespace/lemmyDB /mnt/hdd/sicherung
# Volumes folder Backup
rsync -av --rsync-path="sudo rsync" XXX@zonenranslite.de:/mnt/storagespace/lemmyVolumes /mnt/hdd/sicherung

Es kopiert mittels rsync und SSH die vorher auf dem Lemmy Server erstellten Backups auf den Homeserver.
Hier musste ich etwas tricksen, damit sudo rsync funktioniert.
Auf dem Lemmy Server in /etc/sudoers habe ich folgende Zeile hinzugefügt meinUser ALL=NOPASSWD:/usr/bin/rsync, damit wird sudo rsync ohne Password ausgeführt. meinUser steht hier stellvertreten für meinen Usernamen.

SSH ist soweit abgesichert, dass weder root noch ein Passwort Login erlaubt ist. Lediglich über SSH-Keys kommt eine Verbindung zustande.

  • Dunstabzugshaubitze@feddit.org
    link
    fedilink
    arrow-up
    11
    ·
    2 days ago

    klingt für mich ok, vorrausgesetzt du schaust halbwegs regelmäßig ob du daraus tatsächlich deine Instanz wiederherstellen kannst, ein Backup ist nur ein Backup, wenn auch der Restore funktioniert. vorsichtshalber solltest du ein paar ältere Backups aufheben um zu verhindern, dass du nur welche hast in denen das System schon irgendwie kaputt war.

    • ZonenRanslite@zonenranslite.deOP
      link
      fedilink
      arrow-up
      4
      ·
      2 days ago

      Danke, den Restore werde ich mal in ner ruhigen Minute probieren. Die Snapshots mache ich manuell und sollen als Rückfall auf eine älter noch funktionierende Version dienen.

  • connaisseur@feddit.org
    link
    fedilink
    arrow-up
    8
    ·
    2 days ago

    Beim Backup wäre die Frage, ob die Datenbank konsistent gesichert ist. Andernfalls ist das Backup quasi wertlos. Keine Ahnung ehrlich gesagt was da bei Lemmy drunter läuft, wahrscheinlich sowas wie Postgres? Evtl. misst du dann über Postgres-Mittel eine zusätzliche Sicherung erzeugen, um ein wiederherzustellendes Backup für die DB zu bekommen. Datenbanken sind meist nicht über reine Kopien aus dem Dateisystem sicherbar (jedenfalls nicht im laufenden Betrieb). Und wie schon angemerkt wurde - ohne erfolgreich durchgeführten Test kann man nicht sicher sein, dass ein Backup auch wirklich wiederherstellungsfähig ist.