kernelmaker
Goto Top

PCIe NVMe RAID - Welchen Hypervisor ?

Hallo zusammen,
ich würde gern meinen Server aufrüsten, da mir die Festplatten Performance mittlerweile zu gering ausfällt.
Bei der Umsetzung gibt es leider ein paar Stolpersteine. Daher wollte ich mal ein paar Erfahrungen einholen...
back-to-topHardware ++++
2x Intel Xeon E5-2630 V4, 128GB RAM
ASRockRack Server Board C612
back-to-topPCIe Controller +++++
  • 1x LSI 9260-8i (6x SAS 300GB 10k als RAID 10)
  • 2x LSI 9240-8i (IT Mode für Passthrough: 9x Seagate 8TB, 2x 250GB SSD)
  • 1x 4 Port Intel Gigabit Adapter
  • 1x 2 Port Intel 10G Adapter
back-to-topSoftware ++++
Als Hypervisor läuft aktuell ESXi 6.7 U3.
back-to-topVirtuelle Maschinen +++++
  • pfsense als Router
  • Synology DSM als NAS
  • Einige Windows und Linux (Exchange, Webserver etc.)
  • Unifi Controller

back-to-topPlanung ++++
Geplant ist, das SAS RAID 10 durch vier SSDs als RAID 10 zu ersetzen.
Hierfür gibt es folgenden Adapter: https://www.asus.com/Motherboard-Accessories/HYPER-M-2-X16-CARD-V2/
Damit lassen sich vier M.2 SSDs an einem x16 PCIe Slot betreiben, sofern die Hardware PCIe Bifurcation unterstützt.

back-to-topNun zum Problem: ++++
ESXi unterstützt kein Software RAID. Daher wäre bei der Nutzung von M.2 SSDs ein kompatibler NVMe Hardware RAID Controller nötig. Kostenpunkt 800€ aufwärts.
Das ist mir zu teuer. Theoretisch könnte man auch jeder VM (wenn RAID benötigt) vier virtuelle Festplatten zuweisen, die dann auf jeder SSD einzeln liegen. Ich denke aber nicht, dass das der optimale Weg ist, auch im Hinblick auf die Performance (Overhead etc.). Intel VROC gäbe es noch, was allerdings die Intel C612 Plattform nicht unterstützt.
Gibt es noch andere Lösungsansätze bei ESXi?

Nun gibt es natürlich auch noch andere Hypervisor-Systeme wie z.B. Proxmox.
Hier wäre ein NVMe RAID mit vier SSDs ohne Probleme möglich. Mit Proxmox habe ich allerdings noch nicht viel gemacht. Daher auch hier die Frage, ob das schon mal jemand so umgesetzt hat. Was geht, was geht nicht im Vergleich zu ESXi. Außerdem: Wie sieht es mit der Performance aus? VMware macht hier schon einen sehr guten Job.

Vielen Dank im Voraus!
Gruß

Content-ID: 574150

Url: https://administrator.de/forum/pcie-nvme-raid-welchen-hypervisor-574150.html

Ausgedruckt am: 27.12.2024 um 00:12 Uhr

tech-flare
tech-flare 22.05.2020 aktualisiert um 17:36:59 Uhr
Goto Top
Gibt es noch andere Lösungsansätze bei ESXi?
Hyper-V? Entweder als GUI oder als Core! Als Core Variante benötigst du nicht mal eine Lizenz zusätzlich

Ps.: Wenn möglich setzt ich immer ESXI oder Hyper-V. PRoxmox nur im Notfall. Aber da hat jeder seine eigene Meinung
KernelMaker
KernelMaker 22.05.2020 um 17:59:04 Uhr
Goto Top
Ich würde auch gern weiterhin auf ESXi setzen. Das läuft wirklich super.
Nur geht da eben kein Software RAID.

