Neuer USER :) Div. Fragen

f!R3W4LL

Member
Jul 14, 2021
34
2
13
36
Hi Guyz ^^

Gerne würde ich mich bei den Fachleuten um rat/erfahrungstausch melden ;) bin nämlich neulich auf Proxmox gestossen und dachte würde dies gerne Kennenlernen.

Meine Hardware:
MOBO: Asrock X570D4U-2l2t
RAM: Kingston 64GB ECC Ram
SSD: WD Black 500GB NVME SN750
HDD; 4x8TB Seagate IronWolf

Kürzlich hab ich Proxmox auf der SSD installiert und dies so belassen. Einige VM's installiert zum Testen unter anderem truenas installiert und die HDD's an Truenas durchgereicht und einen ZFS Pool erstellt. Nun lese ich jedoch, dass Proxmox Consumer SSD schnell killen kann. Und dies möchte ich vermeiden ;) Da der Server für div. Gameserver inkl. Datashare konfiguriert wird, möchte ich nicht das OS mit allen VM's auf einmal verlieren :p

Nun frage ich mich, kann ich meine SSD so belassen oder soll ich alles anders konfigurieren? Z.B 2x NVMe in Mirror

Glaube die aktuelle Konfiguration der SSD ist LVM oder so was ähnliches.

Zudem was mir noch ein wenig schwer fiel, ist die Ethernet ports zu trunken. Den ich möchte wie bei VMWare die 3 RJ45 zusammenführen damit die Last auf den 3 verteilt wird. Den 4. Anschluss wird an die DMZ der Firewall angeschlossen.

Gibts irgendwo eine gute Anleitung mit step to step was zu beachten bei der konfiguration?
 
Moin,

privat fahre ich auch ein System, auf dem OS und VM Store auf einer SSD liegen. Zur Sicherheit habe ich aber auch noch einen PBS am laufen. Im Notfall lassen sich so meine nicht so großen VMs schnell wieder herstellen.

Geschäftlich trenne ich OS und VM Store. Da haben wir aber auch keine Konsumenten SSDs sondern Enterprise im CEPH,...
Warum fast du die 4 HDDs nicht zu einem Store zusammen und da kommen dann alle VMs drauf? Die SSD ist dann nur noch für's OS.

Und wenn die Schreibleistung auf die SSD geringer ist, altert sie auch nicht so stark.
Ansonsten kannst Du ja auch die SSD mit smart überwachen und im Notfall Maßnahmen ergreifen.

Grüße

Gregor
 
Hoi Gregor

Besten Dank für deine Antwort :)

Kannst du kurz PBS erklären?

Geschäftlich trenne ich OS und VM Store. Da haben wir aber auch keine Konsumenten SSDs sondern Enterprise im CEPH,...
Warum fast du die 4 HDDs nicht zu einem Store zusammen und da kommen dann alle VMs drauf? Die SSD ist dann nur noch für's OS.
Die HDDs sind im Truenas zu einem Store zusammen gefast. Dort lege ich alle Daten ab.

Ich könnte auch im 2. NVMe slot eine weitere SSD hinzufügen und die VM's dort ablegen?!
 
Ich meinte dass Du die HDDs im PVE über z.B. ZFS zusammenfasst und als Store benutzt.
auf dem VM Store dann deine VM inklusive TrueNAS aufsetzt.

Es klingt für mich so, dass Du die HDDs ja direkt in trueNAS einbindest.
 
Ich meinte dass Du die HDDs im PVE über z.B. ZFS zusammenfasst und als Store benutzt.
auf dem VM Store dann deine VM inklusive TrueNAS aufsetzt.

Es klingt für mich so, dass Du die HDDs ja direkt in trueNAS einbindest.
Sofern die auch richtig durchgereicht sind (PCI Passthrough vom HBA statt virtualisiert über "qm set") ist das ja auch kleine schlecht Idee das so zu machen wie er es gemacht hat. So gibt es wenigstens keinen Overhead weil nichts virtualisiert wird und und es auch keinen Mix von Blockgrößen gibt.
Ich könnte auch im 2. NVMe slot eine weitere SSD hinzufügen und die VM's dort ablegen?!
NVMe rein für das Proxmox-System finde ich eigentlich viel zu schade. Da tut es zur Not auch eine Consumer SSD. Mehr als 30GB am Tag schreibt Proxmox ja nicht. Für den VM Storage wäre aber in der tat eine Enterprise SSD empfehlenswert. Da gibt es aber keine brauchbaren halbwegs großen M.2 SSDs (die paar die es gibt haben alle eine grottige Haltbarkeit und sind rein für Leseintensive Workloads ausgelegt), da müsstest du schon nach U.2 und einen M.2 zu U.2 Adapter gucken.

