Heim > Betrieb und Instandhaltung > Betrieb und Wartung von Linux > Unter Linux gibt es verschiedene Arten des Lastausgleichs

Unter Linux gibt es verschiedene Arten des Lastausgleichs

青灯夜游
Freigeben: 2023-04-14 11:25:10
Original
1918 Leute haben es durchsucht

Linux verfügt über 4 Arten des Lastausgleichs: 1. Layer-2-Lastausgleich (Mac), der virtuelle MAC-Adressen verwendet, die vom Lastausgleich empfangen werden und die tatsächliche MAC-Adressantwort des Backends zuordnen. Layer 3 Load Balancing (IP) verwendet virtuelle IP-Adressen, um externe virtuelle IP-Adressen anzufordern. Nachdem der Load Balancing die Anfrage erhalten hat, weist er die tatsächliche Back-End-IP-Adressantwort zu. 3. Vierschichtiger Load Balancing (TCP), beginnend mit dem Vierte Schicht „Transportschicht“ „Starten Sie, verwenden Sie „IP + Port“, um die Anforderung zu empfangen; 4. Siebenschichtiger Lastausgleich (http).

Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Dell G3-Computer.

Bei regulären Entwicklungs-- und Betriebs- und Wartungsarbeiten werden häufig Lastausgleichsdienste verwendet, und es werden häufig vierschichtige Lasten und siebenschichtige Lasten erwähnt. Was genau ist Layer-4-Last? Was ist Layer-7-Last? Was ist der Unterschied zwischen den beiden?

1. Was ist Lastausgleich

1) Lastausgleich (Load Balance) basiert auf der vorhandenen Netzwerkstruktur und bietet eine kostengünstige, effektive und transparente Methode zur Erweiterung der Bandbreite von Netzwerkgeräten und Servern , erhöhen Sie den Durchsatz, stärken Sie die Datenverarbeitungsfunktionen des Netzwerks und verbessern Sie die Flexibilität und Verfügbarkeit des Netzwerks. Lastausgleich hat zwei Bedeutungen: Erstens wird eine große Anzahl gleichzeitiger Zugriffe oder Datenverkehr zur separaten Verarbeitung auf mehrere Knotengeräte verteilt, wodurch sich die Wartezeit der Benutzer auf Antworten verringert. Zweitens wird ein einzelner Vorgang mit hoher Last auf mehrere Knotengeräte verteilt Nachdem jedes Knotengerät die Verarbeitung abgeschlossen hat, werden die Ergebnisse zusammengefasst und an den Benutzer zurückgegeben. Die Systemverarbeitungsfähigkeit wird erheblich verbessert.

2)

Um es einfach auszudrücken : Die eine besteht darin, eine große Menge gleichzeitiger Verarbeitung zur Verarbeitung an mehrere Back-End-Knoten weiterzuleiten, wodurch die Reaktionszeit der Arbeit verkürzt wird. Endknoten Verarbeiten Sie es, geben Sie es dann an das Lastausgleichszentrum zurück und geben Sie es dann an den Benutzer zurück. Derzeit wird die Lastausgleichstechnologie hauptsächlich zur Verbesserung der Verfügbarkeit und Skalierbarkeit von Internet-Serverprogrammen wie Webservern, FTP-Servern und anderen geschäftskritischen Servern eingesetzt.

2. Lastausgleichsklassifizierung

Der vierschichtige Lastausgleich und der siebenschichtige Lastausgleich kommen am häufigsten in der Entwicklung sowie im Betrieb und in der Wartung vor.

1) Layer 2 Load Balancing (Mac)

Die Layer 2-Last wird nach dem OSI-Modell aufgeteilt. Im Allgemeinen wird die virtuelle MAC-Adresse von der Last empfangen Balancer und die tatsächliche MAC-Adresse der Backend-Antwort wird zugewiesen.

2) Dreischichtiger Lastausgleich (IP)

verwendet im Allgemeinen die Methode der virtuellen IP-Adressen. Externe Anforderungen für virtuelle IP-Adressen werden durch den Lastausgleich empfangen und die tatsächliche IP-Adressantwort des Backends zugewiesen. (Das heißt, eine IP-zu-eins-IP-Weiterleitung, alle Ports sind geöffnet)

3) Vierschichtiger Lastausgleich (TCP)

Auf der Grundlage von drei Lastausgleichen, also ab der vierten Schicht „Transport“. Layer“, „IP+Port“ verwenden, empfängt die Anfrage und leitet sie an die entsprechende Maschine weiter.

Es handelt sich um einen Lastausgleich basierend auf IP+Port: Basierend auf dem dreischichtigen Lastausgleich wird durch die Veröffentlichung der dreischichtigen IP-Adresse (VIP) und das anschließende Hinzufügen der vierschichtigen Portnummer bestimmt, welcher Datenverkehr geladen werden muss Ausgewogen und der Datenverkehr, der verarbeitet werden muss. Der Datenverkehr wird NAT-verarbeitet, an den Backend-Server weitergeleitet und der Server, der den TCP- oder UDP-Datenverkehr verarbeitet, wird aufgezeichnet. Der gesamte nachfolgende Datenverkehr dieser Verbindung wird ebenfalls zur Verarbeitung an denselben Server weitergeleitet.

