PowerEdge: Funktionen von Dell Ready Solutions für HPC BeeGFS-Storage
Summary: Funktionen von Dell Ready Solutions für HPC BeeGFS-Storage
Instructions
Inhaltsverzeichnis
- Einführung
- StorageBench – Zum Vergleichen der Leistung verschiedener RAID-Konfigurationen
- StorageBench – So identifizieren Sie defekte oder falsch konfigurierte Speicherziele
- Schlussfolgerungen und zukünftige Arbeiten
Einführung
In diesem Blog werden die wichtigsten Funktionen der kürzlich angekündigten Dell Ready Solutions für HPC BeeGFS-Storage erläutert. Dies ist der dritte Blog in dieser Serie zur BeeGFS-Hochleistungsspeicherlösung. Der erste Blog kündigte die Veröffentlichung der Lösung an. Im zweiten Blog wurde die Skalierbarkeit von Dell Ready Solutions für HPC BeeGFS-Storage behandelt. Sie enthielt Details zu den Basiskonfigurationen, den flexibel skalierbaren Konfigurationen und der gemessenen sequenziellen Lese-/Schreibleistung der verschiedenen Konfigurationen, was zeigt, dass die Skalierbarkeit in Bezug auf die Anzahl der Server in der Lösung linear ist. Im aktuellen Blog wird die Verwendung von "StorageBench", der integrierten Benchmark für Storage-Ziele von BeeGFS, hervorgehoben.
BeeGFS ist ein Open-Source-Dateisystem, das von www.beegfs.io heruntergeladen werden kann. Es handelt sich um ein paralleles Dateisystem, das Daten über mehrere Speicherziele verteilt. Es handelt sich um einen Software Defined Storage, der das logische Dateisystem von der zugrunde liegenden Storage-Hardware entkoppelt, sodass der Nutzer definieren kann, wie und wo die Daten gespeichert werden. Die Dateisystemsoftware umfasst Enterprise-Funktionen wie hohe Verfügbarkeit, Quotendurchsetzung und Zugriffskontrolllisten. Die wichtigsten Merkmale von BeeGFS sind Nutzerfreundlichkeit, Skalierbarkeit und Flexibilität. Seine Benutzerfreundlichkeit beruht auf der Tatsache, dass alle serverseitigen Komponenten Userspace-Daemons sind, während der Client ein Kernel-Modul ist, das keine Patches für den Kernel selbst benötigt. Alle BeeGFS-Komponenten können installiert und aktualisiert werden, ohne dass der Server neu gestartet werden muss. So können wir dem vorhandenen System ohne Ausfallzeiten Clients und Server hinzufügen. Durch das Hinzufügen von Servern und Laufwerken kann die Performance und Kapazität des Dateisystems im hier verlinkten Blog weiter nach oben skaliert werden. BeeGFS unterstützt mehrere Linux-Distributionen und ist für die Arbeit mit jedem POSIX-konformen lokalen Dateisystem konzipiert. BeeGFS unterstützt auch die Ausführung mehrerer Instanzen eines bestimmten Services auf demselben Server.
Die Dell Ready Solutions für HPC BeeGFS-Storage nutzt alle wichtigen Funktionen des BeeGFS-Dateisystems und ist auf hohe Performance ausgelegt. Die Lösung verwendet PowerEdge R740xd-Server zum Speichern, Bereitstellen und/oder Verarbeiten von Metadaten und Daten. Jeder PowerEdge R740xd-Server verfügt über 24 Intel P4600 NVMe-SSDs mit 1,6 TB, die nach den SSDs als zweiter großer Fortschritt in der Laufwerkstechnologie gelten. In HPC-Umgebungen kann der Scratch-Speicherplatz oft ein einschränkender Faktor sein. Er kann zu klein oder zu langsam sein. Die Dell EMC Ready Solutions für HPC BeeGFS-Storage sind für die Verwendung als Scratch-Lösung konzipiert und stellen den Scratch-Storage über das BeeGFS-Dateisystem bereit.
BeeGFS umfasst zwei integrierte Benchmarkingtools, die bei der Charakterisierung oder Bewertung von Netzwerken oder Storage helfen können : NetBench bzw. StorageBench . Wenn der NetBench-Modus aktiviert ist, verwerfen die Server empfangene Schreibanforderungen, anstatt die Daten zu schreiben. In ähnlicher Weise werden bei Leseanforderungen statt Lesen aus dem zugrunde liegenden Dateisystem nur die Speicherpuffer an die Clients gesendet. Der NetBench-Modus dient zum Testen des Netzwerk-Streamingdurchsatzes unabhängig von den zugrunde liegenden Festplatten. Zum anderen soll die StorageBench den Streaming-Durchsatz des zugrundeliegenden Dateisystems unabhängig von der Netzwerkleistung messen. StorageBench ist ein Benchmark für Speicherziele, der das Netzwerk nicht verwendet. Der Befehl storage-bench sendet einfach die Anforderung an die Speicherziele, mit dem Schreiben/Lesen von Daten zu beginnen. Auf diese Weise eliminieren wir die Auswirkungen des Netzwerks. Das Ergebnis, das wir von der Storage-Bank erhalten, ist die beste Leistung, die das System erreichen kann, wenn die Netzwerkleistung ideal ist. In diesem Blog wird erläutert, wie mit StorageBench die Performance verschiedener Storage-Ziele verglichen und so defekte oder falsch konfigurierte Ziele identifiziert werden können.
StorageBench – Zum Vergleichen der Leistung verschiedener RAID-Konfigurationen
StorageBench verwendet nicht das gemountete Dateisystem. Wenn wir StorageBench ausführen, gibt es nur ein Ziel pro Datei. Storagebench erstellt auf jedem Speicherziel auf dem System ein Verzeichnis, in dem Testdateien erstellt werden, die der Anzahl der Test-Threads entspricht. Daten werden direkt dorthin gestreamt, um den für jedes Speicherziel verfügbaren Low-Level-Durchsatz anzuzeigen. Ohne Netzwerkkommunikation kann Datei-Striping nicht simuliert werden. Die Ergebnisse der Storage-Benchmark sind also eher vergleichbar mit Client-I/O mit deaktiviertem Striping. Wenn Benchmarks ausgeführt werden, wird die Datei über vier Speicherziele verteilt, wenn das Standard-Striping-Muster angewendet wird.
Zum Testen der verschiedenen Speicherziele wurden die kleinen und mittleren Konfigurationen verwendet, die im Blog zur Skalierbarkeit der Dell BeeGFS-Speicherlösung beschrieben sind. Beide Konfigurationen verfügen über die gleiche Anzahl von Metadatenzielen, die in RAID 1 konfiguriert sind. Sie unterscheiden sich in der RAID-Konfiguration der Speicherziele. Während in der kleinen Konfiguration der Storage in RAID 0 mit sechs Laufwerken konfiguriert sind, sind in der mittleren Konfiguration die Speicherziele in RAID 10 mit sechs Laufwerken konfiguriert. Die Speicherziele, die für die kleine und mittlere Konfiguration konfiguriert wurden, sind unten tabellarisch aufgeführt:
| Tabelle 1: Testumgebungskonfiguration | ||
|---|---|---|
| Konfiguration | Mittel – RAID 10 für Speicherziele | Klein – RAID 0 für Storage-Ziele |
| Anzahl der Metadatenziele | 6 | 6 |
| Anzahl der Instanzen des Metadatenservice | 6 | 6 |
| Anzahl der Storage-Server | 5 | 2 |
| Anzahl der Speicherziele | 22 | 10 |
| Anzahl der Storage-Services pro Server | 4 | 4 |
| Anzahl der Storage-Services pro NUMA-Zone | 2 | 2 |
| Anzahl der Ziele pro Instanz des Storage-Services | 2 | 2 |
Hinweis: Die obige Konfiguration des mittleren Setups dient nur zum Testen des Durchsatzes von Speicherzielen, die in verschiedenen RAID-Konfigurationen mit dem StorageBench-Tool konfiguriert sind.
StorageBench-Schreibbenchmark – auf der kleinen Konfiguration mit in RAID 0 konfigurierten Speicherzielen
Der Speicher-Benchmark wird mit dem Tool beegfs-ctl gestartet und überwacht. Das Paket beegfs-utils enthält das Befehlszeilentool beegfs-ctl, mit dem der Benchmark für Speicherziele ausgeführt werden kann. Im folgenden Beispiel wird ein Schreibbenchmark auf allen Zielen aller BeeGFS-Speicherserver mit einer I/O-Blockgröße von 512 KB gestartet, wobei 16 Threads pro Ziel verwendet werden, von denen jeder 200 GB Daten in eine eigene Datei schreibt.
[root@stor1 ~]# beegfs-ctl --storagebench --alltargets --write --blocksize=512K --size=200G --threads=16 Write storage benchmark was started. You can query the status with the --status argument of beegfs-ctl. Server benchmark status: Running: 10
Die Rubrik "Running: Die Ausgabe von 10" gibt an, dass insgesamt 10 Speicherziele im System konfiguriert sind.
Um den Benchmarkstatus/die Benchmarkergebnisse aller Ziele abzufragen, kann der folgende Befehl ausgeführt werden:
[root@stor1 ~]# beegfs-ctl --storagebench --alltargets --status Server benchmark status: Finished: 10 Write benchmark results: Min throughput: 4692435 KiB/s nodeID: stor1-numa0-2 [ID: 6], targetID: 50 Max throughput: 5368537 KiB/s nodeID: meta-stor-numa1-2 [ID: 2], targetID: 48 Avg throughput: 4907091 KiB/s Aggregate throughput: 49070915 KiB/s
Wenn Sie dem obigen Befehl ausführliche Informationen hinzufügen, wird die Liste aller Ziele und deren jeweiliger Durchsatz angezeigt.
[root@meta-stor ~]# beegfs-ctl --storagebench --alltargets --status --verbose Server benchmark status: Finished: 10 Write benchmark results: Min throughput: 4692435 KiB/s nodeID: stor1-numa0-2 [ID: 6], targetID: 6 Max throughput: 5368537 KiB/s nodeID: meta-stor-numa1-2 [ID: 2], targetID: 2 Avg throughput: 4907091 KiB/s Aggregate throughput: 49070915 KiB/s List of all targets: 1 5368477 KiB/s nodeID: meta-stor-numa1-1 [ID: 1] 2 5368537 KiB/s nodeID: meta-stor-numa1-2 [ID: 2] 3 4706368 KiB/s nodeID: stor1-numa0-1 [ID: 3] 4 4896077 KiB/s nodeID: stor1-numa1-1 [ID: 4] 5 4872876 KiB/s nodeID: stor1-numa1-2 [ID: 5] 6 4692435 KiB/s nodeID: stor1-numa0-2 [ID: 6] 7 4879054 KiB/s nodeID: stor2-numa1-2 [ID: 7] 8 4864737 KiB/s nodeID: stor2-numa1-1 [ID: 8] 9 4696152 KiB/s nodeID: stor2-numa0-1 [ID: 9] 10 4726202 KiB/s nodeID: stor2-numa0-2 [ID: 10]
Inferenz aus der Ausgabe:
Der durchschnittliche Durchsatz pro in RAID 0 konfiguriertem Speicherziel beträgt 5,02 GB/s.
StorageBench-Schreibbenchmark – mittlere Konfiguration mit in RAID 10 konfigurierten Speicherzielen
Im folgenden Beispiel wird ein Schreibbenchmark auf allen Zielen aller BeeGFS-Speicherserver mit einer I/O-Blockgröße von 512 KB gestartet, wobei 16 Threads pro Ziel verwendet werden, von denen jeder 200 GB Daten in eine eigene Datei schreibt.
[root@node001 ~]# beegfs-ctl --storagebench --alltargets --write --blocksize=512K --size=200G --threads=16 Write storage benchmark was started. You can query the status with the --status argument of beegfs-ctl. Server benchmark status: Running: 22
Wenn Sie dem obigen Befehl ausführliche Informationen hinzufügen, wird die Liste aller Ziele und deren jeweiliger Durchsatz angezeigt.
[root@node001 ~]# beegfs-ctl --storagebench --alltargets --status --verbose Server benchmark status: Finished: 22 Write benchmark results: Min throughput: 2705987 KiB/s nodeID: node006-numa0-1 [ID: 19], targetID: 1 Max throughput: 3364311 KiB/s nodeID: node001-numa1-1 [ID: 1], targetID: 1 Avg throughput: 3212845 KiB/s Aggregate throughput: 70682603 KiB/s List of all targets: 1 3364311 KiB/s nodeID: node001-numa1-1 [ID: 1] 2 3361591 KiB/s nodeID: node001-numa1-2 [ID: 2] 3 3309530 KiB/s nodeID: node002-numa0-1 [ID: 3] 4 3312840 KiB/s nodeID: node002-numa0-2 [ID: 4] 5 3332095 KiB/s nodeID: node002-numa1-1 [ID: 5] 6 3323319 KiB/s nodeID: node002-numa1-2 [ID: 6] 7 3313000 KiB/s nodeID: node003-numa0-1 [ID: 7] 8 3321214 KiB/s nodeID: node003-numa0-2 [ID: 8] 9 3335072 KiB/s nodeID: node003-numa1-1 [ID: 9] 10 3339743 KiB/s nodeID: node003-numa1-2 [ID: 10] 11 3302175 KiB/s nodeID: node004-numa0-1 [ID: 11] 12 3309474 KiB/s nodeID: node004-numa0-2 [ID: 12] 13 3329879 KiB/s nodeID: node004-numa1-1 [ID: 13] 14 3328291 KiB/s nodeID: node004-numa1-2 [ID: 14] 15 3306132 KiB/s nodeID: node005-numa0-1 [ID: 15] 16 3307096 KiB/s nodeID: node005-numa0-2 [ID: 16] 17 3318436 KiB/s nodeID: node005-numa1-1 [ID: 17] 18 3329684 KiB/s nodeID: node005-numa1-2 [ID: 18] 19 2705987 KiB/s nodeID: node006-numa0-1 [ID: 19] 20 2716438 KiB/s nodeID: node006-numa0-2 [ID: 20] 21 2707970 KiB/s nodeID: node006-numa1-1 [ID: 21] 22 2708326 KiB/s nodeID: node006-numa1-2 [ID: 22]
Inferenz aus der Ausgabe:
Der durchschnittliche Durchsatz pro Storage-Ziel beträgt 3,29 GB/s.
Aus den Ergebnissen der StorageBench-Benchmarktests, die auf zwei verschiedenen BeeGFS-Setups durchgeführt wurden, einer mit in RAID 0 konfigurierten Speicherzielen und einem mit in RAID 10 konfigurierten Speicherzielen, geht hervor, dass die Schreibleistung besser ist, wenn die Speicherziele in RAID 0 als in RAID 10 konfiguriert sind. Wenn der Befehl dd verwendet wurde, um eine 10-GB-Datei mit einer Blockgröße von 1 M und "oflag=direct" zu schreiben, lag der durchschnittliche Durchsatz bei etwa 5,1 GB/s für das kleine, in RAID 0 konfigurierte System, während der durchschnittliche Durchsatz bei etwa 3,4 GB/s für das mittlere System in RAID 10 lag, was mit den Ergebnissen vergleichbar ist, die mit dem Storagebench-Tool erzielt wurden.
StorageBench – So identifizieren Sie defekte oder falsch konfigurierte Speicherziele
StorageBench wurde auf der mittleren Konfiguration ausgeführt, die im Ankündigungsblog beschrieben wurde, um herauszufinden, ob es falsch konfigurierte oder defekte Speicherziele im System gibt.
[root@node001 ~]# beegfs-ctl --storagebench --alltargets --status --verbose Server benchmark status: Finished: 33 Read benchmark results: Min throughput: 2830479 KiB/s nodeID: node003-numa1-2 [ID: 14], targetID: 14 Max throughput: 3025500 KiB/s nodeID: node005-numa0-1 [ID: 22], targetID: 22 Avg throughput: 2917836 KiB/s Aggregate throughput: 96288596 KiB/s List of all targets: 1 2950039 KiB/s nodeID: node001-numa1-1 [ID: 1] 2 2956121 KiB/s nodeID: node001-numa1-2 [ID: 2] 3 2954473 KiB/s nodeID: node001-numa1-3 [ID: 3] 4 2957658 KiB/s nodeID: node002-numa0-1 [ID: 4] 5 2947109 KiB/s nodeID: node002-numa0-2 [ID: 5] 6 2969886 KiB/s nodeID: node002-numa0-3 [ID: 6] 7 2892578 KiB/s nodeID: node002-numa1-1 [ID: 7] 8 2886899 KiB/s nodeID: node002-numa1-2 [ID: 8] 9 2888972 KiB/s nodeID: node002-numa1-3 [ID: 9] 10 2861995 KiB/s nodeID: node003-numa0-1 [ID: 10] 11 2874314 KiB/s nodeID: node003-numa0-2 [ID: 11] 12 2879096 KiB/s nodeID: node003-numa0-3 [ID: 12] 13 2832635 KiB/s nodeID: node003-numa1-1 [ID: 13] 14 2830479 KiB/s nodeID: node003-numa1-2 [ID: 14] 15 2830971 KiB/s nodeID: node003-numa1-3 [ID: 15] 16 2986890 KiB/s nodeID: node004-numa0-1 [ID: 16] 17 2979197 KiB/s nodeID: node004-numa0-2 [ID: 17] 18 2983958 KiB/s nodeID: node004-numa0-3 [ID: 18] 19 2897974 KiB/s nodeID: node004-numa1-1 [ID: 19] 20 2900880 KiB/s nodeID: node004-numa1-2 [ID: 20] 21 2904036 KiB/s nodeID: node004-numa1-3 [ID: 21] 22 3025500 KiB/s nodeID: node005-numa0-1 [ID: 22] 23 3021558 KiB/s nodeID: node005-numa0-2 [ID: 23] 24 3017387 KiB/s nodeID: node005-numa0-3 [ID: 24] 25 2921480 KiB/s nodeID: node005-numa1-1 [ID: 25] 26 2930226 KiB/s nodeID: node005-numa1-2 [ID: 26] 27 2930548 KiB/s nodeID: node005-numa1-3 [ID: 27] 28 2900018 KiB/s nodeID: node006-numa0-1 [ID: 28] 29 2898520 KiB/s nodeID: node006-numa0-2 [ID: 29] 30 2907113 KiB/s nodeID: node006-numa0-3 [ID: 30] 31 2855079 KiB/s nodeID: node006-numa1-1 [ID: 31] 32 2853527 KiB/s nodeID: node006-numa1-2 [ID: 32] 33 2861480 KiB/s nodeID: node006-numa1-3 [ID: 33]
Aus der obigen Ausgabe geht hervor, dass alle Storage-Ziele einheitlich funktionieren und keine fehlerhaften Ziele im System vorhanden sind.
Schlussfolgerungen und zukünftige Arbeiten
In diesem Blog wurden die wichtigsten Funktionen von BeeGFS besprochen und die Nützlichkeit der Storage-Bench-Benchmark erläutert, um die Performance verschiedener RAID-Konfigurationen zu bewerten oder zu vergleichen und um festzustellen, ob eines der Storage-Ziele defekt oder falsch konfiguriert ist. Als Teil der nächsten Schritte werden wir später ein Whitepaper veröffentlichen, das die Metadatenleistung und die IOR-Leistung sowie zusätzliche Details zu Designüberlegungen, Tuning und Konfiguration enthält.
Referenzen
1) Dell EMC Ready Solutions für HPC BeeGFS-Storage PowerEdge: Dell Ready Solutions für HPC BeeGFS-Hochleistungsspeicher
2) Skalierbarkeit von Dell Ready Solutions für HPC BeeGFS-Storage PowerEdge: Skalierbarkeit von Dell Ready Solutions für HPC BeeGFS-Storage
3) BeeGFS-Dokumentation:
https://www.beegfs.io/wiki/4) So verbinden Sie zwei Schnittstellen im selben Subnetz:
https://access.redhat.com/solutions/305645) Referenzdesign für PCI-Express-Direktspeicherzugriff mit externem Speicher: https://www.intel.com/content/www/us/en/programmable/documentation/nik1412547570040.html#nik1412547565760