Startseite Unternehmen Hands On mit StarWind NVMe-oF Initiator für Windows

Hands On mit StarWind NVMe-oF Initiator für Windows

by Brian Beeler

Windows ist für viele Dinge großartig, es gibt einen Grund, warum es das Betriebssystem Nummer eins auf der Welt ist. Allerdings ist es nicht perfekt, insbesondere wenn es darum geht, neue Speicherstandards zu übernehmen. Daher besteht für unternehmerische Unternehmen eine enorme Chance, Lösungen für Windows-Shops zu entwickeln. Da NVMe-SSDs in Unternehmen weiterhin dominieren und zum Standard für SSD-Serverspeicher werden, steigt die Nachfrage nach der Möglichkeit, diesen Speicher gemeinsam nutzen zu können. Leider ist das unter Windows bis vor Kurzem ein Problem. Anfang dieses Jahres hat StarWind einen NVMe-oF-Initiator für Windows kommerzialisiert.

Windows ist für viele Dinge großartig, es gibt einen Grund, warum es das Betriebssystem Nummer eins auf der Welt ist. Allerdings ist es nicht perfekt, insbesondere wenn es darum geht, neue Speicherstandards zu übernehmen. Daher besteht für unternehmerische Unternehmen eine enorme Chance, Lösungen für Windows-Shops zu entwickeln. Da NVMe-SSDs in Unternehmen weiterhin dominieren und zum Standard für SSD-Serverspeicher werden, steigt die Nachfrage nach der Möglichkeit, diesen Speicher gemeinsam nutzen zu können. Leider ist das unter Windows bis vor Kurzem ein Problem. Anfang dieses Jahres hat StarWind einen NVMe-oF-Initiator für Windows kommerzialisiert.

NVMe-oF-Initiator für Windows Intel-Server

Bis zur Kommerzialisierung hatte StarWind seinen NVMe-oF Initiator für Windows als kostenloses Tool für Entwicklungs- und PoC-Anwendungsfälle angeboten. Sie immer noch Biete die kostenlose Version an für diejenigen, die spielen möchten, aber wir sehen uns heute die GA-Versandversion an. Wenn Sie sich einen NVMe-oF-Initiator für Windows ansehen, verbrauchen Sie wahrscheinlich StarWind IP. Sie bieten OEM-Lösungen für eine Vielzahl von Partnern an, die ihre Angebote ausbauen müssen.

NVMe-oF-Initiator für Windows-Konfiguration

Der StarWind NVMe-oF Initiator für Windows ist eine einfache Installation auf jedem Windows-Host. Es ist keine spezielle Hardware oder zusätzliche Windows-Komponenten erforderlich. Die Software ist Windows-zertifiziert (Server 2019 und Windows 10) und auf Kompatibilität mit den wichtigsten NVMe-oF-Speicheranbietern getestet. In unserem Szenario haben wir eine sehr einfache Konfiguration mit einem Speicherhost und vier Clients.

starwind NVMe-oF Initiator für Windows im Geräte-Manager

Jeder der vier Kunden ist Dell PowerEdge R740 Server. Sie verfügen jeweils über zwei Intel Xeon Gold 6130-CPUs mit 2.1 GHz und 256 GB DRAM. Für die Konnektivität verwenden wir NVIDIA ConnectX-5 EN 100GbE-NICs (MCX516A-CCAT). Die Server werden mit Windows Server 2019 Standard Edition installiert und nutzen den StarWind NVMe-oF Initiator für Windows Version 1.9.0.455. Für die Linux-Tests verwendeten wir CentOS 8.4.2105 (Kernel – 4.18.0-305.10.2) mit nvme-cli 1.12. Die Server sind direkt an den Speicherhost angeschlossen.

StarWind NVMe-oF Initiator für Windows-Architektur