Der entsprechende Load Balancer wird als Vierschicht-Switch (L4-Switch) bezeichnet, der hauptsächlich die IP-Schicht und die TCP/UDP-Schicht analysiert, um einen vierschichtigen Lastausgleich zu erreichen. Diese Art von Load Balancer versteht keine Anwendungsprotokolle (wie HTTP/FTP/MySQL usw.).

Die Software, die den vierschichtigen Lastausgleich implementiert, ist: F5: Hardware-Lastausgleich, der über gute Funktionen, aber hohe Kosten verfügt.
lvs: schwere vierschichtige Ladesoftware
nginx: leichte vierschichtige Ladesoftware mit Caching-Funktion, flexiblere reguläre Ausdrücke
haproxy: simuliert vierschichtige Weiterleitung, flexibler

4) siebenschichtiger Lastausgleich (http )

Startet in der siebten Schicht „Anwendungsschicht“, empfängt die Anforderung entsprechend der virtuellen URL oder IP und dem Hostnamen und leitet sie dann an den entsprechenden Verarbeitungsserver weiter.

Es handelt sich um einen Lastausgleich basierend auf einer virtuellen URL oder Host-IP: auf der Grundlage eines vierschichtigen Lastausgleichs (es ist absolut unmöglich, sieben Schichten ohne vier Schichten zu haben) und dann die Eigenschaften der Anwendungsschicht zu berücksichtigen, wie z Auslastung desselben Webservers Für den Ausgleich kann neben der Identifizierung, ob der Datenverkehr basierend auf VIP plus Port 80 verarbeitet werden muss, auch ermittelt werden, ob ein Lastausgleich basierend auf der siebenschichtigen URL, der Browserkategorie und der Sprache durchgeführt werden soll . Wenn Ihr Webserver beispielsweise in zwei Gruppen unterteilt ist, eine für die chinesische Sprache und eine für die englische Sprache, kann der siebenstufige Lastausgleich automatisch die Benutzersprache identifizieren, wenn der Benutzer auf Ihren Domänennamen zugreift, und dann die entsprechende Sprache auswählen Die Servergruppe führt die Lastausgleichsverarbeitung durch.

Der entsprechende Load Balancer wird als siebenschichtiger Switch (L7-Switch) bezeichnet. Zusätzlich zur Unterstützung des vierschichtigen Lastausgleichs analysiert er auch Informationen der Anwendungsschicht, wie z. B. HTTP-Protokoll-URI oder Cookie-Informationen, um einen siebenschichtigen Lastausgleich zu erreichen . Diese Art von Load Balancer versteht Anwendungsprotokolle.

Die Software, die den siebenschichtigen Lastausgleich implementiert, umfasst:
haproxy: Angeborene Lastausgleichsfähigkeiten, unterstützt vollständig siebenschichtigen Proxy, Sitzungsaufbewahrung, Markierung, Pfadübertragung;
nginx: Es verfügt nur über bessere Funktionen im HTTP-Protokoll und Mail-Protokoll. Die Leistung ist ähnlich wie bei Haproxy;
Apache: schlechte Funktion
MySQL-Proxy: akzeptable Funktion.

Im Allgemeinen wird lvs zum Laden von Schicht 4 verwendet; Nginx wird zum Laden von Schicht 4 verwendet (über das Stream-Modul ist es flexibler und kann sowohl Schicht 4 als auch Schicht 4 laden). Layer-7-Lastausgleich.

3. Der Unterschied zwischen vierschichtigem und siebenschichtigem Lastausgleich

1) Analysieren Sie das technische Prinzip

Der sogenannte vierschichtige Lastausgleich über das Ziel in der Nachricht Die Adresse und der Port bestimmen zusammen mit der vom Lastausgleichsgerät eingerichteten Serverauswahlmethode die endgültige interne Serverauswahl.

Nehmen wir als Beispiel das allgemeine TCP: Wenn das Lastausgleichsgerät die erste SYN-Anfrage vom Client empfängt, wählt es mit der oben genannten Methode den besten Server aus und ändert die Ziel-IP-Adresse in der Nachricht (geändert in Endserver-IP) und leitet sie weiter direkt an den Server. Der TCP-Verbindungsaufbau, dh der Drei-Wege-Handshake, wird direkt zwischen dem Client und dem Server hergestellt, und das Lastausgleichsgerät fungiert nur als Router-ähnliche Weiterleitungsaktion. Um sicherzustellen, dass das vom Server zurückgegebene Paket korrekt an das Lastausgleichsgerät zurückgegeben werden kann, kann in einigen Bereitstellungssituationen die ursprüngliche Quelladresse des Pakets während der Weiterleitung des Pakets geändert werden.

Der sogenannte siebenschichtige Lastausgleich, auch als „Inhaltsaustausch“ bekannt, erfolgt hauptsächlich durch den wirklich aussagekräftigen Inhalt der Anwendungsschicht in der Nachricht sowie durch die durch den Lastausgleich festgelegte Serverauswahlmethode Gerät bestimmt die endgültige Wahl des internen Servers.