Ist halt auch immer die Frage was du da genau für Workloads hast. Neben besserer Haltbarkeit sind gute Enterprise SSDs auch viel performanter (z.b. 50 und mehr für für Random 4K Sync Writes). Für Spielserver aber vermutlich eher nicht so wild.
 
Sofern die auch richtig durchgereicht sind (PCI Passthrough vom HBA statt virtualisiert über "qm set") ist das ja auch kleine schlecht Idee das so zu machen wie er es gemacht hat. So gibt es wenigstens keinen Overhead weil nichts virtualisiert wird und und es auch keinen Mix von Blockgrößen gibt.

NVMe rein für das Proxmox-System finde ich eigentlich viel zu schade. Da tut es zur Not auch eine Consumer SSD. Mehr als 30GB am Tag schreibt Proxmox ja nicht. Für den VM Storage wäre aber in der tat eine Enterprise SSD empfehlenswert. Da gibt es aber keine brauchbaren halbwegs großen M.2 SSDs (die paar die es gibt haben alle eine grottige Haltbarkeit und sind rein für Leseintensive Workloads ausgelegt), da müsstest du schon nach U.2 und einen M.2 zu U.2 Adapter gucken.

Ist halt auch immer die Frage was du da genau für Workloads hast. Neben besserer Haltbarkeit sind gute Enterprise SSDs auch viel performanter (z.b. 50 und mehr für für Random 4K Sync Writes). Für Spielserver aber vermutlich eher nicht so wild.
Ja hab die Festplatten direkt ohne virtualisierung ;)

Ja weiss, aber leider war dies das einzige was ich noch hatte ;) aktuell liegt es mir nicht drin Enterprise SSD zu kaufen ;)

Hab kürzlich einen Benchmark mit Crystaldiskmark durchgeführt und stelle fest dass die MB's gar nicht erreicht werden von der SSD..... Nur ca 800mb/s statt irgendwie 3500 read und 1500 write..... Woran könnte es scheitern?
 
CrystalDiskMark kannst du eh vergessen weil du damit nur deinen RAM misst aber nicht die SSD. Je nach Workload wird es vermutlich sogar runter bis zu irgendwas zwischen 10 und 100MB/s gehen. Versuch mal lieber fio auf dem Host selbst. Z.B. mit sowas wenn du ein Worst-Case-Szenario bei deiner SSD haben willst:
fio --rw=randwrite --name=IOPS-write --bs=4k --direct=1 --filename=/mnt/DeineSSD/test.file --sync=1 --ioengine=libaio --numjobs=1 --iodepth=1 --refill_buffers --runtime=60 --time_based --name=sync-IOPS-write
 
