NFS Client Setup: Mounting & Performance (Artikel 022)
Konfiguration von NFS-Clients unter Ubuntu und Debian. Optimierung der Mount-Optionen für Performance und Stabilität, Einsatz von autofs und Troubleshooting von Netzwerk-Dateisystemen.
# NFS Client Deep Dive: Netzwerkspeicher effizient nutzen
TL;DR / Management Summary NFS (Network File System) ist das Rückgrat des Unix-Storage-Sharings. Während die Einrichtung trivial erscheint (
mount server:/data /mnt), liegen die Tücken im Detail: Timeouts, Performance-Einbrüche bei hoher Latenz und der Unterschied zwischen NFSv3 (legacy) und NFSv4 (modern/stateful). Wir zeigen, wie man NFS-Shares stabil einbindet und mitrsize/wsizedas Maximum aus der Leitung herausholt.
# 1. Einführung & Architektur
Das Protokoll verstehen.
NFS erlaubt es einem Server, Verzeichnisse über das Netzwerk zu exportieren, die auf dem Client wie lokale Dateisysteme wirken.
# NFSv3 vs. NFSv4
- NFSv3: Statuslos (stateless). Schnell bei einfachem Setup, nutzt viele Ports (Portmapper/RPC), keine native Sicherheit (IP-basiert).
- NFSv4: Statusbehaftet (stateful). Nutzt nur einen Port (2049/TCP), unterstützt ACLs und Kerberos-Authentifizierung. Standard für Enterprise.
graph LR
subgraph "NFS Server (z.B. Proxmox/TrueNAS)"
A[ZFS/LVM Data] --- B[nfs-kernel-server]
end
B -->|TCP 2049| C[NFS Client]
subgraph "NFS Client (Ubuntu/Debian)"
C --- D[VFS Layer]
D --- E[Application]
end
# 2. Grundkonfiguration
Vorbereitung und manueller Mount.
# Pakete installieren
sudo apt update
sudo apt install nfs-common
# Manueller Test-Mount
sudo mount -t nfs 192.168.1.100:/export/data /mnt/data
# 3. Performance Tuning: rsize & wsize
Die Geschwindigkeit optimieren.
Standardmäßig handeln Client und Server die Blockgröße aus. Manuell gesetzte Werte können bei 10G-Netzwerken oder hoher Latenz Wunder wirken.
# Empfohlene Enterprise-Optionen für High Performance
sudo mount -t nfs -o rw,nfsvers=4.1,rsize=1048576,wsize=1048576,hard,intr 192.168.1.100:/data /mnt/data
- rsize/wsize: Blockgröße für Lese-/Schreibzugriffe (1048576 = 1MB).
- hard vs soft:
hardsorgt dafür, dass die Applikation wartet, bis der Server wieder da ist (Datenkonsistenz!).softwirft nach Timeouts Fehler (Gefahr von Datenkorruption). - intr: Erlaubt es, hängende NFS-Prozesse per Signal zu unterbrechen.
# 4. Day-2 Operations: Automatisierung
Fstab vs. Autofs.
# Der klassische Weg: /etc/fstab
Gut für permanente Shares (z.B. Backup-Server).
# Eintrag in /etc/fstab
192.168.1.100:/data /mnt/data nfs defaults,nfsvers=4.1,_netdev 0 0
_netdev: Wichtig! Sagt dem System, dass es erst auf das Netzwerk warten soll, bevor es mountet.
# Der elegante Weg: autofs
Mountet das Verzeichnis erst, wenn man darauf zugreift. Ideal, wenn der Server nicht immer online ist.
sudo apt install autofs
# Konfiguration in /etc/auto.master und /etc/auto.nfs
# 5. Troubleshooting & “War Stories”
Wenn ‘ls’ hängen bleibt.
# Story 1: “Der hängende Server (NFS Stale Handle)”
Symptom: ls /mnt/data ergibt “Stale file handle”.
Ursache: Der Server hat Dateien oder das Dateisystem neu organisiert/gelöscht, aber der Client hat noch alte File-IDs im Cache.
Lösung: umount -l /mnt/data (Lazy Unmount) und neu mounten.
# Story 2: “Mount-Hänger beim Boot”
Symptom: Server bootet nicht mehr und wartet ewig beim Netzwerk-Mount.
Ursache: DNS-Auflösung für den NFS-Server geht noch nicht oder Switch-Port-Delay (STP).
Lösung: Nutzen Sie IP-Adressen statt Hostnamen in der fstab oder setzen Sie die Option noauto,x-systemd.automount – das nutzt Systemd, um den Mount erst bei Zugriff durchzuführen.
# 6. Monitoring & Checks
# Performance messen
# Zeigt detaillierte NFS-Statistiken
nfsstat -c
# Live-Monitoring der Durchsatzrate
iostat -nt
# Export-Liste des Servers prüfen
showmount -e 192.168.1.100
# 7. Fazit & Empfehlung
- Version: Nutzen Sie wenn möglich immer NFSv4.1 oder höher.
- Netzwerk: Nutzen Sie dedizierte Storage-VLANs für NFS-Traffic.
- Sicherheit: NFS ist unverschlüsselt! In unsicheren Netzen (Cloud) müssen Sie IPsec oder WireGuard Tunnel darunter legen.
# Anhang: Cheatsheet
| Aufgabe | Befehl |
|---|---|
| Version prüfen | nfsstat -m |
| Erzwungener Unmount | umount -f -l /mnt/data |
| RPC Status prüfen | rpcinfo -p <server_ip> |
| Mount-Optionen sehen | `cat /proc/mounts |