Die Wahl zwischen NFS und SMB ist längst keine reine Linux-vs-Windows-Entscheidung mehr. Moderne Netzwerke sind Mixed-Protocol-Umgebungen, in denen beide Protokolle koexistieren. Dieser Guide behandelt Protokoll-Interna, reale Performance, Sicherheits-Tradeoffs und was passiert, wenn du Daten zwischen ihnen migrieren musst.
NFS wurde 1984 von Sun Microsystems entwickelt. Inzwischen bei Version 4.2 angekommen, ist es der Standard für Linux- und Unix-Dateifreigaben.
| Version | Jahr | Wichtige Features |
|---|---|---|
| NFSv3 | 1995 | Stateless, UDP/TCP, AUTH_SYS |
| NFSv4 | 2003 | Stateful, nur TCP, Kerberos, ACLs |
| NFSv4.1 | 2010 | pNFS (Parallel NFS), Sessions, Trunking |
| NFSv4.2 | 2016 | Server-side Copy, Sparse Files, Space Reservation |
SMB wurde 1983 von IBM entwickelt und danach maßgeblich von Microsoft weiterentwickelt. Der Name CIFS (Common Internet File System) bezieht sich auf SMB 1.0 — moderne Versionen heißen einfach “SMB”.
| Version | Jahr | Wichtige Features |
|---|---|---|
| SMB 1.0 / CIFS | 1996 | Microsoft formalisierte IBMs SMB von 1983; Legacy, unsicher — unbedingt deaktivieren |
| SMB 2.0 | 2006 | Weniger Round-Trips, größere Reads/Writes |
| SMB 2.1 | 2010 | Leasing, Large MTU Support |
| SMB 3.0 | 2012 | Multichannel, Verschlüsselung, RDMA |
| SMB 3.1.1 | 2015 | Pre-Auth Integrity, AES-128-GCM |
SMB 1.0 überall deaktivieren
SMB 1.0 (CIFS) hat kritische Sicherheitslücken — es war der Angriffsvektor für WannaCry und NotPetya. Wenn du irgendwo noch SMB 1.0 aktiviert hast, deaktiviere es heute noch. Alle modernen Clients unterstützen SMB 2.0+.
Bei großen Dateitransfers (100 MB+ Dateien) in einem 10-Gbps-Netzwerk liefern beide Protokolle ähnlichen Durchsatz, wenn sie richtig konfiguriert sind:
| Konfiguration | NFSv4.2 | SMB 3.0 |
|---|---|---|
| Standardeinstellungen | ~700 MB/s | ~500 MB/s |
| Getuned (siehe unten) | ~1.000 MB/s | ~900 MB/s |
| Multichannel (2x 10G) | ~1.000 MB/s* | ~1.800 MB/s |
*NFSv4.1+ unterstützt Trunking, aber die Verbreitung ist im Vergleich zu SMB Multichannel begrenzt.
Hier unterscheiden sich die Protokolle deutlich. NFS-Operationen wie stat(), readdir() und open() werden fast 1:1 auf das Netzwerkprotokoll abgebildet. SMB braucht für die gleichen Operationen mehr Round-Trips.
| Operation | NFSv4 | SMB 3.0 |
|---|---|---|
| 10.000 leere Dateien erstellen | ~2 Sekunden | ~5 Sekunden |
| 100.000 Dateien stat’en | ~4 Sekunden | ~8 Sekunden |
readdir mit 50.000 Einträgen | ~1 Sekunde | ~3 Sekunden |
| Zufällige 4K-Reads (IOPS) | ~50.000 | ~35.000 |
Diese Zahlen variieren stark
Die Performance hängt von Server-Hardware, Netzwerk-Latenz, Client-Caching und Workload-Mustern ab. Benchmarke immer mit deinem Workload auf deiner Infrastruktur, bevor du Architektur-Entscheidungen triffst.
# Mount-Optionen für Performance
mount -t nfs4 server:/export /mnt -o \
rsize=1048576,wsize=1048576,\ # Max Read/Write-Größe (1MB)
nconnect=8,\ # Mehrere TCP-Verbindungen (Linux 5.3+)
hard,\ # Hard Mount (unbegrenzte Wiederholungen)
noatime # Keine Access-Time-Updates
# Server-seitig: NFS-Threads erhöhen
echo 64 > /proc/fs/nfsd/threads # Standard ist oft 8
Wichtige NFS-Tuning-Stellschrauben:
Für die komplette NFS-Server-Einrichtung siehe unseren NFS Exports Configuration Guide.
# SMB Multichannel aktivieren (normalerweise standardmäßig an)
Set-SmbServerConfiguration -EnableMultiChannel $true
# Große MTU konfigurieren
Set-SmbServerConfiguration -MaxChannelPerSession 32
# Linux cifs Mount-Optionen
mount -t cifs //server/share /mnt -o \
vers=3.0,\
multichannel,max_channels=8,\
rsize=4194304,wsize=4194304,\
cache=strict
Wichtige SMB-Tuning-Stellschrauben:
Get-SmbMultichannelConnection überprüfen| Feature | NFSv3 | NFSv4 | SMB 3.0+ |
|---|---|---|---|
| Authentifizierung | AUTH_SYS (UID/GID) | Kerberos (RPCSEC_GSS) | NTLM / Kerberos |
| Verschlüsselung | Keine | krb5p (Kerberos Privacy) | AES-128-GCM, AES-256-GCM |
| Integritätsprüfung | Keine | krb5i (Kerberos Integrity) | Signing (AES-CMAC) |
| Zugriffskontrolle | POSIX Mode Bits + IP-basiert | NFSv4 ACLs | NTFS ACLs / DACLs |
| Transportsicherheit | Keine | RPCSEC_GSS | TLS 1.3 (SMB 3.1.1) |
/etc/exports) bieten IP-basierte Zugriffskontrolle — nicht identitätsbasiertnobody — nicht ohne guten Grund deaktivierenSicherheitsempfehlung
Für sensible Daten: nutze NFSv4 mit Kerberos (krb5p) oder SMB 3.0+ mit Verschlüsselung. Verwende niemals NFSv3 über nicht vertrauenswürdige Netzwerke. Lasse niemals SMB 1.0 aktiviert.
Wenn du zwischen NFS und SMB migrierst (z. B. von Synology NFS zu einem Windows-Dateiserver), treten mehrere Metadaten-Übersetzungsprobleme auf:
| Aspekt | NFS/POSIX | SMB/NTFS |
|---|---|---|
| Identität | UID/GID (numerisch) | SID (Security Identifier) |
| Berechtigungen | rwx (9-Bit) + ACLs | DACL-Einträge (Allow/Deny) |
| Vererbung | Setgid auf Verzeichnisse | Explizite Vererbungsflags |
| Standard-Deny | Nicht unterstützt | ACE Deny-Einträge |
Was kaputtgeht: POSIX chmod 750 lässt sich nicht sauber auf eine NTFS-ACL abbilden. Gruppenmitgliedschaft hängt vom Identitätssystem ab. Du musst ein UID-zu-SID-Mapping planen oder nach der Migration neu berechtigen.
? * : " < > |) schlagen beim Transfer fehlSeCreateSymbolicLinkPrivilege unter Windows; Hard Links nur innerhalb desselben Shares unterstütztsyncopio handhabt Cross-Protocol-Migrationen
syncopio spricht sowohl NFS als auch SMB nativ. Es übernimmt die Metadaten-Übersetzung, Timestamp-Normalisierung und Dateinamen-Validierung — und meldet Probleme, bevor sie zu Transfer-Fehlern führen. Mehr über Multi-Protocol-Support erfahren.
Wenn du Daten zwischen Protokollen migrierst:
Für eine vollständige Migrationsmethodik siehe unseren Data Migration Complete Guide.