370 likes | 381 Views
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
E N D
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
“10 GFlops, EOS data, 20 Mb/sec -- for 20 mins” GRAM GRAM GRAM Using Information forResource Brokering Info service: location + selection Metacomputing Directory Service Resource Broker “What computers?” “What speed?” “When available?” “20 Mb/sec” GRAM Globus Resource Allocation Managers “50 processors + storage from 10:20 to 10:40 pm” Fork LSF EASYLL Condor etc.
Examples of Useful Information • Characteristics of a compute resource • IP address, software available, system administrator, networks connected to, OS version, load • Characteristics of a network • 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 GlobusMetacomputing 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 • Look up the IP number, amount of memory, and so forth, associated with a particular machine • Yellow Pages • 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 • Lightweight Directory Access Protocol (LDAP) • Add gateways and pragmas • Globus specific data model • 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 • Netscape Directory Server v4 • 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 • 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
Compute Resources Operating System Memory Hierarchy Health and Status Network Interfaces IP address Interface types Performance Data Schedule Jobs CPU Loads Network Traffic Resource Managers Contact strings Scheduled jobs Free nodes Software Configuration Version Control Contact information Organizations People Sample Object Classes
Object Class Specification GlobusHostOBJECT CLASS SUBCLASS OF GlobusPhysicalResource RDN = hn (hostName) CHILD OF { organization } MUST CONTAIN { type :: cis, vendor :: cis, model :: cis, ostype :: cis, osversion :: cis } MAY CONTAIN { networkNode :: dn, totalMemory :: cis, totalSwap :: cis, . . . } GlobusPhysicalResourceOBJECT CLASS SUBCLASS OF GlobusTop RDN = rn (resourceName) MUST CONTAIN { imageObject :: dn } MAY CONTAIN { manager :: dn, provider :: dn, technician :: dn, description :: cis, documentation :: 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>
Ethernet Switch MDS Data Model Physical Structure Directory Information Tree c=US o=globus IBM SP sunny WAN LAN o=USC o=ANL nn=WAN hot LAN dark cold … … ou=ISI ou=MCS nn=MCS-lan Steve Ian Steve Carl Gregor Warren cn=Carl nn=SP-switch … ANL/MCS USC/ISI nn=SP-ether cn=Steve cn=Ian Distinguished Name hn=cold.mcs… cn=Gregor <hn= dark.mcs.anl.gov, ou= MCS, o = Argonne National Laboratory, o = Globus, c = US> hn=dark.mcs… cn=Steve hn=sp1.mcs.anl.gov cn=Warren … 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 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-info-update, 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-searchoptions -h mds.globus.org MDS server -p 389MDS port -b “o=Globus, c=US”search start point -T 30LDAP querytimeout -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: • white space is significant • use -L for LDIF format required
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 • Objects without hn fields are still listed • DNs are always listed 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
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 3Extended 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)