Last edited:
Einzige was ich probieren konnte ist dies:
test: (g=0): rw=rw, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=libaio, iodepth=1
fio-3.16
clock setaffinity failed: Invalid argument
Starting 1 process
Jobs: 1 (f=1)
test: (groupid=0, jobs=1): err= 0: pid=10640: Thu Jul 15 18:14:09 2021
read: IOPS=429, BW=430MiB/s (451MB/s)(432MiB/1005msec)
slat (usec): min=39, max=113, avg=80.55, stdev= 9.61
clat (usec): min=453, max=4714, avg=1447.76, stdev=1360.74
lat (usec): min=516, max=4795, avg=1528.50, stdev=1361.21
clat percentiles (usec):
| 1.00th=[ 457], 5.00th=[ 486], 10.00th=[ 652], 20.00th=[ 660],
| 30.00th=[ 668], 40.00th=[ 668], 50.00th=[ 717], 60.00th=[ 750],
| 70.00th=[ 996], 80.00th=[ 3130], 90.00th=[ 4047], 95.00th=[ 4178],
| 99.00th=[ 4424], 99.50th=[ 4424], 99.90th=[ 4686], 99.95th=[ 4686],
| 99.99th=[ 4686]
bw ( KiB/s): min=436224, max=446464, per=100.00%, avg=441344.00, stdev=7240.77, samples=2
iops : min= 426, max= 436, avg=431.00, stdev= 7.07, samples=2
write: IOPS=465, BW=466MiB/s (488MB/s)(468MiB/1005msec); 0 zone resets
slat (usec): min=40, max=129, avg=89.42, stdev=12.05
clat (usec): min=598, max=1109, avg=644.06, stdev=39.29
lat (usec): min=649, max=1168, avg=733.67, stdev=39.40
clat percentiles (usec):
| 1.00th=[ 603], 5.00th=[ 611], 10.00th=[ 619], 20.00th=[ 635],
| 30.00th=[ 635], 40.00th=[ 644], 50.00th=[ 644], 60.00th=[ 644],
| 70.00th=[ 644], 80.00th=[ 644], 90.00th=[ 652], 95.00th=[ 660],
| 99.00th=[ 881], 99.50th=[ 898], 99.90th=[ 1106], 99.95th=[ 1106],
| 99.99th=[ 1106]
bw ( KiB/s): min=475136, max=477184, per=99.86%, avg=476160.00, stdev=1448.15, samples=2
iops : min= 464, max= 466, avg=465.00, stdev= 1.41, samples=2
lat (usec) : 500=3.56%, 750=76.00%, 1000=6.33%
lat (msec) : 2=3.11%, 4=5.22%, 10=5.78%
cpu : usr=0.80%, sys=7.37%, ctx=907, majf=0, minf=13
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwts: total=432,468,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
READ: bw=430MiB/s (451MB/s), 430MiB/s-430MiB/s (451MB/s-451MB/s), io=432MiB (453MB), run=1005-1005msec
WRITE: bw=466MiB/s (488MB/s), 466MiB/s-466MiB/s (488MB/s-488MB/s), io=468MiB (491MB), run=1005-1005msec

Nun keine Ahnung ob die Werte gut sind xD! Müssten aber am schluss bei READ & WRITE nicht mehr als 400MiB/s stehen?
 
Du musst schon gucken das du --sync=1 und --direct=1 als Argumente dabei hast. Sonst misst du nur den RAM weil dann asynchrone Zugriffe stattfinden. Zwischen SSD und Gast-OS wird sonst ja noch einmal im Gast RAM, einmal im Host RAM und noch einmal im RAM der SSD gecacht.
Machst du Sync Writes kann nichts gecacht werden (jedenfalls nicht ohne eine Powerloss Protection in der SSD oder ein HW Raid mit BBU) und dann siehst du die echte Schreib/Leserate.
Und mit einer Blocksize von 1MB misst du eigentlich nur den Durchsatz. Bei einem Server sind aber die IOPS/Latenz viel interessanter.
Also man will lieber wissen was man denn immer mindestens bekommt und nicht was man theoretisch maximal bekommen könnte.
 
Last edited:
Was wäre dann den besten Befehl hierfür?
fio --rw=randwrite --name=IOPS-write --bs=4k --direct=1 --filename=/dev/nvme0n1/test.file --sync=1 --ioengine=libaio --numjobs=1 --iodepth=1 --refill_buffers --runtime=60 --time_based --name=sync-IOPS-write
Dies hab ich probiert, ergibt jedoch immer einen fehler:

fio-3.16
clock setaffinity failed: Invalid argument
Starting 2 processes
file:filesetup.c:350, func=fstat, error=Not a directory
fio: pid=0, err=20/file:filesetup.c:350, func=fstat, error=Not a directory
sync-IOPS-write: you need to specify size=
fio: pid=0, err=22/file:filesetup.c:1007, func=total_file_size, error=Invalid argument
 
Sorry, hatte den Size Parameter vergessen. Also hiermit sieht es bei mir so aus (5x SATA enterprise SSDs als raidz1):
Code:
fio --rw=randwrite --name=IOPS-write --bs=4k --direct=1 --sync=1 --ioengine=libaio --numjobs=1 --iodepth=1 --refill_buffers --runtime=60 --time_based --size=1G  --filename=/VMpool7/test.file && rm /VMpool7/test.file

WRITE: bw=8172KiB/s (8368kB/s), 8172KiB/s-8172KiB/s (8368kB/s-8368kB/s), io=479MiB (502MB), run=60001-60001msec
Meine 5 SSDs zusammen schaffen da also 8 MB/s. Zeigt mal wieder das Raidz1 nicht gerade ideal als VM Storage ist. Weil das entspricht auch etwa dem, was da mein mdadm raid1 array aus 2 SSDs erreicht (8209 KiB/s).

