Clustering Vortrag für die.NET Users Group KA am 14.04.2005 Stefan Falk [email protected].

28
Clustering Vortrag für die .NET Users Group KA am 14.04.2005 Stefan Falk [email protected]

Transcript of Clustering Vortrag für die.NET Users Group KA am 14.04.2005 Stefan Falk [email protected].

Page 1: Clustering Vortrag für die.NET Users Group KA am 14.04.2005 Stefan Falk sfalk@ct-systeme.com.

Clustering

Vortrag für die .NET Users Group KA am 14.04.2005

Stefan [email protected]

Page 2: Clustering Vortrag für die.NET Users Group KA am 14.04.2005 Stefan Falk sfalk@ct-systeme.com.

Wozu Cluster?

Redundanz Ausfallzeiten verringern!

Lastverteilung Mehr User abdecken, als es eine

einzelne Maschine könnte Aber mit einheitlicher Konfiguration

Page 3: Clustering Vortrag für die.NET Users Group KA am 14.04.2005 Stefan Falk sfalk@ct-systeme.com.

Zwei Clustertechnologien

Server Cluster Vorranging für statusbehaftete Dienste

File und Print SQL Server Exchange Server

Network Load Balancing Cluster Vorrangig für nicht statusbehaftete

Dienste Web Server

Page 4: Clustering Vortrag für die.NET Users Group KA am 14.04.2005 Stefan Falk sfalk@ct-systeme.com.

Server Cluster

Zuerst verfügbar in Windows NT Server 4.0 Enterprise Edition Damals Codename „Wulfpack“

Prinzip: Mehrere Server greifen auf gemeinsame Festplatten zu

Bei Ausfall eines Rechners übernimmt der andere die Dienste

Page 5: Clustering Vortrag für die.NET Users Group KA am 14.04.2005 Stefan Falk sfalk@ct-systeme.com.

Aufbau eines Serverclusters

Boot

Boot

priv

at

öffentlich

öffentlich

Daten

Page 6: Clustering Vortrag für die.NET Users Group KA am 14.04.2005 Stefan Falk sfalk@ct-systeme.com.

Benötigte Hardware

Mindestens 2 NICs pro Knoten 1 private

Nur Verbindung untereinander Nur 2 Knoten: Cross-Over-Kabel reicht Eigenes IP-Subnetz Austausch von Heartbeats

„Mir geht‘s noch gut“ Kommunikation untereinander

Abstimmung der Konfiguration 1 öffentliche

Eigene IP-Adresse pro NIC Virtuelle Adresse(n) für den Cluster

Page 7: Clustering Vortrag für die.NET Users Group KA am 14.04.2005 Stefan Falk sfalk@ct-systeme.com.

Benötigte Hardware

Eigene Bootplatten pro Knoten Betriebssystem Installierte Anwendungen

EXE usw. sollen auf diese Platten, nicht auf die gemeinsam genutzten

Fehlertoleranz mit Standardmitteln RAID 1 ist hier völlig OK

Page 8: Clustering Vortrag für die.NET Users Group KA am 14.04.2005 Stefan Falk sfalk@ct-systeme.com.

Benötigte Hardware

Clusterfähige SCSI-Controller Cluster Mode muss üblicherweise eigens

eingeschaltet werden Cluster-Storage-Einheit

Enthält Clustercontroller und Platten Wird via SCSI-Kabel mit allen (!) Cluster-SCSI-

Controllern der Knoten verbunden Nur Cluster-zertifizierte Hardware

Nicht ganz billig…

Page 9: Clustering Vortrag für die.NET Users Group KA am 14.04.2005 Stefan Falk sfalk@ct-systeme.com.

Benötigte Software

Clusterfähige Betriebssysteme Windows Server 2003 Enterprise

Edition Windows 2000 Advanced Server Windows NT Server 4.0 Enterprise

Edition ;-)

