Global File System
aus Wikipedia, der freien Enzyklopädie
Das Global File System (GFS) ist ein Cluster-Dateisystem, das es Rechnern ermöglicht, gleichzeitig auf das Dateisystem eines Storage Area Network zuzugreifen und zugleich die Konsistenz der enthaltenen Daten gewährleistet. Das Storage Area Network kann darüberhinaus über zusätzliche Techniken selbst erzeugt werden (iSCSI, AoE (ATA Over Ethernet), FC (Fiberchannel), NBD (Network Block Device) und weitere). Das Datei-Locking, ohne das ein Cluster-Dateisystem nicht funktionieren würde, übernimmt ein Locking-Modul von GFS (meist lock_gulm oder etwas neuer lock_dlm).
Es ist Teil des Linux-Kernels und wird in dessen Rahmen entwickelt. Treibende Kraft ist dabei die Firma Red Hat.
Inhaltsverzeichnis |
[Bearbeiten] Geschichte
GFS war ursprünglich als Teil einer Machbarkeitsstudie an der Universität von Minnesota entwickelt worden. Später wurde es von Sistina Software übernommen, die es als Open-Source-Projekt weiterentwickelte. 2001 entschied Sistina Software, GFS als proprietäre Software weiterzuentwickeln. 2003 kaufte Red Hat dann Sistina Software (und damit auch GFS) und veröffentlichte GFS 2004 mit anderen Cluster-Infrastruktur-Programmen unter der GPL.
[Bearbeiten] Technisches
- GFS ist ein Filesystem, das über das entsprechende GFS-Kernel-Modul und eine funktionierende Cluster-Konfiguration gemountet werden kann.
- GFS arbeitet mit Kernelmodulen und Diensten für das Management (z. B. CMAN, ccsd), Locking (lock_gulm oder lock_dlm) und Fencing (z. B. fenced für das Abschiessen von ausgefallenen Cluster Nodes).
- Exportiert werden die lokalen Blockdevices meist über GNBD (Global Network Block Device).
- Exportierte, GFS formatierte Blockdevices können über gnbd_import auf anderen Rechnern im GFS-Cluster importiert und lokal gemountet werden.
- Mit GFS ist es möglich, ein Single System Image (SSI) auf Dateisystemebene, einen sogenannten Diskless Shared Root Cluster, aufzusetzen.
[Bearbeiten] Kernel Module und Dienste
- GFS 6.1 - Cluster-Dateisystem
- DLM - Distributed-Lock-Manager
- CMAN - Cluster-Manager
- CLVM - Cluster-Erweiterung zum LVM2 (Logical Volume Manager)
- CCS - Cluster-Konfigurations-System, welches die cluster.conf verwaltet
- Fence - I/O Fencing-System, Abschiessen unterbrochener oder fehlerhafter Nodes im Cluster (z. B. über iLO)
- GNBD - Global Network Block Device, Treiber der lokale Block Devices (Volumes) über das Netzwerk zur Verfügung stellt
- RGManager - Ressourcen-Monitor und Gruppen-Manager, überwacht, startet und stoppt Ressourcen, Dienste und Applikationen
- GULM - Reduntanter, Serverbasierter Cluster und Lock Manager für GFS 6.1 (Alternative zu CMAN und DLM)
- Magma - Cluster/Locking Bibliothek für Transaktionen zwischen GULM und CMAN/DLM
- GFS Deployment Tool - Ein grafisches Tool für das Ausrollen von GFS auf mehrer Rechner
- system-config-cluster - Grafisches Tool für das Verwalten des GFS-Cluster über mehere Rechner
[Bearbeiten] Export von Block Devices / Laufwerken über das Netzwerk
Global Network Block Device ist mit anderen Network-Block-Device-Treibern vergleichbar. Eine Partition auf einer Festplatte ist unter Linux/UNIX ein Block Device, da sie in Datenblöcken aufgeteilt ist. Partitionen werden meist logisch über LVM (Logical Volume Manager) oder CLVM (Cluster Logical Volume Manager) eingerichtet und einfach über GNBD exportiert.
Das Exportieren von Block Devices oder Verzeichnissen (z. B. NFS - Network Filesystem) ist vergleichbar mit dem Freigeben von Verzeichnissen und Laufwerken unter Windows. Exportierte Block Devices können dann auf einem anderen System importiert und gemountet (eingebunden) werden.
Ziel ist es, dass mehrere Rechner auf dasselbe Dateisystem zugreifen und ihnen somit auch dieselben Daten zur Verfügung stehen. So können z. B. auch mehrere Webserver ein und dieselbe Webseite im Internet anbieten und dabei die Leistung von mehreren Rechnern nutzen.
Meist werden so GFS Volumes (Partitionen mit Dateisystem) innerhalb eines GFS-Clusters exportiert und auf mehreren Servern importiert.
- GNBD besteht aus Kernel Modulen und einigen Anwenderprogrammen.
- GNBD setzt ein funktionierendes Fencing (siehe GFS) voraus - meist der Dienst "fenced".
- In einem GFS-Cluster übernimmt das Locking Protokoll von GFS das Filelocking und stellt somit die Konsistenz der Daten sicher.
[Bearbeiten] Irrtümer in Verbindung mit GFS
Ein weit verbreiteter Irrtum ist die Annahme, ein Cluster-Dateisystem alleine könnte Daten global zur Verfügung stellen. Das ist so nicht richtig. Angenommen man stattet Rechner A und B mit GFS aus. Dadurch kann A nicht die Daten von B sehen und auch nicht anders herum. Warum? Es ist zwingend nötig, das alle GFS Rechner auf ein und den selben Storage zugreifen. Wenn A auf den lokalen Storage (also dessen Festplatte) zugreifen möchte, muss A seine Festplatte vorher mit einer Technik in das Netzwerk exportieren, damit B diesen Storage sehen kann. Genau das stellt GFS nicht zur Verfügung, sondern dieses so genannte Storage Area Network muss gekauft oder selbst gebaut werden (siehe Einleitung bzgl. der Möglichkeiten).
Ein weiterer Irrtum ist, man könnte eine Redundanz der Daten erreichen durch ein Cluster-Dateisystem. Auch das ist nicht seine Aufgabe. Das Storage Area Network selbst muss redundant sein, um die Verfügbarkeit der Daten zu gewährleisten. Das Cluster-Dateisystem kennt "lediglich" Mechanismen, um bei Problemen von A oder B selbständig für eine nahtlose Wiedereingliederung zu sorgen und eventuell noch nicht in das Storage Area Network übertragende Daten zu übetragen.
Der Sinn einer Cluster-Dateisystems ist es, die Zugriffe auf ein Storage Area Network zu regeln, da es zu einem Desaster käme, wenn A und B gleichzeitig die gleiche Datei im Storage Area Network schreiben würde. Nicht mehr und nicht weniger.
[Bearbeiten] Siehe auch
- OCFS2 (Oracle Cluster File System 2)