enkay666
Goto Top

Hyper-V Passthrough PCIe NVMe SSD

Hallo zusammen!

Da mir letztes mal schon so toll geholfen bzw beraten wurde, habe ich gleich eine weitere Frage.

Da mir im letzten Thread geraten wurde, meine Infrastruktur zu "schrumpfen" und mehr zu virtualisieren, benötige ich nun Auskunft zum Thema PCIe passthrough.

Es geht um einen künftigen HyperV Host, auf dem ein Fileserver virtualisiert werden soll.
An den Fileserver sollen sechs NVMe-Laufwerke durchgereicht werden.

Ist das ohne weiteres möglich?
Kann ich das gleich handhaben, wie bei einem "normalen" SATA-Datenträger? Oder muss das ähnlich wie bei Grafikkarten über die Powershell, sow wie hier im Blogbeitrag beschrieben
Blogbeitrag PCIe Pasthrough

Wenn beides möglich sein sollte, gibt es Vor oder Nachteile von einer zur anderen Möglichkeit?


Grüße und schönes Wochenende!

Content-ID: 62594030061

Url: https://administrator.de/forum/hyper-v-passthrough-pcie-nvme-ssd-62594030061.html

Ausgedruckt am: 21.12.2024 um 13:12 Uhr

Avoton
Avoton 24.02.2024 um 12:59:18 Uhr
Goto Top
Moin,

Warum willst du die SSDs den als Raw Device Mapping an die VMs geben?

Unabhängig davon: Sollte wie mit jeder anderen Festplatte funktionieren.

Gruß,
Avoton
enkay666
enkay666 24.02.2024 um 13:09:04 Uhr
Goto Top
Zitat von @Avoton:
Warum willst du die SSDs den als Raw Device Mapping an die VMs geben?

ich habe bisher ein OS namens "TrueNAS" als basis für meinen Fileserver genutzt. Mein Plan war, dieses wieder zu verwenden. Und hierfür müssen die SSDs durchgereciht werden, weil das OS damit sonst nicht arbeiten kann. Kurzform: TrueNAS beit ein RAID-Z1 oder RAID-Z2 aus den Platten.

Da ich nicht weiß, wie performant ein Fileserver unter Windows mit NVMe-SSDs ist, wolle ich auf den Versuch verzichten.
GrueneSosseMitSpeck
GrueneSosseMitSpeck 24.02.2024 aktualisiert um 14:30:49 Uhr
Goto Top
Da ich nicht weiß, wie performant ein Fileserver unter Windows mit NVMe-SSDs ist, wolle ich auf den Versuch verzichten.

<ironie>
Es wird grottenlangsam sein, und vor allem die Latenzen werden scih im gigantischen Mikrosekundenbereich bewegen.... um eine Million Dateien zu zählen wird man die wahnsinnige Zeit von ca. 30 Sekunden warten müssen. Um 100 GB zu kopieren muß man dann auch wahnsinnig lange 100 Sekunden warten. Ich würde das lieber mit mechanischen Festplatten machen, am besten nur eine mit 20 TB oder so... lieber Millisekunden an Latenzen und vorzugsweise weniger als 120 Megabyte pro Sekunde
</ironie>
enkay666
enkay666 24.02.2024 um 14:41:50 Uhr
Goto Top
Hi,
sorry ich verstehe deinen Beitrag nicht wirklich.

Ich habe bisher mit Windows server als Fileserver eben keine Erfahrung und kenne daher die "Storage-Pools" und deren Performance nicht.

Und da ich momentan in der Firma mehr als ausgelastet bin, würde ich mir gerne die Zeit und die Nerven sparen, einen Server aufzusetzen, diesen einzurichten um dann festzustellen, dass es nichts taugt.


Ich wäre als um Erfahrungen froh.
simple198
simple198 24.02.2024 um 16:29:43 Uhr
Goto Top
Das heißt du willst TrueNAS als VM laufen lassen und dort die NVMEs dann durchreichen?

Also mit Hyper-V kenne ich mich nicht aus, aber mit Proxmox läuft das ohne Probleme.

