One Disk Server - Dateien überall verfügbar

Manu182

New Member
Nov 10, 2022
3
0
1
Hallo zusammen,

ich bin ganz neu im Thema Proxmox und habe auch keinerlei Vorerfahrung. Ich lese mich gerade ein und habe momentan noch eine Verständnisfrage.

Ausstattung:
Hardware: PC mit 4-Kernen, 16GB Ram und 1TB SSD
Software: Proxmox 7.2-11 installiert

Das Ganze System dient als Spielwiese zum Lernen, hierbei ist keine Redundanz oder Backupsystem erforderlich.

Ich habe nun auf der 1TB SSD Proxmox auf 500GB installiert. Die restlichen 500GB wurden während der Installation unpartitioniert zurück gelassen. Via Gparted habe ich dann die fehlende Partition (/dev/sda4) mit ext4 paritioniert. Im Anschluss sah ich die Partition auch in Proxmox. Hier konnte ich sie über die Web-GUI nochmals formatieren, sodass ich nun einen entsprechenden Storage erstellen kann.

Meine Ziel wäre nun sda4 als Datenplatte in allen VMs oder Container zur Verfügung zu stellen. Mit lesenden und schreibenden Rechten. War mein Weg zumindest bis jetzt schon richtig oder hätte ich es anders lösen sollen? Später wäre noch ein Fileserver ganz nett, welcher mir per SMB die Daten an macOS, Linux und Windows zu Verfügung stellen kann.

Ich danke vorab recht herzlich.

Viele Grüße
Manu182
 
Das wird jetzt vermutlich eher mit einem "kommt drauf an" zu beantworten sein.
Ich bin ja auch Proxmox Frischling und Linux naja bisher nur Randthema.
  • Ich gehe mal davon aus dass Du noch mehr Plattenplatz zu Verfügung stellen wirst? 1TB reicht ja nicht lange und wenn die beständig beschrieben wird könnte je nach SSD auch die Haltbarkeit/Lebensdauer deutlich leiden.
  • Möchtest Du gemeinsamen Speicherbereich haben oder jede VM für sich?
    • Du kannst jetzt Mountpoints (MP/Verzeichnisse) vom Host durchreichen oder
    • Virtuelle Platten (qcow2 oder raw) verwenden
    • Den Storage nutzt Du für Backups der VMs (auf dem gleichen Rechner ist aber eigentlich nicht so clever) oder ISOs etc.
    • Achte drauf, dass Du Daten und Betriebsysteme sauber trennst, das hilft beim Recovery falls mal nötig und macht auch das Backup leichter.
  • Performance wirst Du Kompromisse eingehen müssen, wenn Du mit virtuellen und nicht durchgereichten platten arbeitest, denke aber Performance ist bei dem System ja nicht unbedingt das Ziel.
  • SMB Fileserver: eine SSD für Spielsystem OK (besser wäre (ZFS)Raid mit mind. 4 Platten). Ich würde einen LXC Container erzeugen (braucht wenig Ressourcen und bietet Trennung vom Host) einen MP von der SSD durchreichen und den im Container in der Samba Konfig als Speicherziel anlegen. Wenn Du es ganz vom Host getrennt haben möchtest, eine VM mit eine kleinen virtuellen zweiten Platte (statt dem MP im Container).
Ich würde vor allem mal weiter Spielen mit den virtuellen Disks und Containern und VMs. Am besten lernt man durch probieren (und Fehler), Zieh Dir ein Backup (und dann regelmäßig zumindest die Konfig) vom Server falls doch was schief geht. (eine separate disk nehmen).

Die Profis geben bestimmt noch ein paar Tipps - dann lerne ich auch noch gleich mit.
 
