Storage & Protokolle

NFS

NFS (Network File System) ist ein Netzwerkprotokoll, das entfernte Verzeichnisse über TCP/IP einbindet, als lägen sie lokal vor; Standard in der Linux-/Unix-Welt.

  • Datei-Storage
  • Linux / Unix / VMware
  • NFSv4.1 / pNFS
  • Kerberos (krb5p)
Von Andreas Huser, Technische Beratung & Architektur Aktualisiert am 8 Min. Lesezeit

NFS (Network File System) bindet entfernte Verzeichnisse über das Netz ein, als lägen sie lokal vor. In der Linux- und Unix-Welt ist es der Standard für gemeinsamen Datei-Storage.

Dieser Artikel ordnet ein, welche NFS-Versionen aktuell sind, worauf es bei Sicherheit und Betrieb ankommt und wie sich NFS gegenüber SMB einordnet.

Kurz gesagt

Stärken

  • Linux-/Unix-Standard; Exports werden wie lokale Verzeichnisse eingebunden
  • NFSv4.1/4.2: ein Port (2049), Sessions, pNFS und Server-Side Copy
  • Native Kerberos-Stufen (krb5/krb5i/krb5p) bis hin zur Verschlüsselung
  • Spielt gut mit Storage-Backends wie ZFS zusammen (Snapshots, Replikation)

Schwächen

  • AUTH_SYS vertraut der Client-Angabe und ist für schützenswerte Daten zu schwach
  • Kein nativer Windows-/AD-Komfort: dort ist SMB der natürliche Weg
  • Datei-, kein Block-Protokoll: rohe Block-Devices liefert ein SAN

1. Was NFS ist

NFS wurde ursprünglich von Sun entwickelt und ist heute ein IETF-Standard. Ein Client hängt einen freigegebenen Pfad (Export) eines NFS-Servers ein und arbeitet damit wie mit einem lokalen Verzeichnis.

Das Dateisystem liegt dabei auf dem Server, der Client greift nur darauf zu. NFS ist damit ein Datei-Storage-Protokoll und ein typischer Baustein eines NAS.

2. Versionen: NFSv3, NFSv4.1, NFSv4.2

Die Version entscheidet über Funktionsumfang und Sicherheit.

VersionEigenschaftenStatus
NFSv3stateless, TCP/UDP, Hilfsdienste (rpcbind, lockd)weit verbreitet, interoperabel, sicherheitsärmer
NFSv4.1stateful, ein Port (2049), Sessions, pNFS, Kerberos nativaktueller Standard (RFC 8881)
NFSv4.2Server-Side Copy, Sparse Files, Space ReservationStand der Technik für neue Linux-Deployments

3. Sicherheit: AUTH_SYS oder Kerberos

Die Sicherheit von NFS hängt maßgeblich an der Authentifizierungsmethode. Das klassische AUTH_SYS überträgt Benutzer- und Gruppen-IDs ungeprüft vom Client; der Server vertraut der Angabe. Wer auf einem zugelassenen Client root ist, kann sich als beliebiger Nutzer ausgeben.

NFSv4 unterstützt Kerberos (RPCSEC_GSS) in drei Stufen: krb5 (Authentifizierung), krb5i (zusätzlich Integritätsschutz) und krb5p (zusätzlich Verschlüsselung). Nur krb5p schützt die Daten auf dem Netz.

AUTH_SYS ist keine geeignete Authentifizierung für schützenswerte Daten. Diese Schwäche lässt sich nicht wegkonfigurieren, sondern nur durch Kerberos (krb5p) lösen.

4. Leistung und Verfügbarkeit

Für Durchsatz und Latenz zählen einige Stellschrauben: ausreichend große Blockgrößen (rsize/wsize), die Wahl zwischen sync (sicher, aber langsamer) und async (schneller, mit Datenverlustrisiko bei einem Crash) sowie mehrere parallele Verbindungen pro Mount (nconnect). Im Rechenzentrum senken Jumbo Frames (MTU 9000) den Overhead.

Für hohe Anforderungen bietet NFS zwei Architektur-Hebel: NFS over RDMA (NFSoRDMA) senkt auf RDMA-Fabrics Latenz und CPU-Last, und pNFS (parallel NFS, ab v4.1) trennt Metadaten- und Datenpfad, sodass Clients direkt und parallel auf mehrere Storage-Knoten zugreifen. Verfügbarkeit kommt über mehrere Server und Pfade sowie ein robustes Backend (etwa ZFS mit Snapshots und Replikation).