Hyper-V wäre auch eine Option. Hier ist aber die Frage, ob das PCIe Passthrough und Xpenology laufen.
Luckysh0t
Luckysh0t 22.05.2020 um 19:08:39 Uhr
Goto Top
Es gibt Nutzer, die verwenden eine Storage VM.Dh.der Storage (egal ob HDD, SSD) wird per passtrough (SAS HBA, Pcie x16 zu 4 m.2 Karte etc.)an eine VM durchgreicht und diese verwaltet dann den Storage -> vorzugsweise eine mit ZFS.Hier wird dann der entsprechende Raid Level aus den einzelnen Datenträgern gebildet und als Pool zusammengefasst.Aufr diesem werden dann entsprechende Dateisysteme erstellt.Diese werden dann per NFS/iSCSI je nach dem was man braucht an vSphere zurückgegeben.Hierrauf kommen dann die VMs.

Die Storage VM muss natürlich auf einen Store, der direkt am ESXI ist.
tech-flare
tech-flare 22.05.2020 um 19:29:14 Uhr
Goto Top
Zitat von @Luckysh0t:

Es gibt Nutzer, die verwenden eine Storage VM.Dh.der Storage (egal ob HDD, SSD) wird per passtrough (SAS HBA, Pcie x16 zu 4 m.2 Karte etc.)an eine VM durchgreicht und diese verwaltet dann den Storage -> vorzugsweise eine mit ZFS.Hier wird dann der entsprechende Raid Level aus den einzelnen Datenträgern gebildet und als Pool zusammengefasst.Aufr diesem werden dann entsprechende Dateisysteme erstellt.Diese werden dann per NFS/iSCSI je nach dem was man braucht an vSphere zurückgegeben.Hierrauf kommen dann die VMs.

Die Storage VM muss natürlich auf einen Store, der direkt am ESXI ist.

Da hast du aber das Henne / Ei Problem.

Und wenn die eine VM eine Macke hat, laufen alle anderen VM auch nicht.
tech-flare
tech-flare 22.05.2020 um 19:29:44 Uhr
Goto Top
Zitat von @KernelMaker:

Ich würde auch gern weiterhin auf ESXi setzen. Das läuft wirklich super.
Nur geht da eben kein Software RAID.

Hyper-V wäre auch eine Option. Hier ist aber die Frage, ob das PCIe Passthrough und Xpenology laufen.

Xpenology ja,
PCIe passtrough nein.
tech-flare
tech-flare 22.05.2020 um 19:33:18 Uhr
Goto Top
Zitat von @KernelMaker:

Ich würde auch gern weiterhin auf ESXi setzen. Das läuft wirklich super.
Nur geht da eben kein Software RAID.

Hyper-V wäre auch eine Option. Hier ist aber die Frage, ob das PCIe Passthrough und Xpenology laufen.

Den LSI 9460 bekommt man in der Bucht für 350-400€.

Der unterstützt NVMe SSD
Luckysh0t
Luckysh0t 22.05.2020 aktualisiert um 19:51:02 Uhr
Goto Top
@wuebra

Das hat man bei einem HW Raid Controller auch, oder bei jedem anderen SW RAID.
Wenn die Zentrale Kopmonente hops geht steht meistens alles.Und der TO hat wohl weder ein vSphere Cluster noch ein Storage Cluster um dies abzufangen ^^

Sollte es im privaten Umfeld sein, könnte man Solaris nutzen ggf. OmniOS, wenn man tatsächlich etwas freies nutzen möchte .Die gehören so mit zu den stabilsten OS die ich kenne - wenn man mal vom verbugten AES-NI Support von OmniOS absieht (Die Performance mit verschlüsselten Filesystemen ist unterirdisch) xD

Und nach der initialen Einrichtung fast man diese nicht mehr an - außer man möchte den Storage erweitern etc.
Und möchte man eine WebGUI gibt es für genannte Derivate z. nappit zum nachinstallieren.Danach müssten diese VMs nicht mal mehr eine Verbindung ans Internet haben - nur zum Host/LAN.
KernelMaker
KernelMaker 23.05.2020 aktualisiert um 02:36:29 Uhr
Goto Top
Zitat von @Luckysh0t:

