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-Key: 62594030061

Url: https://administrator.de/contentid/62594030061

Printed on: April 13, 2024 at 00:04 o'clock

Member: Avoton
Avoton Feb 24, 2024 at 11:59:18 (UTC)
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
Member: enkay666
enkay666 Feb 24, 2024 at 12:09:04 (UTC)
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.
Member: GrueneSosseMitSpeck
GrueneSosseMitSpeck Feb 24, 2024 updated at 13:30:49 (UTC)
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>
Member: enkay666
enkay666 Feb 24, 2024 at 13:41:50 (UTC)
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.
Member: simple198
simple198 Feb 24, 2024 at 15:29:43 (UTC)
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.
Member: Avoton
Avoton Feb 24, 2024 at 15:36:39 (UTC)
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.
Member: huaweinetwork
huaweinetwork Feb 24, 2024 at 19:28:51 (UTC)
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.
Member: enkay666
enkay666 Feb 24, 2024 at 19:41:09 (UTC)
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?
Member: huaweinetwork
huaweinetwork Feb 24, 2024 at 22:22:44 (UTC)
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
Member: MysticFoxDE
MysticFoxDE Feb 25, 2024 updated at 06:13:29 (UTC)
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
Member: enkay666
enkay666 Feb 25, 2024 at 07:42:54 (UTC)
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
Member: MysticFoxDE
MysticFoxDE Feb 25, 2024 at 09:03:10 (UTC)
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
Member: enkay666
enkay666 Feb 25, 2024 at 09:08:47 (UTC)
Goto Top
Regulär, wie eine normale HDD oder SSD auch, eingebunden per SCSI-Controller unter den VM-Einstellungen.

Grüße
Member: MysticFoxDE
MysticFoxDE Feb 25, 2024 at 09:18:11 (UTC)
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
Member: enkay666
enkay666 Feb 25, 2024 at 09:28:49 (UTC)
Goto Top
ganz genau
Member: MysticFoxDE
MysticFoxDE Feb 25, 2024 at 09:58:51 (UTC)
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
Member: enkay666
enkay666 Feb 25, 2024 at 10:05:57 (UTC)
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.
Member: huaweinetwork
huaweinetwork Feb 25, 2024 at 11:45:10 (UTC)
Goto Top
Treiber sind aktuell/ korrekt?
Das kann bei S2D einen Riesen Unterschied machen
Member: MysticFoxDE
MysticFoxDE Feb 25, 2024 at 19:40:58 (UTC)
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
Member: enkay666
enkay666 Feb 28, 2024 at 16:58:29 (UTC)
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
Member: huaweinetwork
huaweinetwork Feb 29, 2024 at 08:49:30 (UTC)
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
Member: enkay666
enkay666 Mar 01, 2024 at 07:13:06 (UTC)
Goto Top
Hi,
der Vergleich hinkt etwas, da du ein two-way-mirror mit einem RAID5 vergleichst.
Member: MysticFoxDE
MysticFoxDE Mar 02, 2024 at 06:36:07 (UTC)
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
Member: MysticFoxDE
MysticFoxDE Mar 02, 2024 at 06:40:55 (UTC)
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
Member: enkay666
enkay666 Mar 03, 2024 at 08:52:24 (UTC)
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