Virtimo Cluster-Manager
|
Die Nutzung des Cluster-Managers ist lizenzpflichtig. Für jede INUBIT-Instanz innerhalb eines Clusters muss eine separate Lizenz erworben werden. |
Verwendung
Mit dem Virtimo Cluster-Manager besteht die Möglichkeit, mehrere INUBIT-Instanzen zu einem Cluster zusammenzuführen, zur Laufzeit neue Instanzen hinzuzufügen bzw. herauszunehmen.
Damit kann eine hohe Verfügbarkeit eines INUBIT-Systems erreicht oder gezielt auf hohe Lastaufkommen reagiert werden.
Funktionen des Virtimo Cluster Managers
-
Die einzelnen Knoten, auf denen der Cluster Manager läuft, bilden eine Gruppe
-
Alle Knoten der Gruppe sind einander bekannt
-
Sicherheitseinstellungen erlauben nur bestimmten Knoten den Beitritt zum Cluster
-
Die Knotengruppe stellt sicher, dass immer genau einen Knoten als Leader fungiert
-
Der Leader-Knoten wird mittels einer Datei als solcher gekennzeichnet
Einschränkungen des Virtimo Cluster Managers
-
Innerhalb des Clusters werden keine INUBIT-Daten verteilt oder gemeinsam genutzt
-
Änderungen an einem Cluster-Knoten werden nicht auf die anderen Cluster-Knoten übertragen
Workflow-Design in einem Cluster
Das Workflow-Design in einem Cluster unterscheidet sich von dem auf einer einzelnen INUBIT-Instanz (ohne Cluster-Betrieb).
Beim Workflow-Design innerhalb eines Clusters müssen zwei Aspekte berücksichtigt werden, die bei einer Einzelinstanz vernachlässigt werden können:
-
Prozesse, die uneingeschränkt parallel ausgeführt werden können
-
Prozesse, die innerhalb des Clusters genau einmal ausgeführt werden müssen
Die parallele Ausführung von Prozessen gewährleistet eine hohe Skalierbarkeit. Im Idealfall arbeiten Prozesse unabhängig von Daten, die für alle Knoten zugänglich sein müssen. Unvermeidliche Datenabhängigkeiten werden in einer zentralen Geschäftsdatenbank verwaltet, auf die alle Cluster-Knoten zugreifen können.
Innerhalb von INUBIT-Workflows kann der Leader-Status als Steuerelement dienen, um sicherzustellen, dass bestimmte Prozesse auf genau einem Knoten innerhalb des gesamten Clusters ausgeführt werden.
Voraussetzungen
Zur vollständigen Umsetzung eines geclusterten Systems sind folgende Bestandteile notwendig:
-
INUBIT-Instanzen: mindestens 2 INUBIT-Installationen inklusive Lizenz für die Nutzung des Cluster-Managers
-
Netzwerkinfrastruktur: INUBIT-Instanzen müssen via Multicast untereinander kommunizieren können
-
Load-Balancer: zur Verteilung der eingehenden Anfragen an die INUBIT-Instanzen des Clusters
Der Cluster-Manager steuert, welche Knoten dem Cluster angehören und wer der aktuelle Leader ist. Der Load-Balancer kümmert sich um die Verteilung der eingehenden Anfragen an die einzelnen INUBIT-Instanzen des Clusters.
Diese Trennung der Verantwortlichkeiten muss bei der Konfiguration mit berücksichtigt werden.
Multicast
Die Clusterbildung basiert auf Multicast, einem speziellen Netzwerk-Adressbereich und -Port. Alle Knoten, für die dieselbe Multicast-Adresse und -Port konfiguriert sind, fügen sich zu einem Cluster zusammen.
Architektur
Ein Cluster besteht immer aus einem Leader-Knoten und beliebig vielen Backup-Knoten. Sollen INUBIT-Instanzen in einem Cluster zusammenarbeiten, muss dies bei Implementierung der Technical Workflows berücksichtigt werden.
Leader-Knoten
Der Leader-Knoten übernimmt dabei alle Aufgaben, die innerhalb des Systems fachlich auf nur einem einzelnen Knoten ausgeführt werden sollen, z. B. geschedulte Workflows.
Backup-Knoten
Alle Knoten (Leader und Backup) übernehmen die Aufgaben, die fachlich parallel ausgeführt werden können.
Die Prüfung, ob die aktuelle INUBIT-Instanz ein Leader- oder Backup-Knoten ist, erfolgt mithilfe eines zusätzlichen Workflows.
Applikationsstatus
Der Cluster-Manager läuft zusätzlich auf jeder INUBIT-Instanz und prüft selbstständig in regelmäßigen Abständen, ob die Instanz noch verfügbar ist. Sollte der INUBIT nicht mehr erreichbar sein, wird die Instanz im Cluster abgemeldet. Die Abmeldung im Load-Balancer ist keine Aufgabe des Cluster-Managers und muss separat gelöst werden.
Folgende INUBIT REST-API Endpunkte bieten sich zur Prüfung des Status an:
Konfiguration
Aktivierung des Cluster-Managers
Über die Datei <SUITE-INSTALL-DIR>/inubit/server/ibis_root/conf/ibis.xml kann der Cluster-Manager aktiviert werden:
<Properties>
...
<!-- Cluster Manager configuration -->
<Property name="ActivateClusterManager" type="Boolean">false</Property>
</Properties>
-
Process Engine stoppen
-
Property
ActivateClusterManagerauftruesetzen -
Process Engine starten
Konfiguration des Cluster-Managers
Die eigentlichen Konfigurationsdetails für den Cluster-Manager werden über die Datei <SUITE-INSTALL-DIR>/inubit/server/ibis_root/conf/clustermanager/virtimo_cluster_config.xml gesteuert.
Hier werden alle für die Konfiguration der Clusterknoten erforderlichen Einstellungen vorgenommen.
<?xml version="1.0" encoding="UTF-8"?>
<!--
Cluster Manager configuration file
Virtimo AG
-->
<properties>
<!--
Defines the name of the JGroups cluster that the node connects to.
All nodes using the same JGroups cluster name will be part of the
same cluster. By using different names, it is possible to operate
multiple clusters simultaneously.
-->
<clusterName>service-cluster</clusterName>
<!--
Prioritize to select Master node in same cluster. The higher the number the higher the priority.
The node with the highest priority will be elected as leader node.
type: Integer
range: 0 to 2147483647
-->
<priority>10</priority>
<!--
Heartbeat URL to check the monitored application connection status, whether it is up and running.
type: URL
range: NA
-->
<applicationHeartbeatUrl>http://localhost:8000/ibis/rest/ready</applicationHeartbeatUrl>
<!--
Monitored application port currently running
type: Integer
range: 0 to 65535
-->
<applicationPort>8000</applicationPort>
<!--
Proxy port for monitored application directly communicate to master in cluster manager.
type: Integer
range: 0 to 65535
-->
<masterProxyPort>9000</masterProxyPort>
<!--
File path to place master / backup status file
type: File path
range: any exisiting folder
-->
<statusFilePath>/tmp</statusFilePath>
</properties>
Die Standardkonfiguration von JGroups befindet sich in <SUITE-INSTALL-DIR>/inubit/server/ibis_root/conf/clustermanager/jgroups.xml.
Alle erforderlichen Einstellungen für die Kommunikation zwischen Knoten werden hier vorgenommen.
Die Datei enthält alle möglichen Konfigurationsoptionen, die über diesen Link aufgerufen werden können JGroups.
Festlegung des Leader-Knotens
Über die Einstellung priority wird festgelegt, welcher Knoten als Leader im Cluster aktiv sein soll.
Legen Sie für genau einer Instanz in der Konfiguration den höchsten Integerwert fest.
Sobald diese Instanz dem Cluster beitritt, wird sie als Leader gesetzt.
Sollte der Leader ausfallen, wird anhand der Priorität der übrigen Instanzen ein neuer Leader gewählt. Dies ist die Instanz mit der dann aktuell höchsten Priorität.
|
Konfigurieren Sie für jede INUBIT-Instanz im Cluster eine andere Priorität. Damit lässt sich die Wahl des Leader-Knotens am sichersten steuern. |
Prüfung auf den Leader-Knoten
Auf der Instanz, die als Leader aktiv ist, wird eine Datei im Dateisystem abgelegt. Der Pfad zur Ablage kann über die Konfiguration angepasst werden. Ein zusätzlicher Workflow prüft das Vorhandensein dieser Datei. Darüber kann zur Laufzeit ermittelt werden, ob die jeweilige INUBIT-Instanz der Leader-Knoten ist oder nicht.
Den Workflow finden Sie unter: <SUITE-INSTALL-DIR>/inubit/server/ibis_root/conf/clustermanager/inubit-cluster-manager-workflow.zip.
Benutzerdefiniertes Logging aktivieren
Um die Logausgaben des Cluster-Managers in eine separate Datei umzuleiten, gehen Sie wie folgt vor:
-
Melden Sie sich mit einer Workbench an
-
Gehen Sie zur Registerkarte Administrator und wählen Sie Allgemeine Einstellungen
-
Navigieren Sie in der Baumstruktur zu Logging > Trace
-
Wählen Sie im rechten Seitenbereich Individuelles Server-Trace aus und klicken Sie auf die Schaltfläche "…".
-
Der Logger-Dialog wird geöffnet
-
Klicken Sie mit der rechten Maustaste, um das Kontextmenü zu öffnen und wählen Sie Hinzufügen
-
Geben Sie den Namen
de.virtimo.clustermanagerein, wählen Sie "Rotierende Datei-Ausgabe" und klicken Sie auf OK -
Wenn Sie den Namen der Protokolldatei aktualisieren möchten, wählen Sie den neu hinzugefügten Eintrag in der Tabelle aus und klicken Sie auf die Schaltfläche "…".
-
Wählen Sie "Ausgabedatei" und passen Sie den Wert auf etwa
$ibis.root.directory$/log/clustermanager.logan -
Schließen Sie den Dialog "Rotierende Dateiausgabe" mit OK
-
Schließen Sie den Dialog "Logger" mit OK
-
Speichern Sie die allgemeinen Einstellungen, indem Sie auf das Speichern-Symbol in der globalen Symbolleiste klicken
Meldungen zum Start des Cluster-Managers, etwa zu Aktivierung, Lizenz und Konfigurationsdateien, schreibt die Process Engine über den Logger com.inubit.ibis.server.clustermanager.
Um auch diese Meldungen in dieselbe Datei zu schreiben, wiederholen Sie die obigen Schritte mit diesem Logger-Namen.