Sun Cluster Entwicklerhandbuch Datendienste für Solaris OS

Implementieren einer Scalabe-Ressource

Eine Scalable-Ressource kann auf mehr als einem Knoten gleichzeitig online sein. Skalierbare 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 bietet eine Vielzahl von Eigenschaften, die die Implementierung einer skalierbaren Ressource unterstützen.

Stellen Sie die boolesche Failover-Ressourcentypeigenschaft auf TRUE, damit die Ressource nicht in einer Ressourcengruppe konfiguriert wird, die auf mehr als einem Knoten gleichzeitig online sein kann.

Die Scalable-Ressourceneigenschaft legt fest, ob die Ressource die vom Cluster gemeinsam genutzte Adressoption verwendet. Legen Sie diese Eigenschaft auf TRUE fest, weil ein Scalable-Dienst eine Ressource mit einer gemeinsam genutzten Adresse verwendet, damit die Mehrfachinstanzen des Scalable-Dienstes dem Client als einzelner Dienst erscheinen.

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 einen Maximum_primaries-Wert zu, der höher ist als 1. Dies bedeutet, dass die Gruppe von mehreren Knoten gleichzeitig verarbeitet werden kann. RGM erlaubt, dass eine Ressource, deren Failover-Eigenschaft FALSE lautet, in einer Ressourcengruppe instantiiert werden kann, deren RG_mode-Wert SCALABLE lautet.

Der Cluster-Administrator erstellt eine Scalable-Ressourcengruppe, die die Scalable-Dienstressourcen sowie eine separate Failover-Ressourcengruppe enthalten soll. Diese wiederum soll die gemeinsam genutzten Adressressourcen enthalten, von denen die Scalable-Ressource abhängig ist.

Der Cluster-Verwalter verwendet die Ressourcengruppeneigenschaft RG_dependencies zum Festlegen 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. Deshalb muss der Cluster-Administrator die RG_dependencies-Eigenschaft (der Ressourcengruppe, die den Scalable-Dienst enthält) so festlegen, dass sie die Ressourcengruppe mit den gemeinsam genutzten Adressressourcen enthält.

Wenn Sie die Scalable-Eigenschaft in der RTR-Datei für eine Ressource deklarieren, erstelllt RGM automatisch den folgenden Satz skalierbarer Eigenschaften für die Ressource.

Network_resources_used

Identifiziert die gemeinsam genutzten Adressressourcen, die von dieser Ressource verwendet werden. Diese Eigenschaft wird standardmäßig auf die leere Zeichenkette eingestellt, sodass der Cluster-Administrator die tatsächliche Liste mit gemeinsam genutzten Adressen liefern muss, die vom Scalable-Dienst beim Erstellen der Ressource verwendet wird. 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

Legt das Lastausgleichsverfahren für die Ressource fest. Dieses Verfahren können Sie ausdrücklich in der RTR-Datei festlegen (oder den Standardwert LB_WEIGHTED zulassen). In beiden Fällen kann der Cluster-Administrator den Wert beim Erstellen der Ressource ändern (es sei denn, Sie stellen Tunable für Load_balancing_policy in der RTR-Datei auf NONE oder FALSE ein). Die folgenden Werte sind zulässig:

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 Platzhalterdienstes herstellt, wird immer an denselben Cluster-Knoten verwiesen, unabhängig von der Portnummer, an der er ankommt.

Für einen Scalable-Dienst mit einem Load_balancing_policy-Wert von LB_STICKY oder LB_STICKY_WILD kann das Ändern von Load_balancing_weights , während der Dienst online ist, dazu führen, dass bestehende Client-Affinitäten zurückgesetzt werden. In diesem Fall kann ein anderer Knoten eine nachfolgende Client-Anforderung bedienen, selbst wenn der Client zuvor von einem anderen Knoten im Cluster bedient wurde.

Auf ähnliche Weise kann das Starten einer neuen Instanz des Dienstes auf einem Cluster die vorhandenen Client-Affinitäten zurücksetzen.

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, die den relativen Anteil der Last angibt, die auf den angegebenen Knoten verteilt wird. Der Lastanteil, der auf einen Knoten verteilt wird, ist die Gewichtung dieses Knotens, geteilt durch die Summe aller Gewichtungen. Zum Beispiel gibt 1@1,3@2 an, dass Knoten 1 ein Viertel der Last erhält und Knoten 2 drei Viertel der Last.

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, der vom Cluster-Administrator als Failover- oder Scalable-Dienst konfiguriert werden kann. Deklarieren Sie dazu sowohl die Failover-Ressourcentypeigenschaft als auch die Scalable-Ressourceneigenschaft in der RTR-Datei des Datendienstes als FALSE. Beim Erstellen muss die Scalable-Eigenschaft als “Tunable” angegeben werden.

Der Failover-Eigenschaftswert FALSE erlaubt es, dass die Ressource als skalierbare Ressourcengruppe konfiguriert wird. Der Cluster-Administrator kann gemeinsam genutzte Adressen aktivieren, indem er beim Erstellen der Ressource den Wert von Scalable auf TRUE setzt, um einen Scalable-Dienst zu erstellen.

Andererseits kann der Cluster-Administrator die Ressource selbst dann zum Implementieren eines Failover-Dienstes in eine Failover-Ressourcengruppe konfigurieren, wenn Failover auf FALSE eingestellt ist. Der Cluster-Administrator ändert den Wert Scalable, der FALSE lautet, nicht. Um dieses Szenario zu unterstützen, sollten Sie in die Validate-Methode eine Prüfung der Scalable-Eigenschaft integrieren. Wenn Scalable auf FALSE eingestellt ist, prüfen Sie, ob die Ressource in einer Failover-Ressourcengruppe konfiguriert ist.

Das Sun Cluster Konzepthandbuch für 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: