
Waldemar Schneider
IT-Systemintegrator, der sowohl die Produktionshalle als auch den Serverraum versteht.
© 2026 Waldemar Schneider
Portfolio

Zentraler Fileserver (Samba/ZFS)
Inhalt
Projektübersicht
Aufbau eines zentralen Dateiservers als LXC-Container auf Proxmox VE, mit ZFS-basierter Dateiablage und SMB-Zugriff für Windows und Linux gleichzeitig.
1. Situation (Ausgangslage)
Dokumente und Arbeitsdaten lagen lokal auf einzelnen Geräten oder Betriebssystemen. Der Arbeitsrechner läuft im Dual-Boot (Windows 11 / Ubuntu 24.04). Beim Wechsel zwischen den Systemen war kein gemeinsamer Zugriff auf dieselben Dateien möglich. Daten mussten manuell kopiert oder auf USB-Sticks verschoben werden.
2. Task (Zielsetzung)
- Zentrale Ablage: Eine einzige Kopie aller Arbeitsdaten, erreichbar von beiden Betriebssystemen.
- Kein Sync, keine Duplikate: Beide Systeme mounten denselben Share, keine doppelte Datenhaltung.
- Sicherheit: Authentifizierter Zugriff, kein anonymes Lesen oder Schreiben. SMB1 deaktiviert.
- Isolierung: Der Fileserver-Dienst läuft getrennt vom Hypervisor in einem eigenen Container.
3. Action (Umsetzung)
A. Storage-Architektur mit ZFS
Die Dateiablage wurde auf dem ZFS Mirror des Proxmox-Hosts eingerichtet:
- Eigenes Eltern-Dataset (
zpool/shared) mit 100 GB Quota und LZ4-Kompression, getrennt von den VM/LXC-Systemdaten. - Drei Kind-Datasets für unterschiedliche Datenbereiche, jeweils unabhängig snapshotbar und mit vererbten Eigenschaften.
B. Samba im LXC-Container
Einen dedizierten Debian 12 LXC-Container aufgesetzt (512 MB RAM, 8 GB Disk, unprivilegiert):
- ZFS-Datasets per Bind-Mount in den Container eingebunden, der Container selbst hat keinen direkten ZFS-Zugriff.
- UID-Mapping für unprivilegierte LXCs korrekt konfiguriert (Container UID 1000 → PVE UID 101000). Dabei mehrere falsche Ansätze (chmod 777, usermod -aG root) getestet und dokumentiert, warum sie nicht funktionieren.
- Samba gehärtet:
map to guest = never(kein anonymer Zugriff),server min protocol = SMB2(SMB1 deaktiviert),valid userspro Share.
C. Client-Anbindung (Windows und Ubuntu)
Beide Betriebssysteme an den Fileserver angebunden:
- Windows: Persistente Netzlaufwerke per
net use /persistent:yes. Session-Management dokumentiert (Windows erlaubt nur eine Identität pro Server). - Ubuntu: SMB-Mounts via
/etc/fstabmit Credentials-Datei (chmod 600) statt Klartext-Passwort. Mount-Option_netdevgesetzt, damit der Boot-Prozess nicht hängt.
4. Result (Ergebnis & Verifikation)
- Beide Betriebssysteme greifen auf dieselben Dateien zu, ohne Sync oder Duplikate.
- Der Fileserver läuft stabil im Dauerbetrieb mit minimalem Ressourcenverbrauch (512 MB RAM, 1 Core).
- ZFS-Snapshots ermöglichen schnelle Wiederherstellung einzelner Dateien oder Verzeichnisse.
- Die Lösung ist konsistent mit der restlichen Infrastruktur: jeder Dienst in einem eigenen Container, der Hypervisor bleibt sauber.
Lessons Learned
- UID-Offset bei unprivilegierten LXCs: Die Formel PVE UID = Container UID + 100000 muss auf dem Host bei jedem Bind-Mount korrekt angewendet werden.
chmod 777ist keine Lösung, sondern ein Sicherheitsproblem. - SMB statt NFS für gemischte Umgebungen: Der Windows NFS-Client hat keine echte Authentifizierung, alle Dateien landen als anonymer
nobody. SMB ist für gemischte Windows/Linux-Netze der richtige Standard. - Windows Session-Management: Windows erlaubt pro Server nur eine Benutzeridentität. Weitere Shares nach dem ersten Login ohne
/user:mappen, sonst Fehler 1219. _netdevist kritisch: Ohne diese Mount-Option versucht Linux den SMB-Share beim Boot einzubinden, bevor das Netzwerk bereit ist. Der gesamte Boot-Prozess hängt.