1 / 37

Globus Grid Tutorial Part 3: Information Services

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

larrybrown
Download Presentation

Globus Grid Tutorial Part 3: Information Services

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Globus Grid TutorialPart 3:Information Services

  2. 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?

  3. 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

  4. “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.

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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 }

  16. 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>

  17. 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

  18. 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

  19. MDS Object Class Browser

  20. 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, ….

  21. 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

  22. 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

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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>

  29. 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

  30. 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

  31. 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”

  32. 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.

  33. 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

  34. 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

  35. 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)

  36. 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)

More Related