Installation Proxmox, hier Einrichten Hostsystem & Data Storage

sharbich

New Member
Nov 7, 2024
22
1
3
Hallo Ihr Lieben,

ich habe mir ein Proxmox Server installiert. Dieser Server hat 2 nvme Disk mit jeweils 1TB. Auf einer Disk ist das Hostsystem installiert. Dann habe ich noch 2 Stück 12TB SATA Festplatten die in den HotSwap Schacht stecken. Diese sollen als Data Storage dienen. Weitere 10 Schächte sind noch frei die zur Erweiterung des Storage genutzt werden soll.

Nun zu meinen UseCase. Ich möchte gerne die 2 nvme als Spiegel für das Hostsystem verwenden. Macht das überhaupt Sinn? Es ist in naher Zukunft geplant eine 2 identische Hardware einzurichten und als Cluster zu verwenden.

Das Data Storage möchte ich so verwenden das wenn 1 Festplatte defekt ist die anderen Festplatten die Daten übernehmen. Ich Denke das ich dazu ein Raid System mit einer Spare Platte einrichten muss, oder? Ggf. muss ich mir dann noch zwei 12TB SATA Festplatten kaufen, oder? Ein RAID mit Spare geht glaub ich erst mit 3 oder 4 Festplatten, oder?

Ich hoffe das ihr mich mir hier ein wenig unterstützen könnt? Wo ich mich einlesen kann?

Beigefügt zwei Bilder aus dem Datacenter. Ich verwende Proxmox in der Version 8.3.0. Was möchte ich auf den System in mehreren virtuellen Systemen in unterschiedlichen VLAN's installieren?

- Netzwerk Dienste (DHCP, DNS, Multicast Proxy, OpenVPN Server)
- Zentrale Dienste (SelfSigned CA, LDAP, Mailserver, PostgreSQL, MariaDB, Nextcloud, MediaServer, Homeassistant, CUPS, Webserver)

Lieben Gruß von Stefan Harbich

2025_05_22_psme02-system.png2025_05_22_psme02-disk.png
 
Last edited:
Das Data Storage möchte ich so verwenden das wenn 1 Festplatte defekt ist die anderen Festplatten die Daten übernehmen. Ich Denke das ich dazu ein Raid System mit einer Spare Platte einrichten muss, oder?
Die beiden Platten musst mindestens als RAID1 einrichten, dann kannst du eine dritte Platte als Spare für den Fall eines defektes einrichten.
Aber daran denken das ein RAID System kein Backup ersetzt!
 
Dieser Server hat 2 nvme Disk mit jeweils 1TB. ... . Dann habe ich noch 2 Stück 12TB SATA Festplatten

Ohne weitere Hardware zu kaufen gibt es für mich nur eine sinnvolle Variante:

Installation auf die beiden Blechplatten, als ZFS mirror. Nach der Installation hinzufügen der beiden NVMe als "Special Device", manuell auf der Kommandozeile.

Auf dem SD werden ohne Weiteres ausschließlich Metadaten gespeichert. Dafür sind die beiden NVMe aber zu schade bzw. schlicht zu groß - weniger als 1 Prozent vom Datenbereich genügt. Darum kann man per "zfs set special_small_blocks=xyz rpool" dafür sorgen, dass dort auch kleine Daten-Blöcke gespeichert werden.

Falls du diesen Ansatz verfolgen möchtest, solltest du recherchieren, wie man diese Parameter dimensioniert.

Jedenfalls versucht diese Konstruktion beide Vorteile (schnelle NVMe + große Blechplatte) zu kombinieren. Natürlich gelingt das nur teilweise, aber das Ergebnis ist immer wesentlich schneller als "nur Blech" - einfach weil die zusätzlichen (vielfachen!) Kopfbewegungen für die Metadaten wegfallen.

Solange ausschließlich "mirrors" vorhanden sind, kann man das SD auch wieder entfernen und erneut anlegen, man darf also experimentieren...

Viel Spaß :-)
 
  • Like
Reactions: news and Johannes S
Solange ausschließlich "mirrors" vorhanden sind, kann man das SD auch wieder entfernen und erneut anlegen, man darf also experimentieren...

Wieder was gelernt, ich dachte man kann das special device grundsätzlich nicht entfernen?

In der Doku steht ja folgendes:
Was stimmt nun?