Es gibt Nutzer, die verwenden eine Storage VM.Dh.der Storage (egal ob HDD, SSD) wird per passtrough (SAS HBA, Pcie x16 zu 4 m.2 Karte etc.)an eine VM durchgreicht und diese verwaltet dann den Storage -> vorzugsweise eine mit ZFS.Hier wird dann der entsprechende Raid Level aus den einzelnen Datenträgern gebildet und als Pool zusammengefasst.Aufr diesem werden dann entsprechende Dateisysteme erstellt.Diese werden dann per NFS/iSCSI je nach dem was man braucht an vSphere zurückgegeben.Hierrauf kommen dann die VMs.

Die Storage VM muss natürlich auf einen Store, der direkt am ESXI ist.

Auf die Idee bin ich noch gar nicht gekommen ;) Eigentlich clever
Und das funktioniert gut? Wie ist da die Performance?
Ich kann es einfach mal ausprobieren wenn die neuen SSDs da sind. Das wäre sogar im aktuellen System "Plug 'n Play" zu testen.
Das ist dann schon eine Ansage: Über die virtuelle Netzwerkkarte der Storage VM und den VMKernel Port von ESXi müssten dann ~ 40 Gbit/s Bandbreite (vielleicht sogar mehr) zur Verfügung stehen.

Wie verhält sich das mit der Startreihenfolge? ESXi wäre vor der Storage VM hochgefahren und erwartet daher bereits das iSCSI Drive mit den VM-Daten.

Zitat von @tech-flare:
Xpenology ja,
PCIe passtrough nein.
Schade. Aber dann müsste man jede Festplatte einzeln durchreichen. Das Passthrough ist eigentlich eine feine Sache.
Ich habe mal das Passthrough von Hyper-V 2016 und 2019 über die Powershell angeschaut. Aber das ist ja dermaßen kompliziert.

Zitat von @tech-flare:

Den LSI 9460 bekommt man in der Bucht für 350-400€.

Der unterstützt NVMe SSD
Allerdings dann keine M.2 Slots oder? Hier würden nur die professionellen SSDs laufen oder man braucht SFF Kabel + U.2 auf M.2 Adapter.
Wie ist die Performance über vier PCIe SSDs? Das Limit durch den x8 Port des Controllers wäre ~ 8 GiB/s
Luckysh0t
Luckysh0t 23.05.2020 aktualisiert um 09:22:50 Uhr
Goto Top
Zitat von @KernelMaker:

Auf die Idee bin ich noch gar nicht gekommen ;) Eigentlich clever
Und das funktioniert gut? Wie ist da die Performance?
Ich kann es einfach mal ausprobieren wenn die neuen SSDs da sind. Das wäre sogar im aktuellen System "Plug 'n Play" zu testen.
Das ist dann schon eine Ansage: Über die virtuelle Netzwerkkarte der Storage VM und den VMKernel Port von ESXi müssten dann ~ 40 Gbit/s Bandbreite (vielleicht sogar mehr) zur Verfügung stehen.

Wie verhält sich das mit der Startreihenfolge? ESXi wäre vor der Storage VM hochgefahren und erwartet daher bereits das iSCSI Drive mit den VM-Daten.



Du musst halt der VM schon etwas RAM geben, da ZFS diesen u.a als Schreibcache nutzt.Aber ab 16 GB sollte ausreichen - mehr kann man immer noch geben, wenn vorhanden und man Engpässe bemerkt.Nicht wunder, der RAM wird quasi komplett belegt, also wird ESXi durchaus meckern xD.


