| Global-File-System | |||||
|
Das Global File System (GFS, nicht zu verwechseln mit dem Google File System) und das Global File System 2 (GFS2) ist ein Cluster Dateisystem (Shared Disk File System oder Cluster File System) für Linux Cluster. Ein Cluster Dateisystem nutzt SAN (Storage Area Network) oder eine RAID-Array um den Zugriff auf Speicherplatten (HDD, SSD usw.) auf Blockebene zu ermöglichen. Das GFS unterscheidet sich von anderen Netzwerkdateisystemen oder Verteilten Dateisystemen wie AFS, InterMezzo oder Coda insofern, als allen Knoten direkten Zugriff zu demselben verteilten Speicherblock ermöglicht. Zusätzlich kann GFS als lokales Dateisystem eingesetzt werden. GFS Historisches Das Global File System wurde 1997 im Rahmen einer Studie an der Universität von Minnesota entwickelt. Ursprünglich lief es auf IRIX für Silicon Graphics und wurde dann auf Linux portiert als Open Source Projekt. Nachdem Sistina Software das Projekt übernahm wurde es in ein kommerzielles Projekt umgewandelt. Zwischenzeitlich entstand ein Fork (OpenGFS) der den Distributed Lock Manager OpenDLM einschloss. Schliesslich wurde Sistina Software Ende 2003 von Red Hat aufgekauft, so dass das GFS heute von Red Hat weiterentwickelt und betrieben wird. GFS Cluster Infrastruktur, Locking Red Hat entwickelte mehrere Teile einer Cluster Infrastruktur wie lock_dlm und lock_gulm die auf auf CMAN, DLM und GULM basieren. Weiterhin wurde lock_nolock hinzugefügt. Die Kernelmodule CMAN und ccsd sind für das Dateisystemmanagement verantwortlich, lock_gulm und lock_dlm für das Locking. Der Distributed Lock Manager (DLM) soll Inkonsistenzen beim Zugriff auf die verteilten Daten und Shared Ressources vermeiden. SAN-Umgebung Der Aufbau des GFS basiert auf die Anbindung zu einer Stoarge Area Network (SAN) Umgebung. Die SAN-Umgebung kann in Form einer Fibre-Channel-Architektur mit Network Block Device, einer iSCSI-Implementierung oder mit einer Infiniband Lösung oder auf ATA over Ethernet Basis realisiert sein. Die Kernkomponenten des Software Stacks von GFS umfassen die Cluster Software, der Locking-Mechanismus und das Fencing. Der Administrator wählt in der Cluster Konfiguration aus, welche Knoten zum Cluster dazugehören und damit auf das Cluster Dateisystem zugreifen können. Beim Locking z.B. greift GFS auf die Cluster Prozesse zurück. Fencing Beim Fencing wird der Cluster Rechner vom Cluster-Storage getrennt. Dies soll helfen, die Konsistenz des Clusterdateisystems zu bewahren, da sonst 'tote Knoten' auf das System zugreifen. Fencing wird angewendet, wenn durch entsprechende Heartbeats festgestellt wurde, dass Knoten nicht intakt sind. Es gibt zwei grundsätzliche Ansätze von Fencing: beim Zoning oder I/O-Fencing wird die Trennung beim Fibre-Channel Switch vorgenommen indem der entsprechende Port deaktiviert wird. Dadurch hat der Cluster-Rechner keinen Zugriff mehr auf die SAN-Device. Die andere Methode ist das Power-Fencing bei der der 'tote' Knoten ausgeschaltet oder rebootet wird. Beim GFS ist es möglich, das Power Fencing über integrierte Schnittstellen wie das Intelligent Platform Management Interface (IPMI) oder integrated Lights Out (iLO) zu bewerkstelligen. Weiterhin ist das GFS2 in der Lage, Power-Switches zu adressieren um die daranliegenden Cluster-Rechner vom Strom zu nehmen. Kontextabhängige Pfade Tritt die Situation auf, dass mehrere Cluster Rechner auf dieselben Verzeichnisse zugreifen müssen so helfen kontextabhängige Pfade (Context Dependent Path Names). Bei kontextabhängigen Pfaden greifen Cluster-Rechner zwar auf dieselben Pfaden zu, werden aber auf der physischen Ebene auf unterschiedliche Datenblöcke umgeleitet. Der Clustered Logical Volume Manager 2 hilft mehrere Partitionen zu verwalten. GFS als Journaling Dateisystem, Abgrenzung GFS zu GFS2 GFS und GFS 2 sind auch Journaling Dateisysteme. GFS 2 unterstützt ähnliche Journaling Modi wie ext3. GFS 2 bietet im Unterschied zu GFS ein Metadaten Dateisystem, caching Access Control Lists (ACL), FIEMAP ioctl (um Abfrage Zuordungen von Inodes auf der Speicherplatte vorzunehmen) sowie spezifische Trace Punkte die seit Linux Kernel 2.6.32 verfügbar sind und einiges mehr. GFS Kernelmodule Weitere Kernelmodule sind: Global Network Block Device (das GNBD liefert Treiber der lokale Volumes oder Block Devices über das Netzwerk), Magma (Magma ist eine Bibliothek zum Locking für Transaktionen zwischen GULM und CMAN/DLM ) und einige weitere. Weitere GFS Eigenschaften Eine weitere Eigenschaft von GFS ist, dass es via das GFS-Kernel-Modul und einer eingestellten Cluster-Konfiguration gemountet werden kann. Das GFS ist in der Lage, ein sogenanntes Single System Image (SSI) auf Dateisystemebene aufzusetzen. Dieses Cluster wird Diskless Shared Root Cluster genannt. GFS2 ist im Linux Vanilla-Kernel enthalten. Heute ist GFS unter der GPL lizenziert. Vergleichbare Cluster Dateisysteme Vergleichbare Netzwerk Dateisysteme sind Oracles Clusterfilesystem 2 (OCFS2), Clustered XFS (CXFS, SGI) oder das General Parallel Filesystem (GPFS, IBM). |
|||||
| Siehe auch: Third-Extended-Filesystem Cluster-Dateisystem Kernel linux Google-BigTable Inode | |||||