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)