Ich würde als Anbindung NFS empfehlen, anstelle von iSCSI.Wenn du die Snapshots von ZFS nutzt kannst du so über "vorherige Versionen" aus dem Windowskontextmenü einzelnde Ordner/Dateien etc bequem wiederherstellen.Musst es nur eben auch in Windows einbinden (SMB/CIFS) und Snapshots nutzen.Funktioniert natürlich auch für FIlesysteme die tatsächlich Nutzdaten beinhalten.Dieses Storage stellt dann auf entsprechenden Pools VM Store und Nutzdaten für Clients im Lan bereit.Deine XPEnology VM ist somit eigentlich auch nicht mehr nötig, wenn du nichtgerade spezifische DSM Programme nutzt.


Ein Kumpel nutzt dass so, und wir haben da nicht wirklich Probleme festgestellt mit dem Start.Ist halt Sinnvoll der Storage VM einen Autostart einzutragen und die anderen dann manuel zu starten - ob dass dann nun per GUI oder PowerCLI per script von deinem Client ist egal.Hauptsache der Storage ist da ^^
KernelMaker
KernelMaker 23.05.2020 um 13:29:25 Uhr
Goto Top
Das klingt sehr gut.
16 GB ist natürlich schon viel. Dann werde ich wohl um ein RAM Upgrade nicht herum kommen face-smile
Aber kostet zum Glück nicht mehr viel.

Wenn man es genau betrachtet, könnte Xpenology weg. Aber die schöne Oberfläche ist schon praktisch. Man will ja nicht immer alles per Shell erledigen.

Im Grunde könnte ich auch FreeNAS dafür nutzen. Das kann ja ZFS etc. und bietet auch NAS Funktionen wie DSM.
Allerdings wäre es wohl sinnvoller, möglichst wenig in der Storage VM zu arbeiten. Wenn das dann noch vollgepackt mit Paketen wie Plex usw. ist...
Die Storage VM sollte immer laufen. Am Internet muss die dann auch nicht unbedingt hängen. Einfach nur ein vSwitch zwischen ESXi Kernel und der Storage VM.
GrueneSosseMitSpeck
GrueneSosseMitSpeck 23.05.2020 aktualisiert um 14:27:26 Uhr
Goto Top
Zitat von @KernelMaker:

back-to-topPlanung ++++
Geplant ist, das SAS RAID 10 durch vier SSDs als RAID 10 zu ersetzen.
Hierfür gibt es folgenden Adapter: https://www.asus.com/Motherboard-Accessories/HYPER-M-2-X16-CARD-V2/
Damit lassen sich vier M.2 SSDs an einem x16 PCIe Slot betreiben, sofern die Hardware PCIe Bifurcation unterstützt.


++++ Nun zum Problem: ++++
ESXi unterstützt kein Software RAID. Daher wäre bei der Nutzung von M.2 SSDs ein kompatibler NVMe Hardware RAID Controller nötig. Kostenpunkt 800€ aufwärts.

Das ist mir zu teuer. Theoretisch könnte man auch jeder VM (wenn RAID benötigt) vier virtuelle Festplatten zuweisen, die dann auf jeder SSD einzeln liegen. Ich denke aber nicht, dass das der optimale Weg ist, auch im Hinblick auf die Performance (Overhead etc.). Intel VROC gäbe es noch, was allerdings die Intel C612 Plattform nicht unterstützt.

Gibt es noch andere Lösungsansätze bei ESXi?

Schuster bleib bei deinen Leisten... der Hyper M2 Adapter hat phantastische Stornoquoten weil der zu den allermeisten Mainboards inkompatibel ist, selbst wenn die Boards "Bifurcation" könnten funkioniert der Adapter nicht auf Multi-CPU Boards.

VROC setzt dem gewissermaßen noch eine Krone auf, aber wenn man mal die Füße auf dem Boden lassen will... scheinbar sollte das nicht allzuviel kosten, und dann würd ich die NVME Geschichte mal ganz schnell wieder vergessen, und ein paar SSD SATA Disks an den vorhandenen Controller anschließen, falls er abwärtskompatibel zu SATA ist.