@sharbich Ich würde etwas anders vorgehen: Deine beiden HDDs aufsplitten als Laufwerk für das Betriebssystem und Rohdaten (also die Daten, die deine anwendungen verarbeiten sollen, z.B. Videos, Bilder, etc) nehmen, die SSDs als schnellen Storage für die VMs. Envtl. die SSD partionieren, um einen kleinen Teil als mirror für ein special device (siehe Udos Post) zur Beschleunigung deines HDD-Pools nehmen und den großen Teil für die VMs.
Grundsätzlich würde ich aber eher dazu raten auf den Gebrauchtmark zwei kleine Enterprise SSDs zu kaufen und die dann als Specialdevice für den HDD Pool nehmen, das wäre relativ kostengünstig (da für das special device 2% der Kapazität der HDDs, also ca 256 GB mehr als ausreichend sind (viele Leute kommen mit deutlich weniger, im Extremfall 0,02 -1% aus) möglich und erspart dir den Hassle mit der Partionierung. Solche SSDs mit minimalen Kapazitäten kriegt man schon für 30-40 Euro pro SSD ;) Kann man natürlich auch grundsätzlich als Storage fürs Betriebssystem nehmen, Proxmox VE braucht nicht viel (gibt Leute, die dafür lediglich 16-32 GB nehmen und damit locker auskommen!)
 
  • Like
Reactions: UdoB
ich dachte man kann das special device grundsätzlich nicht entfernen?
Ja, ich auch!

Das momentan ausgerollte ZFS 2.2.7 sagt allerdings:

Code:
DESCRIPTION
     zpool remove [-npw] pool device…
             Removes the specified device from the pool.  This command sup‐
             ports removing hot spare, cache, log, and both mirrored and non-
             redundant primary top-level vdevs, including dedup and special
             vdevs.

             Top-level vdevs can only be removed if the primary pool storage
             does not contain a top-level raidz vdev, ... .

Also ja, man kann das SD entfernen, mit der Einschränkung, dass KEIN raidz vorhanden sein darf.

