Skip to content

Cluster Filesysteme [updated]

Aktuell geht das Thema Cluster Filesysteme durch die Presse. Oracle erwartet die Aufnahme seines OCFS2 in den Linux Kernel und RedHat bewirbt sein GFS in Fedora Core 4. Typischer Einsatzzweck eines Cluster Filesystems ist das Number Crunching (High Performance Computing) für die Lösung von Simulationen oder Mathematischen Berechnungen im Bereich Forschung oder Engeneering. Dabei teilen sich viele Rechner-Knoten die Eingangsdaten und Berechnungsergebnisse. Jedoch auch kommerzielle Enterprise Systeme skalieren zunehmend in die Horizontale. Datenbanken, Fileserver und Application Server Cluster benötigen den Zugriff auf gemeinsame Datenbestände. Ein Cluster Filesystem soll den gleichzeitigen direkten Zugriff von mehren Knoten eines Clusters auf die selben Files ermöglichen. Im Gegensatz zu Netzwerk Filesystemen erfolgt dabei der Datenfluss direkt zwischen den Knoten um Cluster und der Storage Hardware. Zum Einsatz kommen FC SANs. Kleinere Installationen können auch mit SCSI Storage Enclosures realisiert werden die mehrere Host Adapter erlauben. Für Test und Entwicklung lassen sich auch Firewire Lösungen einsetzen. Ganz aktuell boomt auch der IP basierende Block Zugriff. Mit iSCSI oder diversen Linux Netzwerk Block Devices kann hier eine Gigabit Ethernet eingesetzt werden.

Da der Datenzugriff direkt erfolgt, an einem Server Prozess vorbei sind Cache Konsistenz und das Locking von Datenblöcken wichtige Aufgaben des Cluster Filesystem. Die Leistungsfähigkeit und die Eignung für einen bestimmten Einsatzzweck eines Cluster Filesystems im wesentlichen durch das Meta Data Handling und die Locking Strategie bestimmt. Durchaus üblich ist z.B. dass in einem Cluster ein Node zum zentralen Lock Manager bestimmt wird, was ein Engpass bilden kann wenn viele Dateien benutzt werden, oder die Locks auf Block Ebene sich oft ändern. Die typische Semantik von lokalen oder Netzwerk Filesystemen lässt sich bei Cluster Filesystemen schwer nachbilden. GFS versucht hier Posix Semantik anzubieten, was den Anwendungen entgegen kommt, die nicht geändert werden müssen. OCFS hat ein einfacheres Ziel: das bereitstellen einer Verzeichnishierarchie auf mehreren Knoten (die Programmdaten und Konfigurationsfiles der Oracle Installation enthält). Oracle Datenbank benötigt für die Produktivdaten kein Cluster Filesystem. Bei einer parallelen Installation eines DB Servers können sich die einzelnen Instanzen selbst verständigen wer welche Daten cachen oder verändern darf. Durch diese Intelligenz kann Oracle dadurch gehobene Konsistenz und Persistenz Ansprüche erfüllen (ACID Transaktionen). Dies erklärt auch, warum das OCFS relativ einfach gehalten ist. Die Last auf dem Filesystem für eine Oracle RAC Installation ist gering, ausgefeilte Locking und Caching Strategie sind nicht notwendig. Das GFS ist hier deutlich anspruchsvoller, damit aber auch deutlich komplexer. Falls jemand von den Lesern praktische Erfahrungen hat mit den einzelnen Filesystemen, bitte mitteilen. Der Review der OCFS Patches auf den Kernel Mailinglisten hat jedenfalls klar gemacht, dass keine allzu aufwändige Entwicklungsarbeit in das Oracle Angebot geflossen ist. Ganz im Gegensatz zum GFS, was ja das Vorzeigeprodukt der aufgekauften Firma Sistina war. Update: in der Diskussion um die Aufnahme von GFS und OCFS2 in den Linux Kernel hat mich Kurt Hackel von Oracle drauf hingeweisen, dass OCFS und OCFS2 durchaus für Oracle Datenfiles gedacht ist. Durch die bessere POSIX Semantik von OCFS2 lassen sich auch die ORACLE_HOME Programmdateien im OCFS2 speichern, was bei OCFS noch nicht möglich war. OCFS wird von Oracle supported, bei OCFS2 stehen wohl die Zertifizerungen noch aus. Der Vorteil eines Filesystems für Oracle Datenfiles liegt ganz klar in der einfacheren Handhabbarkeit, besonders für die Archive Logs. Update2: Im aktuellen OTN TechCast "Inside Oracle's Linux Projects" vom 22. September sprechen Wim Coekaerts (Director of Linux Engineering) und Todd Trichler (OTN's Linux evangelist) über OCFS2: dessen Geschichte, kommerzielle Hintergründe und die Aufnahme in den Main Kernel.

Trackbacks

No Trackbacks

Comments

Display comments as Linear | Threaded

Christian Brabandt on :

Interessant. In Bezug auf Datenbanken sehe ich aber keine Vorteile, gegenüber einem Netzwerkdateisystem wie AFS oder NFS, besonders wenn es sich um Inter-Partition Parallelism handelt. Außerdem besteht ja auch immer die Möglichkeit, die Datenbank direkt die Daten verwalten zu lassen, ohne Interaktion des Betriebssystems. Was also ist der Vorteil von Clusterfilesystemen in Bezug auf Datenbanken?

Bernd Eckenfels on :

Ja genau, die Datenbank kann den Parallelen Zugriff auf die Block Devices besser steuern als ein File System. Deswegen benutzt Oracle RAC ja das Cluster Filesystem eben genau nicht für die Daten. Es werden nur die Control Files, die Programmdateien und die Parameter Files auf dem Cluster Filesystem verwaltet. Tablespaces und die Log Segmente liegen auf einem Block Device. Eben weil es hier keinen Vorteil gibt. Gegenüber dem Netzwerk Filesystem ist dann auch der Datendurchsatz größer, weil die Blockzugriffe über SAN schneller sind als per NFS (zumindest wenn man Glück hat :) Kandidaten für (gute) Cluster Filesysteme sind eher Web Frontend Server. Hier ist allerdings eine offline Replikation oder ein Cachendes Filesystem wie AFS eine gute Alternative. Von daher bin ich mir nicht so sicher wer von Cluster FS wirklich profitiert.

Bernd Eckenfels on :

Und wie ich grade lernen musste (siehe Update) lag ich hier falsch...

Add Comment

BBCode format allowed
Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
E-Mail addresses will not be displayed and will only be used for E-Mail notifications.
To leave a comment you must approve it via e-mail, which will be sent to your address after submission.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA