Benutzer-Werkzeuge

Webseiten-Werkzeuge


project:backup

Dies ist eine alte Version des Dokuments!


Projekt: Raspberry PI als Backupserver

Varianten des NFS-Betriebs

In diesem Projekt werden zwei einfache und praxisnahe Varianten behandelt. Eine dritte, klassische UNIX-Variante existiert ebenfalls, wird hier jedoch nicht umgesetzt.

Variante A – Einheitlicher Service-User (all_squash)

Alle Zugriffe von Clients werden serverseitig auf eine feste UID/GID (hier 2000) abgebildet.

Merkmale:

  • keine UID-/GID-Synchronisation zwischen Clients notwendig
  • alle Dateien gehören serverseitig dem Service-User
  • sehr wartungsarm
  • ideal für Backup- oder Sammelverzeichnisse
  • geeignet für kleine, vertrauenswürdige Netzwerke

Diese Variante wird in diesem Projekt standardmäßig verwendet.

Variante B – Nur Lesen (read-only Export)

Der Server stellt das Verzeichnis ausschließlich lesend bereit.

Merkmale:

  • Clients können keine Daten verändern
  • hohe Betriebssicherheit
  • geeignet für Software-Repositories, Images oder Referenzdaten
  • nicht geeignet als Backup-Ziel

Diese Variante ist optional möglich und wird unten technisch gezeigt.

Variante C – Klassisches UNIX-Modell (nicht Bestandteil dieses Projekts)

Hier arbeiten Server und Clients mit identischen UID/GID-Werten. Der Server speichert echte Benutzer-IDs ohne Mapping.

Merkmale:

  • saubere Benutzertrennung
  • ACLs und klassische UNIX-Rechte funktionieren vollständig
  • erfordert konsistente Benutzerverwaltung auf allen Systemen
  • administrativ aufwendiger

Diese Variante wird hier bewusst nicht behandelt, da der Fokus auf einem einfachen, wartungsarmen Backup-Server liegt.

Voraussetzungen

  • SERVER: Mit IP ist die IP-Adresse des Servers gemeint.
  • CLIENT: Rechner, der das exportierte Verzeichnis vom Server einbindet.

NFS SERVER

sudo apt update
sudo apt install -y nfs-kernel-server
 
# Service-User (nur für Variante A notwendig)
sudo groupadd -g 2000 nfsdata
sudo useradd -u 2000 -g 2000 -M -r nfsdata
 
# Export-Verzeichnis
sudo mkdir -p /srv/nfs/data
sudo chown -R 2000:2000 /srv/nfs/data
sudo chmod -R 2775 /srv/nfs/data

Variante A – Schreibend mit Service-User

# /etc/exports
 
/srv/nfs/data  IP/24(rw,sync,no_subtree_check,all_squash,root_squash,anonuid=2000,anongid=2000)
 
# anwenden
sudo exportfs -ra
sudo systemctl restart nfs-kernel-server
sudo systemctl enable nfs-kernel-server
 
# prüfen
sudo exportfs -v

Variante B – Nur Lesen

# /etc/exports
 
/srv/nfs/data  IP/24(ro,sync,no_subtree_check,root_squash)
 
# anwenden
sudo exportfs -ra
sudo systemctl restart nfs-kernel-server
sudo systemctl enable nfs-kernel-server
 
# prüfen
sudo exportfs -v

NFS CLIENT

Verfügbare Exports anzeigen

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

Manuell Mounten

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

Automatisch Mounten

# /etc/fstab
 
IP:/srv/nfs/data  /mnt/nfs  nfs  _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

Ergebnis

  • Variante A: Schreibzugriff für Clients, serverseitige UID/GID-Vereinheitlichung
  • Variante B: Reiner Lesezugriff
  • Client bootet auch wenn Server offline ist
  • Mount erfolgt erst bei Zugriff (automount)
  • Kein Boot-Blockieren
  • Exportierte Verzeichnisse prüfbar mit exportfs -v oder showmount -e IP
project/backup.1772530237.txt.gz · Zuletzt geändert: von torsten.roehl