Page 10: Clustering Vortrag für die.NET Users Group KA am 14.04.2005 Stefan Falk sfalk@ct-systeme.com.

Benötigte Software

Clusterfähige Anwendungen File & Print out of the Box SQL Server, Exchange Server: Enterprise

Edition Normale Dienste können mit Einschränkungen

vom Cluster verwaltet werden Wenn man unbedingt will, auch IIS (ab 2000),

Terminal Services (ab 2003), WINS, DHCP, … Hierfür gibt es aber geeignetere Mittel

Page 11: Clustering Vortrag für die.NET Users Group KA am 14.04.2005 Stefan Falk sfalk@ct-systeme.com.

Konfiguration

Betriebssysteme installieren Mit Treibern für die Clusterhardware

Netzwerke konfigurieren KB258750: Recommended private

"Heartbeat" configuration on a cluster server

Gemeinsame Platten formatieren

Page 12: Clustering Vortrag für die.NET Users Group KA am 14.04.2005 Stefan Falk sfalk@ct-systeme.com.

Das Quorum-Laufwerk

Eine Partition ≥ 512 MB auf einer gemeinsam genutzten Platte Speichert die Clusterkonfiguration Empfohlen: RAID 1 Partition nicht größer als 1 GB machen

Kein Sinn, Performancenachteile Eigene Platten!

Auch wenn sie dann nicht ausgenutzt werden! Sonst Konfigurationsschwierigkeiten und kein

Support von Microsoft

Page 13: Clustering Vortrag für die.NET Users Group KA am 14.04.2005 Stefan Falk sfalk@ct-systeme.com.

Die eigentliche Clusterkonfiguration

Beispiel: Fileserver Cluster auf erstem Knoten „erstellen“

Windows 2000: Clusterdienst installieren Windows 2003: Clusterverwaltung

Zweiten Knoten „beitreten“ lassen Evtl. Beitritt weiterer Knoten

Bis zu 8 bei Windows 2003 Enterprise Edition

Page 14: Clustering Vortrag für die.NET Users Group KA am 14.04.2005 Stefan Falk sfalk@ct-systeme.com.

Die eigentliche Clusterkonfiguration

Cluster-IP-Adresse Cluster-Netzwerkname

Abhängig von IP-Adresse Physikalische Plattenressource

Auf den gemeinsamen Platten Freigaben

Abhängig von Netzwerkname und Plattenressource

Page 15: Clustering Vortrag für die.NET Users Group KA am 14.04.2005 Stefan Falk sfalk@ct-systeme.com.

Die Clusterverwaltung

Page 16: Clustering Vortrag für die.NET Users Group KA am 14.04.2005 Stefan Falk sfalk@ct-systeme.com.

Eine Cluster-Ressource

Page 17: Clustering Vortrag für die.NET Users Group KA am 14.04.2005 Stefan Falk sfalk@ct-systeme.com.

SQL Server, Exchange Server

Page 18: Clustering Vortrag für die.NET Users Group KA am 14.04.2005 Stefan Falk sfalk@ct-systeme.com.

Der normale Stand

Ein Server führt die Platten… clusdisk.sys verhindert andere Zugriffe

und „den Dienst“ (z. B. SQL Server)…

und die Cluster-IP-Adresse dafür… und den Cluster-Netzwerknamen

dafür Workstations reden damit mit

diesem „aktiven“ Knoten

Page 19: Clustering Vortrag für die.NET Users Group KA am 14.04.2005 Stefan Falk sfalk@ct-systeme.com.

Was passiert beim Knotenausfall?

Der andere Server merkt das Heartbeat bleibt aus

Er übernimmt die Ressourcen Platten, IP-Adresse, Netzwerkname

und startet „den Dienst.“ Clients reden (evtl. nach Reconnect) mit

dem anderen Knoten Aber mit demselben Computernamen und

derselben IP-Adresse! Failover dauert meistens < 1 min oder nur

