
Auch Storage benötigt viel Platz - hier der DDN Storage an der RWTH Aachen. Foto: Dieter Both, Bull GmbH.
Linux treibt die meisten Supercomputer an. Doch zum schnellen Rechnen gehört auch schneller Datenspeicher. Dieser Artikel stellt leistungsfähige parallele Dateisysteme für’s HPC vor: Lustre, GPFS, Gluster und Co.
“Wer viel rechnet, muss viel speichern. Wer viel speichert, muss dies schnell können.” So lassen sich im Prinzip die Anforderungen an Speicherlösungen im Umfeld des High Performance Computing (HPC) zusammenfassen.
Dass dabei mit einem oder mehreren herkömmlichen NFS-Servern kein Blumentopf zu gewinnen ist, wird einem schnell klar, wenn sich vor Augen hält, wie groß die im vorhergehenden Artikel vorgestellten Umgebungen sind, in denen sich Linux pudelwohl fühlt. Bei teilweise über zehntausend Knoten skalieren die klassischen Ansätze nur sehr begrenzt.
Hier sind Dateisysteme gefragt, die Petabytes im inzwischen zweistelligen Bereich mit Durchsätzen von mehreren hundert Gigabyte pro Sekunde bewältigen. Einzelne Server werden, wie auch bei umfangreichen Berechnungen, hier schnell zum Flaschenhals, weshalb die I/O-Last parallel auf mehrere Knoten verteilt wird.
Zwar gibt es eine Green500-Liste, welche die in der Top500 der schnellsten Computersysteme vertretenen Installationen bezüglich ihrer Energieeffizienz sortiert, aber eine Rangfolge der größten und schnellsten eingesetzten Speichersysteme existiert leider nicht. Von den Machern der Top500 werden ausschließlich die Ergebnisse des prozessorlastigen Linpack-Benchmarks herangezogen, der im Vergleich zu im HPC-Alltag anzutreffenden Anwendungen nur eher geringe I/O-Anforderungen auszeichnet. Daten wie Kapazität, Durchsatz, Dateisystem-Typ oder Lieferant der Storage-Lösungen, die in den Supercomputern zum Einsatz kommen, werden deshalb leider nicht mit der zwei Mal im Jahr erscheinenden Liste veröffentlicht und lassen sich in Eigenregie nur unvollständig recherchieren.
Dabei ist Wissen zu skalierbaren, performanten Speicherlösungen deutlich universeller einsetzbar als nur im HPC-Umfeld, weshalb dieser Artikel die wichtigsten Linux-tauglichen Vertreter dieser Gattung vorstellt.
Lustre
Der Platzhirsch unter den in der Top500 eingesetzten Dateisystemen ist eindeutig die Open-Source-Lösung Lustre. Laut einer inoffiziellen Übersicht (PDF) von Ende 2011 vertrauen circa 64 Prozent der Top100 auf Lustre. Je leistungsfähiger die Supercomputer, desto größer ist die Verbreitung dieses Dateisystems: In den Top 50 und Top 10 liegt der Anteil bei 80 Prozent.
Lustre hat eine vergleichsweise bewegte Vergangenheit hinter sich. Es nahm 1999 als ein Forschungsprojekt an der Carnegie Mellon University unter Peter Braam seinen Anfang. Seine Firma Cluster File Systems (CFS) entwickelte die frühen Versionen von Lustre. 2007 wurde CFS vom Unternehmen Sun Microsystems übernommen, das seinerseits 2010 von Oracle aufgekauft wurde. Ende 2010 kündigte Oracle an, die Weiterentwicklung an Lustre einzustellen, was zu großer Verunsicherung in der HPC-Community bezüglich der Zukunft des Dateisystems führte.
Zwar steht Lustre unter der GPLv2, doch wurde der Großteil der Entwicklung von Sun und später von Oracle getragen. Um für das Dateisystem in Zukunft Weiterentwicklung und Support bieten zu können, bildeten sich schnell eine Reihe von Unternehmen und Organisationen, die Oracles Nachfolge antreten wollen. Besonders das Startup Whamcloud trat hier in den Vordergrund, da es von einer Reihe von Lustre-Veteranen gegründet wurde und diverse ehemalige Lustre-Entwickler übernahm.
Inzwischen findet die weitere aktive Entwicklung bei Whamcloud statt, und als Dachorganisation wacht OpenSFS über die weitere Entwicklung.
Das weitere Fortbestehen von Lustre scheint gesichert und das nicht ganz einsteigerfreundliche Dateisystem findet inzwischen auch in Form von einfacher zu administrierenden Appliances von Data Direct Networks (DDN) und Xyratex den Weg in den Storage-Mainstream.
GPFS
Neben Lustre ist das General Parallel File System (GPFS) von IBM die zweite Standardlösung, wenn es um die Bereitstellung von performanter Storage im Petabyte-Bereich geht. Die Ursprünge von GPFS gehen auf das Dateisystem Tiger Shark zurück, das 1993 in den IBM Forschungslaboren das Licht der Welt erblickte. Zunächst als Backend für Multimedia-Anwendungen gedacht, bewies das Dateisystem schnell seine Eignung für Berechnungsumgebungen, in denen es auf einen hohen Durchsatz und viel Speicherplatz ankommt.
Die ersten Jahre stand das Dateisystem nur für IBMs hauseigenes Unix AIX zur Verfügung, Unterstützung für Linux wurde 2001 hinzugefügt, Unterstützung für Windows Server besteht seit 2008.
GPFS zeichnet sich besonders durch die Integration in das weitere IBM-Storage-Umfeld aus. Es ermöglicht die Definition von Migrationsregeln, die bestimmte Daten auf günstigere Datenträger wie langsamere Festplatten oder final zur Archivierung auf Tape-Drives auslagern und schafft damit hierarchisches Speichermangement (HSM). Als Kriterium könnte zum Beispiel das Datum des letzten Zugriffs, die Dateigröße oder schlicht der Dateityp dienen. So können bei einer Berechnung temporäre Daten anfallen, derer man sich schnellstmöglich entledigen möchte, aber auch Daten, die häufig weiterverwendet werden und deshalb in einen schnellen Speicher gehören. Auch wenn der Zugriff auf ausgelagerte Daten transparent über Stub-Files realisiert wird, treten doch teils merkliche Verzögerungen beim Zugriff auf ein Bandlaufwerk auf.
Eine solche Lösung für das Information Lifecycle Management (ILM) lässt sich zwar grundsätzlich auch hausgemacht mit anderen Lösungen implementieren, aber jeder, der einmal ein “find”-Kommando auf ein entsprechend großes Dateisystem losgelassen hat weiß, dass ein solcher Ansatz mit Bordmitteln nicht skaliert und sehnt sich nach einem performanteren Werkzeug.
Die Backup-Dauer von GPFS profitiert von der Kombination mit IBMs Tivoli Storage Manager (TSM), da hier nicht der komplette Verzeichnisbaum Datei für Datei untersucht werden muss, sondern über ein entsprechendes API auf die Dateisystem-Metadaten zugegriffen werden kann, was den Backup-Lauf signifikant beschleunigt.
Ein Punkt, der bei allen Features und der Leistungsfähigkeit von GPFS nicht außer Acht gelassen werden darf, ist der Umstand, dass GPFS lizenzkostenpflichtig ist. Zwar wird bei der Beschaffung eines Clusters ein Paketpreis verhandelt und nicht der Listenpreis bezahlt, trotzdem können hier signifikante Kosten entstehen. Auch gibt es entsprechende günstige Angebote nur, wenn man alles aus einer Hand kauft – so sind GPFS-Installationen praktisch nur auf IBM-Hardware zu finden.
Ceph
Jenseits des HPC-Dateisystem-Mainstreams mit Lustre und GPFS stehen noch eine Reihe von Alternativen bereit, deren Zukunft sich noch durchaus vielversprechend entwickeln kann, auch wenn sie noch lange nicht den Bekanntheitsgrad der beiden Platzhirsche erreicht haben.
Ein solcher Kandidat ist das unter der LGPL lizenzierte Dateisystem Ceph, das Sage Weil im Zuge seiner Doktorarbeit entwickelt hat. Sein Hauptziel war die Schaffung eines Posix-kompatiblen verteilten Dateisystems, das keinen Single Point of Failure aufweist und bis zu mehreren Petabytes skaliert.
Interessanterweise hat es Ceph schon recht früh in seiner vergleichsweise jungen Geschichte in den Linux-Kernel geschafft. Dort hielt es im März 2010 in die Version 2.6.34 Einzug.
Technologisch nutzt es durch die Unterstützung von Btrfs als Backend sogar modernere Ansätze als Lustre. Allerdings gibt es am US-amerikanischen Lawrence Livermore National Laboratory weiterhin Portierungsbemühungen von ZFS auf Linux. Diese sollen in naher Zukunft den Einsatz von ZFS als Unterbau für Lustre ermöglichen und somit bestehende Probleme wie beispielsweise lange Laufzeiten von Filesystemchecks beim Einsatz von Ext 4 lösen.
Der Fokus von Ceph liegt auf der Hochverfügbarkeit. So unterstützt es die Replikation der Nutzdaten über mehrere Server hinweg, auch Metadaten lassen sich über mehrere Systeme verteilen – alles Features, die bei einem solchen Dateisystem nicht selbstverständlich sind.
Allerdings fehlt Ceph für den HPC-Bereich noch eine Reihe elementarer Merkmale, die erst einen größeren produktiven Betrieb vorstellbar machen. Allem voran die Unterstützung von Remote Direct Memory Access (RDMA), was die erzielbaren Durchsatzraten leider signifikant drückt und den Einsatz von Ceph im HPC-Umfeld eher unattraktiv macht.
Auch wirkt das Dateisystem mit der aktuellen Versionsnummer 0.47.2 noch ein wenig unfertig, so dass man das Dateisystem eher auf eine kleinere Umgebung loslassen sollte.