Last edited:
Nochmal eine Anmerkung:
1.) Unprivilegierte LXCs könnte keine SMB/NFS Shares mounten. Da bleiben dann nur die unsicheren privilegierten LXCs. Da arbeitet man dann am Besten mit Bind-Mounts.
2.) Du kannst nicht ohne weiteres Ordner vom Host direkt in eine VM durchreichen. Das geht nur über Bind-Mounts bei LXCs. Willst du einen Ordner vom Host in die VM bekommen musst du diesen irgendwie per SMB/NFS über das Netzwerk bereitstellen. Und PVE bietet dabei keinerlei NAS-Funktionalitäten. Das muss man sich selbst per CLI installieren/einreichten.
3.) virtuelle Platten (raw/qcow2) können sich Gäste nicht teilen. Mountet man die gleichzeitig in zwei VMs, dann für das zu Datenkorruption.
4.) Extra Platz für eine vierte Partition freilassen ist üblicherweise eher unnötig. Standardmäßig nutzt PVE die komplette Platte und speichert sowohl Dateien wie auch die Gäste darauf. Im Falle von ZFS können sich dann virtuelle Disks und Dateien die volle Kapazität dynamisch teilen. Im Falle von LVM/LVM-Thin nutzt PVE so rund 1/4 der Kapazität für Dateien und 3/4 für virtuelle Disks. Bei LVM muss man sich also überlegen, wieviel man wovon haben will.
 
Last edited:
Danke euch beiden schonmal für die Antwort. Das Thema ist wohl doch komplizierter als ich dachte.

@endurance, wie gesagt es ist und bleibt ein Single Disk Proxmox, kein Raid kein garnix. Da soll ein kleiner Fileserver drauf laufen wo meine Familie paar Bilder und Videos (unwichtige) hochladen können. Die Videos hätte ich dann gerne in Plex zu Verfügung. Ich will einfach nur umkompliziert Daten (komplette sda4 mit Lese- und Schreibrechen) in verschiedenen VMs und Cointainer weiterreichen können.

@Dunuin, besten Dank. Das bringt ein wenig Licht ins Dunkle. Du meintest NAS-Funktionalitäten unter Punkt 2. oder? :) Da in meinem Fall keine Daten gesichert werden müssen, würden mir ja die privilegierten LXCs reichen. Wenn ich jetzt wie du unter Punkt 4. sagst keine 4. Partion erstelle, dann fehlt mir aber jegliche Möglichkeit einen fixen Bereich für meine Mediadaten zu erstellen. Oder wie genau sollte hier das anstellen?
 
Schwierig nicht wirklich, aber ja etwas damit beschäftigen muss man sich wohl.

Wie Dunuin geschrieben hat, eine ganze Platte (sda4) kannst Du nicht mehrfach an verschiedene VMs durchreichen. Oder können evtl. schon aber dann gibt es eben Datensalat.

Wenn Dir Datensicherheit bzw. Sicherheit im allgemeinen nicht so wichtig ist mach (unprivilegierte) LXC container für Anwendungen, die keine oder eingeschränkte root rechte (Root UserMapping) brauchen und reiche Verzeichnisse von deinem PVE host als MP durch. So können auch mehrere Container auf die MP / Verzeichnisse zugreifen.
Anmerkung: privilegierte Container würde ich nur nehmen, wenn die wirklich nur im LAN arbeiten und von außen nicht zugreifbar sind.

Hier mal ein Beispiel von einem Container der via SMB Daten anderen Maschinen zu Verfügung stellt. 2022-11-13_11h43_14.png

Grün wäre jetzt ein Verzeichnis auf dem Host (z.B. in der SDA4), Blau das Verzeichnis in Deinem Container. Die Root Disk ein eine raw Disk auf dem PVE Host.
Wenn Du die Daten nur in Containern auf dem PVE Host teilen willst, kannst Du dir den Samba Server nat. sparen und jeden Container die Daten direkt via MP zu Verfügung stellen.
Wenn Du die Daten in VMs oder komplett anderen Rechnern brauchst, kommst Du um einen Samba oder NFS Server nicht herum und musst eben die Samba Freigabe in der VM mounten.
 
