Duell der Datenbanken: In einem Shootout messen sich MySQL und PostgreSQL. Der Schwerpunkt vom ADMIN 06/2011 überprüft, wer schneller ist und gibt einen ... (mehr)

Der Cleanup-Befehl

Beim Thema Troubleshooting soll auch Pacemaker nicht zu kurz kommen. Der wichtigste Befehl ist definitiv das »crm resource cleanup« -Kommando.

Nicht immer geht beim Anlegen einer neuen Cluster-Ressource alles glatt, gelegentlich unterlaufen dem Administrator Tippfehler oder es fehlt noch eine Konfigurationsdatei: Schon schlägt der erste Start der Ressource fehl. Wenn der gleiche Fehler auf beiden Clusterknoten vorhanden ist und auf beiden Knoten der erste Start fehlschlägt, setzt Pacemaker automatisch den Wert für »fail-count« bei dieser Ressource auf 1.000.000 und lässt sie danach in Ruhe. Laufen tut sie deshalb freilich trotzdem nicht.

Die fehlgeschlagenen Starts sind an der eindeutigen Ausgabe in »crm_mon« eindeutig zu erkennen. Mittels des »crm resource cleanup« -Befehls bringt der Clusteradmin Pacemaker dazu, den Fail-Count auf 0 zu stellen und mit dieser Resssource quasi von vorn anzufangen. Heißt die Ressource zum Beispiel »res_ip_nfs« , wäre der korrekte Cleanup-Befehl »crm resource cleanup res_ip_nfs« . In älteren Anleitungen findet sich möglicherweise noch der Befehl »crm_resource -C -r Ressource « – dies ist die in Heartbeat 2 typische Vorgehensweise, weil es die CRM-Shell damals noch nicht gab. bei Pacemaker-Setups gibt es allerdings keinen Grund, auf die CRM-Shell zu verzichten.

Eine Besonderheit gilt übrigens beim »cleanup« -Kommando, wenn es um Master-Slave-Ressourcen geht, typischerweise also um DRBD. Hier ist der »cleanup« -Befehl nicht auf die einzelnen Ressourcen auszuführen, sondern auf die Master-Slave-Regel selbst. »crm resource cleanup ms_drbd_nfs« bringt sämtliche DRBD-Ressourcen auf allen Clusterknoten auf Vordermann, die zum Master-Slave-Setup »ms_drbd_nfs« gehören.

Der Maintenance-Modus

Wenn Pacemaker eine Ressource einmal unter seine Fittiche genommen hat, kümmert er sich nahezu rührend um sie. Mit entsprechend eingerichteter Monitor-Operation merkt er, wenn sie abgestürzt ist und startet sie neu. Im Alltag der Systemadministration kann es gelegentlich aber vorkommen, dass eine Ressource zeitweise gar nicht laufen soll. Wird sie vom Admin händisch gestoppt, würde Pacemaker die Ressource trotzdem neu starten. Für solche Fälle ist in Pacemaker das Meta-Flag »is-managed« vorgesehen ( Abbildung 5 ).

Abbildung 5: Mittels des

Um eine einzelne Ressource aus den Klauen von Pacemaker zu entreißen, führt »crm configure« zunächst auf die CRM-Shell, wo »edit« einen Editor mit der aktuellen CRM-Konfiguration öffnet. Dann gilt es, die Ressource ausfindig zu machen, die Pacemaker kurzzeitig egal sein soll. An die letzte Zeile von deren Ressourcen-Konfiguration kommt ein "\", um den Zeilenumbruch zu maskieren. Die nächste Zeile sieht so aus: » meta is-managed="false"« . Nach dem Abspeichern und »commit« zeigt »crm_mon -1 -rf« an, dass die Ressource von Pacemaker ignoriert wird. Um den Vorgang zu revidieren, genügt es, die hinzugefügte Zeile wieder aus der CRM-Konfiguration zu entfernen.

Bei größeren Wartungsarbeiten, beispielsweise einem kompletten Update des Clusterstacks, ist es übrigens auch möglich, Pacemaker zeitweilig ohne Auswirkung auf die Ressourcen komplett zu deaktivieren ( Abbildung 6 ). Die Funktion heißt »maintenance-mode« . »crm configure property maintenance-mode=true« aktiviert den Wartungsmodus. Anstelle von »true« deaktiviert »false« ihn wieder. Es sei allerdings vor dem lässigen Umgang mit diesem Modus ausdrücklich gewarnt: Mancher Einfaltspinsel hat auf genau diese Art seinen Clustermanager unbemerkt über mehrere Wochen außer Betrieb gesetzt – weil er vergessen hatte, den Modus am Ende der Wartungsarbeiten zu deaktivieren.

Abbildung 6: Der Maintenance-Modus setzt das gesamte Cluster-Management außer Kraft, ohne sich auf den Zustand der Ressourcen auszuwirken.
comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023