Sun Cluster Entwicklerhandbuch Datendienste für Solaris OS

Implementieren einer Scalabe-Ressource

Eine Scalable-Ressource kann auf mehr als einem Knoten gleichzeitig online sein. Scalable-Ressourcen sind Datendienste wie Sun Cluster HA für Sun Java System Web Server (früher Sun Cluster HA für Sun ONE Web Server) und Sun Cluster HA für Apache.

RGM stellt mehrere Eigenschaften bereit, mit denen die Implementierung einer Scalable-Ressource unterstützt wird.

Die boolesche Ressourcentypeigenschaft Failover muss auf FALSE eingestellt werden, damit die Ressource in einer Ressourcengruppe konfiguriert werden kann, die auf mehr als einem Knoten gleichzeitig online sein kann.

Die Ressourceneigenschaft Scalable legt fest, ob die Ressource die Cluster-Funktion gemeinsam genutzte Adresse verwendet. Dieser Wert muss auf TRUE eingestellt werden, da ein Scalable-Dienst eine gemeinsam genutzte Adressressource verwendet, damit mehrere Instanzen des Scalable-Dienstes dem Client als ein einziger Dienst dargestellt werden.

Mithilfe der RG_mode-Eigenschaft kann der Cluster-Verwalter Ressourcengruppen als Failover oder Scalable identifizieren. Wenn RG_mode auf SCALABLE eingestellt ist, lässt RGM für Maximum_primaries einen Wert größer als 1 zu, was bedeutet, dass die Gruppe von mehreren Knoten gleichzeitig unterstützt werden kann. RGM lässt zu, dass eine Ressource, deren Failover-Eigenschaft FALSE ist, in einer Ressourcengruppe instanziiert wird, deren RG_mode auf SCALABLE eingestellt ist.

Der Cluster-Verwalter erstellt eine Scalable-Ressourcengruppe für Scalable-Dienstressourcen und eine eigene Failover-Ressourcengruppe für die Ressourcen mit gemeinsam genutzter Adresse, von der die Scalable-Ressource abhängt.

Der Cluster-Verwalter verwendet die Ressourcengruppeneigenschaft RG_dependencies zum Angeben der Reihenfolge, in der Ressourcengruppen auf einem Knoten online bzw. offline gebracht werden. Diese Reihenfolge ist für einen Scalable-Dienst wichtig, da sich die Scalable-Ressourcen und die gemeinsam genutzten Adressressourcen, von denen sie abhängen, in unterschiedlichen Ressourcengruppen befinden. Für einen Scalable-Datendienst müssen die Netzwerkadressressourcen (gemeinsam genutzte Adressen) als aktiv konfiguriert werden, bevor der Dienst gestartet wird. Daher muss der Verwalter die Eigenschaft RG_dependencies der Ressourcengruppe mit dem Scalable-Dienst so einstellen, dass sie die Ressourcengruppe mit den gemeinsam genutzten Adressressourcen enthält.

Wenn die Scalable-Eigenschaft in der RTR-Datei für eine Ressource deklariert wird, erstellt RGM automatisch den folgenden Satz Scalable-Eigenschaften für die Ressource:

Network_resources_used

Identifiziert die gemeinsam genutzten Adressressourcen, die von dieser Ressource verwendet werden. Diese Eigenschaft enthält standardmäßig eine leere Zeichenkette, so dass der Cluster-Verwalter beim Erstellen der Ressource die aktuelle Liste gemeinsam genutzter Adressen angeben muss, die der Scalable-Dienst verwendet. Der scsetup-Befehl und SunPlex-Manager stellen Funktionen bereit, mit denen die erforderlichen Ressourcen und Gruppen für Scalable-Dienste automatisch konfiguriert werden können.

Load_balancing_policy

Gibt das Lastausgleichsverfahren für die Ressource an. Sie können das Verfahren in der RTR-Datei explizit einrichten oder den Standardwert LB_WEIGHTED zulassen. In beiden Fällen kann der Cluster-Verwalter beim Erstellen der Ressource diesen Wert ändern, sofern nicht in der RTR-Datei Tunable für Load_balancing_policy auf NONE oder FALSE gesetzt wird. Zulässige Werte sind:

