Einzäunen

Der DLM nimmt neben der Locking- auch eine Überwachungsfunktion wahr. Mittels Heartbeats überprüft er regelmäßig die Erreichbarkeit jedes Cluster-Knotens. Ist ein Knoten im Cluster nicht mehr erreichbar, führt GFS2 verschiedene Aktionen aus, um die Konsistenz des Dateisystems zu gewährleisten. Zuallererst stellt es sicher, dass der tote Knoten keine weiteren Zugriffe auf das Dateisystem ausführt. Dafür trennt es den Knoten vom seinem Storage. Diese Trennung bezeichnet man gelegentlich auch als Fencing.

Historisches

Ursprünglich für IRIX gedacht, hat sich GFS2 und zuvor auch GFS1 inzwischen zu einem waschechten 64-bit-Linux-Dateisystem gemausert.Die Geschichte des Global File System beginnt 1995 an der Universität von Minnesota, als eine Arbeitsgruppe unter Leitung von ProfessorMatthew O’Keefe vor dem Problem stand, große Datenmengen effizient auf einem zentralen Speicher abzulegen.Ende der 90er Jahre gründete Matt O’Keefe die Firma Sistina, die den Fokus auf die Entwicklung von Cluster-Software für Linux legte. Zum Portfolio dieser Firma gehörte damals neben GFS übrigens auch der Logical VolumeManager (LVM).Bis einschließlich Version 4.1.1 stand GFS1 unter der GNU General Public License (GPL). ImJahr 2001 änderte Sistina die Lizenz und stellteGFS1 unter die Sistina Public License. Mit der Übernahme von Sistina durch Red Hat im Jahr2003 kam es abermals zu einer Lizenzänderung. Getreu Red Hats Lizenzpolitik steht GFS1 und auch die Weiterentwicklung GFS2 seit dieser Zeit wieder unter der GPL.

Für das Fencing gibt es zwei gebräuchliche Ansätze: STONITH und Zoning. Bei der STONITH-Methode (Shoot The Other Node In The Head, auch als Power Fencing bezeichnet) initiieren so genannte Fence Agents einen harten Reset des Knotens. Dafür benötigt man entweder integrierte Power-Management-Schnittstellen, wie ILO (Integrated Lights Out) oder IPMI (Intelligent Platform Management Management Interface), oder Power Switches mit Netzwerkanschluss, wie sie unter anderem die Hersteller APC (American Power Conversion Corp.) oder WTI (Western Telematic, Inc.) anbieten. Beim Zoning dagegen blockieren die Fence Agents den I/O-Pfad zwischen Knoten und Massenspeicher, beispielsweise durch Deaktivieren eines Ports am Fibre Channel-Switch (das funktioniert zum Beispiel mit Produkten von Brocade oder Vixel). Ein großer Vorteil dabei ist, dass der Knoten so unangetastet bleibt und daher anschließend für weiteres Debugging zur Verfügung steht. Eine alternative Bezeichnung für diese Methode lautet Fibre Channel Fencing.

Fencing ist eng mit dem Locking verknüpft – das eine hängt vom anderen ab. Beim DLM läuft auf jedem Knoten ein Fence Daemon. Der CMANDaemon beauftragt den Prozess »fenced« mit dem Fencing eines Cluster-Knotens. Dieser ruft dazu den entsprechenden Fence Agent auf (siehe Tabelle 1), der den Rechner-Reset durchführt. . Beim Fencing kann man auch verschiedene Agents kaskadieren, um ein sicheres Entfernen des Knotens zu gewährleisten. Analog zu GFS1 (Version 6.1) ist auch bei GFS2 die Fencing-Konfiguration integraler Bestandteil des Cluster-Setups.

Tabelle 1. Beispiele für Fence Agents

Fence-Programm

 Hardware

fence_apc

Fence Agent für APC Power Switch

fence_ipmilan

Fence Agent für Bull Novascale Intelligent Platform Management Interface (IPMI)

fence_wti

Fence Agent für WTI Power Switch

fence_brocade

Fence Agent für Brocade Fibre Channel Switch

fence_mcdata

Fence Agent für McData Fibre Channel Switch

fence_vixel

Fence Agent für Vixel Fibre Channel Switch

fence_sanbox2

Fence Agent für SANBox2 Fibre Channel Switch

fence_ilo

Fence Agent für HP ILO interfaces

fence_rsa

I/ O-Fencing Agent für IBM RSA II

fence_manual

Fence Agent für Manual Interaction

fence_ack_manual

User Interface für fence_manual Agent

Recovery

Ist der tote Rechner aus dem Cluster entfernt, verwirft der Lock-Manager alle von diesem Knoten gehaltenen Locks. Da alle Cluster-Knoten ein vollständiges Bild des GFS2 haben, prüft einer der verbliebenen Knoten das Journal des entfernten Rechners und nimmt die entsprechenden Änderungen am Dateisystem vor. Ab diesem Zeitpunkt herrscht für den gesamten Cluster mit Ausnahme des fehlenden Knotens wieder der Normalzustand. Ist der ehemals tote Knoten wiederhergestellt, lässt er sich wieder in den Cluster integrieren und das GFS2 auf diesem Rechner mounten.

Listing 1: Konfiguration von Fence-Geräten

<fencedevices>
   <fencedevice
      name="apc"
      agent="fence_apc"
      ipaddr="apc_1"
      login="apc"
      passwd="apc"
  />
   <fencedevice
      name="brocade"
      agent="fence_brocade"
      ipaddr="brocade_1"
      login="bro"
      passwd="bro"
   />
   <fencedevice
      name="wti"
      agent="fence_wti"
      ipaddr="wti_1"
      passwd="wti"
   />
   <fencedevice
      name="ipmi"
      agent="fence_ipmailan"
      ipaddr="ipmi_1"
      login="ipmi" passwd="ipmi"
      option="reboot"
      auth="password"
   />
   <fencedevice
      name="manuell"
      agent="fence_manual"
   />
</fencedevices>
comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023