Wenn man wissen will was der maximale Schreibdurchsatz (mit Caching) wäre, dann kann man z.B. sowas nehmen:
Code:
fio --rw=write --name=async_throughput --bs=1024k --ioengine=libaio --numjobs=4 --iodepth=32 --refill_buffers --runtime=60 --time_based  --size=1G --filename=/VMpool7/test.file && rm /VMpool7/test.file

WRITE: bw=407MiB/s (427MB/s), 95.0MiB/s-111MiB/s (99.7MB/s-117MB/s), io=23.9GiB (25.6GB), run=60016-60021msec

Und hier nochmal der maximale Durchsatz, aber diesmal als Sync Write ohne Caching:
Code:
fio --rw=write --name=sync_throughput --bs=1024k --sync=1 --direct=1 --ioengine=libaio --numjobs=4 --iodepth=32 --refill_buffers --runtime=60 --time_based  --size=1G --filename=/VMpool7/test.file && rm /VMpool7/test.file

WRITE: bw=166MiB/s (174MB/s), 40.0MiB/s-43.1MiB/s (41.0MB/s-45.2MB/s), io=9971MiB (10.5GB), run=60214-60234msec

Wichtig ist bei Filename in eine Datei zu schreiben (wie "/mnt/DeinMountpoint/test.datei") und nicht direkt auf ein Device wie "/dev/sda" weil du sonst alle Daten auf der SSD zerstörst. Aussagekräftiger wäre es schon wenn man direkt auf das Device schreibt, aber das geht dann halt nur mit leeren SSDs.

Je nach Workload liegt da bei mir also die maximale Schreibleistung zwischen 8 MiB/s und 407 MiB/s.
Datenbanken und Co würden eher Richtung max 8 MiB/s gehen.
Transfer von großen Dateien wie Videos innerhalb des Server eher Richtung max 407 MiB/s.
Gemischte Workloads wohl irgendwas dazwischen.

Nur weil deine SSD als "bis 3000 MB/s" verkauft wird heißt das nicht, dass die das auch bei allen Workloads schafft. Kann da sogar durchaus sein, dass da sogar meine SATA SSD mit 8MB/s schneller wäre.

Und nicht vergessen das deine SSD SLC Caching nutzt. Je voller die SSD ist, desto langsamer wird sie, da nur leerer Speicherplatz als SLC Cache genutzt werden kann. Will man da also das wirkliche Worst-Case-Szenario haben müsste man die SSD einmal zu 95% oder so füllen und dann den fio test deutlich länger als 1 Minute laufen lassen, dass da auch wirklich der Cache überfordert ist.
 
Last edited:
Hoi Dunin

Besten Dank für die Parameter, werde dies gerne probieren.

Ist recht interessant: Ich komme soeben von ESXi zu Proxmox, finde passt für mein Usecase besser vor allem auf Cluster Hinsicht und Docker Container.

Was mir sofort auffiel: Meine VM's trotz der sagen wir mal die gleichen Config, fühlen sich etwas langsamer an. Nun weiss ich nicht ob es mein Gefühl ist oder es fix so ist.

Wenn dann mehrere VM's laufen wäre ich einfach froh wenn das Ganze nicht gebremst wird und nur bei meinem Gefühl bleibt. Aber dass ist eben aktuell was ich einschätzen muss.

Die Daten werden danach bei Truenas mit den 4x8TB HDDs eingebunden. Die VM's erhalten danach zugriff falls nötig ist drauf, wie z.B Plex.
Aber die VM's werden alle auf der SSD oder respektiv auf die 2. NVME konfiguriert, grosse Daten, bis auf die ISO's landen keine auf den NVME.
 
Nun ja..... nu hab ich alles Probiert..... erhalte einfach wirklich groootten schlechte Performance mit den VM's
Installation von ubuntu dauert einfach nur ewig -.- und irgendwie langsam hab ich einfach zu viel nerven verloren :(

die IOs auf der Festplatte egal ob NVME oder SSDs gehen nicht mehr als 40mb/s bei installation..... egla wie viel ram oder CPU leistung ich gebe..... es ist einfach nur langsam :(

Ist echt schade, sehe in Proxmox eigentlich alles richtig was ich brauchen würde...... aber so langsam hab ich es mir echt nicht vorgestellt :(
 

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!