Aufbau eines Grids Praktikum: Anwendung und Programmierung im Grid (SS 2012) Gesellschaft für wissenschaftliche Datenverarbeitung mbh Göttingen (GWDG) 22.05.2012
Gliederung (1) 1 Was haben wir schon gelernt? Cluster Computing Grid Computing, Grid Middleware 2 Übungen in der Grid Umgebung des Praktikums Übung: Grid Security Übung: Datentransfer Übung: Job Management Übung: Information- und Monitoringdienst
Gliederung (2) 3 Instant-Grid Terminalserver-/Cluster Setup Grid Setup Anwendungen 4 Anmeldung, Benutzerkonten Firewallregeln Organisatorisches Zusammenfassung
Gliederung Cluster Computing Überblick Parallelrechner bei der GWDG Grid Computing, Grid Middleware Überblick Grid Hardwareausstattung in Göttingen Agenda für Heute 1 Was haben wir schon gelernt? Cluster Computing Grid Computing, Grid Middleware 2 Übungen in der Grid Umgebung des Praktikums 3 4
bereits Gelerntes über Cluster Cluster Computing Überblick Parallelrechner bei der GWDG Grid Computing, Grid Middleware Überblick Grid Hardwareausstattung in Göttingen Agenda für Heute oft benötigen Applikationen mehr Rechenleistung als ein sequentieller Prozessor zur Verfügung stellen kann Performanzverbesserung skalierbare parallele Computerarchitekturen Cluster Cluster Architektur Komponenten Ressource-Management mit PBS Cluster vs Grid
Cluster Computing Überblick Parallelrechner bei der GWDG Grid Computing, Grid Middleware Überblick Grid Hardwareausstattung in Göttingen Agenda für Heute Überblick Parallelrechner bei der GWDG Rechner-System Cores Max. Leistung Jahr SGI Altix 4700 (04.2012) 512 3,28 TFlop/s 2007 MEGWARE Woodcrest-Cluster 604 7,25 TFlop/s 2007 NEC Nehalem-Cluster 1504 15,2 TFlop/s 2010 MEGWARE Magny-Cours-Cluster 3072 27,9 TFlop/s 2011
bereits Gelerntes über Grids Cluster Computing Überblick Parallelrechner bei der GWDG Grid Computing, Grid Middleware Überblick Grid Hardwareausstattung in Göttingen Agenda für Heute Grid Computing heterogene, verteilte Daten- oder Computing-Ressource benutzt für High Throughput Computing (HTC) High Performance Computing (HPC) Kollaboratives Computing Klassifikation: Art der Ressource oder verwendete Technologie Bekannte Beispiele produktiver Grids D-Grid (Deutschland) EGI (EGEE) (Europa) Teragrid, OSG (USA) National Grid Service (UK) uvm
Middleware, Grid Middleware Cluster Computing Überblick Parallelrechner bei der GWDG Grid Computing, Grid Middleware Überblick Grid Hardwareausstattung in Göttingen Agenda für Heute Ohne und mit Middleware
Cluster Computing Überblick Parallelrechner bei der GWDG Grid Computing, Grid Middleware Überblick Grid Hardwareausstattung in Göttingen Agenda für Heute bereits Gelerntes über Grid Middleware Grid Middleware Anwendungen nutzen das Grid über eine Grid Middleware Einheitssicht (single system view) sie versteckt Heterogenität ermöglicht sicheren Zugang und Kommunikation ist eine komplette Ansammlung von Diensten und Lösungen für Probleme bei verteilten Systemen Bekannte Beispiele von Grid Middleware Globus Toolkit UNICORE glite
Cluster Computing Überblick Parallelrechner bei der GWDG Grid Computing, Grid Middleware Überblick Grid Hardwareausstattung in Göttingen Agenda für Heute Überblick Grid Hardwareausstattung in Göttingen GoeGrid Rechenressourcen Rechner- Cores Max. Massen- Archiv- System Leistung speicher speicher GoeGrid Rechenressourcen 2484 26,85 TFlop/s 800 TB 230 TB Visualisierungscluster für Visualisierungsaufgaben, schnelle Netzinfrastruktur (10Gb)
Agenda für Heute Cluster Computing Überblick Parallelrechner bei der GWDG Grid Computing, Grid Middleware Überblick Grid Hardwareausstattung in Göttingen Agenda für Heute Heute eine Grid Middleware (GT4) wird im Detail kennengelernt die folgenden Komponenten der Grid Middleware werden ausprobiert Sicherheit Datenmanagement Job Management Informationsdienste Versuchsumgebung des Praktikums
Gliederung Übung: Grid Security Übung: Datentransfer Übung: Job Management Übung: Information- und Monitoringdienst 1 Was haben wir schon gelernt? 2 Übungen in der Grid Umgebung des Praktikums Übung: Grid Security Übung: Datentransfer Übung: Job Management Übung: Information- und Monitoringdienst 3 4
Globus Toolkit 4 - Globus Toolkit Architektur Übung: Grid Security Übung: Datentransfer Übung: Job Management Übung: Information- und Monitoringdienst
Globus Toolkit 4 Übung: Grid Security Übung: Datentransfer Übung: Job Management Übung: Information- und Monitoringdienst Globus Container Globus Container: Service Container stellt mehrere Grid Dienste zur Verfügung Im Grid ist alles ein Dienst (Service) Globus Web Service Container Standalone Tomcat 1 JVM Prozess Aufgaben sichere Kommunikation, Authorisierung, SOAP Nachrichten
Übung: Grid Security Übung: Datentransfer Übung: Job Management Übung: Information- und Monitoringdienst Wie kann ich EIN Grid benutzen? Grid Zertifikat beantragen (CA = Zertifizierungsstelle) Wie? Das ist abhängig von der CA. in einer Virtuellen Organization (VO) Mitglied werden Wie? Das ist abhängig von der VO. mit Grid Tools loslegen Grid Tools benutzen (CLI) Grid Portal benutzen API programmieren
Übung: Grid Security Übung: Datentransfer Übung: Job Management Übung: Information- und Monitoringdienst Wie kann ich UNSER Grid benutzen? Grid Zertifikat beantragen (CA = Zertifizierungsstelle) Grid Zertifikate wurden von den Betreuern beantragt Sowohl für die Ressourcen, als auch für die Studenten in einer Virtuellen Organization (VO) Mitglied werden Alle Studenten und Grid Ressourcen sind in einer VO mit Grid Tools loslegen Grid Tools (WS-MDS, WS-GRAM, GridFTP/RFT) Grid Portal benutzen API programmieren
Grid Zertifikate (1) Übung: Grid Security Übung: Datentransfer Übung: Job Management Übung: Information- und Monitoringdienst Grid Zertifikat X.509 Zertifikat: Identität (Distinguished Name), CA, Gültigkeit, Seriennummer, öffentlicher Schlüssel, usw. alles (Host,Dienst,Benutzer) hat ein X.509 Zertifikat wurde von einer trusted CA signiert (1-2 pro Land) Grid Zertifikat beantragen CA Kollaboration: International Grid Trust Federation (www.igtf.net) EUGridPMA (www.eugridpma.org) ( Getting your own certificate: find your national or regional authority )
Grid Zertifikate (2) Übung: Grid Security Übung: Datentransfer Übung: Job Management Übung: Information- und Monitoringdienst CAs in Deutschland (CA = Zertifizierungsstelle) https://www.eugridpma.org/members/redir/germany.html DFN Grid CA (Namensraum /C=DE/O=GridGermany/OU=) GermanGrid CA (Namensraum /O=GermanGrid/OU=) RAs in Göttingen (RA = Grid-Registrierungsstelle) https://info.pca.dfn.de/grid-ras.html GWDG (/OU=Gesellschaft fuer wissenschaftliche Datenverarbeitung mbh) Universitaet Göttingen (/OU=Universitaet Goettingen) Universitaet Göttingen (/OU=UniGoettingen)
Grid Zertifikate (3) Übung: Grid Security Übung: Datentransfer Übung: Job Management Übung: Information- und Monitoringdienst Host Zertifikat die Ressource wird damit identifiziert wird von den Grid Services benutzt, wenn der Service kein eigenes Service Zertifikat hat /etc/grid-security/hostcert.pem /etc/grid-security/hostkey.pem (Rechte!) Benutzer Zertifikat der Benutzer wird damit identifiziert wird vom Grid Benutzer benötigt $HOME/.globus/usercert.pem $HOME/.globus/userkey.pem (Rechte!)
Grid Zertifikate (4) Übung: Grid Security Übung: Datentransfer Übung: Job Management Übung: Information- und Monitoringdienst Proxy Zertifikat (Grid Proxy (1)) ein kurzlebiges Zertifikat (RFC 3820 Proxy Certificates) mit eigenem privaten/öffentlichen Schlüssel signiert vom Benutzer der private Schlüssel ist nicht verschlüsselt gespeichert in einer Datei, darf nur für den Benutzer lesbar sein /tmp/x509up uxxxx (XXXX ist die numerische Benutzer ID) kurze Gültigkeit (zur Sicherheit) sehr wichtig für Delegation und Single Sign On
Grid Zertifikate (5) Übung: Grid Security Übung: Datentransfer Übung: Job Management Übung: Information- und Monitoringdienst Proxy Zertifikat, Delegation (Grid Proxy (2))
Grid Zertifikate (6) Übung: Grid Security Übung: Datentransfer Übung: Job Management Übung: Information- und Monitoringdienst Anmeldung Proxy Zertifikat erzeugen grid-proxy-init + Gültigkeit Grid Zertifikat + Privater Schlüssel werden benötigt /tmp/x509up uxxxx (XXXX ist die numerische Benutzer ID) kurze Gültigkeit, deshalb kann es schon abgelaufen sein Abmeldung Proxy Zertifikat löschen die delegierten Credentials leben weiter
Grid Zertifikate (7) Übung: Grid Security Übung: Datentransfer Übung: Job Management Übung: Information- und Monitoringdienst Die wichtigsten Befehle grid-cert-info, grid-cert-request, grid-proxy-info, grid-proxy-init, grid-proxy-destroy Anmerkung bei jedem Boot werden alle Zertifikate in der Versuchsumgebung automatisch erzeugt
Grid Zertifikate (8) Übung: Grid Security Übung: Datentransfer Übung: Job Management Übung: Information- und Monitoringdienst Online Credential Repository Gültigkeitsprobleme mit Proxyzertifikaten Proxyzertifikate müssen sehr heufig erneuert werden Portalanwendungen agieren im Namen des Benutzers Portale brauchen Zugriff zum Proxyzertifikate viele Grid Klienten Klientrechner sind nicht vertrauenswürdig MyProxy: online Credential Repository Die wichtigsten Befehle myproxy-info, myproxy-init, myproxy-logon, myproxy-destroy
Übung: Grid Security Übung: Datentransfer Übung: Job Management Übung: Information- und Monitoringdienst Globus Toolkit 4 - Datenmanagement Globus Toolkit Architektur
Datenmanagement (1) Übung: Grid Security Übung: Datentransfer Übung: Job Management Übung: Information- und Monitoringdienst GridFTP, Reliable File Transfer Management von grossen Datenmengen in Virtuellen Organizationen GridFTP: ein performanter FTP-Server mit Grid Security Infrastructure (GSI) striped Datentransfer (parallel FS) Third Party Datentransfer Die wichtigsten Befehle globus-url-copy (GridFTP) rft (Reliable File Transfer)
Datenmanagement (2) Übung: Grid Security Übung: Datentransfer Übung: Job Management Übung: Information- und Monitoringdienst PUT (local - remote) globus-url-copy -vb -tcp-bs 123456 -p 4 \ file:///path/file1 \ gsiftp://remote.server/path/file2 GET (remote - local) globus-url-copy -vb -tcp-bs 123456 -p 4 \ gsiftp://remote.server/path/file1 \ file:///path/file2 Third Party Datentransfer (remote - remote) globus-url-copy -vb -tcp-bs 2097152 -p 4 \ gsiftp://remote.server1/path/file1 \ gsiftp://remote.server2/path/file2
Globus Toolkit 4 - Job Management Globus Toolkit Architektur Übung: Grid Security Übung: Datentransfer Übung: Job Management Übung: Information- und Monitoringdienst
Job Management Übung: Grid Security Übung: Datentransfer Übung: Job Management Übung: Information- und Monitoringdienst WS-GRAM Schnittstelle, um Jobaufträge abzuschicken WS-GRAM ist ein Grid Service WS Interface zu den Schedulern
Job Management Übung: Grid Security Übung: Datentransfer Übung: Job Management Übung: Information- und Monitoringdienst GT4 WS-GRAM Komponenten
Job Management Übung: Grid Security Übung: Datentransfer Übung: Job Management Übung: Information- und Monitoringdienst GT4 WS-GRAM Grid Dienste
Job Management Übung: Grid Security Übung: Datentransfer Übung: Job Management Übung: Information- und Monitoringdienst Die wichtigsten Befehle globusrun-ws -submit -c /bin/hostname globusrun-ws -submit -so /path/output -c /bin/hostname globusrun-ws -submit -f jobauftrag.xml globusrun-ws -submit -F GRIDSERVICEURI \ -c /bin/hostname globusrun-ws -batch (nicht interaktiv, gibt eine End Point Reference (EPR) aus)
Job Management Übung: Grid Security Übung: Datentransfer Übung: Job Management Übung: Information- und Monitoringdienst Beispiel: Jobauftrag globusrun-ws -submit -f jobauftrag.xml Beispiel: jobauftrag.xml <job> <executable>/bin/echo</executable> <argument>hello World</argument> <stdout>${globus_user_home}/stdout1</stdout> </job>
Übung: Grid Security Übung: Datentransfer Übung: Job Management Übung: Information- und Monitoringdienst Globus Toolkit 4 - Information- und Monitoringdienst Globus Toolkit Architektur
Übung: Grid Security Übung: Datentransfer Übung: Job Management Übung: Information- und Monitoringdienst Information- und Monitoringdienst (1) WS-MDS, MDS4 Monitoring and Discovery System (MDS) Management von Ressource-Informationen Dienste: IndexService (für Registrierung), TriggerService (für Event handling) Registrierungsinterface für Grid Dienste (ResourceProperties) Abfrageinterface für Benutzer oder Dienste Hierarhische Aufbau möglich (für VOs) Die wichtigsten Befehle wsrf-query wsrf-[insert get update delete]-property
Übung: Grid Security Übung: Datentransfer Übung: Job Management Übung: Information- und Monitoringdienst Information- und Monitoringdienst (2) Beispiel Abfrage wsrf-query -a -z none \ -s https://hostname:port/wsrf/services/defaultindexservice \ / XPath Abfrage für registrierten Dienst-Adressen wsrf-query -a -z none \ -s https://hostname:port/wsrf/services/defaultindexservice \ /*/*/*/*[local-name()= Address ]
Gliederung Instant-Grid Terminalserver-/Cluster Setup Grid Setup Anwendungen 1 Was haben wir schon gelernt? 2 Übungen in der Grid Umgebung des Praktikums 3 Instant-Grid Terminalserver-/Cluster Setup Grid Setup Anwendungen 4
Instant-Grid Terminalserver-/Cluster Setup Grid Setup Anwendungen Ziel des Instant-Grids Ohne Vorkenntnisse einsetzbare Test-, Demonstrations- und Entwicklungsumgebung für Grid-Technologien Live-CD auf Knoppix-Basis mit Grid-Umgebung Webseite: www.instant-grid.org Automatisches Setup der Hardware auf Terminalserver-/Clusterebene der Grid-Middleware von Beispielanwendungen eines Portalsystems Setup erfolgt während des Bootens volle Grid-Funktionalität für User knoppix
Grid ohne und mit Instant-Grid (1) Instant-Grid Terminalserver-/Cluster Setup Grid Setup Anwendungen Grid ohne Instant-Grid Network-/ Cluster-Setup > ifconfig eth0 192.168.1.100 netm... > vi dhcp.conf > vi ntp.conf > vi named.conf >... GT4 Installation > apt-get install postgresql > adduser globus > tar xzf gt4.0.2-all-source-installer.tgz >./configure --prefix=/usr/local/.. >... GT4 Pre-requisites >./j2sdk-1_4_2_10-linux-i586.bin > tar xzf apache-ant-1.6.5-bin.tar.gz > export ANT_HOME=/usr/local/... > export JAVA_HOME=/usr/java/... >... Oh no, that's just the first of so many Grid-Computer- Wannabes Grid Services Setup > vi /etc/xinetd.d/gridftp > vi /etc/services > vi..globus-4.0.2/start-stop > vi /etc/init.d/globus-4.0.2 >... User Certificate > source../globus-user-env.csh > grid-cert-request > grid-ca-sign -in request.pem -out... > vi /etc/grid-security/grid-mapfile >... Host Certificate >../setup/globus/setup-simple-ca >../setup/setup-gsi -default > grid-cert-request -host `hostname` > cp ~globus/hostsigned.pem... >...
Grid ohne und mit Instant-Grid (2) Instant-Grid Terminalserver-/Cluster Setup Grid Setup Anwendungen Grid mit Instant-Grid GT4 Pre-requisites Network-/ Cluster-Setup GT4 Installation Grid Services Setup Cool, I can start directly with my Grid! Host Certificate User Certificate
Instant-Grid Terminalserver-/Cluster Setup Grid Setup Anwendungen Terminalserver-/Cluster Setup (1) Beschreibung des Bootvorgangs Booten eines Rechners mit der CD (Frontend) Weitere Rechner Booten über das Netzwerk per PXE Netzwerksetup per DHCP CD-Image per NFS gemeinsames Verzeichnis /clusterwork Anpassen der Konfiguration per daemon (distributord) Erkennen von neuen oder entfernten Knoten alle 30s Internetzugang der Knoten per NAT
Terminalserver-/Cluster Setup (2) Instant-Grid Terminalserver-/Cluster Setup Grid Setup Anwendungen Automatischer Clusteraufbau
Instant-Grid Terminalserver-/Cluster Setup Grid Setup Anwendungen Grid Setup Setup vollautomatisch ohne Benutzereingabe Erstellung einer Zertifizierungsstelle (CA) auf dem Frontend Knoten erhalten X.509 Zertifikat von der CA automatische Generierung der Zertifikate für User knoppix Starten der Globus-Dienste (CA, Gatekeeper, WS-GRAM, WebMDS, GridFTP,...) Starten des Grid Workflow Execution Systems (GWES) Anmerkung Nach dem Booten besitzt User knoppix volle Grid-Funktionalität
Anwendungen Instant-Grid Terminalserver-/Cluster Setup Grid Setup Anwendungen Ganglia (Monitoringsystem) Portalsystem GridSphere (Portlet-Container) GridPortlets und GT4-Portlets (Portlets mit Grid-Funktionalität) POV-Ray (Raytracingprogramm) ERAMAS (Environmental Risk Analysis a. Management System) Gridlabs (Zugriff auf virtuelle Experimente) GridSearch (gridweite Vollindizierung von Dokumenten) Gobby (gemeinsamer Texteditor + Chat) Coccinella (gemeinsamer Zeichentafel + Chat)
Beispiel: POV-Ray (1) Instant-Grid Terminalserver-/Cluster Setup Grid Setup Anwendungen POV-Ray Web-Frontend
Beispiel: POV-Ray (2) Instant-Grid Terminalserver-/Cluster Setup Grid Setup Anwendungen Beispielanwendung: POV-Ray Frei verfügbarer Renderer mit Raytracing-Technik Einfache Parallelisierbarkeit durch Zuweisen von Bildausschnitten an einzelne Grid-Knoten Zugriff über Web-Frontend und über Portal (Workflow Management) Rendern einzelner Bilder und Animationen möglich
Beispiel: POV-Ray (3) Instant-Grid Terminalserver-/Cluster Setup Grid Setup Anwendungen POV-Ray Web-Frontend
Beispiel: POV-Ray (4) Instant-Grid Terminalserver-/Cluster Setup Grid Setup Anwendungen POV-Ray Web-Frontend
Beispiel: Gobby Instant-Grid Terminalserver-/Cluster Setup Grid Setup Anwendungen Gobby ist ein Texteditor, der es erlaubt, dass mehrere Personen gleichzeitig an einer Textdatei arbeiten. Jeder Bearbeiter eines Textes besitzt einen Benutzernamen und eine bestimmte Farbe
Beispiel: Coccinella Instant-Grid Terminalserver-/Cluster Setup Grid Setup Anwendungen Coccinella ist eine Jabber-Clientsoftware. Ein Vorteil gegenüber anderen Jabber-Clients ist die Möglichkeit, in Coccinella über eine Zeichentafel (Whiteboard) mit mehreren Personen zusammen arbeiten zu können. Dies kann z.b. für den gemeinsamen Entwurf von Diagrammen benutzt werden.
Gliederung Anmeldung, Benutzerkonten Firewallregeln Organisatorisches Zusammenfassung 1 Was haben wir schon gelernt? 2 Übungen in der Grid Umgebung des Praktikums 3 4 Anmeldung, Benutzerkonten Firewallregeln Organisatorisches Zusammenfassung
Anmeldung (1) Anmeldung, Benutzerkonten Firewallregeln Organisatorisches Zusammenfassung Anmeldung: Cluster Umgebung
Anmeldung (2) Anmeldung, Benutzerkonten Firewallregeln Organisatorisches Zusammenfassung Anmeldung: Grid Umgebung
Anmeldung (3) Anmeldung, Benutzerkonten Firewallregeln Organisatorisches Zusammenfassung Anmeldung: Firewall
Anmeldung (4) Anmeldung, Benutzerkonten Firewallregeln Organisatorisches Zusammenfassung Anmeldung: Cluster eine Gruppe - ein PBS Benutzer ssh meinpbsuser@[name-der-cluster-rechner] meinpbsuser: wurde schon verteilt Anmeldung: Grid ein Student - ein Grid Zertifikat - ein PBS Benutzer ssh meingriduser@[name-der-login-rechner] ssh meingriduser@[name-der-virtaulizationsmaschine] ssh meingriduser@[name-des-instantgridfrontend] gsissh meingriduser@[name-meiner-instantgridmaschine] meingriduser: Probleme Bitte ausprobieren und die Probleme bei uns melden!
Anmeldung, Firewall Anmeldung, Benutzerkonten Firewallregeln Organisatorisches Zusammenfassung Firewallregeln externes Netzinterface mit Internetzugang SSH HTTP internes Netzinterface internes Netz zu den Grid Knoten internes Netz ist nicht geschützt
Anmeldung, Benutzerkonten Firewallregeln Organisatorisches Zusammenfassung Organisatorisches Hinweis bei Interesse Instant-Grid herunterladen und ausprobieren
Zusammenfassung Anmeldung, Benutzerkonten Firewallregeln Organisatorisches Zusammenfassung Was hat man heute gelernt? Globus Toolkit 4 Wie kann ich Grid benutzen? Grid Zertifikat beantragen (CA) (in einer VO Mitglied werden) mit Grid Tools loslegen (CLI oder Portal oder 3rd Party) Zertifikat Management X.509 Grid Zertifikat, Grid Proxy Zertifikat Daten Management mit GridFTP (und RFT) Job Management mit WS-GRAM Service Discovery mit WS-MDS (MDS4) Instant-Grid als Versuchsumgebung
Anmeldung, Benutzerkonten Firewallregeln Organisatorisches Zusammenfassung Danke Danke! Bei Fragen: tibor [dot] kalman [at] gwdg [dot] de