Hochverfügbarkeitslösungen mit Windows Server 2003 (Clustering)

 

Arten von Cluster-Technologien

 

Microsoft verwendet den Begriff „Cluster“ für drei völlig unterschiedliche Technologien:

 

Es ist nicht möglich, Server- und NLB-Cluster-Technologien auf ein und demselben PC zu verwenden!

 

Cluster-technologie

Netzwerklastenausgleich-Cluster (Network Load Balancing oder NLB)

Servercluster

Komponentenlasten­ausgleich-Cluster (Component Load Balancing oder CLB)

Verfügbar in

Microsoft® Windows® Server 2003, Web Edition; Microsoft® Windows® Server 2003, Standard Edition; Microsoft® Windows® Server 2003, Enterprise Edition und Microsoft® Windows® Server 2003, Datacenter Edition

Windows Server 2003, Enterprise Edition und Windows Server 2003, Datacenter Edition

Microsoft Application Center 2000

Maximale Anzahl von Knoten

32

8

12

Anwendung

Lastenausgleich des Transmission Control Protocol (TCP)- und User Datagram Protocol (UDP)-Datenverkehrs

Failover und Failback von Anwendungen

Einzelner Verwaltungs- und Konfigurationspunkt für Webfarmen

Spezielle Hardware erforderlich?

Nein

Ja

Nein

Übliche Einsatzmöglichkeiten

Webserver, Microsoft Internet Security and Acceleration (ISA) Server, virtuelle private Netzwerke, Windows Media™-Server, Mobile Information Server, Terminaldienste

MS SQL Server, MS Exchange Server, Datei- und Druckserver, Message Queuing

Webfarmen

Statusbehaftet oder statusfrei?

Statusfrei

Statusbehaftet

Statusfrei

 

Netzwerklastenausgleich (Network Load Balancing, NLB)

 

Der Netzwerklastenausgleichsdienst erhöht die Verfügbarkeit und Skalierbarkeit von Internetserveranwendungen für Web-, FTP-, Firewall-, Proxy-, VPN- und andere unternehmenswichtige Server. Ein einzelner Server unter Windows bietet nur eine eingeschränkte Zuverlässigkeit, und die Leistung kann nicht umfassend skaliert werden. Durch den Zusammenschluss der Ressourcen von zwei oder mehr Computern unter einem Betriebssystem der Windows Server 2003-Produktfamilie zu einem Cluster erhalten Sie die Zuverlässigkeit und Leistung, die für Webserver und andere unternehmenswichtige Server benötigt werden.

 

Die folgende Abbildung zeigt zwei miteinander verbundene Netzwerklastenausgleich-Cluster. Der erste Cluster besteht aus zwei Hosts, der zweite Cluster aus vier Hosts:

 

 

Auf jedem Host wird je eine Kopie der benötigten Serveranwendungen ausgeführt (beispielsweise für einen Webserver, FTP-Server und Telnetserver). Der Netzwerklastenausgleich verteilt eingehende Clientanforderungen auf die Hosts im Cluster. Das Lastgewicht, das von den einzelnen Hosts getragen werden soll, kann nach Bedarf konfiguriert werden. Bei erhöhter Arbeitslast können Sie außerdem weitere Hosts dynamisch zum Cluster hinzufügen. Darüber hinaus können Sie den gesamten Datenfluss an einen einzelnen, dedizierten Host weiterleiten lassen (Standardhost).

 

Durch den Netzwerklastenausgleich können alle Computer im Cluster über denselben Satz von Cluster-IP-Adressen angesprochen werden. Gleichzeitig bleiben die eindeutigen dedizierten IP-Adressen der Computer erhalten.

 

Bei Anwendungen, für die ein Lastenausgleich erfolgt, wird die Last automatisch auf die noch funktionierenden Computer verteilt, wenn ein Host ausfällt oder offline geschaltet wird. Bei Anwendungen mit einem einzelnen Server wird der Datenfluss auf einen bestimmten Host umgeleitet. Wenn ein Computer ausfällt oder unerwartet offline geschaltet wird, werden aktive Verbindungen zu dem ausgefallenen oder offline geschalteten Server getrennt. Wenn Sie jedoch einen Host absichtlich herunterfahren, können Sie den Befehl Ausgleich beenden verwenden, um alle aktiven Verbindungen zu bedienen, bevor Sie den Computer offline schalten. In beiden Fällen kann der offline geschaltete Computer dem Cluster später wieder transparent beitreten und einen entsprechenden Anteil an der Arbeitslast übernehmen.


 

