7.2. Erstellen einer einfachen Cluster-Konfigurationsdatei
Sofern die Cluster-Hardware, Red Hat Enterprise Linux und die Hochverfügbarkeits-Add-On-Software installiert sind, können Sie eine Cluster-Konfigurationsdatei (
/etc/cluster/cluster.conf
) erstellen und das Hochverfügbarkeits-Add-On starten. Dieser Abschnitt soll Ihnen als Ausgangspunkt dienen und beschreibt, wie Sie das Gerüst für eine Cluster-Konfigurationsdatei erstellen, allerdings noch ohne Fencing, Ausfallsicherungs-Domains oder Hochverfügbarkeitsdiensten - mit diesen Aspekten der Konfigurationsdatei befassen sich spätere Abschnitte.
Wichtig
Hierbei handelt es sich lediglich um einen Zwischenschritt zur Erstellung einer Cluster-Konfigurationsdatei; die hieraus resultierende Datei beinhaltet kein Fencing und ist keine gültige Konfiguration.
Die folgenden Schritte beschreiben die Erstellung und Konfiguration eines Gerüsts für eine Cluster-Konfigurationsdatei. Letztendlich unterscheidet sich die Konfigurationsdatei für Ihren Cluster abhängig von der Anzahl der Knoten, vom Fencing-Typ, von der Anzahl und der Art der Hochverfügbarkeitsdienste sowie von weiteren umgebungsspezifischen Anforderungen.
- Erstellen Sie auf jedem Knoten im Cluster eine
/etc/cluster/cluster.conf
Datei. Verwenden Sie dazu die Vorlage in Beispiel 7.1, »cluster.conf
Beispiel: Grundlegende Konfiguration«. - (Optional) Falls Sie einen Zwei-Knoten-Cluster ausführen, können Sie die folgende Zeile zur Konfigurationsdatei hinzufügen, damit es einem einzelnen Knoten möglich ist, das Quorum zu erhalten (z.B. falls der andere Knoten ausfällt):
<cman two_node="1" expected_votes="1"/>
Wenn Sie dietwo_node
Option aus dercluster.conf
Datei entfernen oder ihr hinzufügen, so müssen Sie den Cluster neu starten, damit diese Änderung wirksam wird, wenn Sie die Konfiguration aktualisieren. Für Informationen über das Aktualisieren einer Cluster-Konfiguration siehe Abschnitt 8.4, »Aktualisieren einer Konfiguration«. Ein Beispiel für das Spezifizieren dertwo_node
Option finden Sie in Beispiel 7.2, »cluster.conf
Beispiel: Einfache Zwei-Knoten-Konfiguration«. - Geben Sie den Cluster-Namen und die Versionsnummer der Konfiguration mithilfe dieser
cluster
Parameter an:name
undconfig_version
(siehe Beispiel 7.1, »cluster.conf
Beispiel: Grundlegende Konfiguration« oder Beispiel 7.2, »cluster.conf
Beispiel: Einfache Zwei-Knoten-Konfiguration«). - Geben Sie im
clusternodes
Abschnitt den Knotennamen und die Knoten-ID eines jeden Knotens mithilfe dieserclusternode
Parameter an:name
undnodeid
. Der Knotenname darf maximal 255 Bytes lang sein. - Speichern Sie die
/etc/cluster/cluster.conf
ab. - Überprüfen Sie die Datei anhand des Cluster-Schemas (
cluster.rng
), indem Sie denccs_config_validate
Befehl ausführen. Zum Beispiel:[root@example-01 ~]#
ccs_config_validate
Configuration validates - Übertragen Sie die Konfigurationsdatei nach
/etc/cluster/
in jedem Cluster-Knoten. Beispielsweise könnten Sie die Datei mithilfe desscp
Befehls an andere Cluster-Knoten übertragen.Anmerkung
Eine solche Übertragung der Cluster-Konfigurationsdatei ist nur beim erstmaligen Erstellen des Clusters notwendig. Sobald ein Cluster installiert wurde und läuft, kann die Cluster-Konfigurationsdatei mit dem Befehlcman_tool version -r
übertragen werden. Es ist möglich, denscp
Befehl zur Weitergabe einer aktualisierten Konfigurationsdatei zu verwenden, allerdings muss zur Verwendung desscp
Befehls auf allen Knoten die Cluster-Software gestoppt werden. Zusätzlich sollten Sieccs_config_validate
ausführen, falls Sie eine aktualisierte Konfigurationsdatei mittelsscp
übertragen.Anmerkung
Es sind zwar noch andere Elemente und Parameter in der Beispielkonfigurationsdatei enthalten (z.B.fence
undfencedevices
), vorerst ist es jedoch nicht nötig, diese mit Informationen auszufüllen. An späterer Stelle in diesem Kapitel werden Verfahren erläutert, die Informationen zu diesen Elementen und Parametern liefern. - Starten Sie den Cluster. Führen Sie dazu auf jedem Cluster-Knoten den folgenden Befehl aus:
service cman start
Zum Beispiel:[root@example-01 ~]#
service cman start
Starting cluster: Checking Network Manager... [ OK ] Global setup... [ OK ] Loading kernel modules... [ OK ] Mounting configfs... [ OK ] Starting cman... [ OK ] Waiting for quorum... [ OK ] Starting fenced... [ OK ] Starting dlm_controld... [ OK ] Starting gfs_controld... [ OK ] Unfencing self... [ OK ] Joining fence domain... [ OK ] - Führen Sie auf einem beliebigen Cluster-Knoten
cman_tool nodes
aus, um zu überprüfen, dass die Knoten nun als Mitglieder im Cluster fungieren (gekennzeichnet durch ein "M" in der Statusspalte "Sts"). Zum Beispiel:[root@example-01 ~]#
cman_tool nodes
Node Sts Inc Joined Name 1 M 548 2010-09-28 10:52:21 node-01.example.com 2 M 548 2010-09-28 10:52:21 node-02.example.com 3 M 544 2010-09-28 10:52:21 node-03.example.com - Läuft der Cluster, fahren Sie mit Abschnitt 7.3, »Konfiguration von Fencing« fort.
7.2.1. Einfache Konfigurationsbeispiele
Beispiel 7.1, »
cluster.conf
Beispiel: Grundlegende Konfiguration« und Beispiel 7.2, »cluster.conf
Beispiel: Einfache Zwei-Knoten-Konfiguration« (bei einem Zwei-Knoten-Cluster) liefern jeweils eine sehr einfache Beispiel-Cluster-Konfigurationsdatei als Ausgangspunkt. An späterer Stelle in diesem Kapitel werden Verfahren erläutert, die Informationen über die Konfiguration von Fencing und Hochverfügbarkeitsdiensten liefern.
Beispiel 7.1. cluster.conf
Beispiel: Grundlegende Konfiguration
<cluster name="mycluster" config_version="2"> <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> </fencedevices> <rm> </rm> </cluster>
Beispiel 7.2. cluster.conf
Beispiel: Einfache Zwei-Knoten-Konfiguration
<cluster name="mycluster" config_version="2"> <cman two_node="1" expected_votes="1"/> <clusternodes> <clusternode name="node-01.example.com" nodeid="1"> <fence> </fence> </clusternode> <clusternode name="node-02.example.com" nodeid="2"> <fence> </fence> </clusternode> </clusternodes> <fencedevices> </fencedevices> <rm> </rm> </cluster>
7.2.2. Der consensus
Wert für totem
in einen Zwei-Knoten-Cluster
Wenn Sie einen Zwei-Knoten-Cluster erstellen und nicht beabsichtigen, diesem zu einem späteren Zeitpunkt weitere Knoten hinzuzufügen, dann sollten Sie den
consensus
Wert im totem
Tag in der cluster.conf
Datei weglassen, so dass der consensus
Wert automatisch ermittelt wird. Beim automatischen Ermitteln des consensus
Wertes gelten die folgenden Regeln:
- Bei zwei oder weniger Knoten lautet der
consensus
Wert (Token * 0.2), mit einer Höchstgrenze von 2000 ms und einer Mindestgrenze von 200 ms. - Bei drei oder mehr Knoten lautet der
consensus
Wert (Token + 2000 ms)
Wenn Sie das
cman
Dienstprogramm Ihren Consensus-Timeout auf diese Weise bestimmen lassen, müssen Sie später, falls Sie von zwei auf drei oder mehr Knoten aufstocken, Ihren Cluster neu starten, da der Consensus-Timeout dann auf den höheren Wert geändert werden muss, entsprechend dem Token-Timeout.
Wenn Sie einen Zwei-Knoten-Cluster konfigurieren und beabsichtigen, diesen zukünftig auf mehr als zwei Knoten zu erweitern, können Sie den Consensus-Timeout außer Kraft setzen, so dass ein Cluster-Neustart nicht nötig ist, wenn Sie von zwei auf drei oder mehr Knoten aufstocken. Bearbeiten Sie dazu die
cluster.conf
wie folgt:
<totem token="X" consensus="X + 2000" />
Beachten Sie, dass bei der Verarbeitung der Konfiguration X + 2000 nicht automatisch berechnet wird. Sie müssen daher einen ganzzahligen Wert einsetzen, keine Formel.
Der Vorteil bei der Verwendung des optimierten Consensus-Timeouts für Zwei-Knoten-Cluster besteht darin, dass die Zeit beim Knotenwechsel im Fehlerfall reduziert wird, da Consensus keine Funktion des Token-Timeouts ist.
Beachten Sie, dass für die automatische Zwei-Knoten-Erkennung in
cman
die Anzahl der physischen Knoten maßgeblich ist, nicht das Vorhandensein der two_node=1
Direktive in der cluster.conf
Datei.