Transcript document
Globus Grid Tutorial
Part 3:
Information Services
Goals of this Tutorial
Learn how to use the Globus
Metacomputing Directory Service to locate
and determine characteristics of resources
Locate resources
Where are resources with required
architecture, installed software, available
capacity, network bandwidth, etc.?
Determine resource characteristics
What are the physical characteristics,
connectivity, capabilities of a resource?
The Need for Information
System information is critical to operation
of the grid and construction of applications
How does an application determine what
resources are available?
What is the “state” of the computational
grid?
How can we optimize an application based
on configuration of the underlying system?
We need a general information
infrastructure to answer these questions
Using Information for
Resource Brokering
“10 GFlops, EOS data,
20 Mb/sec -- for 20 mins”
Info service:
location + selection
Resource
Broker
“20 Mb/sec”
GRAM
Globus Resource
Allocation Managers
GRAM
GRAM
Fork
LSF
EASYLL
Condor
etc.
“What computers?”
“What speed?”
“When available?”
Metacomputing
Directory
Service
“50 processors + storage
from 10:20 to 10:40 pm”
GRAM
Examples of Useful Information
Characteristics of a compute resource
Characteristics of a network
IP address, software available, system
administrator, networks connected to, OS
version, load
Bandwidth and latency, protocols, logical
topology
Characteristics of the Globus infrastructure
Hosts, resource managers
Information Infrastructure
Provide access to static and dynamic
information regarding system components
A basis for configuration and adaptation in
heterogeneous, dynamic environments
Requirements and characteristics
Uniform, flexible access to information
Scalable, efficient access to dynamic data
Access to multiple information sources
Decentralized maintenance
The Globus
Metacomputing Directory Service
Store information in a distributed directory
Directory stored in collection of servers
Directory can be updated by
Globus system
Other information providers and tools
Applications (i.e., users)
Information dynamically available to
Tools
Applications
Directory Service Functions
White Pages
Yellow Pages
Look up the IP number, amount of memory,
and so forth, associated with a particular
machine
Find all the computers of a particular class
or with a particular property
Tuned for high-volume lookup or search
Temporary inconsistencies are considered
okay
The
Metacomputing Directory Service
Standard interface and
protocol
Add gateways and pragmas
Globus specific data model
Lightweight Directory Access
Protocol (LDAP)
Host-centric representation
Data discovery & update
Application
Middleware
LDAP API
& represent.
Data
model
MDS Client Library
SNMP
…
NWS
NIS
LDAP
MDS Components
Standard LDAP server
Tools for populating & maintaining MDS
Integrated with Globus server release, not of
concern to most Globus users
Discover static info, update dynamic info
APIs for accessing & updating MDS contents
Netscape Directory Server v4
C, Java, PERL (LDAP API, JNDI)
Various tools for manipulating MDS contents
Command line tools, Shell scripts & GUIs
LDAP Directory Service
Lightweight Directory Access Protocol
Stripped down version of X.500 DAP protocol
Supports distributed storage/access (referrals)
Supports replication
Becoming de facto standard
Defines:
Network protocol for accessing directory contents
Information model defining form of information
Namespace defining how information is
referenced and organized
Directory Structure
Directory contents
What information is stored in directory
Group related information into entries
Directory organization
Objects organized into tree structure
Position of object in tree uniquely names
entry
Entries and Object Classes
Directory entry consists of related set of
attributes and values
Entries are typed by their Object Class
Object class specifications define
Required and optional attributes
Attribute types
Single inheritance on object classes
Sample Object Classes
Compute Resources
Resource Managers
Operating System
Contact strings
Memory Hierarchy
Scheduled jobs
Health and Status
Free nodes
Network Interfaces
Software
IP address
Configuration
Interface types
Version Control
Performance Data
Contact information
Schedule Jobs
Organizations
CPU Loads
People
Network Traffic
Object Class Specification
GlobusHost OBJECT CLASS
SUBCLASS OF GlobusPhysicalResource
RDN = hn (hostName)
GlobusPhysicalResource OBJECT CLASS
CHILD OF {
SUBCLASS OF GlobusTop
organization
RDN = rn (resourceName)
}
MUST CONTAIN {
MUST CONTAIN {
imageObject :: dn
type
:: cis,
}
vendor
:: cis,
MAY CONTAIN {
model
:: cis,
manager
:: dn,
ostype
:: cis,
provider
:: dn,
osversion
:: cis
technician
:: dn,
}
description
:: cis,
MAY CONTAIN {
documentation
:: cis
networkNode
:: dn,
}
totalMemory
:: cis,
totalSwap
:: cis,
...
}
The Directory Information Tree
Directory entries organized into tree
Called Directory Information Tree (DIT)
Subtrees can be distributed or replicated
Position in tree uniquely names entry
Each object is uniquely determined by its
distinguished name (DN)
List of unique attribute names and values
along path from root of DIT to object, e.g.:
<hn=sp2.sdsc.edu, ou=SDSC, o=NPACI, o=Globus, c=US>
MDS Data Model
Physical Structure
c=US
Ethernet
sunny
hot
Carl
WAN
LAN
Steve
USC/ISI
Switch
dark
IBM
SP
o=globus
Directory
Information
Tree
LAN
cold
Ian Gregor SteveWarren
ANL/MCS
Distinguished Name
<hn= dark.mcs.anl.gov,
ou= MCS,
o = Argonne National Laboratory,
o = Globus,
c = US>
…
o=USC
o=ANL
ou=ISI
ou=MCS
nn=WAN
…
nn=MCS-lan
cn=Carl
nn=SP-switch
…
nn=SP-ether
cn=Steve
cn=Ian
hn=cold.mcs…
cn=Gregor
hn=dark.mcs…
cn=Steve
cn=Warren
hn=sp1.mcs.anl.gov
…
hn=spN.mcs.anl.gov
MDS Tools
Web-based browsers and displays
MDS Object Class Browser
MDS Explorer
Various APIs and search tools
Translators from “Globus Object Definition
Language”
Commented LDIF
LDAP schema definition language
HTML
MDS Object Class Browser
MDS Access/Update Commands
LDAP defines a set of standard commands
ldapsearch, ldapmodify, ldapdelete, etc.
We also define MDS-specific commands
grid-info-search, grid-info-create, grid-infoupdate, grid-info-remove
Routines to ensure data consistency and
to insert metadata
APIs are defined for C, Java, etc.
ldap_search_s, ldap_modify_s, ….
Searching an LDAP Database
grid-info-search [options] filter [attributes]
Default grid-info-search options
-h mds.globus.org
MDS server
-p 389
MDS port
-b “o=Globus, c=US”
search start point
-T 30
LDAP query timeout
-s sub
scope = subtree
alternatives:
base : lookup this entry
one
: lookup immediate children
grid-info-search: “Filter”
Filters allow selection of object based on
relational operators (=, ~=,<=, >=)
grid-info-search “cputype=*”
Compound filters can be construct with
Boolean operations: (&, |, !)
grid-info-search “(&(cputype=*)(cpuload1<=1.0))”
grid-info-search “(&(hn~=sdsc.edu)(latency<=10))”
Hints:
required
white space is significant
use -L for LDIF format
Example 1:
grid-info-search “(mn~=sdsc.edu)”
cn=sp097.sdsc.edu-loadleveler, ou=SDSC, o=NPACI, o=Globus, c=US
objectclass=GlobusResourceManager
cn=sp097.sdsc.edu-loadleveler
mn=sp097.sdsc.edu-loadleveler
hn=sp097.sdsc.edu
contact=sp097.sdsc.edu:754:/C=US/O=Globus/O=NPACI/OU=SDSC/ \
CN=sp097.sdsc.edu-loadleveler
apiversion=0.1
apitype=loadleveler
managedresources=hn=sp097.sdsc.edu, ou=SDSC, o=NPACI,
\
o=Globus, c=US
gramversion=1.53
gramversiondate=1998/06/1921:17:23
gramsecurity=ssleay
freenodes=49
totalnodes=117
lastupdate=Sat Jun 27 18:23:34 GMT 1998
scheduledjob=none
Example 2:
grid-info-search -L “(sw=Globus)”
dn: sw=Globus, hn=host.domain.edu, o=My Organization, o=Globus, c=US
sw: Globus
objectclass: GlobusSoftware
releasemajor: 1
releaseminor: 1
releasepatch: 0
configuration: --prefix=/cpc/globus/service/sun4-sparc2 \
--with-ssl-path=/cpc/ssl/sun4-sparc2
configuration: --prefix=/cpc/globus/tools/sun4-sparc2 \
--with-ssl-path=/cpc/ssl/sun4-sparc2 installprefix: /cpc/globus/
serviceprefix: /cpc/globus/service
toolsprefix: /cpc/globus/tools
deployprefix: /opt/globus/
userid: globus
objectname: sw=Globus, hn=host.domain.edu, o=My Organization, \
o=Globus, c=US
lastupdate: Wed Jan 20, 06:06:13 GMT 1999
grid-info-search: “Attributes”
Projections on the data objects are performed
by supplying a list of attributes
Retrieve the DN for all objects in the MDS:
% grid-info-search -L “(objectclass=*)”
dn
dn: o=Globus, c=US
dn: o=University of Southern California, o=Globus, c=US
dn: ou=MCS, o=Argonne National Laboratory, o=Globus, c=US
dn: o=NASA Ames, o=Globus, c=US
dn: ou=SDSC, o=NPACI, o=Globus, c=US
Multiple Attribute Selection
% grid-info-search -L “(objectclass=*)” dn hn
Returns the distinguished name (dn) and
hostname (hn) of all objects
dn: o=CalTech, o=Globus, c=US
dn: hn=neptune.cacr.caltech.edu, o=CalTech, o=Globus, c=US
hn: neptune.isi.edu
dn: ou=SDSC, o=NPACI, o=Globus, c=US
dn: o=University of Southern California, o=Globus, c=US
Objects without hn fields are still listed
DNs are always listed
Efficient Lookups
Naïve searches retrieve lots of information
% grid-info-search “(objectclass=*)” | grep contact
Whenever possible, reduce search domain
Specify a search base (-b)
% grid-info-search -b “o=NASA Ames, o=Globus, C=US”
Specify the scope of the search (-s)
options: base, one, and sub
Narrow the amount of objects selected,
i.e., use specialized filters
Specify which attributes you want
Authentication to MDS
Authentication is required to perform certain
operations (e.g., write operations)
Each site has a Directory Manager
cn=Directory Manager, o=Organization, c=US
Users registered with the MDS have a DN
cn=Jane Doe, o=Organization, c=US
% grid-info-search -D “cn=Jane Doe, o=Organization, c=US” \
-w <passwd>
Updating MDS Entries
To update an existing database entry:
grid-info-modify -D "cn=Directory Manager, o=Globus, c=US” \
-w <PASSWORD> -f sample.ldif
dn: hn=tuva.mcs.anl.gov, ou=MCS, o=Argonne National
Laboratory, o=Globus, c=US
cpuload1: 3.11
cpuload5: 2.64
cpuload15: 2.57
Metadata is inserted by grid-info-update
grid-info-update -D "cn=Directory Manager, o=Globus, c=US” \
-w <PASSWORD> -f sample.cldif
Example: Discovering CPU Load
Retrieve CPU load fields of compute resources
grid-info-search -L “(objectclass=GlobusComputeResource)” \
dn cpuload1 cpuload5 cpuload15
dn: hn=lemon.mcs.anl.gov, ou=MCS, o=Argonne National Laboratory,
o=Globus, c=US
cpuload1: 0.48
cpuload5: 0.20
cpuload15: 0.03
dn: hn=tuva.mcs.anl.gov, ou=MCS, o=Argonne National Laboratory,
o=Globus, c=US
cpuload1: 3.11
cpuload5: 2.64
cpuload15: 2.57
Exercise 3
Extended Exercises
Explore the MDS via
MDS object code Browser
http://www.globus.org/mds
MDS Navigator
http://www.globus.org/testbeds
Globus View
http://www.globus.org/testbeds
Write a set of MDS/LDAP queries
% grid-info-search “hn~=isi.edu”
MDS Search Exercises
1. List all hosts that have a “lsf” jobmanager type.
2. List all hosts that have a CPU load greater than 5.
3. List all hosts with 16 or more CPUs.
4. Determine the current versions of Globus installed
at Argonne.
5. Determine the deployment directory on
flash.isi.edu.
6. Determine the bandwidth between
pitcairn.mcs.anl.gov and bolas.isi.edu.
MDS Search Answers (1)
1. List all hosts that have a “lsf” gatekeeper.
grid-info-search “apitype=lsf” hostname
2. List all hosts that have a CPU load greater than 5.
grid-info-search “cpuload1>=5” hostname
3. List all hosts with 16 or more CPUs.
grid-info-search “cpucount>=16” hostname
4. Determine the current versions of Globus installed at
Argonne.
grid-info-search \
-b ‘o=Argonne National Laboratory, o=Globus, c=US’ \
‘sw=Globus’ releasemajor releaseminor releasepatch
MDS Search Answers (2)
5. Determine the deployment directory on flash.isi.edu.
grid-info-search \
‘(&(objectclass=*ResourceManager)(hn=flash.isi.edu))’ \
deploydir
6. Determine the bandwidth between
pitcairn.mcs.anl.gov and bolas.isi.edu.
grid-info-search \
“(|(&(sourcehostname=pitcairn.mcs.anl.gov) \
(destinationhostname=bolas.isi.edu)) \
(&(sourcehostname=bolas.isi.edu)
\
(destinationhostname=pitcairn.mcs.anl.gov)))” bandwidth
Summary
MDS provides the information needed to
perform dynamic resource discovery and
configuration
Critical component of resource brokers
MDS is base on existing directory service
standards (LDAPv3)
Changes from 1.0 to 1.1
Tools are renamed
globus-mds-{search,add,delete,modify}
became
grid-info-{search,add,delete,modify}
Configurable LDAP search timeout (-T)