Skip to main content

Restic - Multi-User Syncthing Backup Strategie

Überblick

Dieses Dokument beschreibt die Sicherung von Multi-User-Syncthing-Daten aus dem Syncthing-LXC (ID: 130) über das Vault-LXC (ID: 150). Wir nutzen ein einziges, vereinheitlichtes Restic-Repository auf dem NAS, um die Deduplizierung über gemeinsame Dateien zwischen den Benutzern zu maximieren.

Speicherkonfiguration

Für jeden Benutzer werden einzelne ZFS-Subvolumes als Read-Only-Mount-Points an das Vault-LXC weitergegeben.

Benutzer Host-Quelle (ZFS) Mount-Point im Vault-LXC
UserA tank/subvol-130-disk-2 /source/sync-usera
UserB tank/subvol-130-disk-3 /source/sync-userb
UserC tank/subvol-130-disk-4 /source/sync-userc
# Auf dem Proxmox-Host ausgeführt, um die Datenträger zu mappen
pct set 150 -mp132 /tank/subvol-130-disk-2,mp=/source/sync-usera,ro=1
pct set 150 -mp133 /tank/subvol-130-disk-3,mp=/source/sync-userb,ro=1
pct set 150 -mp134 /tank/subvol-130-disk-4,mp=/source/sync-userc,ro=1

Das vereinheitlichte Backup-Script

Durch die Verwendung von Tags können alle Benutzer in einem einzigen Repository (/syncthing) gespeichert werden, während Snapshots bei der Wiederherstellung benutzerspezifisch gefiltert werden können.

/root/scripts/backup-syncthing.sh (Vault-LXC):

#!/bin/bash
# Auth & Netzwerk (direkte 2.5GbE-Verbindung)
export RESTIC_REPOSITORY="rest:http://vault-user:Pass123@10.1.1.2:8000/syncthing"
export RESTIC_PASSWORD="Sync_Encryption_Key_44"

# Benutzer und ihre Quellverzeichnisse definieren
declare -A users=(
  ["usera"]="/source/sync-usera"
  ["userb"]="/source/sync-userb"
  ["userc"]="/source/sync-userc"
)

# 1. Individuelle Benutzer-Backups (ermöglicht granulare Wiederherstellung)
echo "Starte Syncthing-Backups..."

# Schleife über Benutzer und Backups durchführen
for user in "${!users[@]}"; do
  source_dir="${users[$user]}"
  restic backup "$source_dir" --tag "user:$user" --host "syncthing-srv"
done

# 2. Globales Pruning (letzte 7 Tage für alle Benutzer behalten)
# Lokal auf dem NAS ausführen, falls Server im --append-only-Modus ist
restic forget --keep-within 7d --prune

Administration & Wiederherstellung

So listest du Dateien für einen bestimmten Benutzer auf:

Um nur die Backups von Sarah zu sehen, ohne die anderen Benutzer zu vermischen:

restic snapshots --tag "user:sarah"

So stellst du die Daten eines einzelnen Benutzers wieder her:

Falls Werner versehentlich einen Ordner löscht, kannst du gezielt seinen neuesten Snapshot wiederherstellen:

restic restore latest --tag "user:werner" --target /tmp/restore-werner

Wartungshinweise

  • Vorteil der Deduplizierung: Wenn Carsten und Sarah dieselbe 2-GB-ISO herunterladen, speichert Restic die Blöcke im NAS-Repository nur einmal – das spart erheblich Platz.
  • Integritätsprüfungen: Führe einmal im Monat restic check vom Vault-LXC aus, um sicherzustellen, dass die NAS-Daten nicht beschädigt sind.

Restic Guide: Backing Up Multiple PCs

Dieses Video erklärt, wie man mit Tags und Hostnamen ein einziges Repository für mehrere Quellen verwaltet – genau so, wie du deine einzelnen Syncthing-Benutzer organisierst.