Überblick über die Konfiguration des Netzwerklastenausgleichs

Der Netzwerklastenausgleich wird als Windows-Netzwerktreiber ausgeführt. Die Vorgänge sind für den TCP/IP-Netzwerkstapel transparent. Die folgende Abbildung zeigt die Beziehung zwischen dem Netzwerklastenausgleich und anderen Softwarekomponenten in einer typischen Konfiguration auf einem Host für den Netzwerklastenausgleich:

 

 

Funktionsweise des Netzwerklastenausgleichs

Der Netzwerklastenausgleich sorgt für hohe Verfügbarkeit und Skalierbarkeit von Servern. Hierzu wird ein Cluster aus zwei oder mehr zusammenarbeitenden Hostcomputern eingesetzt. Die Internetclients greifen über eine einzelne IP-Adresse oder einen Satz von Adressen auf den Cluster zu. Aus Sicht der Clients unterscheidet sich der Cluster nicht von einem einzelnen Server. Bei den Serveranwendungen ist nicht ersichtlich, dass sie in einem Cluster ausgeführt werden. Es bestehen allerdings erhebliche Unterschiede zwischen einem Cluster für den Netzwerklastenausgleich und einem einzelnen Host, auf dem eine einzige Serveranwendung ausgeführt wird: Der Cluster steht den Clients normalerweise auch dann noch zur Verfügung, wenn ein Clusterhost ausfällt. Darüber hinaus kann der Cluster schneller auf Clientanforderungen reagieren als ein einzelner Host.

 

Wenn ein Host ausfällt oder offline geschaltet wird, leitet der Netzwerklastenausgleich den eingehenden Netzwerkverkehr an betriebsfähige Clusterhosts um. Auf diese Weise wird stets hohe Verfügbarkeit gewährleistet. Die vorhandenen Verbindungen zum offline geschalteten Host gehen verloren; der Internetdienst ist jedoch weiterhin verfügbar. In den meisten Fällen (beispielsweise bei Webservern) versucht die Clientsoftware automatisch, die unterbrochenen Verbindungen wiederherzustellen. Für den Client treten daher nur wenige Sekunden Verzögerung beim Erhalt einer Antwort auf.

 

Zur Skalierung der Leistung verteilt der Netzwerklastenausgleich den eingehenden Netzwerkverkehr auf eine oder mehrere virtuelle IP-Adressen (die Cluster-IP-Adressen), die dem Cluster für den Netzwerklastenausgleich zugewiesen sind. Die Hosts im Cluster können daher gleichzeitig auf verschiedene Clientanforderungen antworten (auch auf mehrere Anforderungen von einem einzelnen Client). Ein Webbrowser kann beispielsweise die verschiedenen Bilder auf einer einzelnen Webseite von unterschiedlichen Hosts in einem Netzwerklastenausgleich-Cluster beziehen. Auf diese Weise wird die Verarbeitung beschleunigt und die Antwortzeit verkürzt.

 

Mithilfe des Netzwerklastenausgleichs können alle Clusterhosts eines Subnetzes den eingehenden Netzwerkverkehr für die Cluster-IP-Adressen gleichzeitig erkennen. Auf jedem Clusterhost fungiert der Treiber für den Netzwerklastenausgleich als Filter zwischen dem Treiber für den Clusteradapter und dem TCP/IP-Stapel, so dass der Netzwerkverkehr auf die Hosts verteilt wird.

 

Der Netzwerklastenausgleich verwendet einen vollständig verteilten Algorithmus, der den Clusterhosts die eingehenden Clientanforderungen anhand der IP-Adresse und des Ports statistisch zuordnet. Für diesen Vorgang muss keine Kommunikation zwischen den Hosts erfolgen. Beim Empfang eines eingehenden Pakets nehmen alle Hosts gleichzeitig diese Zuordnung vor, um so zu ermitteln, welcher Host das Paket zu bearbeiten hat. Die Zuordnung bleibt so lange unverändert, bis die Anzahl der Clusterhosts geändert wird. Der Filteralgorithmus des Netzwerklastenausgleichs ist bei der Paketverarbeitung erheblich effizienter als zentralisierte Anwendungen für den Lastenausgleich, bei denen die Pakete geändert und erneut übertragen werden müssen.

 

