Citrix NetScaler LoadBalancing Funktionsweise und Konfiguration für StoreFront

Hier finden Sie eine kurze Anleitung zur Konfiguration der Last Verteilung des StoreFront Servers auf dem Citrix NetScaler 11.1, sowie eine Funktionsbeschreibung.

Load Balancing gehört zu den ältesten Kernkomponenten eines NetScalers. NetScaler Load Balancing wird überwiegend zur Lastverteilung des Netzwerkverkehrs (Layer 4 – Layer 7) eingesetzt.  Load Balancing sorgt dafür, dass die Benutzerzugriffe (auch Netzwerktraffic) auf Ressourcen schnell und zuverlässig verteilt werden und die Backendsystem mit der maximalen Effizienz genutzt werden.

Load Balancing Architektur

Die Load Balancing Architektur besteht im Groben aus folgenden Komponenten:

NS Load Balancing

 

Binding

So werden die oberen Komponenten miteinander angebunden:

NetScaler Load Balancing Binding

  1. ein Server wird an Dienste gebunden.
  2. ein Monitor wird an Dienste gebunden.
  3. ein Dienst wird an einen vServer.

 

Kommunikationsfluss:

NetScaler Load Balancing Communication Flow

  1. Der Benutzer sendet eine Anfrage (Request) an die gewünschte Adresse z.B. ein Webserver.
  2. Diese wird vom Load Balancing vServer empfangen und anhand der Konfiguration weiter bearbeitet.
  3. Weiterhin wird eine Lastverteilungsentscheidung anhand der vordefinierte Methode, sowie der Monitoring-Informationen getroffen und die Anfrage wird an den Service weitergeleitet.
  4. Der Service leitet die Anfrage basierend an den vordefinierten Einstellungen an die IP-Adresse des verknüpften Servers weiter.

Load Balancing Virtual Server

Der Virtual Server (vServer) ist die erste Komponente, mit der der Client eine Verbindung herstellt. Dem virtuellen Server wird auch eine eindeutige IP-Adresse, einen Port und ein entsprechendes Protokoll zugewiesen. Der virtuelle Server kann mit unterschiedlichen Protokollen konfiguriert werden. Auch die Methode der Lastverteilung wird auf dem vServer bestimmt. Der virtuelle Server repräsentiert in Grunde genommen die skalierbare Backend-Infrastruktur nach außen.

Services

Ein Service ist eine Kombination von Eigenschaften wie die Ports und die Protokolls (z.B. http, SSL, DNS), die mit einem Server fest verknüpft sind. Ebenfalls sind die Dienste mit einem vServer verbunden.

Service Groups. Mehrere Dienste mit gleichen Eigenschaften können zu einer Gruppe zwecks vereinfachter Administration zusammengefasst werden.

Service Groups

Mehrere Dienste mit gleichen Eigenschaften können zu einer Service Gruppe zwecks vereinfachter Administration zusammengefasst werden.

Monitors

Die Monitore überprüfen in regelmäßigen Abständen der Zustand der Dienste, sowie die Erreichbarkeit der Backend Systeme. Je nach Dienstart werden unterschiedliche Überprüfungsmethoden verwendet. Die Monitore werden bei der Erstellung der Services automatisch angelegt und beinhalten dabei die Standardeinstellungen. Die Standardeinstellungen können bei Bedarf angepasst werden.

Servers

Die Server stellen ein Backend System dar. Diese können durch eine IP Adresse oder ein FQDN definiert werden. Wobei die Verwendung von IP-Adressen eine bevorzugte Methode ist, da diese den Ausfall der DNS-Infrastruktur ausschließt.  Ein Server kann mit einer beliebigen Anzahl der Dienste verbunden werden. Die Server können automatisiert bei der Erstellung von Diensten angelegt werden. Bei einer manuellen Erstellung haben Sie die Möglichkeit den Server sinnvoll zu benennen, sonst wird die IP-Adresse als Name verwendet.

Load-Balancing Algorithmen

Beachten Sie bitte, dass keine optimale Methode existiert. Die korrekte Entscheidung kann nur unter der Beachtung der lokalen Bedingungen getroffen werden.

Load-Balancing Algorithmen sind eine Sammlung von verschiedenen Kriterien, auf deren Basis entschieden wird, wie ein Client-Request zu dem Ziel-Server weitergleitet wird. Die bekanntesten Algorithmen sind:

Round Robin – in diesem Fall wird jede nächste Anfrage rotierend an einen weiteren Server weitergeleitet. Diese Methode ist nicht besonders intelligent, da eine reale Netzauslastung des Servers nicht berücksichtigt.

Least Connection – diese Methode ist selbsterklärend. Die Anfrage wird an den Server weitergeleitet, welcher zu diesem Zeitpunkt weniger aktive Verbindungen hat. LeastConnection wird standardmäßig bei der Erstellung des vServers eingestellt.

Least Bandwidth – in diesem Fall wird die Anfrage an den Server weitergeleitet, der am wenigsten die Bandbreite belegt. Gemessen wird der ein- und ausgehende Traffic in MB/Sec im 14 Sekundentakt. Wenn mehrere Server eine ähnliche Bandbreite belegen, werden die Zugriffe untereinander per Round Robin verteilt.

Least Packets – diese Methode ist den oberen Methoden ähnlich, anstatt der Bandbreite/Connection werden die TCP IP Pakete gezählt. Bei der gleichen Auslastung wird die Round Robin Methode verwendet.

Least Response Time (LRTM) – die Entscheidung wird auf Basis der Round Trip Zeit getroffen. Es wird die Round Trip Zeit vom NetScaler zum Backend Server und wieder zurück gemessen. Diese Methode wird nur für die http/HTPS Kommunikation verwendet.

Weitere konjugierbare Methoden sind unterschiedliche Hash Methoden:

URL hash method, Domain hash method, Destination IP hash method, Source IP hash method, Source IP Destination IP hash method, Source IP Source Port hash method, Call ID hash method

Alle genannte Hash Methoden funktionieren nach dem gleichen Prinzip: der NetScaler generiert einen Hashwert der jeweiligen Methode, speichert diesen im Cache und verwendet diesen anstelle einer entsprechenden Methode.

Persistence

Bei den konfigurierten Persistent-Methoden werden alle Verbindungen von einem bestimmten Benutzer an einem und desselben Service weitergeleitet. Es existiert eine Reihe von Persistent-Methoden:

 

Demo-Umgebung

IP-Adressen in meiner Demo-Umgebung

NetScaler:

NSIP 192.168.2.250
SNIP 192.168.2.251
VIP LN 192.168.2.230

StoreFront:

CTX-SF01 192.168.2.63
CTX-SF02 192.168.2.64

Komponenten

1. Eine zentrale Load-Balancing IP-Adresse, die Adresse wird auf dem DNS-Server konfiguriert.
2. Ein virtueller Server, dem die Load-Balancing IP-Adresse zugewiesen wird.
3. Es werden zwei „Server“ innerhalb des NetScalers angelegt. Jedem Server wird jeweils die IP-Adresse des Servers zugewiesen.
4. Für jeden Server wird auch ein Service erstellt, um die Lastverteilung-Funktionalität zu gewährleiten.
5. Monitoring überwacht die Verfügbarkeit der Komponenten.

Konfiguration

1. Erstellen Sie zuerst einen A/AAAA –Einträge. Die Konfiguration erfolgt über die DNS-Management-Konsole.

NetScaler 11 LB Configuration 01

1.2. Bei dieser IP-Adresse handelt es sich, um die IP, die später dem vServer auf dem NetScaler zugewiesen wird. 

NetScaler 11 LB Configuration 02

1.3. Der eingetragenen FQDN-Name entspricht die Adresse des Base URLs auf dem StoreFront Server.

NetScaler 11 LB Configuration 03

2.1. Neuen Server erstellen

Melden Sie sich an den Webserver als Administrator (nsroot) an.

Navigieren Sie zu: Traffic Management / Load Balancing / Virtual Servers

 NetScaler LB 001

2.2. Name und die IP-Adresse der beiden StoreFront Server eingeben

NetScaler LB 002

2.3. Beide StoreFront Server sind erfolgreich erstellt.  

NetScaler LB 003

3.1Neue Service Gruppe erstellen

Configuration > Traffic Management > Load Balancing > Service Groups > Add anklicken

NetScaler LB 005

3.2. In diesem Punkt werden die vorher erstellte Server hinzugefügt.

NetScaler LB 006

3.3. Server auswählen und Select

NetScaler LB 007

3.4. Port 443 eingeben und Create

NetScaler LB 008

3.5. Die Service Gruppe wurde erfolgreich erstellt.

NetScaler LB 009

4.1. Monitor erstellen

Configuration > Traffic Management > Load Balancing > Monitors

NetScaler LB 011

4.2Type > STOREFRONT auswählen

NetScaler LB 012

4.3. Im Bereich Special Parameters den Store Name eingeben (in meinem Fall Store). 

NetScaler LB 013

5.1. Hier erstellen wir unseren virtuellen Server.

Configuration > Traffic Management > Load Balancing > Virtual Servers

NetScaler LB 014

5.2.  SSL als Protocol auswählen und im internen Netzwerk auflösbare IP-Adresse eingeben. (Punk 1)

NetScaler LB 015

5.3. Weiter wird der erstelle Server mit der Service Gruppe verknüpft.

NetScaler LB 016

5.4.

NetScaler LB 017

5.5. Die Service Gruppe auswählen

NetScaler LB 018

5.6Select anklicken

NetScaler LB 019

5.7Bind

NetScaler LB 020

5.8. Für eine gesicherte Verbindung wird auch ein SSL-Zertifikat benötigt.

NetScaler LB 021

5.9. Da wir bis jetzt noch kein Zertifikat installiert wurde, müssen wir es noch tun.

NetScaler LB 022

5.10. Zertifikat auswählen

NetScaler LB 023

Zertifikat erstellen How-To

5.11. Bind

NetScaler LB 024

5.12. Es besteht die Möglichkeit den vServer sehr granular zu konfigurieren. Wir lassen alle Werte auf Default stehen und passen nur die Persistence Option an.

NetScaler LB 025

5.13. SOURCEIP auswählen

NetScaler LB 026

5.14. Die Konfiguration ist erfolgreich abgeschloßen.

NetScaler LB 027

5.15. Die getätigte Einstellungen werden gespeichert

NetScaler LB 028

6. Um sicher zu sein, dass die Last Verteilung zwischen den beiden StoreFront-Servern wunschgemäß funktioniert, habe ich die IIS-Startseiten dementsprechend angepasst.

NetScaler LB 029