NVME ist kein Allheilmittel für Festplattenperformance-Probleme - analysier erstmal deine Probleme bevor du direkt mal was mit NVME machst. Datenbankserver mögen keine hohen Latenzen, Fileserver wiederum benötigen Datendurchsatz bis an die Leistungsgrenze des Ethernetadapters im Client... das solltest du erstmal genauer auseinanderfriemeln.

Und schaut man mal ganz in die Tiefe, dann stellt man fest, daß die 3,5 GB/Sekunde Datentransferrate bei einer NVME Disk nur aus dem mit DRAM in der NVME Disk abgedeckten Cache erzielbar sind, das sind dann 5-10% der Gesamtkapazität. Danach fallen auch NVMEs auf drei Geschwindgkeitsstufen herab, die oft so mit 500 MB/Sec, dann 250 MB/sec und 120 MB/Sec liegen bei TLC, die mit QLC haben noch einen Gang mehr nach "unten" und sind dann bei 60 zuende wie die 970 QVO von Samsung.

Im harten Serverbetrieb, wo man konstante Performance braucht, verwendet man dann auch SLC, und die sind dann gleich richtig teuer. Die Intel Optane 1 TB als SLC Version kostet deshalb auch vierstellige Beträge, hat dafür aber auch sechsstellige TBW Werte. Aber du knauserst ja shcon mit dem 800 Euro teuren Controller... wie gesagt hol dir SATAt SSDs oder SAS SSDs für den vorhandenen Controller.

Zum Rumspielen gibts einzelne Adapter für m.2 (z.B. das Icybox ist kompatibel zu ESX 6.7) und nimm dann eine anstänidge m.2 Platte, die Billigteile haben noch so allerlei Kinderkrankzeiten, die werden heiß, verschwinden sporadisch ausm Bios u.s.w., da würde ich eher zu einer guten SSD tendieren. Ich selbst hab EINE Samsung Evo 970 in einem Icybox Adpater unter ESXI 6.7 und der ist zentral als Storage im Hypervisor verfügbar... im Vergleich zu einer SATA SSD war z.B. eine SAP Installation viermal so schnell fertig und die Datenbnakperformance bei sequenziellen Zugriffen auf nicht gecachten Inhalt sind noch mal doppelt so schnell weil NVME nun mal ein direkter Zugriff der CPU auf den Flash-Speicher ist, wohingegen bei SATA und SAS eine ganze Menge Protokoll-Overhead mit im Spiel ist.
KernelMaker
KernelMaker 23.05.2020 aktualisiert um 15:59:32 Uhr
Goto Top
Zitat von @GrueneSosseMitSpeck:

Schuster bleib bei deinen Leisten... der Hyper M2 Adapter hat phantastische Stornoquoten weil der zu den allermeisten Mainboards inkompatibel ist, selbst wenn die Boards "Bifurcation" könnten funkioniert der Adapter nicht auf Multi-CPU Boards.

Das habe ich auch schon gelesen. Die Kompatibilität ist ziemlich eingeschränkt. Das werde ich einfach mal ausprobieren. Zur Not zurückschicken.

VROC setzt dem gewissermaßen noch eine Krone auf, aber wenn man mal die Füße auf dem Boden lassen will... scheinbar sollte das nicht allzuviel kosten, und dann würd ich die NVME Geschichte mal ganz schnell wieder vergessen, und ein paar SSD SATA Disks an den vorhandenen Controller anschließen, falls er abwärtskompatibel zu SATA ist.
SATA SSDs gehen natürlich auch an dem RAID Controller. Allerdings kosten M.2 PCIe SSDs mittlerweile genauso viel wie die 2,5" Varianten. Und die SATA SSDs laufen leider am technischen Limit des 6 Gbps Port. Also für einen ähnlichen Preis die 4-6 fache Performance.


