Backups
Das Backup-System basiert auf drei Komponenten:
- Restic - Backup-Software mit Verschlüsselung und Deduplizierung
- Rclone - Schnittstelle zu Cloud-Speicher
- Storj - Dezentraler Cloud-Speicher-Anbieter
Übersicht
Die Backup-Richtlinie folgt einer einzigen Regel: Alles unter /srv und /home wird gesichert, außer den ersetzbaren Inhalten unter /srv/media/. Diese Trennung ist Teil der Speicherstruktur.
Was wird gesichert:
/srv/originals/(unersetzliche Originale: Immich-Fotos, Familienmedien, persönliche Musik)/srv/docker/(Docker-Konfigurationen und App-Daten, inkl. Immich Postgres)/home/(Benutzerdaten)
Was wird NICHT gesichert:
/srv/media/(ersetzbare Inhalte: Jellyfin Filme/Serien, qBittorrent Downloads)- App Caches und Logs
- System-Dateien - bei Bedarf neu aufsetzen
Backup-Zeitplan:
- Täglich um 02:00 Uhr (automatisch via Cron)
- Retention:
--keep-daily 7 --keep-weekly 4 --keep-monthly 6 --keep-yearly 2
3-2-1 Strategie
Die unersetzlichen Daten existieren in drei Kopien auf zwei Medientypen, davon eine außerhalb des Hauses:
| Kopie | Ort | Zweck |
|---|---|---|
| 1 | /mnt/hdd/originals | Live-Daten (primäre HDD) |
| 2 | /mnt/hdd2/originals | Lokaler Mirror, schnelle Wiederherstellung bei HDD-Ausfall |
| 3 | Storj (restic) | Offsite Disaster Recovery |
Keine Netzwerklast
Beide HDDs sind physisch am Beelink angeschlossen. Der Mirror liest von einem Blockgerät und schreibt auf das andere - reine lokale I/O, kein WLAN- oder LAN-Verkehr. Nur die Storj-Kopie nutzt die Internetverbindung.
Restic Dokumentation
Für detaillierte Restic-Befehle siehe die offizielle Restic-Dokumentation. Diese Seite enthält nur serverspezifische Konfigurationen.
Konfiguration
Rclone Konfiguration
Die Rclone-Konfiguration liegt unter:
- Auf dem Server:
~/.config/rclone/rclone.conf - Im Repository:
playbooks/files/rclone.conf
Storj Access Grant erstellen:
- Login auf Storj Console
- Navigiere zu Access Keys
- Wähle Access Grant
- Kopiere den Access Grant
- Füge ihn in
rclone.confein
Restic Repository
Das Restic-Repository wird über Rclone auf Storj gespeichert.
Repository initialisieren (einmalig):
sudo -u restic restic -r rclone:storj:beelink-backup initDas Passwort wird abgefragt und sollte sicher im Password Manager gespeichert werden.
Sekundärer HDD-Mirror
Zusätzlich zum restic-Backup spiegelt ein nächtlicher rsync-Befehl die Originale auf die sekundäre HDD.
Überwachung
# restic-Backup
sudo -u restic tail -f /home/restic/backup.log
# Sekundärer HDD-Mirror
sudo tail -f /root/mirror.logWiederherstellung
Falls der Server komplett neu aufgesetzt werden muss oder einzelne Daten wiederhergestellt werden müssen.
Komplette Wiederherstellung
- Neuen Server einrichten
- Rclone konfigurieren (aus
playbooks/files/rclone.conf) - Mit Restic das Repository verbinden und Daten wiederherstellen
- Docker Container starten
Einzelne Services wiederherstellen
Bei Datenverlust oder Korruption:
- Betroffenen Container stoppen
- Mit Restic spezifische Pfade wiederherstellen (z.B.
/srv/originals/immichoder/srv/docker) - Berechtigungen prüfen/korrigieren
- Container neu starten
Detaillierte Restic-Befehle für Restore-Operationen: Restic Restore Dokumentation