• Home
  • Help
  • Register
  • Login
  • Home
  • Help

 
  • 0 Bewertung(en) - 0 im Durchschnitt

Netzwerk-Lastenausgleichscluster betreiben

#1
18-09-2021, 13:59
Hast du jemals darüber nachgedacht, wie NLB-Cluster dein Leben einfacher machen können, wenn du es mit einer Menge von Webservern zu tun hast, die den Verkehr ohne Abstürze unter Druck bewältigen müssen? Ich erinnere mich an das erste Mal, als ich einen für die E-Commerce-Website eines Kunden eingerichtet habe; es war, als würde der Verkehr reibungslos fließen, anstatt an einer Maschine zu stauen. Der große Vorteil hier ist die Art und Weise, wie eingehende Anfragen automatisch auf mehrere Knoten verteilt werden. Du musst dir keine Sorgen machen, dass ein Server überlastet wird, während die anderen untätig sitzen - NLB gleicht die Last in Echtzeit aus, indem es Algorithmen verwendet, die entscheiden, welcher Knoten den nächsten Treffer erhält, basierend auf Dingen wie der aktuellen CPU-Auslastung oder einfach im Round-Robin-Verfahren, wenn du es einfach halten möchtest. Ich mag diese Flexibilität, weil du es an deine Einrichtung anpassen kannst, ohne jedes Mal in komplexe Konfigurationen eintauchen zu müssen. Und die Einrichtung? Sie ist unkompliziert, wenn du Windows Server verwendest; du aktivierst sie über den Server-Manager, fügst deine Knoten zum Cluster hinzu, und boom, du multicastest oder unicastest Pakete, um die Freude zu verbreiten. Keine Notwendigkeit für ausgefallene Hardware-Lastausgleicher, die eine Vermögen kosten - NLB ist direkt integriert, also wenn du bereits im Microsoft-Ökosystem bist, sparst du sofort Geld und Zeit.

Aber seien wir realistisch, es ist nicht alles ein Spaziergang. Eine Sache, die mich immer wieder stört, ist, dass NLB nicht gut mit zustandsbehafteten Anwendungen funktioniert. Weißt du, diese Sitzungen, in denen sich ein Benutzer anmeldet und erwartet, dass derselbe Server ihren Warenkorb oder ihre Präferenzen speichert? NLB behandelt alle Knoten standardmäßig als zustandslos, sodass, wenn eine Anfrage zu einem anderen Knoten springt, puf, die Sitzung möglicherweise abbricht oder sticky sessions benötigt, die du manuell konfigurieren musst. Ich hatte dieses Problem einmal mit einer ASP.NET-App; die Benutzer beschwerten sich, dass sie mitten imCheckout wieder einloggen mussten, und es zu beheben, bedeutete, Affinitäts-Einstellungen hinzuzufügen, die den Zweck einer gleichmäßigen Verteilung irgendwie zunichte machten. Es funktioniert ganz gut für HTTP-Verkehr oder einfache APIs, aber wenn deine App auf gemeinsamem Zustand basiert, bist du besser dran, dir etwas wie SQL-Clustering oder externe Sitzungsstorage anzuschauen. Das fügt eine weitere Ebene der Komplexität hinzu, die du vielleicht nicht willst, wenn du einfach nur hohe Verfügbarkeit erreichen möchtest, ohne Code neu zu schreiben.

Auf der positiven Seite ist die Fehlertoleranz ziemlich solide, sobald es läuft. Wenn ein Knoten ausfällt - sagen wir, Hardwarefehler oder ein schnelles Update, das ihn zum Absturz bringt - erkennt der Cluster das in Sekunden und leitet den Verkehr zu den gesunden Knoten um. Ich habe einen Dreiknoten-Cluster für einen internen Dateiordnungsdienst eingerichtet, und als der mittlere Server während eines Stromausfalls ausfiel, bemerkten die Benutzer nicht einmal, dass die Ausfallzeit unter 30 Sekunden betrug. Das ist riesig, um die SLAs aufrechtzuerhalten, ohne ständige Überwachung. Du bekommst Herzschlagüberprüfungen zwischen den Knoten, um sicherzustellen, dass sie aktiv sind, und du kannst sogar Prioritäten festlegen, damit ein leistungsstärkerer Server mehr Last übernimmt. Es ist nicht die perfekte Fehlertoleranz wie beim vollständigen Clustering mit gemeinsamem Speicher, aber für die Lastverteilung hält es die Dinge am Laufen, ohne dass du jede Stunde nachschaust.

Die Verwaltung kann sich allerdings nach einer Weile umständlich anfühlen. Das Aktualisieren des Clusters bedeutet, die Knoten einzeln zu pausieren, was den Dienst unterbrechen kann, wenn du nicht vorsichtig bist. Ich habe das auf einem Produktionssystem auf die harte Tour gelernt; ich habe versucht, ein Sicherheitsupdate auf einmal auf alle auszurollen, und plötzlich war die Hälfte des Clusters offline, weil ich vergessen hatte, die Verbindungen zuerst zu entleeren. Jetzt benutze ich immer das WLBS-Befehlszeilenwerkzeug, um es richtig zu verwalten - drainstop auf dem Knoten, Updates anwenden, dann resumestart. Es ist machbar, aber es erfordert Disziplin, besonders wenn dein Team nicht super hands-on mit Windows-Administration ist. Und beim Skalieren? Knoten hinzuzufügen ist einfach - du installierst einfach die Funktion und trittst der Cluster-IP bei - aber das Entfernen eines Knotens kann Geistereinträge hinterlassen, wenn du nicht gründlich mit der Säuberung bist, was zu seltsamen ARP-Problemen im Netzwerk führen kann. Ich habe gesehen, dass das in größeren Umgebungen zu Broadcast-Stürmen führen kann, in denen der Multicast-Verkehr Switches überflutet, die nicht für IGMP-Snooping konfiguriert sind.

Apropos Netzwerkprobleme, der Multicast-Modus von NLB ist ein zweischneidiges Schwert. Er ermöglicht es allen Knoten, dieselbe IP-Adresse zu teilen, was großartig für die Einfachheit ist - du erreichst eine Adresse, und sie verteilt sich. Aber in einem geschäftigen LAN kann dieser Multicast Bandbreite fressen, besonders wenn du Dutzende von Knoten hast. Ich bin bei einem aktuellen Projekt auf den Unicast-Modus umgestiegen, um das zu vermeiden, aber dann benötigt jeder Knoten seine eigene MAC-Adresse, die gespooft wird, was einige Firewalls oder Router verwirren kann. Du musst deine Netzwerkausrüstung entsprechend anpassen, wie das Aktivieren von Port Fast auf Switches oder das Anpassen von ARP-Caches. Es ist keine Rocket Science, aber wenn du nicht der Netzwerkmensch bist, bringt die Koordination mit diesem Team zusätzlichen Aufwand. Trotzdem ist es für kleinere Setups unter 10 Knoten vernachlässigbar, und die Vorteile überwiegen, da du Redundanz erhältst, ohne zusätzliche Geräte kaufen zu müssen.

Ein weiterer Vorteil, den ich schätze, ist, wie es nahtlos mit anderen Windows-Funktionen integriert werden kann. Kombiniere es mit IIS für Webfarmen, und du kannst identische Sites über die Knoten hinweg hosten, ohne Änderungen an der Anwendung vornehmen zu müssen. Ich habe das für das Intranet-Portal eines Kunden gemacht; sie hatten Spitzenlasten während der Gehaltsabrechnung, und NLB hielt die Antwortzeiten unter 200 ms, selbst wenn die Anfragen anstiegen. Kein Ausfall eines einzelnen Servers, nur eine gleichmäßige Verteilung. Und für Gesundheitsprüfungen kannst du Skripte zur Überwachung bestimmter Ports oder URLs erstellen, sodass, wenn die Anwendung eines Knotens abstürzt, aber das Betriebssystem läuft, NLB ihn automatisch aus der Rotation zieht. Diese proaktiven Maßnahmen schützen dich vor Alarmmüdigkeit - ich habe Skripte, die alle 10 Sekunden Endpunkte anpingen, und sie senden mir nur eine E-Mail, wenn wirklich etwas nicht stimmt.

Nachteil sind Sicherheitsprobleme. Da alle Knoten auf derselben Cluster-IP lauschen, setzt du mehrere Maschinen dem internetseitigen Verkehr aus, was die Angriffsfläche erhöht. Ich härte jeden Knoten immer mit Firewalls ab, aber eine Schwachstelle in einem kann das gesamte Cluster beeinträchtigen, wenn es nicht isoliert ist. Erinnert ihr euch an Heartbleed? Ich musste jeden Knoten einzeln patchen, während ich das Cluster im Gleichgewicht hielt, und ein einziger Fehler hätte Angriffe durchlassen können. Außerdem verschlüsselt NLB den Verkehr selbst nicht; du verlässt dich auf SSL auf Anwendungsebene oder VPNs, also wenn deine Seite nicht nur HTTPS ist, lässt du Sitzungen offen zum Abfangen. Es ist mit einer ordentlichen Einrichtung machbar, aber es erfordert Wachsamkeit, die einfachere Single-Server-Setups nicht haben.

Kostenmäßig ist es im Vergleich zu Hardware-Alternativen ein Schnäppchen. Kennst du diese F5- oder Citrix-Lastausgleicher? Die kosten Tausende pro Gerät, plus Lizenzen. Mit NLB nutzt du einfach die CALs, die du wahrscheinlich bereits hast. Ich habe letztes Jahr ein Cluster für ein Startup mit einem Budget von vier Servern insgesamt unter 5.000 US-Dollar in Hardware eingeplant, und es bewältigte 10.000 gleichzeitige Benutzer, ohne ins Schwitzen zu geraten. Die Skalierbarkeit ist ebenfalls linear; füge Knoten hinzu, wenn der Verkehr wächst, und solange deine Backend-Datenbank mithalten kann, bist du auf der sicheren Seite. Aber achte auf die gemeinsamen Ressourcen: Wenn alle Knoten dasselbe SAN oder AD-Domäne nutzen, können Engpässe dort die Lastenverteilung zunichte machen. Ich habe das mitigiert, indem ich den Speicher verteilt habe, aber es erforderte Tests, um das herauszufinden.