NVME ist kein Allheilmittel für Festplattenperformance-Probleme - analysier erstmal deine Probleme bevor du direkt mal was mit NVME machst. Datenbankserver mögen keine hohen Latenzen, Fileserver wiederum benötigen Datendurchsatz bis an die Leistungsgrenze des Ethernetadapters im Client... das solltest du erstmal genauer auseinanderfriemeln.
Was soll man da analysieren? SAS Platten sind halt langsam im Vergleich zu SSDs.
Es geht nur um schnelle Zugriffe und die allgemeine Performance für virtuelle Maschinen. Selbst banale Sachen wie OS Start und das Öffnen des Startmenüs dauern halt im Vergleich zur SSD Ewigkeiten. Das Windows auf einer M.2 SSD ist in 10 Sekunden (vielleicht sogar weniger, ganz unabhängig vom Schnellstart) einsatzbereit.

Große Datenmengen (= Fileserver) habe ich auf dem NAS liegen. Beim Fileserver reichen HDDs (Zur Not mit SSD Cache).


Und schaut man mal ganz in die Tiefe, dann stellt man fest, daß die 3,5 GB/Sekunde Datentransferrate bei einer NVME Disk nur aus dem mit DRAM in der NVME Disk abgedeckten Cache erzielbar sind, das sind dann 5-10% der Gesamtkapazität. Danach fallen auch NVMEs auf drei Geschwindgkeitsstufen herab, die oft so mit 500 MB/Sec, dann 250 MB/sec und 120 MB/Sec liegen bei TLC, die mit QLC haben noch einen Gang mehr nach "unten" und sind dann bei 60 zuende wie die 970 QVO von Samsung.
Das ist selbstverständlich richtig. Das betrifft aber sämtliche Speicherkomponenten, auch Festplatten, normale SATA SSDs und auch Hardware RAID Controller. Ist der Cache voll, wird es schneckig.


Im harten Serverbetrieb, wo man konstante Performance braucht, verwendet man dann auch SLC, und die sind dann gleich richtig teuer. Die Intel Optane 1 TB als SLC Version kostet deshalb auch vierstellige Beträge, hat dafür aber auch sechsstellige TBW Werte. Aber du knauserst ja shcon mit dem 800 Euro teuren Controller... wie gesagt hol dir SATAt SSDs oder SAS SSDs für den vorhandenen Controller.
Natürlich überlege dreimal so eine Anschaffung, wenn es eigentlich auch per Software RAID geht. Und das ohne Probleme.
Ich habe im Desktop Rechner ein RAID 0 mit zwei 970 Pro. Das ist ein Traum.
Der Controller kostet so viel wie 4 SSDs zusammen. Ist doch klar, dass ich das vermeiden möchte.

Außerdem haben auch Controller Nachteile. Wenn der kaputt geht, steht man erstmal blöd rum. Ein Software RAID ist überall lesbar. Und CPUs sind heute schnell genug, vor allem für einfache Modi (1, 0, 10). Bei RAID 5(0) und RAID 6(0) sieht das natürlich schon wieder anders aus.

Zuhause und auch im Small Business sind die Server SSDs halt Overkill. Das lohnt genauso wenig wie Server HDDs. Ich nutze schon seit Jahren keine Serverplatten mehr (Die SAS 300er sind hier die Ausnahme, weil ich die kostenlos bekommen habe).

Als Beispiel:
Die Seagate 8TB Desktop kostet 150€. Die Ironwolf NAS Variante kostet 270€. Die NAS Platte hält aber nicht doppelt so lange durch.
Wenn man einfach mal von 50.000 Stunden Laufzeit ausgeht (fast 6 Jahre), müsste die NAS Platte 90.000 Stunden schaffen, damit sie sich lohnt.
Und wenn die HDD dann den Geist aufgibt, wird sie eben ersetzt. Dafür gibt es schließlich RAID. Und mit ganz viel Glück passiert der Plattentod innerhalb von 2 Jahren. Dann gibts kostenlos eine neue Platte.