Nehmen Sie als Beispiel das allgemeine TCP. Wenn das Lastausgleichsgerät einen Server basierend auf dem tatsächlichen Inhalt der Anwendungsschicht auswählen möchte, kann es die vom Client gesendete Anfrage erst annehmen, nachdem es zum ersten Mal eine Verbindung zwischen dem endgültigen Server und dem Client hergestellt hat (Drei-Wege-Handshake). Der tatsächliche Inhalt der Anwendungsschicht der Nachricht wird dann basierend auf den spezifischen Feldern in der Nachricht und der vom Lastausgleichsgerät festgelegten Serverauswahlmethode bestimmt, um die endgültige interne Serverauswahl zu bestimmen. Das Lastausgleichsgerät ähnelt in diesem Fall eher einem Proxyserver. Der Lastausgleich sowie die Front-End-Clients und Back-End-Server stellen jeweils TCP-Verbindungen her. Aus der Sicht dieses technischen Prinzips stellt der siebenschichtige Lastausgleich offensichtlich höhere Anforderungen an die Lastausgleichsausrüstung, und die Fähigkeit, sieben Schichten zu verarbeiten, wird zwangsläufig geringer sein als bei der Bereitstellungsmethode im vierschichtigen Modus.

Vierschichtiger Lastausgleich wird auf der Zwischentransportschicht durchgeführt, die die Zustellung von Nachrichten übernimmt, aber den Inhalt der Nachrichten nicht berücksichtigt. Beispielsweise ist TCP das Schicht-4-Protokoll für den HTTP-Verkehr (Hypertext Transfer Protocol) im Netzwerk. Während dieses Prozesses leitet der Layer-4-Lastausgleich Netzwerkpakete an den Upstream-Server weiter, überprüft jedoch nicht den Inhalt der Pakete und kann nur begrenzte Routing-Entscheidungen treffen, indem er die ersten paar Pakete im TCP-Stream untersucht.

Siebenschichtiger LastausgleichIm Gegensatz zum vierschichtigen Lastausgleich wird er auf der übergeordneten Anwendungsschicht ausgeführt und verarbeitet den tatsächlichen Inhalt jeder Nachricht. HTTP ist das primäre Layer-7-Protokoll für den Website-Verkehr im Web. Der Lastausgleich auf Schicht 7 leitet den Netzwerkverkehr auf komplexere Weise weiter als der Lastausgleich auf Schicht 4 und eignet sich besonders für TCP-basierten Datenverkehr (z. B. HTTP). Der Lastausgleich der Schicht 7 beendet den Netzwerkverkehr und liest Nachrichten auf dem Server. Er kann Lastausgleichsentscheidungen basierend auf dem Nachrichteninhalt (z. B. URL oder Cookie) treffen. Anschließend baut der siebenschichtige Load Balancing eine neue TCP-Verbindung mit dem ausgewählten Server auf und schreibt die Anfrage an den Server.

In einfachen Worten: der Unterschied zwischen den beiden

- Siebenschichtiger Lastausgleich basiert grundsätzlich auf dem http-Protokoll und eignet sich für den Lastausgleich von Webservern. (nginx)-
Vierschichtiger Lastausgleich basiert hauptsächlich auf TCP-Protokollnachrichten und kann Lastausgleich für jede Software durchführen, die auf dem TCP/IP-Protokoll basiert. (haproxy, LVS)-
Der Hauptunterschied zwischen den beiden besteht darin, dass die Ebenen der verwendeten Nachrichten unterschiedlich sind und jede ihre eigenen Vorteile hat. -
Der Vorteil der siebenschichtigen Anwendungslast besteht darin, das gesamte Netzwerk „intelligenter“ zu machen. Beispielsweise kann der Benutzerverkehr, der eine Website besucht, Anfragen nach Bildern an einen bestimmten Bildserver weiterleiten und mithilfe des Sieben-Schichten-Ansatzes können Anfragen nach Text an einen bestimmten Textserver weitergeleitet werden, und es kann eine Komprimierungstechnologie verwendet werden. Dies ist natürlich nur ein kleiner Fall einer siebenschichtigen Anwendung. Aus technischer Sicht kann diese Methode die Anfrage des Clients und die Antwort des Servers in jeder Hinsicht ändern und so die Flexibilität des Anwendungssystems auf der Netzwerkebene erheblich verbessern. Viele im Hintergrund bereitgestellte Funktionen wie Nginx oder Apache können auf das Lastausgleichsgerät verschoben werden, z. B. das Umschreiben von Headern in Clientanforderungen, das Filtern von Schlüsselwörtern oder das Einfügen von Inhalten in Serverantworten und andere Funktionen. -
Der vierschichtige Lastausgleich ist vor allem flexibler und kann als Lastausgleich für eine Vielzahl von Software verwendet werden. Nehmen wir zur Veranschaulichung ein Beispiel: Der vierschichtige Lastausgleich ist wie der Selbstbedienungs-Warteschlangenautomat einer Bank. Jeder Kunde, der bei der Bank ankommt, wählt das entsprechende Fenster aus, um Dienste gemäß der Reihenfolge des Warteschlangenautomaten zu erhalten Der Lastausgleich auf der Ebene ähnelt einem Bankmanager. Er bestätigt zunächst das Geschäft, das der Kunde abwickeln muss, und ordnet dann die Nummerierung an. Auf diese Weise werden Kunden, die sich um Finanzmanagement, Ein- und Auszahlungen usw. kümmern, entsprechend den internen Ressourcen der Bank koordiniert und abgewickelt, was den Kundengeschäftsprozess beschleunigt.

Vorteile des siebenschichtigen Lastausgleichs Der siebenschichtige Lastausgleich verbraucht mehr CPU als der paketbasierte vierschichtige Lastausgleich, führt jedoch selten zu einer Verschlechterung der Serverleistung. Durch den siebenstufigen Lastausgleich kann der Lastausgleicher fundiertere Entscheidungen treffen und Optimierungen und Änderungen an Inhalten wie Komprimierung, Verschlüsselung und mehr vornehmen. Der Layer-7-Lastausgleich kann auch Pufferung nutzen, um langsame Verbindungen von Upstream-Servern zu entlasten und so die Leistung zu verbessern.

