Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
Konfiguration des Red Hat High Availability Add-Ons mit Pacemaker
Referenzhandbuch für das High Availability Add-On für Red Hat Enterprise Linux 6
Ausgabe 1
Zusammenfassung
Einführung
- Red Hat Enterprise Linux Installationshandbuch – Liefert Informationen bezüglich der Installation von Red Hat Enterprise Linux 6.
- Red Hat Enterprise Linux Bereitstellungshandbuch – Liefert Informationen bezüglich der Implementierung, der Konfiguration und der Administration von Red Hat Enterprise Linux 6.
- Überblick über das High Availability Add-On – Liefert einen allgemeinen Überblick über das High Availability Add-On.
- Cluster-Administration – Liefert Informationen zur Installation, Konfiguration und Verwaltung des High Availability Add-Ons.
- Administration des Logical Volume Manager – Liefert eine Beschreibung des Logical Volume Managers (LVM), inklusive Informationen zum Einsatz von LVM in einer Cluster-Umgebung.
- Global File System 2: Konfiguration und Administration – Liefert Informationen zur Installation, Konfiguration und Pflege von Red Hat GFS (Red Hat Global File System 2), das Bestandteil des Resilient Storage Add-Ons ist.
- DM Multipath – Liefert Informationen über die Verwendung des Device-Mapper Multi-Pathing-Features von Red Hat Enterprise Linux 6.
- Verwaltung der Lastverteilung – Liefert Informationen zur Konfiguration von Hochleistungssystemen und -diensten mit dem Red Hat Load Balancer Add-On, einer Gruppe integrierter Softwarekomponenten, die Linux Virtual Server (LVS) bereitstellen, um IP-Lasten über eine Gruppe realer Server zu verteilen.
- Versionshinweise – Liefert Informationen über die jeweils aktuelle Version der Red Hat Produkte.
1. Feedback
Configuring_High_Availability_With_Pacemaker(EN)-6 (2014-8-7T16:26)
Kapitel 1. Überblick über Konfiguration und Verwaltung des Red Hat High Availability Add-Ons
pcs
-Konfigurationsoberfläche für die Red Hat Enterprise Linux Release 6.6 und höher.
Anmerkung
1.1. Installieren der Pacemaker-Konfigurationstools
yum install
Befehl verwenden, um die Softwarepakete für das Red Hat High Availability Add-On sowie alle verfügbaren Fencing-Agenten aus dem High-Availability-Channel zu installieren.
# yum install pcs fence-agents
lvm2-cluster
und gfs2-utils
sind Teil des ResilientStorage-Channels. Sie können sie bei Bedarf mit dem folgenden Befehl installieren.
# yum install lvm2-cluster gfs2-utils
Warnung
1.2. Konfigurieren der iptables-Firewall zum Erlauben von Cluster-Komponenten
- Für TCP: Ports 2224, 3121, 21064
- Für UDP: Ports, 5405
1.3. Cluster- und Pacemaker-Konfigurationsdateien
cluster.conf
und cib.xml
. Bearbeiten Sie diese Dateien nicht direkt, sondern verwenden Sie stattdessen die pcs
- oder pcsd
-Oberfläche.
cluster.conf
-Datei liefert die Cluster-Parameter, die von corosync
verwendet werden – dem Cluster-Verwalter, auf dem Pacemaker aufgebaut ist.
cib.xml
-Datei ist eine XML-Datei, die sowohl die Cluster-Konfiguration als auch den derzeitigen Status aller Ressourcen im Cluster abbildet. Diese Datei wird von Pacemakers Cluster Information Base (CIB) verwendet. Die Inhalte der CIB werden automatisch im gesamten Cluster synchron gehalten.
Kapitel 2. Die pcs-Befehlszeilenschnittstelle
pcs
-Befehlszeilenschnittstelle ermöglicht die Steuerung und Konfiguration von corosync
und pacemaker
.
pcs
-Befehls lautet wie folgt.
pcs [-f file] [-h] [commands]...
2.1. pcs-Befehle
pcs
-Befehle lauten wie folgt.
cluster
Konfiguriert Cluster-Optionen und Knoten. Informationen über den Befehlpcs cluster
finden Sie in Kapitel 3, Cluster-Erstellung und -Verwaltung.resource
Erstellt und verwaltet Cluster-Ressourcen. Informationen über den Befehlpcs cluster
finden Sie in Kapitel 5, Konfigurieren von Cluster-Ressourcen, Kapitel 7, Verwalten von Cluster-Ressourcen und Kapitel 8, Erweiterte Ressourcentypen.stonith
Konfiguriert Fencing-Geräte zur Verwendung mit Pacemaker. Informationen über den Befehlpcs stonith
finden Sie in Kapitel 4, Fencing: Konfigurieren von STONITH.constraint
Verwaltet Ressourcenbeschränkungen. Informationen über den Befehlpcs constraint
finden Sie in Kapitel 6, Ressourcenbeschränkungen.property
Legt Pacemaker-Eigenschaften fest. Informationen über das Festlegen der Eigenschaften mit dem Befehlpcs property
finden Sie in Kapitel 10, Pacemaker-Cluster-Eigenschaften.status
Zeigt den aktuellen Cluster- und Ressourcenstatus an. Informationen über den Befehlpcs status
finden Sie in Abschnitt 2.5, »Anzeigen des Status«.config
Zeigt die vollständige Cluster-Konfiguration in einer für den Benutzer lesbaren Form an. Informationen über den Befehlpcs config
finden Sie in Abschnitt 2.6, »Anzeigen der vollständigen Cluster-Konfiguration«.
2.2. pcs-Hilfebildschirm
-h
für pcs
verwenden, um die Parameter eines pcs
-Befehls samt einer Beschreibung dieser Parameter anzuzeigen. Beispielsweise zeigt der folgende Befehl die Parameter des Befehls pcs resource
. Nur ein Ausschnitt der Ausgabe ist hier dargestellt.
# pcs resource -h
Usage: pcs resource [commands]...
Manage pacemaker resources
Commands:
show [resource id] [--all]
Show all currently configured resources or if a resource is specified
show the options for the configured resource. If --all is specified
resource options will be displayed
start <resource id>
Start resource specified by resource_id
...
2.3. Anzeigen der unformatierten Cluster-Konfiguration
pcs cluster cib
anzeigen lassen.
pcs cluster cib filename
abspeichern, wie in Abschnitt 2.4, »Speichern einer Konfigurationsänderung in eine Datei« beschrieben.
2.4. Speichern einer Konfigurationsänderung in eine Datei
-f
zum pcs
-Befehl verwenden, um eine Konfigurationsänderung in eine Datei zu speichern ohne Auswirkungen auf die aktive CIB.
pcs cluster cib filename
testfile
.
pcs cluster cib testfile
testfile1
, fügt diese Ressource jedoch nicht der derzeit laufenden Cluster-Konfiguration hinzu.
# pcs -f testfile1 resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.0.120 cidr_netmask=24 op monitor interval=30s
testfile
mit dem folgenden Befehl an die CIB übertragen.
pcs cluster cib-push filename
2.5. Anzeigen des Status
pcs status commands
resources
, groups
, cluster
, nodes
oder pcsd
angeben.
2.6. Anzeigen der vollständigen Cluster-Konfiguration
pcs config
2.7. Anzeigen der aktuellen pcs-Version
pcs
an, die derzeit ausgeführt wird.
pcs --version
Kapitel 3. Cluster-Erstellung und -Verwaltung
3.1. Erstellen eines Clusters
- Authentifizieren Sie die Knoten, aus denen der Cluster gebildet werden soll.
- Konfigurieren und synchronisieren Sie die Cluster-Knoten.
- Starten Sie die Cluster-Dienste auf den Cluster-Knoten.
3.1.1. Authentifizieren der Cluster-Knoten
pcs
beim pcs
-Daemon auf den Knoten im Cluster.
- Der Benutzername für den
pcs
-Administrator muss auf jedem Knotenhacluster
lauten. Es wird empfohlen, dass auf jedem Knoten dasselbe Passwort für denhacluster
-Benutzer verwendet wird. - Falls Sie keinen Benutzernamen und kein Passwort angeben, fordert Sie das System für jeden Knoten zu deren Eingabe auf, wenn Sie den Befehl ausführen.
- Falls Sie keine Knoten angeben, authentifiziert dieser Befehl
pcs
auf jenen Knoten, die mit dem Befehlpcs cluster setup
angegeben wurden, falls Sie diesen Befehl zuvor ausgeführt haben.
pcs cluster auth [node] [...] [-u username] [-p password]
~/.pcs/tokens
(oder /var/lib/pcsd/tokens
) gespeichert.
3.1.2. Konfigurieren und Starten der Cluster-Knoten
- Falls Sie die Option
--start
angeben, startet der Befehl zudem die Cluster-Dienste auf den angegebenen Knoten. Falls notwendig, können Sie die Cluster-Dienste auch mit dem separaten Befehlpcs cluster start
starten. - Falls Sie die Option
--local
angeben, führt der Befehl die Änderungen nur auf dem lokalen Knoten durch.
pcs cluster setup [--start] [--local] --name cluster_ name node1 [node2] [...]
- Falls Sie die Option
--all
angeben, startet der Befehl die Cluster-Dienste auf allen Knoten. - Falls Sie keine Knoten angeben, werden die Cluster-Dienste nur auf dem lokalen Knoten gestartet.
pcs cluster start [--all] [node] [...]
3.2. Verwalten von Cluster-Knoten
3.2.1. Stoppen von Cluster-Diensten
pcs cluster start
stoppt die Option --all
die Cluster-Dienste auf allen Knoten und falls Sie keinen Knoten angeben, werden die Cluster-Dienste nur auf dem lokalen Knoten gestoppt.
pcs cluster stop [--all] [node] [...]
kill -9
ausgeführt wird.
pcs cluster kill
3.2.2. Aktivieren und Deaktivieren der Cluster-Dienste
- Falls Sie die Option
--all
angeben, aktiviert der Befehl die Cluster-Dienste auf allen Knoten. - Falls Sie keine Knoten angeben, werden die Cluster-Dienste nur auf dem lokalen Knoten aktiviert.
pcs cluster enable [--all] [node] [...]
- Falls Sie die Option
--all
angeben, deaktiviert der Befehl die Cluster-Dienste auf allen Knoten. - Falls Sie keine Knoten angeben, werden die Cluster-Dienste nur auf dem lokalen Knoten deaktiviert.
pcs cluster disable [--all] [node] [...]
3.2.3. Hinzufügen und Entfernen von Cluster-Knoten
cluster.conf
auf allen Knoten im Cluster, einschließlich dem neu hinzugefügten Knoten.
pcs cluster node add node
cluster.conf
. Informationen über das Entfernen sämtlicher Informationen über den Cluster von den Cluster-Knoten, um den Cluster dauerhaft zu löschen, finden Sie unter Abschnitt 3.4, »Entfernen der Cluster-Konfiguration«.
pcs cluster node remove node
3.2.4. Standby-Modus
--all
angeben, versetzt dieser Befehl alle Knoten in den Standby-Modus.
pcs cluster standby node | --all
--all
angeben, hebt dieser Befehl den Standby-Modus für alle Knoten auf.
pcs cluster unstandby node | --all
pcs cluster standby
den Ressourcen eine Beschränkung auferlegt, um diese daran zu hindern, auf dem angegebenen Knoten zu laufen. Wenn Sie den Befehl pcs cluster unstandby
ausführen, wird diese Beschränkung entfernt. Dadurch werden die Ressourcen nicht automatisch auf den angegebenen Knoten zurückverlegt; wo die Ressourcen zu diesem Zeitpunkt ausgeführt werden können, hängt von der ursprünglichen Konfiguration Ihrer Ressourcen ab. Informationen über Ressourcenbeschränkungen finden Sie in Kapitel 6, Ressourcenbeschränkungen.
3.3. Festlegen von Benutzerberechtigungen
pcs acl
dazu verwenden, um mittels Zugriffssteuerungslisten (engl.: Access Control Lists oder ACLs) Berechtigungen für lokale Benutzer einzustellen, die Leseberechtigungen oder Lese- und Schreibberechtigungen für die Cluster-Konfiguration gewähren.
- Führen Sie den Befehl
pcs acl role create...
aus, um eine Rolle zu erstellen, welche die Berechtigungen für diese Rolle definiert. - Diese von Ihnen erstellte Rolle können Sie mithilfe des Befehls
pcs acl user create
einem Benutzer zuweisen.
rouser
Lesezugriff auf eine Cluster-Konfiguration.
- Dieses Verfahren erfordert, dass der Benutzer
rouser
auf dem lokalen System existiert und dass der Benutzerrouser
Mitglied der Gruppehacluster
ist.#
adduser rouser
#usermod -a -G hacluster rouser
- Aktivieren Sie Pacemaker-ACLs mit der Cluster-Eigenschaft
enable-acl
.#
pcs property set enable-acl=true --force
- Erstellen Sie eine Rolle namens
read-only
mit Leseberechtigungen für die CIB.#
pcs acl role create read-only description="Read access to cluster" read xpath /cib
- Erstellen Sie den Benutzer
rouser
im ACL-System von pcs und weisen Sie diesem Benutzer die Rolleread-only
zu.#
pcs acl user create rouser read-only
- Zeigen Sie alle derzeitigen ACLs an.
#
pcs acl
User: rouser Roles: read-only Role: read-only Description: Read access to cluster Permission: read xpath /cib (read-only-read)
wuser
Schreibzugriff auf eine Cluster-Konfiguration.
- Dieses Verfahren erfordert, dass der Benutzer
wuser
auf dem lokalen System existiert und dass der Benutzerwuser
Mitglied der Gruppehacluster
ist.#
adduser wuser
#usermod -a -G hacluster wuser
- Aktivieren Sie Pacemaker-ACLs mit der Cluster-Eigenschaft
enable-acl
.#
pcs property set enable-acl=true --force
- Erstellen Sie eine Rolle namens
write-access
mit Schreibberechtigungen für die CIB.#
pcs acl role create write-access description="Full access" write xpath /cib
- Erstellen Sie den Benutzer
wuser
im ACL-System von pcs und weisen Sie diesem Benutzer die Rollewrite-access
zu.#
pcs acl user create wuser write-access
- Zeigen Sie alle derzeitigen ACLs an.
#
pcs acl
User: rouser Roles: read-only User: wuser Roles: write-access Role: read-only Description: Read access to cluster Permission: read xpath /cib (read-only-read) Role: write-access Description: Full Access Permission: write xpath /cib (write-access-write)
pcs acl
.
3.4. Entfernen der Cluster-Konfiguration
Warnung
pcs cluster stop
ausführen, bevor Sie den Cluster löschen.
pcs cluster destroy
3.5. Anzeigen des Cluster-Status
pcs status
pcs cluster status
pcs status resources
Kapitel 4. Fencing: Konfigurieren von STONITH
4.1. Verfügbare STONITH (Fencing)-Agenten
pcs stonith list [filter]
4.2. Allgemeine Eigenschaften von Fencing-Geräten
Anmerkung
target-role
einstellen wie für eine normale Ressource auch.
Anmerkung
Anmerkung
Tabelle 4.1. Allgemeine Eigenschaften von Fencing-Geräten
Feld | Typ | Standard | Beschreibung |
---|---|---|---|
stonith-timeout | Zeitspanne | 60s | Wert für die Zeitüberschreitung einer STONITH-Aktion pro stonith-Gerät. Setzt die Cluster-Eigenschaft stonith-timeout außer Kraft |
priority | Ganzzahl | 0 | Die Priorität der stonith-Ressource. Geräte werden in der Reihenfolge von höchster nach niedrigster Priorität versucht |
pcmk_host_map | Zeichenfolge | Eine Zuordnung von Hostnamen zu Portnummern für Geräte, die keine Hostnamen unterstützen. Zum Beispiel: node1:1;node2:2,3 weist den Cluster dazu an, Port 1 für Knoten 1 und Ports 2 und 3 für Knoten 2 zu verwenden | |
pcmk_host_list | Zeichenfolge | Eine Liste aller Rechner, die von diesem Gerät gesteuert werden. (Optional, es sei denn pcmk_host_check=static-list ) | |
pcmk_host_check | Zeichenfolge | dynamic-list | Wie bestimmt werden soll, welche Rechner von dem Gerät gesteuert werden. Zulässige Werte: dynamic-list (fragt das Gerät ab), static-list (prüft das Attribut pcmk_host_list ), kein Wert (nimmt an, dass jedes Gerät jeden Rechner abgrenzen kann) |
4.3. Anzeigen gerätespezifischer Fencing-Optionen
pcs stonith describe stonith_agent
# pcs stonith describe fence_apc
Stonith options for: fence_apc
ipaddr (required): IP Address or Hostname
login (required): Login Name
passwd: Login password or passphrase
passwd_script: Script to retrieve password
cmd_prompt: Force command prompt
secure: SSH connection
port (required): Physical plug number or name of virtual machine
identity_file: Identity file for ssh
switch: Physical switch number on device
inet4_only: Forces agent to use IPv4 addresses only
inet6_only: Forces agent to use IPv6 addresses only
ipport: TCP port to use for connection with device
action (required): Fencing Action
verbose: Verbose mode
debug: Write debug information to given file
version: Display version information and exit
help: Display help and exit
separator: Separator for CSV created by operation list
power_timeout: Test X seconds for status change after ON/OFF
shell_timeout: Wait X seconds for cmd prompt after issuing command
login_timeout: Wait X seconds for cmd prompt after login
power_wait: Wait X seconds after issuing ON/OFF
delay: Wait X seconds before fencing is started
retry_on: Count of attempts to retry power on
4.4. Erstellen eines Fencing-Geräts
pcs stonith create stonith_id stonith_device_type [stonith_device_options]
# pcs stonith create MyStonith fence_virt pcmk_host_list=f1 op monitor interval=30s
pcmk_host_map
verwenden, um zu definieren, welcher Port zu welchem Knoten gehört. Beispielsweise erstellt der folgende Befehl ein einziges Fencing-Gerät namens myapc-west-13
, das einen APC-Powerswitch namens west-apc
verwendet und Port 15 für Knoten west-13
nutzt.
# pcs stonith create myapc-west-13 fence_apc pcmk_host_list="west-13" ipaddr="west-apc" login="apc" passwd="apc" port="15"
west-apc
zum Abgrenzen von Knoten west-13
auf Port 15, west-14
auf Port 17, west-15
auf Port 18 und west-16
auf Port 19.
# pcs stonith create myapc fence_apc pcmk_host_list="west-13,west-14,west-15,west-16" pcmk_host_map="west-13:15;west-14:17;west-15:18;west-16:19" ipaddr="west-apc" login="apc" passwd="apc"
4.5. Konfigurieren von Storage-basierten Fencing-Geräten mit Aufheben der Abgrenzung
provides=unfencing
beim Erstellen des stonith
-Geräts angeben. Dadurch wird sichergestellt, dass die Abgrenzung eines abgegrenzten Knotens wieder aufgehoben wird, bevor der Knoten neu gestartet wird und die Cluster-Dienste auf diesem Knoten gestartet werden.
provides=unfencing
ist bei der Konfiguration eines strombasierten Fencing-Geräts nicht notwendig, da das Gerät selbst die Stromversorgung für den Knoten stellt, damit dieser booten und einen Wiederbeitritt zum Cluster versuchen kann. In diesem Fall impliziert der Neustart, dass die Aufhebung der Abgrenzung erfolgt ist.
my-scsi-shooter
, das den Fencing-Agent fence_scsi
verwendet und die Aufhebung der Abgrenzung für das Gerät ermöglicht.
pcs stonith create my-scsi-shooter fence_scsi devices=/dev/sda meta provides=unfencing
4.6. Anzeigen von Fencing-Geräten
--full
angegeben ist, werden alle konfigurierten stonith-Optionen angezeigt.
pcs stonith show [stonith_id] [--full]
4.7. Bearbeiten und Löschen von Fencing-Geräten
pcs stonith update stonith_id [stonith_device_options]
pcs stonith delete stonith_id
4.8. Verwalten von Knoten mit Fencing-Geräten
--off
angeben, wird der API-Aufruf off
an stonith verwendet, um den Knoten abzuschalten statt ihn neu zu starten.
pcs stonith fence node [--off]
Anmerkung
pcs stonith confirm node
4.9. Weitere Fencing-Konfigurationsoptionen
Tabelle 4.2. Fortgeschrittene Eigenschaften von Fencing-Geräten
Feld | Typ | Standard | Beschreibung |
---|---|---|---|
pcmk_host_argument | Zeichenfolge | Port | Ein alternativer Parameter, der anstelle des Ports angegeben werden soll. Einige Geräte unterstützen den standardmäßigen port-Parameter nicht oder bieten zusätzliche Parameter. Verwenden Sie dies zur Angabe eines alternativen, gerätespezifischen Parameters, der den abzugrenzenden Rechner angibt. Der Wert none kann verwendet werden, um den Cluster anzuweisen, keine weiteren Parameter zu übergeben. |
pcmk_reboot_action | Zeichenfolge | reboot | Ein alternativer Befehl, der anstelle von reboot ausgeführt werden soll. Einige Geräte unterstützen die standardmäßigen Befehle nicht oder bieten zusätzliche Befehle. Verwenden Sie dies zur Angabe eines alternativen, gerätespezifischen Befehls für die „reboot“-Aktion. |
pcmk_reboot_timeout | Zeitspanne | 60s | Ein alternativer Wert für die Zeitüberschreitung bei Neustarts, der anstelle von stonith-timeout verwendet werden soll. Einige Geräte benötigen sehr viel weniger bzw. mehr Zeit für diese Aktion als normal. Verwenden Sie dies zur Angabe eines alternativen, gerätespezifischen Werts für die Zeitüberschreitung bei „reboot“-Aktionen. |
pcmk_reboot_retries | Ganzzahl | 2 | Die maximale Anzahl von Neuversuchen für den reboot -Befehl innerhalb der Zeitspanne für die Zeitüberschreitung. Einige Geräte unterstützen keine mehrfachen Verbindungen. Operationen können fehlschlagen, falls das Gerät mit einer anderen Operation beschäftigt ist, weshalb Pacemaker die Operation automatisch erneut versucht, falls noch genügend Zeit bleibt. Verwenden Sie diese Option, um die Anzahl der Neuversuche von Pacemaker für „reboot“-Aktionen zu verändern, bevor aufgegeben werden soll. |
pcmk_off_action | Zeichenfolge | off | Ein alternativer Befehl, der anstelle von off ausgeführt werden soll. Einige Geräte unterstützen die standardmäßigen Befehle nicht oder bieten zusätzliche Befehle. Verwenden Sie dies zur Angabe eines alternativen, gerätespezifischen Befehls für die „off“-Aktion. |
pcmk_off_timeout | Zeitspanne | 60s | Ein alternativer Wert für die Zeitüberschreitung bei „off“-Aktionen, der anstelle von stonith-timeout verwendet werden soll. Einige Geräte benötigen sehr viel weniger bzw. mehr Zeit für diese Aktion als normal. Verwenden Sie dies zur Angabe eines alternativen, gerätespezifischen Werts für die Zeitüberschreitung bei „off“-Aktionen. |
pcmk_off_retries | Ganzzahl | 2 | Die maximale Anzahl von Neuversuchen für den off -Befehl innerhalb der Zeitspanne für die Zeitüberschreitung. Einige Geräte unterstützen keine mehrfachen Verbindungen. Operationen können fehlschlagen, falls das Gerät mit einer anderen Operation beschäftigt ist, weshalb Pacemaker die Operation automatisch erneut versucht, falls noch genügend Zeit bleibt. Verwenden Sie diese Option, um die Anzahl der Neuversuche von Pacemaker für „off“-Aktionen zu verändern, bevor aufgegeben werden soll. |
pcmk_list_action | Zeichenfolge | list | Ein alternativer Befehl, der anstelle von list ausgeführt werden soll. Einige Geräte unterstützen die standardmäßigen Befehle nicht oder bieten zusätzliche Befehle. Verwenden Sie dies zur Angabe eines alternativen, gerätespezifischen Befehls für die „list“-Aktion. |
pcmk_list_timeout | Zeitspanne | 60s | Ein alternativer Wert für die Zeitüberschreitung bei „list“-Aktionen, der anstelle von stonith-timeout verwendet werden soll. Einige Geräte benötigen sehr viel weniger bzw. mehr Zeit für diese Aktion als normal. Verwenden Sie dies zur Angabe eines alternativen, gerätespezifischen Werts für die Zeitüberschreitung bei „list“-Aktionen. |
pcmk_list_retries | Ganzzahl | 2 | Die maximale Anzahl von Neuversuchen für den list -Befehl innerhalb der Zeitspanne für die Zeitüberschreitung. Einige Geräte unterstützen keine mehrfachen Verbindungen. Operationen können fehlschlagen, falls das Gerät mit einer anderen Operation beschäftigt ist, weshalb Pacemaker die Operation automatisch erneut versucht, falls noch genügend Zeit bleibt. Verwenden Sie diese Option, um die Anzahl der Neuversuche von Pacemaker für „list“-Aktionen zu verändern, bevor aufgegeben werden soll. |
pcmk_monitor_action | Zeichenfolge | monitor | Ein alternativer Befehl, der anstelle von monitor ausgeführt werden soll. Einige Geräte unterstützen die standardmäßigen Befehle nicht oder bieten zusätzliche Befehle. Verwenden Sie dies zur Angabe eines alternativen, gerätespezifischen Befehls für die „monitor“-Aktion. |
pcmk_monitor_timeout | Zeitspanne | 60s | Ein alternativer Wert für die Zeitüberschreitung bei „monitor“-Aktionen, der anstelle von stonith-timeout verwendet werden soll. Einige Geräte benötigen sehr viel weniger bzw. mehr Zeit für diese Aktion als normal. Verwenden Sie dies zur Angabe eines alternativen, gerätespezifischen Werts für die Zeitüberschreitung bei „monitor“-Aktionen. |
pcmk_monitor_retries | Ganzzahl | 2 | Die maximale Anzahl von Neuversuchen für den monitor -Befehl innerhalb der Zeitspanne für die Zeitüberschreitung. Einige Geräte unterstützen keine mehrfachen Verbindungen. Operationen können fehlschlagen, falls das Gerät mit einer anderen Operation beschäftigt ist, weshalb Pacemaker die Operation automatisch erneut versucht, falls noch genügend Zeit bleibt. Verwenden Sie diese Option, um die Anzahl der Neuversuche von Pacemaker für „monitor“-Aktionen zu verändern, bevor aufgegeben werden soll. |
pcmk_status_action | Zeichenfolge | status | Ein alternativer Befehl, der anstelle von status ausgeführt werden soll. Einige Geräte unterstützen die standardmäßigen Befehle nicht oder bieten zusätzliche Befehle. Verwenden Sie dies zur Angabe eines alternativen, gerätespezifischen Befehls für die „status“-Aktion. |
pcmk_status_timeout | Zeitspanne | 60s | Ein alternativer Wert für die Zeitüberschreitung bei „status“-Aktionen, der anstelle von stonith-timeout verwendet werden soll. Einige Geräte benötigen sehr viel weniger bzw. mehr Zeit für diese Aktion als normal. Verwenden Sie dies zur Angabe eines alternativen, gerätespezifischen Werts für die Zeitüberschreitung bei „status“-Aktionen. |
pcmk_status_retries | Ganzzahl | 2 | Die maximale Anzahl von Neuversuchen für den status -Befehl innerhalb der Zeitspanne für die Zeitüberschreitung. Einige Geräte unterstützen keine mehrfachen Verbindungen. Operationen können fehlschlagen, falls das Gerät mit einer anderen Operation beschäftigt ist, weshalb Pacemaker die Operation automatisch erneut versucht, falls noch genügend Zeit bleibt. Verwenden Sie diese Option, um die Anzahl der Neuversuche von Pacemaker für „status“-Aktionen zu verändern, bevor aufgegeben werden soll. |
4.10. Konfigurieren von Fencing-Levels
- Die Levels werden nacheinander in aufsteigender Reihenfolge probiert, beginnend bei 1.
- Falls ein Gerät ausfällt, wird die Verarbeitung für den derzeitigen Level beendet. In diesem Level werden keine weiteren Geräte versucht, stattdessen wird mit dem nächsten Level fortgefahren.
- Falls alle Geräte erfolgreich abgegrenzt werden, dann war dieser Level erfolgreich und keine anderen Levels werden probiert.
- Die Operation ist abgeschlossen, wenn ein Level erfolgreich war oder wenn alle Levels erfolglos versucht wurden.
pcs stonith level add level node devices
pcs stonith level
rh7-2
zwei Fencing-Geräte konfiguriert: ein ilo-Fencing-Gerät namens my_ilo
und ein apc-Fencing-Gerät namens my_apc
. Diese Befehle richten Fencing-Levels ein, sodass im Falle eines Ausfalls des Geräts my_ilo
Pacemaker stattdessen das Gerät my_apc
zu verwenden versuchen wird. Dieses Beispiel zeigt auch die Ausgabe des Befehls pcs stonith level
, nachdem die Levels konfiguriert wurden.
#pcs stonith level add 1 rh7-2 my_ilo
#pcs stonith level add 2 rh7-2 my_apc
#pcs stonith level
Node: rh7-2 Level 1 - my_ilo Level 2 - my_apc
pcs stonith level remove level [node_id] [stonith_id] ... [stonith_id]
pcs stonith level clear [node|stonith_id(s)]
# pcs stonith level clear dev_a,dev_b
pcs stonith level verify
Kapitel 5. Konfigurieren von Cluster-Ressourcen
5.1. Ressourcenerstellung
pcs resource create resource_id standard:provider:type|type [resource options]
ocf
, Provider heartbeat
und Typ IPaddr2
. Die Floating-IP-Adresse dieser Ressource ist 192.168.0.120 und das System prüft alle 30 Sekunden, ob die Ressource läuft.
# pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.0.120 cidr_netmask=24 op monitor interval=30s
ocf
und heartbeat
verwendet.
# pcs resource create VirtualIP IPaddr2 ip=192.168.0.120 cidr_netmask=24 op monitor interval=30s
pcs resource delete resource_id
VirtualIP
.
# pcs resource delete VirtualIP
- Informationen über die Felder resource_id, standard, provider und type im Befehl
pcs resource create
finden Sie in Abschnitt 5.2, »Ressourceneigenschaften«. - Informationen über das Definieren von Ressourcenparametern für einzelne Ressourcen finden Sie in Abschnitt 5.3, »Ressourcenspezifische Parameter«.
- Informationen über das Definieren von Ressourcen-Metaoptionen, die der Cluster verwendet, um über das Verhalten der Ressource zu entscheiden, finden Sie in Abschnitt 5.4, »Ressourcen-Metaoptionen«.
- Informationen über das Definieren der Operationen, die auf einer Ressource auszuführen sind, finden Sie in Abschnitt 5.5, »Ressourcenoperationen«.
5.2. Ressourceneigenschaften
Tabelle 5.1. Ressourceneigenschaften
Feld | Beschreibung |
---|---|
resource_id
| |
standard
| |
type
| |
provider
|
Tabelle 5.2. Befehle zum Anzeigen von Ressourceneigenschaften
pcs-Anzeigebefehl | Ausgabe |
---|---|
pcs resource list | Zeigt eine Liste aller verfügbaren Ressourcen |
pcs resource standard | Zeigt eine Liste der verfügbaren Standards für Ressourcen-Agents |
pcs resource providers | Zeigt eine Liste der verfügbaren Provider für Ressourcen-Agents |
pcs resource list string | Zeigt eine Liste verfügbarer Ressourcen, gefiltert nach der angegebenen Zeichenfolge. Sie können mit diesem Befehl Ressourcen gefiltert nach dem Namen eines Standards, Providers oder Typs anzeigen |
5.3. Ressourcenspezifische Parameter
# pcs resource describe standard:provider:type|type
LVM
festlegen können.
# pcs resource describe LVM
Resource options for: LVM
volgrpname (required): The name of volume group.
exclusive: If set, the volume group will be activated exclusively.
partial_activation: If set, the volume group will be activated even
only partial of the physicalvolumes available. It helps to set to
true, when you are using mirroring logical volumes.
5.4. Ressourcen-Metaoptionen
Tabelle 5.3. Ressourcen-Metaoptionen
Feld | Standard | Beschreibung |
---|---|---|
priority
| 0
| |
target-role
| Started
|
In welchem Status soll der Cluster die Ressource zu halten versuchen? Zulässige Werte:
* Stopped – Zwingt die Ressource in einen gestoppten Status
* Started – Erlaubt einen Start der Ressource (im Falle von Multi-Status-Ressourcen werden diese nicht in den Master-Status hochgestuft)
|
is-managed
| true
| |
resource-stickiness
|
0
| |
requires
|
Berechnet
|
Legt fest, unter welchen Umständen die Ressource gestartet werden kann.
Standardmäßig
fencing , ausgenommen in den unten genannten Situationen. Mögliche Werte:
*
nothing – Der Cluster kann die Ressource immer starten.
*
quorum – Der Cluster kann diese Ressource nur starten, wenn die Mehrzahl der konfigurierten Knoten aktiv ist. Dies ist der Standardwert, wenn stonith-enabled den Wert false hat oder falls der Standardwert standard der Ressource stonith lautet.
*
fencing – Der Cluster kann diese Ressource nur starten, wenn die Mehrzahl der konfigurierten Knoten aktiv ist und wenn jegliche ausgefallene oder unbekannte Knoten abgeschaltet wurden.
*
unfencing – Der Cluster kann diese Ressource nur starten, wenn die Mehrzahl der konfigurierten Knoten aktiv ist und wenn jegliche ausgefallene oder unbekannte Knoten abgeschaltet wurden und nur auf Knoten, deren Abgrenzung aufgehoben wurde. Dies ist der Standardwert, falls die stonith -Metaoption provides=unfencing für ein Fencing-Gerät festgelegt wurde. Informationen über die stonith -Metaoption provides=unfencing finden Sie in Abschnitt 4.5, »Konfigurieren von Storage-basierten Fencing-Geräten mit Aufheben der Abgrenzung«.
|
migration-threshold
| INFINITY (deaktiviert)
|
Wie viele Ausfälle dürfen für diese Ressource auf einem Knoten auftreten, bevor dieser Knoten als ungeeignet zum Hosten dieser Ressource gekennzeichnet wird. Informationen über die Konfiguration der Option
migration-threshold finden Sie in Abschnitt 7.2, »Verlegen von Ressourcen wegen Ausfall«.
|
failure-timeout
| 0 (deaktiviert)
|
Verwendet zusammen mit der Option
migration-threshold ; zeigt an, wie viele Sekunden gewartet wird, bevor fortgefahren wird, als sei der Ausfall nicht geschehen, wodurch die Ressource möglicherweise wieder auf dem Knoten erlaubt wird, auf dem sie ausgefallen ist. Informationen über die Konfiguration der Option failure-timeout finden Sie in Abschnitt 7.2, »Verlegen von Ressourcen wegen Ausfall«.
|
multiple-active
| stop_start
|
Was soll der Cluster tun, falls er feststellt, dass die Ressource auf mehr als einem Knoten aktiv ist? Zulässige Werte:
*
block – Ressource als nicht verwaltet markieren
*
stop_only – alle aktiven Instanzen stoppen und sie so belassen
*
stop_start – alle aktiven Instanzen stoppen und die Ressource an nur einem Standort starten
|
pcs resource defaults options
resource-stickiness
auf 100.
# pcs resource defaults resource-stickiness=100
pcs resource defaults
weglassen, zeigt dieser eine Liste aller derzeit konfigurierten Standardwerte für Ressourcenoptionen an. Das folgende Beispiel zeigt die Ausgabe dieses Befehls, nachdem Sie den Standardwert für resource-stickiness
auf 100 geändert haben.
# pcs resource defaults
resource-stickiness:100
pcs resource create
, den Sie zur Angabe eines Werts für eine Ressourcen-Metaoption verwenden.
pcs resource create resource_id standard:provider:type|type [resource options] [meta meta_options...]
resource-stickiness
.
# pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.0.120 cidr_netmask=24 meta resource-stickiness=5O
pcs resource meta resource_id | group_id | clone_id | master_id meta_options
dummy_resource
. Dieser Befehl setzt die Metaoption failure-timeout
auf 20 Sekunden, sodass die Ressource nach 20 Sekunden einen Neustart auf derselben Ressource versuchen kann.
# pcs resource meta dummy_resource failure-timeout=20s
failure-timeout=20s
eingestellt wurde.
# pcs resource show dummy_resource
Resource: dummy_resource (class=ocf provider=heartbeat type=Dummy)
Meta Attrs: failure-timeout=20s
Operations: start interval=0s timeout=20 (dummy_resource-start-timeout-20)
stop interval=0s timeout=20 (dummy_resource-stop-timeout-20)
monitor interval=10 timeout=20 (dummy_resource-monitor-interval-10)
5.5. Ressourcenoperationen
pcs
-Befehl standardmäßig eine Überwachungsoperation erstellen mit einem Intervall, das vom Ressourcen-Agent bestimmt wird. Falls der Ressourcen-Agent kein standardmäßiges Überwachungsintervall vorgibt, erstellt der pcs-Befehl eine Überwachungsoperation mit einem Intervall von 60 Sekunden.
Tabelle 5.4. Eigenschaften einer Operation
pcs resource create resource_id standard:provider:type|type [resource_options] [op operation_action operation_options [operation_type operation_options]...]
IPaddr2
-Ressource mit einer Überwachungsoperation. Die neue Ressource trägt den Namen VirtualIP
, hat die IP-Adresse 192.168.0.99 und die Netzmaske 24 auf eth2
. Eine Überwachungsoperation wird alle 30 Sekunden durchgeführt.
# pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.0.99 cidr_netmask=24 nic=eth2 op monitor interval=30s
# pcs resource create my_address IPaddr2 ip=10.20.30.40 cidr_netmask=24 op monitor
pcs resource op add resource_id operation_action [operation_properties]
pcs resource op remove resource_id operation_name operation_properties
Anmerkung
VirtualIP
mit dem folgenden Befehl erstellen.
# pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.0.99 cidr_netmask=24 nic=eth2
Operations: start interval=0s timeout=20s (VirtualIP-start-timeout-20s) stop interval=0s timeout=20s (VirtualIP-stop-timeout-20s) monitor interval=10s timeout=20s (VirtualIP-monitor-interval-10s)
#pcs resource op remove VirtualIP stop interval=0s timeout=20s
#pcs resource op add VirtualIP stop interval=0s timeout=40s
#pcs resource show VirtualIP
Resource: VirtualIP (class=ocf provider=heartbeat type=IPaddr2) Attributes: ip=192.168.0.99 cidr_netmask=24 nic=eth2 Operations: start interval=0s timeout=20s (VirtualIP-start-timeout-20s) monitor interval=10s timeout=20s (VirtualIP-monitor-interval-10s) stop interval=0s timeout=40s (VirtualIP-name-stop-interval-0s-timeout-40s)
pcs resource op defaults [options]
timeout
von 240 Sekunden für alle Überwachungsoperationen fest.
# pcs resource op defaults timeout=240s
pcs resource op defaults
ausführen.
timeout
-Wert von 240 Sekunden konfiguriert wurde.
# pcs resource op defaults
timeout: 240s
5.6. Anzeigen konfigurierter Ressourcen
pcs resource show
VirtualIP
und einer Ressource namens WebSite
konfiguriert ist, dann zeigt der Befehl pcs resource show
die folgende Ausgabe.
# pcs resource show
VirtualIP (ocf::heartbeat:IPaddr2): Started
WebSite (ocf::heartbeat:apache): Started
--full
des Befehls pcs resource show
wie im folgenden Beispiel, um eine Liste aller konfigurierten Ressourcen und deren konfigurierten Parameter anzuzeigen.
# pcs resource show --full
Resource: VirtualIP (type=IPaddr2 class=ocf provider=heartbeat)
Attributes: ip=192.168.0.120 cidr_netmask=24
Operations: monitor interval=30s
Resource: WebSite (type=apache class=ocf provider=heartbeat)
Attributes: statusurl=http://localhost/server-status configfile=/etc/httpd/conf/httpd.conf
Operations: monitor interval=1min
pcs resource show resource_id
VirtualIP
an.
# pcs resource show VirtualIP
Resource: VirtualIP (type=IPaddr2 class=ocf provider=heartbeat)
Attributes: ip=192.168.0.120 cidr_netmask=24
Operations: monitor interval=30s
5.7. Ändern von Ressourcenparametern
pcs resource update resource_id [resource_options]
VirtualIP
, die Befehle zum Ändern des Werts für den Parameter ip
sowie die Werte nach erfolgter Änderung.
#pcs resource show VirtualIP
Resource: VirtualIP (type=IPaddr2 class=ocf provider=heartbeat) Attributes: ip=192.168.0.120 cidr_netmask=24 Operations: monitor interval=30s #pcs resource update VirtualIP ip=192.169.0.120
#pcs resource show VirtualIP
Resource: VirtualIP (type=IPaddr2 class=ocf provider=heartbeat) Attributes: ip=192.169.0.120 cidr_netmask=24 Operations: monitor interval=30s
5.8. Mehrere Überwachungsoperationen
Anmerkung
OCF_CHECK_LEVEL=n
hinzufügen.
IPaddr2
-Ressource konfigurieren, erstellt dies standardmäßig eine Überwachungsoperation mit einem Intervall von 10 Sekunden und einem Timeout-Wert von 20 Sekunden.
# pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.0.99 cidr_netmask=24 nic=eth2
# pcs resource op add VirtualIP monitor interval=60s OCF_CHECK_LEVEL=10
5.9. Aktivieren und Deaktivieren von Cluster-Ressourcen
resource_id
angegebene Ressource.
pcs resource enable resource_id
resource_id
angegebene Ressource.
pcs resource disable resource_id
5.10. Bereinigen von Cluster-Ressourcen
pcs resource cleanup
bereinigen. Dieser Befehl setzt den Status und den Ausfallzähler der Ressource zurück und weist den Cluster an, die Operationschronik einer Ressource zu vergessen und deren aktuellen Status neu zu erkennen.
resource_id
angegebene Ressource.
pcs resource cleanup resource_id
Kapitel 6. Ressourcenbeschränkungen
location
– Eine Standortbeschränkung legt fest, auf welchen Knoten eine Ressource laufen darf. Standortbeschränkungen werden in Abschnitt 6.1, »Standortbeschränkungen« beschrieben.order
– Eine Reihenfolgebeschränkung legt fest, in welcher Reihenfolge die Ressourcen laufen. Reihenfolgebeschränkungen werden in Abschnitt 6.2, »Reihenfolgebeschränkungen« beschrieben.colocation
– Eine relative Standortbeschränkung legt fest, wo eine Ressource relativ zu anderen Ressourcen platziert werden darf. Beschränkungen des relativen Standorts werden in Abschnitt 6.3, »Relative Standortbeschränkung für Ressourcen« beschrieben.
6.1. Standortbeschränkungen
Tabelle 6.1. Optionen für Standortbeschränkungen
Feld | Beschreibung |
---|---|
id
|
Ein eindeutiger Name für die Beschränkung. Dieser wird vom System festgelegt, wenn Sie eine Standortbeschränkung mit
pcs konfigurieren.
|
rsc
|
Ein Ressourcenname
|
node
|
Ein Knotenname
|
score
|
Gewichtung, die festlegt, ob eine Ressource einen Knoten bevorzugen oder meiden soll.
Der Wert
INFINITY ändert „soll“ auf „muss“. INFINITY ist die standardmäßige Gewichtung für eine Standortbeschränkung einer Ressource.
|
pcs constraint location rsc prefers node[=score] ...
pcs constraint location rsc avoids node[=score] ...
- Opt-In-Cluster: Konfigurieren Sie einen Cluster, in dem standardmäßig auf keinem Knoten eine Ressource laufen darf, und aktivieren Sie anschließend einzelne erlaubte Knoten für bestimmte Ressourcen. Das Verfahren zur Konfiguration eines Opt-In-Clusters wird in Abschnitt 6.1.1, »Konfigurieren eines Opt-In-Clusters« beschrieben.
- Opt-Out-Cluster: Konfigurieren Sie einen Cluster, in dem standardmäßig auf allen Knoten alle Ressourcen laufen dürfen, und erstellen Sie anschließend Standortbeschränkungen für Ressourcen, die nicht auf bestimmten Knoten laufen dürfen. Das Verfahren zur Konfiguration eines Opt-Out-Clusters wird in Abschnitt 6.1.2, »Konfigurieren eines Opt-Out-Clusters« beschrieben.
6.1.1. Konfigurieren eines Opt-In-Clusters
symmetric-cluster
auf false
, um Ressourcen daran zu hindern, irgendwo standardmäßig zu laufen.
# pcs property set symmetric-cluster=false
Webserver
den Knoten example-1
bevorzugt, die Ressource Database
den Knoten example-2
bevorzugt und beide Ressourcen auf Knoten example-3
ausweichen können, falls ihr bevorzugter Knoten ausfällt.
#pcs constraint location Webserver prefers example-1=200
#pcs constraint location Webserver prefers example-3=0
#pcs constraint location Database prefers example-2=200
#pcs constraint location Database prefers example-3=0
6.1.2. Konfigurieren eines Opt-Out-Clusters
symmetric-cluster
auf true
, um Ressourcen zu erlauben, standardmäßig überall zu laufen.
# pcs property set symmetric-cluster=true
example-3
wechseln, falls ihr bevorzugter Knoten ausfällt, da jeder Knoten die implizite Gewichtung 0 hat.
#pcs constraint location Webserver prefers example-1=200
#pcs constraint location Webserver avoids example-2=INFINITY
#pcs constraint location Database avoids example-1=INFINITY
#pcs constraint location Database prefers example-2=200
6.2. Reihenfolgebeschränkungen
pcs constraint order [action] resource_id then [action] resource_id [options]
Tabelle 6.2. Eigenschaften einer Reihenfolgebeschränkung
Feld | Beschreibung |
---|---|
resource_id
|
Der Name der Ressource, auf der eine Aktion durchgeführt wird
|
action
|
Die Aktion, die auf einer Ressource durchgeführt werden soll. Mögliche Werte der action-Eigenschaft sind:
*
start – Startet die Ressource
*
stop – Stoppt die Ressource
*
promote – Stuft die Ressource von einer Slave-Ressource zu einer Master-Ressource hoch
*
demote – Stuft die Ressource von einer Master-Ressource zu einer Slave-Ressource zurück
Falls keine Aktion angegeben wird, lautet die Standardaktion
start . Informationen über Master- und Slave-Ressourcen finden Sie in Abschnitt 8.2, »Multi-Status-Ressourcen: Ressourcen mit mehreren Modi«
|
kind -Option
|
Wie die Beschränkung erzwungen wird. Mögliche Werte der
kind -Option sind:
*
Optional – Nur zutreffend, falls beide Ressourcen starten bzw. stoppen. Informationen über eine optionale Reihenfolge finden Sie in Abschnitt 6.2.2, »Optionale Reihenfolge«
*
Mandatory – Immer (Standardwert). Falls die erste angegebene Ressource gestoppt ist oder nicht starten kann, muss die zweite angegebene Ressource gestoppt werden. Informationen über die Mandatory-Reihenfolge finden Sie in Abschnitt 6.2.1, »Zwingende Reihenfolge«
*
Serialize – Gewährleistet, dass keine zwei Stopp-/Startaktionen gleichzeitig für eine Gruppe von Ressourcen erfolgen
|
symmetrical -Option
|
6.2.1. Zwingende Reihenfolge
mandatory
) Beschränkungen bedeuten, dass die zweite angegebene Ressource nicht laufen kann, ohne dass die erste angegebene Ressource aktiv ist. Dies ist der Standardwert der kind
-Option. Die Standardwerte stellen sicher, dass die zweite angegebene Ressource reagiert, wenn die erste angegebene Ressource ihren Status ändert.
- Falls die erste angegebene Ressource lief und nun gestoppt wird, wird die zweite angegebene Ressource, sofern sie läuft, ebenfalls gestoppt.
- Falls die erste angegebene Ressource nicht lief und nicht gestartet werden kann, wird die zweite angegebene Ressource, sofern sie läuft, gestoppt.
- Falls die erste angegebene Ressource (neu) gestartet wird, während die zweite angegebene Ressource läuft, wird die zweite angegebene Ressource gestoppt und neu gestartet.
6.2.2. Optionale Reihenfolge
kind=Optional
für eine Reihenfolgebeschränkung angegeben ist, dann wird die Beschränkung als optional betrachtet und greift nur dann, wenn beide Ressourcen gestoppt oder gestartet werden. Jegliche Statusänderung der ersten angegebenen Ressource hat keinerlei Auswirkung auf die zweite angegebene Ressource.
VirtualIP
und dummy_resource
.
# pcs constraint VirtualIP then dummy_resource kind=Optional
6.2.3. Geordnete Ressourcengruppen
pcs constraint order set resource1 resource2 [resourceN]... [options] [set resource1 resource2 ...]
D1
, D2
und D3
haben, konfiguriert der folgende Befehl sie als geordnete Ressourcengruppe.
# pcs constraint order set D1 D2 D3
6.2.4. Entfernen von Ressourcen aus Reihenfolgebeschränkungen
pcs constraint order remove resource1 [resourceN]...
6.3. Relative Standortbeschränkung für Ressourcen
pcs constraint colocation add [master|slave] source_resource with [master|slave] target_resource [score] [options]
Tabelle 6.3. Eigenschaften einer relativen Standortbeschränkung
Feld | Beschreibung |
---|---|
source_resource
|
Die Quelle für die relative Standortbeschränkung. Falls die Bedingungen der Beschränkung nicht erfüllt werden können, kann der Cluster entscheiden, die Ressource nicht auszuführen.
|
target_resource
|
Das Ziel für die relative Standortbeschränkung. Der Cluster entscheidet zunächst über den Standort dieser Ressource, bevor er den Standort der Quellressource festlegt.
|
score
|
Positive Werte zeigen an, dass die Ressourcen auf demselben Knoten laufen sollen. Negative Werte zeigen an, dass die Ressourcen nicht auf demselben Knoten laufen sollen. Der Wert
+INFINITY , der Standardwert, zeigt an, dass die source_resource auf demselben Knoten wie die target_resource laufen muss. Der Wert -INFINITY zeigt an, dass die source_resource nicht auf demselben Knoten wie die target_resource laufen darf.
|
6.3.1. Zwingende Platzierung
+INFINITY
oder -INFINITY
lautet. Falls die Bedingung der Beschränkung nicht erfüllt werden kann, darf source_resource nicht laufen. Im Falle von score=INFINITY
gehören dazu Situationen, in denen die target_resource nicht aktiv ist.
myresource1
muss stets auf demselben Rechner wie myresource2
laufen, dann fügen Sie die folgende Beschränkung hinzu:
# pcs constraint colocation add myresource1 with myresource2 score=INFINITY
INFINITY
verwendet wurde, wird myresource1
nicht laufen dürfen, falls myresource2
aus irgendeinem Grund auf keinem der Cluster-Knoten laufen kann.
myresource1
nicht auf demselben Rechner laufen darf wie myresource2
. Verwenden Sie in diesem Fall score=-INFINITY
.
# pcs constraint colocation add myresource1 myresource2 with score=-INFINITY
-INFINITY
ist auch hier die Beschränkung zwingend. Falls der einzige verbleibende Ort zur Ausführung bereits von myresource2
belegt ist, dann darf myresource1
nirgends laufen.
6.3.2. Optionale Platzierung
-INFINITY
und kleiner als INFINITY
versucht der Cluster, Ihre Wünsche zu erfüllen, wird diese jedoch ignorieren, falls andernfalls einige der Cluster-Ressourcen gestoppt werden müssten. Optionale, relative Standortbedingungen können mit anderen Elementen der Konfiguration kombiniert werden, um sich wie zwingende Bedingungen zu verhalten.
6.3.3. Relative Standortbeschränkung für Ressourcengruppen
sequential
-Option auf true
oder false
setzen, um anzugeben, ob es sich bei der Ressourcengruppe mit relativer Standortbeschränkung um eine geordnete Gruppe handelt.
colocation set resource1 resource2 [resourceN]... [setoptions name=value] ... [set resourceX resourceY ...] [setoptions name=value...]
role
-Option für eine Gruppe mit relativer Standortbeschränkung auf master
oder slave
setzen. Informationen über Multi-Status-Ressourcen finden Sie in Abschnitt 8.2, »Multi-Status-Ressourcen: Ressourcen mit mehreren Modi«.
6.3.4. Entfernen von relativen Standortbeschränkungen
pcs constraint colocation remove source_resource target_resource
6.4. Anzeigen von Beschränkungen
pcs constraint list|show
- Falls
resources
angegeben ist, werden die Standortbeschränkungen pro Ressource angezeigt. Dies ist das Standardverhalten. - Falls
nodes
angegeben ist, werden Standortbeschränkungen pro Knoten angezeigt. - Falls bestimmte Ressourcen oder Knoten angegeben sind, werden nur Informationen über diese Ressourcen bzw. Knoten angezeigt.
pcs constraint location [show resources|nodes [specific nodes|resources]] [--full]
--full
angegeben ist, werden die internen Beschränkungs-IDs angezeigt.
pcs constraint order show [--full]
--full
angegeben ist, werden die internen Beschränkungs-IDs angezeigt.
pcs constraint colocation show [--full]
pcs constraint ref resource ...
6.5. Ressourcenruppen
pcs resource group add group_name resource_id...
pcs resource create resource_id standard:provider:type|type [resource_options] [op operation_action operation_options] --group group_name
pcs resource group remove group_name resource_id...
pcs resource group list
shortcut
, welche die vorhandenen Ressourcen IPaddr
und Email
enthält.
# pcs resource group add shortcut IPaddr Email
- Ressourcen werden in der Reihenfolge gestartet, in der Sie sie angegeben (in diesem Beispiel als Erstes
IPaddr
, danachEmail
). - Ressourcen werden in der umgekehrten Reihenfolge gestoppt, in der Sie sie angeben (
Email
zuerst, danachIPaddr
).
- Falls
IPaddr
nirgends laufen darf, kann auchEmail
nirgends laufen. - Falls
Email
nirgends laufen darf, hat dies jedoch keinerlei Auswirkungen aufIPaddr
.
6.5.1. Gruppenoptionen
priority
, target-role
, is-managed
. Informationen über Ressourcenoptionen finden Sie in Tabelle 5.3, »Ressourcen-Metaoptionen«.
6.5.2. Gruppentreue
resource-stickiness
) 100 beträgt und eine Gruppe sieben Mitglieder hat, von denen fünf inaktiv sind, dann möchte die Gruppe insgesamt am derzeitigen Standort bleiben mit einem Treuewert von 500.
Kapitel 7. Verwalten von Cluster-Ressourcen
7.1. Manuelles Verlegen von Ressourcen im Cluster
- Wenn ein Knoten gewartet wird und Sie alle auf diesem Knoten laufenden Ressourcen auf einen anderen Knoten verlegen müssen
- Wenn eine einzelne Ressource verlegt werden muss
resource_id
des Knotens an.
pcs resource move resource_id
destination_node
anzugeben.
pcs resource moveresource_id
destination_node
move resource_id
definiert hat.
pcs resource clear resource_id [node]
pcs resource move
der Ressource eine Beschränkung auferlegt, um diese daran zu hindern, auf dem angegebenen Knoten zu laufen. Wenn Sie den Befehl pcs resource clear
ausführen, wird diese Beschränkung entfernt. Dadurch werden die Ressourcen nicht automatisch auf den angegebenen Knoten zurückverlegt; wo die Ressourcen zu diesem Zeitpunkt ausgeführt werden können, hängt von der ursprünglichen Konfiguration Ihrer Ressourcen ab. Informationen über Ressourcenbeschränkungen finden Sie in Kapitel 6, Ressourcenbeschränkungen.
7.2. Verlegen von Ressourcen wegen Ausfall
migration-threshold
für diese Ressource festlegen. Sobald dieser Grenzwert erreicht wurde, darf die Ressource nicht länger auf diesem Knoten ausgeführt werden, bis:
- der Administrator den Ausfallzähler der Ressource manuell mithilfe des Befehls
pcs resource failcount
zurücksetzt oder - der Wert für
failure-timeout
für diese Ressource erreicht wird.
Anmerkung
migration-threshold
für eine Ressource ist nicht dasselbe wie das Konfigurieren einer Ressource für die Migration, bei der eine Ressource ohne Zustandsverlust von einem Standort auf einen anderen verlegt wird.
dummy_resource
hinzu, was dazu führt, dass die Ressource nach 10 Ausfällen auf einen anderen Knoten wechselt.
# pcs resource meta dummy_resource migration-threshold=10
# pcs resource defaults migration-threshold=10
pcs resource failcount
, um den aktuellen Status und die aktuellen Grenzwerte für Ausfälle für die Ressource zu bestimmen.
INFINITY
gesetzt wird und die Ressource sofort verlegt wird.
7.3. Verlegen von Ressourcen wegen Änderungen der Verbindungsfähigkeit
- Fügen Sie eine
ping
-Ressource zum Cluster hinzu. Dieping
-Ressource verwendet das gleichnamige Systemdienstprogramm, um zu testen, ob eine Reihe von Rechnern (angegeben anhand deren DNS-Hostnamen oder IPv4-/IPv6-Adressen) erreichbar sind, und verwendet die Ergebnisse, um ein Knotenattribut namenspingd
zu pflegen. - Konfigurieren Sie für die Ressource eine Standortbeschränkung, welche die Ressource auf einen anderen Knoten verlegt, falls die Verbindungsfähigkeit verloren geht.
ping
-Ressource festlegen können.
Tabelle 7.1. Eigenschaften von ping-Ressourcen
Feld | Beschreibung |
---|---|
dampen
| |
multiplier
| |
host_list
|
ping
-Ressource, welche die Verbindungsfähigkeit mit www.example.com
prüft. In der Praxis würden Sie die Verbindungsfähigkeit zu Ihrem Netzwerk-Gateway oder Router prüfen. Konfigurieren Sie die ping
-Ressource als Klon, damit die Ressource auf allen Cluster-Knoten läuft.
# pcs resource create ping ocf:pacemaker:ping dampen=5s multiplier=1000 host_list=www.example.com --clone
Webserver
. Dies veranlasst die Webserver
-Ressource dazu, auf einen Host zu wechseln, der www.example.com
anpingen kann, falls ihr derzeitiger Host nicht mehr dazu in der Lage ist, www.example.com
anzupingen.
# pcs constraint location Webserver rule score=-INFINITY pingd lt 1 or not_defined pingd
7.4. Aktivieren, Deaktivieren und Ausschließen von Cluster-Ressourcen
pcs resource move
, der in Abschnitt 7.1, »Manuelles Verlegen von Ressourcen im Cluster« beschrieben wird, gibt es eine Vielzahl anderer Befehle, die zur Steuerung des Verhaltens von Cluster-Ressourcen verwendet werden können.
--wait
angeben, wartet pcs bis zu 30 Sekunden (oder „n“ Sekunden, wie festgelegt) auf den Stopp der Ressource und gibt anschließend 0 zurück, falls die Ressource gestoppt ist, oder 1, falls die Ressource nicht gestoppt wurde.
pcs resource disable resource_id [--wait[=n]]
--wait
angeben, wartet pcs bis zu 30 Sekunden (oder „n“ Sekunden, wie festgelegt) auf den Start der Ressource und gibt anschließend 0 zurück, falls die Ressource gestartet ist, oder 1, falls die Ressource nicht gestartet wurde.
pcs resource enable resource_id [--wait[=n]]
pcs resource ban resource_id [node]
pcs resource ban
der Ressource eine Beschränkung auferlegt, um diese daran zu hindern, auf dem angegebenen Knoten zu laufen. Wenn Sie den Befehl pcs resource clear
ausführen, wird diese Beschränkung entfernt. Dadurch werden die Ressourcen nicht automatisch auf den angegebenen Knoten zurückverlegt; wo die Ressourcen zu diesem Zeitpunkt ausgeführt werden können, hängt von der ursprünglichen Konfiguration Ihrer Ressourcen ab. Informationen über Ressourcenbeschränkungen finden Sie in Kapitel 6, Ressourcenbeschränkungen.
pcs resource clear resource_id [node]
debug-start
des Befehls pcs resource
verwenden, um eine angegebene Ressource zum Starten auf dem aktuellen Knoten zu zwingen, wobei die Cluster-Empfehlungen ignoriert werden und die Ausgabe vom Ressourcenstart angezeigt wird. Dies wird hauptsächlich zur Suche und Bereinigung von Programmfehlern in Ressourcen verwendet. Das Starten von Ressourcen auf einem Cluster wird fast ausschließlich von Pacemaker gehandhabt und nicht direkt mit einem pcs
-Befehl. Falls Ihre Ressource nicht startet, liegt dies in der Regel an einer fehlerhaften Konfiguration der Ressource (was Sie im Systemprotokoll diagnostizieren können), an Beschränkungen, die die Ressource am Starten hindern, oder daran, dass die Ressource deaktiviert ist. Mithilfe dieses Befehls können Sie die Ressourcenkonfiguration testen, er sollte jedoch normalerweise nicht zum Starten von Ressourcen in einem Cluster verwendet werden.
debug-start
lautet wie folgt.
pcs resource debug-start resource_id
7.5. Deaktivieren von Überwachungsoperationen
enabled="false"
zur Definition der Operation hinzu. Wenn Sie die Überwachungsoperation wieder aktivieren möchten, fügen Sie enabled="true"
zur Definition der Operation hinzu.
7.6. Verwaltete Ressourcen
pcs resource unmanage resource1 [resource2] ...
pcs resource manage resource1 [resource2] ...
pcs resource manage
oder pcs resource unmanage
den Namen einer Ressourcengruppe angeben. Der Befehl wirkt sich auf alle Ressourcen in der Gruppe aus, sodass Sie alle Ressourcen in der Gruppe mit einem einzigen Befehl in einen verwalteten oder nicht verwalteten Modus versetzen können, um dann die enthaltenen Ressourcen einzeln zu verwalten.
Kapitel 8. Erweiterte Ressourcentypen
8.1. Ressourcen-Klone
Anmerkung
Filesystem
-Ressource, die ein nicht geclustertes Dateisystem wie ext4
auf einem gemeinsam verwendeten Speichergerät einhängt, nicht geklont werden. Da die ext4
-Partition nicht clusterfähig ist, ist das Dateisystem nicht geeignet für Lese- und Schreiboperationen, die von mehreren Knoten gleichzeitig erfolgen.
8.1.1. Erstellen und Entfernen einer geklonten Ressource
pcs resource create resource_id standard:provider:type|type [resource options] \ --clone [meta clone_options]
resource_id-clone
.
pcs resource clone resource_id | group_name [clone_options]...
resource_id-clone
oder group_name-clone
.
Anmerkung
Anmerkung
-clone
. Der folgende Befehl erstellt eine Ressource vom Typ apache
namens webfarm
und ein Klon dieser Ressource namens webfarm-clone
.
# pcs resource create webfarm apache clone
pcs resource unclone resource_id | group_name
Tabelle 8.1. Optionen für Ressourenklone
Feld | Beschreibung |
---|---|
priority, target-role, is-managed
|
Optionen, die von der zu klonenden Ressource geerbt werden, wie in Tabelle 5.3, »Ressourcen-Metaoptionen« beschrieben.
|
clone-max
| |
clone-node-max
| |
notify
| |
globally-unique
|
Legt fest, ob jeder Klon eine andere Funktion ausübt. Zulässige Werte
false , true
Falls der Wert dieser Option
false ist, verhalten sich diese Ressourcen überall gleich, ungeachtet dessen, wo sie ausgeführt werden. Demnach kann in diesem Fall pro Rechner nur eine Instanz des Klons aktiv sein.
Falls der Wert dieser Option
true ist, dann ist ein Klon auf einem Rechner nicht identisch mit einer anderen Instanz des Klons auf einem anderen Knoten oder auf demselben Knoten. Der Standardwert lautet true , falls der Wert von clone-node-max größer als 1 ist, andernfalls lautet der Standardwert false .
|
ordered
| |
interleave
|
8.1.2. Klonbeschränkungen
clone-max
für den Ressourcenklon auf einen Wert festlegen, der geringer ist als die Gesamtanzahl der Knoten im Cluster. In diesem Fall können Sie mithilfe von Standortbeschränkungen für die Ressource angeben, welchen Knoten der Cluster diese Klone vorzugsweise zuweisen soll. Diese Beschränkungen werden analog zur jenen für reguläre Ressourcen angegeben, jedoch mit dem Unterschied, dass die Klon-ID verwendet werden muss.
webfarm-clone
vorzugsweise node1
zuweist.
# pcs constraint location webfarm-clone prefers node1
webfarm-stats
, bis alle Instanzen von webfarm-clone
, die gestartet werden müssen, gestartet wurden, bevor er selbst startet. Nur wenn keine Instanzen von webfarm-clone
gestartet werden können, hindert dies webfarm-stats
daran, selbst gestartet zu werden. Umgekehrt wartet webfarm-clone
, bis webfarm-stats
gestoppt wurde, bevor dieser selbst stoppt.
# pcs constraint order start webfarm-clone then webfarm-stats
webfarm-stats
auf demselben Knoten läuft wie eine aktive Instanz von webfarm-clone
.
# pcs constraint colocation add webfarm-stats with webfarm-clone
8.1.3. Standorttreue von Klons
resource-stickiness
kein Wert angegeben wird, verwendet der Klon den Wert 1. Da dies nur ein kleiner Wert ist, hat er geringe Störwirkung bei der Kalkulation der Gewichtung anderer Ressourcen; dieser Wert ist jedoch genug, um Pacemaker daran zu hindern, unnötig Klone im Cluster hin- und herzuverlegen.
8.2. Multi-Status-Ressourcen: Ressourcen mit mehreren Modi
Master
oder Slave
. Die Namen der Modi haben keine weitere Bewandtnis; es ist lediglich vorgeschrieben, dass eine Instanz im Slave
-Status starten muss.
pcs resource create resource_id standard:provider:type|type [resource options] \ --master [meta master_options]
resource_id-master
.
resource_id-master
bzw. group_name-master
.
pcs resource master master/slave_name resource_id|group_name [master_options]
Tabelle 8.2. Eigenschaften einer Multi-Status-Ressource
8.2.1. Überwachen von Multi-Status-Ressourcen
ms_resource
. Diese Überwachungsoperation läuft zusätzlich zur standardmäßigen Überwachungsoperation mit dem standardmäßigen Überwachungsintervall von 10 Sekunden.
# pcs resource op add ms_resource interval=11s role=Master
8.2.2. Multi-Status-Beschränkungen
pcs constraint colocation add [master|slave] source_resource with [master|slave] target_resource [score] [options]
promote
– dies gibt an, dass die Ressource vom Slave zum Master hochgestuft werden soll. Sie können auch die Aktion demote
angeben – dies gibt an, dass die Ressource vom Master zum Slave heruntergestuft werden soll.
pcs constraint order [action] resource_id then [action] resource_id [options]
8.2.3. Multi-Status-Standorttreue
resource-stickiness
kein Wert angegeben wird, verwendet die Multi-Status-Ressource den Wert 1. Da dies nur ein kleiner Wert ist, hat er geringe Störwirkung bei der Kalkulation der Gewichtung anderer Ressourcen; dieser Wert ist jedoch genug, um Pacemaker daran zu hindern, unnötig Klone im Cluster hin- und herzuverlegen.
8.3. Ereignisbenachrichtigungen mit Überwachungsressourcen
ocf:pacemaker:ClusterMon
kann den Status des Clusters überwachen und bei jedem Cluster-Ereignis Benachrichtigungen ausgeben. Diese Ressource führt in regelmäßigen Abständen crm_mon
im Hintergrund aus und verwendet Funktionen von crm_mon
zum Senden von E-Mail-Nachrichten (SMTP) oder SNMP-Traps. Sie kann mithilfe des Parameters extra_options
auch externe Programme ausführen.
ClusterMon
-Ressource namens ClusterMon-SMTP
, die E-Mail-Benachrichtigungen sendet. Pacemaker-Ereignisse veranlassen den Versand einer E-Mail an pacemaker@example.com
von pacemaker@nodeX.example.com
mit mail.example.com
als Mail-Host. Diese Ressource wird als Klon erstellt, damit sie auf jedem Knoten im Cluster läuft.
# pcs resource create ClusterMon-SMTP ClusterMon --clone user=root update=30 \ extra_options="-T pacemaker@example.com -F pacemaker@nodeX.example.com \ -P PACEMAKER -H mail.example.com"
ClusterMon
-Ressource namens ClusterMon-SNMP
, die SNMP-Traps mit dem root-SNMP-Benutzer an Host snmphost.example.com
sendet. Diese Ressource wird als Klon erstellt, damit sie auf jedem Knoten im Cluster läuft.
# pcs resource create ClusterMon-SNMP ClusterMon user=root update=30 \ extra_options="-S snmphost.example.com -C public" --clone
ClusterMon
-Ressource namens ClusterMon-External
, die das Programm /usr/local/bin/example.sh
ausführt, das bestimmt, wie mit Cluster-Benachrichtigungen umzugehen ist. Diese Ressource wird als Klon erstellt, damit sie auf jedem Knoten im Cluster läuft.
# pcs resource create ClusterMon-External ClusterMon --clone user=root \ update=30 extra_options="-E /usr/local/bin/example.sh -e 192.168.12.1"
8.4. Der Dienst pacemaker_remote
pacemaker_remote
ermöglicht es, Knoten, die corosync
nicht ausführen, in den Cluster zu integrieren und deren Ressourcen zu verwalten, als handele es sich um echte Cluster-Knoten. Dies bedeutet, dass Pacemaker-Cluster nun dazu in der Lage sind, virtuelle Umgebungen (KVM/LXC) sowie die Ressourcen innerhalb dieser Umgebungen zu verwalten, ohne dass in diesen virtuellen Umgebungen pacemaker
oder corosync
ausgeführt werden muss.
pacemaker_remote
.
- Cluster-Knoten – Ein Knoten, der die Hochverfügbarkeitsdienste (
pacemaker
undcorosync
) ausführt. - Remote-Knoten – Ein Knoten, der
pacemaker_remote
ausführt, um sich von Remote aus in den Cluster zu integrieren, ohne einecorosync
-Cluster-Mitgliedschaft zu erfordern. - Container – Eine Pacemaker-Ressource, die weitere Ressourcen enthält. Beispielsweise eine virtuelle KVM-Maschine, die eine Webserver-Ressource enthält.
- Container-Remote-Knoten – Ein virtueller Remote-Gast-Knoten, der den Dienst
pacemaker_remote
ausführt. Dies beschreibt einen bestimmten Anwendungsfall eines Remote-Knotens, bei dem eine vom Cluster verwaltete virtuelle Gastressource vom Cluster gestartet und in den Cluster als Remote-Knoten integriert wird. - pacemaker_remote – Ein Dienst-Daemon mit der Fähigkeit zur Remote-Applikationsverwaltung innerhalb von Gastknoten (KVM und LXC) in sowohl Pacemaker-Cluster-Umgebungen als auch eigenständigen (nicht geclusterten) Umgebungen. Dieser Dienst ist eine erweiterte Version von Pacemakers lokalem Daemon zur Ressourcenverwaltung (Local Resource Management Daemon oder kurz LRMD), der fähig ist zur Remote-Verwaltung und -Überwachung von LSB-, OCF-, upstart- und systemd-Ressourcen auf einem Gast. Zudem ermöglicht er, dass
pcs
auf Remote-Knoten ausgeführt werden kann. - LXC – Ein Linux-Container, definiert durch den Linux-Container-Treiber
libvirt-lxc
.
pacemaker_remote
ausführt, hat die folgenden Charakteristiken.
- Die virtuellen Remote-Knoten führen den Dienst
pacemaker_remote
aus (mit nur wenig erforderlicher Konfiguration auf Seiten der virtuellen Maschine). - Der Cluster-Stack (
pacemaker
undcorosync
), der auf den Cluster-Knoten läuft, startet die virtuellen Maschinen und verbindet sofort mit dem Dienstpacemaker_remote
, sodass die virtuellen Maschinen in den Cluster integriert werden können.
8.4.1. Ressourcenoptionen für Container-Remote-Knoten
VirtualDomain
-Ressource, welche die virtuelle Maschine verwaltet. Mit dem folgenden Befehl erhalten Sie eine Beschreibung der Optionen, die Sie für eine VirtualDomain
-Ressource festlegen können.
# pcs resource describe VirtualDomain
VirtualDomain
-Ressourcenoptionen können Sie Metadaten-Optionen konfigurieren, um die Ressource als Remote-Knoten zu konfigurieren und die Verbindungsparameter zu definieren. Tabelle 8.3, »Metadaten-Optionen zur Konfiguration von KVM/LXC-Rsesourcen als Remote-Knoten« beschreibt diese Metadaten-Optionen.
Tabelle 8.3. Metadaten-Optionen zur Konfiguration von KVM/LXC-Rsesourcen als Remote-Knoten
Feld | Standard | Beschreibung |
---|---|---|
remote-node
|
<none>
|
Der Name des Remote-Knotens, der diese Ressource definiert. Dies aktiviert die Ressource als Remote-Knoten und definiert den eindeutigen Namen zur Identifizierung des Remote-Knotens. Falls keine Parameter festgelegt sind, wird dieser Wert auch als Hostname zur Verbindung mit Port 3121 angenommen. WARNUNG: Dieser Wert darf sich nicht mit anderen Ressourcen- oder Knoten-IDs überschneiden.
|
remote-port
|
3121
|
Konfiguriert einen benutzerdefinierten Port zur Verwendung für die Gastverbindung mit
pacemaker_remote .
|
remote-addr
|
Wert von
remote-node verwendet als Hostname
|
Die IP-Adresse oder der Hostname, mit dem verbunden wird, falls der Name des Remote-Knotens nicht der Hostname des Gasts ist
|
remote-connect-timeout
|
60s
|
Zeitspanne für eine ausstehende Gastverbindung, bevor eine Zeitüberschreitung erfolgt
|
VirtualDomain
-Ressource namens vm-guest1
, bei der es sich um einen Remote-Knoten handelt, der mithilfe des Meta-Attributs remote-node
dazu in der Lage ist, Ressourcen auszuführen.
# pcs resource create vm-guest1 VirtualDomain hypervisor="qemu:///system" config="vm-guest1.xml" meta remote-node=guest1
8.4.2. Host- und Gastauthentifizierung
/etc/pacemaker/authkey
abgelegt werden.
8.4.3. Ändern der standardmäßigen pacemaker_remote-Optionen
authkey
für entweder Pacemaker oder pacemaker_remote
ändern möchten, gibt es Umgebungsvariablen zu diesem Zweck, die diese beiden Daemons betreffen. Sie können diese Umgebungsvariablen aktivieren, indem Sie sie wie folgt in die Datei /etc/sysconfig/pacemaker
einfügen.
#==#==# Pacemaker Remote # Use a custom directory for finding the authkey. PCMK_authkey_location=/etc/pacemaker/authkey # # Specify a custom port for Pacemaker Remote connections PCMK_remote_port=3121
8.4.4. Konfigurationsübersicht: KVM-Remote-Knoten
libvirt
und virtuellen KVM-Gästen.
- Nachdem Sie die Virtualisierungssoftware installiert und den
libvirtd
-Dienst auf den Cluster-Knoten aktiviert haben, platzieren Sie einenauthkey
mit dem Pfad/etc/pacemaker/authkey
auf jedem Cluster-Knoten und auf jeder virtuellen Maschine. Dies sichert die Remote-Kommunikation und die Authentifizierung.Der folgende Befehl erstellt einenauthkey
.#
dd if=/dev/urandom of=/etc/pacemaker/authkey bs=4096 count=1
- Installieren Sie auf jeder virtuellen Maschine die
pacemaker_remote
-Pakete, starten Sie denpacemaker_remote
-Dienst, aktivieren Sie dessen Start beim Systemboot und öffnen Sie den TCP-Port 3121 in der Firewall.#
yum install pacemaker-remote resource-agents
#systemctl start pacemaker_remote.service
#systemctl enable pacemaker_remote.service
#firewall-cmd --add-port 3121/tcp --permanent
- Geben Sie jeder virtuellen Maschine eine statische Netzwerkadresse und einen eindeutigen Hostnamen.
- Um den
VirtualDomain
-Ressourcen-Agent zur Verwaltung der virtuellen Maschine zu erstellen, erfordert Pacemaker, dass ein Auszug der XML-Konfigurationsdatei der virtuellen Maschine in einer Datei auf der Festplatte gespeichert wird. Falls Sie beispielsweise eine virtuelle Maschine namensguest1
erstellt haben, speichern Sie mithilfe des folgenden Befehls das XML in einer Datei auf dem Host ab.#
virsh dumpxml guest1 > /virtual_machines/guest1.xml
- Erstellen Sie die
VirtualDomain
-Ressource, wobei die Ressourcen-Metaoptionremote-note
angeben sollte, dass die virtuelle Maschine ein Remote-Knoten fähig zur Ausführung von Ressourcen ist.In dem Beispiel unten teilt das Meta-Attributremote-node=guest1
Pacemaker mit, dass diese Ressource ein Remote-Knoten mit dem Hostnamenguest1
ist, der in den Cluster integriert werden kann. Der Cluster wird versuchen, den Dienstpacemaker_remote
der virtuellen Maschine unter dem Hostnamenguest1
zu kontaktieren, nachdem er gestartet wurde.#
pcs resource create vm-guest1 VirtualDomain hypervisor="qemu:///system" config="vm-guest1.xml" meta remote-node=guest1
- Nach Erstellung der
VirtualDomain
-Ressource können Sie diesen Remote-Knoten wie jeden anderen Knoten im Cluster behandeln. Beispielsweise können Sie eine Ressource erstellen und diese Ressource mit einer Ressourcenbeschränkung belegen, damit diese nur auf dem Remote-Knoten läuft.#
pcs resource create webserver apache params configfile=/etc/httpd/conf/httpd.conf op monitor interval=30s
#pcs constraint webserver prefers guest1
Sobald ein Remote-Knoten in den Cluster integriert wurde, können Siepcs
-Befehle auf dem Remote-Knoten selbst ausführen, ganz so, als liefe Pacemaker auf dem Remote-Knoten.
Kapitel 9. Pacemaker-Regeln
resource-stickiness
während der Geschäftszeiten, um Ressourcen daran zu hindern, auf Ihre bevorzugten Standorte zurückzuwechseln, und einen anderen Wert für Wochenenden, wenn niemand etwaige Serviceausfälle bemerkt.
boolean-op
, um zu bestimmen, ob die Regel letztlich true
oder false
ergibt. Was danach geschieht, hängt vom Zusammenhang ab, in dem die Regel verwendet wird.
Tabelle 9.1. Eigenschaften einer Regel
9.1. Knotenattribut-Ausdrücke
Tabelle 9.2. Eigenschaften eines Ausdrucks
Feld | Beschreibung |
---|---|
value
| |
attribute
| |
type
| |
operation
|
Der auszuführende Vergleich. Zulässige Werte:
*
lt – Ergibt true , falls der Wert des Knotenattributs weniger als value beträgt
*
gt – Ergibt true , falls der Wert des Knotenattributs größer als value ist
*
lte – Ergibt true , falls der Wert des Knotenattributs weniger als oder gleich value ist
*
gte – Ergibt true , falls der Wert des Knotenattributs größer als oder gleich value ist
*
eq – Ergibt true , falls der Wert des Knotenattributs gleich value ist
*
ne – Ergibt true , falls der Wert des Knotenattributs nicht gleich value ist
*
defined – Ergibt true , falls der Knoten das genannte Attribut hat
|
9.2. Zeit-/Datumsbasierte Ausdrücke
Tabelle 9.3. Eigenschaften eines Datumsausdrucks
Feld | Beschreibung |
---|---|
start
| |
end
| |
operation
|
Vergleicht das aktuelle Datum und die aktuelle Uhrzeit mit dem Start- und/oder dem Enddatum, abhängig vom Kontext. Zulässige Werte:
*
gt – Ergibt true , falls das aktuelle Datum und die aktuelle Uhrzeit nach start liegt
*
lt – Ergibt true , falls das aktuelle Datum und die aktuelle Uhrzeit vor end liegt
*
in-range – Ergibt true , falls das aktuelle Datum und die aktuelle Uhrzeit nach start und vor end liegt
|
9.3. Datumsspezifikationen
monthdays="1"
der erste Tag eines jeden Monats und hours="09-17"
bedeutet die Stunden zwischen 9 Uhr morgens und 17 Uhr abends (einschließlich). Allerdings können Sie nicht weekdays="1,2"
oder weekdays="1-2,5-6"
angeben, da dies mehrere Bereiche darstellt.
Tabelle 9.4. Eigenschaften einer Datumsspezifikation
Feld | Beschreibung |
---|---|
id
| |
hours
| |
monthdays
| |
weekdays
| |
yeardays
| |
months
| |
weeks
| |
years
| |
weekyears
| |
moon
|
9.4. Dauer
end
verwendet, wenn in in_range
-Operationen keiner angegeben wurde. Die Dauer verwendet dieselben Felder wie date_spec
-Objekte, jedoch ohne Begrenzungen (z. B. können Sie eine Dauer von 19 Monaten festlegen). Wie bei date_specs
wird auch hier jedes nicht angegebene Feld ignoriert.
9.5. Konfigurieren von Regeln mit pcs
score
weglassen, wird standardmäßig INFINITY verwendet. Falls Sie die id
weglassen, wird eine ID aus der constraint_id generiert. Der rule_type sollte expression
oder date_expression
sein.
pcs constraint rule add constraint_id [rule_type] [score=score [id=rule_id] expression|date_expression|date_spec options
pcs constraint rule remove rule_id
9.6. Beispiel für zeitbasierte Ausdrücke
true
ergibt, falls der aktuelle Zeitpunkt im Jahr 2005 liegt.
# pcs constraint location Webserver rule score=INFINITY date-spec years=2005
true
ergibt zwischen 9 und 17 Uhr, montags bis freitags. Beachten Sie, dass der angegebene Wert für die Stunden (16) bis 16:59:59 Uhr reicht, da der numerische Wert für die Stunde bis dahin übereinstimmt.
# pcs constraint location Webserver rule score=INFINITY date-spec hours="9-16" weekdays="1-5"
true
ergibt, falls es an einem Freitag, den 13. einen Vollmond gibt.
# pcs constraint location Webserver rule date-spec weekdays=5 monthdays=13 moon=4
9.7. Verwenden von Regeln zum Bestimmen von Ressourcenstandorten
pcs resource constraint location resource_id rule [rule_id] [role=master|slave] [score=score expression]
defined|not_defined attribute
attribute lt|gt|lte|gte|eq|ne value
date [start=start [end=end operation=gt|lt|in-range
date-spec date_spec_options
Kapitel 10. Pacemaker-Cluster-Eigenschaften
- Tabelle 10.1, »Cluster-Eigenschaften« beschreibt die Optionen der Cluster-Eigenschaften.
- Abschnitt 10.2, »Festlegen und Entfernen von Cluster-Eigenschaften« beschreibt, wie Cluster-Eigenschaften festgelegt werden.
- Abschnitt 10.3, »Abfragen der Einstellungen für Cluster-Eigenschaften« beschreibt, wie die derzeit festgelegten Cluster-Eigenschaften angezeigt werden.
10.1. Überblick über Cluster-Eigenschaften und -Optionen
Anmerkung
Tabelle 10.1. Cluster-Eigenschaften
Option | Standard | Beschreibung |
---|---|---|
batch-limit | 30 | |
migration-limit | -1 (unbegrenzt) | |
no-quorum-policy | stop |
* ignore – Mit der Ressourcenverwaltung fortfahren
* freeze – Mit der Ressourcenverwaltung fortfahren, aber keine Ressourcen auf Knoten in der betroffenen Partition wiederherstellen
* stop – Alle Ressourcen in der betroffenen Cluster-Partition stoppen
* suicide – Alle Knoten in der betroffenen Cluster-Partition abgrenzen
|
symmetric-cluster | true | |
stonith-enabled | true |
Legt fest, dass ausgefallene Knoten sowie Knoten mit Ressourcen, die nicht gestoppt werden können, abgegrenzt werden sollen. Zur Sicherung Ihrer Daten muss dies auf
true eingestellt werden.
Falls
true oder nicht festgelegt, wird der Cluster keine Ressourcen starten, bis nicht eine oder mehr STONITH-Ressourcen konfiguriert wurden.
|
stonith-action | reboot | |
cluster-delay | 60s | |
stop-orphan-resources | true | |
stop-orphan-actions | true | |
start-failure-is-fatal | true |
Legt fest, ob ein fehlgeschlagener Start als fataler Fehler für die Ressource gehandhabt wird. Falls auf
false gesetzt, verwendet der Cluster stattdessen den failcount und den Wert für migration-threshold der Ressource. Informationen über das Einstellen der Option migration-threshold für eine Ressource finden Sie in Abschnitt 7.2, »Verlegen von Ressourcen wegen Ausfall«.
|
pe-error-series-max | -1 (alle) | |
pe-warn-series-max | -1 (alle) | |
pe-input-series-max | -1 (alle) | |
cluster-infrastructure | ||
dc-version | ||
last-lrm-refresh | ||
cluster-recheck-interval | 60 | |
default-action-timeout | 20s | |
maintenance-mode | false |
Dieser Wartungsmodus versetzt den Cluster in einen Wartezustand, in dem der Cluster keine Dienste startet oder stoppt, sofern nicht dazu aufgefordert. Sobald der Wartungsmodus abgeschlossen ist, führt der Cluster eine Zustandsprüfung aller Dienste durch und stoppt oder startet jegliche nötige Dienste.
|
shutdown-escalation | 20min | |
stonith-timeout | 60s | |
stop-all-resources | false | |
default-resource-stickiness | 5000 | |
is-managed-default | true | |
enable-acl | false |
10.2. Festlegen und Entfernen von Cluster-Eigenschaften
pcs property set property=value
symmetric-cluster
auf false
zu setzen, führen Sie den folgenden Befehl aus.
# pcs property set symmetric-cluster=false
pcs property unset property
pcs property set
leer lassen. Dadurch wird die Eigenschaft auf ihren Standardwert zurückgesetzt. Falls Sie beispielsweise die Eigenschaft symmetric-cluster
bislang auf false
eingestellt hatten, dann entfernt der folgende Befehl diesen Wert aus der Konfiguration und setzt den Wert für symmetric-cluster
stattdessen auf seinen Standardwert true
.
# pcs property set symmetic-cluster=
10.3. Abfragen der Einstellungen für Cluster-Eigenschaften
pcs
-Befehl zum Anzeigen von Werten der verschiedenen Cluster-Komponenten verwenden, können in den meisten Fällen die Befehle pcs list
oder pcs show
austauschbar verwendet werden. In den folgenden Beispielen ist pcs list
das verwendete Format zum Anzeigen einer umfassenden Liste aller Einstellungen für mehr als eine Eigenschaft, während pcs show
das verwendete Format zum Anzeigen der Werte einer bestimmten Eigenschaft ist.
pcs property list
pcs property list --all
pcs property show property
cluster-infrastructure
anzuzeigen, führen Sie den folgenden Befehl aus:
# pcs property show cluster-infrastructure
Cluster Properties:
cluster-infrastructure: cman
pcs property [list|show] --defaults
Anhang A. Cluster-Erstellung in Red Hat Enterprise Linux Release 6.5 und Red Hat Enterprise Linux Release 6.6
rgmanager
. Abschnitt A.1, »Cluster-Erstellung mit rgmanager und mit Pacemaker« fasst die Konfigurationsunterschiede zwischen den verschiedenen Cluster-Komponenten zusammen.
pcs
-Unterstützung in der Red Hat Enterprise Linux Release 6.5 und der pcs
-Unterstützung in der Red Hat Enterprise Linux Release 6.6.
A.1. Cluster-Erstellung mit rgmanager und mit Pacemaker
Tabelle A.1. Vergleich der Cluster-Konfiguration mit rgmanager und mit Pacemaker
Konfigurationskomponente | rgmanager | Pacemaker |
---|---|---|
Cluster-Konfigurationsdatei
|
Die Cluster-Konfigurationsdatei auf jedem Knoten lautet
cluster.conf , die direkt bearbeitet werden kann, falls gewünscht. Verwenden Sie andernfalls die luci- oder ccs -Benutzerschnittstellen zum Definieren der Cluster-Konfiguration.
|
Die Cluster- und Pacemaker-Konfigurationsdateien lauten
cluster.conf und cib.xml . Bearbeiten Sie diese Dateien nicht direkt, sondern verwenden Sie stattdessen die pcs -Benutzerschnittstelle.
|
Netzwerkkonfiguration
|
Konfigurieren Sie IP-Adressen und SSH, bevor Sie den Cluster konfigurieren.
|
Konfigurieren Sie IP-Adressen und SSH, bevor Sie den Cluster konfigurieren.
|
Tools zur Cluster-Konfiguration
|
luci,
ccs -Befehl, manuelles Bearbeiten der cluster.conf -Datei.
|
pcs
|
Installation
|
Installieren Sie
rgmanager (wodurch ebenfalls dessen Abhängigkeiten installiert werden, darunter ricci , luci und die Ressourcen- und Fencing-Agents). Falls nötig, installieren Sie lvm2-cluster und gfs2-utils .
|
Installieren Sie
pacemaker , cman , pcs und die von Ihnen benötigten Ressourcen- und Fencing-Agents. Falls nötig, installieren Sie lvm2-cluster und gfs2-utils .
|
Starten der Cluster-Dienste
|
Starten und aktivieren Sie die Cluster-Dienste mit dem folgenden Verfahren:
Alternativ können Sie
ccs --start ausführen, um die Cluster-Dienste zu starten und zu aktivieren.
|
Starten und aktivieren Sie die Cluster-Dienste mit dem folgenden Verfahren:
|
Zugriffssteuerung für Konfigurationstools
|
Für luci gilt, dass der root-Benutzer oder ein Benutzer mit luci-Berechtigungen auf luci zugreifen kann. Jeglicher Zugriff erfordert das
ricci -Passwort für den Knoten.
|
Es gibt keine grafische Konfigurationsoberfläche.
|
Cluster-Erstellung
|
Verwenden Sie luci oder
ccs oder bearbeiten Sie die cluster.conf -Datei direkt, um den Cluster zu benennen und um zu definieren, welche Knoten im Cluster enthalten sein sollen.
|
Verwenden Sie den Befehl
pcs cluster setup , um den Cluster zu benennen und um Knoten zum Cluster hinzuzufügen.
|
Verbreiten der Cluster-Konfiguration auf alle Knoten
|
Bei der Konfiguration eines Clusters mit luci geschieht die Verbreitung automatisch. Verwenden Sie mit
ccs die Option --sync . Sie können auch den Befehl cman_tool version -r verwenden.
|
Die Verbreitung der Cluster- und Pacemaker-Konfigurationsdateien
cluster.conf und cib.xml geschieht automatisch bei der Einrichtung des Clusters und beim Hinzufügen einer Ressource.
|
Globale Cluster-Eigenschaften
|
rgmanager unterstützt die folgenden Features:
* Sie können das System so konfigurieren, dass das System die zu verwendende Multicast-Adresse für das IP-Multicasting im Cluster-Netzwerk wählt.
* Falls IP-Multicasting nicht verfügbar ist, können Sie den UDP-Unicast Übertragungsmechanismus verwenden.
* Sie können einen Cluster zur Verwendung des RRP-Protokolls konfigurieren.
|
Pacemaker unterstützt die folgenden Features für einen Cluster:
* Sie können für den Cluster eine
no-quorum-policy festlegen, um anzugeben, was das System tun soll, falls der Cluster kein Quorum hat.
* Weitere konfigurierbare Cluster-Eigenschaften finden Sie in Tabelle 10.1, »Cluster-Eigenschaften«.
|
Protokollierung
|
Sie können eine globale und eine Daemon-spezifische Protokollkonfiguration festlegen.
|
Siehe
/etc/sysconfig/pacemaker -Datei für Informationen über die manuelle Konfiguration der Protokollierung.
|
Prüfen des Clusters
|
Die Cluster-Prüfung erfolgt mit luci und mit
ccs automatisch anhand des Cluster-Schemas. Der Cluster wird automatisch beim Start geprüft.
|
Der Cluster wird automatisch beim Start geprüft oder Sie können den Cluster mit
pcs cluster verify selbst prüfen.
|
Quorum in 2-Knoten-Clustern
|
Für einen 2-Knoten-Cluster können Sie konfigurieren, wie das System das Quorum bestimmt:
* Konfigurieren Sie einen Quorum-Datenträger
* Verwenden Sie
ccs oder bearbeiten Sie die Datei cluster.conf , um two_node=1 und expected_votes=1 festzulegen, um es einem einzigen Knoten zu ermöglichen, das Quorum zu bewahren.
| pcs fügt die notwendigen Optionen für einen 2-Knoten-Cluster automatisch zu cman hinzu.
|
Cluster-Status
|
In luci ist der aktuelle Status des Clusters in den verschiedenen Komponenten der Oberfläche sichtbar und kann aktualisiert werden. Mithilfe der Option
--gethost des ccs -Befehls können Sie die aktuelle Konfigurationsdatei sehen. Sie können den clustat -Befehl verwenden, um den Cluster-Status anzuzeigen.
|
Sie können den derzeitigen Status des Clusters mit dem Befehl
pcs status anzeigen.
|
Ressourcen
|
Sie können Ressourcen mit definierten Typen hinzufügen und ressourcenspezifische Eigenschaften konfigurieren, indem Sie luci oder den
ccs -Befehl verwenden oder die cluster.conf -Konfigurationsdatei manuell bearbeiten.
|
Sie können Ressourcen mit definierten Typen hinzufügen und ressourcenspezifische Eigenschaften konfigurieren mit dem Befehl
pcs resource create . Allgemeine Informationen über die Konfiguration von Cluster-Ressourcen mit Pacemaker finden Sie in Kapitel 5, Konfigurieren von Cluster-Ressourcen.
|
Ressourcenverhalten, Gruppierung und Start-/Stoppreihenfolge
|
Definieren Sie Cluster-Dienste, um zu konfigurieren, wie Ressourcen miteinander interagieren.
|
Pacemaker bietet mit Ressourcengruppen eine schnelle Methode, um eine Gruppe von Ressourcen zu definieren, die zusammen platziert und in bestimmter Reihenfolge gestartet und gestoppt werden müssen. Darüber hinaus definieren Sie das Verhalten und die Interaktion von Ressourcen wie folgt:
* Sie können einige Aspekte des Ressourcenverhaltens als Ressourcenoptionen festlegen.
* Sie können Standortbeschränkungen auferlegen, um festzulegen, auf welchen Knoten eine Ressource laufen darf.
* Sie können Reihenfolgebeschränkungen verwenden, um die Reihenfolge festzulegen, in der die Ressourcen laufen.
* Sie können relative Standortbeschränkungen verwenden, um festzulegen, dass der Standort einer Ressource vom Standort einer anderen Ressource abhängt.
Weitere Informationen über dieses Thema finden Sie in Kapitel 5, Konfigurieren von Cluster-Ressourcen.
|
Ressourcenverwaltung: Verlegen, Starten und Stoppen von Ressourcen
|
Mithilfe von luci können Sie Cluster, einzelne Cluster-Knoten und Cluster-Dienste verwalten. Mithilfe des
ccs -Befehls können Sie Cluster verwalten. Mithilfe des clusvadm -Befehls können Sie Cluster-Dienste verwalten.
|
Mithilfe des Befehls
pcs cluster standby können Sie einen Knoten vorübergehend deaktivieren, sodass dieser keine Ressourcen hosten kann und die Ressourcen auf einen anderen Knoten migrieren. Mithilfe des Befehls pcs resource disable können Sie eine Ressource stoppen.
|
Vollständiges Entfernen einer Cluster-Konfiguration
|
Mithilfe von luci können Sie alle Knoten in einem Cluster zum Löschen auswählen, um diesen Cluster vollständig zu löschen. Sie können auch die
cluster.conf -Datei von jedem Knoten im Cluster entfernen.
|
Mithilfe des Befehls
pcs cluster destroy können Sie eine Cluster-Konfiguration von einem Knoten entfernen.
|
Aktive Ressourcen auf mehreren Knoten, aktive Ressourcen auf mehreren Knoten in mehreren Modi
|
Keine Entsprechung
|
Mit Pacemaker können Sie Ressourcen klonen, sodass diese auf mehreren Knoten laufen können, und Sie können die geklonten Ressourcen als Master- bzw. Slave-Ressource definieren, sodass diese in mehreren Modi laufen können. Weitere Informationen über geklonte Ressourcen und Master-/Slave-Ressourcen finden Sie in Kapitel 8, Erweiterte Ressourcentypen.
|
Fencing – einzelnes Fencing-Gerät pro Knoten
|
Erstellen Sie Fencing-Geräte global oder lokal und fügen Sie diese zu den Knoten hinzu. Sie können Werte für
post-fail delay und post-join delay für den gesamten Cluster definieren.
|
Erstellen Sie ein Fencing-Gerät für jeden Knoten mit dem Befehl
pcs stonith create . Geräte, die mehrere Knoten abgrenzen können, brauchen Sie nur einmal zu definieren statt separat für jeden Knoten. Sie können auch pcmk_host_map definieren, um mit einem einzigen Befehl Fencing-Geräte für alle Knoten zu konfigurieren. Weitere Informationen über pcmk_host_map finden Sie in Tabelle 4.1, »Allgemeine Eigenschaften von Fencing-Geräten«. Sie können den Wert für den stonith-timeout für den gesamten Cluster definieren.
|
Mehrere (Backup-)Fencing-Geräte pro Knoten
|
Definieren Sie Backup-Geräte mit luci, dem
ccs -Befehl oder durch direktes Bearbeiten der cluster.conf -Datei.
|
Konfigurieren Sie Fencing-Level.
|
A.2. Cluster-Erstellung mit Pacemaker in Red Hat Enterprise Linux Release 6.5 und Red Hat Enterprise Linux Release 6.6
my_cluster
zu erstellen, der aus den Knoten z1.example.com
und z2.example.com
besteht, und Cluster-Dienste auf diesen Knoten zu starten, führen Sie die folgenden Befehle sowohl auf z1.example.com
als auch auf z2.example.com
aus.
[root@rhel6.5]#pcs cluster setup --name my_cluster z1.example.com z2.example.com
[root@rhel6.5]#pcs cluster start
my_cluster
, der aus den Knoten z1.example.com
und z2.example.com
besteht, und startet Cluster-Dienste auf diesen Knoten.
[root@rhel6.6]# pcs cluster setup --start --name my_cluster z1.example.com z2.example.com
Anhang B. Konfigurationsbeispiel unter Verwendung der pcs-Befehle
pcs
-Befehls in der Red Hat Enterprise Linux Release 6.6 und höher. Auch die Konfiguration eines Apache-Webservers in diesem Cluster wird erläutert.
- 2 Knoten, aus denen der Cluster gebildet wird. In diesem Beispiel werden die Knoten
z1.example.com
undz2.example.com
verwendet. - Netzwerk-Switches für das private Netzwerk, die zur Kommunikation zwischen den Cluster-Knoten und anderer Cluster-Hardware wie z. B. Network Power Switches und Fibre Channel Switches notwendig sind.
- Ein Power-Fencing-Gerät für jeden Knoten im Cluster. Dieses Beispiel verwendet zwei Ports des APC Power Switches mit dem Hostnamen
zapc.example.com
.
B.1. Erste Systemeinrichtung
B.1.1. Installieren der Cluster-Software
- Vergewissern Sie sich, dass
pacemaker
,cman
undpcs
installiert sind.yum install -y pacemaker cman pcs
- Führen Sie nach der Installation den folgenden Befehl auf allen Knoten im Cluster aus, um zu verhindern, dass
corosync
ohnecman
startet.#
chkconfig corosync off
- Falls Sie sichergehen möchten, dass
cman
auch ohne Quorum bei mehr als zwei Knoten im Cluster vollständig startet, führen Sie den folgenden Befehl aus.#
sed -i.sed "s/.*CMAN_QUORUM_TIMEOUT=.*/CMAN_QUORUM_TIMEOUT=0/g" /etc/sysconfig/cman
B.1.2. Erstellen und Starten des Clusters
- Um
pcs
zur Konfiguration der Knoten und zur Kommunikation der Knoten untereinander zu verwenden, müssen Sie auf jedem Knoten ein Passwort für die Benutzer-IDhacluster
(denpcs
-Administrationsaccount) festlegen. Es empfiehlt sich, auf allen Knoten dasselbe Passwort für den Benutzerhacluster
zu wählen.#
passwd hacluster
Changing password for user hacluster. New password: Retype new password: passwd: all authentication tokens updated successfully. - Bevor der Cluster konfiguriert werden kann, muss der
pcsd
-Daemon gestartet werden. Dieser Daemon arbeitet zusammen mit dempcs
-Befehl, um die Konfiguration auf den Knoten im Cluster zu verwalten.Führen Sie auf jedem Knoten im Cluster die folgenden Befehle aus, um denpcsd
-Dienst zu starten undpcsd
beim Systemstart zu aktivieren.#
service pcsd start
#service pcsd enable
- Authentifizieren Sie den
pcs
-Benutzerhacluster
für jeden Knoten im Cluster auf dem Knoten, auf dem Siepcs
ausführen werden.Der folgende Befehl authentifiziert den Benutzerhacluster
aufz1.example.com
für beide Knoten in unserem Zwei-Knoten-Cluster,z1.example.com
undz2.example.com
.root@z1 ~]#
pcs cluster auth z1.example.com z2.example.com
Username: hacluster Password: z1.example.com: Authorized z2.example.com: Authorized - Führen Sie den folgenden Befehl auf
z1.example.com
aus, um den Zwei-Knoten-Clustermycluster
zu erstellen, der aus den Knotenz1.example.com
undz2.example.com
besteht. Dies überträgt die Cluster-Konfigurationsdateien auf beide Knoten im Cluster. Dieser Befehl enthält die Option--start
, wodurch die Cluster-Dienste auf beiden Knoten im Cluster gestartet werden.[root@z1 ~]#
pcs cluster setup --start --name my_cluster
\z1.example.com z2.example.com
z1.example.com: Succeeded z1.example.com: Starting Cluster... z2.example.com: Succeeded z2.example.com: Starting Cluster... - Optional können Sie die Cluster-Dienste so konfigurieren, dass diese auf beiden Knoten im Cluster starten, sobald der Knoten gebootet wird.
Anmerkung
Für Ihre Umgebung können Sie diesen Schritt jedoch auch überspringen und somit die Cluster-Dienste deaktiviert lassen. Dies ermöglicht Ihnen im Falle eines Knotenausfalls eine Suche und Bereinigung von Fehlern, bevor der Knoten wieder dem Cluster beitritt. Falls Sie die Cluster-Dienste deaktiviert lassen und Sie einen Knoten neu starten, müssen Sie die Cluster-Dienste manuell durch Ausführen des Befehlspcs cluster start
auf diesem Knoten starten.#
pcs cluster enable --all
pcs cluster status
anzeigen.
[root@z1 ~]# pcs cluster status
Cluster Status:
Last updated: Thu Jul 25 13:01:26 2013
Last change: Thu Jul 25 13:04:45 2013 via crmd on z2.example.com
Stack: corosync
Current DC: z2.example.com (2) - partition with quorum
Version: 1.1.10-5.el7-9abe687
2 Nodes configured
0 Resources configured
B.2. Fencing-Konfiguration
Anmerkung
zapc.example.com
zur Abgrenzung der Knoten und es verwendet den Fencing-Agent fence_apc_snmp
. Da beide Knoten von demselben Fencing-Agent abgegrenzt werden, können Sie beide Fencing-Geräte als eine einzige Ressource konfigurieren mithilfe der Optionen pcmk_host_map
und pcmk_host_list
.
pcs stonith create
als stonith
-Ressource konfigurieren. Der folgende Befehl konfiguriert eine stonith
-Ressource namens myapc
, die den Fencing-Agent fence_apc_snmp
für die Knoten z1.example.com
und z2.example.com
verwendet. Die Option pcmk_host_map
weist z1.example.com
zu Port 1 und z2.example.com
zu Port 2 zu. Der Benutzername und das Passwort für das APC-Gerät lauten beide apc
. Standardmäßig nutzt dieses Gerät ein Prüfintervall von 60 Sekunden auf jedem Knoten.
[root@z1 ~]#pcs stonith create myapc fence_apc_snmp params
\ipaddr="zapc.example.com" pcmk_host_map="z1.example.com:1;z2.example.com:2"
\pcmk_host_check="static-list" pcmk_host_list="z1.example.com,z2.example.com"
\login="apc" passwd="apc"
Anmerkung
stonith
-Gerät mit fence_apc_snmp
konfigurieren, sehen Sie gegebenenfalls die folgende Warnmeldung, die Sie jedoch problemlos ignorieren können:
Warning: missing required option(s): 'port, action' for resource type: stonith:fence_apc_snmp
[root@rh7-1 ~]# pcs stonith show myapc
Resource: myapc (class=stonith type=fence_apc_snmp)
Attributes: ipaddr=zapc.example.com pcmk_host_map=z1.example.com:1;z2.example.com:2 pcmk_host_check=static-list pcmk_host_list=z1.example.com,z2.example.com login=apc passwd=apc
Operations: monitor interval=60s (myapc-monitor-interval-60s)
B.3. Konfigurieren eines Apache-Webservers in einem Red Hat High Availability Cluster mithilfe des pcs-Befehls
pcs
zur Konfiguration von Cluster-Ressourcen. In diesem Beispiel greifen Clients über eine Floating-IP-Adresse auf den Apache-Webserver zu. Der Webserver läuft auf einem der zwei Knoten im Cluster. Falls der Knoten, auf dem der Webserver läuft, ausfällt, startet der Webserver auf dem zweiten Knoten im Cluster ohne große Serviceunterbrechung.
- Einen Red Hat High Availability Cluster bestehend aus zwei Knoten mit Power-Fencing für jeden Knoten. Dieses Verfahren verwendet das Cluster-Beispiel aus Abschnitt B.1.2, »Erstellen und Starten des Clusters«.
- Eine öffentliche, virtuelle IP-Adresse, erforderlich für den Apache-Webserver.
- Gemeinsam verwendeten Speicherplatz für die Knoten im Cluster mittels iSCSI oder Fibre Channel.
- Konfigurieren Sie ein
ext4
-Dateisystem, das auf dem logischen Datenträgermy_lv
eingehängt ist, wie in Abschnitt B.3.1, »Konfigurieren eines LVM-Datenträgers mit einem ext4-Dateisystem« beschrieben. - Konfigurieren Sie einen Webserver, wie in Abschnitt B.3.2, »Webserver-Konfiguration« beschrieben.
- Vergewissern Sie sich, dass nur der Cluster dazu in der Lage ist, die Datenträgergruppe zu aktivieren, die
my_lv
enthält, und dass die Datenträgergruppe beim Systemstart nicht außerhalb des Clusters aktiviert wird, wie in Abschnitt B.3.3, »Exklusive Archivierung einer Datenträgergruppe in einem Cluster« beschrieben.
B.3.1. Konfigurieren eines LVM-Datenträgers mit einem ext4-Dateisystem
ext4
-Dateisystem auf diesem Datenträger an. In diesem Beispiel wird die gemeinsam verwendete Partition /dev/sdb1
zur Speicherung des physischen LVM-Datenträgers verwendet, auf dem der logische LVM-Datenträger erstellt wird.
Anmerkung
/dev/sdb1
um gemeinsam verwendeten Speicher handelt, führen Sie dieses Verfahren nur auf einem Knoten aus.
- Erstellen Sie einen physischen LVM-Datenträger auf der Partition
/dev/sdb1
.#
pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created - Erstellen Sie die Datenträgergruppe
my_vg
, die den physischen Datenträger/dev/sdb1
umfasst.#
vgcreate my_vg /dev/sdb1
Volume group "my_vg" successfully created - Erstellen Sie einen logischen Datenträger auf der Datenträgergruppe
my_vg
.#
lvcreate -L450 -n my_lv my_vg
Rounding up size to full physical extent 452.00 MiB Logical volume "my_lv" createdSie können denlvs
-Befehl verwenden, um den logischen Datenträger anzuzeigen.#
lvs
LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert my_lv my_vg -wi-a---- 452.00m ... - Legen Sie ein
ext4
-Dateisystem auf dem logischen Datenträgermy_lv
an.#
mkfs.ext4 /dev/my_vg/my_lv
mke2fs 1.42.7 (21-Jan-2013) Filesystem label= OS type: Linux ...
B.3.2. Webserver-Konfiguration
- Vergewissern Sie sich, dass der HTTPD-Server auf jedem Knoten im Cluster installiert ist. Darüber hinaus muss das Tool
wget
auf dem Cluster installiert sein, um den Status des Apache-Webservers zu prüfen.Führen Sie auf jedem Knoten den folgenden Befehl aus.#
yum install -y httpd wget
- Damit der Apache-Ressourcenagent den Status des Apache-Webservers abrufen kann, vergewissern Sie sich, dass der folgende Text auf jedem Knoten im Cluster in der Datei
/etc/httpd/conf/httpd.conf
enthalten ist und dass dieser Text nicht auskommentiert wurde. Falls dieser Text noch nicht enthalten ist, fügen Sie ihn am Ende der Datei hinzu.<Location /server-status> SetHandler server-status Order deny,allow Deny from all Allow from 127.0.0.1 </Location>
- Erstellen Sie eine Webseite, die Apache anzeigen soll. Hängen Sie auf einem Knoten im Cluster das Dateisystem ein, das Sie in Abschnitt B.3.1, »Konfigurieren eines LVM-Datenträgers mit einem ext4-Dateisystem« erstellt haben, erstellen Sie die Datei
index.html
auf diesem Dateisystem und hängen Sie das Dateisystem anschließend aus.#
mount /dev/my_vg/my_lv /var/www/
#mkdir /var/www/html
#mkdir /var/www/cgi-bin
#mkdir /var/www/error
#restorecon -R /var/www
#cat <<-END >/var/www/html/index.html
<html>
<body>Hello</body>
</html>
END
#umount /var/www
B.3.3. Exklusive Archivierung einer Datenträgergruppe in einem Cluster
volume_list
in der Konfigurationsdatei /etc/lvm/lvm.conf
. Die im Eintrag volume_list
aufgeführten Datenträgergruppen dürfen automatisch auf dem lokalen Knoten außerhalb der Kontrolle des Cluster-Managers aktiviert werden. Datenträgergruppen, die mit den lokalen root- und Benutzerverzeichnissen des Knotens in Verbindung stehen, sollten in dieser Liste aufgeführt sein. Alle Datenträgergruppen, die vom Cluster-Manager verwaltet werden, müssen vom Eintrag volume_list
ausgenommen sein. Beachten Sie, dass dieses Verfahren nicht die Verwendung von clvmd
erfordert.
- Finden Sie mithilfe des folgenden Befehls heraus, welche Datenträgergruppen derzeit auf Ihrem lokalen Speicher konfiguriert sind. Sie erhalten eine Ausgabe mit den derzeit konfigurierten Datenträgergruppen. Falls Sie auf diesem Knoten in separaten Datenträgergruppen Speicherplatz zugewiesen haben für Ihre root- und Benutzerverzeichnisse, dann sehen Sie diese Datenträger in der Ausgabe, wie in diesem Beispiel.
#
vgs --noheadings -o vg_name
my_vg rhel_home rhel_root - Fügen Sie die Datenträgergruppen mit Ausnahme von
my_vg
(die Datenträgergruppe, die Sie eben für den Cluster definiert haben) als Einträge zuvolume_list
in der Konfigurationsdatei/etc/lvm/lvm.conf
hinzu. Falls Sie beispielsweise Speicherplatz in einer separaten Datenträgergruppe für Ihre root- und Benutzerverzeichnisse zugewiesen haben, würden Sie die Zeilevolume_list
in der Dateilvm.conf
auskommentieren und diese Datenträgergruppen wie folgt als Einträge zuvolume_list
hinzufügen:volume_list = [ "rhel_root", "rhel_home" ]
Anmerkung
Falls keine lokalen Datenträgergruppen auf einem Knoten existieren, die außerhalb des Cluster-Manager aktiviert werden sollen, müssen Sie dennoch den Eintragvolume_list
alsvolume_list = []
initialisieren. - Erstellen Sie das Boot-Image
initramfs
neu, um zu gewährleisten, dass das Boot-Image nicht versuchen wird, eine vom Cluster gesteuerte Datenträgergruppe zu aktivieren. Aktualisieren Sie dasinitramfs
-Gerät mit dem folgenden Befehl. Es kann unter Umständen bis zu einer Minute dauern, bis der Befehl abgeschlossen ist.#
dracut -H -f /boot/initramfs-$(uname -r).img $(uname -r)
- Starten Sie den Knoten neu.
Anmerkung
Falls Sie nach dem Booten des Knotens, auf dem Sie das Boot-Image erstellt haben, einen neuen Linux-Kernel installiert haben, dann gilt dasinitrd
-Image für den Kernel, der zum Zeitpunkt der Boot-Image-Erstellung installiert war und nicht für den neuen Kernel, der nach dem Neustart des Knotens ausgeführt wird. Sie können sich vergewissern, dass das richtigeinitrd
-Gerät verwendet wird, indem Sie den Befehluname -r
vor und nach dem Neustart ausführen, um die derzeit laufende Kernel-Release anzuzeigen. Falls die beiden Angaben nicht übereinstimmen, aktualisieren Sie dieinitrd
-Datei nach dem Neustart mit dem neuen Kernel und starten Sie den Knoten neu. - Sobald der Knoten neu gestartet wurde, vergewissern Sie sich, ob die Cluster-Dienste auf dem Knoten wieder gestartet wurden, indem Sie den Befehl
pcs cluster status
auf dem Knoten ausführen. Falls die MeldungError: cluster is not currently running on this node
angezeigt wird, führen Sie folgenden Befehl aus.#
pcs cluster start
Alternativ können Sie warten, bis Sie jeden Knoten im Cluster neu gestartet haben, und dann die Cluster-Dienste auf jedem Knoten mit dem folgenden Befehl starten.#
pcs cluster start --all
B.3.4. Erstellen der Ressourcen und Ressourcengruppen mit dem pcs-Befehl
apachegroup
konfiguriert. Nachfolgend sehen Sie die zu erstellenden Ressourcen, angegeben in der Reihenfolge, in der sie starten werden.
- Eine
LVM
-Ressource namensmy_lvm
, welche die LVM-Datenträgergruppe verwendet, die Sie in Abschnitt B.3.1, »Konfigurieren eines LVM-Datenträgers mit einem ext4-Dateisystem« erstellt haben. - Eine
Filesystem
-Ressource namensmy_fs
, die das Dateisystemgerät/dev/my_vg/my_lv
verwendet, das Sie in Abschnitt B.3.1, »Konfigurieren eines LVM-Datenträgers mit einem ext4-Dateisystem« erstellt haben. - Eine
IPaddr2
-Ressource, die eine Floating-IP-Adresse für dieapachegroup
-Ressourcengruppe ist. Die IP-Adresse darf nicht bereits einem physischen Knoten zugewiesen sein. Falls das NIC-Gerät derIPaddr2
-Ressource nicht angegeben wird, muss sich die Floating-IP-Adresse auf demselben Netzwerk befinden wie die statisch zugewiesenen IP-Adressen, die von den Cluster-Knoten verwendet werden. Andernfalls kann das der Floating-IP-Adresse zuzuweisende NIC-Gerät nicht richtig erkannt werden. - Eine
apache
-Ressource namensWebsite
, welche dieindex.html
-Datei und die Apache-Konfiguration verwendet, die Sie in Abschnitt B.3.2, »Webserver-Konfiguration« definiert haben.
apachegroup
sowie die Ressourcen, die diese Gruppe enthält. Die Ressourcen starten in der Reihenfolge, in der Sie diese zur Gruppe hinzufügen, und sie stoppen in der umgekehrten Reihenfolge, in der Sie zur Gruppe hinzugefügt wurden. Führen Sie dieses Verfahren nur auf einem Knoten im Cluster aus.
- Der folgende Befehl erstellt die LVM-Ressource
my_lvm
. Dieser Befehl legt den Parameterexclusive=true
fest, um sicherzustellen, dass nur der Cluster dazu in der Lage ist, den logischen LVM-Datenträger zu aktivieren. Da die Ressourcengruppeapachegroup
noch nicht existiert, erstellt dieser Befehl diese Ressourcengruppe.[root@z1 ~]#
pcs resource create my_lvm LVM volgrpname=my_vg
\exclusive=true --group apachegroup
Wenn Sie eine Ressource erstellen, wird die Ressource automatisch gestartet. Mithilfe des folgenden Befehls können Sie bestätigen, dass die Ressource erstellt und gestartet wurde.#
pcs resource show
Resource Group: apachegroup my_lvm (ocf::heartbeat:LVM): StartedSie können eine einzelne Ressource manuell stoppen und starten mit den Befehlenpcs resource disable
bzw.pcs resource enable
. - Die folgenden Befehle erstellen die übrigen Ressourcen für die Konfiguration und fügen diese zur Ressourcengruppe
apachegroup
hinzu.[root@z1 ~]#
pcs resource create my_fs Filesystem
\device="/dev/my_vg/my_lv" directory="/var/www" fstype="ext4" --group
\apachegroup
[root@z1 ~]#pcs resource create VirtualIP IPaddr2 ip=198.51.100.3
\cidr_netmask=24 --group apachegroup
[root@z1 ~]#pcs resource create Website apache
\configfile="/etc/httpd/conf/httpd.conf"
\statusurl="http://127.0.0.1/server-status" --group apachegroup
- Nach der Erstellung der Ressourcengruppen und der darin enthaltenen Ressourcen können Sie den Status des Clusters prüfen. Beachten Sie, dass alle vier Ressourcen auf demselben Knoten laufen.
[root@z1 ~]#
pcs status
Cluster name: my_cluster Last updated: Wed Jul 31 16:38:51 2013 Last change: Wed Jul 31 16:42:14 2013 via crm_attribute on z1.example.com Stack: corosync Current DC: z2.example.com (2) - partition with quorum Version: 1.1.10-5.el7-9abe687 2 Nodes configured 6 Resources configured Online: [ z1.example.com z2.example.com ] Full list of resources: myapc (stonith:fence_apc_snmp): Started z1.example.com Resource Group: apachegroup my_lvm (ocf::heartbeat:LVM): Started z1.example.com my_fs (ocf::heartbeat:Filesystem): Started z1.example.com VirtualIP (ocf::heartbeat:IPaddr2): Started z1.example.com Website (ocf::heartbeat:apache): Started z1.example.comBeachten Sie, dass die Ressourcen standardmäßig nicht starten, wenn Sie kein Fencing-Gerät für Ihren Cluster konfiguriert haben wie in Abschnitt B.2, »Fencing-Konfiguration« beschrieben. - Sobald der Cluster läuft, können Sie in einem Browser die IP-Adresse aufrufen, die Sie als
IPaddr2
-Ressource definiert haben, um die einfache Beispielanzeige „Hello“ zu sehen.Hello
Falls Sie feststellen, dass die von Ihnen konfigurierten Ressourcen nicht laufen, können Sie den Befehlpcs resource debug-start resource
ausführen, um die Ressourcenkonfiguration zu testen. Informationen über den Befehlpcs resource debug-start
finden Sie im Handbuch High Availability Add-On Reference.
B.3.5. Testen der Ressourcenkonfiguration
z1.example.com
. Sie können testen, ob die Ressourcengruppe im Fehlerfall auf Knoten z2.example.com
ausweicht, indem Sie mittels des folgenden Verfahrens den ersten Knoten in den Standby
-Modus versetzen, woraufhin der Knoten nicht länger dazu in der Lage sein wird, Ressourcen zu hosten.
- Der folgende Befehl versetzt Knoten
z1.example.com
in denStandby
-Modus.root@z1 ~]#
pcs cluster standby z1.example.com
- Nachdem Sie den Knoten
z1
in den Standby-Modus versetzt haben, prüfen Sie den Cluster-Status. Beachten Sie, dass die Ressourcen nun alle aufz2
laufen sollten.[root@z1 ~]#
pcs status
Cluster name: my_cluster Last updated: Wed Jul 31 17:16:17 2013 Last change: Wed Jul 31 17:18:34 2013 via crm_attribute on z1.example.com Stack: corosync Current DC: z2.example.com (2) - partition with quorum Version: 1.1.10-5.el7-9abe687 2 Nodes configured 6 Resources configured Node z1.example.com (1): standby Online: [ z2.example.com ] Full list of resources: myapc (stonith:fence_apc_snmp): Started z1.example.com Resource Group: apachegroup my_lvm (ocf::heartbeat:LVM): Started z2.example.com my_fs (ocf::heartbeat:Filesystem): Started z2.example.com VirtualIP (ocf::heartbeat:IPaddr2): Started z2.example.com Website (ocf::heartbeat:apache): Started z2.example.comDie Website unter der definierten IP-Adresse sollte nach wie vor angezeigt werden, ohne Serviceunterbrechung. - Um den
Standby
-Modus fürz1
aufzuheben, führen Sie den folgenden Befehl aus.root@z1 ~]#
pcs cluster unstandby z1.example.com
Anmerkung
Das Aufheben desStandby
-Modus allein führt nicht dazu, dass die Ressource wieder zurück auf diesen Knoten wechselt. Informationen darüber, wie Sie steuern können, auf welchen Knoten die Ressourcen laufen können, finden Sie im Kapitel über die Konfiguration von Cluster-Ressourcen im Handbuch Red Hat High Availability Add-On Reference.
Anhang C. Versionsgeschichte
Versionsgeschichte | |||||||
---|---|---|---|---|---|---|---|
Version 2.0-7.2 | Fri Apr 24 2015 | Hedda Peters | |||||
| |||||||
Version 2.0-7.1 | Fri Apr 24 2015 | Hedda Peters | |||||
| |||||||
Version 2.0-7 | Tue Dec 16 2014 | Steven Levine | |||||
| |||||||
Version 2.0-5 | Thu Oct 9 2014 | Steven Levine | |||||
| |||||||
Version 2.0-4 | Wed Oct 8 2014 | Steven Levine | |||||
| |||||||
Version 2.0-2 | Wed Aug 7 2014 | Steven Levine | |||||
| |||||||
Version 2.0-1 | Wed Jul 23 2014 | Steven Levine | |||||
| |||||||
Version 1.1-2 | Wed Nov 20 2013 | Steven Levine | |||||
| |||||||
Version 0.1-4 | Wed Oct 2 2013 | Steven Levine | |||||
|