Kapitel 14. Oracle Cluster File System 2

Inhaltsverzeichnis

14.1. Überblick über OCFS2
14.2. Erstellen eines OCFS2-Volumes
14.3. Einhängen eines OCFS2-Volumes
14.4. Zusätzliche Informationen

14.1. Überblick über OCFS2

Oracle Cluster File System 2 (OCFS2) ist ein allgemeines Journaling-Dateisystem, das vollständig in den Linux 2.6-Kernel und spätere Versionen integriert ist. OCFS2 ermöglicht das Speichern von binären Anwendungsdateien, Datendateien und Datenbanken auf Geräten in einem SAN. Alle Knoten in einem Cluster haben gleichzeitig Lese- und Schreibzugriff auf das Dateisystem. Ein verteilter Sperrenmanager sorgt dafür, dass es zu keinen Dateizugriffskonflikten kommt. OCFS2 unterstützt bis zu 32.000 Unterverzeichnisse und Millionen von Dateien in jedem Verzeichnis. Zur Verwaltung des Clusters läuft auf jedem Knoten der O2CB-Cluster-Dienst (ein Treiber).

14.1.1. Funktionen und Vorteile

OCFS2 wurde SUSE Linux Enterprise Server 9 im August 2005 hinzugefügt, um Oracle Real Application Cluster (RAC)-Datenbanken und Oracle Home (die Anwendungsdateien von Oracle) zu unterstützen. Ab SUSE Linux Enterprise Server 10 kann OCFS2 für jede der folgenden Speicherlösungen verwendet werden:

  • Oracle RAC und andere Datenbanken

  • Allgemeine Anwendungen und Auslastungen

  • XEN-Image-Speicher in einem Cluster

    Virtuelle XEN-Computer und virtuelle Server können auf OCFS2-Volumes gespeichert werden, die von Cluster-Servern eingehängt werden, um eine schnelle und einfache Portabilität der virtuellen XEN-Computer zwischen den Servern zu gewährleisten.

  • LAMP-Stacks (Linux, Apache, MySQL znd PHP | Pearl | Python)

OCFS2 ist zudem vollständig in Heartbeat 2 integriert.

Als leistungsstarkes, symmetrisches, paralleles Cluster-Dateisystem unterstützt OCFS2 die folgenden Funktionen:

  • Die Dateien einer Anwendung stehen allen Knoten des Clusters zur Verfügung. Die Anwendung wird nur einmal auf einem OCFS2-Volume im Cluster installiert.

  • Alle Knoten haben gleichzeitig über die Standard-Dateisystemschnittstelle Lese- und Schreibzugriff auf den Speicher; dies vereinfacht die Verwaltung der clusterweit ausgeführten Anwendungen.

  • Der Dateizugriff wird vom Distributed Lock Manager (DLM) koordiniert.

    Die Steuerung über den DLM ist in den meisten Fällen zweckmäßig; das Anwendungsdesign kann jedoch die Skalierbarkeit beeinträchtigen, wenn die Anwendung mit dem DLM um die Koordination des Dateizugriffs konkurriert.

  • Speichersicherungsfunktionen stehen auf allen Backend-Speichern zur Verfügung. Problemlos lässt sich ein Image der freigegebenen Anwendungsdateien erstellen, das bei einem Notfall eine schnelle Wiederherstellung ermöglicht.

OCFS2 bietet darüber hinaus folgende Funktionen:

  • Metadaten-Caching

  • Metadaten-Journaling

  • Knotenübergreifende Dateidatenkonsistenz

  • Eine GTK GUI-basierte Verwaltung über das Dienstprogramm ocfs2console

  • Betrieb als freigegebenes Stammdateisystem

  • Unterstützung für verschiedene Blockgrößen (jedes Volume kann eine andere Blockgröße haben) bis zu 4 KB bei einer maximalen Volume-Größe von 16 TB

  • Unterstützung für bis zu 255 Cluster-Knoten

  • Unterstützung für kontextabhängige symbolische Links (CDSL) bei knotenspezifischen lokalen Dateien

  • Asynchrone und direkte E/A-Unterstützung für Datenbankdateien zur Verbesserung der Datenbankleistung

14.1.2. O2CB-Cluster-Dienst

Der O2CB-Cluster-Dienst umfasst verschiedene Module sowie arbeitsspeicherinterne Dateisysteme, die zur Verwaltung der OCFS2-Dienste und -Volumes erforderlich sind. Sie können festlegen, dass diese Module beim Systemstart geladen und eingehängt werden. Anleitungen hierzu erhalten Sie in Abschnitt 14.2.2, „Konfigurieren der OCFS2-Dienste“.

