Technische Übersicht über den Netzwerklastenausgl eich (Network Load Balancing) Einführung - Dienst wird in den Betriebssystemen Windows 2000 Advanced Server und Windows 2000 Datacenter Server bereitgestellt. Durch den Netzwerklastenausgleich wird die Verfügbarkeit und Skalierbarkeit von Internetserverprogrammen verbessert, z. B. solcher Programme, die auf Webservern, FTP-Servern und anderen unternehmenswichtigen Servern verwendet werden. Mit einem einzelnen Computer, auf dem Windows 2000 ausgeführt wird, steht Ihnen ein gewisses Maß an Serverzuverlässigkeit und Skalierbarkeit hinsichtlich der Leistung zur Verfügung. Wenn Sie jedoch die Ressourcen von zwei oder mehr Hostcomputern, auf denen Windows 2000 Advanced Server ausgeführt wird, zu einem Cluster zusammenschließen, erzielen Sie mit Hilfe des Netzwerklastenausgleichs die Zuverlässigkeit und Leistung, die für unternehmenswichtige Server sichergestellt sein sollte. Auf jedem Host wird eine eigene Kopie der gewünschten Serverprogramme ausgeführt, z. B. von Programmen für Web-, FTP, Telnet- oder E-Mail-Server. Für einige Dienste, z. B. für die Dienste, die auf einem Webserver verwendet werden,
wird eine Kopie des Programms auf allen Hosts innerhalb des Clusters ausgeführt. Durch den Netzwerklastenausgleich wird die Arbeitsauslastung auf die einzelnen Hosts des Clusters aufgeteilt. Bei anderen Diensten, z. B. bei E-Mail-Programmen, ist ein einziger Host für die gesamte Arbeitsauslastung zuständig. Für diese Dienste bietet der Netzwerklastenausgleich die Möglichkeit, den Netzwerkverkehr zu einem Host zu lenken. Eine Umleitung des Datenverkehrs zu einem anderen Host erfolgt nur dann, wenn der ursprünglich vorgesehene Host ausfällt. Überblick über die Konfiguration des Netzwerklastenausgleichs wird als Windows 2000- Netzwerktreiber ausgeführt. Seine Operationen sind für den TCP/IP-Stack transparent. Zur Gewährleistung maximaler Netzwerkleistung verwendet der Netzwerklastenausgleich normalerweise einen Netzwerkadapter, um den Datenverkehr von Client zu Cluster zu steuern. Der übrige Netzwerkverkehr zum Server wird über einen separaten Netzwerkadapter geleitet. Ein zweiter Netzwerkadapter ist jedoch nicht erforderlich. Datenbankzugriff durch Serveranwendungen, für die der Lastenausgleich eingesetzt wird Einige Serverprogramme greifen auf eine Datenbank zu, die durch Clientanforderungen aktualisiert wird. Wird für diese Programme der Lastenausgleich innerhalb des Clusters eingesetzt, müssen die Aktualisierungen ordnungsgemäß synchronisiert werden. Jeder Host kann lokale,
unabhängige Kopien einer Datenbank verwenden, die nach Bedarf im Offlinemodus zusammengeführt werden. Alternativ dazu können die Clusterhosts gemeinsam auf einen separaten Netzwerk- Datenbankserver zugreifen. Es ist ebenfalls möglich, eine Kombination dieser beiden Strategien zu verwenden. So könnten z. B. statische Webseiten auf allen Clusterservern repliziert werden, um den schnellen Zugriff und die vollständige Fehlertoleranz sicherzustellen. Datenbankanforderungen würden jedoch zu einem gemeinsamen Datenbankserver weitergeleitet, der Aktualisierungen für mehrere Webserver verarbeitet. Für einige unternehmenswichtige Programme kann die Verwendung von Datenbankmodulen erforderlich sein, die eine hohe Verfügbarkeit aufweisen, um somit die vollständige Fehlertoleranz sicherzustellen. In zunehmendem Maße werden clusterfähige Datenbankprogramme bereitgestellt, um innerhalb eines umfassenden Clusterschemas die hohe Verfügbarkeit und Skalierbarkeit für den Datenbankzugriff zu ermöglichen. Ein Beispiel dafür ist Microsoft SQL Server, das mithilfe des Clusterdienstes in einer Zwei-Knoten-Konfiguration bereitgestellt werden kann. Durch den Clusterdienst wird sichergestellt, dass bei Ausfall eines Knotens der verbleibende Knoten die Aufgaben des ausgefallenen Computers übernimmt. Auf diese Weise können Anforderungen von Microsoft SQL Server-Clients nahezu ohne Unterbrechung bearbeitet werden. Dies ist möglich, da beide Computer ein gemeinsames Datenträger- Subsystem verwenden.
Anmerkungen Es ist wichtig, zwischen den beiden beschriebenen Clusterlösungen zu unterscheiden. Die erste Variante, der Netzwerklastenausgleich, dient in erster Linie zur Verteilung des eingehenden TCP/IP- Datenverkehrs (Transmission Control Protocol/Internet Protocol). Die Computer, die im Rahmen dieser Lösung eingesetzt werden, bilden eine Form eines Clusters. Die zweite Lösung, der Clusterdienst, dient vor allem dazu, einen Computer als Failoverdienst für einen anderen Computer bereitzustellen. Die Computer, die im Rahmen dieser Lösung eingesetzt werden, bilden eine andere Form eines Clusters. Im Netzwerklastenausgleich-Cluster werden in aller Regel Webserverprogramme ausgeführt. Der Clusterdienst wird normalerweise für die Ausführung von Datenbankprogrammen verwendet (wenn er in Kombination mit dem Netzwerklastenausgleich eingesetzt wird). Wenn Sie die beiden Cluster so kombinieren, dass sich ihre Funktionen ergänzen, erhalten Sie ein umfassendes Clusterschema. Funktionsweise des Netzwerklastenausgleichs ermöglicht die hohe Verfügbarkeit und Skalierbarkeit von Webservern, die einen Cluster aus zwei oder mehr zusammenarbeitenden Hostcomputern verwenden. Internetclients verwenden eine einzige IP-Adresse für den Zugriff auf den Cluster (oder eine Gruppe von Adressen, falls es sich um einen mehrfach vernetzten Host handelt). Die Clients können den Cluster nicht von einem einzelnen Server unterscheiden.
Serverprogramme geben nicht an, dass sie in einem Cluster ausgeführt werden. Ein Netzwerklastenausgleich-Cluster unterscheidet sich jedoch erheblich von einem einzelnen Host, auf dem ein einzelnes Serverprogramm ausgeführt wird, da er seine Dienste auch bei Ausfall eines Clusterhosts ohne Unterbrechung bereitstellt. Der Cluster kann zudem schneller auf Clientanforderungen antworten als ein einzelner Host (für Anschlüsse, für die der Lastenausgleich angewendet wird). ermöglicht die hohe Verfügbarkeit, indem er den eingehenden Netzwerkverkehr an aktive Clusterhosts umleitet, wenn ein Host ausgefallen oder offline ist. Bestehende Verbindungen zu einem Offlinehost sind unterbrochen, die Internetdienste sind jedoch weiterhin verfügbar. In den meisten Fällen (z. B. bei Webservern) versucht die Clientsoftware automatisch, die fehlgeschlagene Verbindung wieder aufzunehmen, und es dauert nur wenige Sekunden, bis der Client erneut eine Antwort erhält. ermöglicht die Skalierung der Leistung, da der eingehende Netzwerkverkehr auf eine oder mehrere virtuelle IP-Adressen aufgeteilt wird, die dem Cluster zugewiesen wurden. Die Hosts im Cluster können nun gleichzeitig auf unterschiedliche Clientanforderungen, sogar auf mehrere Anforderungen desselben Clients antworten. So ist es z. B. möglich, dass ein Webbrowser jedes Bild aus einer größeren Anzahl von Bildern auf einer einzigen Webseite von einem jeweils anderen Host innerhalb eines Clusters empfängt. Auf diese Weise wird die Verarbeitung beschleunigt
und die Zeit zur Beantwortung von Clientanforderungen verkürzt. ermöglicht es, dass alle Clusterhosts in einem einzigen Subnetz den Netzwerkverkehr, der für die primäre IP-Adresse des Clusters (und für weitere IP- Adressen für mehrfach vernetzte Hosts) eingeht, gleichzeitig erkennen. Auf jedem Clusterhost fungiert der Netzwerklastenausgleich-Treiber als Filter zwischen dem Treiber des Clusteradapters und dem TCP/IP-Stack, um zu ermöglichen, dass ein Teil des eingehenden Netzwerkverkehrs von dem Host empfangen wird. bedient sich eines vollständig verteilten Algorithmus, um in Abhängigkeit von der IP- Adresse, dem Anschluss und anderen Informationen eine statistische Zuordnung zwischen eingehenden Clients und den Clusterhosts vorzunehmen. Bei der Untersuchung eines eintreffenden Pakets führen alle Hosts diese Zuordnung gleichzeitig durch, um schnell den Host zu bestimmen, der das Paket verarbeiten soll. Diese Zuordnungen werden nur dann verändert, wenn sich die Anzahl der Clusterhosts ändert. Die Paketverwaltung, die der Filteralgorithmus des Netzwerklastenausgleichs leistet, ist um ein Vielfaches effizienter als die von zentralisierten Lastenausgleichsprogrammen, die Pakete verändern und erneut übermitteln müssen. Dies ermöglicht es, dass der Netzwerklastenausgleich eine deutlich höhere aggregierte Bandbreite bereitstellt. Da der Netzwerklastenausgleich direkt auf den Clusterhosts ausgeführt wird, wird er nicht durch eine bestimmte Prozessorgeneration oder Netzwerktechnologie beschränkt.
Verteilung des Clusterverkehrs geht folgendermaßen vor, um den TCP- und UDP-Verkehr (User Datagram Protocol) von Internetclients an ausgewählte Hosts innerhalb eines Clusters zu verteilen: Nachdem der Netzwerklastenausgleich konfiguriert wurde, werden Clientanforderungen, die für die Cluster-IP-Adressen eingehen, von allen Hosts innerhalb des Clusters empfangen. Der Netzwerklastenausgleich filtert die für angegebene TCP- und UDP-Anschlüsse eingehenden Datagramme, bevor diese Datagramme die TCP/IP- Protokollsoftware erreichen. Der Netzwerklastenausgleich verwaltet nur die TCP- und UDP- Protokolle innerhalb von TCP/IP, wobei die betreffenden Aktionen für jeden Anschluss separat gesteuert werden. steuert nur den für angegebene Anschlüsse eingehenden TCPund UDP-Verkehr. ICMP- Protokolle (Internet Control Message Protocol), IGMP- Protokolle (Internet Group Membership Protocol) und ARP- Protokolle (Address Resolution Protocol) oder andere IP- Protokolle werden nicht gefiltert. Dieser Datenverkehr wird unverändert an die TCP/IP- Software auf allen Hosts innerhalb des Clusters weitergegeben. Aufgrund der Zuverlässigkeit von TCP/IP und seiner Fähigkeit zur Handhabung replizierter Datagramme weisen andere Protokolle in der Clusterumgebung eine einwandfreie Funktionsweise auf. Es ist jedoch möglich, dass bestimmte Punkt-zu-Punkt- TCP/IP-Programme (wie z. B. Ping) mehrfache Antworten senden, wenn die Cluster-IP- Adresse verwendet wird. Dies
kann vermieden werden, wenn diese Programme die dedizierte IP-Adresse jedes einzelnen Hosts verwenden. Konvergenz Um ihre Aktionen zu koordinieren, tauschen Netzwerklastenausgleich-Hosts regelmäßig Multicast- oder Broadcastmeldungen innerhalb des Clusters aus. Auf diese Weise können sie den Status des Clusters überwachen. Wenn sich der Status des Clusters ändert (wenn z. B. ein Host ausfällt, aus dem Cluster entfernt oder diesem hinzugefügt wird), startet der Netzwerklastenausgleich einen als Konvergenz bezeichneten Vorgang. Im Verlauf dieses Vorgangs tauschen die Hosts Meldungen aus, um einen neuen, konsistenten Status des Clusters zu bestimmen und um den Host mit der höchsten Hostpriorität als neuen Standardhost auszuwählen. Wenn sich alle Clusterhosts auf einen korrekten neuen Status geeinigt haben, wird der Abschluss der Konvergenz im Ereignisprotokoll von Windows 2000 aufgezeichnet. Während der Konvergenz wird der eingehende Netzwerkverkehr wie gewohnt von den Hosts bearbeitet, jedoch mit der Ausnahme, dass Anforderungen an ausgefallene Hosts nicht beantwortet werden. Clientanforderungen an aktive Hosts sind davon nicht betroffen. Nach Beendigung der Konvergenz wird der Datenverkehr für ausgefallene Hosts erneut an die verbleibenden Hosts verteilt. Der Datenverkehr, auf den der Lastenausgleich angewendet wird, wird so auf die verbleibenden Hosts aufgeteilt, dass der bestmögliche Lastenausgleich für bestimmte
TCP- oder UDP-Anschlüsse erzielt wird. Wenn ein Host zum Cluster hinzugefügt wird, ermöglicht es die Konvergenz, dass dieser Host nun für die Anschlüsse zuständig ist, für die ihm die höchste Priorität zugewiesen wurde, und dass er seinen Teil des umverteilten Datenverkehrs empfängt. Erweiterungen des Clusters wirken sich nicht auf laufende Clusteroperationen aus und werden von Internetclients und Serverprogrammen nicht wahrgenommen. Erweiterungen können sich jedoch auf Clientsitzungen auswirken, die sich über mehrere TCP- Verbindungen erstrecken, wenn die Clientzugehörigkeit aktiviert wurde, da Clients zwischen mehreren Verbindungen möglicherweise unterschiedlichen Clusterhosts zugeordnet werden. geht davon aus, dass ein Host innerhalb des Clusters ordnungsgemäß funktioniert, solange dieser Host am normalen Nachrichtenaustausch zwischen den Clusterhosts teilnimmt. Wenn andere Hosts im Verlauf mehrerer Nachrichtenaustauschperioden keine Antwort von einem bestimmten Mitglied erhalten, lösen sie den Konvergenzprozess aus, um die Last neu zu verteilen, die zuvor von dem nun ausgefallenen Host verarbeitet wurde. Sie können sowohl die Nachrichtenaustauschperiode als auch die Anzahl nicht beantworteter Nachrichten steuern, die vorausgesetzt werden, um den Konvergenzprozess auslösen zu können. Standardmäßig sind die Parameter auf 1.000 Millisekunden (1 Sekunde) bzw. 5 nicht beantwortete Nachrichten pro Austauschperiode festgelegt. Da diese Parameter normalerweise nicht verändert werden, können
sie nicht über das Eigenschaftsdialogfeld des Netzwerklastenausgleichs konfiguriert werden. Bei Bedarf können sie manuell in der Registrierung angepasst werden.