1.3.3. Fencing
Fencing is the disconnection of a node from the cluster's shared storage. Fencing cuts off I/O from shared storage, thus ensuring data integrity. The cluster infrastructure performs fencing through the fence daemon,
fenced
.
Wenn CMAN bemerkt, dass ein Knoten ausgefallen ist, kommuniziert er mit den anderen Cluster-Infrastruktur-Komponenten, dass der Knoten ausgefallen ist. Sobald
fenced
von dem Ausfall unterrichtet ist, grenzt er den ausgefallenen Knoten ab. Die anderen Cluster-Infrastruktur-Komponenten bestimmen, welche Schritte einzuleiten sind — d.h. sie führen sämtliche Wiederherstellungsmaßnahmen durch, die durchgeführt werden müssen. So suspendieren beispielsweise DLM und GFS beim Erhalt der Information über einen Knoten-Ausfall sämtliche Aktivitäten, bis sie feststellen, dass der fenced
den Fencing-Prozess für den ausgefallenen Knoten abgeschlossen hat. Nach der Bestätigung, dass der ausgefallene Knoten abgegrenzt ist, führen DLM und GFS Wiederherstellungsmaßnahmen durch. DLM gibt die Locks für den ausgefallenen Knoten frei und GFS stellt das Journal des ausgefallenen Knotens wieder her.
Das Fencing-Programm ermittelt anhand der Cluster-Konfigurationsdatei, welche Fencing-Methode verwendet werden soll. Zwei Schlüsselelemente in der Cluster-Konfigurationsdatei definieren eine Fencing-Methode: Der Fencing-Agent und das Fencing-Gerät. Das Fencing-Programm startet einen Aufruf zu einem in der Cluster-Konfigurationsdatei angegebenen Fencing-Agent. Der Fencing-Agent grenzt den Knoten im Gegenzug via Fencing-Gerät ab. Nach Abschluss des Fencings, unterrichtet das Fencing-Programm den Cluster-Manager.
Die Red Hat Cluster Suite stellt eine Vielzahl von Fencing-Methoden zur Verfügung:
- Power-Fencing — Eine Fencing-Methode, die einen Power-Kontroller verwendet, um einen nicht mehr funktionierenden Knoten auszuschalten.
- Fibre-Channel-Switch-Fencing — Eine Fencing-Methode, die den Fibre-Channel-Port deaktiviert, der den Speicher mit einem nicht funktionsfähigen Knoten verbindet.
- GNBD fencing — A fencing method that disables an inoperable node's access to a GNBD server.
- Sonstiges Fencing — Mehrere sonstige Fencing-Methoden, die I/O oder den Strom eines nicht funktionsfähigen Knotens deaktiviert, inklusive IBM-Bladecenters, PAP, DRAC/MC, ILO, IPMI, IBM RSA II und weitere.
Abbildung 1.3, »Power Fencing Example« shows an example of power fencing. In the example, the fencing program in node A causes the power controller to power off node D. Abbildung 1.4, »Fibre Channel Switch Fencing Example« shows an example of Fibre Channel switch fencing. In the example, the fencing program in node A causes the Fibre Channel switch to disable the port for node D, disconnecting node D from storage.
Abbildung 1.3. Power Fencing Example
Abbildung 1.4. Fibre Channel Switch Fencing Example
Das Angeben einer Fencing-Methode beinhaltet das Bearbeiten einer Cluster-Konfigurationsdatei für die Zuweisung eines Namens für die Fencing-Methode, dem Fencing-Agent und dem Fencing-Gerät für jeden Knoten im Cluster.
The way in which a fencing method is specified depends on if a node has either dual power supplies or multiple paths to storage. If a node has dual power supplies, then the fencing method for the node must specify at least two fencing devices — one fencing device for each power supply (refer to Abbildung 1.5, »Fencing a Node with Dual Power Supplies«). Similarly, if a node has multiple paths to Fibre Channel storage, then the fencing method for the node must specify one fencing device for each path to Fibre Channel storage. For example, if a node has two paths to Fibre Channel storage, the fencing method should specify two fencing devices — one for each path to Fibre Channel storage (refer to Abbildung 1.6, »Fencing a Node with Dual Fibre Channel Connections«).
Abbildung 1.5. Fencing a Node with Dual Power Supplies
Abbildung 1.6. Fencing a Node with Dual Fibre Channel Connections
Sie können einen Knoten mit einer oder mehreren Fencing-Methoden konfigurieren. Wenn Sie einen Knoten mit einer Fencing-Methode konfigurieren, ist dies die einzige Fencing-Methode, die für das Fencing dieses Knotens zur Verfügung steht. Wenn Sie einen Knoten mit mehreren Fencing-Methoden konfigurieren, werden die Fencing-Methoden von einer Fencing-Methode zu einer anderen kaskadiert, nach der in der Cluster-Konfigurationsdatei angegebenen Reihenfolge für Fencing-Methoden. Falls ein Knoten ausfällt, wird er mit der ersten in der Cluster-Konfigurationsdatei für diesen Knoten angegebenen Fencing-Methode abgegrenzt. Falls die erste Fencing-Methode nicht erfolgreich ist, wird die zweite für diesen Knoten angegebene Fencing-Methode verwendet. Falls keine der Fencing-Methoden erfolgreich ist, startet der Fencing-Prozess erneut mit der ersten angegebenen Fencing-Methode und geht die Fencing-Methoden in der in der Cluster-Konfigurationsdatei angegebenen Reihenfolge solange durch, bis der Knoten abgegrenzt wurde.