Fileserver mit ZFS und LXC?

toffer84

Member
Feb 10, 2021
29
1
8
40
Hallo,

ich bin absolut neu in Proxmox, habe zwar schon mal testweise mal einen PVE installiert, aber sonst noch nicht weiter gemacht.
Nun bekomme ich diese Woche einen gebrauchten DELL PowerEdge R410 (Xeon X5520, 16GB RAM, 120GB SSD für System, 2x 2TB WED Red für Daten).
Folgendes Szenario möchte ich umsetzen:

1. Datensicherung einer im Netzwerk vorhandenen Synology DS718+ (mein produktives NAS) auf den DELL Server mittels rsync.
2. Freigabe des gesicherten Ordners auf dem DELL Server mittels SMB zur schnellen Wiederherstellung von Daten.
3. Die beiden 2TB HDDs sollen im RAID 1 (Mirror) konfiguriert sein.

Meine Fragen daher:

1. Was ist performanter: LXC Container oder VM? Ich möchte Ubuntu 20.04.2 als OS einsetzen.
2. Wie ist die RAID Config besser: Mittels ZFS im PVE und dann der VM/LXC als Mountpoint durchreichen oder direkt dann in der VM/LXC konfigurieren?

Umsetzung der Sicherung mittels rsync und Freigabe per SMB kein Problem, dass habe ich schon mehrfach konfiguriert.

LG
Fabian
 
Du kannst einer VM keine Mountpunkte durchreichen. So etwas geht nur bei Containern.
Wolltest du in einer VM Raid nutzen müsstest du:
a.) beine HDDs durchreichen (ist kein echter physischer Passthrough sondern geht über virtuellen SCSI Controller) und dann in der VM irgendwie Raid umsetzen
b.) Raid auf dem Host nutzen und dann eine sehr große virtuelle Festplatte auf dem Array/Pool erzeugen und diese für die VM nutzen

LXC wäre da performanter, weil du dir die Virtualisierung sparst, die du bei VMs immer hättest, wenn du nicht extra einen PCIe HBA kaufst und diesen per PCI Passthrough an die VM durchreichst.
LXCs sind aber etwas gewöhnungsbedürftig da sie wegen fehlender Isolierung nicht so autark und sicher sind.
 
  • Like
Reactions: philvomgrill
Hallo,

vielen Dank für deine Antwort.

Was meinst du mit LXCs nicht so autark und sicher? Ich möchte den Fileserver nicht ins Internet hängen, der soll nur im priv. Netzwerk hängen, ohne Zugriff von außen.

Wäre in meinem Fall also die Lösung mit ZFS und LXC direkt in PVE die beste Lösung? Falls du noch irgendwelche Angaben brauchst, sag es einfach nur.

LG
Fabian
 
Ja, mit Sicherheit meine ich vorallem wenn ein LXc im Internet hängt, weil ein privilegierter LXC kaum und ein unprivilegierter LXC nur mittelmäßig vom Host isoliert ist und es sich dann nie vermeiden lässt, dass da wer mit Zugang zum LXC auch Unfug auf dem Host selbst anstellen kann.

Aber da ein LXC im Gegensatz zur VM nicht voll isoliert ist und sich z.B. immer mit dem Host den Kernel und alle Geräte teilt, kann das ziemlich schnell kompliziert werden.
1.) du kannst das NAS dann nicht einfach von einen Server auf einen anderen umziehen lassen, weil ja alles auf den Host angewiesen ist. Also schwerer wenn mal die Hardware versagt.
2.) du kannst keine Snapshots von dem LXC machen, weil sobald ein bind-mount vom Host zum Gast existiert, ist das Feature deaktiviert
3.) ich weiß nicht genau wie das mit der Stabilität aussieht, aber ich würde vermuten eine VM mit eigenem Kernel ohne direkte Beziehung zum Host ist weniger anfällig für Probleme
4.) man trifft öfter mal auf Probleme, wo etwas im LXC etwas tun möchte, wo es keine Berechtigungen für hat, da wegen der Isolation dem LXC einfach gewisse Rechte fehlen
5.) falls du einen unprivilegierten LXC willst, dann kannst du z.B. nichts im LXC mounten. Auch keine SMB Shares etc, weil dem LXC dafür einfach die Rechte fehlen
6.) im unprivilegierten LXC ist das mit den Handling der User/Gruppen Rechte ziemlich kompliziert, da alle User und Gruppen ein Remapping unterlaufen. Wenn du im unprivilegierten LXC eine Datei als User mit der UID 1000 schreibst, dann gehört die Datei laut LXC zwar dem USer mit der UID 1000 aber wenn man die gleiche Datei auf dem Host selbst betrachtet, dann gehört sie dem User "nobody" mit der UID 101000. Das kommt daher, dass da User mit UID 0-65565 im LXC zu UID 100000-165565 umgemappt werden. Das macht es sehr nervig Ordner zwischen LXC und Host zu teilen, weil man jedesmal manuell die Konfig des LXCs anpassen muss, um manuell das Remapping für gewisse User/Gruppen zu verändern, dass da UID 1000 im LXC z.B. auch UID 1000 auf dem Host entspricht
7.) im LXC läuft nur Linux und du musst gucken, dass da dein Gast-OS auch mit dem Proxmox-Kernel klarkommt, weil es den ja mitbenutzen muss, anstatt den eigenen Kernel benutzen zu können, den es normal nutzen würde. Dinge wie FreeNAS/TrueNAS die z.B. auf Unix basieren fallen da z.B. gleich weg. Der Proxmox-Kernel basiert aber auf dem Ubuntu-Kernel, also sollte es da weniger Probleme geben, wenn du eh Ubuntu als NAS-OS nehmen wolltest.
 
