Firmenbrief

17.11.2009

Cluster in CoreBiz 3.2




Hochverfügbarkeitslösungen in CoreBiz werden mit Hilfe der Software Heartbeat vom Linux-HA Projekt umgesetzt. Heartbeat, zu deutsch Herzschlag, kümmert sich um die Verwaltung und Kommunikation der Clusterknoten sowie um das Starten und Stoppen von Diensten auf den einzelnen Knoten.

Bis zur Version 3.1 von CoreBiz konnte wegen der eingesetzten Version und Konfiguration von Heartbeat nur geprüft werden, ob ein Knoten verfügbar ist.  Viele Szenarien machen es aber nötig, dass die Software auf der Ebene von Diensten kontrolliert und reagiert. So kann es durchaus vorkommen, dass ein Mailserver zwar netzwerkmäßig voll funktionsfähig ist, der entsprechende Dienst aber nicht mehr reagiert. Diese Situation erkannte CoreBiz in früheren Versionen nicht.

CoreBiz 3.2 bietet nun auch hierfür eine Lösung. Für eine bessere Steuerung auf der Ebene von Diensten gibt es in Heartbeat einen so genannten Cluster Ressource Manager (CRM). Dieser war in älteren Versionen direkt in Heartbeat integriert, ab Version 3 lagerten die Entwickler diese Komponente jedoch in das Projekt Pacemaker, übersetzt: Schrittmacher, aus. Grund dafür ist, dass der CRM auch mit anderer Cluster-Software wie beispielsweise OpenAIS zusammenarbeiten kann.

Der CRM hat eine XML-basierende Datenbank, die Cluster Information Base (CIB). Dort werden sämtliche Informationen zu Knoten, Diensten, deren Zustände und Abhängigkeiten beschrieben. Die CIB ist extrem flexibel. So kann beispielsweise exakt beschrieben werden, wann welcher Dienst starten soll, von welchen anderen Diensten er gegebenenfalls abhängt und welcher Knoten sein bevorzugtes System ist. Alle dort beschriebenen Dienste werden ständig überprüft und bei Fehlern nach den vorgegebenen Regeln auf anderen Knoten gestartet.

Neben den einfachen Diensten bietet Pacemaker auch so genannte Multi-State-Ressourcen. Diese können Dienste mit mehreren Zustände verwalten. In CoreBiz wird dieser Typ von Ressource zum Beispiel für das CoreBiz Directory (LDAP) eingesetzt. Dieser Dienst läuft im Gegensatz zu "normalen" Diensten auf zwei Knoten gleichzeitig. In diesem Fall ist LDAP auf dem einen Knoten als Master definiert, was bedeutet, dass lesend und schreibend Zugriffe möglich sind. Der andere Knoten ist als Slave festgelegt, damit sind hier nur lesende Zugriffe möglich. Außerdem "hängt" sich ein Slave an den Master, um Daten zu synchronisieren. Der Ressource-Manager muss daher nicht nur wissen, ob der Dienst läuft, sondern auch in welchem Modus er läuft. Nur so ist gewährleistet, dass auf einen Ausfall richtig reagiert wird.

Die Konfiguration der CIB ist relativ komplex und ist ohne detailliertes Wissen über Heartbeat/Pacemaker kaum möglich. Um diese Konfiguration zu vereinfachen, generiert CoreBiz die CIB komplett aus den Daten des CoreBiz Directory. Viele Bereiche, wie zum Beispiel Dienst X hängt von der IP-Adresse Y ab, können direkt aus vorhandenen Daten des CoreBiz Directory abgeleitet werden. Zudem arbeiten die Entwickler aktuell an einem Snap-In, das die Steuerung und Konfiguration des Clusters über die CoreBiz Management Console (CMC) ermöglichen wird.