Benutzer-Werkzeuge

Webseiten-Werkzeuge


project:backup

Dies ist eine alte Version des Dokuments!


Projekt: Raspberry PI als Backupserver

☚ zurück - Einstiegskurs

In diesem Projekt wird aus einem Raspberry Pi ein zentraler NFS-Backupserver für ein lokales Netzwerk aufgebaut. Ziel ist eine saubere und technisch nachvollziehbare Trennung zwischen einem ausschließlich lesbaren Bereich und einem schreibbaren Datenbereich. Dabei wird bewusst keine Benutzer-Synchronisation zwischen Client und Server eingesetzt. Stattdessen werden alle Schreibzugriffe serverseitig auf einen definierten Service-User abgebildet. Dadurch bleibt die Client-Konfiguration minimal, konsistent und unabhängig von lokalen UID-Strukturen.

Konzept

Der Server stellt zwei Verzeichnisse bereit:

  • /srv/nfs/public → nur lesend (ro)
  • /srv/nfs/data → lesend + schreibend (rw, Service-User 2000)

Für das Datenverzeichnis wird ein technischer Service-User mit der UID/GID 2000 eingerichtet. Alle Schreibzugriffe werden mittels all_squash auf diesen Benutzer umgeleitet. Dadurch gehören sämtliche erzeugten Dateien immer demselben Systemkonto – unabhängig davon, welcher Client sie erstellt hat.

Dieses Modell verhindert UID-Konflikte zwischen unterschiedlichen Linux-Systemen im Netzwerk und sorgt für ein eindeutiges Besitzmodell auf dem Server.

Alle schreibenden Zugriffe auf /srv/nfs/data werden serverseitig auf UID/GID 2000 abgebildet (all_squash).

SERVER Die IP-Adresse des Servers wird hier mit IP gekennzeichnet und muss im Kurs durch die tatsächliche IP-Adresse ersetzt werden.

NFS SERVER

Im Kurs steht der Server bereits zur Verfügung, sodass es primär darum geht, ihn korrekt einzubinden. Wer einen eigenen NFS-Server aufsetzen möchte, findet hier die vollständige Einrichtung.

Einrichtung Server

NFS CLIENT

Um die Freigaben zu verwenden, wird auf dem Client zunächst das notwendige Paket installiert.

Verfügbare Exports anzeigen

sudo apt install -y nfs-common
showmount -e IP

Der Befehl zeigt an, welche Verzeichnisse der Server exportiert.

Manuell Mounten

Für einen ersten Test werden lokale Mountpunkte angelegt und die Freigaben manuell eingebunden.

sudo mkdir -p /mnt/public
sudo mkdir -p /mnt/data
 
sudo mount -t nfs -o ro IP:/srv/nfs/public /mnt/public
sudo mount -t nfs -o rw,soft,timeo=50,retrans=3 IP:/srv/nfs/data /mnt/data

Das Verzeichnis /mnt/public ist nur lesbar. Im Verzeichnis /mnt/data können Dateien erzeugt werden, die serverseitig immer UID/GID 2000 gehören.

Automatisch Mounten (/etc/fstab)

Damit der Client auch dann startet, wenn der Server nicht erreichbar ist, erfolgt die Einbindung per systemd-Automount in der /etc/fstab.

IP:/srv/nfs/public  /mnt/public  nfs  ro,_netdev,noatime,x-systemd.automount,nofail  0  0
IP:/srv/nfs/data    /mnt/data    nfs  rw,_netdev,noatime,x-systemd.automount,x-systemd.device-timeout=10s,x-systemd.idle-timeout=600,soft,timeo=50,retrans=3,nofail  0  0
 
sudo systemctl daemon-reload
sudo mount -a

Der Mount erfolgt nun erst beim ersten Zugriff. Ist der Server nicht erreichbar, blockiert der Bootvorgang nicht.

Ergebnis

  • /srv/nfs/public → nur lesbar für alle Clients
  • /srv/nfs/data → schreibbar, serverseitig UID/GID 2000
  • Client bootet auch wenn Server offline ist
  • Mount erfolgt erst bei Zugriff (automount)
  • Keine UID-Anpassung auf Clients erforderlich

Damit steht ein klar strukturiertes, wartungsarmes Backup-System auf Basis eines Raspberry Pi zur Verfügung.

project/backup.1772532570.txt.gz · Zuletzt geändert: von torsten.roehl