Ansonsten ist das wohl nur per zurückrollen zu einem Checkpoint möglich. ( https://forum.proxmox.com/threads/high-i-o-delay-fluctuating-transfer-rates.165798/#post-771719 )
 
  • Like
Reactions: Johannes S
Alles basiert natürlich auf ZFS, als Datenträger sind natürlich immer nur SSDs bzw. HDDs aus dem Enterprise-Bereich zu nehmen.
Hallo, ich bin ein Neuling. Vieles sagt mir noch nichts. Dann fange ich mal mit meinen Fragen an:

- Woran erkenne ich Enterprise SSDs und HDDs (Schreib /-und Lesegeschwindigkeit)?

- ZFS erstellen (Ich denke über die zwei SATAIII Festplatten (HDDs). Hier über das Datacenter oder über die Console? Gibt es hierzu hilfreiche Dokumentation?) Im Ziel Ausbau (3-5 Jahre) möchte ich gerne 10* 12TB HDDs verbauen. Kann ich die zusätzlichen HDDs einfach im ZFS aufnehmen / erweitern (Vorausgesetzt ist das die HDDs nicht als RAID konfiguriert werden, richtig?)

- Muss ich dann eine neue Installation von Proxmox durchführen? (Oder kann ich die Installation von den Nvme sichern und im ZFS-Bereich wiederherstellen?)

- Die Nvme (SSDs) nehme ich als Read-Cache. Wie groß müssten die Nvme SSDs sein (bezogen auf den Endausbau)? Reicht eine oder muss ich diese noch durch eine zweite absichern?

- Wenn ich später eine zweiten Proxmox Server installieren möchte und diesen mit dem ersten als Cluster betreiben möchte, muss ich dann bei der Installation des ersten etwas Grundlegendes beachten?

Dann fange ich mal an, mich in ZFS einzulesen...

Nochmals vielen Dank für die Feldinformationen. Gruß von Stefan Harbich
 
Last edited:
- Woran erkenne ich Enterprise SSDs und HDDs (Schreib /-und Lesegeschwindigkeit)?
Am Vorhandensein einer "Power-Loss-Protection". Damit ist ein Stromausfall ungefährlich. Als Folge steigt die Schreibrate immens, weil nicht immer auf "fertig" gewartet werden muss. Auf Geizhals kann man sehr gut filtern: https://geizhals.de/?cat=hdssd&xf=4643_Power-Loss+Protection~4832_1~4836_2

- ZFS erstellen (Ich denke über die zwei SATAIII Festplatten (HDDs). Hier über das Datacenter oder über die Console?
"Normale" Dinge gehen alle per GUI. Das oben erwähnte "Special Device" gehört leider nicht dazu.

Kann ich die zusätzlichen HDDs einfach im ZFS aufnehmen
Du kannst "vdev"s hinzufügen. In diesen vdevs steckt die Redundanz und viel der Magie von ZFS. Meine Empfehlung ist im PVE-Kontext eindeutig "immer gespiegelt", also als Mirror. Daher kannst du anschließend einfach weitere solche Pärchen hinzufügen. (Vereinfacht ausgedrückt.)

Die Nvme (SSDs) nehme ich als Read-Cache.
Ja, das kannst du machen. Ich empfehle das ausdrücklich nicht.


Viel Spaß am Gerät :-)
 
  • Like
Reactions: Johannes S
Dazu noch eine Nachfrage:

- Wenn ich SATAIII-Festplatten einsetze, die kein PLP habe und diese im ZFS konfiguriere, wie kann ich bei einem Stromausfall dafür sorgen, dass keine Daten verloren gehen? Wozu benötige ich das „Spezial Device“ (Schreibe /-und Lese Einheit)? Wird dieses Gerät vorgeschaltet, das bei einem möglichen Stromausfall die Daten hält, oder verwechsele ich da was? Ich bin im Moment durcheinander?

- Sollte das "Spezial Device" zwingend PLP unterstützen?

- Gibt es einen Befehl, um zu prüfen, ob meine SSD / HDD PLP unterstützt?
 
Last edited:
- Wenn ich SATAIII-Festplatten einsetze, die kein PLP habe und diese im ZFS konfiguriere, wie kann ich bei einem Stromausfall dafür sorgen, dass keine Daten verloren gehen?
Alles "sync" schreiben.

Man kann das erzwingen, per zfs set sync=always mypool - aber DAS MACHT MAN NICHT!

Im Normalfall (es gibt Ausnahmen, beispielsweise Datenbanken) ist es so, dass alle Daten innerhalb von 5 Sekunden auf Platte geschrieben werden, asynchron. Der Datenverlust ist also auf diese kurze Zeitspanne begrenzt. Und dies ist unabhängig vom Vorhandensein der PLP. In diesen (maximal) 5 Sekunden existieren die vorgeblich bereits geschriebenen Daten NUR im ARC (Adaptive-Replacement-Cache), der sich wiederum im RAM befindet.

- Sollte das "Spezial Device" zwingend PLP unterstützen?
Nein, das ist nicht zwingend. Aber es ist empfohlen. Wie eigentlich für jede SSD/NVMe, nicht nur im ZFS Kontext!

- Gibt es einen Befehl, um zu prüfen, ob meine SSD / HDD PLP unterstützt?
Für praktisch jede Platte gibt es beim Hersteller Datenblätter, da steht das drin.

Viele Grüße
 
  • Like
Reactions: Johannes S and news
Hallo,
okay ich werde mich an ZFS versuchen. Bleibt die Frage welches RAID? Ich habe 10 3,5 Zoll HotSwap Einschübe. Davon sind 2 Einschübe mit jeweils 12TB SATAIII Festplatten (Seagate Enterprise Capacity 12TB 3.5 Zoll NAS Server HDD 24/7 SATA 6Gb/s 7200rpm) belegt. Ich würde mir noch 2 kaufen und dann ein RAIDZ-2 einrichten. Folgenden Befehl habe ich gefunden:
Code:
zpool create -f -a ashift=12 <Pool> raidz2 <Gerät1> <Gerät2> <Gerät3> <Gerät4>
Wie müsste der Befehl lauten wenn ich für den neuen Pool ein Cache (L2ARC) mit einer Nvme M.2 SSD einrichten würde und wie groß müsste diese SSD sein? Ich weiß auch nicht wie ich an solche Enterprise NVMe M.2 SSD komme? Habt Ihr Link's zu den NVMe?
Ich habe mir gerade größere RAM Module 2* 64GB DDR4 ECC 2400 bestellt. Ggf. erweitere ich nochmal auf weitere zwei?
 
Last edited:
und dann ein RAIDZ-2 einrichten.
Kann man machen.

Ich verwende das ebenfalls, für meine wichtigen "Eigenen Dateien". Der technische Vorteil ist natürlich wertvoll: es dürfen zwei beliebige Platten ausfallen.

Für einen allgemeinen PVE-Pool würde ich das aber sicher nicht tun. Ein Doppel-Mirror hat einfach die doppelten IOPS. In beiden Fällen bitte: plus "Special Device"

Folgenden Befehl habe ich gefunden:
Das geht auch per Web-Gui - das ist etwas stringenter und daher nicht so fehleranfällig.

...ein Cache (L2ARC) mit einer Nvme M.2 SSD
Dagegen habe ich nun im Laufe der Zeit schon hundertmal argumentiert...

Ich habe mir gerade größere RAM Module 2* 64GB DDR4 ECC 2400 bestellt.
Das ist prima! RAM ist (bei mir) immer die Resource, die zuerst am Ende ankommt :-)
 