Last edited:
Hallo,

Danke für deine ausführliche Antwort.
Bissel schreckt mich das aber ab, gerade das mit den Usern im LXC usw. Ich glaube, ich werde doch eine klassische Ubuntu Installation ohne Proxmox vornehmen.

Grüße
 
Naja, wenn du einen Hypervisor brauchst und keine Lust auf LXCs hast, dann gehen ja auch VMs. Ist dann nur nicht nicht so performant, wenn du die HDDs nicht inkl HBA per PCI Passthrough durchreichst. Beide HDDs über eine virtuelle virtio SCSI in eine Ubuntu VM durchreichen und in der VM dann mit mdraid ein software raid1 einrichten wäre ja auch möglich. Müsstest du halt testen wie es da mit dem Overhead aussieht.

Und ProxmoxVE ist ja auch nur ein modifiziertes Debian und damit nicht so unterschiedlich zu Ubuntu. Wenn du eh deine Shares manuell auf dem Ubuntu einrichten wolltest, dann wäre es natürlich auch eine Option, wenn du das direkt vom Proxmox Host selbst erledigen lässt. Dann sparst du dir jeglichen Overhead. Ist aber natürlich auch nicht so schön Dienste direkt auf dem Hypervisor selbst laufen zu lassen.
 
Last edited:
Ich habe das Konstrukt exakt so laufen. Ubuntu mit Samba im unprivilegierten LXC Container. Die ZFS Datasets liegen auf dem Host und sind per bindmount durchgereicht.
Hat den Vorteil, dass andere Container auch auf die ZFS Datasets auf dem Host zugreifen können (Bindmount für Container, NFS für VM's).

Etwas tricky ist in der Tat die Rechteproblematik zwischen Container und Host, ist aber lösbar. Im Homelab (??) kann man das recht einfach halten und alles auf eine Gruppe "datauser" mappen. Diese Gruppe bekommt dann Schreibrechte auf dem Host..

Ach ja, ich habe PVE 6.3-3 und da kann ich auch Snapshots dieses Containers (mit Bind mount) erstellen.. gerade getestet.

PS: Gerade als Einsteiger ist ein Proxmox Unterbau Gold wert. Schnell mal eine TestVM gezimmert und irgendwas ausprobiert. Das schont die "produktiven" VM's und Du kannst "Testrechner" aufziehen, ohne die produktiven Teile zu stören. Wenn abends beim rumspielen der Film auf dem MediaPC abgeschossen wird, dann ist's Essig mit dem WAF :-D
 
Last edited:
Ach ja, ich habe PVE 6.3-3 und da kann ich auch Snapshots dieses Containers (mit Bind mount) erstellen.. gerade getestet.
Dann liegt das wohl daran, dass du versuchst ein Dataset durchzureichen was ja Snapshots selbst unterstützt. Bei mir reiche ich per bind-mount SMB Shares durch und die können ja keine Snapshots und sobald irgendetwas im LXC (oder per bind-mount durchgereichtes) keine Snapshots unterstützt wird das Snapshotting komplett für den LXC deaktiviert. Also der LXC könnte bei mir zwar Snapshots (auch ZFS als Unterbau) aber wird wegen dem SMB Share eben nicht genutzt.
 

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!