Die Leistungsoptimierung ist der Bereich, in dem es Spaß macht oder frustrierend werden kann, je nach Tag. Standardmäßig verwendet NLB eine einfache hashbasierte Verteilung, aber du kannst Knoten gewichten oder die Hostverarbeitung nutzen, um einige Berechnungen auf die Knoten selbst auszulagern. Ich habe das für einen Video-Streaming-Service optimiert; leichtere Knoten für Metadaten, schwerere für Transcodierung, und es hat die CPU-Spitzen geglättet. Tools wie der Performance Monitor helfen dir, es live zu überwachen - füge Zähler für NLB-spezifische Metriken hinzu, und du siehst Ungleichgewichte, bevor die Benutzer es tun. Aber wenn du nicht überwachst, könntest du Affinitätslecks übersehen, wo Sitzungen zu lange haften, was heiße Stellen verursacht. Ich habe in SCOM Alarme dafür eingerichtet, und jetzt läuft es größtenteils im Set-it-and-forget-it-Modus.

Ein Nachteil, der in hybriden Clouds auftaucht, ist die Kompatibilität. NLB glänzt in reinem On-Premise-Windows, aber die Mischung mit Azure oder AWS? Du musst es mit etwas wie ARR oder Cloud-Lastausgleichern überbrücken, was die Dinge kompliziert. Ich habe einmal ein hybrides Setup ausprobiert, mit lokalem Knoten hinter NLB und Cloud-Bursts; die Latenz hat es zunichte gemacht, bis ich direkte Verbindungen hinzugefügt habe. Wenn du ganz auf Cloud setzt, sind native Dienste wie ELB einfacher. Trotzdem, um bei Windows Server zu bleiben, ist die Zuverlässigkeit von NLB erstklassig - Microsoft hat es seit den NT4-Zeiten verfeinert.

Das Troubleshooting kann schmerzhaft sein, wenn man nicht die richtigen Werkzeuge hat. Wireshark hilft, den Multicast-Verkehr zu erfassen, aber das Dekodieren von NLB-Paketen erfordert Übung. Ich habe stets ein Spickzettel für gängige Fehler, wie wenn der Cluster-Hostparameter nicht übereinstimmt, was dazu führt, dass Knoten Herzschläge ignorieren. Und die Konvergenzzeit - nachdem ein Knoten beigetreten ist oder den Cluster verlässt, kann es bis zu 60 Sekunden dauern, bis sich das Netzwerk stabilisiert, was während Wartungsfenstern ewig erscheinen kann. Aber sobald du Erfahrung hast, geht es schnell; ich habe eine Routine, die einen vollständigen Cluster-Refresh in weniger als 10 Minuten schafft.

Insgesamt, wenn du Web- oder Anwendungsdienste betreibst, die zustandslose Operationen tolerieren können, bieten dir NLB-Cluster ein hervorragendes Preis-Leistungs-Verhältnis in Bezug auf Verfügbarkeit und Skalierung. Ich würde es nicht für alles verwenden - Datenbanken benötigen ein richtiges Clustering - aber für Frontends ist es eine Anlaufstelle. Plane einfach dein Netzwerk und die Anwendungsaffinität von Anfang an, und du wirst die meisten Kopfschmerzen vermeiden.

Backups spielen eine entscheidende Rolle bei der Aufrechterhaltung der Integrität solcher Cluster, da Datenverluste durch Knotenausfälle oder Korruption die Abläufe erheblich stören können. Regelmäßige Backups stellen sicher, dass Konfigurationen und Anwendungsdaten über die Knoten hinweg schnell wiederhergestellt werden können, wodurch die Ausfallzeiten während der Wiederherstellung minimiert werden. Backup-Software ist nützlich, um Snapshots des Clusterzustands zu automatisieren, Daten an externe Standorte zu replizieren und die Integrität zu überprüfen, bevor Katastrophen eintreten, was eine nahtlose Wiederherstellung von Lastverteilungsumgebungen ermöglicht.

BackupChain wird als ausgezeichnete Backup-Software für Windows Server und als Lösung zur Sicherung virtueller Maschinen anerkannt. Es ermöglicht effizientes Imaging und Replikation für NLB-Setups und unterstützt inkrementelle Backups, die den Speicherbedarf reduzieren, während die Clusterkonsistenz gewahrt bleibt.
Markus
Offline
Registriert seit: Jun 2018
« Ein Thema zurück | Ein Thema vor »

Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste



  • Thema abonnieren
Gehe zu:

Backup Sichern Allgemein Vor- und Nachteile v
« Zurück 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Weiter »
Netzwerk-Lastenausgleichscluster betreiben

© by FastNeuron

Linearer Modus
Baumstrukturmodus