What's New in Condor - Computer Sciences Dept.

advertisement
What’s new in Condor?
Condor Week 2006
Todd Tannenbaum
Computer Sciences Department
University of Wisconsin-Madison
condor-admin@cs.wisc.edu
http://www.cs.wisc.edu/condor
So Todd… where is v6.8?
Well, v6.7 has been a
challenge…
2
3
Changes Per Condor Version
60
50
40
Bugs Fixed
30
New Features
20
10
0
6.7.19 6.7.16 6.7.13 6.7.10 6.7.7
6.7.3
6.7.0 6.6.10 6.6.7 6.6.4
6.6.1
6.5.4
6.5.1
6.4.7
6.4.2 6.3.3
6.3.0
6.2.0
4
Around since the 80’s
5
Around since the 80’s
80’s Mullet Boy
6
100 people surveyed!
Favorite “ility” ?
7
100 people surveyed!
Favorite “ility” ?
Deployability!
8
Existing Ports
• Digital UNIX 4.0
Alpha
• AIX 5.2 (clipped) PowerPC
• Tru64 5.1 (clipped)
Alpha
• HP UNIX 10.20 PA RISC
• HP UNIX 11.00 (clipped using hpux10.20 32 bit) PA RISC
• Irix 6.5 (clipped) SGI
• Linux 2.4.x (glibc 2.2) - Red Hat 7.1, 7.2, 7.3 (clipped) Alpha
• Linux 2.4.x (glibc 2.2) - Red Hat 7.1, 7.2, 7.3 Intel x86
• Linux 2.4.x (glibc 2.2) - Red Hat 8
Intel x86
• Linux 2.4.x (glibc 2.3) - Red Hat 9
Intel x86
• Enterprise Server 8.1 Intel Itanium
• Solaris 8
Sparc
• Solaris 9
Sparc
• Microsoft Windows 2000 or XP (clipped) Intel x86
9
›
New
Ports
Introduced in v6.6.x