Verteilung des Datenflusses im Cluster

Mit dem Netzwerklastenausgleich steuern Sie die Verteilung des TCP- und UDP-Verkehrs von den Internetclients zu ausgewählten Hosts in einem Cluster. Nach erfolgter Konfiguration des Netzwerklastenausgleichs werden eingehende Clientanforderungen an die Cluster-IP-Adressen von allen Hosts im Cluster empfangen. Der Netzwerklastenausgleich filtert die eingehenden Datagramme mit den angegebenen TCP- und UDP-Ports und leitet sie erst dann an das TCP/IP-Protokoll weiter. Der Netzwerklastenausgleich verwaltet das TCP- und das UDP-Protokoll von TCP/IP. Die Vorgänge werden hierbei für jeden Port einzeln gesteuert.

 

Im Multicastmodus kann der Netzwerklastenausgleich bei aktivierter IGMP-Unterstützung (Internet Group Management-Protokoll) eine Überflutung von Switchports vermeiden. Der Netzwerklastenausgleich steuert lediglich den TCP- und den UDP-Verkehr für die angegebenen Ports sowie IGMP-Verkehr im Multicastmodus; anderer IP-Verkehr wird nicht verarbeitet. Andere IP-Protokolle (z. B. ICMP oder ARP) werden nicht gefiltert (abgesehen von den nachstehend beschriebenen Ausnahmen). Beachten Sie, dass Sie bei bestimmten Point-to-Point-TCP/IP-Anwendungen (z. B. ping) mit doppelten Antworten rechnen müssen, wenn Sie die IP-Adresse des Clusters verwenden. Um dieses Verhalten zu vermeiden, können Sie die betreffenden Anwendungen bei Bedarf die dedizierte IP-Adresse der einzelnen Hosts verwenden lassen.

 

Zusammenführung

Zur Koordinierung ihrer Vorgänge tauschen die Netzwerklastenausgleich-Hosts in regelmäßigen Abständen Takte im Cluster aus. Durch IP-Multicasting können die Hosts den Status des Clusters überwachen. Wird der Clusterstatus geändert (beispielsweise durch Ausfall eines Hosts, Entfernen eines Hosts aus dem Cluster oder Beitritt eines Hosts zum Cluster), leitet der Netzwerklastenausgleich die so genannte Zusammenführung ein. Bei diesem Vorgang tauschen die Hosts eine begrenzte Anzahl von Meldungen aus, um einen neuen, konsistenten Clusterstatus zu erzielen und den Host mit der höchsten Hostpriorität als neuen Standardhost festzulegen. Wenn alle Clusterhosts eine Einigung über den richtigen neuen Status des Clusters erzielt haben, wird die Beendigung der Zusammenführung im Windows-Ereignisprotokoll festgehalten. Dieser Vorgang dauert normalerweise weniger als 10 Sekunden.

 

Während der Zusammenführung verarbeiten die übrigen Hosts weiterhin den eingehenden Netzwerkverkehr. Die Clientanforderungen an betriebsfähige Hosts sind nicht betroffen. Nach Abschluss der Zusammenführung wird der Verkehr, der an den ausgefallenen Host gerichtet ist, auf die verbleibenden Hosts verteilt. Beim Lastenausgleich wird der Verkehr unter den verbleibenden Hosts neu partitioniert, um den bestmöglichen Lastenausgleich für bestimmte TCP- oder UDP-Anschlüsse erzielen zu können.

 

Ein Host, der zum Cluster hinzugefügt wird, kann nach erfolgter Zusammenführung einen entsprechenden Anteil am Datenfluss mit Lastenausgleich übernehmen. Eine Erweiterung des Clusters wirkt sich nicht auf die laufenden Clustervorgänge aus. Die Erweiterung erfolgt sowohl für die Internetclients als auch für die Serveranwendungen transparent. Unter Umständen wirkt sich dieser Vorgang jedoch auf Clientsitzungen aus, die sich über mehrere TCP-Verbindungen erstrecken, wenn die Clientaffinität angegeben wurde; in diesem Fall werden die Clients zwischen den Verbindungen möglicherweise anderen Clusterhosts zugeordnet.

 