Der Speicherhost ist ein Intel OEM-Server (M50CYP2SB2U), der mit zwei Intel Xeon 8380-CPUs mit 2.3 GHz und 512 GB DRAM ausgestattet ist. Wir haben erneut NVIDIA ConnectX-5 EN 100GbE-NICs (MCX516A-CDAT) verwendet, dieses Mal hatten wir vier im Host. In diesem Fall verwenden wir CentOS 8.4.2105 (Kernel – 5.13.7-1.el8.elrepo) und SPDK v21.07.

NVMe-oF-Initiator für Windows P5510

Innerhalb des Hosts verwenden wir acht Intel P5510 Gen4 NVMe SSDs. Die SSDs werden zur NUMA-Anpassung an die CPUs in zwei Vierergruppen aufgeteilt. Sie sind in RAID0 für maximale Leistung konfiguriert.

NVMe-oF-Initiator für Windows-Leistung

Für diesen Test haben wir die folgenden Benchmarks über FIO durchgeführt und dabei sowohl Linux- als auch Windows-Initiatoren genutzt.

  • Zufälliges Lesen 4K – 16 Threads, 32 Warteschlangentiefe
  • Zufälliges Schreiben 4K – 8 Threads, 4 Warteschlangentiefe
  • Zufälliges Lesen 64K – 4 Threads, 32 Warteschlangentiefe
  • Zufälliges Schreiben 64K – 4 Threads, 1 Warteschlangentiefe
  • Sequentielles Lesen 1M – 2 Threads, 8 Warteschlangentiefe
  • Sequentielles Schreiben 1M – 1 Thread, 8 Warteschlangentiefe

Eine einzelne Testdauer beträgt 3600 Sekunden (1 Stunde). Vor dem Benchmarking der Schreibvorgänge wurde der Speicher zunächst 3600 Sekunden (1 Stunde) aufgewärmt. Alle Tests wurden dreimal durchgeführt und der Durchschnittswert wurde als Endergebnis verwendet.

In unserer ersten Gruppe, die die Leistung des Linux-NVMeoF-Initiators auf vier Clients untersuchte, haben wir 4 Mio. IOPS bei einer Bandbreite von 5.54 GB/s und einer Latenz von 21.6 ms beim 0.369K-Zufallslesen gemessen. Die 4K-Zufallsschreibleistung betrug 4 Mio. IOPS bei einer Bandbreite von 1.58 GB/s und einer Latenz von 6.2 ms.

Bei der Umstellung auf große Blockübertragungen haben wir sowohl 64K-Zufallsdaten als auch abschließend einen 1M-Sequenztest gemessen, der sich auf die Bandbreite über die gesamte Struktur konzentriert. Beim 64K-Zufallslesen haben wir 46.6 GB/s bei 0.69 ms Latenz und 7.2 GB/s bei 0.14 ms Latenz beim Schreiben gemessen. Die sequentielle 1-Millionen-Sequenz erreichte eine Lesegeschwindigkeit von 42.9 GB/s bei einer Latenz von 1.48 ms und eine Lesegeschwindigkeit von 25.4 GB/s bei einer Latenz von 1.26 ms beim Schreiben.

Als nächstes wechselten wir zu Windows, wo wir den StarWind NVMeoF-Initiator auf denselben vier Clients nutzten. Hier haben wir 4.17 Mio. IOPS beim 4K-Zufallslesen oder 16.3 GB/s bei 0.35 ms Latenz gemessen. Das zufällige 4K-Schreiben erreichte 1.54 Mio. IOPS oder 6 GB/s bei einer Latenz von 0.07 ms.

Anschließend sind wir zu einer größeren Übertragungsgröße von 64 KB mit demselben Direktzugriffsprofil übergegangen. Hier haben wir 46.6 GB/s beim Lesen bei 0.68 ms Latenz und 7.2 GB/s beim Schreiben bei 0.13 ms Latenz gemessen. Beim Wechsel zu unserem letzten Workload-Profil mit einer Übertragungsgröße von 1 MB und einem sequentiellen Zugriffsmuster haben wir eine Lesegeschwindigkeit von 42.9 GB/s bei einer Latenz von 1.38 ms und eine Schreibgeschwindigkeit von 25.2 GB/s bei einer Latenz von 1.14 ms gemessen.