Tabelle 14.1. O2CB-Cluster-Dienststapel

Dienst

Beschreibung

Node Manager (NM)

Zeichnet alle Knoten in der Datei /etc/ocfs2/cluster.conf auf.

Heartbeat (HB)

Gibt Benachrichtigungen nach oben oder unten aus, wenn Knoten zum Cluster hinzukommen oder den Cluster verlassen.

TCP

Ermöglicht die Kommunikation zwischen den Knoten über das TCP-Protokoll.

Distributed Lock Manager (DLM)

Zeichnet sämtliche Sperren sowie deren Eigentümer und Status auf.

CONFIGFS

Dateisystem für die Konfiguration des Benutzerspeicherplatzes. Weitere Informationen finden Sie in Abschnitt 14.1.4, „Arbeitsspeicherinterne Dateisysteme“.

DLMFS

Schnittstelle zwischen Benutzerspeicherplatz und DLM des Kernel-Speicherplatzes. Weitere Informationen finden Sie in Abschnitt 14.1.4, „Arbeitsspeicherinterne Dateisysteme“.

14.1.3. Disk Heartbeat

Für OCFS2 müssen die Knoten im Netzwerk "alive" (betriebsbereit und online) sein. Um sicherzustellen, dass dies auch der Fall ist, sendet der O2CB-Cluster-Dienst in regelmäßigen Abständen so genannte Keepalive-Pakete. Der Cluster-Dienst verwendet dazu statt des LAN eine private Verbindung zwischen den Knoten, um zu verhindern, dass eventuelle Netzwerkverzögerungen als verschwundener Knoten interpretiert werden, was einer Selbstabriegelung des Knotens gleichkommen würde.

Der OC2B-Cluster-Dienst kommuniziert den Knotenstatus über ein Disk Heartbeat. Die Heartbeat-Systemdatei befindet sich auf dem SAN, wo sie allen Knoten des Clusters zur Verfügung steht. Die Blockzuweisungen der Datei entsprechen der Reihenfolge nach den Steckplatz-Zuweisungen der einzelnen Knoten.

Jeder Knoten liest die Datei in Zwei-Sekunden-Intervallen und schreibt in den ihm zugewiesenen Block. Änderungen am Zeitstempel eines Knotens sind ein Hinweis darauf, dass der Knoten betriebsbereit ist. Als "tot" wird ein Knoten bezeichnet, wenn er über eine bestimmte Anzahl an Intervallen (dem Heartbeat-Schwellenwert) nicht mehr in die Heartbeat-Datei schreibt. Selbst wenn nur ein einziger Knoten "alive" ist, muss der O2CB-Cluster-Dienst diese Überprüfung durchführen, da jederzeit ein anderer Knoten dynamisch hinzugefügt werden kann.

Den Disk Heartbeat-Schwellenwert können Sie in der Datei /etc/sysconfig/o2cb mit dem Parameter O2CB_HEARTBEAT_THRESHOLD ändern. Die Wartezeit berechnet sich wie folgt:

(O2CB_HEARTBEAT_THRESHOLD value - 1) * 2 = threshold in seconds

Wenn beispielsweise für O2CB_HEARTBEAT_THRESHOLD der Standardwert 7 eingestellt ist, beträgt die Wartezeit 12 Sekunden ((7 - 1) * 2 = 12).

14.1.4. Arbeitsspeicherinterne Dateisysteme

OCFS2 verwendet zur Kommunikation zwei arbeitsspeicherinterne Dateisysteme:

Tabelle 14.2. Von OCFS2 verwendete, arbeitsspeicherinterne Dateisysteme

Arbeitsspeicherinternes Dateisystem

Beschreibung

Einhängepunkt

configfs

Kommuniziert die Liste der Cluster-Knoten an den Node Manager im Kernel und meldet die für das Heartbeat verwendete Ressource an den Heartbeat-Thread im Kernel.

/config

ocfs2_dlmfs

Kommuniziert die Aktivierung und Deaktivierung clusterweiter Ressourcensperren an den Distributed Lock Manager im Kernel, der sämtliche Sperren sowie deren Eigentümer und den jeweiligen Status überwacht.

/dlm

14.1.5. Verwaltungsprogramme und -befehle

OCFS2 speichert spezifische Parameterdateien für die Cluster-Knoten. Die Cluster-Konfigurationsdatei (/etc/ocfs2/cluster.conf) befindet sich auf jedem dem Cluster zugewiesenen Knoten.

Das Dienstprogramm ocfs2console ist eine GTK GUI-basierte Schnittstelle für die Konfigurationsverwaltung der OCFS2-Dienste im Cluster. Mit diesem Programm können Sie die Datei /etc/ocfs2/cluster.conf einrichten und auf allen Mitgliedsknoten des Clusters speichern. Darüber hinaus können Sie mit diesem Programm OCFS2-Volumes formatieren und einstellen sowie ein- und aushängen.