Die Komponente, die den Layer-7-Lastausgleich durchführt, wird oft als Reverse-Proxy-Server bezeichnet.

Beispiel für einen Lastausgleich mit sieben Ebenen Nehmen wir als einfaches Beispiel an, dass ein Benutzer während der Sitzung statische Inhalte (z. B. Bilder oder Videos) und dynamische Inhalte ( (z. B. Newsfeeds)) oder Transaktionsinformationen (z. B. Bestellstatus) usw. Der Lastenausgleich auf Ebene 7 ermöglicht es dem Lastenausgleich, Anfragen basierend auf Nachrichten in der Anfrage selbst weiterzuleiten, z. B. dem Inhaltstyp. Das heißt, Anfragen nach einem Bild oder Video können an einen Server weitergeleitet werden, der es speichert und hochgradig für die Bereitstellung von Multimedia-Inhalten optimiert ist. Anfragen nach Transaktionsinformationen, wie z. B. Preisnachlässen, können an einen Anwendungsserver weitergeleitet werden, der für die Preisverwaltung verantwortlich ist. Mit dem Layer-7-Lastausgleich können Netzwerk- und Anwendungsarchitekten hochoptimierte Serverinfrastrukturen oder Anwendungsbereitstellungsnetzwerke erstellen, die effizient skalieren und gleichzeitig Zuverlässigkeit gewährleisten.

Einfache Zusammenfassung Aus dem obigen Vergleich geht hervor, dass der größte Unterschied zwischen vierschichtiger und siebenschichtiger Last der Unterschied in Effizienz und Funktionalität ist. Das Design der vierschichtigen Lastarchitektur ist relativ einfach, erfordert keine Analyse spezifischer Nachrichteninhalte und weist einen relativ hohen Netzwerkdurchsatz und eine relativ hohe Verarbeitungsfähigkeit auf. Die Vorteile des siebenschichtigen Lastausgleichs spiegeln sich in seinen vielfältigen Funktionen und seiner flexiblen und leistungsstarken Steuerung wider . Beim Entwurf einer bestimmten Geschäftsarchitektur muss die Verwendung von Sieben-Schicht-Last oder Vier-Schicht-Last je nach Situation umfassend berücksichtigt werden.

Der Datenfluss während des Lastausgleichs läuft vollständig über den Lastausgleicher. Wie kann das Problem gelöst werden, dass der Lastausgleicher zu einem Engpass wird?

Durch Ändern der Quelladresse und der Zieladresse der TCP-Nachricht werden die vom Webserver zurückgegebenen Daten direkt an den Client zurückgegeben. Dies ist etwas, was der siebenschichtige Lastausgleich nicht leisten kann, da der TCP-Drei-Wege-Handshake eingerichtet ist Zwischen dem Client und der Last basiert das HTTP-Protokoll auf dem TCP-Protokoll. Nach dem Empfang der HTTP-Nachricht wird angezeigt, dass der Load Balancer und der Client eine Verbindung hergestellt haben TCP-Verbindung, aber die TCP-Verbindung zwischen dem Webserver und dem Client wurde nicht hergestellt. So werden Daten an den Client zurückgegeben. Die obige Methode führt zu Problemen: Alle Hosts im Cluster verfügen über interne IP-Adressen und können nicht mit der Außenwelt kommunizieren.

Lösung 1: Wenn Sie so viele externe IP-Adressen zur Verwendung kaufen können, dann verteilen Sie die Last auf den echten Webserver, wenn die TCP-Verbindung hergestellt werden soll, sodass Client und Server eine TCP-Verbindung herstellen können.

Lösung 2:
Zitat: Alle Computerprobleme können durch die Einrichtung einer virtuellen Schicht gelöst werden.
Sie können alle Server-Host-IPs in Load-Balancing-Server-IPs virtualisieren, sodass alle Hosts im Server-Cluster auf das externe Netzwerk zugreifen können. Da die IP-Adressen (Netzwerkschicht, drei Schichten) gleich sind, kann auf sie nur über zugegriffen werden Unterscheiden Sie die Datenflussrichtung und ändern Sie die MAC-Adresse des Zielhosts der Datenverbindungsschicht (Schicht 2), sodass die Anforderung an den Webserver gesendet wird. Anschließend wird die TCP-Verbindung tatsächlich hergestellt Der Server kann eine Verbindung zum Internet herstellen und Daten direkt an den Client zurückgeben ". Beispielsweise kann der Benutzerverkehr, der eine Website besucht, Anfragen nach Bildern an einen bestimmten Bildserver weiterleiten und mithilfe des Sieben-Schichten-Ansatzes können Anfragen nach Text an einen bestimmten Textserver weitergeleitet werden, und es kann eine Komprimierungstechnologie verwendet werden. Dies ist natürlich nur ein kleiner Fall einer siebenschichtigen Anwendung. Aus technischer Sicht kann diese Methode die Anfrage des Clients und die Antwort des Servers in jeder Hinsicht ändern und so die Flexibilität des Anwendungssystems auf der Netzwerkebene erheblich verbessern. Viele im Hintergrund bereitgestellte Funktionen wie Nginx oder Apache können auf das Lastausgleichsgerät verschoben werden, z. B. das Umschreiben von Headern in Clientanforderungen, das Filtern von Schlüsselwörtern oder das Einfügen von Inhalten in Serverantworten und andere Funktionen.