Ansonsten könntest du noch TrueNAS eigenständig als Server laufen lassen und deinem Hypervisor (Hyper-V) dann den "Storage" zuweisen bzw. benutzen lassen. Ob jetzt per NFS, SMB oder sonstige Funktionen ist ja egal.
Avoton
Avoton 24.02.2024 um 16:36:39 Uhr
Goto Top
Du könntest auch auf Hefe SSD eine VHDX mit max. Größe legen und TrueNAS damit arbeiten lassen. Wüsste jetzt nicht, was dagegen spricht.
huaweinetwork
huaweinetwork 24.02.2024 um 20:28:51 Uhr
Goto Top
Hi,

Ob man die NVMEs direkt an eine VM durchreichen kann, weiß ich ehrlich gesagt nicht.

Ich würde auf dem HyperV standalone Server auch Mal eine Basis erstellen und darauf dann die vhdx.

storage spaces

Mit NVMEs hast du sowieso mehr als genug Performance.
enkay666
enkay666 24.02.2024 um 20:41:09 Uhr
Goto Top
hi,
habe es heute mittag mal durchgespielt. Storage-Pool unter WinServer2022 erstellt, als Parität, und das Resultat:
19GB/s lesend (sequenziell) und schreiben völlig unterirdische 300-500MB/s

Da stimmt doch was nicht?
huaweinetwork
huaweinetwork 24.02.2024 um 23:22:44 Uhr
Goto Top
Benchmark direkt auf dem hyperV Host durchgeführt?
Kannst du bei Gelegenheit einen Benchmark mit Crystaldiskmark machen (mit NVMEs settings) und einen Screenshot vom Ergebnis hochladen?

Gracias
MysticFoxDE
MysticFoxDE 25.02.2024 aktualisiert um 07:13:29 Uhr
Goto Top
Moin @enkay666,

habe es heute mittag mal durchgespielt. Storage-Pool unter WinServer2022 erstellt, als Parität, und das Resultat:
19GB/s lesend (sequenziell) und schreiben völlig unterirdische 300-500MB/s

Da stimmt doch was nicht?

das ist bei einem Software RAID und vor allem bei Windows leider nichts unnatürliches.

Wenn du wirklich gute Storageperformance, vor allem unter Windows benötigst, dann führt fürchte ich kein Weg an einem Hardware-RAID-Controller vorbei. 😔

Gruss Alex
enkay666
enkay666 25.02.2024 um 08:42:54 Uhr
Goto Top
Zitat von @huaweinetwork:
Benchmark direkt auf dem hyperV Host durchgeführt?
ja
Kannst du bei Gelegenheit einen Benchmark mit Crystaldiskmark machen (mit NVMEs settings) und einen Screenshot vom Ergebnis hochladen?
genau so hab ichs gemacht. Nur ohne Screenshot.


Zitat von @MysticFoxDE:

Moin @enkay666,
Moin!
das ist bei einem Software RAID und vor allem bei Windows leider nichts unnatürliches.
das ist mehr als beschämend!
Wenn du wirklich gute Storageperformance, vor allem unter Windows benötigst, dann führt fürchte ich kein Weg an einem Hardware-RAID-Controller vorbei. 😔
und genau auf diesen will ich verzichten.
habe nun eine VM mit dem zuvor schon genutzten TrueNAS aufgesetzt und die Ergebnisse können sich sehen lassen. Schreibend (ohne Ramcache natürlich!) ca. 15GB/s und lesend etwas über 5GB. Da mir die Performance beim Schreiben sehr viel wichtiger ist, sind die 5GB/s lesen kein Problem in meinem Fall
MysticFoxDE
MysticFoxDE 25.02.2024 um 10:03:10 Uhr
Goto Top
Moin @enkay666,

das ist mehr als beschämend!

jup, daher kann mir auch S2D & Co. höchstens mal den Buckel ra rutschen.

habe nun eine VM mit dem zuvor schon genutzten TrueNAS aufgesetzt und die Ergebnisse können sich sehen lassen. Schreibend (ohne Ramcache natürlich!) ca. 15GB/s und lesend etwas über 5GB. Da mir die Performance beim Schreiben sehr viel wichtiger ist, sind die 5GB/s lesen kein Problem in meinem Fall

Und wie hast du die SSD's an das TrueNAS nun durchgereicht?

Gruss Alex
enkay666
enkay666 25.02.2024 um 10:08:47 Uhr
Goto Top
Regulär, wie eine normale HDD oder SSD auch, eingebunden per SCSI-Controller unter den VM-Einstellungen.

