# Windows NFS Server: High-Performance Data Sharing mit Linux
TL;DR / Management Summary In gemischten Umgebungen ist der NFS (Network File System) Dienst die beste Methode, um Windows-Storage für Linux-Gäste (z.B. in Proxmox) bereitzustellen. Windows Server unterstützt NFS v4.1, was starke Sicherheit (Kerberos) und Performance-Verbesserungen bietet. Ein Senior Admin nutzt NFS, um Proxmox ISO-Images oder Backup-Ziele zentral auf einem Windows-basierten SAN/Fileserver vorzuhalten.
# 1. Einführung & Architektur
Warum NFS statt SMB?
Linux-Systeme bevorzugen NFS, da es nativ im Kernel implementiert ist und keine komplexen User-Space-Clients (wie cifs-utils) mit hohen Latenzen benötigt.
# Die NFS-Versionen in Windows
- NFS v3: Einfach, weit verbreitet, aber unsicher (basiert auf IP-Vertrauen).
- NFS v4.1: Sicher (Kerberos), unterstützt Multi-Pathing und bessere Dateisperren.
# 2. Einrichtung in der Praxis
Vom Windows-Share zum Linux-Mount.
# Schritt 1: Rolle installieren
Install-WindowsFeature -Name FS-NFS-Service -IncludeManagementTools
# Schritt 2: NFS-Freigabe erstellen (PowerShell)
New-NfsShare -Name "ISO-Repo" `
-Path "D:\Storage\ISOs" `
-AllowRootAccess $true `
-Permission readwrite `
-Authentication all
- AllowRootAccess: Wichtig für Proxmox/Linux-Systeme, die Schreibrechte für den
rootUser (UID 0) auf dem Share benötigen.
# 3. Deep Dive: User ID Mapping
Wer ist ‘root’ in Windows?
Linux nutzt UIDs (0, 1000), Windows nutzt SIDs. Wenn ein Linux-Client eine Datei schreibt, muss Windows wissen, welchem AD-User das entspricht.
# Optionen für das Mapping
- Active Directory Mapping: Speicherung von UIDs im AD-Attribut (RFC 2307). Professionellste Lösung.
- Anonymous Logon: Alle Linux-Zugriffe werden auf einen speziellen lokalen Windows-User gemappt (einfach für Testumgebungen).
# Setzt UID/GID für anonymen Zugriff
nfsadmin server config AnonymousUid=0 AnonymousGid=0
# 4. Day-2 Operations: Mounting am Linux-Client
Den Zugriff testen.
Auf dem Linux-Host (z.B. Proxmox-Knoten):
# Installation der Tools
apt update && apt install nfs-common -y
# Temporärer Mount
mount -t nfs 10.0.0.10:/ISO-Repo /mnt/iso
# Permanenter Eintrag in /etc/fstab
10.0.0.10:/ISO-Repo /mnt/iso nfs defaults,nfsvers=4.1 0 0
# 5. Troubleshooting & “War Stories”
Wenn die Berechtigung verweigert wird.
# Top 3 Fehlerbilder
-
Symptom: “Permission Denied” vom Linux-Client, obwohl NTFS-Rechte stimmen.
- Ursache: Die NFS-Export-Rechte (Zugegriffen via
Get-NfsShare) überschreiben die NTFS-Rechte. - Lösung: IP-Adresse des Clients explizit in die Erlaubnisliste des NFS-Shares aufnehmen.
- Ursache: Die NFS-Export-Rechte (Zugegriffen via
-
Symptom: Sehr langsame Performance beim Schreiben.
- Ursache: Synchrones Schreiben. NFS wartet auf die Bestätigung der Disk.
- Lösung: Aktivieren Sie den Schreibcache in den NFS-Server-Einstellungen (Vorsicht: Datenverlustrisiko bei Stromausfall!).
-
Symptom: Dateien gehören immer dem User
nobody.- Ursache: ID-Mapping Problem.
- Lösung: Installieren und konfigurieren Sie den
idmapdDienst auf dem Linux-Client.
# “War Story”: Der “Stumme” Backupshare
Ein Admin nutzte einen Windows NFS-Share als Backup-Ziel für seine Proxmox-Cluster (VZDump).
Das Problem: Die Backups liefen durch, waren aber auf dem Windows-Server 0 Bytes groß.
Die Entdeckung: Windows NFS-Server führt standardmäßig “Striktes Caching” durch. Da der Proxmox-Job die Verbindung nicht sauber schloss, wurden die Metadaten nicht geflasht.
Lösung: Umstellung auf NFS v4.1 und Erzwingen von sync Mount-Optionen auf der Linux-Seite. Seitdem sind die Backups konsistent.
# 6. Monitoring & Reporting
NFS-Last analysieren.
# Wichtige Metriken
- NFS Server \ Requests/sec: Wie viele Operationen pro Sekunde?
- NFS Server \ Throughput: MB/s über das Netzwerk.
# 7. Fazit & Empfehlung
Windows als NFS-Server ist eine valide Option für hybride Datencenter.
- Empfehlung: Nutzen Sie NFS v4.1 mit Kerberos-Authentifizierung für produktive Workloads.
- Performance: Wenn Sie Proxmox-Backups (Artikel 697) auf Windows speichern, sorgen Sie für eine dedizierte 10G-Verbindung zwischen den Hosts.
# Anhang: Cheatsheet
| Aufgabe | Befehl |
|---|---|
| Shares auflisten | Get-NfsShare |
| Client-Berechtigungen | Get-NfsSharePermission |
| Server-Config sehen | nfsadmin server config |
| Dienst neustarten | Restart-Service nfsclnt |