Sammlung: NAS/smb

Renegade33

Member
Aug 29, 2023
110
2
18
Bavaria - Germany
Mahlzeit,
da dieses Thema immer wieder mal auftaucht, aber meist etwas speziell oder unzureichend beantwortet ist, habe ich hier vor, einen Sammelthread als Grundeinstieg in das Thema zu erstellen. Ich bitte um fachliche Hilfe, aber so wenig wie möglich persönliche Präferenzen.

Es gibt grundsätzlich drei mir bekannte Ansätze:
  1. NAS Software in VM
  2. NAS-Software mit durchreichen der Hardware (HDD/SSD)
  3. smb-Server mit Datenhaltung direkt im Proxmox

Die jeweiligen Vor-Nachteile sind:

zu 1.
+ mehr oder weniger komfortable GUI zur Administration
+ viele Sonderfunktionen eines NAS
- Je nach Software großer Overhead
- Platten als VM und dann meist ein Filesystem der Software oben drauf

zu 2.
+ System arbeiten bzw. verwaltet die Platten stand-alone
+ Kein doppeltes Filesystem
- meist ein extra HBA erforderlich

zu 3.
+ sehr geringer Overhead
+ kein doppeltes Filesystem
- durch shell Konfiguration nicht so benutzerfreundlich

BITTE um Korrektur bzw. Ergänzungen eurerseits. Beispiele der einzelnen Ansätze kommen später dazu.

mfG Rene
 
Hi,
die 3. Option ist nicht zu empfehlen. Das fällt dir beim nächsten Update eventuell auf die Füße.
Auf einen Hypervisor sollten so wenig wie möglich zusätzliche Dienste drauf.
Dann lieber einen LXC erstellen.

Punkt 1 und 2 haben fast keinen Unterschied. Bei PVE hast du oft keine Filesystem sondern Block im Einsatz (LVM, ZFS oder RADOS), somit hast du das erste Filesystem in der VM.
Du kannst Disks direkt durchreichen um z.B. einen ZFS Pool in der VM zu bauen. Das geht ganz eifach über qm set
 
Hi,
die 3. Option ist nicht zu empfehlen. Das fällt dir beim nächsten Update eventuell auf die Füße.
Auf einen Hypervisor sollten so wenig wie möglich zusätzliche Dienste drauf.
Dann lieber einen LXC erstellen.
Moin @Falk R, schön, dass du Dich hier beteiligst.

Da habe ich da wohl was falsch verstanden oder mich falsch ausgedrückt. Meinte hierbei so etwas wie die LXC Toolbox. Laut einem Video liegen da die Daten aber quasi direkt im ZFS und die Userverwaltung/sharing läuft über einen LXC Container. Oder bvin ich da komplett falsch abgebogen?
Punkt 1 und 2 haben fast keinen Unterschied. Bei PVE hast du oft keine Filesystem sondern Block im Einsatz (LVM, ZFS oder RADOS), somit hast du das erste Filesystem in der VM.
Du kannst Disks direkt durchreichen um z.B. einen ZFS Pool in der VM zu bauen. Das geht ganz eifach über qm set
Was ist Block? Dachte ZFS und LVM sind auch Filesysteme?
JA durchreichen geht ja nur mit 2.Controller ob onboard oder als extra HBA. Bei dem virtuellen Durchreichen hab ich gelesen, wird quasi eine virtuelle Disk pro Platte erstellt und gemappt. Also auch doppelt gemoppelt. Zudem haben schon einige gesagt, dass es anscheinend Probleme damit gab.
 
Als meiner Praxis, wenn ich mal Dateien aus dem Proxmox PVE, z.B. die Imanges, extern zur Verfügung stellen möchte, dann nutze ich einen
priviliged LXC an den ich die ZFS Verzeichnisse als Mountpoints durchreiche.

Ich muss mich dabei "nur" noch um die Benutzer ID im LXC ein weiteres mal kümmern.
So eine Samba, smbd und nmdb ist ja schnell aufgesetzt.
 
Was ist Block? Dachte ZFS und LVM sind auch Filesysteme?
ZFS ist Raid, Logical Volume Manager und Filesystem in einem Paket. Daher wird bei ZFS viel falsch verstanden.
Block heißt, wir nutzen nur einen logischen teil der Disk. Eine Disk ist immer ein Block Storage und z.B. LVM schneidet nur Häppchen draus.
Dateisysteme legt man dann auf Partitionen, welche man auf der logischen Disk erstellt.
JA durchreichen geht ja nur mit 2.Controller ob onboard oder als extra HBA. Bei dem virtuellen Durchreichen hab ich gelesen, wird quasi eine virtuelle Disk pro Platte erstellt und gemappt. Also auch doppelt gemoppelt. Zudem haben schon einige gesagt, dass es anscheinend Probleme damit gab.
Durchreichen von Disks geht immer, egal welcher Controller. Du musst ja nicht den ganzen Controller durchreichen. Jede Disk ist ein Gerät was man durchreichen kann. Die hängt dann an einem virtuellem Controller, aber das tut der Funktion nix ab.
 
  • Like
