Storage Optionen für I/O intensive Applikationen SSCS Team Ulm Christian Mosch, Karsten Siegmund, Jürgen Salk, Matthias Neuer, Vladimir Kushnarenko, Stefan Kombrink, Thomas Nau, Stefan Wesner Steinbuch Centre for Computing (SCC) Förderträger: 2.10.2014 bwhpc-c5 Meeting Karlsruhe www.bwhpc-c5.de
Motivation Motivation und Inhalt Genaue/umfangreiche Quantenchemie-Rechnungen => extrem hoher temporärer Speicherbedarf (bis zu mehreren TB) => in Form von RAM nicht möglich bzw. wirtschaftlich Daher: Große Auslagerungsdateien als Zwischenspeicher => das senkt zwar den typischen RAM-Bedarf auf < 1TB, jedoch: Problem: Starke Abhängigkeit (Faktor 2-10+) der Rechengeschwindigkeit von dem I/O-Verhalten des Speichersystems der Auslagerungsdatei Optimierung des I/O-Subsystems daher entscheidend, z.b. durch Beimischung von SSDs Inhalt Typisches I/O-Verhalten von Quantenchemie-Anwendungen Hybride SSD-Cache Lösungen Hybride verkettete Speicherbereiche 2
Typisches I/O-Verhalten von Quantenchemie(QC)-Anwendungen 3
Beispiel 1: Kleiner QC-Job der knapp in 16GB RAM passt, Node mit 16GB RAM => jeder I/O schlägt auf Platte durch % of time device spent in servecing IO requests time (sec) Gaussian test925 ~ 28 000 sec J. Salk 4
Gleicher Job, jedoch Node mit 48GB RAM => ~13GB Job und 35 GB Diskfile => I/O wird von "page cache" bedient % of time device spent in servecing IO requests time (sec) Gaussian test925 ~ 11 000 sec J. Salk 5
Beispiel 2: Li6F6 Molpro Job Write I/O Operationen pro Sekunde Write IOPS (1/sec) time (sec) J. Salk 6
Beispiel 2: Li6F6 Molpro Job Read I/O Operationen pro Sekunde Read IOPS (1/sec) I/O Operationen pro Sekunde über dem, was gewöhnliche Festplatten leisten können. Zeitliche Bereiche mit viel und wenig I/O. time (sec) J. Salk 7
Typisches I/O-Verhalten von QC-Rechnungen Aus den Untersuchungen mit Gaussian und Molpro kann auf folgende Kenngrößen zum typischen I/O Verhalten der von uns untersuchten QC Jobs geschlossen werden (pro Job d.h. pro Knoten): Typisches Verhältnis schreiben zu lesen im Bereich 1:2 bis 1:10 Typische I/O-Blockgrößen im Bereich von wenigen Byte bis zu einige MB Typisches Verhältnis random zu sequential im Bereich 3:1 bis 1:3 Typische Festplatten-Belegung von wenigen 100GB bis zu mehreren TB Typisches Verhältnis Phasen ohne zu sehr viel I/O im Bereich 1:1 bis 3:1 Typische IOPS in Phasen mit viel I/O im Bereich 100 bis mehrere 1000 Natürlich sind die I/O-Charakteristika stark abhängig von dem Programm und der verwendeten Methode. Sie können im Einzelfall von den oben genannten Werten auch deutlich abweichen. Trotzdem bieten die genannten Kenngrößen wenigstens einen minimalen Anhaltspunkt zur Planung des I/O-Systems. 8
Typisches I/O-Verhalten von QC-Rechnungen Folgerungen aus dem I/O-Verhalten - "Thesen": Da in der Regel mehr gelesen als geschrieben wird, ist die Lese- Performance wichtiger. Damit drängen sich auch Cache-Lösungen auf (wie man z.b. an den Effekten des "page cache" von Linux sieht). Da die IOPS jenseits dessen liegen, was normale Festplatten leisten können, liegt die Verwendung von SSDs nahe. Da die Gesamtmenge an benötigtem Festplattenplatz als SSD jedoch zu teuer ist, sind Hybrid-Lösungen (SSDs und Festplatten) ökonomisch sinnvoll. Da es Phasen ohne und Phasen mit sehr viel I/O gibt, kann ein zentraler Block-Storage Bereich zusammen mit einem Cache-artigen SSD-System im Durchschnitt den Jobs die beste Performance bereitstellen. 9
Hybrid SSD-Cache Lösungen 10
SSD-Cache Lösungen Intel CAS - Cache Accelerating Software Flash Cache - Facebook Bcache - Block layer Cache im Kernel Schreiben: Write through Write back Lesen: Cache hit Programm SSD Disk Cache miss 11
Probleme mit SSD-Cache Lösungen Cache (SSD) kleiner als Disk (andernfalls nicht sinnvoll). => Verschiedene Strategien, welche Blöcke verworfen werden: least recently used (LRU) first in, first out Problem: Oft tasten QC-Programme den kompletten Datenbereich ab => viele Cache Misses Angepasste Cache-Algorithmen werden benötigt avg MB/s 400 200 quantchem hdd flashcache ssd SSD Cachsize 0 20 40 60 80 100 Filesize(GB) Flash Cache Test, M. Neuer 12
Zwischenergebnis zu SSD-Cache Lösungen Intel CAS - Cache Accelerating Software Beste Performance Sehr hoher Memory-Verbrauch (~300 MB je GB SSD-Cache) Flash Cache - Facebook Etwas geringere Performance; noch OK Akzeptabler Memory-Verbrauch Bcache - Block layer Cache im Kernel Gute Performance, jedoch bisher schlechte Unterstützung unter RHEL Standard-Strategien zum Verwerfen der Blöcke für QC nicht optimal SSD-Cache überdeckt Festplatten-Platz, d.h. kein zusätzlicher Platz Weitere Untersuchungen bis Ende2015 (Kooperation mit NEC) 13
Hybrid verkettete Speicherbereiche 14
Hybrid-Verkettete Speicherbereiche Verkettung durch - LVM 2 große und flexible Blöcke (gewählt Variante) - RAID0 weniger flexibel, da nur "Verdopplung" möglich Offensichtlicher Vorteil: SSD-Bereich trägt zum Gesamtspeicher bei Problematisch: Wo landen die Daten, wenn geschrieben wird? Reihenfolge SSD und Disk wichtig Eigenschaften des Programms und dessen I/O wichtig Programm Disk SSD 15
Block I/O layer trace (blktrace) 10 dd-test files (100MB) in 1 or 10 dirs (xfs) File 10 File 2 File 1 File 3 File 4 xfs agsize Files 1-10 J. Salk 16
Block I/O layer trace (blktrace) 10 dd-test files (100MB) in 1 or 10 dirs (xfs) File 10 File 3 File 4 File 2 File 1 Files 1-10 J. Salk 17
Location on concat. Filesystem [block number] blktrace of 2 * Molpro LCCSD-j2-c8 LVM-Verbund aus 3*RAID0-SSD + Remote-BS Write and read operations Time [sec] local SSD Remote attached device J. Salk 18
Einfluss SSD-Anteil auf LCCSD-j2-c8 Laufzeit LVM-Verbund aus 3*RAID0-SSD + Remote-BS LVM-Hybrid-Lösung schneller als lineare Interpolation zwischen SSD- und HD- Geschwindigkeit Gewinn durch SSD größter als SSD-Anteil am Gesamtspeicher Grund: 70% des I/Os findet auf SSD statt (siehe blktrace auf vorheriger Seite) Average LCCSD-j2-c8 runtime [sec] (smaller is better) 19000 17000 15000 13000 11000 9000 Avg (xfs) [sec] Avg (ext4) [sec] SSD-Cache Hybrid RAID0-Hybrid LVM-Hybrid 7000 1 25 50 75 100 SSD share [percent of total benchmark disk size (600GB)] 19
Zusammenfassung und Ausblick Quantenchemie-Rechnungen: => Hohe Anforderungen an I/O-Leistung und temporären HD-Platz SSD-Festplatten-Hybrid-Lösungen möglicher Ansatz, um diesen Anforderungen kosteneffizient gerecht zu werden SSD-Cache basierte Lösungen bisher nicht mit optimaler Performance LVM-verkettete SSD/remote-block-Storage Hybrid-Lösungen mit guter Performance und optimaler Raumnutzung. Dies ist die Lösung, welche wir zuerst umsetzen werden. Hybriden FS Lösungen Gegenstand weiterer Untersuchungen; Kooperation mit NEC; Sukzessive Überführung vom prototypischen Betrieb in den Produktivbetrieb bis Ende 2015 20
Vielen Dank... für Ihre Aufmerksamkeit... an das Ministerium für Wissenschaft, Forschung und Kunst für die Förderung der Projekte bwhpc-c5 und bwforcluster... an die Mitarbeiter des Kompetenzzentrums... an die bwhpc-c5 Projektleitung des Karlsruher Instituts für Technologie... an die Leitung des Kommunikations und Informationszentrums der Universität Ulm Installation 21
~20% ~20% Molpro LCCSD-j2-c8 Benchmark Chunksize Abhängigkeit, 3*SSD RAID0 Average LCCSD-j2-c8 runtime [sec] (smaller is better) 8600 8400 8200 8000 7800 7600 7400 7200 7000 4 8 16 32 64 range of reasonable chunk size for SSDs (LCCSD type jobs) 128 512 2048 8192 32768 256 1024 4096 16384 Chunk Size [kb] Avg (xfs) [sec] Avg (ext4) [sec] 22
Molpro LCCSD-j2-c8 Benchmark Chunksize Abhängigkeit, 3*SATA 7.2k RAID0 Average LCCSD-j2-c8 runtime [sec] (smaller is better) 22000 21000 20000 19000 18000 17000 16000 15000 14000 13000 12000 4 8 16 32 64 good chunk sizes for lccsd jobs on sata7k disks 128 512 2048 8192 32768 256 1024 4096 16384 Chunk Size [kb] ~60% ~60% Avg (xfs) [sec] Avg (ext4) [sec] 23