Eine weitere häufig erwähnte Funktion ist die Sicherheit. Der häufigste SYN-Flood-Angriff im Netzwerk besteht darin, dass Hacker viele Quell-Clients kontrollieren und falsche IP-Adressen verwenden, um SYN-Angriffe an dasselbe Ziel zu senden. Normalerweise sendet dieser Angriff eine große Anzahl von SYN-Nachrichten und erschöpft damit verbundene Ressourcen auf dem Server Denial-of-Service (DoS)-Zweck erreichen. Aus den technischen Prinzipien ist auch ersichtlich, dass diese SYN-Angriffe im Vierschichtmodus an den Back-End-Server weitergeleitet werden und im Siebenschichtmodus diese SYN-Angriffe natürlich auf dem Lastausgleichsgerät enden hat keinen Einfluss auf den normalen Betrieb des Back-End-Servers. Darüber hinaus kann das Lastausgleichsgerät mehrere Richtlinien auf der siebenschichtigen Ebene festlegen, um bestimmte Nachrichten zu filtern, z. B. SQL-Injection und andere Angriffsmethoden auf Anwendungsebene, um die Gesamtsystemsicherheit auf Anwendungsebene weiter zu verbessern.

Der aktuelle siebenschichtige Lastausgleich konzentriert sich hauptsächlich auf die Anwendung des HTTP-Protokolls, sodass sein Anwendungsbereich hauptsächlich auf B/S-basierten Systemen wie zahlreichen Websites oder internen Informationsplattformen liegt. Der Layer-4-Lastausgleich entspricht anderen TCP-Anwendungen, wie ERP und anderen auf C/S basierenden Systemen.

3) Zu berücksichtigende Punkte bei siebenschichtigen Anwendungen3.1)

Ist es wirklich notwendig

? Siebenschichtige Anwendungen können zwar die Verkehrsintelligenz verbessern, führen aber gleichzeitig unweigerlich zu Problemen wie komplexer Gerätekonfiguration, erhöhtem Lastausgleichsdruck und Komplexität bei der Fehlerbehebung. Bei der Auslegung des Systems ist die Mischsituation des gleichzeitigen Auftragens von vier Schichten und sieben Schichten zu berücksichtigen.

3.2) Ob die Sicherheit wirklich verbessert werden kann. Beim SYN-Flood-Angriff blockiert der Sieben-Schichten-Modus diesen Datenverkehr zwar vom Server, aber das Lastausgleichsgerät selbst muss über starke Anti-DDoS-Fähigkeiten verfügen, andernfalls auch dann, wenn der Server normal ist und das Lastausgleichsgerät als verwendet wird Fällt der zentrale Dispatcher aus, bricht die gesamte Anwendung zusammen.

3.3) Ist genügend Flexibilität vorhanden. Der Vorteil von siebenschichtigen Anwendungen besteht darin, dass sie den Datenverkehr der gesamten Anwendung intelligent gestalten können. Das Lastausgleichsgerät muss jedoch vollständige siebenschichtige Funktionen bereitstellen, um die anwendungsbasierte Planung des Kunden je nach Situation zu erfüllen. Die einfachste Beurteilung besteht darin, ob es die Planungsfunktion auf dem Hintergrundserver wie Nginx oder Apache ersetzen kann. Ein Lastausgleichsgerät, das eine siebenschichtige Anwendungsentwicklungsschnittstelle bereitstellen kann, ermöglicht es Kunden, Funktionen entsprechend ihren Anforderungen festzulegen, was es wirklich möglich macht, leistungsstarke Flexibilität und Intelligenz bereitzustellen.

4) Gesamtvergleich

4.1) Intelligenz

Der siebenschichtige Lastausgleich verfügt über alle Funktionen des siebenschichtigen OIS, sodass er theoretisch flexibler auf Benutzeranforderungen eingehen kann Alle Benutzeranfragen an den Server werden geändert. Fügen Sie beispielsweise Informationen zum Dateikopf hinzu und klassifizieren und leiten Sie sie nach verschiedenen Dateitypen weiter. Das Vierschichtmodell unterstützt nur die Bedarfsweiterleitung basierend auf der Netzwerkschicht und kann den Inhalt von Benutzeranforderungen nicht ändern.

4.2) Sicherheit

Da der siebenschichtige Lastausgleich über alle Funktionen des OSI-Modells verfügt, kann er Angriffen aus dem Netzwerk leichter widerstehen; Back-End-Knoten Es gibt keinen direkten Schutz vor Cyberangriffen.
4.3) Komplexität

Das vierschichtige Modell ist im Allgemeinen eine relativ einfache Architektur, leicht zu verwalten und leicht zu lokalisierende Probleme. Die siebenschichtige Modellarchitektur ist komplexer und muss normalerweise die gemischte Verwendung berücksichtigen des Vier-Schichten-Modells, was die Problemlokalisierung komplizierter macht.

4.4) Effizienzverhältnis
Das Vier-Schichten-Modell basiert auf einer niedrigeren Einstellung und ist normalerweise effizienter, sein Anwendungsbereich ist jedoch begrenzt; Vierschichtmodell: Die aktuelle Implementierung basiert eher auf http-Anwendungen.

IV. Beschreibung der technischen Lösung für den Lastausgleich