Beim Netzwerklastenausgleich gilt ein Host im Cluster als uneingeschränkt betriebsfähig, solange der Host Takte mit anderen Clusterhosts austauscht. Erhalten die anderen Hosts über mehrere ausgetauschte Takte hinweg keine Antwort von einem Clustermitglied, wird automatisch die Zusammenführung eingeleitet, um die Arbeitslast des ausgefallenen Hosts neu zu verteilen.

 

Sie können sowohl den Zeitraum für den Nachrichtenaustausch als auch die Anzahl der fehlenden Nachrichten angeben, die zur Auslösung der Zusammenführung erforderlich sein sollen. Die Standardeinstellungen betragen 1.000 Millisekunden (1 Sekunde) bzw. fünf fehlende Nachrichten. In der Regel müssen Sie diese Parameter nicht ändern; sie können daher nicht im Dialogfeld Netzwerklastenausgleich-Eigenschaften konfiguriert werden. Es ist jedoch möglich, die Parameter nach Bedarf manuell in der Registrierung zu ändern.

 


 

Wichtige Funktionen beim Netzwerklastenausgleich

Skalierbarkeit:

 

 

 

 

 

Anmerkung: Beim Empfang von Paketen überlappt die Pipeline-Verarbeitung des Netzwerklastenausgleichs die Lieferung von eingehenden Paketen an TCP/IP sowie den Empfang weiterer Pakete durch den NDIS-Treiber. Auf diese Weise wird die Verarbeitungsgeschwindigkeit insgesamt erhöht und die Wartezeit verringert: Das erste Paket wird mit TCP/IP verarbeitet, während der NDIS-Treiber das nachfolgende Paket empfängt. Darüber hinaus wird der Aufwand für die Koordinierung der Vorgänge von TCP/IP und NDIS-Treiber vermindert. Häufig entfällt außerdem die zusätzliche Kopie der Paketdaten im Speicher. Beim Senden von Paketen kann der Netzwerklastenausgleich den Durchsatz steigern, die Wartezeit verkürzen und den Aufwand vermindern. Hierzu wird die Anzahl der Pakete erhöht, die TCP/IP pro NDIS-Anruf senden kann. Zur Erzielung dieser Leistungssteigerungen wird ein Pool von Paketpuffern und Deskriptoren zugewiesen und verwaltet; mit diesem Pool werden die Aktionen von TCP/IP und NDIS-Treiber überlappt.

 

Hohe Verfügbarkeit

 

 

 

 

Verwaltung

 

 

 

 

 

 

 


 

Benutzerfreundlichkeit:

 

·        Der Netzwerklastenausgleich wird als Standard-Netzwerktreiber­komponente für Windows installiert.

 

·        Für die Aktivierung und Ausführung des Netzwerklasten­ausgleichs sind keine Hardwareänderungen erforderlich.

 

 

 

 

 

 

 

 

 

Praxis

1.      Öffnen Sie den Netzwerklastenausgleich-Manager.

 

 

2.      Klicken Sie mit der rechten Maustaste auf Netzwerklastenausgleich-Cluster, und klicken Sie dann auf Neuer Cluster.

 

 

Geben Sie die IP-Adresse des Clusters sowie weitere Informationen zum Cluster ein, und klicken Sie dann auf Weiter.

 

3. Fügen Sie gegebenenfalls weitere virtuelle IP-Adressen hinzu, die von diesem Cluster verwendet werden, indem Sie auf Hinzufügen klicken, die virtuelle IP-Adresse und Informationen zur Subnetzmaske eingeben und dann auf OK klicken. Wiederholen Sie diesen Vorgang für jede weitere virtuelle IP-Adresse, und klicken Sie dann auf Weiter.

 


 

3.      Fügen Sie bei Bedarf entsprechende Portregeln hinzu, und klicken Sie dann auf Weiter.

 

 

 

Um eine optimale Steuerung verschiedener TCP/IP-Verkehrstypen zu erreichen, können Sie mithilfe von Portregeln festlegen, auf welche Weise der Clusternetzwerkverkehr für die einzelnen Ports verarbeitet werden soll. Das Verfahren zur Verarbeitung des Netzwerkverkehrs für einen Port wird als Filterungsmodus bezeichnet. Die folgenden Filterungsmodi stehen zur Auswahl: Mehrfachhost, Einzelhost und Deaktiviert.

 

 