5. Exporte härten und typische Fehlerbilder

Auf der Export-Seite (/etc/exports) entscheiden wenige Optionen über die Sicherheit: root_squash (Standard) bildet den Client-root auf einen unprivilegierten Account ab und sollte aktiv bleiben; no_root_squash ist nur für Sonderfälle. sync (Standard) bestätigt Schreibvorgänge erst nach dem Commit auf stabilen Speicher, async ist schneller, riskiert aber Datenverlust bei einem Server-Crash. no_subtree_check ist heute Standard und stabiler als die alte Subtree-Prüfung.

Zwei Betriebsfallen treten häufig auf: Bei NFSv4 müssen Server und Clients dieselbe idmapd-Domain verwenden, sonst erscheinen Dateien als nobody. Und AUTH_SYS überträgt höchstens 16 Gruppen pro Zugriff (RFC 5531); wer in mehr Gruppen ist, verliert stillschweigend Rechte. Firewall-seitig ist NFSv4 angenehm: Es braucht nur TCP-Port 2049, ohne rpcbind.

Stale File Handle und hard/soft

Ein „Stale file handle“ entsteht, wenn der Server ein Objekt ersetzt oder ein Export sich ändert; meist hilft ein Remount auf dem Client. Bei den Mount-Optionen ist hard (Standard) für Datensicherheit vorzuziehen: Der Client wiederholt bei Nichterreichbarkeit, statt abzubrechen. soft riskiert stille Datenfehler; intr wird von modernen Kerneln ignoriert.

6. Herkunft und Einsatzschwerpunkt

NFS stammt aus der Linux-/Unix-Welt und ist dort sowie für VMware-Datastores der etablierte Weg, Datei-Storage über das Netz bereitzustellen. Das funktional verwandte SMB kommt aus der Windows-Welt; in Mischumgebungen werden beide oft parallel angeboten.

Linux-Client NFSv4 · mount Windows-Client SMB 3.1.1 · AD NFS · Port 2049 SMB · TCP 445 Datei-Server / NAS NFS-Export AUTH_SYS oder Kerberos (krb5p) SMB-Freigabe SMB3: Verschlüsselung & Signing NFS bedient typisch Linux/Unix und VMware; SMB die Windows-/AD-Welt. Samba bringt SMB auf Linux. SMB1/CIFS gilt als unsicher und sollte abgeschaltet sein (CVE-2017-0144).
Datei-Storage: NFS und SMB liefern ein fertiges Dateisystem über das Netz; der Server hält das Dateisystem.

Häufige Fragen zu NFS

Parallel NFS (Teil von NFSv4.1) trennt Metadaten- und Datenzugriff, sodass Clients Daten parallel von mehreren Storage-Knoten lesen und schreiben können. Vor allem in HPC-Umgebungen relevant.

Für Datei-Storage in Linux-/Unix-Umgebungen und als VMware-Datastore. In Windows-/Active-Directory-geprägten Umgebungen ist SMB der natürliche Weg; viele NAS bieten beide Protokolle parallel an.

Windows bringt einen NFS-Client mit (Services for NFS), der in der Praxis aber selten genutzt wird und als eingeschränkt gilt. In Windows-Umgebungen ist SMB der natürliche Weg.

Ja, NFS over RDMA (InfiniBand, RoCE, iWARP) ist im Linux-Kernel vorhanden und senkt CPU-Last und Latenz. In der Praxis vor allem in HPC-nahen Umgebungen verbreitet.

Auch der Autor ist nur ein Mensch, dem Fehler unterlaufen können. Wenn in diesem Beitrag etwas nicht stimmt oder unklar ist, freuen wir uns über einen kurzen Hinweis über das Kontaktformular unten, wir prüfen und korrigieren das.

Der nächste Schritt

NFS im eigenen Haus richtig einsetzen?

Wir klären, ob und wie der Baustein zu Ihrer Infrastruktur passt, und sagen offen, wann sich der Aufwand lohnt und wann nicht.

Erstgespräch vereinbaren oder Formular ausfüllen