Betriebssystem-Cluster

15.10.2006 von Martin Kuppinger
Lotus Domino bietet mit seinen eigenen Cluster-Diensten eine gute Grundlage für den Aufbau von Clustern. Daneben kann es auch die Cluster-Funktionen von Betriebssystemen wie den MSCS (Microsoft Cluster Service) nutzen. Der Artikel gibt einen Überblick über die Unterschiede zwischen den Ansätzen für das Clustering.

Der anwendungsspezifische Cluster verfügt naturgemäß über viele spezielle Funktionen auf der Ebene von Lotus Domino. Auf der anderen Seite gibt es Cluster-Dienste auch bei allen gängigen Serverbetriebssystemen, dort oftmals wiederum in sehr unter-schiedlichen technischen Realisierungen. Beispiele sind der Sun Cluster oder Microsofts MSCS (Microsoft Cluster Services). Letztere werden nachfolgend auch im Schwerpunkt betrachtet.

Anwendungscluster wie die von Domino lassen sich sowohl alternativ als auch in Verbindung mit Betriebssystem-Clustern einsetzen. Letzteres wirkt im ersten Moment redundant, bietet aber den Vorteil, dass damit weitere potenzielle Fehlersituationen adressiert werden.

Die Arbeitsweise von Betriebssystem-Clustern

Wie schon kurz angesprochen gibt es eine ganze Reihe von Konzepten für die Umsetzung von Betriebssystem-Clustern. Dienste wie die MSCS fokussieren auf den Failover, also die Übernahme von Anwendungen, wenn ein Knoten im Netzwerk ausfällt oder außer Betrieb genommen wird.

Failover: das Konzept des Failovers in einem Cluster.

Ein aktiver Knoten, der eine Anwendung ausführt, nutzt bestimmte Ressourcen wie gemeinsam genutzte Festplatten. Wenn ein Knoten ausfällt, wird das vom Cluster erkannt. Die Ausführung wird in diesem Fall an einen anderen Knoten übergeben. Dieser beantwortet weitere Anforderungen von Clients. Da der Zugriff auf einen virtuellen Server erfolgt, nutzen die Clients die gleichen Netzwerknamen und IP-Adressen, obwohl in diesem Fall mit einem anderen System gearbeitet wird.

Wie weit es dabei möglich ist, die Arbeit genau an dem Punkt fortzusetzen, an dem sie unterbrochen wurde, hängt von der Implementierung ab. Bei den MSCS können über so genannte Ressourcen-DLLs Anwendungen enger mit dem Cluster zusammenarbeiten. Darüber lassen sich zusätzliche Informationen wie Checkpoints im Failover an einen anderen Knoten übergeben.

Grundsätzlich ist der Failover transparent für die Benutzer, wobei je nach Implementierung die Benutzer eine Session neu aufsetzen müssen.

Beim Betrieb unterscheidet man zwischen Active-Passive- und Active-Active-Konfigurationen. Bei einer Active-Passive-Konfiguration wird die Arbeit im Fehlerfall von einem anderen Knoten übernommen, der bis zu diesem Zeitpunkt passiv ist. In einer Active-Active-Konfiguration laufen dagegen auf jedem Knoten aktive Prozesse beispielsweise von Domino. Im konkreten Fall von Domino erfordert das den Einsatz eines partitionierten Servers, weil ein Domino-Server aktiv arbeitet, während einer Stand-By läuft und auf die Übergabe der Ressourcen im Falle eines Failovers wartet. Entsprechend muss es auch zwei getrennte Ressourcen für die Anwendungsdaten geben.

Spezielle Aspekte für die Nutzung von Domino

Die Domino-Cluster haben einige spezielle Fähigkeiten, die sich in dieser Form nicht unbedingt bei Betriebssystem-Clustern finden:

Durch die enge Integration mit Domino weiß der Cluster, wie stark die einzelnen Knoten belastet sind, und kann bei einem Failover einen Knoten mit geringer Auslastung wählen. So differenziert – insbesondere auf Anwendungsebene – können Betriebssystem-Cluster nicht arbeiten.

Diese Vorteile sprechen grundsätzlich dafür, Lotus Domino eher im spezifischen Domino-Cluster als in Betriebssystem-Clustern zu betreiben.

Vorteile kombinierter Cluster

Die gemeinsame Verwendung beider Varianten von Clustern kann aber auch sinnvoll sein. Einer der Vorteile liegt in der Ausführung von Agenten. Wenn ein Agent für den Betrieb auf einem bestimmten Server ausgelegt ist, wird er beim Failover in einem Domino-Cluster auf einem anderen Server nicht ausgeführt.

Kombinierte Cluster: Die Nutzung von Active-Active-Konfigurationen mit Domino in einem Betriebssystem-Cluster.

In einem Betriebssystem-Cluster läuft Domino dagegen auf einem quasi identischen Server mit dem gleichen Namen, sodass der Agent dort wieder ausgeführt werden kann. Das lässt sich allerdings auch durch entsprechende Gestaltung von Agenten lösen.

Ein vergleichbares Problem entsteht auch mit Anwendungen, die fest codierte Servernamen verwenden. Auch in diesem Fall lässt sich das Problem aber genauso durch eine Anpassung der Anwendung oder die Vermeidung solcher Situationen aus der Welt schaffen.

Benutzer können Dokumente, die sie bearbeiten, außerdem in Betriebssystem-Clustern speichern, sobald der Failover-Server verfügbar ist. Bei einem Domino-Cluster wird auf einem anderen Server gearbeitet, sodass hier Probleme entstehen. Dieser Punkt ist das beste Argument für Betriebssystem-Cluster.

Außerdem ist zu beachten, dass der AdminP-Prozess nur in einem Betriebssytem-Cluster vom Failover erfasst wird, nicht aber in einem Domino-Cluster.

Insofern kann der gemeinsame Betrieb beider Cluster-Technologien durchaus Sinn machen – oder sogar die Konzentration auf einen Betriebssystem-Cluster anstelle des Domino-Clusters. Andererseits darf man nicht unterschätzen, dass die Domino-Cluster in der Handhabung doch insgesamt um einiges einfacher sind und eine weniger komplexe Infrastruktur erfordern. Falls Ihnen also die Funktionalität eines Domino-Clusters ausreicht, können Sie sich den zusätzlichen Aufwand auch sparen.