Lehrstuhl für Rechnerarchitektur, Professor Brüning Cluster Operating Systems Seminarvortrag im Wintersemester 2003/04 von Frank Ueltzhöffer
1. Einführung und Motivation 2. Charakterisierung 3. Herausforderungen 4. Freie CBS 5. Kommerzielle CBS 6. Programmierung 7. Zusammenfassung / Ausblick 8. Referenzen
Überblick 1. Einführung und Motivation 2. Charakterisierung 3. Herausforderungen 4. Freie CBS 5. Kommerzielle CBS 6. Programmierung 7. Zusammenfassung / Ausblick 8. Referenzen
1.1 Was ist ein Cluster? [ ] a group of interconnected, whole computers working together as a unified computing resource [ ] ¹ ¹ William Stallings: Operating Systems: Internals and Design Principles
1.2 Warum Cluster Computing? Gutes Preis/Leistungsverhältnis Hohe Verfügbarkeit Skalierbarkeit
1.3 Beispiele für Cluster Beowulf Cluster am CERN Standard Hardware Komponenten Red Hat Linux basiert http://hp-linux.cern.ch/
1.3 Beispiele für Cluster MCR Linux Cluster am Lawrence Livermore National Laboratory 11.2 Tflops Platz 3 der Top 500 Supercomputer Betriebssystem basiert auf Red Hat Linux http://www.llnl.gov/linux/mcr/build/images/p1010042_large.jpg
1.4 Probleme von Single-System Betriebssystemen auf Clustern Benutzung Administration Programmierung Load Balancing Fehlertoleranz frank@cluster:~> ps -e frank@cluster:~> rpm i update.rpm frank@cluster:~> cat /dev/fd0 myproc frank@cluster:~> relocate pid=1234 Fazit: Single-System BS ungeeignet
1. Einführung und Motivation 2. Charakterisierung 3. Herausforderungen 4. Freie CBS 5. Kommerzielle CBS 6. Programmierung 7. Zusammenfassung / Ausblick 8. Referenzen
2.1 Zentrales Merkmal [ ] [allow] the cluster to be viewed and administered as a single system. I would assert that any cluster of interest should have this characteristic as well. Norm Snyder, IBM Ein Cluster Betriebssystem ist in der Lage dem Benutzer/Administrator einen Verbund von unabhängigen Rechnern als ein einziges System zu präsentieren.
2.1 Zentrales Merkmal Single System Image (SSI) http://h18000.www1.hp.com/solutions/enterprise/highavailability/sco/images/ssi.jpg
2.3 Ausprägungen Load Balancing (openmosix) Web Servicing (LVS, Piranha) Storage (opengfs, Lustre) Database (Oracle RAC, IBM ICE) High Availability (LifeKeeper, HA Linux) High Performance(Beowulf)
1. Einführung und Motivation 2. Charakterisierung 3. Herausforderungen 4. Freie CBS 5. Kommerzielle CBS 6. Programmierung 7. Zusammenfassung / Ausblick 8. Referenzen
3.1 Load-Balancing Ziel: Clusterweite Performance verbessern Preemptive vs. Non- Preemptive Metriken: Speicher CPU Preemptive: Transparente Migration notwendig
3.2 Prozess Management Globales Prozess Management PIDs clusterweit eindeutig Transparente Zuordnung Transparente Migration Voraussetzungen für preemptives Load-Balancing
3.3 Inter-Prozess Kommunikation IPK über Systemgrenzen hinweg möglich Auch im Falle von Prozessmigration z.b. pipes, FIFOs, signals, semaphores, sockets Was ist mit shared mem?
3.4 Dateisystem Transparenz Koheränz Performance Redundanz
3.5 Failover Ziel: Hohe Verfügbarkeit Probleme: Detektion Migration Datenkonsistenz SSI vereinfacht Failover
3.6 Zusammenfassung: Herausforderungen 3.1 Load-Balancing 3.2 Prozess Management 3.3 Inter-Prozess Kommunikation 3.4 Dateisystem 3.5 Failover
1. Einführung und Motivation 2. Charakterisierung 3. Herausforderungen 4. Freie CBS 5. Kommerzielle CBS 6. Programmierung 7. Zusammenfassung / Ausblick 8. Referenzen
4.1 Integration (openssi) Uniprocessor or SMP node Users, applications, and systems management Uniprocessor or SMP node Users, applications, and systems management Standard OS kernel calls Extensions Extensions Standard OS kernel calls Standard Linux 2.4 kernel with SSI hooks Modular kernel extensions Modular kernel extensions Standard Linux 2.4 kernel with SSI hooks Devices Bruce J. Walker, HP O Reilly Open Source Convention 2003 IP-based interconnect Other nodes Devices
4.2 Beowulf Cluster Geschichte Erster Beowulf 1994 bei der NASA Ausschließlich Standard-Hardware Am ältesten und am weitesten verbreitet Reiner High-Performance Cluster
4.2 Beowulf Cluster Merkmale Ein Master-, viele Slave-Knoten Prozesse werden auf Slaves ausgeführt Alle Prozesse sind auf Master sichtbar Durch BProc Kernel Erweiterung
4.2 Beowulf Cluster Prozess Management Ghosts der Slave- Prozesse auf Master sichtbar Signale an Ghosts werden transparent weitergeleitet Kommunikation durch MPI/PVM Explizite Migration
4.2 Beowulf Cluster Zusammenfassung Weniger ist mehr Philosophie + Hohe Performance + Weit verbreitet - Kein SSI, kein Load-Balancing, kein Failover
4.3 Open Mosix Geschichte Multi-computer Operating System for Unix Entstanden 1981 an der Hebrew University of Jerusalem Aufsplittung in kommerzielles und offenes System 2002
4.3 Open Mosix Merkmale Ausgefeiltes Load-Balancing Preemptive und transparent Prozessmigration Homogene Knoten Integriertes Cluster File System
4.3 Open Mosix Load-Balancing Anhand zweier Dimensionen Speicherauslastung (primär) CPU-Auslastung Knoten tauschen paarweise, periodisch Nachrichten aus Algorithmus berücksichtigt Anzahl der Prozessoren und deren Leistungsfähigkeit Migration wird eingeleitet, falls sich die erwartete Gesamtleistung erhöht
4.3 Open Mosix Prozessmigration 1. Der Load-Balancing Algorithmus stößt die Prozessmigration an 2. Der ursprüngliche Prozess wird in remote und deputy gespalten 3. Der remote wird migriert, der deputy verbleibt auf dem Home Node (UHN)
4.3 Open Mosix Prozessmigration