Schnelle (Infiniband-)Interconnects sind für hohe Durchsätze und niedrige Latenzen Pflicht. Foto: Dieter Both, Bull GmbH.
Gluster
Ein weiterer, vergleichsweise unbekannter Kandidat für eine skalierbare Storage-Lösung ist das unter GPLv3 stehende GlusterFS. Es wird nach der Übernahme von Gluster, Inc durch Red Hat im Jahr 2011, in Zusammenarbeit mit einer aktiven Community weiterentwickelt.
Das modular aufgebaute GlusterFS verspricht, besser als andere Dateisysteme zu skalieren, da es auf Metadatenserver verzichtet. Auch in der Art der Implementierung unterscheidet er sich signifikant von der Konkurrenz: Das Dateisystem läuft im Userspace und nutzt das File System in Userspace (Fuse) als Schnittstelle zum Kernel. Bedingt durch seine vorhandene Infiniband-Unterstützung eignet es sich grundsätzlich als HPC-Dateisystem, doch ist bei hoher IO-Last mit Leistungseinbussen zu rechnen.
Interessanterweise wird es von Red Hat selbst in der Pressemitteilung zur Übernahme nicht als ein HPC-Dateisystem beworben, sondern mehr als ein Cloud-Dateisystem positioniert. Ob für diese Entscheidung technische Gründe hat oder eher auf das Marketing zurückgeht, wird sich mit zunehmender Verbreitung zeigen – größere Installation im HPC-Umfeld sind bislang noch nicht bekannt.
Weitere Informationen zu Installation und Administration von GlusterFS enthält ein (kostenpflichtiger) Artikel im Magazin Admin.
FhGFS
Noch wenig verbreitet ist das Fraunhofer Parallel File System (FhGFS) werfen.
Das FhGFS, vom Fraunhofer Institut für Techno- und Wirtschaftsmathematik (ITWM) entwickelt, kann man kostenfrei herunterladen und einsetzen. Kostenpflichtiger Support kann über das Fraunhofer ITWM bezogen werden.
Aus frühen, im Jahr 2003 gesammelten Erfahrungen mit Lustre entstand der Wunsch, eine eigene Lösung zu etablieren, die sich neben der Leistungsfähigkeit besonders durch eine einfache Installation und Wartung auszeichnet. Diese wurde nach drei Jahren Entwicklungszeit 2007 auf der International Supercomputing Conference vorgestellt.
Noch ist FhGFS eher selten in freier Wildbahn anzutreffen, das Projekt sieht aber die Finanzierung für die nächsten Jahre gesichert und berichtet, dass die Installation am LOEWE-CSC Cluster der Universität Frankfurt ein Petabyte Speicherplatz mit 20GB/sec für 900 Clients zur Verfügung stellt (Vortragsfolien als PDF).
NFS
Auch wenn dieser Artikel eingangs den Oldtimer NFS ins Abseits gestellt hat – Totgesagte leben länger. Dies gilt besonders bei Clustern, die nur aus wenigen Knoten bestehen oder mit einem lokalen Scratch arbeiten und das zentrale Storage wirklich nur als Datenhalde benötigen. Hier bringen parallele Dateisysteme unter Umständen neben oft nicht benötigtem Durchsatz eine unerwünschte Komplexität ins Szenario.
Aber auch in größeren Umgebungen lassen sich aus entsprechend ausgebauten NFS-Fileservern mit vielen Disks und Infiniband- oder 10GE-Anbindung durchaus zufriedenstellende Ergebnisse herauskitzeln. In einem solchen Setup stellt dann aber meist das zur Verfügung stehende Dateisystem den größten Showstopper dar. Die klassischen Dateisysteme wie Ext 4 weisen inzwischen für HPC-taugliche Größenordnungen zu viele Limitierungen auf, und der moderne Nachfolger Btrfs ist für geschäftskritische Lösungen noch nicht geeignet.
Weiteren Aufwind erhält NFS durch die in Version 4.1 im Januar 2010 eingeführte Erweiterung parallel NFS (pNFS). Diese ist allerdings ebenfalls noch zu neu, um signifikante Verbreitung erlangt zu haben.
Fazit
Lustre und GPFS sind aktuell als die Standardlösungen anzusehen, um große Datenmengen mit hohem Durchsatz unter Linux zur Verfügung zu stellen. Gerade bei großen HPC-Installationen führt quasi kein Weg an den beiden starken Kontrahenten vorbei. Lustre spielt mit seiner Quelloffenheit seinen Charme dann aus, wenn man sich nicht an einen Hersteller binden oder das letzte bisschen Performance herauszukitzeln möchte.
IBMs GPFS umgarnt den Kunden hingegen mit einer Reihe von Komfort-Eigenschaften, die ihm spätestens dann gelegen kommen, wenn es darum geht, den zur Verfügung stehenden Speicherplatz aufzuräumen und zu sichern. Gerade für Kunden im Enterprise-Umfeld dürften dies interessant sein, speziell wenn Supercomputer und Storage aus einer Hand kommen und sich entsprechende Projektpreise realisieren lassen.
Lösungen wie Ceph, GlusterFS, FhGFS und NFS haben aber trotz der nahezu erdrückenden Konkurrenz durchaus ihre Daseinsberechtigung. So zielen sie beispielsweise auf maximale Verfügbarkeit der Daten ab, stellen Einfachheit vor Performance, sind noch zu jung um als ernsthafte Konkurrenz wahrgenommen zu werden, oder eben einfach gut genug für den Job.
Losgelöst von sämtlichen technischen Herausstellungsmerkmalen der einzelnen Dateisysteme fällt besonders auf, wie vielfältig und vor allem leistungsfähig die Open-Source-Lösungen sind. Lustres hervorragender Ruf und seine starke Verbreitung in der Top500 kommt schließlich nicht von ungefähr. (mhu)