MacOSX (“clipped") PowerPC
Sigh…
Debian Linux 3.1 Intel x86
Fedora Core 1 Intel x86
Red Hat Enterprise Linux 3 Intel x86
SuSE Linux Enterprise Server 8.1 Intel
Itanium
› Introduced in v6.7.x






AIX 5.1 (“clipped") PowerPC
Fedora Core 2 on x86
Fedora Core 3 on x86
SuSE 8.0 ("clipped") on AMD64
Solaris 10 ("clipped") on Sparc
Scientific Linux (Release 303) on x86
“Psilord” – The Condor
porting doctor. Talk to him
in person tomorrow.
› Still to be introduced in v6.7.x (before
v6.8.0)
 HPUX 11i 64-bit pa-risc
 RHEL 4 on x86
 “native” 64 bit AMD Linux
10
Porting Table
› See
http://www.cs.wisc.edu/condor/porting/port_table.html
› Highlights
 Almost every 32-bit Linux flavor as “full”
 Every other Unix, MacOS and Windows available as “clipped”
 Solaris 10 and HP-UX 11.x now “clipped”
 FreeBSD 4 contribution from Yahoo!, added 5 and 6
 X86_64 Linux: “full” running in the lab
11
Backfill Jobs
› Execute machines will run a locally
›
staged executable when otherwise idle.
Currently designed for BOINC.
# Turn on backfill functionality, and use BOINC
ENABLE_BACKFILL = TRUE
BACKFILL_SYSTEM = BOINC
# Spawn a backfill job if we've been Unclaimed for more than 5 minutes
START_BACKFILL = $(StateTimer) > (5 * $(MINUTE))
# Evict a backfill job if the machine is busy (based on keyboard
# activity or cpu load)
EVICT_BACKFILL = $(MachineBusy)
12
Joining Condor’s
Einstein@Home Compute
Team
› If you’re running BOINC backfill jobs in
Condor and want to use your cycles to
help another UW project, please join the
Einstein@Home computation
› Join the “Condor Backfill” team:
http://einstein.phys.uwm.edu/team_display.p
hp?teamid=5994
http://einstein.phys.uwm.edu/create_accoun
t_form.php?teamid=5994
13
More “deployability”
› “Personal” Condor Support on Win32
 LocalSystem not required
› MSI installer on Win32 (thanks Micron!)
› New tools
Safe, dynamic Condor service deployment.
More info @ Research BOF 9am Rm219
 condor_cold_start and
 condor_cold_stop
14
100 people surveyed!
Favorite “ility” ?
15
100 people surveyed!
Favorite “ility” ?
Availability!
16
Condor with
Firewalls and NATS:
GCB in v6.8.0!
GCB layer
connect
translate
Client app
TCP/IP
listen
accept
Server app
GCB layer
TCP/IP
Relay point
17
Job Progress continues if
connection is interrupted
› Now for Vanilla, Java, and Grid universe jobs,
Condor supports reestablishment of the
connection between the submitting and executing
machines.
 If network outage between execute and submit machine
 If submit machine restarts
 Grid Universe was tricky…
› To take advantage of this feature, put the
following line into their job’s submit description
file:
JobLeaseDuration = <N seconds>
For example:
job_lease_duration = 1200
18
Job Progress continues if
submit machine fails
› Condor can now support a submit
machine “hot spare” (schedd failover)
If your submit machine A is down for
longer than N minutes, a second machine
B can take over
Requires shared filesystem between
machines A and B
19
Central Manager Failover
› Condor Central Manager has two services
› condor_collector
 Now a list of collectors is supported
› condor_negotiator (matchmaker)
 If fails, election process, another takes over
 Accounting state is peridocially replicated
 Contributed technology from Technion
20
Reliability, cont.
› Time shifts
› Quill
› Closing windows of vulnerability
21
100 people surveyed!
Favorite “ility” ?
22
100 people surveyed!
Favorite “ility” ?
Lighweight?
23
100 people surveyed!
Favorite “ility” ?
Lighweight?
24
100 people surveyed!
Favorite “ility” ?
25
100 people surveyed!
Favorite “ility” ?
Functionality!
26
Security
› Common Authentication Methods
between Condor on Unix and Win32
Kerberos 1.4
• Additional hopeful benefit: Authentication
against MS Active Directory!
SSL
Password (shared secret)
› Starter only runs known executables
› More powerful, unified map file(s)
› GSI credentials delegated
27
With Condor on Win32, it be
nice if …
› My jobs could access my files just like the
›
›
condor_shadow can
I didn’t have to tie my execute machines to
a single account
I didn’t have to run condor_store_cred
from every machine where my credential is
needed
(thank you Optena)
28
The Windows CredD
› A centralized repository
for user passwords
C:\>condor_store_cred add
Account: gquinn@CROW
myp4sswd
“store
password”
<password>
y0urs
credd
Enter password:
Operation succeeded.
29
The Windows CredD
schedd
“fetch password”
myp4sswd
y0urs
<password>
shadow
Submit machines can use the
CredD to impersonate the user in
the shadow
30
The Windows CredD
starter
“fetch password”
<password>
condor_exec.exe
myp4sswd
y0urs
Execute machines can use the
CredD to run jobs as the
submitting user!
31
Running Jobs as Submitting User
› In submit file:
Run_job_as_owner = true
› In config file on submit and execute
nodes:
CREDD_HOST = vault.cs.wisc.edu
STARTER_ALLOW_RUNAS_OWNER = True
CREDD_CACHE_LOCALLY = True
32
Some Condor APIs
› Command Line tools
›
›
›
›
›
›
›
 condor_submit, condor_q, etc
 -format, -constraint, -xml
Condor Perl Module
Chirp
Checkpoint Library API
MW --- improved!
DRMAA (Works w/ Win32, on SourceForge)
Condor Grid ASCII Protocol (GAHP)
Web Service Interface
33
DRMAA
› Distributed Resource Management
Application API (DRMAA)
 GGF Working Group
 An API specification for the submission and
control of jobs to one or more Distributed
Resource Management (DRM) systems
› An API with C and Java bindings
 not a protocol
› Scope
 Does: job submission, monitoring, control, final
status
 Does not: file staging, reservations, security, …
34
Condor GAHP
› The Condor GAHP is a relatively low-level protocol
›
based on simple ASCII messages through stdin and
stdout
Supports a rich feature set including two-phase
commits, transactions, and optional asynchronous
notification of events
35
GAHP, cont
Example:
R: $GahpVersion: 1.0.0 Nov 26 2001 NCSA\ CoG\ Gahpd $
S: GRAM_PING 100 vulture.cs.wisc.edu/fork
R: E
S: RESULTS
R: E
S: COMMANDS
R: S COMMANDS GRAM_JOB_CANCEL GRAM_JOB_REQUEST
GRAM_JOB_SIGNAL GRAM_JOB_STATUS GRAM_PING INITIALIZE_FROM_FILE
QUIT RESULTS VERSION
S: VERSION
R: S $GahpVersion: 1.0.0 Nov 26 2001 NCSA\ CoG\ Gahpd $
S: INITIALIZE_FROM_FILE /tmp/grid_proxy_554523.txt
R: S
S: GRAM_PING 100 vulture.cs.wisc.edu/fork
R: S
S: RESULTS
R: S 0
S: RESULTS
R: S 1
R: 100 0
S: QUIT
R: S
36
Web Service Interfaces
› SOAP over http or https to
›
›
the Condor daemons
Use any language or
platform (where you can find
a decent SOAP library)
Functionality Exposed
in current release
 Submit jobs
 Retrieve job output
 Remove/hold/release jobs
 Query machine status (fetch ads from collector)
 Query job status (fetch ads from the schedd)
37
Getting machine status via
SOAP (in Java with Axis)
locator = new CondorCollectorLocator();
collector = locator.getcondorCollector(new
URL(“http://machine:port”));
ads = collector.queryStartdAds(“Memory>512“);
Because we give you WSDL information you don’t
have to write any of these functions.
38
More Functionality changes..
› FINALLY, clean/consistent cross-platform quoting
rules for arguments and environment variables
(see condor_submit man page)
› Schedd can run HawkEye modules, just like the
Startd
 Enables monitoring on the submit machine
› condor_history : now faster than a snail, and
›
cleans up droppings.
DeferralTime, DeferralWindow
 Coordinated starts
› BIND_ALL_INTERFACES in config file
› WANT_REMOTE_IO in job ClassAd
39
ClassAd Functions in Condor!
› Conditionals
 IfThenElse(condition,then,else)
› String functions
 Strcat(), strcmp(), toUpper(), etc.
› StringList functions
 Example of a “string list” (CSV style)
• Mylist = “Joe, Jon, Jeff, Jim, Jake”
 StrListContains(), StrListAppend(),
StrListRemove(), etc.
› Others
 Regular expressions, arithmetic, etc…
40
Accounting Groups and
Group Quota Support
› Account Group (w/ CORE Feature Animation)
› Account Group Quota (inspiration CDF @ Fermi)
 Sample Problem: Cluster w/ 500 nodes, Chemistry Dept
purchased 100 of them, Chemistry users must always be
able to use them
 Could use Machine Rank…
• but this ties to specific machines
 Or
•
•
•
•
could use new group support
Each group can be given a quota in config file
Job ads can specify group membership
Group quotas are satisfied first
Accounting by user and by group
41
100 people surveyed!
Favorite “ility” ?
42
100 people surveyed!
Favorite “ility” ?
Universability!
43
Grid Universe
› With new Grid Universe, always specify a
›
‘gridtype’. So the old “globus” Universe is now
declared as:
universe = grid
gridtype = gt2
Other gridtypes?
 GT2 (Globus Toolkit 2)
 GT3 (Globus Toolkit 3.2)
‘Condor-G’
 GT4 (Globus Toolkit 3.9.5+)
 UNICORE
 Nordugrid
 PBS (OpenPBS, PBSPro – technology from INFN)
 LSF (Platform LSF – technology from INFN)
 CONDOR (thanks gLite!)
‘Condor-C’
44
Other Grid Universe
improvements
› Condor-G has support for credential refresh via the
MyProxy Online Credential Management in NMI
http://grid.ncsa.uiuc.edu/myproxy
(both GT2 and GT4)
› GT4 : we start a GridFTP server behind the scenes
 GridFTP server bundled w/ Condor nowadays
› Some functionality present in Condor-G added to
Condor-C
 Forwarding of refreshed credentials (EGEE)
 GSI authentication support
 Cleaner ClassAd representation (URL)
45
Parallel Universe
› Replaces the “MPI” universe
› Allows running arbitrary programs
that need to gang-schedule multiple
machines
MPICH, LAM, …
FT-MPICH (Seoul National Univ)
Great for testing environments
46
Hey Jobs! We’re watching you!
› Local Universe
Just like Scheduler
Universe, but there is a
condor_starter
All advantages of the
starter
Submit
Execute
startd
schedd
starter
starter
job
job
Hey, job,
behave or else!
47
100 people surveyed!
Favorite “ility” ?
48
100 people surveyed!
Favorite “ility” ?
Scalability!
49
Faster Negotiation
› SIGNIFICANT_ATTRIBUTES determined
automatically
 Job attributes AutoClusterId and
AutoClusterAttributes
 Rounding of Attributes
› Schedd uses non-blocking TCP connects to the
›
›
›
startd
Negotiator caching
Collector Forks for queries
More coming…
50
› Knobs
Scalability, cont.
 GRIDMANAGER_MAX_JOBMANAGERS_PER_RESOURCE,
 GRIDMANAGER_MAX_PENDING_SUBMIT_PER_RESOURCE,
 GRIDMANAGER_MAX_SUBMITTED_JOBS_PER_RESOURCE
› One instance of gridmanager handles
multiple jobs (all from a given user)
› One instance of condor_dagman can run
multiple dags
Is the Shadow next?
› Buffered I/O read on schedd restart
(thanks Yahoo!)
51
Quill
› Job ClassAds
Master
Startd
…Schedd
Job
Queue
log
Quill
RDBMS
Queue
+
History
Tables
›
›
information
mirrored into an
RDBMS
Both active jobs
and historical jobs
Benefits BOTH
scalability and
accessibility
52
Version 6.9.x
53
What’s brewing for after
v6.8.0?
› More data, data, data
Stork distributed now v6.7.x, incl DAGMan
support – next it is NeST’s turn.
NeST manage Condor spool files, ckpt
servers
• GridFTP used to move the bits
Quill++ and CondorDB goodness
› Virtual Machines (and the future of
Standard Universe)
Research BOF w/ Jaeyoung Moon, rm219
9am
54
SOAP API
› First focus will be to finish
interfaces used by all command-line
tools
condor_userprio, condor_cod, …
› Explore message-based security
Ian Alderman’s work w/ signed ClassAd
attributes
55
Privilege Separation
› No more root in the Condor daemons!
› Instead, a small component will be
responsible for privileged operations
› Initial exploratory work w/ GNU
userv (Cambridge)
› Now focusing on integration w/ glexec
(gLite / nikhef)
56
“The Year of the Schedd”
› Schedd is juggling to many tasks
 Break it down into smaller pieces, more modular
› Scalability
 All non-blocking I/O
 Hierarchy of schedds
› Schedd-on-the-side
 “Scheduler booster”
 Transform & delegate job classads to different
grids
 A “job router” for a grid
57
Thank you!
58
Download