Verteilte Systeme - Grid Computing
Grid Computing – Computer im Raster
In dieser Lektion werden die Grundbegriffe wie sie im Grid Computing verwendet werden erklärt und dargestellt. Dieser Teil / diese Lektion des Studienheftes gilt als Ergänzung zu den anderen Lektionen die auch die theoretischen Grundlagen der praktischen Übungen darstellen.
Das „Grid“ wurde Mitte der 90er Jahre erfunden und bezeichnet eine verteilte Rechner Infrastruktur die für wissenschaftliche und ingenieurtechnische Problemstellungen konzipiert ist. Was Grid Computing auszeichnet bzw. von anderen Technologien wie z.B. dem Internet, enterprise, verteiltem und Peer-to-Peer Computing unterscheidet ist das zugrundeliegende Konzept. Damit ist das koordinierte Teilen von Ressourcen und Lösen von Problemen in dynamischen, multi-institutionellen Virtuellen Organisationen (VO). Dieses Teilen ist nicht auf den Austausch von Files beschränkt sondern fokussiert vielmehr auf den direkten Zugriff auf Computer, Software, Daten und anderen Ressourcen. Zur Frage was geteilt werden darf, die entsprechenden Befugnisse und die Bedingungen unter denen dies geschehen darf werden von Ressourcen Providern und Verbrauchern gleichermaßen streng kontrolliert. Dazu notwendige Regeln werden durch eine Menge bestehend aus Individuen und/oder Institutionen definiert und als VO bezeichnet.
Was ist das Grid?
Die „Erfinder“ Ian Foster und Carl Kesselman beschreiben Grid Computing als
„A computational grid is a hardware and software infrastructure that provides dependable, consistent, pervasive, and inexpensive access to high-end computational capabilities.“ |
---|
und weisen darauf hin, dass Grid die angesprochenen Themen wie z.B. on-demand access auf Rechenleistung, Daten und Dienste bereits in den späten 60ern des vorigen Jahrhunderts erörtert wurden.
So schreibt Len Kleinsrock 1969:
„We will probably see the spread of ‚computer utilities‘, which, like present electric and telephone utilities, will service individual homes and offices across the country.“ |
---|
Im Jahr 2000 verfeinern Ian Foster und Steve Tuecke im Paper „The Anatomy of the Grid“ diese Definition, um soziale und Policy Aspekte einzubinden. Grid Computing behandelt demnach „coordinated resourse sharing and problem solving in dynamic, multi-institutional virtual organizations“. Der Schlüssel dazu ist das Verhandeln von Ressourcen-Sharing Maßnahmen zwischen einer Menge unterschiedlicher teilnehmender Partnern wie z.B. Providers und Customers. Dieser so entstehende Ressourcen-Pool kann dann für unterschiedliche Zwecke genutzt werden.
Folgende weitere Definition dazu von Foster und Tuecke:
„The sharing that we are concerned with is not primarily file exchange but rather direct access to computers, software, data and other resources, as is required by a range of collaborative problem-solving and resource-brokering strategies emerging in industry, science, and engineering. This sharing is, necessarily, highly controlled, with resource providers and consumers defining clearly and carefully just what is shared, who is allowed to share, and the conditions under which sharing occurs. A set of individuals and/or institutions defined by such sharing rules form what we call a virtual organization.“ |
---|
Auf die speziellen Aspekte der hier erwähnten virtuellen Organisation wird noch genauer eingegangen. Die nun folgende Checkliste fasst den Kern der obigen Definition in drei Punkten zusammen:
- Koordinierte Ressourcen, jedoch nicht zentral kontrolliert
- Verwendung von offenen Standard-, Mehrzweckprotokollen und Interfaces
- Erfüllen von nichttrivialem Quality-of-Service Anforderungen. Dazu zählen allgemein Security, verteilte Workflow- und Ressourcen Management Performance, koordinierte Ausfallsicherung, Services zur Erkennung von Problemen.
Nun stellt sich die Frage, ob nicht auch das Internet selbst ein Grid ist? Schließlich ist es auch offen, verwendet entsprechende Protokolle und erlaubt den Zugriff auf verteilte Ressourcen. Einzig, die Koordination der Ressourcen, um QoS bereitstellen zu können fehlt, zumindest derzeit.
Was aber ist das Grid nun? Was zeichnet Grid Computing aus und wie ist es aufgebaut? Um diese Frage beantworten zu können, zunächst das Konzept der sog. Virtuellen Organisation.
Virtual Organizations (VOs)
Wie bereits eingangs erwähnt ist das Konzept der VO im Grid von zentraler Bedeutung. Um besser zu verstehen worum es sich hierbei handelt, wie sie sich bilden und welches Ziel VO haben, wird anhand der folgenden vier Beispiele exemplarisch dargestellt.
Eine neue Fabrik soll entstehen. Um eine Entscheidung treffen zu können, wird zunächst ein umfangreiches Finanzprognosemodell eines ASPs benötigt. Dieses Modell soll Zugriff auf einschlägige und proprietäre historische Daten einer gemeinsamen Datenbank haben die auf Speichersystemen eines SSP betrieben werden.
In einem Meeting das während der Definitionsphase stattfindet, werden kollaborativ und interaktiv what-if Szenarien durchgespielt. Die in dieser Phase involvierten Abteilungsleiter können dabei auch in unterschiedlichen Städten sein. Der ASP nimmt einen Cycle Provider (CP) [1] unter Vertrag, um für bestimmte Szenarien mehr „Schwung“ zur Verfügung zu haben. Jeder Zyklus muss natürlich den notwendigen Sicherheits- und Performanceansprüche genügen.
Ein Industriekonsortium wurde gegründet mit dem Ziel eine Durchführbarkeitsstudie für ein neues Überschallflugzeug zu erstellen. Es wird dazu eine hochpräzise multidisziplinäre Simulationen des gesamten Flugzeugs durchgeführt. Die Simulation integriert proprietäre Softwarekomponenten die von unterschiedlichen Partnern entwickelt wurden, auf deren Rechnern betrieben werden und Zugriff auf entsprechende Design Datenbanken und andere Daten die durch das Konsortium zur Verfügung gestellt wurden, haben.
Ein Krisenmanagementteam reagiert auf einen chemischen Unfall und benutzt dazu lokale Wetter- und Bodenmodelle, um die Verbreitung der chemischen Substanzen in der Umwelt abzuschätzen. Dabei werden auch die Auswirkungen auf die Bevölkerung sowie geographische Eckdaten wie z.B. Flüsse, Trinkwasserversorgung udgl. einbezogen. Das Ergebnis ist ein vorläufiger Plan zur Entschärfung akuter Gefahrensituationen und beinhaltet Aufgaben für Katastropheneinsätze, Evakuierungsmassnahmen sowie die Verständigung von Spitälern um einige der wichtigsten Maßnahmen zu nennen.
Tausende Physiker in hunderten Laboratorien und Universitäten weltweit kommen zusammen, um den LHC [2] am CERN zu entwerfen, zu bauen und zu betreiben sowie die Ergebnisse aus den kollidierenden Teilchen auszuwerten und unter anderem die Existenz des Higgs-Bosons zu beweisen was einen weiteren Durchbruch zum Verständnis des Standardmodells der Elementarteilchenphysik bewirkt.
Während der Analysephase werden Rechen-, Speicher- und Netzwerkressourcen konzentriert, um ein sog. „Data Grid“ zu erstellen mit dem es möglich ist Petabytes [3] an Daten zu analysieren.
Die vier hier dargestellten Beispiele unterscheiden sich in vielen Punkten. Die Anzahl der Mitwirkenden, die unterschiedlichen Aktivitäten, die Dauer und der Umfang der verschiedenen Aktivitäten und die verschiedenen Ressourcen die geteilt werden. Trotz dieser zum Teil sehr großen Unterschiede gibt es auch viele Gemeinsamkeiten. So kann eine Organisation in einer oder mehreren VO mitwirken indem sie alle oder nur einige ihrer Ressourcen teilt. Dabei entscheidet jeder Besitzer von Ressourcen wann, wo und welche Ressourcen benutzt werden können. So könnte z.B. eine VO Partnern erlauben ihre Simulationsdienste nur für sehr einfache Aufgaben zu nutzen. Ebenso können die Verbraucher von Ressourcen Bedingungen stellen. So könnte der Nutzer einer Ressource verlangen, dass nur solche Ressourcen bereitgestellt werden, die auch als sicher gelten.
Zur Umsetzung solcher Bedingungen werden entsprechende Mechanismen benötigt, die Policies ausdrücken, die Identität eines Nutzers oder einer Ressource herstellen (Authentisierung) und entscheiden, ob eine Operation für die eingesetzten Beziehungen konsistent ist (Authorisation).
Grid Architektur Allgemein
Die Einrichtung, das Management und die Nutzung von dynamischen, über mehrere Organisationen agierende VO und der somit entstehenden Beziehungen bedingt eine Reihe neuer Technologien. Als Ausgangsbasis wird angenommen, dass eine VO Beziehungen zu jeglichen potentiellen Nutzern aufbauen können muss, um bestmöglich zu funktionieren. Damit sind Fragen rund um die Interoperabilität und somit die Verwendung gemeinsamer Protokolle in einer vernetzten Umgebung von besonderer Wichtigkeit und einer der Kernpunkte. Eine Grid Architektur lässt sich deshalb auch als eine Protokollarchitektur verstehen. Diese definieren die Grundmechanismen mittels derer Benutzer von VO und Ressourcen Beziehungen untereinander ausverhandeln, managen und diese auch nutzen. Solche Standard Protokolle erlauben die Erstellung von (Application Programming Interface) APIs und Software Development Kits (SDK), um die notwendigen Abstraktionen zu schaffen, die eben für ein brauchbares Grid notwendig sind. Die Summe dieser Technologien wird auch als Middleware („the services needed to support a commmon set of applications in a distributed network“) [4] bezeichnet.
Interoperabilität
Interoperabilität ist deswegen so wichtig, um sicher zu stellen, dass Beziehungen zwischen den unterschiedlichsten Beteiligten hergestellt, neue Teilnehmer aufgenommen werden können werden, und dies über verschiedene Plattformen, Sprachen und Programmierumgebungen hinweg. Dementsprechend müssen diese Mechanismen so implementiert sein, dass sie über die organisatorischen Grenzen, operationalen Policies und Arten von Ressourcen hinweg agieren können. Andernfalls müssten Anwendungen und Nutzer von VOs bilaterale Beziehungen eingehen da sonst nicht sichergestellt werden kann, dass die genutzten Mechanismen auch auf andere anwendbar ist. Universell eingesetzte Protokolle wie HTTP und HTML sind Beispiele die zeigen, wie der Austausch von Informationen weltweit ermöglicht wurde. Ebensolche Protokolle und Syntax werden im Grid benötigt, um die Möglichkeit des Austausches von Informationen zwischen Ressourcen im Grid zu ermöglichen.
Protokolle
Interoperabilität hängt also stark von den verwendeten Protokollen ab die definieren, wie die unterschiedlichen Elemente in verteilten Systemen miteinander interagieren, um ein bestimmtes gewünschtes Verhalten zu erreichen. Der Fokus liegt damit auf den externen Interaktionen anstatt auf internen Aspekten wie z.B. Software und Charakteristika von Ressourcen was Vorteile mit sich bringt. VOs benötigen Mechanismen die neue Ressourcen finden, Identitäten erstellen, Autorisationen feststellen und neue Aufteilungen initiieren. Die dazu notwendigen Protokolle müssen flexibel und leichtgewichtig sein, um Ressourcenteilungen so schnell als möglich herzustellen und auch wieder abbauen zu können.
Da VOs sich eher ergänzen anstatt existierende Institutionen zu ersetzen dürfen solche Mechanismen zum Austausch von Ressourcen keine Änderungen der lokal verwendeten Policies erzwingen. Weiters muss gewährleistet sein, dass jede Institution weiterhin die Kontrolle über ihre Resourcen bewahren kann.
Services
sind ausschließlich durch das Protokoll definiert und das Verhalten das es implementiert. Die Definition von Standard Services für Zugriffe auf Berechnungen, Daten, dem Finden von Ressourcen, Co-scheduling, Replizieren von Daten usw. erlaubt Services die von VO angeboten werden zu erweitern, um so weiters ressourcenspezifische Details zu abstrahieren die sonst für die Entwicklung von VO Anwendungen hinderlich wären.
APIs
dienen dazu, die Entwicklung von anspruchsvollen Anwendungen in komplexen und dynamischen Umgebungen zu ermöglichen. Anwender wiederum müssen diese wiederum bedienen können. Robustheit, Richtigkeit, Entwicklungs- und Wartungskosten sind dabei wichtige Anliegen. Standard Abstraktionen, APIs und SDKs können die Entwicklung beschleunigen, verteilte Nutzung von Code ermöglichen und somit die portable Anwendungen ermöglichen. APIs und SDKs sind also ein Zusatz statt Alternative zu den Protokollen. Ohne Standard Protokolle kann Interoperabilität nur auf API Level erreicht werden und das nur durch eine einzige Implementierung die überall eingesetzt wird oder indem jede Implementierung die Details aller anderen Implementierungen kennt. Das ist jedoch für viele interessante VOs undurchführbar. So ist z.B. der Jini Ansatz wo Protokoll Code von remote sites geladen wird keine Lösung. [5]
Zusammenfassend ist es wichtig festzuhalten, dass für die Betrachtung einer Grid Architektur zunächst die Identifikation und Definition von Protokollen und Services im Vordergrund stehen, dann die der APIs und SDKs.
Überblick über internationale, europäische und nationale Forschungsprojekte im Grid Computing Bereich
Es existieren eine Vielzahl unterschiedlicher Grid Projekte auf internationaler, europäischer und nationaler Ebene. Im Folgenden wird auf einige dieser Pojekte kurz eingegangen.
Internationale Grid Projekte
Globus/Globus Alliance: Globus Toolkit
Das Globus Toolkit wurde von der Globus Alliance entwickelt. Es ist ein Open Source Software toolkit zur Erstellung von Grid Systemen und Anwendungen.
Die drei Hauptfunktionen sind Execution, Data und Information Services. Diese basieren auf einer Public Key Infrastrukture (PKI).
Die erste produktive und somit weit verbreitete und eingesetzte Version war die Version 2. Diese implementierte drei Funktionen durch drei unabhängige TCP/IP Server die via Sockets über selbst definierte Protokolle kommunizierten. Globus Ressource Allocation Manager (GRAM) stellt eine Laufzeitumgebung zur Verfügung. GridFTP ist ein hochperformantes, sicheres und verlässliches Datentransferprotokoll das für wide-ares Netzwerke mit hoher Bandbreite optimiert ist. Das Monitoring und Discovery Service (MDS) ist ein LDAP Verzeichnisdienst und stellt die Informationsservicekomponente des Globus Toolkit 2 (GT2) dar. Die von Foster vorgestellte Grid Protokoll Architektur, die die Wichtigkeit der Standardprotokolle herausstreicht, um VO zu realisieren, wird in dieser Implementierung der Protokolle umgesetzt. Viele andere Grid Projekte wenden diese Version des Toolkits an.
Die Open Grid Service Architecture (OGSA) beschreibt einen Service Bus, um die Grid Infrastruktur mit allgemeinem Verhalten und Semantik erstellen zu können, während die Open Grid Service Infrastructure (OGSI) Spezifikation die Schnittstellen eines Grid Services definiert. Da OGSI zu proprietär war, um in größerem Rahmen verwendet zu werden, wurde sie durch die Web Services Resource Framework (WSRF) neu spezifiziert. WSRF sind im Globus Toolkit Version 4 (GT4) verfügbar und sind als reine Web Services spezifiziert.
Gridbus
Dieses Projekt ist ein technisch orientiertes Entwicklungsprojekt für Next-Generation Cluster und Grid Technologien die echtes Utility-driven Service Oriented Computing unterstützen. Der Name leitet sich vom Forschungsthema ab, Next-Generation GRID Computing and BUsiness Technologien.
Das Gridbus Projekt bietet, ähnlich wie Globus, Komponenten, um ein Grid zu erstellen. Zusätzlich werden ausgeklügelte Services angeboten:
- .NET basiertes Grid Framework (Alchemi)
- Grid Market Directory (GMD)
- Resource Usage Accounting (GridBank)
- Grid Portals (G-monitor, Gridscape)
Legion
Hierbei handelt es sich um ein objektbasiertes Metasystem, entwickelt an der University of Virginia. Es wurde designed, um Millionen Hosts und Trillionen Objekte miteinander über Hochgeschwindigkeitsleitungen zu verbinden.
Im Gegensatz zu Globus, dessen Architektur als Summe von Services verstanden werden kann, stellt Legion eine integrierte Architektur dar, d.h. die Struktur der höheren Ebenen basiert auf einem einzigen vereinten Objektmodell.
Die Firma Avaki bietet Legion Software kommerziell an und integriert auch Enterprise Information Systems. Im Jahr 2005 wurde Avaki von Sybase gekauft.
UNICORE
Uniform Interface to Computing Resources ist eine Middleware, um transparenten und sicheren Zugriff auf High Performance Computing Resourcen zu erlauben. Die Entwicklung von UNICORE wurde bereits 1997 als deutsches Forschungsprojekt gemeinsam mit Siemens, IBM und Hitachi HP gestartet. Weitere Entwicklungen wurden in European Grid Project EUROGRID, GRIP und OpenMolGRID unternommen.
Die Software ist als Open Source Software via SourceForge verfügbar und wird vom UNICORE Form vorangetrieben.
Europäische Grid Projekte
Die europäische Forschung im Grid begann mit der Deklaration der Lissabon Strategie im Jahr 2000. Ziel war Europa bis 2010 in die am meisten kompetitive, wissensbasierte Ökonomie zu transformieren. Dazu wurden die sog. Framework Programs (FP) initiiert, um die Forschung und Entwicklung in den unterschiedlichen zu stärken. Diese Programme laufen üblicherweise einige Jahre lang.
Die ersten Grid Projekte die von der EU unterstützt wurden liefen unter FP5. Die folgenden drei Projekte stehen repräsentativ für FP5, stellen also zugleich einen kurzen historischen Abriss dieser Zeit dar.
GRIA
In diesem Projekt standen die Entwicklung von Geschäftsmodellen und Prozessen die eine kosteneffiziente und effektive Nutzung von Rechenzeit in einem offenen Grid Marktplatz zur Verfügung stehen, im Vordergrund. Dieser Grid Marktplatz und die dazu entwickelten Modelle sollten weiters helfen, die Nachfrage nach Ressourcen besser zu nutzen und zu verwalten. Da die Grid Middleware zu dieser Zeit noch nicht ausgereift genug war, um verlässliche Anwendungen anbieten zu können, wurden Web Services entwickelt, die diese Funktionalitäten anboten. Zu den weiteren Entwicklungen gehörten Performance Abschätzung, QoS, Workflows, Cluster Management, Security sowie die Semantik für Interoperabilität.
EU Data Grid
Hier standen die Entwicklung von Techniken zur Verarbeitung und Datenspeicherung wie sie für Next Generation Scientific Research benötigt werden im Vordergrund. Die dazu notwendige Infrastruktur sollte rechenintensive Analysen von groß angelegten shared Datenbanken ermöglichen. Die Dimensionen bewegten sich im Bereich von mehreren hundert TerraBytes bis PetaBytes, verteilt über unterschiedliche wissenschaftliche Communities.
Es mussten drei unterschiedliche Typen von Ressourcen verwaltet werden. Computing, Storage und Network wofür 12 WPs eingerichtet wurden.
GEMSS
Die Entwicklung von neuen sog. Grid-enabled Werkzeugen zur Verbesserung der Diagnose, der operativen Planung und chirurgischer Prozeduren.
Dazu wurde eine innovative Middleware entwickelt die benutzt werden kann, um Medizinern und Forschern bei Zugriff auf hochentwickelte Simulationen und Bildverarbeitungsdiensten, eine verbesserte vor-operative Planung und Unterstützung bei chirurgischen Eingriffen in nahezu Echtzeit zu ermöglichen.
Dazu wurde auf existierende Grid und Web Technologien gebaut die den notwendigen Standards entsprechen, somit künftige Erweiterungen und Interoperabilität ermöglichen bzw. gewährleisten. Dazu wurde auch eine Testumgebung entwickelt, die die Evaluierung und Validierung der GEMMS Umgebung ermöglichte und auch die Einbindung der Arbeitsumgebungen der damit arbeitenden Leute erlaubte. Des weiteren berücksichtigte GEMSS Fragen rund um Privacy, Sicherheit, Fehlererkennung und Wiederherstellung im Fehlerfall. Auch rechtliche Aspekte wurden berücksichtigt, also aktuelle gesetzliche Entwicklungen und EU Regulationen.
Nationale Grid Projekte
UK eScience
Unter der UK Regierung finanziert ist das UK eScience Schirmprojekt für verschiedene Grid Projekte für unterschiedlichen Anwendungen und Use Cases. Dazu zählen Projekte in den Bereichen Astronomie, Physik, Biologie, Chemie, dem Ingenieurswesen, Finanz und Gesundheit.
OGSA-DAI
Der Fokus richtet sich hier auf die Entwicklung entsprechender Middleware, um den Zugriff und die Integration von Daten aus unterschiedlichen Quellen für das Grid zu ermöglichen. Hierbei stehen im Vordergrund die Identifikation von Rahmenbedingungen, Designentscheidungen, und die Erstellung bzw. Bereitstellung von Software um dies zu erreichen.
TeraGrid
wurde bereits 2004 abgeschlossen und stellte 40 Teraflops Rechenleistung und knapp 2 Petabyte an Speicher dar. Es stellte spezielle Datenanalyen, Visualisierungsressourcen sowie 10-30 Gigabits/s Netzwerkverbindungen zur Verfügung. TeraGrid wurde durch die Grid Infrastructure Group (GIG) an der University of Chicago koordiniert.
Austrian Grid
Dieses Konsortium vereint führende Forscher in unterschiedlichen Bereichen wo fortgeschrittene Computertechnologien mit Partnern im Bereich Grid-abhängiger Anwendungen vereint werden.
Ziel ist die Forschung im Bereich Grid-Computing in Österreich ganz allgemein zu unterstützen und Entwicklungen sowie Kooperationen zwischen verschiedenen Forschungsinstitutionen zu koordinieren.
Das Austrian Grid Projekt wird vom Ministerium für Wissenschaft und Forschung gefördert.