Der NSX Edge-Load Balancer verteilt den Netzwerkdatenverkehr auf mehrere Server, um eine optimale Nutzung der Ressourcen zu erreichen, Redundanz zu bieten und damit die Ressourcennutzung zu verteilen.
Der NSX-Load Balancer unterstützt die Schicht 4- und Schicht 7-Load-Balancer-Engines. Der Load Balancer der Schicht 4 ist verbindungsbasiert und ermöglicht eine schnelle Pfadverarbeitung, während der Load Balancer der Schicht 7 HTTP-socketbasiert ist und erweiterte Datenverkehrsmanipulationen sowie DDOS-Abschwächungen für Backend-Dienste ermöglicht.
Eine verbindungsbasierte Lastverteilung ist in der TCP- und UDP-Schicht implementiert. Die verbindungsbasierte Lastverteilung beendet die Verbindung nicht und puffert auch nicht die gesamte Anforderung, sondern verarbeitet das Paket und sendet es direkt zum ausgewählten Server. TCP- und UDP-Sitzungen verbleiben im Load Balancer, sodass Pakete für eine einzelne Sitzung zum selben Server gesendet werden. Die verbindungsbasierte Lastverteilung erfolgt über TCP mit deaktivierter Beschleunigung und virtueller UDP-IP oder über virtuelle TCP-IP mit aktivierter Beschleunigung.
Eine socketbasierte Lastverteilung wird auf der Grundlage der Socketschnittstelle implementiert. Es werden zwei Verbindungen für eine einzelne Anforderung eingerichtet: eine Verbindung mit Client-Kontakt und eine Verbindung mit Server-Kontakt. Die Verbindung mit Server-Kontakt wird nach der Serverauswahl eingerichtet. Bei einer Socket-basierten HTTP-Implementierung wird die gesamte Anforderung vor dem Senden an den ausgewählten Server mit optionaler L7-Verarbeitung empfangen. Bei einer socketbasierten HTTPS-Implementierung werden die Authentifizierungsinformationen über die Verbindung mit Clientkontakt oder über die Verbindung mit Serverkontakt ausgetauscht. Das Socket-basierte Load Balancing ist der Standardmodus für virtuelle Server mit TCP-, HTTP- oder HTTPS-Protokoll.
Wichtige Konzepte des NSX-Load Balancer sind unter anderem:
- Virtueller Server
- Zusammenfassender Begriff für einen Anwendungsdienst, der aus einer eindeutigen Kombination aus IP, Port, Protokoll und Anwendungsprofil wie TCP oder UDP besteht.
- Serverpool
- Gruppe von Backend-Servern.
- Serverpoolmitglied
- Stellt den Backend-Server als Mitglied in einem Pool dar.
- Dienstmonitor
- Definiert die Art und Weise, mit der der Systemzustand eines Backend-Servers überprüft wird.
- Anwendungsprofil
- Spiegelt die TCP-, UDP-, Persistenz- und Zertifikatkonfiguration für eine bestimmte Anwendung wider.
Sie beginnen mit der Einstellung globaler Optionen für den Load Balancer, erstellen dann einen Serverpool aus Backend-Servermitgliedern und verknüpfen einen Dienstmonitor mit dem Pool zur effizienten Verwaltung und Freigabe der Backend-Server.
Sie können dann ein Anwendungsprofil zur Definition des allgemeinen Anwendungsverhaltens in einem Load Balancer, z. B. in Bezug auf Client-SSL, Server-SSL, „x-forwarded-for“ oder Persistenz, definieren. Durch die Persistenz werden wiederholte Anforderungen mit demselben Merkmal (Quell-IP oder Cookie) gesendet. Diese sind Voraussetzung für das Versenden an dasselbe Poolmitglied, ohne dass der Lastverteilungsalgorithmus ausgeführt wird. Anwendungsprofile können für alle virtuellen Server wiederverwendet werden.
Sie haben dann die Möglichkeit, eine Anwendungsregel zur Konfiguration anwendungsspezifischer Einstellungen für die Verarbeitung des Datenverkehrs zu erstellen, z. B. die notwendige Übereinstimmung mit einer bestimmten URL oder mit einem bestimmten Hostnamen, damit unterschiedliche Anforderungen von unterschiedlichen Pools verarbeitet werden. Im nächsten Schritt können Sie einen Dienstmonitor erstellen, der speziell auf Ihre Anwendung ausgelegt ist, oder einen zuvor erstellten Dienstmonitor verwenden.
Optional können Sie eine Anwendungsregel erstellen, um die erweiterte Funktionalität von virtuellen L7-Servern zu unterstützen. Einige Anwendungsfälle für Anwendungsregeln beinhalten das Wechseln von Inhalten, Kopfzeilenmanipulation, Sicherheitsregeln und DOS-Schutz.
Schlussendlich können Sie einen virtuellen Server erstellen, der Ihren Serverpool, Ihr Anwendungsprofil und potenzielle Anwendungsregeln miteinander verbindet.
Wenn der virtuelle Server eine Anforderung erhält, berücksichtigt der Load-Balancing-Algorithmus die Poolmitgliedskonfiguration und den Laufzeitstatus. Der Algorithmus berechnet dann den entsprechenden Pool für die Verteilung des Datenverkehrs für ein oder mehr Mitglieder. Zur Poolmitgliedskonfiguration gehören Einstellungen wie Gewichtung, maximale Verbindung und Bedingungsstatus. Der Laufzeitstatus beinhaltet die aktuellen Verbindungen, die Antwortzeit und Informationen über den Systemstatus. Die Berechnungsmethoden können Round-Robin, Weighted Round-Robin, schwächste Verbindung, Quell-IP-Hash, gewichtete schwächste Verbindungen, URL, URI oder HTTP-Kopfzeile sein.
Jeder Pool wird vom zugehörigen Dienstmonitor überwacht. Wenn der Load Balancer ein Problem bei einem Poolmitglied erkennt, wird das Mitglied als ausgefallen (DOWN) markiert. Es wird nur ein UP-Server bei der Auswahl eines Poolmitglieds aus dem Serverpool ausgewählt. Wenn der Serverpool nicht mit einem Dienstmonitor konfiguriert wurde, werden alle Poolmitglieder als UP behandelt.
Informationen zur Fehlerbehebung für Load Balancer erhalten Sie unter Fehlerbehebungshandbuch zu NSX.