wenige Sekunden

Page 20: Clustering Vortrag für die.NET Users Group KA am 14.04.2005 Stefan Falk sfalk@ct-systeme.com.

Und so sieht so was aus

Page 21: Clustering Vortrag für die.NET Users Group KA am 14.04.2005 Stefan Falk sfalk@ct-systeme.com.

Network Load Balancing

Ausfallschutz und Lastverteilung auf TCP-Verbindungs-Ebene

Keine besondere Hardware notwendig

Gut geeignet für Webserverfarmen Alle Knoten werden genutzt Status muss auf anderen Rechnern

geführt werden Evtl. Servercluster

Page 22: Clustering Vortrag für die.NET Users Group KA am 14.04.2005 Stefan Falk sfalk@ct-systeme.com.

Benötigte Hardware

Eine, besser zwei NICs je Knoten Eine Front End (NLB) Eine Back End (Verbindung zu anderen

Servern) Ggf. Hubs (!), spezielle Switches, Router

Das ist oft sehr knifflig! Ungünstige Konfiguration: Netzwerk tot wegen

Switch Flooding, Broadcasts Theoretisches Limit: 32 Knoten

Page 23: Clustering Vortrag für die.NET Users Group KA am 14.04.2005 Stefan Falk sfalk@ct-systeme.com.

Benötigte Software

Windows Server 2003 Alle Versionen unterstützen NLB! Konfiguration am einfachsten

Windows 2000 Server Enterprise Edition

Evtl. Windows NT Server 4.0 mit Add-On Das hieß mal „WLBS“ – Windows Load

Balancing Services

Page 24: Clustering Vortrag für die.NET Users Group KA am 14.04.2005 Stefan Falk sfalk@ct-systeme.com.

Netzwerkaufbau

NLB-Server

NLB-Server

öffentlichStatus-ServerHub

bis zu 32

Page 25: Clustering Vortrag für die.NET Users Group KA am 14.04.2005 Stefan Falk sfalk@ct-systeme.com.

Wie funktioniert‘s?

Jede NIC hat ihre eigene IP Zusätzlich eine Cluster-IP Eingehende TCP-Verbindung eines Clients

kommt bei der Cluster-IP an Bei allen Knoten wegen gefälschten MACs!

Algorhytmus wählt aus, welcher Knoten die Verbindung übernimmt Jeder Knoten kommt zum selben Ergebnis

Page 26: Clustering Vortrag für die.NET Users Group KA am 14.04.2005 Stefan Falk sfalk@ct-systeme.com.

Verhalten bei Ausfall

Die Verbindungen mit dem ausgefallenen Server sind verloren

Andere Verbindungen bleiben erhalten

Heartbeats kommen nicht mehr Knoten stimmen sich neu ab Neue Verbindungen werden neu

verteilt Abgleich normalerweise in < 10 s

Page 27: Clustering Vortrag für die.NET Users Group KA am 14.04.2005 Stefan Falk sfalk@ct-systeme.com.

Spezialfall: Terminaldienste

Problem: Bei Trennung einer Sitzung evtl. Reconnect auf einen anderen Server Führt zu verwaisten, aber noch

laufenden Sitzungen Lösung in Windows Server 2003:

Session Directory-Dienst Führt Liste offener Sitzugen Terminaldienste senden ggf. Redirect

zum RDP-Client

Page 28: Clustering Vortrag für die.NET Users Group KA am 14.04.2005 Stefan Falk sfalk@ct-systeme.com.

Anwendungsbeispiel

2.500 User, davon knapp die Hälfte aktiv 2 DCs

Incl. DNS, WINS, … 3 Servercluster

File/Print, SQL, Exchange 30 Terminalserver

Migration von W2K + MetaFrame auf W2K3 alleine (Kosten!)

3 NLB-Farmen à 10 Server geplant Hat irgendwie noch keiner gemacht… nicht mal

bei Microsoft selbst…