Reactions: news
Paar Anmerkungen:
- man kann alle PCIe Geräte physisch durchreichen sofern die IOMMU Gruppen passen. Das können nicht nur komplette Disk-Controller sein, sondern auch einzelne NVMe SSDs.
- Punkt 2 und 3 haben noch den Nachteil, dass du dein NAS nicht mehr ohne weiteres zwischen PVE Nodes migrieren kannst
- Option 1 kann schon ordentlich Overhead haben, gerade wenn man ZFS als VM Storage nutzt und dann etwas wie TrueNAS als GastOS nutzen möchte, was dann ja ZFS auf ZFS laufen lässt. Sind dann zwar wörtlich keine verschachtelten Dateisysteme (weil dataset auf zvol), aber der Overhead (und damit nicht nur Performanceverlust, sondern auch SSD-Abnutzung und Kapazitätsverlust) ist trotzdem sehr hoch.
-Option 4 sollte wirklich ergänzt werden mit Bind-Mount vom Host in einen NAS LXC. Wenn man webUI will kann man dann auch was wie webmin im LXC laufen lassen (und frühee ging sogar mal OMV)
- ich würde NAS VM mit Disk Passthrough (qm set ...) tatsächlich als 5te Option nehmen, da es sich schon vom Option 2 unterscheidet (niedrigere Hardware-Anforderung, andere Blockgröße, VM startet nicht mehr bei Ausfall einer Disk auch wenn das Array dank Parität noch voll lauffähig wäre, kein SMART im Gast, zusätzliche Abstraktionsebene, ...)
 
Last edited:
Als meiner Praxis, wenn ich mal Dateien aus dem Proxmox PVE, z.B. die Imanges, extern zur Verfügung stellen möchte, dann nutze ich einen
priviliged LXC an den ich die ZFS Verzeichnisse als Mountpoints durchreiche.
Darum geht es ja hier nicht, sondern vollwertige Netzwerkspeicher, ob über Fileserver oder NAS im Netzwerk zur Verfügung zu stellen.

ZFS ist Raid, Logical Volume Manager und Filesystem in einem Paket. Daher wird bei ZFS viel falsch verstanden.
Block heißt, wir nutzen nur einen logischen teil der Disk. Eine Disk ist immer ein Block Storage und z.B. LVM schneidet nur Häppchen draus.
Dateisysteme legt man dann auf Partitionen, welche man auf der logischen Disk erstellt.
Kapier ich zwar immer noch nicht ganz, aber bin heut auch nicht wirklich fit. Also dass ZFS ein all in one ist, soweit ist mir das klar. Bei klassischen Raids hab ich ja die physische Ebene, dann die logische vom Controller und da setzt man dann sein FAT, NTFS,... drauf(Filesystem)
Block Storage würde ich jetzt die physikalischen Blöcke hardwareseitig verstehen.
Durchreichen von Disks geht immer, egal welcher Controller. Du musst ja nicht den ganzen Controller durchreichen. Jede Disk ist ein Gerät was man durchreichen kann. Die hängt dann an einem virtuellem Controller, aber das tut der Funktion nix ab.
Da habe ich halt schon einige gehört, die sagten, dass es Probleme macht.

- Punkt 2 und 3 haben noch den Nachteil, dass du dein NAS nicht mehr ohne weiteres zwischen PVE Nodes migrieren kannst
Sehr guter Punkt. Setze ich auf jeden Fall noch oben rein. :D

-Option 4 sollte wirklich ergänzt werden mit Bind-Mount vom Host in einen NAS LXC. Wenn man webUI will kann man dann auch was wie webmin im LXC laufen lassen (und frühee ging sogar mal OMV)
Ist das vom Prinzip her, wie die LXC-Toolbox?

- ich würde NAS VM mit Disk Passthrough (qm set ...) tatsächlich als 5te Option nehmen, da es sich schon vom Option 2 unterscheidet (niedrigere Hardware-Anforderung, andere Blockgröße, VM startet nicht mehr bei Ausfall einer Disk auch wenn das Array dank Parität noch voll lauffähig wäre, kein SMART im Gast, zusätzliche Abstraktionsebene, ...)
Guter Punkt. Ergänze ich.
 
Ist das vom Prinzip her, wie die LXC-Toolbox?
KA was die LXC-Toolbox ist, aber Best Practice ist, dass man am Host so wenig rumwerkelt wie nötig. Statt da einen SMB/NFS Server direkt auf dem Host laufen zu lassen packt man das Ganze lieber in einen LXC. Dann hat man die zusätzliche Isolation, muss weniger am Host rumfuschen (und hat damit auch weniger Ärger wenn man PVE mal neu aufsetzen muss...und PVE ist ja immer noch nicht offiziell sicherbar...) und macht es auch einfacher die SMB/NFS Server dann zu sichern/wiederherzustellen.
Darum geht es ja hier nicht, sondern vollwertige Netzwerkspeicher, ob über Fileserver oder NAS im Netzwerk zur Verfügung zu stellen.
Was bezeichnest du denn als "vollwertige Netzwerkspeicher"? Ich seh da jetzt auch nicht warum ein LXC mit NFS/SMB Server mit Bind-Mount weniger vollwertig sein sollte als ein SMB/NFS Server direkt auf dem Host.

Block Storage würde ich jetzt die physikalischen Blöcke hardwareseitig verstehen.
Nicht nur physikalische Blöcke. Heute hast du ja eigentlich immer eine weitere Abstraktionsebene dazwischen. Wo zwischen physischen Blöcken und Dateisystem dann noch etwas wie ZFS oder LVM sitzt. Als was würdest du denn z.B. eine unformatierte Partition bezeichnen die nur aus Blöcken besteht? Das ist ja auch weder die ganze physische Disk noch ein Dateisystem. Ist halt nur eine Art "virtuelles" Segment von der ganzen physischen Disk. Das gleich macht dann ja ZFS auch nochmal oben drauf mit Zvols und LVM mit LVs.

PS:
Übrigens nicht wundern, wenn du irgendwann deinen Tutorial-Post nicht mehr ändern/aktualisieren kannst. Das geht nur eine begrenzte Zeit (1 Monat?). Das macht das Forum hier für Tutorials leider eigentlich total ungeeignet :/
 
Last edited:

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!