PowerEdge: Skalierbarkeit von Dell Ready Solutions for HPC BeeGFS Storage
Summary: So skalieren Sie die Dell BeeGFS High-Performance Storage-Lösung in Bezug auf Kapazität und/oder Performance.
Instructions
Inhaltsverzeichnis
- Einführung
- Basiskonfigurationen
- Berechnung des nutzbaren BeeGFS-Speicherplatzes
- Skalierbare Konfigurationen
- Performance-Charakterisierung
- Schlussfolgerungen und zukünftige Arbeiten
Einführung
In diesem Blog wird die Skalierbarkeit von Dell Ready Solutions for HPC BeeGFS Storage erläutert, die vor Kurzem angekündigt wurden. Die BeeGFS-Architektur besteht aus vier Hauptservices: Managementservice, Metadatenservice, Storage-Service und Client-Service. Es ist möglich, eine beliebige Kombination dieser vier Hauptservices sowie alle zusammen auf demselben Server auszuführen, da die Rollen und die Hardware im Falle von BeeGFS nicht nahtlos integriert sind. In einer „hyperkonvergenten Lösung“ werden alle vier Services auf demselben Server ausgeführt. Diese Konfiguration wird für performancekritische Umgebungen nicht empfohlen, da Client-Anwendungen in der Regel Ressourcen verbrauchen, was sich auf die Performance der Storage-Services auswirken kann. Die Dell Lösung verwendet dedizierte Storage-Server sowie einen Doppelfunktions-Metadaten- und -Storage-Server, um eine leistungsfähige und skalierbare Storage-Lösung bereitzustellen. Das System kann skaliert werden, indem zusätzliche Storage-Server zu einem vorhandenen System hinzugefügt werden. In diesem Blog stellen wir Konfigurationen mit einer unterschiedlicher Anzahl an Storage-Servern sowie die mit diesen Konfigurationen zu erwartende Performance vor.
Basiskonfigurationen
Die BeeGFS-Storage-Lösung, die für die Bereitstellung eines leistungsstarken Scratch-Dateisystems entwickelt wurde, besteht aus den folgenden Hardwarekomponenten:
- Managementserver
- R640, zwei Intel Xeon Gold 5218, 2,3 GHz, 16 Cores, 96 GB (12 x 8-GB-RDIMMs, 2.666 MT/s), 6 x 15.000 RPM, 300 GB SAS, H740P
- Metadaten- und Storage-Server
- R740xd, 2 x Intel Xeon Platinum 8268 CPU, 2,90 GHz, 24 Cores, 384 GB (12 x 32-GB-RDIMMs, 2.933 MT/s)
- BOSS-Karte mit 2 x 240-GB-M.2-SATA-SSDs in RAID 1 für das Betriebssystem
- 24 x Intel, 1,6 TB, NVMe, gemischte Verwendung Express Flash, 2,5"-SFF-Laufwerke, Software-RAID
Der Managementserver führt den BeeGFS-Monitoringservice aus. Der Metadatenserver verwendet die 12 Laufwerke in der NUMA-Zone 0 zum Hosten der Metadatenziele (MDTs), während die verbleibenden 12 Laufwerke in der NUMA-Zone 1 die Storage-Ziele (STs) hosten. Es wird kein dedizierter Metadatenserver verwendet, da die Anforderungen an die Storage-Kapazität für BeeGFS-Metadaten gering sind. Die Metadaten- und Storage-Ziele sowie -Services befinden sich auf separaten NUMA-Nodes, sodass eine beträchtliche Trennung der Workloads hergestellt wird. Die in der Konfiguration verwendeten Storage-Server führen drei Storage-Services pro NUMA-Zone aus, also insgesamt sechs pro Server. Weitere Informationen finden Sie im Ankündigungsblog. Abbildung 1 zeigt die beiden Basiskonfigurationen, die im Dell EMC HPC and AI Innovation Lab getestet und validiert wurden.