Wenn Sie den Filterungsmodus „Mehrfachhost“ gewhält haben, können Sie die „Affinität“ konfigurieren, das bedeutet, eine von drei Optionen für die Clientzugehörigkeit auswählen: Keine, Einfach oder Klasse C. Mit Einfach und Klasse C stellen Sie sicher, dass der gesamte Netzwerkverkehr von einem bestimmten Client stets an denselben Clusterhost weitergeleitet wird. Damit der Netzwerklastenausgleich IP-Fragmente ordnungsgemäß verarbeiten kann, sollten Sie bei der Auswahl der Protokolleinstellung UDP bzw. Beide nicht die Option Keine verwenden.

 

 

 

Darüber hinaus können Sie festlegen, dass der Filterungsmodus für einen bestimmten numerischen Portbereich gelten soll. Hierzu definieren Sie eine Portregel mit den entsprechenden Konfigurationsparametern für den Filterungsmodus. Die Portregeln umfassen die folgenden Konfigurationsparameter:

 

 

Wichtig:

 

 

 

4. Geben Sie den Namen eines Hosts ein, der Mitglied des Clusters ist, und klicken Sie auf Verbinden. Nachdem Sie auf Verbinden geklickt haben, werden die auf dem angegebenen Host verfügbaren Netzwerkadapter im unteren Bereich des Dialogfeldes aufgelistet. Klicken Sie auf den Netzwerkadapter, den Sie für den Netzwerklastenausgleich verwenden möchten, und klicken Sie dann auf Weiter. Die auf diesem Netzwerkadapter konfigurierte IP-Adresse wird als dedizierte IP-Adresse für diesen Host verwendet.

 

Wichtig: Wenn Sie auf einem Computer mit einem einzelnen Netzwerkadapter arbeiten, der mit dem Netzwerklastenausgleich im Unicastmodus verbunden ist, können Sie den Netzwerklastenausgleich-Manager auf diesem Computer nicht zum Konfigurieren und Verwalten anderer Hosts verwenden, da auf einem einzelnen Netzwerkadapter im Unicastmodus keine Kommunikation zwischen Hosts erfolgen kann. Allerdings können Sie mit Computern außerhalb des Clusters kommunizieren.

 

 


 

5. Konfigurieren Sie die übrigen Hostparameter, und klicken Sie anschließend auf Fertig stellen.

 

 

 

 

6. Fügen Sie gegebenenfalls weitere Hosts hinzu.

 

 

Bei den Eigenschaften der Einzelhosts lässt sich das „Lastgewicht“ eintragen, wenn der Lastenausgleich nicht für alle Knoten gleich konfiguriert werden soll.

 

Wichtig: Um sicherzustellen, dass der Netzwerklastenausgleich-Manager aktuelle Hostinformationen anzeigt, klicken Sie mit der rechten Maustaste auf den Cluster und klicken dann auf Aktualisieren. Dieser Schritt ist erforderlich, da die vom Netzwerklastenausgleich-Manager angezeigten Hosteigenschaften eine Kopie der Hosteigenschaften sind, die bei der letzten Verbindung des Netzwerklastenausgleich-Manager mit diesem Host konfiguriert waren. Wenn Sie auf Aktualisieren klicken, stellt der Netzwerklastenausgleich-Manager eine neue Verbindung mit dem Cluster her und zeigt die aktualisierten Informationen an.

 

Hinweise:

 

 

 

 

 

 

 

o       Der Router muss eine dynamische ARP-Antwort (Address Resolution Protocol) akzeptieren können, die der Unicast-IP-Adresse ihre Unicast-MAC-Adresse (Media Access Control) zuordnet.

 

o       Im Multicastmodus muss der Router eine ARP-Antwort akzeptieren, die eine MAC-Adresse in den Nutzdaten der ARP-Struktur enthält. Wenn der Router diese Anforderungen nicht erfüllt, können Sie einen statischen ARP-Eintrag im Router anlegen. Bei bestimmten Routern ist ein statischer ARP-Eintrag erforderlich; diese Router bieten keine Unterstützung für die Auflösung von Unicast-IP-Adressen in Multicast-MAC-Adressen.

 

 

 

 