Last edited:
  • Like
Reactions: news and Johannes S
Für einen allgemeinen PVE-Pool würde ich das aber sicher nicht tun. Ein Doppel-Mirror hat einfach die doppelten IOPS. In beiden Fällen bitte: plus "Special Device"
Damit ich das als noch Leie verstehe. Das wäre dann ein RAID10 mit 4 SSD. Special Device auf zwei NVRMe oder einer mit 2 Partitionen? Oder verwechsele ich da wieder was?
 
Damit ich das als noch Leie verstehe. Das wäre dann ein RAID10 mit 4 SSD.
Absolut richtig! Ein "Striped Mirrored ZFS pool" ist sehr ähnlich wie ein klassisches Raid10 aufgebaut.

Special Device auf zwei NVRMe
Hoppla! Wenn bereits ausschließlich SSDs verbaut sind, bringt ein SD natürlich nicht mehr so viel --> ich würde das dann wohl erstmal weglassen. Oben war von Blech-HDD plus SD die Rede - und dann ist ein SD extrem wertvoll.

Ja, ein SD sollte immer ein Spiegel sein, also ein einzelnes "mirror-vdev". (Falls man ein RaidZ2 damit versorgen will, eben ein Dreifach-Mirror, um dieselbe Redundanz zu erreichen.) Das SD ist essentiell --> wenn es versagt, ist der gesamte Pool weg. Komplett. Keine Rettung möglich.

Ein "zu großes" Special Device würde ich zum Speichern von "small blocks" vorsehen, als integraler Bestandteil des Pools. Die Konfiguration ist möglicherweise etwas trickreich, das sollte man vorher gut recherchieren - sonst bleibt es gerne dauerhaft "leer" und ungenutzt oder ist sofort voll.

...oder einer mit 2 Partitionen?
Nein! Niemals! Wenn diese eine NVMe dann ausfällt, wären ja beide Teile des Mirrors weg. Das macht überhaupt keinen Sinn...

Partitionieren, um den dann freien Platz anderweitig zu verwenden, würde ich wegen der nützlichen "small blocks" nicht. Aber es führen sicher viele Wege nach Timbuktu.


Viel Spaß am Gerät :-)
 
  • Like
Reactions: Johannes S
Oben war von Blech-HDD plus SD die Rede - und dann ist ein SD extrem wertvoll.
Das ist ja auch so. Ich glaube wir reden aneinander vorbei.
Ich habe ein Board mit 2 NVMe M.2 Steckplätzen und 10 SATAIII Steckplätzen die ich im Vollausbau belegen möchte. Zurzeit habe ich 2 SATAIII 12TB (Seagate Enterprise Capacity 12TB 3.5 Zoll NAS Server HDD 24/7 SATA 6Gb/s 7200rpm). Jetzt kaufe ich noch 2 dazu. Im Endausbau sollen es 10 sein. Was wäre jetzt am Anfang für die 4 Platten die beste Konfiguration? Wie sähe eine Erweiterung aus? Benötige ich NVMe aus dem Enterprise Segment und komme ich mit 2 aus wenn ich den Endausbau betrachte. Ich möchte nur jetzt am Anfang keinen Fehler machen. Da ich schon 2 NVMe gekauft habe die ich wohl nicht gebrauchen kann. Keine Enterprise NVRMe und schlechte Lese /- und Schreibleistung (Read 2400MBit/s und Write 1700MBit/s) als 1TB Größe.
 
Das ist ja auch so. Ich glaube wir reden aneinander vorbei.
Kann sein. Beim Verfolgen mehrere Threads geht bei mir auch gerne mal etwas durcheinander...

Ich habe ein Board mit 2 NVMe M.2 Steckplätzen und 10 SATAIII Steckplätzen die ich im Vollausbau belegen möchte. Zurzeit habe ich 2 SATAIII 12TB (Seagate Enterprise Capacity 12TB 3.5 Zoll NAS Server HDD 24/7 SATA 6Gb/s 7200rpm). Jetzt kaufe ich noch 2 dazu. Im Endausbau sollen es 10 sein. Was wäre jetzt am Anfang für die 4 Platten die beste Konfiguration?
ZFS striped mirrors. Ich habe keine Ahnung, wie das im Installer präsentiert wird. Ich würde nur die vier (oder sechs) HDD elektrisch anschließen und auf diese installieren. Nebeneffekt: alle vier/sechs sind bootfähig.