Last edited:
Du meintest NAS-Funktionalitäten unter Punkt 2. oder?
Ja, das war ein Buchstabendreher. Aber "NSA-Funktionalitäten" bietet PVE hoffentlich auch nicht. :D
Wenn ich jetzt wie du unter Punkt 4. sagst keine 4. Partion erstelle, dann fehlt mir aber jegliche Möglichkeit einen fixen Bereich für meine Mediadaten zu erstellen. Oder wie genau sollte hier das anstellen?
Naja. Da würde man dann entweder:
1.) "local" Storage (also das LV mit dem Root-Dateisystem) so groß wählen, wie du das für Mediadaten brauchst. Also z.B. dann halt 532GB für "local" und nur 468GB für den "local-lvm" (LVM-Thin Pool der deine virtuellen Disks speichert). Dann hätte PVE seine 32GB die es braucht und zusätzlichen 500GB wären nutzbar für Mediadaten.
2.) Man gibt "local" nur 32GB und 968GB für "local-lvm". Dann erstellt man sich eine NAS VM/LXC (z.B. OpenMediaVault wenn man was Simples will) mit einer 968GB virtuellen Disk die man auf "local-lvm" ablegt. Die bis zu 968GB kann man dann anderen VMs, privilegierten LXCs oder sogar dem Host selbst direkt als SMB/NFS Shares bereitstellen. Für unprivilegierte LXCs müsste man als Workround die NFS/SMB Shares auf dem Host mounten und dann den Mountpoint des SMB/NFS Shares vom Host per bind-mount in den unprivilegierten LXC bringen.
3.) Man gibt "local" nur 32GB und 968GB für "local-lvm". Dann erstellst du dir manuell über die CLI ein neues 968GB LV auf dem LVM-Thin Pool, formatierst es mit dem Dateisystem deiner Wahl(z.B. ext4 oder xfs) und mountest es per fstab auf dem Host. Dieses mountpoint könntest du jetzt per Bind-Mount in andere LXCs bringen. Oder in VMs über SMB/NFS Shares, sofern du dir das selbst noch einrichtest.

Vorteil bei Option 2 und 3 wären, dass du Thin-Provisioning nutzen kannst. In der Summe dürfen die Daten natürlich nicht die 968GB des LVM-Thin Pools überschreiten. Du musst dich aber nicht vorher festlegen, wieviel Platz du für andere Gäst-Systeme oder für Mediadaten willst. 700GB Mediadaten + 5x 50GB VMs/LXCs würden genau so klappen wie 200GB für Mediadaten + 15x 50GB VMs/LXCs.

Privilegierte LXCs würde ich übrigens nicht ins Internet stellen. Die sind eher rein was fürs LAN, wo keine Bots/Hacker drankommen, weil die halt am unsichersten sind. Bei denen findet kein User-Remapping statt und der Root-User im privilegierten LXC ist gleichzeitig auch der Root-User deines PVE Hosts. Und der ganze LXC wird vom Root-User des PVE Hosts ausgeführt.
 
Last edited:
Vielen lieben Dank für eure fantastischen Antworten und Vorschläge. Ich habe meine 1TB Platte nun nochmals vollständig mit Proxmox neu installiert. Grundkonfiguration vorgenommen und entsprechende LXCs installiert. Lediglich eine unprivilegierte hängt im Internet, der Rest ist bei mir im Heimnetz. Ich habe per OpenMediaVault nun einen kleinen Speicher geschaffen worauf meine Familie ihre Daten hochladen kann. Das Ganze hab ich nun per SMB freigegeben und kann von sämtlichen Geräten darauf zugreifen. Es passt also alles erstmal so wie ich es haben wollte.

Das eigentliche Learning beginnt jetzt. Wie gesagt, vielen Dank euch allen. Das war der Schups in die richtige Richtung.
 
Wenn es geholfen hat gerne.
Bzgl. Sicherheit und Internetzugriff - geht leider meist mit Aufwand und Kosten einher: Trotzdem der Hinweis: Arbeite idealerweise mit unterschiedlichen Netzen also mind. so etwas
  • Internet (BÖSE) -> DSL/Kabel Modem etc -> Firewall (nur unbedingt nötige Ports weiterleiten, Quasi Deine Haustür)->
  • Halbwegs vertrauenswürdige Zone (hier internetfacing services, oder IOT Geräte etc.) -> Firewall (absolutes minimum weiterleiten, Tresortür) ->
  • LAN (nur vertrauenswürdige Geräte)
Maschinen die Verbindung zum Internet herstellen nicht in die LAN Zone. Diese Maschinen haben auch kein Interface ins LAN. Idealerweise sind dass auch VMs und keine Container. So kann ein Bösewicht, der sich bis zu den Maschinen hinter der ersten FW durchgekämpft hat nicht ohne weiteres ins LAN.
 
  • Like
Reactions: Dr.ive