Abbildung 1: Basiskonfigurationen
Die kleine Konfiguration besteht aus drei R740xd-Servern. Sie verwendet 15 Storage-Ziele. Die mittelgroße Konfiguration besteht aus sechs R740xd-Servern und 33 Storage-Zielen. NutzerInnen können mit einer kleinen oder mittelgroßen Konfiguration beginnen und nach Bedarf weitere Storage- oder Metadatenserver hinzufügen, um den Speicherplatz, die Gesamtperformance oder die Anzahl der Dateien und die Metadatenperformance zu erhöhen. Tabelle 1 zeigt die Performancedaten für die Basiskonfigurationen, die im Dell HPC and AI Innovation Lab ausgiebig getestet und validiert wurden.
| Basiskonfiguration | Klein | Mittelgroß | |
|---|---|---|---|
| U insgesamt (MDS+SS) | 6U | 12U | |
| Anzahl dedizierter Storage-Server | 2 | 5 | |
| Anzahl NVMe-Laufwerke für Daten-Storage | 60 | 132 | |
| Geschätzter nutzbarer Speicherplatz | 1,6 TB | 86 TiB | 190 TiB |
| 3,2 TB | 173 TiB | 380 TiB | |
| 6,4 TB | 346 TiB | 761 TiB | |
| Spitzenwert bei sequenziellen Lesevorgängen | 60,1 GB/s | 132,4 GB/s | |
| Spitzenwert bei sequenziellen Schreibvorgängen | 57,7 GB/s | 120,7 GB/s | |
| Zufällige Lesevorgänge | 1,8 Millionen IOPS | 3,54 Millionen IOPS | |
| Zufällige Schreibvorgänge | 1,84 Millionen IOPS | 3,59 Millionen IOPS | |
Tabelle 1: Kapazitäts- und Performancedetails der Basiskonfigurationen
Berechnung des nutzbaren BeeGFS-Speicherplatzes
Der geschätzte nutzbare Speicherplatz wird in TiB berechnet (da die meisten Tools den nutzbaren Speicherplatz in Binäreinheiten angeben). Die folgende Formel wird verwendet:
BeeGFS Usable Space in TiB= (0.99* # of Drives* size in TB * (10^12/2^40)
In der obigen Formel ist 0,99 der Faktor, der durch die konservative Annahme eines Overheads von 1 % durch das Dateisystem ermittelt wurde. Um die Anzahl der Laufwerke für Storage zu ermitteln, werden auch 12 Laufwerke aus dem MDS einbezogen. Dies liegt daran, dass im MDS die 12 Laufwerke in NUMA-Zone 0 für Metadaten und die 12 Laufwerke in NUMA-Zone 1 für Storage verwendet werden. Der letzte Faktor in der Formel 10^12/2^40 dient der Konvertierung des nutzbaren Speicherplatzes von TB in TiB.
Skalierbare Konfigurationen
Die BeeGFS High-Performance Storage-Lösung ist für Flexibilität konzipiert und lässt sich durch Hinzufügen zusätzlicher Server einfach und nahtlos skalieren, wie unten dargestellt:
Abbildung 2: Beispiele für skalierte Konfigurationen
Der Metadatenanteil des Stacks bleibt für alle oben genannten Konfigurationen, die in diesem Blog beschrieben werden, gleich. Dies liegt daran, dass die Storage-Kapazitätsanforderungen für BeeGFS-Metadaten in der Regel 0,5 bis 1 % der gesamten Storage-Kapazität betragen. Es hängt jedoch tatsächlich von der Anzahl der Verzeichnisse und Dateien im Dateisystem ab. In der Regel können NutzerInnen einen weiteren Metadatenserver hinzufügen, wenn der Prozentsatz der Metadatenkapazität des Storage unter 1 % fällt. Tabelle 2 zeigt die Performancedaten für die verschiedenen flexiblen Konfigurationen der BeeGFS-Storage-Lösung.
| Konfiguration | Klein | Klein+1 | Klein+2 | Mittelgroß | Mittelgroß+1 | |
|---|---|---|---|---|---|---|
| U insgesamt (MDS+SS) | 6U | 8U | 10U | 12U | 14U | |
| Anzahl dedizierter Storage-Server | 2 | 3 | 4 | 5 | 6 | |
| Anzahl NVMe-Laufwerke für Daten-Storage | 60 | 84 | 108 | 132 | 156 | |
| Geschätzter nutzbarer Speicherplatz | 1,6 TB | 86 TiB | 121 TiB | 156 TiB | 190 TiB | 225 TiB |
| 3,2 TB | 173 TiB | 242 TiB | 311 TiB | 380 TiB | 449 TiB | |
| 6,4 TB | 346 TiB | 484 TiB | 622 TiB | 761 TiB | 898 TiB | |
| Spitzenwert bei sequenziellen Lesevorgängen | 60,1 GB/s | 83,3 GB/s | 105,2 GB/s | 132,4 GB/s | 152,9 GB/s | |
| Spitzenwert bei sequenziellen Schreibvorgängen | 57,7 GB/s | 80,3 GB/s | 99,8 GB/s | 120,7 GB/s | 139,9 GB/s | |
Tabelle 2: Kapazitäts- und Performancedetails skalierter Konfigurationen
Performance-Charakterisierung
Die Performance der verschiedenen Konfigurationen wurde durch das Erstellen von Storage-Pools getestet. Die kleine Konfiguration verfügt über 15 Storage-Ziele und jeder weitere Storage-Server fügt sechs weitere Storage-Ziele hinzu. Um die Performance der verschiedenen Konfigurationen zu testen, wurden Storage-Pools mit 15 bis 39 Storage-Zielen erstellt (in sechser Schritten für klein, klein+1, klein+2, mittelgroß und mittelgroß+1). Für jeden dieser Pools wurden drei Iterationen der IOzone-Benchmark mit jeweils 1 bis 1024 Threads (in zweier Schritten) ausgeführt. Die angewandte Testmethodik ist die gleiche wie im Ankündigungsblog beschrieben. Die Abbildungen 3 und 4 zeigen jeweils die Schreib- bzw. Leseperformance der skalierten Konfigurationen, wobei die Spitzenperformance jeder Konfiguration hervorgehoben ist:

Abbildung 3: Schreibperformance der skalierten Konfigurationen
Abbildung 4: Leseperformance der skalierten Konfigurationen
Hinweis:
Die erwähnten Storage-Pools wurden ausschließlich zu dem Zweck erstellt, die Performance verschiedener Konfigurationen zu charakterisieren. Bei der Performancebewertung der mittelgroßen Konfiguration, die im Ankündigungsblog beschrieben wurde, befanden sich alle 33 Ziele ausschließlich im „Standardpool“. Die Ausgabe des Befehls beegfs-ctl --liststoragepools unten zeigt die Zuweisung der Storage-Ziele:
# beegfs-ctl --liststoragepools Pool ID Pool Description Targets Buddy Groups ======= ================== ============================ ============================ 1 Default 1,2,3,4,5,6,7,8,9,10,11,12, 13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30, 31,32,33
Schlussfolgerungen und zukünftige Arbeiten
In diesem Blog wurde die Skalierbarkeit von Dell Ready Solutions for HPC BeeGFS Storage besprochen sowie die Performance beim sequenziellen Lese- und Schreibdurchsatz der verschiedenen Konfigurationen hervorgehoben. Bleiben Sie dran für Teil 3 dieser Blogserie, in dem weitere Funktionen von BeeGFS und die Verwendung von „StorageBench“, der integrierten Benchmark für Storage-Ziele von BeeGFS, vorgestellt werden. Im Rahmen der nächsten Schritte wird zu einem späteren Zeitpunkt ein Whitepaper mit der Metadatenperformance, der IOR N-1-Performancebewertung sowie weiteren Details zu Designüberlegungen, Tuning und Konfiguration veröffentlicht.
Referenzen
[1] Dell Ready Solutions for HPC BeeGFS Storage: https://www.dell.com/support/article/sln319381/
[2] BeeGFS-Dokumentation: https://www.beegfs.io/wiki/
[3] So verbinden Sie zwei Schnittstellen im selben Subnetz: https://access.redhat.com/solutions/30564
[4] Referenzdesign für PCI Express Direct Memory Access über externen Arbeitsspeicher: https://www.intel.com/content/www/us/en/programmable/documentation/nik1412547570040.html#nik1412547565760