Danach die beiden NVMe einstecken und als "Special Device" präparieren. Wie bereits erläutert ist es nicht trivial die beste Konfiguration zu erwischen.
Wie sähe eine Erweiterung aus?
Die Erweiterung sollte dann jeweils paarweise geschehen. Ich bin mir gerade nicht sicher, wie dies im GUI präsentiert wird. Auf der Kommandozeile ist das ist nicht wirklich trivial: um die Bootfähigkeit aller - also auch der neuen - Platten zu erhalten sind die Partitionstabelle korrekt zu duplizieren und der boot-loader zu installieren. Im Manual findet man alles Wichtige dazu unter "Austausch einer bootfähigen ZFS-Festplatte" oder so ähnlich - auch wenn das Thema ein anderes ist.
Benötige ich NVMe aus dem Enterprise Segment
Consumer-NVMe haben nie PLP und Enterprise-NVMe/M.2 scheint es nicht viele zu geben. Im Homelab muss man manchmal nicht-empfohlene Kompromisse machen. ECC-Ram und Enterprise-NVMe sind Kandidaten dafür.
und komme ich mit 2 aus wenn ich den Endausbau betrachte.
Die Kapazität des SD darf klein sein! 0.1% bis 1% sind genug. Das schwankt drastisch, manche empfehlen daher 2%. Für deine 60 TB genügt vermutlich ein Mirror aus zweimal 1 TB, nach meiner nicht-repräsentativen Erfahrung genügen bereits 200GB. Falls das SD irgendwann mal voll sein sollte, geschieht nichts schlimmes - die Metadaten landen dann wieder auf den normalen Platten. Und natürlich kann man die NVMe später - ohne Datenverlust - gegen Größere austauschen.

(( Meine eigenen SD belegen ~0.3 %. Zumindest, als ich das erstmals so aufgebaut hatte. Der Rest der viel zu großen SSDs blieb leer. Daher versuche ich nun immer den "Trick" mit den "small_blocks" zu aktivieren. ))

Da ich schon 2 NVMe gekauft habe die ich wohl nicht gebrauchen kann.
Nimm sie erst einmal! Und beobachte die Smart-Daten regelmäßig. Monitoring ist sowieso Pflicht, ebenso wie regelmäßige und automatische Backups.


Wie du siehst, gibt es eine Menge Facetten. Es gibt darum auch nicht eine einzige richtige Empfehlung, sondern immer diverse Wege. Meine Erläuterungen basieren ausschließlich auf meinen Erfahrungen. Ymmv!
 
  • Like
Reactions: news and Johannes S
Bevor ich mich jetzt an mein System wage die letzten Fragen:
- Ich werden ein ZFS Mirror (RAID1) mit zwei 12 TB SATAIII Festplatten und ein Spezial Device mit einer NVRMe (Enterprise SSD) erstellen.
- Wenn ich jetzt ein weiters ZFS Mirror (RAID1) mit weiteren zwei 12 TB SATAIII Festplatten und ein Spezial Device erstelle, kann ich dann das Spezial Device von oben verwenden? Sprich auf das oben und hier genannte Spezial Device mehrere Partitionen erstellen? Gut wenn die NVRMe ausfällt oder kaputt ist, dann ist alles zerstört. Aber ich könnte das Spezial Device ja auch spiegeln, oder geht das nicht?
 
Last edited:
Hallo Niemals nur eine Speichermedium für ein ZFS Special Device, es muss keine NVMe sein.
Selbst ein langsameres MLC Device, als ZFS 2-fachMirror Special Device reicht.
Denn ist die NVMe ZFS Special Device weg, dann ist der gesamte Pool verloren!
Man kann einfach mit ZFS ein weiteres VDEV der gleichen Kategorie hinzufügen.
ZFS Special Device ist immer da und wird nicht verändert.

Bitte das gesamte Handbuch mal verinnerlichen:
# https://openzfs.github.io/openzfs-docs/man/master/8/zfs-create.8.html
# https://openzfs.github.io/openzfs-docs/man/master/8/zpool-add.8.html
# https://openzfs.github.io/openzfs-docs/man/master/8/zpool-attach.8.html
# https://openzfs.github.io/openzfs-docs/man/master/8/zpool-detach.8.html
# https://openzfs.github.io/openzfs-docs/man/master/8/zpool-replace.8.html

* ZFS Management *
# https://openzfs.github.io/openzfs-docs/man/master/8/zpool-trim.8.html
# https://openzfs.github.io/openzfs-docs/man/master/8/zpool-scrub.8.html
 
Last edited: