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:
Binding
So werden die oberen Komponenten miteinander angebunden:
- ein Server wird an Dienste gebunden.
- ein Monitor wird an Dienste gebunden.
- ein Dienst wird an einen vServer.
Kommunikationsfluss:
- Der Benutzer sendet eine Anfrage (Request) an die gewünschte Adresse z.B. ein Webserver.
- Diese wird vom Load Balancing vServer empfangen und anhand der Konfiguration weiter bearbeitet.
- Weiterhin wird eine Lastverteilungsentscheidung anhand der vordefinierte Methode, sowie der Monitoring-Informationen getroffen und die Anfrage wird an den Service weitergeleitet.
- 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:
- SOURCEIP (Source IP)
- COOKIEINSERT (HTTP Cookie)
- SSLSESSION (SSL Session ID)
- RULE (User-Defined Rule)
- URLPASSIVE (URL Passive)
- CUSTOMSERVERID
- DESTIP (Destination IP)
- SRCIPDESTIP (Source and Destination IPs)
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.
1.2. Bei dieser IP-Adresse handelt es sich, um die IP, die später dem vServer auf dem NetScaler zugewiesen wird.
1.3. Der eingetragenen FQDN-Name entspricht die Adresse des Base URLs auf dem StoreFront Server.
2.1. Neuen Server erstellen
Melden Sie sich an den Webserver als Administrator (nsroot) an.
Navigieren Sie zu: Traffic Management / Load Balancing / Virtual Servers
2.2. Name und die IP-Adresse der beiden StoreFront Server eingeben
2.3. Beide StoreFront Server sind erfolgreich erstellt.
3.1. Neue Service Gruppe erstellen
Configuration > Traffic Management > Load Balancing > Service Groups > Add anklicken
3.2. In diesem Punkt werden die vorher erstellte Server hinzugefügt.
3.3. Server auswählen und Select
3.4. Port 443 eingeben und Create
3.5. Die Service Gruppe wurde erfolgreich erstellt.
4.1. Monitor erstellen
Configuration > Traffic Management > Load Balancing > Monitors
4.2. Type > STOREFRONT auswählen
4.3. Im Bereich Special Parameters den Store Name eingeben (in meinem Fall Store).
5.1. Hier erstellen wir unseren virtuellen Server.
Configuration > Traffic Management > Load Balancing > Virtual Servers
5.2. SSL als Protocol auswählen und im internen Netzwerk auflösbare IP-Adresse eingeben. (Punk 1)
5.3. Weiter wird der erstelle Server mit der Service Gruppe verknüpft.
5.4.
5.5. Die Service Gruppe auswählen
5.6. Select anklicken
5.7. Bind
5.8. Für eine gesicherte Verbindung wird auch ein SSL-Zertifikat benötigt.
5.9. Da wir bis jetzt noch kein Zertifikat installiert wurde, müssen wir es noch tun.
5.10. Zertifikat auswählen
5.11. Bind
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.
5.13. SOURCEIP auswählen
5.14. Die Konfiguration ist erfolgreich abgeschloßen.
5.15. Die getätigte Einstellungen werden gespeichert
6. Um sicher zu sein, dass die Last Verteilung zwischen den beiden StoreFront-Servern wunschgemäß funktioniert, habe ich die IIS-Startseiten dementsprechend angepasst.