Grüße
MysticFoxDE
MysticFoxDE 25.02.2024 um 10:18:11 Uhr
Goto Top
Moin @enkay666,

Regulär, wie eine normale HDD oder SSD auch, eingebunden per SCSI-Controller unter den VM-Einstellungen.

sprich, du hast die SSD's einzeln als "Physische Festplatte" ...
pdisk
... an die TrueNAS-VM durchgereicht, richtig?

Gruss Alex
enkay666
enkay666 25.02.2024 um 10:28:49 Uhr
Goto Top
ganz genau
MysticFoxDE
MysticFoxDE 25.02.2024 um 10:58:51 Uhr
Goto Top
Moin @enkay666,

ganz genau

du hast also das Software RAID nicht über das Windows sondern über die VM mit Linux (TrueNAS) realisiert und hast nun in der VM eine deutlich bessere Storageperformance als mit dem Storage-Pool von Windows.

Korrekt?

Gruss Alex
enkay666
enkay666 25.02.2024 um 11:05:57 Uhr
Goto Top
richtig. Als Alternative gäbe es noch die Möglichkeit, die PCIe-SSDs direkt durchzureichen, also eben als PCIe-Gerät, ähnlich wie beim GPU-Passthrough.

Wenn ich irgendwann mal viel Zeit habe, versuch ich das vielleicht auch mal.
huaweinetwork
huaweinetwork 25.02.2024 um 12:45:10 Uhr
Goto Top
Treiber sind aktuell/ korrekt?
Das kann bei S2D einen Riesen Unterschied machen
MysticFoxDE
MysticFoxDE 25.02.2024 um 20:40:58 Uhr
Goto Top
Moin @enkay666,

richtig. Als Alternative gäbe es noch die Möglichkeit, die PCIe-SSDs direkt durchzureichen, also eben als PCIe-Gerät, ähnlich wie beim GPU-Passthrough.

also, ich fass mal zusammen.
Mit "Storage-Pools", also mit dem hauseigenen Software-RAID von Windows erreichst du schreiben völlig unterirdische 300-500MB/s obwohl die SSD's in dem Fall über NVME angesprochen werden.
Und auf einer VM mit einem "TrueNAS" erreichst du Schreibend (ohne Ramcache natürlich!) ca. 15GB/s, obwohl der Zugriff auf die SSD's nicht nativ per NVME erfolgt.

Ähm ... @microsoft
😂🤣😂🤣 🙈 und genau wegen sowas kann mir euer S2D auch weiterhin höchstens mal den Buckel ra rutschen.

Wenn ich irgendwann mal viel Zeit habe, versuch ich das vielleicht auch mal.

Nur der Neugierde halber, wie viele vCores hast du der TrueNAS VM gegeben und wie viele Cores gibt die Hardware her?

Gruss Alex
enkay666
enkay666 28.02.2024 um 17:58:29 Uhr
Goto Top
Zitat von @MysticFoxDE:
also, ich fass mal zusammen.
Mit "Storage-Pools", also mit dem hauseigenen Software-RAID von Windows erreichst du schreiben völlig unterirdische 300-500MB/s obwohl die SSD's in dem Fall über NVME angesprochen werden.
Und auf einer VM mit einem "TrueNAS" erreichst du Schreibend (ohne Ramcache natürlich!) ca. 15GB/s, obwohl der Zugriff auf die SSD's nicht nativ per NVME erfolgt.
soweit korrekt.

Nur der Neugierde halber, wie viele vCores hast du der TrueNAS VM gegeben und wie viele Cores gibt die Hardware her?
die VM hat zugewiesen bekommen:
    • 12 virtuelle Prozessoren
    • 32GB Ram
    • 6x Datenträger (als physisch durchgereicht)

das Blech hat folgende Hardware:
    • 2x Xeon Platinum 8124M (18x 3,0GHz je CPU)
    • 96 GB RAM (2400MHz, 48GB je CPU, hexachannel)
    • 2x SATA SSD für Bootpartition
    • 6x Kioxia 3,84TB CD6 (KCD61LUL3T84)


Grüße
huaweinetwork
huaweinetwork 29.02.2024 um 09:49:30 Uhr
Goto Top
Hi,

