ADC

Hash-Algorithmus für Persistenz über virtuelle Server hinweg anpassen

Die NetScaler-Appliance verwendet Hash-basierte Algorithmen, um die Persistenz auf virtuellen Servern aufrechtzuerhalten. Standardmäßig verwendet die Hash-basierte Load-Balancing-Methode einen Hashwert der IP-Adresse und der Portnummer des Dienstes. Wenn ein Dienst an verschiedenen Ports auf demselben Server verfügbar ist, generiert der Algorithmus unterschiedliche Hashwerte. Daher können verschiedene virtuelle Lastausgleichsserver Anfragen für dieselbe Anwendung an verschiedene Dienste senden, wodurch die Pseudopersistenz unterbrochen wird.

Als Alternative zur Verwendung der Portnummer zur Generierung des Hashwerts können Sie für jeden Dienst eine eindeutige Hash-ID angeben. Für einen Dienst muss derselbe Hash-Identifikationswert auf allen virtuellen Servern angegeben werden. Wenn ein physischer Server mehr als einen Anwendungstyp unterstützt, sollte jeder Anwendungstyp über eine eindeutige Hash-ID verfügen.

Der Algorithmus zur Berechnung des Hashwerts für einen Dienst funktioniert wie folgt:

  • Standardmäßig legt eine globale Einstellung die Verwendung der Portnummer in einer Hash-Berechnung fest.
  • Wenn Sie eine Hash-ID für einen Dienst konfigurieren, wird diese verwendet, und die Portnummer nicht, unabhängig von der globalen Einstellung.
  • Wenn Sie keine Hash-ID konfigurieren, sondern den Standardwert der globalen Einstellung so ändern, dass die Verwendung der Portnummer nicht spezifiziert wird, basiert der Hashwert nur auf der IP-Adresse des Dienstes.
  • Wenn Sie keine Hash-ID konfigurieren oder den Standardwert der globalen Einstellung ändern, um die Portnummer zu verwenden, basiert der Hashwert auf der IP-Adresse und der Portnummer des Dienstes.

Sie können auch Hash-Identifikatoren angeben, wenn Sie die CLI verwenden, um Dienste an eine Dienstgruppe zu binden. Im Konfigurationsprogramm können Sie eine Dienstgruppe öffnen und auf der Registerkarte Mitglieder Hash-IDs hinzufügen.

So ändern Sie die globale Einstellung use-portnumber mithilfe der CLI

Geben Sie in der Befehlszeile Folgendes ein:

setze den LB-Parameter -UsePortForHashLB (JA) NO)

Beispiel:

> set lb parameter -usePortForHashLb NO
 Done
>show lb parameter
Global LB parameters:
        Persistence Cookie HttpOnly Flag: DISABLED
        Use port for hash LB: NO
 Done
<!--NeedCopy-->

So ändern Sie die globale Einstellung use-portnumber mithilfe der GUI

  1. Navigieren Sie zu Traffic Management > Load Balancing > Load Balancing-Parameter konfigurieren.
  2. Wählen oder deaktivieren Sie die Option Port für hashbasierte LB-Methoden verwenden.

Um einen neuen Dienst zu erstellen und eine Hash-ID für einen Dienst mithilfe der CLI anzugeben

Geben Sie an der Befehlszeile die folgenden Befehle ein, um die Hash-ID festzulegen und die Einstellung zu überprüfen:

Dienst hinzufügen < name > (< ip > < serverName >) < serviceType > < port > -Haschid < positive_integer >
show service <name>
<!--NeedCopy-->

Beispiel:

> add service flbkng 10.101.10.1 http 80 -hashId 12345
 Done
>show service flbkng
        flbkng (10.101.10.1:80) - HTTP
        State: DOWN
        Last state change was at Thu Nov  4 10:14:52 2010
        Time since last state change: 0 days, 00:00:15.990
        Server Name: 10.101.10.1
        Server ID : 0   Monitor Threshold : 0

        Down state flush: ENABLED
        Hash Id: 12345

1)      Monitor Name: tcp-default
                State: DOWN     Weight: 1

 Done
<!--NeedCopy-->

Um eine Hash-ID für einen vorhandenen Dienst mithilfe der CLI anzugeben

Geben Sie den Befehl set service, den Namen des Dienstes und -hashID gefolgt vom ID-Wert ein.

Um beim Hinzufügen eines Servicegruppenmitglieds eine Hash-ID anzugeben

Um für jedes Mitglied, das der Gruppe hinzugefügt werden soll, eine Hash-ID anzugeben und die Einstellung zu überprüfen, geben Sie an der Befehlszeile die folgenden Befehle ein (Achten Sie darauf, für jedes Mitglied eine eindeutige HashID anzugeben. ):

bind servicegroup <serviceGroupName> <memberName> <port> -hashId <positive_integer>

show servicegroup <serviceGroupName>
<!--NeedCopy-->

Beispiel:

 bind servicegroup http_svc_group 10.102.27.153 80 -hashId 2222222

>show servicegroup SRV
        SRV - HTTP
        State: ENABLED  Monitor Threshold : 0
        …

        1)         1.1.1.1:80   State: DOWN     Server Name: 1.1.1.1    Server ID: 123  Weight: 1
        Hash Id: 32211

                Monitor Name: tcp-default       State: DOWN
        …

        2)         2.2.2.2:80   State: DOWN     Server Name: 2.2.2.2    Server ID: 123  Weight: 1
        Hash Id: 12345

                Monitor Name: tcp-default       State: DOWN
        …
Done

<!--NeedCopy-->

Um eine Hash-ID für einen Dienst mithilfe der GUI anzugeben

  1. Navigieren Sie zu Traffic Management > Load Balancing > Services.
  2. Erstellen Sie einen neuen Dienst oder öffnen Sie einen vorhandenen Dienst und geben Sie die Hash-ID an.

Um mithilfe der GUI eine Hash-ID für ein bereits konfiguriertes Servicegruppenmitglied anzugeben

  1. Navigieren Sie zu Traffic Management > Load Balancing > Service Groups.
  2. Öffnen Sie ein Mitglied und geben Sie eine eindeutige Hash-ID ein.