1) Software-/Hardware-Lastausgleich

Software-Lastausgleichslösung bezieht sich auf die Installation eines oder mehrerer Server auf den entsprechenden Betriebssystemen eines oder mehrerer Server wird zum Erreichen eines Lastausgleichs verwendet, z. B. DNS-Lastausgleich, CheckPoint Firewall-1 ConnectControl, Keepalive + IPVS usw. Seine Vorteile basieren auf einer bestimmten Umgebung, einfacher Konfiguration, flexibler Verwendung und geringen Kosten und können allgemeine Anforderungen an den Lastausgleich erfüllen . Softwarelösungen haben auch viele Nachteile, da die Installation zusätzlicher Software auf jedem Server eine unbegrenzte Menge an Systemressourcen verbraucht. Je leistungsfähiger das Modul ist, desto mehr verbraucht es daher ein Schlüssel zum Erfolg oder Misserfolg des Servers werden; die Skalierbarkeit der Software ist nicht sehr gut und wird durch das Betriebssystem selbst eingeschränkt, was häufig zu Sicherheitsproblemen führt.

Hardware-Lastausgleichslösung besteht darin, ein Lastausgleichsgerät direkt zwischen dem Server und dem externen Netzwerk zu installieren. Bei diesem Gerät handelt es sich normalerweise um eine vom System unabhängige Hardware, einen sogenannten Lastausgleicher. Da spezielle Geräte spezielle Aufgaben erledigen und vom Betriebssystem unabhängig sind, wird die Gesamtleistung erheblich verbessert. In Verbindung mit vielfältigen Lastausgleichsstrategien und intelligentem Verkehrsmanagement können optimale Lastausgleichsanforderungen erreicht werden. Load Balancer gibt es in verschiedenen Formen. Einige Load Balancer sind auch in Switch-Geräte integriert und werden zwischen dem Server und der Internetverbindung platziert. Die Funktionen sind in den integriert PC, einer ist mit dem Internet verbunden und der andere ist mit dem internen Netzwerk der Back-End-Serverfarm verbunden.

Vergleich zwischen Software-Lastausgleich und Hardware-Lastausgleich:

Die Vorteile des Software-Lastausgleichs sind eine klare Nachfrageumgebung, einfache Konfiguration, flexibler Betrieb, niedrige Kosten, geringe Effizienz und können die Anforderungen normaler Unternehmen erfüllen; Die Nachteile bestehen darin, dass die Abhängigkeit vom System den Ressourcenaufwand erhöht; die Qualität der Software bestimmt die Sicherheit des Systems und die Stabilität der Software wirkt sich auf die Sicherheit der gesamten Umgebung aus.

Der Vorteil des Hardware-Lastausgleichs besteht darin, dass er unabhängig vom System ist, die Gesamtleistung erheblich verbessert und Softwaremethoden in Bezug auf Funktionen und Leistung überlegen ist. Mehrere Strategien sind optional und können erreicht werden Der beste Lastausgleichseffekt ist der Nachteil, dass es teuer ist.

2) Lokaler/globaler Lastausgleich

Der Lastausgleich ist in Lokaler Lastausgleich und Globaler Lastausgleich (Globaler Lastausgleich, auch regionaler Lastausgleich genannt) unterteilt, basierend auf der geografischen Struktur seiner Anwendung , Lokal Lastausgleich bezieht sich auf den Lastausgleich lokaler Servergruppen, und globaler Lastausgleich bezieht sich auf den Lastausgleich von Servergruppen, die sich an unterschiedlichen geografischen Standorten befinden und über unterschiedliche Netzwerkstrukturen verfügen.

Lokaler Lastausgleich kann die Probleme von übermäßigem Datenverkehr und überlastetem Netzwerk wirksam lösen, und es besteht keine Notwendigkeit, teure Ausgaben für den Kauf von Servern mit hervorragender Leistung aufzuwenden. Dadurch kann die vorhandene Ausrüstung voll ausgenutzt werden und Einzelpunktausfälle vermieden werden Server verursachen Datenverkehrsverluste. Es verfügt über flexible und vielfältige Ausgleichsstrategien, um den Datenverkehr sinnvoll auf die Server in der Servergruppe zu verteilen und so die Last gemeinsam zu nutzen. Selbst wenn Sie vorhandene Server erweitern und aktualisieren, können Sie der Dienstgruppe einfach einen neuen Server hinzufügen, ohne die bestehende Netzwerkstruktur zu ändern oder bestehende Dienste zu stoppen.

Globaler Lastausgleich wird hauptsächlich für Standorte verwendet, die über eigene Server in einer Multiregion verfügen, um globalen Benutzern den Zugriff auf den ihnen nächstgelegenen Server mit nur einer IP-Adresse oder einem Domänennamen zu ermöglichen und so den schnellsten Zugriff zu erhalten Geschwindigkeit, es ist auch Es kann von großen Unternehmen mit verstreuten Tochtergesellschaften und weit verteilten Standorten genutzt werden, um eine einheitliche und sinnvolle Zuweisung von Ressourcen über das Intranet (Intranet) zu erreichen.

3) Lastausgleich auf Netzwerkebene

Mit dem Ziel, verschiedene Engpässe zu bekämpfen, bei denen das Netzwerk überlastet ist, können ausgehend von verschiedenen Ebenen des Netzwerks entsprechende Lastausgleichstechnologien zur Lösung bestehender Probleme eingesetzt werden.