habe gerade einen HyperV Standalone Server zur Hand und mal einen Performance Test durchgeführt.


Hardware:
2x Intel Xeon Gold 5415+ 2.9 GHz 8-core
8x16GB RAM
2x 3,84 TB HPE NVMe Read Intensive (Model VV003840KXNTH)
cdm
ps
enkay666
enkay666 01.03.2024 um 08:13:06 Uhr
Goto Top
Hi,
der Vergleich hinkt etwas, da du ein two-way-mirror mit einem RAID5 vergleichst.
MysticFoxDE
MysticFoxDE 02.03.2024 um 07:36:07 Uhr
Goto Top
Moin @enkay666,

Nur der Neugierde halber, wie viele vCores hast du der TrueNAS VM gegeben und wie viele Cores gibt die Hardware her?
die VM hat zugewiesen bekommen:
    • 12 virtuelle Prozessoren
    • 32GB Ram
    • 6x Datenträger (als physisch durchgereicht)

das Blech hat folgende Hardware:
    • 2x Xeon Platinum 8124M (18x 3,0GHz je CPU)
    • 96 GB RAM (2400MHz, 48GB je CPU, hexachannel)
    • 2x SATA SSD für Bootpartition
    • 6x Kioxia 3,84TB CD6 (KCD61LUL3T84)

das macht die Sache nicht wirklich besser, im Gegenteil, damit macht sich Microsoft nur noch lächerlicher.
Denn 15GB/s schreibend mit "nur" 12 Virtual-Cores, gegen 300-500MB/s mit 38 Physical-Cores ist schon eine Hausnummer. 😔

@microsoft
🙈🙈🙈

@enkay666
Hast du bei dem Test mit dem "Storage-Pool" rein zufällig die CPU Auslastung beobachtet?

Gruss Alex
MysticFoxDE
MysticFoxDE 02.03.2024 um 07:40:55 Uhr
Goto Top
Moin @enkay666,

der Vergleich hinkt etwas, da du ein two-way-mirror mit einem RAID5 vergleichst.

genau so ist das, den bei RAID 1 muss kein Parity berechnet werden.

Ausserdem hat MS vor etwa zwei bis drei Jahren im Storage-Stack eh irgend einen Mist eingebaut den ich noch nicht gefunden habe, denn seit dem bringt meine eigenen Workstation storagetechnisch nur noch knapp 50% der vorherigen Leistung. 😭

Gruss Alex
enkay666
enkay666 03.03.2024 um 09:52:24 Uhr
Goto Top
Zitat von @MysticFoxDE:
genau so ist das, den bei RAID 1 muss kein Parity berechnet werden.
genau das meinte ich...

Hast du bei dem Test mit dem "Storage-Pool" rein zufällig die CPU Auslastung beobachtet?
leider nein, bzw ja allerdings ist das jetzt zu lange her und ich kann mich nicht so genau erinnern. Es waren auf jeden Fall nicht alle Kerne voll ausgelastet.

Bei der TrueNAS VM sieht das momentan so aus:
Eingabeparameter für fio wie folgt, erst schreibend, dann lesend. Block-size wurde auf 256KB festgesetzt. Ich habe die parallelen ausführungen variiert, um zu sehen was mit der Geschwindigkeitz und der CPU-Auslastung passiert.
Je höher der Wert für numjobs gestellt wird, desto höher auch die CPU-Auslastung (logisch). Allerdings ist die lese/schreibrate dabei sehr interessant zu beobachten!
fio --filename=./test --direct=1 --rw=randwrite --bs=256K --iodepth=2 --numjobs=20 --group_reporting --name=test --size=256K --runtime=20 --time_based
Ergebnis ca. 1800MB/s schreibend
screenshot 2024-03-03 093742
lesend ist das Ganze etwas überraschend wie ich finde, aber seht selbst:
fio --filename=./test --direct=1 --rw=randread --bs=256K --iodepth=2 --numjobs=20 --group_reporting --name=test --size=256K --runtime=20 --time_based
screenshot 2024-03-03 094318
fio --filename=./test --direct=1 --rw=randread --bs=256K --iodepth=2 --numjobs=4 --group_reporting --name=test --size=256K --runtime=20 --time_based
screenshot 2024-03-03 094720
screenshot 2024-03-03 093454