Anhalten, Starten, Pausieren und Fortsetzen des NLB-Treibers:

 

nlb.exe /stop

nlb.exe /start

nlb.exe /suspend

nlb.exe /resume


 

Windows Clustering

Unter einem Cluster versteht man einen Rechnerverbund, der nach außen hin als Einheit auftritt.

 

Voraussetzung:

 

Betriebssystem

Anzahl der Knoten

Windows 2000 Advanced Server

2

Windows 2000 Datacenter Server

4

Windows Server 2003, Enterprise Edition oder Windows Server 2003, Datacenter Edition

8

 

 


 

Clustermodelle:

 

Man unterscheidet drei Clustermodelle:

 

 

Cluster-Konfigurationen:

 

 

Netzwerkkonfiguration:

 

Vorausgesetzt werden pro Knoten zwei Netzwerkkarten:

 


Datenträgerkonfiguration; Quorum Device:

 

Zentrale Voraussetzung ist ein SCSI-Datenträger für das „Quorum Device“, auf das Log-Files und gemeinsame Daten des Clusters geschrieben werden. Optimalerweise ist das Quorum Device mit Fiber Channel an alle Knoten angebunden.

 

In der Minimalvariante reicht aber, wenn im Node A-PC eine SCSI-Festplatte eingebaut wird, NTFS-formatiert wird und mit dem Laufwerksbuchstaben Q: konfiguriert wird.

 

Was wird auf dem Quorum Device gespeichert?

 

 


Zusätzlich können für Cluster-Daten beliebig viele weitere Festplatten installiert werden.

 


 

Erstellen eines Clusters:

 

Grundsätzlich gibt es für die Erstellung und Verwaltung eines Clusters zwei Tools:

 

 

Im folgenden wird die Erstellung mit dem grafischen Tool gezeigt.

 

Konzept: Zuerst wird der erste Knoten erzeugt, dann werden weitere Knoten hinzugefügt.

 

a) Erster Knoten:

 

 

 

 

 

 

 

 

 


Bei der Angabe des Clusterdienstkontos wird empfohlen, ein eigenes Bentutzerkonto zu erstellen, das Mitglied der lokalen Administratorgruppen aller Knotenrechner sein muss.

 

 

 

 

 

 

 

 

Weitere Knoten:

 

 

 

 

 

 

 


Der Clusterdienst heißt auch CLUSVC und kann im Dienste-Snap-In gestoppt und gestartet werden:

 


 

Verwaltung eines Clusters:

 

 

 

 

 

 


 

Hinzufügen einer Ressource:

 

1. Freigegebener Ordner:

 

 

 

 

 

 

Mit \\cluster2\daten kann nun eine Verbindung mit der Ressource hergestellt werden.


Failover / Failback-Konfiguration:

 

Standardmäßig übernimmt der zweite Knoten (Node B) bei Ausfall des ersten Knotens eine Gruppe von Ressourcen (Failover), bei Wiederinbetriebnahme von Node A kommt es zu einem Rücktransfer (Failback) der Gruppe.

 

Problembehandlung, wenn eine Ressource nicht erfolgreich auf einen anderen Knoten verschoben werden kann:

 

Alle Besitzer aus der Liste „Mögliche Besitzer“ entfernen, auf denen die Ressource nicht mehr zum Laufen gebracht werden soll:

 


 

2. Andere Ressourcen:

Es können auch andere Ressourcen als Cluster-Ressourcen konfiguriert werden:

 

 


Beispiel: Konfiguration von Winzip als Cluster-Ressource

 

 

 

 

 

 

 

 

 


 

„Löschen“ eines Clusters:

 

Ein Cluster kann selbst nicht gelöscht werden; es müssen die Knoten einzeln entfernt werden; mit dem Entfernen des letzten Knotes ist auch der Cluster verschwunden.

 

Problembehebung:

1. Diagnose:

 

Clusdiag.exe ist ein Diagnoseprogramm, das im Windows 2003 Ressource Kit enthalten ist.

 

2. Quorum Device-Problem:

 

Starten Sie den Cluster-Dienst clussvc mit der Option /debug /fixquorum:

clussvc /debug /fixquorum

 

Damit kann der erste Knoten auch gestartet werden, wenn das Quorum-Device nicht initialisiert werden kann.