Da die Bandbreite zunimmt und der Datenverkehr weiter zunimmt, wird es bei der Datenschnittstelle im Kernteil des Netzwerks zu Engpässen kommen. Die ursprüngliche Einzelleitung wird den Bedarf nur schwer decken und Leitungs-Upgrades sind zu teuer oder sogar schwierig zu realisieren Zu diesem Zeitpunkt können Sie die Verwendung der Link-Aggregation-Technologie (Trunking) in Betracht ziehen.

Die Link-Aggregation-Technologie (Lastausgleich der Schicht 2) nutzt mehrere physische Links als einen einzigen aggregierten logischen Link. Der Netzwerkdatenverkehr wird von allen physischen Links im aggregierten logischen Link gemeinsam genutzt, sodass die Kapazität des Links logischerweise erhöht wird kann den steigenden Bedarf an Bandbreite decken.

Moderne Lastausgleichstechnologie arbeitet normalerweise auf der vierten oder siebten Schicht des Netzwerks. Der Layer-4-Lastausgleich ordnet eine gesetzlich registrierte IP-Adresse im Internet den IP-Adressen mehrerer interner Server zu und verwendet dynamisch eine der internen IP-Adressen für jede TCP-Verbindungsanforderung, um einen Lastausgleich zu erreichen. In Layer-4-Switches wird diese Ausgleichstechnologie häufig verwendet. Eine Zieladresse ist ein Verbindungsanforderungsdatenpaket einer Servergruppe, das durch den Switch fließt. Der Switch bestimmt die Quell- und Ziel-IP-Adresse sowie die TCP- oder UDP-Portnummer bestimmte Lastausgleichsstrategie, Zuordnung zwischen Server-IP und VIP und Auswahl des besten Servers in der Servergruppe zur Bearbeitung der Verbindungsanforderung.

Siebenschichtiger Lastausgleich steuert den Inhalt von Diensten auf Anwendungsschicht, bietet eine hochrangige Kontrollmethode für den Zugriffsverkehr und eignet sich für Anwendungen in HTTP-Servergruppen. Die Lastausgleichstechnologie der Schicht 7 überprüft die übergebenen HTTP-Header und führt Lastausgleichsaufgaben basierend auf den Informationen in den Headern durch.

Die Vorteile des siebenschichtigen Lastausgleichs zeigen sich in den folgenden Aspekten:

1) Durch die Überprüfung des HTTP-Headers können Fehlermeldungen der Serien HTTP400, 500 und 600 erkannt werden, sodass die Verbindungsanfrage transparent weitergeleitet werden kann Ein weiterer Server zur Vermeidung von Ausfällen auf der Anwendungsebene.
2) Je nach Art der durchfließenden Daten (z. B. Feststellung, ob es sich bei dem Datenpaket um eine Bilddatei, eine komprimierte Datei oder ein Multimediadateiformat usw. handelt) kann der Datenverkehr zur Verarbeitung an den Server des entsprechenden Inhalts weitergeleitet werden , wodurch die Systemleistung erhöht wird.
3) Je nach Art der Verbindungsanforderung, ob es sich um eine statische Dokumentanforderung wie gewöhnlichen Text oder ein Bild oder um eine dynamische Dokumentanforderung wie ASP, CGI usw. handelt, kann die entsprechende Anforderung an den entsprechenden Server weitergeleitet werden Verarbeitung, Verbesserung der Leistung und Sicherheit des Systems.

Die Mängel des siebenschichtigen Lastausgleichs spiegeln sich in den folgenden Aspekten wider:

1) Der siebenschichtige Lastausgleich wird durch die unterstützten Protokolle (im Allgemeinen nur HTTP) begrenzt, was die Breite seiner Anwendung einschränkt.

2) Die siebenstufige Lastausgleichsprüfung von HTTP-Headern beansprucht eine große Menge an Systemressourcen, was sich zwangsläufig auf die Leistung des Systems auswirkt. Bei einer großen Anzahl von Verbindungsanforderungen kann das Lastausgleichsgerät selbst leicht beeinträchtigt werden zu einem Engpass der gesamten Netzwerkleistung werden.

5. Lastausgleichsstrategie

In tatsächlichen Anwendungen möchten Sie Client-Serviceanfragen möglicherweise nicht einfach gleichmäßig auf interne Server verteilen, unabhängig davon, ob der Server ausgefallen ist. Stattdessen möchten wir, dass der Pentium III-Server mehr Serviceanfragen akzeptiert als der Pentium II. Einem Server, der weniger Serviceanfragen bearbeitet, können mehr Serviceanfragen zugewiesen werden. Ein ausgefallener Server akzeptiert keine Serviceanfragen mehr, bis der Fehler wiederhergestellt ist . Wählen Sie eine geeignete Lastausgleichsstrategie, damit mehrere Geräte Aufgaben gemeinsam erledigen und bestehende Engpässe beseitigen oder vermeiden können, die durch ungleichmäßige Netzwerklastverteilung, Überlastung des Datenverkehrs und lange Reaktionszeiten verursacht werden. In jeder Lastausgleichsmethode gibt es entsprechende Lastausgleichsstrategien für den Lastausgleich auf den Schichten 2, 3, 4 und 7 des OSI-Referenzmodells für unterschiedliche Anwendungsanforderungen.