Bei den SSDs ist das nicht anders. Wenn sie stirbt, wird sie halt ersetzt. Und zum Preis einer Intel Optane 1TB kriege ich einige 970 Evo oder Pro.
Sofern man die Performance einer Server SSD nicht braucht, weil man sie nicht 24/7 voll auslastet, ist das ziemlich viel Holz...

Problematisch ist natürlich noch die Wärmeentwicklung und die einhergehende Drosselung. Aber dafür gibt es schließlich auch vernünftige Kühllösungen. Auch die Asus Hyper M.2 Karte sieht hier vielversprechend aus.


Zum Rumspielen gibts einzelne Adapter für m.2 (z.B. das Icybox ist kompatibel zu ESX 6.7) und nimm dann eine anstänidge m.2 Platte, die Billigteile haben noch so allerlei Kinderkrankzeiten, die werden heiß, verschwinden sporadisch ausm Bios u.s.w., da würde ich eher zu einer guten SSD tendieren. Ich selbst hab EINE Samsung Evo 970 in einem Icybox Adpater unter ESXI 6.7 und der ist zentral als Storage im Hypervisor verfügbar... im Vergleich zu einer SATA SSD war z.B. eine SAP Installation viermal so schnell fertig und die Datenbnakperformance bei sequenziellen Zugriffen auf nicht gecachten Inhalt sind noch mal doppelt so schnell weil NVME nun mal ein direkter Zugriff der CPU auf den Flash-Speicher ist, wohingegen bei SATA und SAS eine ganze Menge Protokoll-Overhead mit im Spiel ist.
Mit der Icybox meinst du das Gehäuse für eine M.2 SSD? Was genau muss denn hier kompatibel sein? Das ist halt eine SSD. Wenn ich eine SSD auf den M.2 Port des Mainboards stecke, ist die auch in ESXi nutzbar.
KernelMaker
KernelMaker 25.05.2020 um 01:15:37 Uhr
Goto Top
Der ASUS Hyper M.2 Adapter + vier Samsung 970 EVO Plus 1TB sind bestellt.
Ich werde berichten, ob alles funktioniert face-smile
Luckysh0t
Luckysh0t 26.05.2020 um 09:06:23 Uhr
Goto Top
Ggf. auch mal das Pendant von Delock testen, sollte es Probleme geben.
KernelMaker
KernelMaker 27.05.2020, aktualisiert am 02.06.2020 um 12:05:25 Uhr
Goto Top
Soooo... kurze Rückmeldung:

Mit leichten Schwierigkeiten am Anfang läuft der Adapter nun halbwegs.

Ich musste leider feststellen, dass der M.2 Adapter zu lang für den ersten PCIe x16 Port ist (RAM im Weg) und deshalb in den zweiten x16 rein muss. Dieser ist geteilt mit mit einem weiteren x8 Slot. Der x16 Port läuft aber elektrisch mit x16, sofern der geteilte x8 direkt daneben nicht belegt wird. Im BIOS habe ich dann x4 x4 x4 x4 eingestellt und schon liefen alle 4 SSDs.

@Luckysh0t
Vielleicht sollte ich dann doch den Delock nehmen, weil der sehr kurz ist und deshalb auch in den ersten Slot passt. So wäre kein x8 Port "verbrannt".
Ist der technisch identisch zum Asus?

In einer Windows 10 VM habe ich einmal ein paar Tests mit ATTO und CrystalDiskMark durchgeführt.
Single Disk: 3,2 GB/s
RAID 10: 5,9 GB/s
Das sind schon mal ganz gute Werte. Im RAID nicht ganz 200%, aber deutlich schneller.

Leider sind die Werte über Napp-it (bzw. OmniOS) + NFS Share nicht sehr gut.
Ich habe einen ZFS Pool erstellt und das NFS Share gestartet.
Das hat warum auch immer nur manuell über die Shell funktioniert. Über das Napp-it Webinterface wurden die NVMe Disks als Status "removed" angezeigt. Nachdem der Pool erstellt wurde, war dann auch alles über das Webinterface möglich.
Verbunden ist die Storage VM mit vmxnet3 über einen vSwitch MTU 9000 direkt mit einem zweiten VMKernel Port.
Die Geschwindigkeit ist noch nicht optimal: Die gleiche Windows 10 VM auf dem NFS Datastore erreicht nur knapp über 1 GB/s lesen/schreiben.

Wie kriegt man denn über die virtuellen Netzwerkadapter vernünftige Geschwindigkeiten hin?
Über iperf zwischen zwei VMs erreiche ich ähnliche Werte (7-9 Gbit/s).
EDIT: Sind nun ~ 21 Gbit/s zwischen zwei VMs und auch zwischen VM und ESXi.

Dazu kommen ein paar fiese Bugs:
  • Das Herunterfahren der Windows VM mit dem PCIe NVMe als Passthrough bringt den kompletten ESXi Host zum Absturz (PSOD). Da scheint es Probleme mit dem Treiber o.ä. zu geben und die VM springt in unzulässige Speicherbereiche. (nicht schlimm, da Windows hier nur zum testen war)
  • In FreeBSD laufen die NVMe Disks nicht im Passthrough ("Missing interrupt"). Dazu habe ich schon eine Lösung gefunden, die ich noch ausprobieren muss. Man soll die NVMe Devices zur Datei /etc/vmware/passthru.map auf dem ESXi hinzufügen. EDIT: In der VMX Config der Storage VM "pciPassthru0.msiEnabled = "FALSE"" setzen.

Kann man eigentlich über VMs auch sowas wie RDMA realisieren? Bei 40gbit oder 100gbit Netzwerkadaptern ist ja auch das Problem mit der CPU Load. Das umgeht man mit RDMA.
Luckysh0t
Luckysh0t 27.05.2020 um 14:35:12 Uhr
Goto Top
Schau mal im Nappit unter Filesystems bei dem entsprechenden FS nach dem Punkt "Sync" und schalte den auf "disabled".
KernelMaker
KernelMaker 02.06.2020 aktualisiert um 12:43:33 Uhr
Goto Top
Danke für den Tipp! Das habe ich mal probiert. Damit wird der Write Speed deutlich größer und liegt bei ~ 1,8 GB/s. Async writes sollten auch erstmal kein Problem darstellen, da der Server an einer USV hängt. Das passt soweit, ist allerdings immer noch weit von der Performance mit dem Passthrough direkt in der VM entfernt.

28-05-_2020_03-33-56

Ich habe auch mal iSCSI in ESXi ausprobiert:
27-05-_2020_16-59-35

Windows 10 auf Proxmox Nested mit PCIe Passthrough (sync writes):
30-05-_2020_14-03-18

Windows 10 VM mit PCIe Passthrough (Software RAID via Storage Spaces)
27-05-_2020_02-17-49
27-05-_2020_01-51-21

Außerdem werde ich auch Proxmox direkt auf der Hardware mit einem ZFS RAID 10 testen.
Hyper-V kann sich auch nicht schaden. Nur um mal zu vergleichen.

Ich kann mir diesen Engpass nicht erklären. Im iperf erreiche mit passenden Einstellungen ~ 21 Gbit/s zwischen zwei VMs und auch über iperf mit SSH auf dem ESXi Host .
Luckysh0t
Luckysh0t 02.06.2020 um 12:07:40 Uhr
Goto Top
Na also.Was ich bsiher so gelesen habe ist iperf nicht so zuverlässig - unter Windows.

Die ZFS Performace kommt primär vom Ramcache etc.Die Datensicherheit die ZFS bietet hat ihren Tribut bei der Leistung.Sollte aber für die meisten fälle schnell genug sein ^^