Heartbeat v2 Einträge in CIB entfernen
Beispielsweise aufgrund von Konfigurationsfehlern des Clustermanagers Heartbeat v2 kann es dazu kommen, dass in der CIB (Cluster Information Base)[1] Einträge vorhanden sind, die das Starten einer Ressource verhindern. Dieser Artikel zeigt Möglichkeiten wie man der Ursache auf die Spur kommen und das Problem beheben kann.
Hinweis: die beschriebenen Schritte sollen beispielhaft Möglichkeiten zur Fehleranalyse aufzeigen. Führen Sie Änderungen der CIB nicht voreilig durch. Ein schrittweises und überlegtes Vorgehen erleichtert die Fehleranalyse. Darüber hinaus sinkt die Gefahr zusätzliche Fehler einzubauen.
Inhaltsverzeichnis |
Versionen
- Betriebssystem: SLES10 SP2
- Heartbeat Version: 2.1.3-0.9 (von SLES10 SP2)
Beispiel eines Problems
Eine Ressource lässt sich nicht starten. Eine Statusabfrage mittels crm_verify -L -V liefert auszugsweise:
test-node2:~ # crm_verify -L -V crm_verify[5178]: 2008/12/16_10:20:12 WARN: native_color: Resource res_lvm_xenvg02 cannot run anywhere [...] Warnings found during check: config may not be valid test-node2:~ #
Optional kann auch crm_verify -L -VVV für die Abfrage genutzt werden - dadurch werden noch mehr Informationen angezeigt.
Analyse und Problemlösung
Die vollständige CIB kann mittels cibadmin -Q abgefragt werden. Mittels -o Option kann die Abfrage auf bestimmte Objekttypen (nodes, resources, constraints, crm_config, status) limitiert werden. Details dazu liefert die Ausführung von cibadmin ohne Parameter.
Am besten durchsucht man die CIB nach dem Ressource-Namen und nach dem Begriff target. Im Beispiel hier liefert dies folgendes Ergebnis:
test-node2:~ # cibadmin -Q | grep res_lvm_xenvg02 | grep target
<nvpair id="res_lvm_xenvg02-meta-options-target_role" name="target_role" value="stopped"/>
test-node2:~ #
Im Beispiel ist die betroffene Ressource Teil einer Ressource-Group und soll keine eigene target_role haben. Diese wird daher entfernt:
test-node2:~ # cibadmin -D -o resources -X '<nvpair id="res_lvm_xenvg02-meta-options-target_role" name="target_role" value="stopped"/>' test-node2:~ #
Danach wird die Ressource automatisch von Heartbeat v2 gestartet.