LB_WEIGHTED

Die Last wird auf mehrere Knoten verteilt, entsprechend den in der Eigenschaft Load_balancing_weights eingestellten Gewichtungen.

LB_STICKY

Ein bestimmter Client (identifiziert durch die Client-IP-Adresse) des Scalable-Dienstes wird immer an denselben Cluster-Knoten gesendet.

LB_STICKY_WILD

Ein bestimmter Client (identifiziert durch die Client-IP-Adresse), der eine Verbindung mit einer IP-Adresse eines Sticky-Dienstes mit Platzhalter herstellt, wird immer zu demselben Cluster-Knoten gesendet, unabhängig von der Port-Nummer, an die er gelangt.

Für einen Scalable-Dienst mit Load_balancing_policy, LB_STICKY oder LB_STICKY_WILD kann das Ändern von Load_balancing_weights, während der Dienst online ist, zu einem Zurücksetzen von vorhandenen Client-Affinitäten führen. In diesem Fall kann es vorkommen, dass ein anderer Knoten eine anschließende Client-Anforderung bedient, auch wenn der Client vorher von einem anderen Cluster-Knoten bedient wurde.

Auch wenn eine neue Instanz des Dienstes auf einem Cluster gestartet wird, können vorhandene Client-Affinitäten zurückgesetzt werden.

Load_balancing_weights

Gibt die Last an, die an jeden Knoten gesendet wird. Das Format ist Gewichtung@Knoten, Gewichtung@Knoten, wobei Gewichtung eine Ganzzahl ist, welche den relativen Anteil der Last für den angegebenen Knoten darstellt. Der an einen Knoten verteilte Lastanteil ist die Gewichtung dieses Knotens, geteilt durch die Summe aller Gewichtungen aktiver Instanzen. Zum Beispiel gibt 1@1,3@2 an, dass Knoten 1 1/4 der Last und Knoten 2 3/4 erhält.

Port_list

Identifiziert die Ports, die der Server abhört. Diese Eigenschaft enthält standardmäßig eine leere Zeichenkette. In der RTR-Datei können Sie eine Port-Liste bereitstellen. Andernfalls muss der Cluster-Verwalter die aktuelle Port-Liste bereitstellen, wenn er die Ressource erstellt.

Sie können einen Datendienst erstellen, den der Administrator dann als Scalable oder als Failover konfigurieren kann. Dafür werden sowohl die Ressourcentypeigenschaft Failover als auch die Ressourceneigenschaft Scalable in der RTR-Datei des Datendienstes als FALSE deklariert. Beim Erstellen muss die Scalable-Eigenschaft als “Tunable” angegeben werden.

Der Failover-Eigenschaftswert (FALSE) lässt zu, dass die Ressource in eine Scalable-Ressourcengruppe konfiguriert wird. Der Verwalter kann gemeinsam genutzte Adressen aktivieren, indem er den Wert beim Erstellen der Ressource von Scalable zu TRUE ändert und so einen Scalable-Dienst erstellt.

Andererseits kann der Verwalter auch dann die Ressource in eine Failover-Ressourcengruppe konfigurieren, um einen Failover-Dienst zu implementieren, wenn Failover auf FALSE eingestellt ist. Der Verwalter ändert den Wert von Scalable, der FALSE lautet, nicht. Zum Unterstützen dieser Möglichkeit sollte die Validate-Methode in der Scalable-Eigenschaft aktiviert werden. Wenn Scalable auf FALSE eingestellt ist, muss sichergestellt werden, dass die Ressource in eine Failover-Ressourcengruppe konfiguriert wurde.

Das Sun Cluster Concepts Guide for Solaris OS enthält weitere Informationen über Scalable-Ressourcen.

Validierungsprüfungen für Scalable-Dienste

Wenn eine Ressource erstellt oder aktualisiert wird und die Scalable-Eigenschaft auf TRUE eingestellt ist, validiert RGM verschiedene Ressourceneigenschaften. Wenn die Eigenschaften nicht richtig konfiguriert sind, weist RGM die versuchte Aktualisierung bzw. die Erstellung zurück. RGM führt folgende Prüfungen aus: