Advisor sind Softwareagenten, die in Load Balancer arbeiten und Informationen zur Last auf einem bestimmten
Server bereitstellen.
Für jedes Standardprotokoll (HTTP, SSL und andere) gibt es einen anderen Advisor. Der Load-Balancer-Basiscode führt
regelmäßig einen Advisorzyklus aus, in dem der Status aller Server in der
Konfiguration individuell ausgewertet wird.
Vorbereitende Schritte
Advisor sind Agenten in
Load Balancer. Ihr Zweck ist es, den Zustand und
die Arbeitslast der Servermaschinen
zu beurteilen. Dies erfolgt durch einen proaktiven
Austausch mit den Servern, der dem von Clients vergleichbar ist. Advisor können als transportable
Clients der Anwendungsserver betrachtet werden.
Indem Sie eigene Advisor für Load Balancer schreiben, können Sie die Bestimmung der Last der Servermaschinen
anpassen.
Nähere Informationen zur Funktionsweise der Advisor finden Sie im Artikel Advisor.
Das Produkt stellt mehrere protokollspezifische Advisor für die
am häufigsten verwendeten Protokolle zur Verfügung. Es ist jedoch nicht sinnvoll, alle verfügbaren Advisor
mit Load Balancer zu verwenden. Load Balancer unterstützt auch das Konzept angepasster Advisor, so dass
Benutzer eigene Advisor schreiben können.
Einschränkung für die Verwendung der Advisor
mit bindungsspezifischen Serveranwendungen:- Wenn Sie Advisor für einen bindungsspezifischen Server verwenden möchten, müssen Sie zwei Instanzen des Servers starten, eine Instanz, die an
Cluster@Port gebunden wird, und eine, die an
Server@Port gebunden wird. Mit dem Befehl netstat
-an können Sie feststellen, ob der Server bindungsspezifisch ist. Suchen Sie nach
Server@Port.
Wenn der Server nicht
bindungsspezifisch ist, gibt der Befehl 0.0.0.0:80 zurück. Andernfalls sehen Sie eine Adresse
wie 192.168.15.103:80.
Wenn Sie arp publish
anstelle des Befehls ifconfig alias
verwenden, unterstützt Load Balancer
die Verwendung
der Advisor beim Lastausgleich für Server mit bindungsspezifischen Serveranwendungen, wenn
die Bindung an die Cluster-IP-Adresse erfolgt.
Informationen zu diesem Vorgang
Sie können einen Advisor clusterübergreifend für einen bestimmten Port starten (Gruppenadvisor). Sie können aber auch
an einem Port verschiedene Advisor für verschiedene Cluster ausführen
(clusterspezifische Advisor).
Anmerkung: Wenn Load Balancer auf einem Computer mit mehreren Netzadaptern ausgeführt wird
und der Advisordatenverkehr über einen bestimmten Adapter fließen soll, können Sie für die Pakete keine
bestimmte Quellen-IP-Adresse erzwingen.
Vorgehensweise
- Starten Sie den Advisor Ihrer Wahl. Eine Liste der gültigen
Advisor finden Sie unter Liste der Advisor
oder Angepassten Advisor erstellen.
- Clusterspezifischer Advisor: Geben Sie beispielsweise zum Starten eines Advisors am Port 80 für
ClusterA wie folgt den Cluster und den Port an:
dscontrol advisor start Advisorname clusterA@80
Dieser Befehl startet einen
Advsior an Port 80 für ClusterA. Dieser Advisor
wird für alle Port 80 von ClusterA zugeordneten
Server ausgeführt.
- Gruppenadvisor: Geben Sie zum Starten eines Advisors am Port 80 für alle anderen
Cluster
wie folgt den Port an:
dscontrol advisor start Advisorname 80
Dieser Befehl startet den Advisor an Port 80 für alle Cluster und Sites, die derzeit
keinen cluster- oder sitespezifischen Advisor haben.
Ihr Advisor wird für alle Port 80 zugeordneten
Server ausgeführt.
- Optional: Optional: Wenn Sie den HTTP- oder HTTPS-Advisor starten, können Sie eine eindeutige
Client-URL-Zeichenfolge definieren, damit der Advisor einzelne Services im Server überwachen kann.
Weitere Informationen zu dieser Option
finden Sie im Artikel Servicespezifische Empfehlungen mit der Option "advisorrequest" bzw. "advisorresponse" abrufen.
- Optional: Legen Sie das Advisorintervall fest. Das Advisorintervall legt fest, wie oft
ein Advisor den Status der Server an dem von ihr überwachten Port
abfragt und die Ergebnisse dann an den
Manager
übergibt. Ein zu niedriges Advisorintervall
kann sich negativ auf die Leistung auswirken,
da der Advisor die Server permanent
unterbricht. Ist das Advisorintervall
zu hoch, basieren die Entscheidungen des Managers
hinsichtlich der Wertigkeit unter Umständen
nicht auf exakten aktuellen Informationen.
Anmerkung: Die Advisorstandardwerte funktionieren
in den meisten Fällen effizient.
Gehen Sie mit Vorsicht vor, wenn Sie andere Werte als die Standardwerte
verwenden.
Wenn Sie das Intervall des
HTTP-Advisors am Port 80 beispielsweise
auf 3 Sekunden setzen möchten, geben Sie den folgenden Befehl
ein:dscontrol advisor interval http 80 3
Es ist nicht sinnvoll, ein Advisorintervall anzugeben, das kleiner als das Managerintervall ist. Das Standardadvisorintervall liegt
bei sieben Sekunden.
- Optional: Legen Sie das Advisorzeitlimit fest. Der Manager verwendet keine Advisorinformationen, deren Zeitmarke älter ist
als die für das Berichtszeitlimit des Advisors festgelegte
Zeit, um sicherzustellen, dass keine veralteten Informationen verwendet werden. Das Berichtszeitlimit des Advisors
muss größer als das Sendeaufrufintervall des Advisors sein. Ist das Zeitlimit kleiner,
ignoriert der Manager Berichte, die logisch betrachtet
verwendet werden müssten. Für Berichte des Advisors gilt standardmäßig kein Zeitlimit, so
dass der Standardwert unlimited ist.
Wenn Sie das Berichtszeitlimit für den HTTP-Advisor am Port 80 beispielsweise auf 30 Sekunden
setzen möchten, geben Sie den folgenden Befehl ein:
dscontrol advisor timeout http 80 30
Weitere Informationen
zum Festlegen des Berichtszeitlimits für den Advisor finden Sie im Artikel
dscontrol advisor.
- Optional: Legen Sie Verbindungs- und Empfangszeitlimitwerte für den Advisor fest. Für Load Balancer können Sie die Zeitlimits der Advisor
festlegen, innerhalb
derer der Ausfall eines bestimmten Server- oder Serviceports festgestellt werden soll. Die Zeitlimits für ausgefallene Server
(connecttimeout und receivetimeout) bestimmen, wie lange ein Advisor wartet, bis er
einen gescheiterten Sende- oder Empfangsvorgang meldet.
Für eine schnellstmögliche Erkennung ausgefallener
Server müssen Sie das Verbindungs- und Empfangszeitlimit des Advisors auf den
kleinsten Wert (eine Sekunde) sowie das Intervall für den Advisor und Manager
auf den kleinsten Wert (eine Sekunde) setzen.
Anmerkung: Falls es in Ihrer
Umgebung ein mittleres bis hohes Datenverkehrsaufkommen gibt, so dass sich die Serverantwortzeit erhöht,
sollten Sie die Werte connecttimeout und receivetimeout nicht zu niedrig festlegen.
Andernfalls könnte der Advisor einen ausgelasteten Server vorschnell als ausgefallenen Server markieren.
Wenn Sie connecttimeout und receivetimeout für den HTTP-Advisor am Port 80 beispielsweise auf
9 Sekunden setzen möchten, geben Sie den folgenden Befehl ein:
dscontrol advisor connecttimeout http 80 9
dscontrol advisor receivetimeout http 80 9
Der Standardwert für das Verbindungs- und Empfangszeitlimit
liegt beim Dreifachen des Wertes, der für das Intervall des Advisors angegeben wurde.
- Optional: Legen Sie die Anzahl Wiederholungen für den Advisor fest. Advisor können wiederholt versuchen, eine Verbindung herzustellen, bevor sie einen Server als inaktiv markieren. Der Advisor
markiert einen Server erst dann als inaktiv, wenn die Abfrage nach der festgelegten Anzahl Wiederholungen und einem weiteren Versuch
nicht beantwortet wird. Der Wert für retry sollte nicht über 3 liegen.
Mit dem folgenden Befehl wird retry für den LDAP-Advisor am Port 389 auf 2 gesetzt:
dscontrol advisor retry ldap 389 2