Kapitel 8. Erweiterte Ressourcentypen

Dieses Kapitel beschreibt erweiterte Ressourcentypen, die von Pacemaker unterstützt werden.

8.1. Ressourcen-Klone

Sie können eine Ressource klonen, sodass die Ressource auf mehreren Knoten aktiv sein kann. Beispielsweise können Sie geklonte Ressourcen verwenden, um mehrere Instanzen einer IP-Ressource zu konfigurieren und diese zwecks Lastverteilung im Cluster zu verteilen. Sie können jede beliebige Ressource klonen, vorausgesetzt, der Ressourcenagent unterstützt dies. Ein Klon besteht aus einer Ressource oder einer Ressourcengruppe.

Anmerkung

Nur Ressourcen, die auf mehreren Knoten gleichzeitig aktiv sein können, sind für das Klonen geeignet. Beispielsweise sollte eine 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

Mithilfe des folgenden Befehls können Sie gleichzeitig eine Ressource und einen Klon dieser Ressource erstellen.
pcs resource create resource_id standard:provider:type|type [resource options]  \
--clone  [meta clone_options]
Der Name des Klons lautet resource_id-clone.
Sie können jedoch nicht gleichzeitig eine Ressourcengruppe und einen Klon dieser Ressourcengruppe mit einem einzigen Befehl erstellen.
Alternativ können Sie mithilfe des folgenden Befehls einen Klon einer zuvor erstellen Ressource oder Ressourcengruppe erstellen.
pcs resource clone resource_id | group_name [clone_options]...
Der Name des Klons lautet resource_id-clone oder group_name-clone.

Anmerkung

Sie brauchen Änderungen an der Ressourcenkonfiguration nur an einem Knoten vorzunehmen.

Anmerkung

Verwenden Sie bei der Konfiguration von Beschränkungen stets den Namen der Gruppe oder des Klons.
Wenn Sie einen Klon einer Ressource erstellen, trägt dieser Klon den Namen der Ressource mit nachgestelltem -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
Verwenden Sie den folgenden Befehl, um den Klon einer Ressource oder Ressourcengruppe zu entfernen. Die Ressource oder die Ressourcengruppe selbst wird dadurch nicht entfernt.
pcs resource unclone resource_id | group_name
Informationen über Ressourcenoptionen finden Sie in Abschnitt 5.1, »Ressourcenerstellung«.
Tabelle 8.1, »Optionen für Ressourenklone« beschreibt die Optionen, die Sie für eine geklonte Ressource festlegen können.

Tabelle 8.1. Optionen für Ressourenklone

FeldBeschreibung
priority, target-role, is-managed
Optionen, die von der zu klonenden Ressource geerbt werden, wie in Tabelle 5.3, »Ressourcen-Metaoptionen« beschrieben.
clone-max
Legt die Anzahl der zu startenden Instanzen der Ressource fest. Entspricht standardmäßig der Anzahl der Knoten im Cluster.
clone-node-max
Legt die Anzahl der Ressourcen fest, die auf einem einzigen Knoten gestartet werden können. Der Standarwert ist 1.
notify
Legt fest, ob beim Stoppen und Starten eines Klons alle anderen Klone vor der Aktion sowie nach erfolgter Aktion benachrichtigt werden sollen. Zulässige Werte: false, true. Der Standardwert ist false.
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
Legt fest, ob die Klone nacheinander (statt gleichzeitig) gestartet werden sollen. Zulässige Werte: false, true. Der Standardwert ist false.
interleave
Ändert das Verhalten hinsichtlich der Reihenfolge (zwischen Klonen und Master), sodass die Instanzen starten bzw. stoppen können, sobald ihre Peer-Instanz gestartet bzw. gestoppt wurde (statt auf jede Instanz des Klons zu warten). Zulässige Werte: false, true. Der Standardwert ist false.

8.1.2. Klonbeschränkungen

In den meisten Fällen hat ein Klon eine Instanz auf jedem aktiven Cluster-Knoten. Sie können jedoch 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.
Der folgende Befehl erstellt eine Standortbeschränkung, damit der Cluster den Ressourcenklon webfarm-clone vorzugsweise node1 zuweist.
# pcs constraint location webfarm-clone prefers node1
Reihenfolgebeschränkungen verhalten sich etwas anders für Klone. In dem nachfolgenden Beispiel wartet 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
Eine relative Standortbeschränkung einer regulären oder Gruppenressource mit einem Klon bedeutet, dass die Ressource auf jedem Rechner mit einer aktiven Instanz des Klons laufen kann. Der Cluster wählt eine Instanz basierend darauf, wo der Klon läuft, und auf den Standortpräferenzen der Ressource selbst.
Es ist ebenfalls möglich, relative Standortbeschränkungen zwischen Klons einzurichten. In solchen Fällen wird die Liste der erlaubten Standorte für den Klon auf Knoten beschränkt, auf denen der Klon aktiv ist bzw. aktiv sein wird. Die Zuweisung erfolgt dann ganz normal.
Der folgende Befehl erstellt eine relative Standortbeschränkung, um sicherzustellen, dass die Ressource 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

Um ein stabiles Zuweisungsmuster zu erreichen, sind Klone standardmäßig leicht standorttreu. Falls für 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.