Weitere OCFS2-Dienstprogramme werden in der folgenden Tabelle beschrieben. Eine Beschreibung der Syntax dieser Befehle finden Sie auf den jeweiligen Manualpages.

Tabelle 14.3. OCFS2-Dienstprogramme

OCFS2-Dienstprogramm

Beschreibung

debugfs.ocfs2

Untersucht den Status des OCFS-Dateisystems (zum Debuggen).

fsck.ocfs2

Untersucht das Dateisystem auf Fehler und kann diese optional auch korrigieren.

mkfs.ocfs2

Erstellt ein OCFS2-Dateisystem auf einem Gerät (normalerweise auf einer Partition einer freigegebenen physikalischen oder logischen Festplatte). Zur Ausführung dieses Dienstprogramms muss der O2CB-Cluster-Dienst laufen.

mounted.ocfs2

Ermittelt alle OCFS2-Volumes eines Cluster-Systems und zeigt diese an. Listet alle OCFS2-Geräte bzw. alle Knoten des Systems auf, auf denen ein OCFS2-Gerät eingehängt ist.

ocfs2cdsl

Erstellt für einen Knoten einen kontextabhängigen symbolischen Link (CDSL) für den angegebenen Dateinamen (Datei oder Verzeichnis). Ein CDSL-Dateiname verfügt für einen bestimmten Knoten über ein eigenes Image, in OCFS2 jedoch über einen Common Name (allgemeinen Namen).

tune.ocfs2

Stellt die OCFS2-Dateisystemparameter ein, unter anderem das Volume-Label, die Anzahl der Knotensteckplätze, die Journal-Größe aller Knotensteckplätze und die Volume-Größe.

Zur Verwaltung der O2CB-Dienste verwenden Sie die folgenden Befehle. Eine Beschreibung der Befehlssyntax von o2cb finden Sie auf der Manualpage dieses Befehls.

Tabelle 14.4. O2CB-Befehle

Befehl

Beschreibung

/etc/init.d/o2cb status

Meldet, ob die o2cb-Dienste geladen und eingehängt sind.

/etc/init.d/o2cb load

Lädt die O2CB-Module und arbeitsspeicherinternen Dateisysteme.

/etc/init.d/o2cb online ocfs2

Stellt den Cluster mit der Bezeichnung "ocfs2" online.

Dazu muss mindestens ein Knoten des Clusters aktiv sein.

/etc/init.d/o2cb offline ocfs2

Schaltet den Cluster mit der Bezeichnung "ocfs2" offline.

/etc/init.d/o2cb unload

Entlädt die O2CB-Module und arbeitsspeicherinternen Dateisysteme.

/etc/init.d/o2cb start ocfs2

Wenn der Cluster mit der Bezeichnung "ocfs2" so eingerichtet ist, dass es beim Systemstart geladen wird, wird es durch diesen Befehl gestartet, indem o2cb geladen und der Cluster online gestellt wird.

Dazu muss mindestens ein Knoten des Clusters aktiv sein.

/etc/init.d/o2cb stop ocfs2

Wenn der Cluster mit der Bezeichnung "ocfs2" so eingerichtet ist, dass es beim Systemstart geladen wird, wird es durch diesen Befehl beendet, indem der Cluster offline geschaltet wird und die O2CB-Module und arbeitsspeicherinternen Dateisysteme entladen werden.

14.1.6. OCFS2-Pakete

Ab SUSE Linux Enterprise Server 10 wird das OCFS2-Kernelmodul (ocfs2) automatisch installiert. Allerdings müssen Sie, wenn Sie OCFS2 verwenden möchten, noch die Pakete ocfs2-tools und ocfs2console auf den einzelnen Cluster-Knoten installieren. Dazu können Sie YaST oder die Kommandozeile verwenden.

  1. Melden Sie sich als root-Benutzer (bzw. als Benutzer mit gleichwertigen Berechtigungen) an und öffnen Sie das YaST-Kontrollzentrum.

  2. Wählen Sie Software+Software installieren oder löschen.

  3. Geben Sie unter Suche Folgendes ein:

    ocfs2 
    

    Auf der rechten Seite sollten nun die Softwarepakete ocfs2-tools und ocfs2console angezeigt werden. Sind sie bereits markiert, so sind sie schon installiert.

  4. Wenn die Pakete noch installiert werden müssen, markieren Sie sie, klicken Sie auf Installieren und befolgen Sie die Anweisungen auf dem Bildschirm.