Architektur Moderner Internet Applikationen 22.-24.4.2004 TU Wien/Ausseninstitut Redundanz und Ausfallsicherheit DI Christian Donner [email protected] 06.02.2003 21:33 Architektur Moderner Internet Applikationen – Sonderthema 4 Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. 0 Inhalt Analyse des Risikos Glossar Etwas Mathematik muss sein Server-Hardware Plattenspeicher Netzwerk 06.02.2003 21:33 Architektur Moderner Internet Applikationen – Sonderthema 4 Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. 1 Web Sites sind vielen Risiken ausgesetzt Hardwareausfall CPU Festplatte Netzwerkinfrastruktur Softwareausfall Stromnetzausfall Datenverlust (als Folgeerscheinung obiger Ursachen) Zugriff und Manipulation durch Unbefugte (Hacker) Performanceeinbruch durch Resourcen- und Bandbreite fressende Anwendungen 06.02.2003 21:33 Architektur Moderner Internet Applikationen – Sonderthema 4 Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. 2 Hochverfügbare Web Sites ... ... vermindern das Risiko eines Totalausfalls durch Redundante und ausfallsichere Serverkonfiguration Redundante und ausfallsicher Netzwerkkonfiguration Ausfallsichere Plattenspeicher, Disk Arrays (RAID = Redundant Array of Inexpensive Disks) Einsatz einer Ununterbrechbaren Spannungsversorgung (UPS) und verwenden von Load Balancern zur Verteilung der Last und Verbessung der Skalierbarkeit 06.02.2003 21:33 Architektur Moderner Internet Applikationen – Sonderthema 4 Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. 3 Glossar Hochverfügbar: Die Fähigkeit eines Web Sites, Hardware und Softwareausfällen auf einzelnen Servern zu widerstehen. Diese Ausfälle können geplant oder ungeplant sein. Cluster: eine Gruppe von Servern, die nach außen hin als ein einzelner Server angesprochen werden. Cluster werden zur Lastverteilung und Erhöhung der Ausfallssicherheit eingesetzt. Failover: Wenn ein Server ausfällt, übernehmen die anderen Server im Cluster seine Last. Load Balancing: Die Fähigkeit eines Netzwerkes, Anfragen an ein und die selbe Adresse an mehrere Server zu verteilen. 06.02.2003 21:33 Architektur Moderner Internet Applikationen – Sonderthema 4 Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. 4 Die Theorie eines Ausfalls Zu Beginn des Lebenszyklus von Hardwarekomponenten ist die Ausfallsrate hoch (Burn-In) Nach dem Burn-In sinkt die Ausfallsrate bis zum Ende des Lebenszyklus, wenn durch Materialermüdung und andere Faktoren die Ausfallsrate wieder ansteigt Äußere Faktoren wie Blitzschlag, Erdbeben, Hochwasser ... Menschliches Versagen usw 06.02.2003 21:33 Architektur Moderner Internet Applikationen – Sonderthema 4 Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. 5 Die Badewannenkurve Statistische Ausfallsraten für mechanische und elektronische Komponenten 06.02.2003 21:33 Architektur Moderner Internet Applikationen – Sonderthema 4 Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. 6 Die Theorie zu Redundanz Zuverlässigkeit von A: Zuverlässigkeit von B: A||B A R A (t) R B (t) Die Zuverlässigkeit von paralleler Redundanz ist höher: R A||B (t) R A (t) R B (t) - R A (t)R B (t) B Beispiel: 06.02.2003 21:33 Architektur Moderner Internet Applikationen – Sonderthema 4 Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. R A R B 0.95 R A||B (t) 0.9975 7 Konfiguration eines Clusters mit Redundanz Hardwarelösungen z.B. Cisco Local Director Softwarelösungen z.B. Windows Load Balancing Service (WLBS) Trennung von Sitefunktionen (Front und Backend, statische und dynamische Inhalte) Entsprechende Dimensionierung des Clusters 06.02.2003 21:33 Architektur Moderner Internet Applikationen – Sonderthema 4 Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. 8 Typische Funktionen einer Website Microsoft zeigt in Building High-Scalability Server Farms /2/, daß sich die Aktivitäten der Benutzer von e-Commerce Websites folgendermaßen kategorisieren lassen: Browse Search User Registration Add item Buy 80% 9% 2% 5% 4% Das heißt, 80% der Anfragen betreffen “statische” Inhalte (Blättern im Katalog, Benutzerverwaltung, Suche), während 20% der Anfragen die Abwicklung der Transaktion und die Verwaltung des Einkaufswagens betreffen. Daher können 80% der Zugriffe von Servern beantwortet werden, die als Webserver ausgelegt sind. 20% der Zugriffe erfordern Server, die als Transaktionsserver ausgelegt sind. 06.02.2003 21:33 Architektur Moderner Internet Applikationen – Sonderthema 4 Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. 9 Typische Konfiguration eines Clusters 06.02.2003 21:33 Architektur Moderner Internet Applikationen – Sonderthema 4 Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. 10 Eine Erweiterte Konfiguration mit Backend Cluster Stage1 Windows NT Server 192.168.18.160 10.0.0.6 -IIS4, -SP4, PDC, DNS FrontEnd1 NT Server Enterprise Edition WLBS Site Server 192.168.18.158 10.0.0.1 -IIS4, -SP4 Internet User INTERNET Laptop ComCluster1 NT Server Enterprise 10.0.0.4 11.0.0.1 SQL 7.0 Router Switch Firewall FrontEnd2 NT Server Enterprise Edition WLBS Site Server 192.168.18.159 10.0.0.2 -IIS4, -SP4 Hub Switch Disk array Fiber Interconnect RAID5 ComCluster2 NT Server Enterprise 10.0.0.5 11.0.0.2 SQL 7.0 Internet User FrontEnd3 NT Server Enterprise Edition WLBS Site Server 192.168.18.158 10.0.0.3 -IIS4, -SP4 cluster.domain.com 192.168.18.155 06.02.2003 21:33 Architektur Moderner Internet Applikationen – Sonderthema 4 Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. BackEnd 10.0.0.9 SQL1 10.0.0.7 SQL2 10.0.0.8 11 Failover Alle Server in einem Clusterverbund müssen auf die selben Daten zugreifen, damit einzelne Server dynamisch ein- und ausgeschaltet werden können. Dies kann folgendermaßen realisiert werden: Shared disks Mirrored disks "Shared nothing" 06.02.2003 21:33 Architektur Moderner Internet Applikationen – Sonderthema 4 Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. 12 Vergleich von Clusterstrategien 06.02.2003 21:33 Architektur Moderner Internet Applikationen – Sonderthema 4 Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. 13 Wide Area Load Balancing „Second Generation Load Balancers“ Viele fortgeschrittene Internet Sites sind bereits heute geographisch verteilt. In Zukunft wird diese Entwicklung verstärkt zu beobachten sein. Wide Area Load Balancer beurteilen die Last auf jedem einzelnen Server und, darauf basierend, verteilen die Zugriffe auf nahe Server im Netz mit geringerer Last (Stichwort: Akamai). Innerhalb eines einzelnen lokalen Sites arbeiten traditionelle Load Balancer. Wide Area Load Balancer sind auch fehlertolerant. Der Ausfall eines einzelnen Servers benachteiligt Benutzer in der Nachbarschaft, weil Zugriffe von weiter entfernt liegenden Servern beantwortet werden. 06.02.2003 21:33 Architektur Moderner Internet Applikationen – Sonderthema 4 Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. 14 Spannungsversorgung - UPS Ausfallsichere Server haben redundante Netzteile Schutz vor Spannungsspitzen (Blitzschlag) und Überspannung (durch Fehler im Netz) ist relativ einfach und kostengünstig erreichbar. UPS oder Spannungsregler sorgen für eine konstante Netzspannung und schützen vor Spannungsabfällen oder – ausfällen. UPS schützen vor längeren Ausfällen 06.02.2003 21:33 Architektur Moderner Internet Applikationen – Sonderthema 4 Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. 15 RAID Der häufigste Hardwaredefekt ist wahrscheinlich ein Plattenausfall RAID Levels definieren eine Kombination aus „striping“, Plattenspiegelung und verteilter Paritätskontrolle zur Verbesserung der Performance und der Datensicherheit RAID kann sowohl als Hardware- oder Softwaresystem implementiert werden. Manche Betriebssysteme bringen von Haus aus dieses Fähigkeit, in anderen Fällen müssen Produkte von Drittherstellern zugekauft werden RAID 5 vereinigt „Striping“ mit verteilter Parität und ist die am häufigsten anzutreffende RAID Implementierung RAID 5 Platten können im Betrieb gewechselt werden (‚hot-swapped‘) 06.02.2003 21:33 Architektur Moderner Internet Applikationen – Sonderthema 4 Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. 16 Maßnahmen zur Performanceverbesserung (MS IIS) Ausschalten des IIS Session Management, keine Sessionvariablen verwenden Trennung von statischen und dynamischen Inhalten (auf dedizierte Server) Caching von statischen Inhalten (sehr wichtig!) Caching von statischen Daten (evtl. in der Datenbank) Verteilung und Konsolidierung von Geschäftsprozessen Verwendung von Messaging/eMail Stapelverarbeitung von Zugriffen Optimierung von ASP Code Optimierung der Commerce Pipeline Optimierung der Datenbank Optimierung des Katalogs und des Suchindexes 06.02.2003 21:33 Architektur Moderner Internet Applikationen – Sonderthema 4 Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. 17