Universität Karlsruhe (TH)Rechenzentrum
Grid-Technologien im Rechenzentrum Das Condor-System
Horst Wenske
RechenzentrumUniversität Karlsruhe (TH)
ZKI Herbsttagung 2005, 12. Sept. 2005
Page 2
Universität Karlsruhe (TH)Rechenzentrum
Übersicht
» Was ist das Condor Projekt/System?
» Eigenschaften von Condor
» Das Condor Daemon Layout
» Ein kleines Benutzerbeispiel
» Condor-G
» Der Einsatz von Condor im RZ Karlsruhe.
ZKI Herbsttagung 2005, 12. Sept. 2005
Page 3
Universität Karlsruhe (TH)Rechenzentrum
Das Condor Projekt
» Das Condor Projekt ist 1985 gegründet worden
» Momentan arbeiten ca. 40 Vollzeitentwickler an Condor
» Es existieren inzwischen viele Unterprojekte die mit Condor zusammenarbeiten
» Condor wird in akademischen, wissenschaftlichen und wirtschaftlichen Sektor eingesetzt
» Seit den letzten Jahren arbeitet die Grid Community eng mit dem Condor Projekt zusammen.
ZKI Herbsttagung 2005, 12. Sept. 2005
Page 4
Universität Karlsruhe (TH)Rechenzentrum
Was ist das Condor System?
» Condor ist ein spezialisiertes Workload Management System für rechenintensive Jobs
» Condor verfügt über viele Eigenschaften eines klassichen Batch Systems:
– Job Queueing– Scheduling Policies– Prioritäten Modelle– Ressourcen Monitoring– Ressourcen Management
» Condor unterstützt dedizierte und „on-demand“ Rechencluster
» Condor kann z.B. brachliegende Rechenleistung von nicht genutzten Workstations und Poolraum PCs nutzbar machen.
ZKI Herbsttagung 2005, 12. Sept. 2005
Page 5
Universität Karlsruhe (TH)Rechenzentrum
Eingenschaften von Condor
» Der Source Code von einem Condor Job muss nicht modifiziert werden
» Condor bietet PVM und MPI (MPICH) Unterstützung
» Im „Standard Universe“ sind Job Migration und Checkpointing möglich
» Condor bieter ein sehr flexibles Ressourcen Matching durch ClassAds
» Eine spezielle Condor Version (Condor-G) arbeitet mit Globus zusammen
» Das Verbinden von verschiedenen Condor Pools ist möglich (Condor Flocking)
» …
ZKI Herbsttagung 2005, 12. Sept. 2005
Page 6
Universität Karlsruhe (TH)Rechenzentrum
Die Condor Software
» Man kann Condor auf den Condor Webseiten herunterladen
http://www.cs.wisc.edu/condor
» Operating System Unterstützung:
– Erhältlich für viele Unix Systeme (z.B. Linux, Solaris, HPUX, Irix)
– Erhältlich für Windows NT / XP
» Condor Public Licence.
ZKI Herbsttagung 2005, 12. Sept. 2005
Page 7
Universität Karlsruhe (TH)Rechenzentrum
Personal Condor / Central Manager
Das Condor Daemon Layout
Master
collector
negotiator
schedd
startd
ZKI Herbsttagung 2005, 12. Sept. 2005
Page 8
Universität Karlsruhe (TH)Rechenzentrum
Der condor_master Daemon
» Der Master Daemon startet und überwacht alle anderen Condor Daemonen.
» Er läuft auf jedem Condor Knoten
» Er überwacht, ob neue Daemon Binärdateien existieren, und restarted „schonend“ einen entsprechenden Daemon
» Er dient weiterhin als Server für entfernte Administrationsbefehle.
– condor_reconfig, condor_restart, condor_on, condor_off, …
ZKI Herbsttagung 2005, 12. Sept. 2005
Page 9
Universität Karlsruhe (TH)Rechenzentrum
Der condor_collector Daemon
» Der condor_collector läuft nur auf den so genannten Central Manager des Condor Pools
» Der “definiert” einen Condor Pool
» Es gibt einen Collector pro Pool
» Es sammelt die Informationen von allen anderen Condor Daemonen im Pool
– “Directory Service” / Datenbank für einen Condor Pool
» Jeder Daemon schickt periodische Updates (“ClassAds”) zum Collector
» Bedient Dienstanfragen:
– Anfrangen von Condor Daemonen.
– Anfragen von Condor Anwendern (condor_status).
ZKI Herbsttagung 2005, 12. Sept. 2005
Page 10
Universität Karlsruhe (TH)Rechenzentrum
condor_status
% condor_status
Name OpSys Arch State Activity LoadAv Mem ActvtyTime
haha.cs.wisc. IRIX65 SGI Unclaimed Idle 0.198 192 0+00:00:04
antipholus.cs LINUX INTEL Unclaimed Idle 0.020 511 0+02:28:42
coral.cs.wisc LINUX INTEL Claimed Busy 0.990 511 0+01:27:21
doc.cs.wisc.e LINUX INTEL Unclaimed Idle 0.260 511 0+00:20:04
dsonokwa.cs.w LINUX INTEL Claimed Busy 0.810 511 0+00:01:45
ferdinand.cs. LINUX INTEL Claimed Suspended 1.130 511 0+00:00:55
vm1@pinguino. LINUX INTEL Unclaimed Idle 0.000 255 0+01:03:28
vm2@pinguino. LINUX INTEL Unclaimed Idle 0.190 255 0+01:03:29
ZKI Herbsttagung 2005, 12. Sept. 2005
Page 11
Universität Karlsruhe (TH)Rechenzentrum
Der condor_startd Daemon
» Er representiert eine Machine im Condor System
» Er is verantwortlich Jobs zu starten, suspenden und zu stoppen
» Er setzt die Wünsche des Besitzers des Rechners/Rechenknotens durch (der Besitzer kann Policies definieren, wann und wie sein Rechner benutzt werden darf)
» Er existiert nur auf “execute” Knoten.
ZKI Herbsttagung 2005, 12. Sept. 2005
Page 12
Universität Karlsruhe (TH)Rechenzentrum
Der condor_schedd Daemon
» Er existiert nur auf “submit” Knoten (Rechner von denen man eine Job abschicken kann)
» Er verwaltet eine persistente Queue von Jobs
» Er is verantwortlich fürs Kontaktieren von verfügbaren Rechnern und dem schicken von Jobs
» Er bedient Anwenderanfragen welche sich auf Jobs beziehen:
– condor_submit,condor_rm, condor_q, condor_hold, condor_release, condor_prio, …
ZKI Herbsttagung 2005, 12. Sept. 2005
Page 13
Universität Karlsruhe (TH)Rechenzentrum
Der condor_negotiator Daemon
» Er befindet sich nur auf dem Central Manager
» Es gibt nur einen condor_negotiator Daemon pro Pool
» Er führt das sogenannte “Matchmaking” in Condor durch
» Er bekommt Informationen vom Collector, welche Ressourcen verfügbar sind und welche Jobs abgearbeitet werden müssen
» Er versucht ein “Match” von Job und Ressource zu finden
» Dieser Match wird als “Vorschlag” an Job und Ressource geschickt
» Sowohl Job als auch Ressource Maschine müssen die gegenseitigen Bedingugen erfüllen, damit der Job ausgeführt wird.
ZKI Herbsttagung 2005, 12. Sept. 2005
Page 14
Universität Karlsruhe (TH)Rechenzentrum
Layout von einem Condor Pool
= ClassAd Communication Pathway
= Process Spawned Central Manager
Master
Collector
Cluster Node
Master
startd
Cluster Node
Master
startdDesktop
Master
startd
schedd
Desktop
Master
startd
schedd
negotiator
schedd
negotiator
schedd
MasterMaster
Master Master
Master
ZKI Herbsttagung 2005, 12. Sept. 2005
Page 15
Universität Karlsruhe (TH)Rechenzentrum
Die ersten Schritte mit Condor
» Der Benutzer muss ein “Universe” für seinen Job wählen
– Z.B. Vanilla Universe
» Der Benutzer muss seinen Job “batch-ready” machen (z.B. keine interaktiven Eingaben, keine weiteren Prozesse forken etc.)
» Der Benutzer muss eine sogenannte Submit Description Datei erstellen
» Mit dem Ausführen vom condor_submit Befehl mit der Submit Description Datei als Argument, wird der Job in die lokale Queue aufgenommen.
ZKI Herbsttagung 2005, 12. Sept. 2005
Page 16
Universität Karlsruhe (TH)Rechenzentrum
Erstellung einer Submit Description Datei
» Eine normale ASCII Textdatei
» Die Dateiendung spielt für Condor keine Rolle
» Versorgt Condor mit den notwendigsten Job Informationen
– Welche auführbare Datei, Universe, Input, Output und Error Dateien benutzt werden sollen.
– Command-line Argumente, Umgebungsvariabeln, besondere Jobanforderungen, …
» Es köennen viele Jobs auf einmal spezifiziert werden (ein Job Cluster), die jeweils unterschiedliche Input/Output Dateien und Argumente haben können.
ZKI Herbsttagung 2005, 12. Sept. 2005
Page 17
Universität Karlsruhe (TH)Rechenzentrum
Einfache Submit Description Datei
# Simple condor_submit input file
# (Lines beginning with # are comments)
# NOTE: the words on the left side are not
# case sensitive, but filenames are!
Universe = vanilla
Executable = my_job
Queue
ZKI Herbsttagung 2005, 12. Sept. 2005
Page 18
Universität Karlsruhe (TH)Rechenzentrum
Der Befehl condor_submit
» Als erstes gibt man den Befehl condor_submit mit dem Pfad zur gespeicherten Job Description ein:– condor_submit my_job.submit
» condor_submit parst die Submit Datei, prüft auf Fehler und erstellt eine “ClassAd”, die den Job beschreibt.
ZKI Herbsttagung 2005, 12. Sept. 2005
Page 19
Universität Karlsruhe (TH)Rechenzentrum
ClassAds
» ClassAds stellen Condors interne Datenrepresentation dar
» Sie sind ähnlich zu klassifierten Werbeanzeigen/Suchanfragen
» Sie representieren ein Objekt und seine Attribute
» Es kann auch beschreiben, mit was ein Objekt kompatibel ist.
ZKI Herbsttagung 2005, 12. Sept. 2005
Page 20
Universität Karlsruhe (TH)Rechenzentrum
ClassAd einer Maschine
[Type = "Machine";Activity = "Idle";DayTime = 36107 // current timeKeyboardIdle = 1432; // secondsDisk = 323496; // kbytesMemory = 64; // megabytesState = "Unclaimed";LoadAvg = 0.042969;Mips = 104;Arch = "INTEL";OpSys = "SOLARIS251";Kflops = 21893;Name = "foo.cs.wisc.edu";ResearchGroup = { "raman", "miron", "solomon"};Rank = member(other.owner, ResearchGroup) ? 10 : 0;Constraint = KeybrdIdle>'0:15':
Daytime()<'8:00' ||Daytime()>'18:00';
]
ZKI Herbsttagung 2005, 12. Sept. 2005
Page 21
Universität Karlsruhe (TH)Rechenzentrum
ClassAd eines Jobs
[ Type = "Job";QDate = 886799469; // Submit time secs. past 1/1/1970CompletionDate = 0;Owner = "raman";Cmd = "run_sim";WantRemoteSyscalls = 1;WantCheckpoint = 1;Iwd = "/usr/foo/foo1";Args = "-Q 17 3200 10";Memory = 31; Rank = KFlops/1E3 + other.Memory/32;Constraint = other.Type == "Machine" && other.Arch == "INTEL„
&& other.OpSys == "SOLARIS251„&& other.Disk >= 10000&& other.Memory >= self.Memory;
]
ZKI Herbsttagung 2005, 12. Sept. 2005
Page 22
Universität Karlsruhe (TH)Rechenzentrum
Die Job Queue
» Der condor_submit Befehl sendet die Jobs ClassAd zu den Schedd Daemon.
– Dieser verwaltet die lokale Job Queue– Er speichert den Job in der lokalen Job Queue
• Das ist eine atomare Operation, Zwei-phasen commit
» Man kann sich den Status der lokalen Queue mit dem Befehl condor_q ausgeben lassen.
ZKI Herbsttagung 2005, 12. Sept. 2005
Page 23
Universität Karlsruhe (TH)Rechenzentrum
Die Ausgaben von condor_submit und condor_q
% condor_submit my_job.submit
Submitting job(s).
1 job(s) submitted to cluster 1.
% condor_q
-- Submitter: perdita.cs.wisc.edu : <128.105.165.34:1027> :
ID OWNER SUBMITTED RUN_TIME ST PRI SIZE CMD
1.0 frieda 6/16 06:52 0+00:00:00 I 0 0.0 my_job
1 jobs; 1 idle, 0 running, 0 held
ZKI Herbsttagung 2005, 12. Sept. 2005
Page 24
Universität Karlsruhe (TH)Rechenzentrum
Weitere Information über einen Job
» Diese Einstellungen kann man in der Submit Datei genauer spezifizieren
» Condor verschickt normalerweise Emails bei Events
– Generell Deaktivieren: Notification = Never– Nur bei Fehlern informieren: Notification = Error
» Condor erstellt Log Dateien (user log)
– “Beinhaltet die Lebensgeschichte eines Jobs“– Zeigt alle Events in dem Leben des Jobs an– Man sollte immer ein Logfile haben.
• Ein Logfile wird aktiviert durch: Log = filename
ZKI Herbsttagung 2005, 12. Sept. 2005
Page 25
Universität Karlsruhe (TH)Rechenzentrum
Beispiel einer Condor User Log Datei
000 (0001.000.000) 05/25 19:10:03 Job submitted from host: <128.105.146.14:1816>
...
001 (0001.000.000) 05/25 19:12:17 Job executing on host: <128.105.146.14:1026>
...
005 (0001.000.000) 05/25 19:13:06 Job terminated.
(1) Normal termination (return value 0)
Usr 0 00:00:37, Sys 0 00:00:00 - Run Remote Usage
Usr 0 00:00:00, Sys 0 00:00:05 - Run Local Usage
Usr 0 00:00:37, Sys 0 00:00:00 - Total Remote Usage
Usr 0 00:00:00, Sys 0 00:00:05 - Total Local Usage
9624 - Run Bytes Sent By Job
7146159 - Run Bytes Received By Job
9624 - Total Bytes Sent By Job
7146159 - Total Bytes Received By Job
ZKI Herbsttagung 2005, 12. Sept. 2005
Page 26
Universität Karlsruhe (TH)Rechenzentrum
Condor-G: Globus + Condor
Globus
» Eine Middleware die bei vielen Grid Projekten eingestzt wird
» Es ermöglich Zugang zu entfernten Rechenressourcen
» Es ermöglich zuverlässlichen und robusten Datentransfer
Condor
» Condor ermöglicht Job Scheduling über viele verschiedene Ressourcen hinweg
» Es verfügt über starke Fehlertoleranz durch Checkpointing und Migration
» Kann eine Schicht über Globus als eigenes Batch System für “das Grid” verwendet werden
ZKI Herbsttagung 2005, 12. Sept. 2005
Page 27
Universität Karlsruhe (TH)Rechenzentrum
Condor-G Installation
Möglichkeiten Condor-G zu installieren:
» Condor-G ist bereits Bestandteil von Condor. Condor-G “entspricht” dem Globus Universe
» Condor/Condor-G ist Bestandteil von NMI (NSF Middleware Initiative)
» Condor/Condor-G ist Bestandteil von VDT (Virtual Data Toolkit).
ZKI Herbsttagung 2005, 12. Sept. 2005
Page 28
Universität Karlsruhe (TH)Rechenzentrum
Condor Globus Universe
ZKI Herbsttagung 2005, 12. Sept. 2005
Page 29
Universität Karlsruhe (TH)Rechenzentrum
Der Einsatz von Condor im RZ Karlsruhe
» Das RZ Karlsruhe verfügt über ca. 400 Poolrechner
» Diese Poolrechner sind in der Regel über 90% der Zeit idle
» Wir wollen diese brachliegende Rechenpower für Projekte nutzbar machen
» Dabei sollen der Poolbetrieb und Vorlesungen in keiner Weise beeinträchtig werden
» Momenten testen wir gerade Condor in unserem Pool Betrieb.
ZKI Herbsttagung 2005, 12. Sept. 2005
Page 30
Universität Karlsruhe (TH)Rechenzentrum
Seiteneffekte durch Condor
» Ist die Klimaanlage ausreichend für den Condorbetrieb dimensionert?
» Lärmentwicklung der PCs unter Volllast während einer Vorlesung
» Organisatorische Strukturen des restriktiven Poolbetriebs, die mit Condor in Einklang gebracht werden müssen.
ZKI Herbsttagung 2005, 12. Sept. 2005
Page 31
Universität Karlsruhe (TH)Rechenzentrum
Referenzen
» Condor Webseiten: http://www.cs.wisc.edu/condor/
» Diplomarbeit: „Condor Clusters with Multilateral Resource Matchmaking in Heterogeneous Networks, von Horst Wenske, Sept. 2003
» Studienarbeit: „Deploying Condor in Restricted Computer Pools“, von Heiko Reese, Sept. 2005