# IBM General Parallel File System

General Parallel File-System (GPFS) ist ein Cluster-Dateisystem von IBM. Es entstand aus mehreren Forschungsprojekten zu parallel arbeitenden Dateisystemen und wird unter mehreren Handelsnamen vertrieben:
* IBM General Parallel Filesystem
* Elastic Storage
* Spectrum Scale

## Geschichte

GPFS entstand aus den IBM-Forschungsprojekten Tiger Shark File System und Vesta File System und wurde ursprünglich als Multimedia-Dateisystem bezeichnet, was sich in internen Bezeichnungen heute noch wiederfindet. Es zeigte sich schnell, dass GPFS vor allem für Höchstleistungsrechner aufgrund seiner parallelen Architektur geeignet ist. 1998 erschien GPFS als offizielles IBM-Produkt und Nachfolger für Vesta/PIOFS als POSIX-konformes Dateisystem.
Bei den Supercomputern ASCI White und ASC Purple am Lawrence Livermore National Laboratory war bzw. wird GPFS eingesetzt. Später wurde es auf weitere Betriebssysteme portiert:
* AIX seit 1998
* Linux seit 2001
* Windows seit 2008
Weitere Netzwerkprotokolle wie CIFS wurden unterstützt. Ursprünglich ein Dateisystem hinter großen Speicherinstallationen, wurde es später von der Hardware unabhängig als Softwareprodukt verkauft. Fähigkeiten wie Shared-Nothing-Cluster kamen in jüngerer Zeit hinzu. Am 14. Juli 2014 kündigte IBM einen Cloud-Dienst namens Elastic Storage an. Am 17. Februar 2015 wurde GPFS von IBM in Spectrum Scale umbenannt.

## GPFS im Supercomputing

GPFS wird als Cluster-Filesystem mit hoher Schreib- / Lesebandbreite in etlichen Installationen der TOP500-Supercomputerliste genutzt, Beispiele:
* NCSA http://www.ncsa.illinois.edu/news/story/ncsa_to_deploy_ibms_gpfs_for_all_supercomputing_systems
* Biowulf/NiH https://www.top500.org/news/nih-receives-major-supercomputer-upgrade/
* Cheyenne/NCAR (SGI) https://www.top500.org/news/ncar-launches-five-petaflop-supercomputer/
* Juron,Julia/Jülich: https://www.top500.org/news/juelich-supercomputing-centre-deploys-cray-and-ibm-supercomputers-for-human-brain-project/
* Leibniz-Rechenzentrum, SuperMUC/München https://www.lrz.de/services/compute/supermuc/systemdescription/
* ASCI White und Purple/LLNL https://asc.llnl.gov/computing_resources/purple/ (2002)
* Argonne Mira System https://www.alcf.anl.gov/mira und https://www.alcf.anl.gov/resources-expertise/data-networking
* ein aktueller Rekord: https://www.heise.de/newsticker/meldung/IBM-Forscher-stellen-Weltrekord-beim-Massenspeicher-Zugriff-auf-1284611.html

## Funktionen

Integrierte Storagesysteme der IBM aus Hardware und Software mit GPFS unter dem Betriebssystem Linux sind:
* V7000 Unified, eine Appliance für Block- und File-Storage
* Elastic Storage Server (ESS), verschiedene Appliances auf Power-Basis für File- und Object-Storage
* SONAS – Scale Out Network Attached Storage https://www.ibm.com/de-en/marketplace/scale-out-file-and-object-storage (inzwischen in Spectrum Scale aufgegangen)
GPFS / Spectrum Scale verfügt über folgende funktionale Eigenschaften:
* mehrere NAS-Rechner können ein Cluster-Volume gleichzeitig (parallel) schreibend mounten, das Filesystem ist damit für sehr viele Clients skalierbar.
* Striping und damit paralleles Lesen und Schreiben werden auf Ebene der Massenspeicher und einzelner Dateien unterstützt. Durch diese Parallelität können sehr hohe Durchsatzraten erreicht werden.
* verteilte Lock-Manager: Paralleles Schreiben auf ein Dateisystem wird dadurch möglich, dass eine Datei zu einem Zeitpunkt nur von einem Prozess geschrieben werden darf
* Metadaten und Daten können auf unterschiedliche Datenträger verteilt werden, um die Leistung zu steigern
* Mehrere GPFS-Server (auch Nodes genannt) arbeiten als ein hoch verfügbares Cluster, Ausfälle werden abgefangen
* GPFS kann ab Version 4.1 auch nach dem Prinzip des Shared Nothing Clusters arbeiten (FPO – File Placement Optimizer) und kann damit als HDFS arbeiten
* sehr große Limits für Dateigröße (8 EB), Verzeichnisgröße, Dateisystemgröße (8 YB), Anzahl Dateien je Dateisystem (2^64)
* Unterstützung für HSM / Hierarchical Storage Management
* die Volumes können mit CIFS- und NFS-Protokoll gleichzeitig freigegeben werden, ab der Version 4.1 auch als Hadoop Distributed Filesystem.
* die Zugriffsrechtesteuerung funktioniert für NFS (für Unix-Systeme) mit POSIX-Dateirechte und für CIFS (Windows-Systeme) mit ACLs. Diese Dateizugriffsrechte sind unabhängig voneinander steuerbar
* Das Dateisystem arbeitet nach dem Copy-On-Write-Prinzip. Analog zu Windows „Schattenkopien“ können Snapshots über jedes exportierte Verzeichnis erreicht werden, sowohl über NFS als auch über CIFS
* Synchrone Replikation eines GPFS-Volumes ist per Failure Groups möglich
* Asynchrone Replikation zwischen verschiedenen GPFS-Volumes ist möglich (Active File Management)