Die Vor- und Nachteile von Lastausgleichsstrategien und die einfache Implementierung hängen von zwei Schlüsselfaktoren ab: dem Lastausgleichsalgorithmus und der Methode und Fähigkeit, Netzwerksystembedingungen zu erkennen.
Lastausgleichsalgorithmus
1) Round Robin: Jede Anfrage aus dem Netzwerk wird der Reihe nach dem internen Server zugewiesen, von 1 bis N, und beginnt dann von vorne. Dieser Ausgleichsalgorithmus eignet sich für Situationen, in denen alle Server in der Servergruppe die gleiche Hardware- und Softwarekonfiguration haben und die durchschnittlichen Dienstanforderungen relativ ausgeglichen sind.
2) Weighted Round Robin: Entsprechend der unterschiedlichen Verarbeitungsfähigkeit des Servers werden jedem Server unterschiedliche Gewichte zugewiesen, damit er Serviceanfragen mit entsprechenden Gewichten annehmen kann. Beispiel: Die Gewichtung von Server A soll 1 betragen, die Gewichtung von B beträgt 3 und die Gewichtung von C beträgt 6. Dann erhalten die Server A, B und C 10 %, 30 % und 60 % des Dienstes Anfragen bzw. Dieser Ausgleichsalgorithmus sorgt dafür, dass Hochleistungsserver stärker ausgelastet werden und verhindert, dass Server mit geringer Leistung überlastet werden.
3) Zufälliges Gleichgewicht (Random): Anfragen aus dem Netzwerk werden zufällig an mehrere interne Server verteilt.
4) Gewichteter Zufallsausgleich (Weighted Random): Dieser Ausgleichsalgorithmus ähnelt dem gewichteten Round-Robin-Algorithmus, es handelt sich jedoch um einen zufälligen Auswahlprozess bei der Verarbeitung der Anforderungsfreigabe.
5) Reaktionszeitausgleich (Antwortzeit): Das Lastausgleichsgerät sendet eine Erkennungsanforderung (z. B. Ping) an jeden internen Server und entscheidet dann basierend auf der schnellsten Antwortzeit jedes internen Servers, welcher Server verwendet werden soll Erkennungsanfrage. Reagieren Sie auf Kundendienstanfragen. Dieser Ausgleichsalgorithmus kann den aktuellen Betriebsstatus des Servers besser widerspiegeln, aber die schnellste Antwortzeit bezieht sich nur auf die schnellste Antwortzeit zwischen dem Lastausgleichsgerät und dem Server, nicht auf die schnellste Antwortzeit zwischen dem Client und dem Server.
6) Geringste Verbindung : Die Zeit, die jeder Client-Anforderungsdienst auf dem Server bleibt, kann einen großen Unterschied haben. Wenn die Arbeitszeit zunimmt, kann der Verbindungsprozess auf jedem Server variieren, wenn ein einfacher Round-Robin- oder Zufallsausgleichsalgorithmus verwendet wird erheblich, und es wird kein echter Lastausgleich erreicht. Der Algorithmus zum Ausgleich der Mindestanzahl von Verbindungen verfügt über einen Datensatz für jeden Server, der intern geladen werden muss und die Anzahl der Verbindungen aufzeichnet, die derzeit vom Server verarbeitet werden. Wenn eine neue Dienstverbindungsanforderung vorliegt, wird die aktuelle Anforderung zugewiesen Server mit der geringsten Anzahl von Verbindungen sorgt dafür, dass die Balance besser mit der tatsächlichen Situation übereinstimmt und die Last ausgeglichener ist. Dieser Ausgleichsalgorithmus eignet sich für die langfristige Verarbeitung von Anforderungsdiensten wie FTP.
7) Verarbeitungskapazitätsausgleich: Dieser Ausgleichsalgorithmus weist Serviceanfragen dem Server mit der geringsten internen Verarbeitungslast zu (umgerechnet basierend auf Server-CPU-Modell, Anzahl der CPUs, Speichergröße, aktuelle Anzahl von Verbindungen usw.), fällig Zu berücksichtigen Abhängig von der Verarbeitungsleistung des internen Servers und den aktuellen Netzwerkbetriebsbedingungen ist dieser Ausgleichsalgorithmus relativ genauer und eignet sich insbesondere für den Lastausgleich auf Schicht 7 (Anwendungsschicht).
8) DNS-Antwortausgleich (Flash-DNS): Im Internet findet der Client normalerweise die genaue IP-Adresse des Servers durch Domänennamenauflösung, unabhängig davon, ob es sich um HTTP, FTP oder andere Dienstanfragen handelt. Bei diesem Ausgleichsalgorithmus erhalten Lastausgleichsgeräte, die sich an verschiedenen geografischen Standorten befinden, eine Anforderung zur Domänennamenauflösung vom selben Client und lösen den Domänennamen gleichzeitig in die IP-Adresse ihres entsprechenden Servers (d. h. des Lastausgleichsgeräts) auf . Die IP-Adresse des Servers am selben geografischen Standort) und gibt sie an den Client zurück. Der Client fordert weiterhin Dienste mit der ersten empfangenen IP-Adresse zur Domänennamenauflösung an und ignoriert andere IP-Adressantworten. Wenn diese Ausgleichsstrategie für den globalen Lastausgleich geeignet ist, ist sie für den lokalen Lastausgleich bedeutungslos.

Verwandte Empfehlungen: „Linux-Video-Tutorial

Das obige ist der detaillierte Inhalt vonUnter Linux gibt es verschiedene Arten des Lastausgleichs. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage