Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
7.3. Konfiguration von Fencing
Zur Konfiguration von Fencing gehört (a) das Angeben eines oder mehrerer Fencing-Geräte in einem Cluster und (b) das Angeben einer oder mehrerer Fencing-Methoden für jeden Knoten (unter Verwendung der angegebenen Fencing-Geräte).
Anmerkung
Es wird empfohlen, für jeden Knoten mehrere Fencing-Mechanismen zu konfigurieren. Ein Fencing-Gerät kann aus verschiedenen Gründen ausfallen, beispielsweise aufgrund einer Netzwerkspaltung, eines Stromausfalls oder eines Problems mit dem Fencing-Gerät selbst. Die Konfiguration mehrerer Fencing-Mechanismen verringert die Wahrscheinlichkeit, dass der Ausfall eines Fencing-Geräts schwerwiegende Folgen hat.
Konfigurieren Sie abhängig von den Fencing-Gerätetypen und den Fencing-Methoden, die für Ihre Konfiguration notwendig sind, die
cluster.conf folgendermaßen:
- Geben Sie im
fencedevicesAbschnitt jedes Fencing-Geräts mittels einesfencedeviceElements und den von dem Fencing-Gerät abhängigen Parametern an. Beispiel 7.3, »APC Fencing-Gerät zucluster.confhinzugefügt« zeigt ein Beispiel für eine Konfigurationsdatei, zu der ein APC-Fencing-Gerät hinzugefügt wurde. - Geben Sie im
clusternodesAbschnitt innerhalb desfenceElements für jedenclusternodeAbschnitt die Fencing-Methode für den Knoten an. Spezifizieren Sie den Fencing-Methodennamen mithilfe desmethodParametersname. Geben Sie das Fencing-Gerät für jede Fencing-Methode an, und zwar mithilfe desdeviceElements und dessen Parametern,nameund Fencing-Gerät-spezifischen Parametern. Beispiel 7.4, »Fencing-Methoden zucluster.confhinzugefügt« zeigt ein Beispiel für eine Fencing-Methode mit einem Fencing-Gerät für jeden Knoten im Cluster. - Fügen Sie für andere Fencing-Methoden als das Power-Fencing (also SAN/Speicher-Fencing) im
clusternodesAbschnitt einenunfenceAbschnitt ein. Dadurch wird sichergestellt, dass ein abgegrenzter Knoten erst wieder re-aktiviert wird, nachdem er neu gestartet wurde. Wenn Sie ein Gerät konfigurieren, dass Unfencing erfordert, muss der Cluster zunächst gestoppt werden, dann muss die vollständige Konfiguration einschließlich Geräten und Unfencing hinzugefügt werden, bevor der Cluster gestartet wird. Weitere Informationen über das Aufheben der Knotenabgrenzung finden Sie auf derfence_node(8) Handbuchseite.DerunfenceAbschnitt enthält im Gegensatz zumfenceAbschnitt keinemethodAbschnitte. Er enthält direktedeviceReferenzen, welche die entsprechenden Geräteabschnitte fürfencewiderspiegeln, sowie zusätzlich die explizite Aktion (action) "on" oder "enable". Dasselbefencedevicewird sowohl von denfenceals auch vonunfencedeviceZeilen referenziert, und es sollten dieselben Parameter für den Knoten wiederholt werden.Indem Sie denactionParameter auf "on" oder "enable" setzen, wird dieser Knoten nach einem Neustart aktiviert. Beispiel 7.4, »Fencing-Methoden zucluster.confhinzugefügt« und Beispiel 7.5, »cluster.conf: Mehrere Fencing-Methoden pro Knoten« enthalten Beispiele für dieunfenceElemente und Parameter.Für weitere Informationen überunfencewerfen Sie einen Blick auf diefence_nodeHandbuchseite. - Aktualisieren Sie den
config_versionParameter, indem Sie dessen Wert erhöhen (ändern Sie ihn z.B. vonconfig_version="2"aufconfig_version="3"). - Speichern Sie die
/etc/cluster/cluster.confab. - (Optional) Überprüfen Sie die aktualisierte Datei anhand des Cluster-Schemas (
cluster.rng), indem Sie denccs_config_validateBefehl ausführen. Zum Beispiel:[root@example-01 ~]#
ccs_config_validateConfiguration validates - Führen Sie den
cman_tool version -rBefehl aus, um die Konfiguration an die übrigen Cluster-Knoten zu verbreiten. Dadurch wird auch eine zusätzliche Validierung ausgeführt. Es ist notwendig, dassricciauf jedem Cluster-Knoten ausgeführt wird, um die aktualisierten Cluster Konfigurationsdaten verbreiten zu können. - Vergewissern Sie sich, dass die aktualisierte Konfigurationsdatei übertragen wurde.
- Fahren Sie mit Abschnitt 7.4, »Konfiguration von Ausfallsicherungs-Domains« fort.
Falls nötig, können Sie komplexe Konfigurationen mit mehreren Fencing-Methoden pro Knoten und mit mehreren Fencing-Geräten pro Methode konfigurieren. Falls mehrere Fencing-Methoden pro Knoten konfiguriert sind und die Abgrenzung mit der ersten Methode fehlschlägt, versucht der Fencing-Daemon
fenced die nächste Methode usw., bis er schließlich eine Methode findet, die funktioniert.
Manchmal ist es zur Abgrenzung eines Knotens nötig, zwei I/O-Pfade oder zwei Stromversorgungen zu deaktivieren. Sie erreichen dies durch Angabe von zwei (oder mehr) Geräten innerhalb der Fencing-Methode.
fenced führt den Fenching-Agent einmal für jede Fencing-Gerätezeile aus; alle müssen erfolgreich verlaufen, damit das Fencing insgesamt erfolgreich ist.
Komplexere Konfigurationen werden im Abschnitt »Fencing-Konfigurationsbeispiele« veranschaulicht.
Weitere Informationen über die Konfiguration bestimmter Fencing-Geräte finden Sie auf der Handbuchseite eines Fencing-Geräte-Agenten (z.B. auf der Handbuchseite für
fence_apc). Des Weiteren finden Sie Informationen über Fencing-Parameter in Anhang A, Parameter der Fencing-Geräte, den Fencing-Agenten in /usr/sbin/, das Cluster-Schema unter /usr/share/cluster/cluster.rng, und das kommentierte Schema unter /usr/share/doc/cman-X.Y.ZZ/cluster_conf.html (z.B. /usr/share/doc/cman-3.0.12/cluster_conf.html).
7.3.1. Fencing-Konfigurationsbeispiele
Das folgende Beispiel zeigt eine einfache Konfiguration mit einer Fencing-Methode pro Knoten und einem Fencing-Gerät pro Fencing-Methode:
Die folgenden Beispiele zeigen komplexere Konfigurationen:
Anmerkung
Die Beispiele in diesem Abschnitt können nicht alle möglichen Fälle aufzeigen, es gibt also durchaus andere Wege, wie Sie das Fencing Ihren Anforderungen entsprechend konfigurieren können.
Beispiel 7.3. APC Fencing-Gerät zu cluster.conf hinzugefügt
<cluster name="mycluster" config_version="3">
<clusternodes>
<clusternode name="node-01.example.com" nodeid="1">
<fence>
</fence>
</clusternode>
<clusternode name="node-02.example.com" nodeid="2">
<fence>
</fence>
</clusternode>
<clusternode name="node-03.example.com" nodeid="3">
<fence>
</fence>
</clusternode>
</clusternodes>
<fencedevices>
<fencedevice agent="fence_apc" ipaddr="apc_ip_example" login="login_example" name="apc" passwd="password_example"/>
</fencedevices>
<rm>
</rm>
</cluster>
In diesem Beispiel wurde ein Fencing-Gerät (
fencedevice) zum fencedevices Element hinzugefügt und spezifiziert den Fencing-Agenten (agent) als fence_apc, die IP-Adresse (ipaddr) als apc_ip_example, das Login (login) als login_example, den Namen des Fencing-Geräts (name) als apc und das Passwort (passwd) als password_example.
Beispiel 7.4. Fencing-Methoden zu cluster.conf hinzugefügt
<cluster name="mycluster" config_version="3">
<clusternodes>
<clusternode name="node-01.example.com" nodeid="1">
<fence>
<method name="APC">
<device name="apc" port="1"/>
</method>
</fence>
</clusternode>
<clusternode name="node-02.example.com" nodeid="2">
<fence>
<method name="APC">
<device name="apc" port="2"/>
</method>
</fence>
</clusternode>
<clusternode name="node-03.example.com" nodeid="3">
<fence>
<method name="APC">
<device name="apc" port="3"/>
</method>
</fence>
</clusternode>
</clusternodes>
<fencedevices>
<fencedevice agent="fence_apc" ipaddr="apc_ip_example" login="login_example" name="apc" passwd="password_example"/>
</fencedevices>
<rm>
</rm>
</cluster>
In diesem Beispiel wurde eine Fencing-Methode (
method) zu jedem Knoten hinzugefügt. Der Name der Fencing-Methode (name) für jeden Knoten ist APC. Das Gerät (device) für die Fencing-Methode in jedem Knoten spezifiziert den Namen (name) als apc und eine eindeutige APC Switch Netzanschlussnummer (port) für jeden Knoten. Zum Beispiel lautet die Netzanschlussnummer für node-01.example.com 1 (port="1"). Der Gerätename für jeden Knoten (device name="apc") verweist auf das Fencing-Gerät anhand des Namens (name) apc in dieser Zeile des fencedevices Elements: fencedevice agent="fence_apc" ipaddr="apc_ip_example" login="login_example" name="apc" passwd="password_example".
Beispiel 7.5. cluster.conf: Mehrere Fencing-Methoden pro Knoten
<cluster name="mycluster" config_version="3">
<clusternodes>
<clusternode name="node-01.example.com" nodeid="1">
<fence>
<method name="APC">
<device name="apc" port="1"/>
</method>
<method name="SAN">
<device name="sanswitch1" port="11"/>
</method>
</fence>
<unfence>
<device name="sanswitch1" port="11" action="on"/>
</unfence>
</clusternode>
<clusternode name="node-02.example.com" nodeid="2">
<fence>
<method name="APC">
<device name="apc" port="2"/>
</method>
<method name="SAN">
<device name="sanswitch1" port="12"/>
</method>
</fence>
<unfence>
<device name="sanswitch1" port="12" action="on"/>
</unfence>
</clusternode>
<clusternode name="node-03.example.com" nodeid="3">
<fence>
<method name="APC">
<device name="apc" port="3"/>
</method>
<method name="SAN">
<device name="sanswitch1" port="13"/>
</method>
</fence>
<unfence>
<device name="sanswitch1" port="13" action="on"/>
</unfence>
</clusternode>
</clusternodes>
<fencedevices>
<fencedevice agent="fence_apc" ipaddr="apc_ip_example" login="login_example" name="apc" passwd="password_example"/>
<fencedevice agent="fence_sanbox2" ipaddr="san_ip_example"
login="login_example" name="sanswitch1" passwd="password_example"/>
</fencedevices>
<rm>
</rm>
</cluster>
Beispiel 7.6. cluster.conf: Fencing, Multi-Pathing mehrerer Ports
<cluster name="mycluster" config_version="3">
<clusternodes>
<clusternode name="node-01.example.com" nodeid="1">
<fence>
<method name="SAN-multi">
<device name="sanswitch1" port="11"/>
<device name="sanswitch2" port="11"/>
</method>
</fence>
<unfence>
<device name="sanswitch1" port="11" action="on"/>
<device name="sanswitch2" port="11" action="on"/>
</unfence>
</clusternode>
<clusternode name="node-02.example.com" nodeid="2">
<fence>
<method name="SAN-multi">
<device name="sanswitch1" port="12"/>
<device name="sanswitch2" port="12"/>
</method>
</fence>
<unfence>
<device name="sanswitch1" port="12" action="on"/>
<device name="sanswitch2" port="12" action="on"/>
</unfence>
</clusternode>
<clusternode name="node-03.example.com" nodeid="3">
<fence>
<method name="SAN-multi">
<device name="sanswitch1" port="13"/>
<device name="sanswitch2" port="13"/>
</method>
</fence>
<unfence>
<device name="sanswitch1" port="13" action="on"/>
<device name="sanswitch2" port="13" action="on"/>
</unfence>
</clusternode>
</clusternodes>
<fencedevices>
<fencedevice agent="fence_sanbox2" ipaddr="san_ip_example"
login="login_example" name="sanswitch1" passwd="password_example"/>
<fencedevice agent="fence_sanbox2" ipaddr="san_ip_example"
login="login_example" name="sanswitch2" passwd="password_example"/>
</fencedevices>
<rm>
</rm>
</cluster>
Beispiel 7.7. cluster.conf: Fencing von Knoten mit Dual-Stromversorgung
<cluster name="mycluster" config_version="3">
<clusternodes>
<clusternode name="node-01.example.com" nodeid="1">
<fence>
<method name="APC-dual">
<device name="apc1" port="1"action="off"/>
<device name="apc2" port="1"action="off"/>
<device name="apc1" port="1"action="on"/>
<device name="apc2" port="1"action="on"/>
</method>
</fence>
</clusternode>
<clusternode name="node-02.example.com" nodeid="2">
<fence>
<method name="APC-dual">
<device name="apc1" port="2"action="off"/>
<device name="apc2" port="2"action="off"/>
<device name="apc1" port="2"action="on"/>
<device name="apc2" port="2"action="on"/>
</method>
</fence>
</clusternode>
<clusternode name="node-03.example.com" nodeid="3">
<fence>
<method name="APC-dual">
<device name="apc1" port="3"action="off"/>
<device name="apc2" port="3"action="off"/>
<device name="apc1" port="3"action="on"/>
<device name="apc2" port="3"action="on"/>
</method>
</fence>
</clusternode>
</clusternodes>
<fencedevices>
<fencedevice agent="fence_apc" ipaddr="apc_ip_example" login="login_example" name="apc1" passwd="password_example"/>
<fencedevice agent="fence_apc" ipaddr="apc_ip_example" login="login_example" name="apc2" passwd="password_example"/>
</fencedevices>
<rm>
</rm>
</cluster>
Werden Netzschalter zum Abgrenzen von Knoten mit dualer Stromversorgung verwendet, muss den Agenten mitgeteilt werden, beide Netzanschlüsse zu deaktivieren, bevor die Stromversorgung auf einem der beiden Anschlüsse wiederhergestellt werden kann. Das standardmäßige Verhalten des Agenten beim ein- und ausschalten könnte andernfalls dazu führen, dass die Stromversorgung auf dem Knoten nie vollständig abgeschaltet wird.