Beim direkten Vergleich der Zahlen lagen sowohl die Windows- als auch die Linux-Leistung mit Ausnahme des 4K-Zufallslesens sehr nahe beieinander. In allen anderen Tests betrug der Leistungsunterschied weniger als 3 %. Der Hauptunterschied liegt im wirklichen CPU-Overhead, der beim Durchlaufen des Windows-Speicherstapels entsteht. Dies ergibt einen 2.7- bis 3.7-fachen Unterschied, wobei erhöhte I/O-Vorgänge selbst die CPU-Auslastung am meisten erhöhen.

Der Übergang von 16 % CPU-Auslastung unter Linux auf 44 % unter Windows ist ein ziemlich großer Sprung, aber ein Anstieg von 3.5 % auf 9 % wäre nicht in gleichem Maße spürbar. Für Anwendungen, die unter Windows ausgeführt werden müssen, oder für IT-Abteilungen, die im Allgemeinen stärker auf Windows ausgerichtet sind, bestand das Hauptziel von StarWind darin, NVMeoF-Funktionen und -Leistung bereitzustellen, was eindeutig erreicht werden konnte.

Schlussfolgerung

Das Ziel dieser Analyse besteht nicht darin, den besten oder schnellsten Weg zur Einführung Ihrer eigenen NVMe-oF-Lösung zu ermitteln. Die meisten Speicherbereitstellungen folgen der Anwendung, im Gegensatz dazu, dass die Anwendung dem Speicher folgt. Allerdings gibt es eine Reihe von Gründen, warum ein Unternehmen Windows verwenden möchte. Es können bestimmte Anwendungen, die vorhandene Infrastruktur, Kostengründe oder andere Faktoren sein, die Windows zur bevorzugten Plattform machen. Spätestens jetzt haben wir mit dem NVMe-oF Initiator für Windows von StarWind eine Option, wenn es darum geht, NVMe-SSDs gemeinsam zu nutzen und sie so nah wie möglich an Anwendungssysteme zu bringen.

NVMe-oF-Initiator für Windows-Frontgehäuse

Wenn wir das Client-Betriebssystem für einen Moment außer Acht lassen, liegt die größte Einschränkung in unseren Tests tatsächlich in den Netzwerkverbindungen zwischen den Systemen. In unserem Fall haben wir durch die Nutzung von 100-Gb-NICs das Netzwerk ausgelastet und eine Höchstgeschwindigkeit von 46.6 GB/s sowohl in Linux- als auch in Windows-Umgebungen erreicht. Sogar der Spitzentest für 4K-Zufallslesevorgänge in Windows erreichte 16.3 GB/s, was mehr als sechs 25-GbE-Links für zufällige E/A ergeben würde. Das Netzwerk spielt letztendlich eine wichtigere Rolle für NVMe-oF, da die NVMe-Leistung, egal wie man sie aufteilt, viel Datenverkehr absorbieren kann.

Letztendlich bestand unser Ziel jedoch darin, zu bewerten, wie gut der StarWind-Initiator funktioniert. Es funktioniert wirklich verdammt gut. Die Alternative lautet: „Kein NVMe-oF für Sie!“ In Windows freuen wir uns über alle Optionen. Ja, es gibt einen CPU-Einbruch für dieses Privileg, aber auch wenn die prozentualen Unterschiede zwischen Linux und Windows beängstigend sind, sind die wahrgenommenen Auswirkungen außerhalb von 4K-Zufallslesevorgängen minimal. Wenn Sie nicht sicher sind, ob dies das Richtige für Sie ist, können Sie es bei StarWind kostenlos testen. Die Installation ist so einfach, dass es allen Grund gibt, es auszuprobieren und zu sehen, wie gut NVMe-oF für Ihre Anwendungen unter Windows funktionieren kann.

StarWind-Produktseite

StarWind-Demo-Anfrageformular

Beteiligen Sie sich an StorageReview

Newsletter | YouTube | Podcast iTunes/Spotify | Instagram | Twitter | Facebook | RSS Feed