Notizen aus Vortrag von Ralph Dehner (B1 Systems GmbH
) auf dem LinuxTag 2009.
Allgemein
- Der Hauptunterschied zwischen einem Standarddateisystem wie ext3 oder xfs und einem Clusterdateisystem ist die Möglichkeit von mehreren Rechnern parallel auf das Clusterdateisystem schreibend zuzugreifen. Das clusterweite File-Locking wird dabei über sogenannte Lockmanager durchgefürt.
- General Parallel File System (kurz GPFS) ist ein kommerzielles Clusterfilesystem vom IBM.
- Alternative Clusterdateisysteme sind:
- GFS(2) von IBM
- GlusterFS
- Lustre von Sun
- OCFS(2) von Oracle
- IBM bietet für GPFS Support für SLES und RHEL.
- GPFS läuft auch auf dem hauseigenen AIX und eingeschränkt auf Solaris und Windows.
Kosten
- Je nach Abnahmemenge, B1 Systems zahlt etwa 50$ für einen Knoten (bei einem 10-Knoten-Cluster)
Features
- Simulatener Zugriff von verschiedenen Serverknoten auf ein- und dieselbe Datei.
- Durch Parallelisierung von Zugriffen kann eine hohe Performance erreicht werden.
- Theoretisch ist ein Cluster mit bis zu 8000 Nodes möglich.
- Striping (Raid 0) und Replikation (Raid 1) sind im Dateisystem integriert.
- Mit Devicegruppen ist zusätzlich eine Kombination aus RAID-0 und RAID-1 (also RAID-10) möglich.
- Viele Konfigurationsanpassungen können im laufendem Betrieb durchgeführt werden.
- Das Dateisystem kann auch von Systemen gemountet werden, die keinen direkten Zugriff auf das entsprechende Blockdevice haben. Der Zugriff wird dann über das LAN geleitet (siehe Foto von Beispielkonfiguration: Node2 kann über das LAN auf BD1 zugreifen, obwohl es keine direkte Storage-Verbindung dazu hat).
- Storage Pools, Policies und Filesets sorgen für einfaches und flexibles Speichermanagement: Beispiel automatische Umschichtung von älteren Daten (älter als x Wochen) auf kostengünstigere Storage-Systeme.
- Ähnlich wie bei LVM können Snapshots vom Dateisystem erstellt werden.
Beispielkonfiguration

- BD steht für Blockdevice, also z.B. eine SCSI-Festplatte oder ein LUN-Device von einem ISCSI-Storage.
- GPFS greift über sogenannte Network Shared Disks (NSDs) auf die Block-Devices zu.
- 2 Knoten werden als NSD-Server (Primary und Backup) definiert, die die Cluster-Konfig vorhalten und auf die anderen Systeme verteilen.
- Das Blockdevice #5 (BD5) spielt in dieser Konfiguration als "tiebreaker disk" eine besondere Rolle. Sie dient als "Entscheidungshilfe" bei einem Split des Clusters in gleichgroße Teile (z.B. 2 Nodes vs 2 Nodes).
Wichtigste Befehle für den Anfang
Das jetzige GPFS war ursprünglich ein Multimedia-Filesystems von IBM aus dem Jahre 1996. Daher beginnen die Kommandozeilenbefehle aus historischen Gründen noch mit "mm" (MultiMedia).
Erste Schritte
- Die Steuerung und die Verteilung der Konfigurationsdateien erfolgt meist über ssh und scp. Dabei sollte der gegenseitige SSH-Zugriff zwischen den Serverknoten mittels "passwortlosen" SSH-Keys konfiguriert sein.
Cluster erstellen:
- gpfs_nodes.lst enthält Liste aller Nodes
- Mit -p und -s werden der Primary
- und Slave-GPFS-Server definiert, die die aktuellen Metainformationen im Betrieb verwalten. Fällt der Master-Server aus übernimmt der Slave-Server. - Mir -r und -R werden die Befehle definiert, über die die Steuerung (z.B. Starten und Stoppen der Dienste auf den Serverknoten) und Verteilung der Konfigurationsdateien stattfinden soll.
- Mit -C wird der Name des erstellten Clusters festgelegt.
Cluster auf allen Serverknoten starten:
NSDs erstellen:
- gpfs_disks.list hält die Liste der auf den verschiedenen Knoten verfügbaren Devices.
Dateisystem erstellen:
- Neues Dateisystem ist danach über /dev/mygpfs1 verfügbar.