Grundlagenartikel Spielereien mit Server 2019 Hyper-V Core, 100Gbit, RDMA und ZFSonWindows

Besterino

Urgestein
Mitglied seit
Jul 22, 2018
Beiträge
6.731
Bewertungspunkte
3.328
Punkte
112
Mein persönlicher Traum in Sachen Datensicherheit, Komfort und im Prinzip eigentlich allem rund um Daten ist ja bisher ZFS und zwar in der Geschmacksrichtung Solaris. ZFSonLinux bringt in meinen Augen nur Nachteile und auch ZFS in den Solaris-Forks (Illumos, OmniOS & Co.) kommen auch nicht an das Original heran.

Solaris ist zwar in Sachen SMB-Connectivity auch verdammt weit vorne und iSCSI funktioniert auch prima, aber die Sache wird knifflig wenn man es WIRKLICH schnell haben will über's Netzwerk: RDMA zur Windows-Welt ist so f(r)ickelig, dass mir das bisher nicht so recht gelungen ist.

Nun kommt aber langsam OpenZFS für Windows daher und mit napp-it gibt's dafür nun auch eine GUI, so dass man perspektivisch nicht mehr für jede Kleinigkeit in die Untiefen der Kommandozeile abtauchen muss.

Nachdem ich auch noch recht günstig zwei weitere hübsche 100gbit-NICs in Form von HPE-gebrandeten Connectx-5 schiessen konnte, wurde es Zeit also mal wieder Zeit für mich, den ein oder anderen Rechner aus der Versenkung zu holen, diverse Kleinteile und SSDs zusammenzusuchen, die Glasfasern zu entstauben und ein kleines Test-Lab aufzubauen. Konkret:

Ein alter Threadripper 1900X als Server und ein nicht ganz so alter Threadripper 3960X. Bissi RAM und ein paar SSDs finden sich ja auch in einem guten sortierten Haushalt, und so ein OS ist ja auch flott aufgesetzt...

...sollte man meinen. Hat mich Tage gekostet, ein non-Server Windows-OS zu RDMA-Connectivity zu überreden. Woran's genau lag, muss ich irgendwann noch mal genauer herausfinden. Was ein Sch***.

Vorläufiges Zwischenergebnis: Auf dem 1900X als Server kommt Hyper-V Server 2019 zum Einsatz. Dabei handelt es sich um eine sogenannte "Core"-Version, die nur eine ganz rudimentäre Verwaltungs-GUI mitbringt und einen ansonsten für alles auf die Kommandozeile (CMD bzw. Powershell) zwingt. Warum ich diese Server-Version nehme? Weil das die letzte kostenlose Server-Version von Microsoft ist mit Support noch bis 2028 oder so. Kann man also - wenn's denn/dann einmal läuft - ein
Weilchen so lassen.

Wenn man nicht immer in den Keller rennen will, kann man immerhin auch beim Core recht simpel den Remote-Zugriff aktivieren, hier auch gleich mal die hübsche *hust* GUI:

1707165383753.png

Auf dem 3960X als Client habe ich mich für Windows 11 Pro for Workstations entschieden. EIGENTLICH sollte RDMA client-seitig auch mit einem normalen Windows 11 Pro funktionieren - tat es aber in diversen Versuchen nicht auf Anhieb und dann habe ich viele Dinge parallel ausprobiert und bin sicherheitshalber auf die Workstation-Version umgestiegen, weil ich von der definitiv weiß, dass es geht.

Nachdem dann RDMA dann mal lief, lassen sich 10GB-Dateien in so ca. 3 Sekunden kopieren... noice. Ohne dass der Taskmanager überhaupt Last anzeigt (Beweis dafür, dass RDMA funzt und die CPU quasi vom Traffic nix mitbekommt):

1707165530279.png

4.06 GIGABYTE pro Sekunde können sich doch sehen lassen... allerdings will ich nicht verheimlichen, dass die nicht dauerhaft gehalten werden können - die NVME-SSDs können die Speed nicht dauerhaft halten und sobald der Cache voll ist, sinkt die Geschwindigkeit deutlich ab.

Gleich geht's weiter mit ZFS und ein paar Performance-Tests...
 
Zur Installation hat der ZFS-guru "gea", seineszeichens auch der Entwickler des ZFS-Gui "napp-it", im Luxx diverse Threads und steht extrem hilfsbereit mit Rat und Tat zur Seite. Daher verlinke ich auch zu ZFSonWindows hier mal nur ins Luxx.

Zusätzlich zu den Anleitungen im Startpost dort musste ich noch auf meinem Core-Server manuell geringfügig Hand anlegen:

1. Virtual Studio runterladen und installieren: https://aka.ms/vs/17/release/vc_redist.x64.exe

2. Da der Hyper-V Server keinen Browser mitbringt, muss ich von einer anderen Kiste auf den Webserver samt napp-it zugreifen. Dafür muss man die Firewall auf Port 80 öffnen:
Code :
netsh advfirewall firewall add rule name="Open Port 80" dir=in action=allow protocol=TCP localport=80

3. Die Installation von OpenZFS hat trotz gesetztem Haken nicht die PATH-Variable aktualisiert. Ohne ist doof, manuell korrigiert man das in der Powershell wie folgt:
Code :
$env:path +='C:\Program Files\OpenZFS On Windows'

Danach funzt dann auch die napp-it GUI, wobei die aber doch noch eher im Alpha-Status zu stecken scheint. Ich hab dann am Ende für einige Tests doch wieder lieber die Kommandozeile bemüht.

Für erste Performance-Vergleiche ZFS vs NTFS habe ich einfach mal 2 identische SSDs in den Server geklatscht: 2x exakt die gleiche SSD (120GB Intel Optanes), im gleichen PCIE-slot (per 2auf1-PCIE-m2-Adapter von Supermicro), 1x als NTFS-Partition, 1x als (basic) ZFS-Pool/Dataset und dann mit dem gleichen Befehl für "jeden" freigegeben.

1707171438544.png

Und richtig interessant wird's, wenn man darauf dann einfach virtuelle Datenträger in Form von VHDX-Files ablegt, die kann man dann nämlich fröhlich über's Netz mounten und sieht für Windows dann wie ein Laufwerk aus:

1707171639351.png

Und da rein bzw. darauf kann man dann theoretisch ganz normal alles installieren, was das Herz begehrt.

So kann man also die Vorteile eines sehr schnellen Netzes mit RDMA auf der einen Seite mit den Vorzügen von ZFS auf der anderen Seite kombinieren.

Ein paar Performance-Eindrücke:

SCHREIBEND auf NTFS:

1707173245260.png

LESEND von NTFS:

1707173274255.png
 
SCHREIBEND auf ZFS:
1707173337581.png

LESEND von ZFS:
1707173350919.png

Wen's interessiert, der findet mehr Beispiele und Tests im Luxx.
 
Oben Unten