870 likes | 1k Views
WP 10. Information Services. Giovanni Aloisio, Massimo Cafaro, Italo Epicoco. giovanni.aloisio@unile.it massimo.cafaro@unile.it italo.epicoco@unile.it. University of Lecce, Italy. Outline. Grid Information Services Globus Toolkit 2.x MDS Configuring & adding information providers
E N D
WP 10 Information Services Giovanni Aloisio, Massimo Cafaro, Italo Epicoco giovanni.aloisio@unile.itmassimo.cafaro@unile.ititalo.epicoco@unile.it University of Lecce, Italy
Outline • Grid Information Services • Globus Toolkit 2.x MDS • Configuring & adding information providers • GridLab WP 10 activities • Work in progress 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
Grid Information Services • System information is critical to operation of the grid and construction of applications • What resources are available? • Resource discovery • What is the “state” of the grid? • Resource selection • How to optimize resource use • Application configuration and adaptation? • We need a general information infrastructure to answer these questions 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
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 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
Grid Information: facts of Life • Information is always old • changing system state • need to provide quality metrics • Distributed state hard to obtain • complexity of global snapshot • Component will fail • Scalability and overhead • Many different usage scenarios • heterogeneous policy, different information organizations, different queries, etc. 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
Grid Information Service • 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 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
VO C ? ? ? ? VO A VO B The GIS Problem: Many Information Sources, Many Views R R R R R R R R R R R R R R R R R 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
What is a Virtual Organization? • Facilitates the workflow of a group of users across multiple domains who share (some of) their resources to solve particular classes of problems • Collates and presents information about these resources in a uniform view 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
Outline • Grid Information Services • Globus Toolkit 2.x MDS • Configuring & adding information providers • GridLab WP 10 activities • Work in progress 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
Two Classes of MDS Servers • Grid Resource Information Service (GRIS) • Supplies information about a specific resource • Configurable to support multiple information providers • LDAP as inquiry protocol • Grid Index Information Service (GIIS) • Supplies collection of information which was gathered from multiple GRIS servers • Supports efficient queries against information which is spread across multiple GRIS server • LDAP as inquiry protocol 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
MDS 2.2 Architecture Customized Aggregate Directories Users A A Enquiry Protocol Registration Protocol R R R R Standard Resource Description Services 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
Information Protocols • Grid Resource Registration Protocol • Support information/resource discovery • Designed to support machine/network failure • Grid Resource Inquiry Protocol • Query resource description server for information • Query aggregate server for information • LDAP V3.0 in Globus 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
MDS 2.2 Service Architecture VO-specific Aggregate Directories discovery (GRIP?) ? A A lookup (GRIP) registration (GRRP) R R R R standard Resource Description services • Dynamic Registration via Reg. Protocol (GRRP) • Resource Inquiry via Info. Protocol (GRIP) • Co-located with resource on network • Resource Discovery (via GRIP or other) • Using GRIP allows resource/directory hierarchy 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
R R R R R R R R R R R R R R R registration R fault-partition messages R R R R R R R R R R R R R R R R R R replicated directories divergent directories VO-A VO-B Distributed Services D D D D • Service scales with Grid growth • Loose consistency model tolerates failures • Interoperability by GRIP/GRRP protocols 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
Metacomputing Directory Service • Uses LDAP as Inquiry • Access information in a distributed directory • Directory represented by collection of LDAP servers • Each server optimized for particular function • Directory can be updated by: • Information providers and tools • Applications (i.e., users) • Backend tools which generate info on demand • Information dynamically available to tools and applications 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
LDAP Details • Lightweight Directory Access Protocol • IETF Standard • Stripped down version of X.500 DAP protocol • Supports distributed storage/access (referrals) • Supports authentication and access control • Defines: • Network protocol for accessing directory contents • Information model defining form of information • Namespace defining how information is referenced and organized 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
MDS Components • LDAP 3.0 Protocol Engine • Based on OpenLDAP with custom backend • Integrated caching • Information providers • Delivers resource information to backend • APIs for accessing & updating MDS contents • C, Java, PERL (LDAP API, JNDI) • Various tools for manipulating MDS contents • Command line tools, Shell scripts & GUIs 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
Grid Resource Information Service • Server which runs on each resource • Given the resource DNS name, you can find the GRIS server • well known port = 2135 • Provides resource specific information • Much of this information may be dynamic • Load, process information, storage information, etc. • GRIS gathers this information on demand • “White pages” lookup of resource information • Ex: How much memory does machine have? 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
Grid Index Information Service • GIIS describes a class of servers • Gathers information from multiple GRIS servers • Each GIIS is optimized for particular queries • Ex1: Which Alliance machines are >16 process SGIs? • Ex2: Which Alliance storage servers have >100Mbps bandwidth to host X? • Akin to web search engines • Organization GIIS • The Globus Toolkit ships with one GIIS • Caches GRIS info with long update frequency • Useful for queries across an organization that rely on relatively static information (Ex1 above) • “Yellow pages” lookup • Ex: Which machines have large memory? 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
Server Registration • A GRIS or GIIS server can be configured to (de-) register itself during startup/shutdown • Targets specified in configuration file • Soft-state registration protocol • Good behavior in case of failure • Allows for federations of information servers • E.g. Argonne GRIS can register with both Alliance and DOE GIIS servers 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
Soft-state Registration • Periodic notification • “Service/resource is available” • Expected-frequency metadata • Automatic directory construction • Add new resources to directory • Invite resources to join new directory • Self-cleaning • Reduce occurrence of “dead” references 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
Hierarchical MDS Deployment GIIS GIIS GRISes 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
MDS Commands • LDAP defines a set of standard commands ldapsearch, etc. • Globus Toolkit defines MDS-specific commands • grid-info-search, grid-info-host-search • APIs are defined for C, Java, etc. • C: OpenLDAP client API • ldap_search_s(), … • Java: JNDI 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
Information Services API • RFC 1823 defines an IETF draft standard client API for accessing LDAP databases • Connect to server • Pose query which returns data structures contains sets of object classes and attributes • Functions to walk these data structures • Globus does not provide an LDAP API and recommends the use of OpenLDAP, an open source implementation of RFC 1823. • LDAP APIs available in other languages • E.g. Java JDNI, Perl, Python, etc. 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
MDS 2.2 Features • Security Mechanisms • GSI mutual-authentication • Fine-grained access control by GSI name • Performance Enhancements • Better query speeds • Less stale information • New Information Model (schema) • Better representation of computers • Cleaner namespace management 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
MDS 2.2 Software Stack • OpenLDAP 2.0.x • Implements LDAPv3 protocol • Client and server components • Cyrus-SASL • Generic security • We provide loadable SASL/GSS plugin • Globus GSI • Provides GSS-API interface to PKI • Shared library used by our SASL plugin 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
MDS 2.2 Information Model • Structural information • Resource hierarchy maps to objects • Named positions in LDAP DIT • Merged information • Some parents “join” child data • Simplifies common query patterns • Auxiliary information • Uniform representation of leaf/parent data • Uses LDAP auxiliary objectclasses 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
hostname hn= CPU RAM DISK CPU VM NET software= OS dev group= CPUs CPU CPU dev group= memory dev group= disk dev group= net RAM DISK NET dev= cpu 0 dev= cpu 1 CPU CPU VM dev= RAM dev= VM dev= /scratch1 dev= eth0 RAM VM DISK NET GRIS Host Objects OS OS 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
GRIS Object Hierarchy Mds-Host-name=hostname Mds-Software-Deployment=operating system Mds-Device-Group-name=processors Mds-Device-name=cpu 0 Mds-Device-Group-name=memory Mds-Device-name=physical memory Mds-Device-name=virtual memory Mds-Device-Group-name=filesystems Mds-Device-name=/scratch1 Mds-Device-name=/scratch2 Mds-Device-Group-name=networks Mds-Device-name=eth0 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
GRIS Structural Class Hierarchy Mds Attr: Mds-validfrom (like createtime) Attr: Mds-validto (accuracy metadata) Attr: Mds-keepto (discard metadata) MdsHost MdsDevice MdsDeviceGroup MdsSoftwareDeployment • Every MDS object: name, time metadata 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
GRIS Auxiliary Class Examples • Once per CPU • Once per CPU • Once per SMP • Once per MPP MdsCpu Attr: Mds-Cpu-vendor Attr: Mds-Cpu-model Attr: Mds-Cpu-speedMHz MdsCpuCache Attr: Mds-Cpu-Cache-L1kB MdsCpuSmp Attr: Mds-Cpu-Smp-size MdsCpuTotal Attr: Mds-Cpu-Total-count 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
GRIS Auxiliary Class Examples MdsCpuFree (once per SMP) Attr: Mds-Cpu-Free-1minX100 Attr: Mds-Cpu-Free-5minX100 Attr: Mds-Cpu-Free-15minX100 MdsCpuTotalFree (once per MPP) Attr: Mds-Cpu-Total-Free-1minX100 Attr: Mds-Cpu -Total-Free-5minX100 Attr: Mds-Cpu -Total-Free-15minX100 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
Client Tools • Globus Toolkit includes 2 command line client tools for querying MDS services • grid-info-search: General purpose client • grid-info-search –h <host> -p <port> -b <base> \ -T <timeout> [<filter>] [<attributes>] • -x: Anonymous access • grid-info-host-search: Same as grid-info-search, but defaults to GRIS standard port • E.g. grid-info-host-search –h localhost • Both clients can search for specific system information and filter results. 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
Filtering • 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 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
Outline • Grid Information Services • Globus Toolkit 2.x MDS • Configuring & adding information providers • GridLab WP 10 activities • Work in progress 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
Configuration files for Registration dc-n1.isi.edu grid-info-site-policy.conf grid-info-resource-register.conf grid-info-resource-ldif.conf GIIS GRIS dc-n2.isi.edu grid-info-resource-register.conf grid-info-resource-ldif.conf GRIS 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
Configuration files for Registration • A resource that is hosting a GIIS • grid-info-site-policy.conf • Determines whether to accept incoming registrations • Accept everything, or only registrations from the resources explicitly defined in this conf file (can use wildcards) • Default policy is to only accept registrations from self, and from port 2135 • In a hierarchical GIIS environment, this file must be modified from the default 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
grid-info-site-policy.conf Default Policy Data: objectclass: MdsRegistrationPolicy policydata: (&(Mds-Service-hn=mako.isi.edu)(Mds-Service-port=2135)) Change ‘policydata’ to this for completely open policy: (Mds-Service-hn=*) Change ‘policydata’ to this to restrict to 2 specific hosts: (&(|(Mds-Service-hn=dc-n2.isi.edu)(Mds-Service-hn=dc-n3.isi.edu))(Mds-Service-port=2135)) 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
Configuration files for Registration • A resource registering GRIS information with a GIIS • grid-info-resource-register.conf • Which GIIS’s this GRIS should register to, and how • GIIS could be on the same machine, but may not be • grid-info-resource-ldif.conf • Determines which GRIS providers are active and available to send data to the GIIS’s that this GRIS is registering with 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
Registering a GRIS with a GIIS • dn: <LDAP add object DN> • regtype: mdsreg2 • reghn: <host to send reg to> • regport: <port to send reg to> • regperiod: <how often to send reg (seconds)> • [service attribute/value]... • where service attribute entries depend on the type of LDAP object being published $GLOBUS_LOCATION/etc/grid-info-resource-register.conf 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
ExampleGRIS on dc-n2 registers with GIIS on dc-n1 • dn: Mds-Vo-Op-name=register, Mds-Vo-name=site, o=grid • regtype: mdsreg2 • reghn: dc-n1.isi.edu • regport: 2135 • regperiod: 600 • type: ldap • hn: dc-n2.isi.edu • port: 2135 • rootdn: Mds-Vo-name=local, o=grid • ttl: 1200 • timeout: 20 • mode: cachedump • cachettl: 30 $GLOBUS_LOCATION/etc/grid-info-resource-register.conf 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
Registration Control Parameters • regperiod • How often this GRIS will send a message to the GIIS noting its existence • ttl • How long the recieving GIIS should keep the registration information before assuming that the GRIS is no longer available • In general ttl should be: ttl = 2 x (regperiod) • cachettl • Recommendation to the GIIS about how long to maintain in cache, the GRIS information provided by this resource $GLOBUS_LOCATION/etc/grid-info-resource-register.conf 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
MDS 2.2 GRIS Providers • grid-info-cpu reports CPU/load info • grid-info-fs reports filesystem info • grid-info-mem reports RAM/VM info • grid-info-net reports NIC/net info • grid-info-os reports OS info • grid-info-platform reports arch. info • grid-info-merged merges all host info* • Extensible for other sources, e.g. GRAM 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
GRIS Dispatch Logic • For each provider: • Could search intersect provider? No, then skip. • Is provider cache stale? Yes, then refill. • Apply search filter to cache data. • Combine all intersecting providers’ results 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
GRIS Response Issues • MDS 2.2 is lazy • Probes are not issued unless queried • Some system probes are slow • “Best” probe may take several seconds • How to avoid stale data? • Clients set time-out per query • GRIS/GIIS define time-out per source • Fresh data found before timeout is returned • Cache fill continues after client time-out 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
New Information Providers • Decide what information to publish into MDS • Create a program that implements the I/O interface requirements of a GRIS Information Provider • Enable the information provider for an MDS installation 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
New Information Providers • Decide what information to publish into MDS • OID: conflict avoidance • OID Registered with IANA Private Enterprise Numbers • http://www.iana.org/cgi-bin/enterprise.pl • 1.3.6.1.4.1.3536.* Globus OID subspace • 1.3.6.1.4.1.3536.2.* Globus Info Services OID subspace • 1.3.6.1.4.1.3536.2.6.* MDS OID subspace • GridLab project OID: 1.3.6.1.4.1.3536.2.6.3536.9 • Object Naming: conflict avoidance • ISI will coordinate prefix naming. Request a prefix from: • mailto:mds-oid-registrar@globus.org • GridLab prefix: “GridLab” • Schema • Data Modeling problem • LDAP schema syntax problem • $GLOBUS_LOCATION/etc/grid-info-resource.schema 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
New Information Providers • Create your program • Any language. The only requirements are the I/O interface of your program: • Must be callable by fork and exec from the slapd process • You can pass in arguments to your program • Must return data in LDIF format • Data returned must match the LDAP schema • RFC 2849 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
New Information Providers • Enable your new information provider by adding a configuration block • $GLOBUS_LOCATION/etc/grid-info-resource-ldif.conf • # generate memory info every minute • dn: Mds-Device-Group-name=memory, Mds-Host-hn=mako.isi.edu, Mds-Vo-name=local, o=grid • objectclass: GlobusTop • objectclass: GlobusActiveObject • objectclass: GlobusActiveSearch • type: exec • path: /globus/libexec • base: grid-info-mem-linux • args: -devclassobj -devobjs -dn Mds-Host-hn=mako.isi.edu,Mds-Vo-name=local,o=grid -validto-secs 60 -keepto-secs 60 • cachetime: 60 • timelimit: 10 • sizelimit: 3 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003
New Information Providers • dn • Where the object lives in the DIT • These lines must be included: • objectclass: GlobusTop • objectclass: GlobusActiveObject • objectclass: GlobusActiveSearch • type: exec • path • Path to the information provider program • base • Name of the information provider program • args • Arguments to be passed to the information provider program • cachetime • In seconds, how long GRIS will consider the data to not be stale • timelimit • In seconds, how long the GRIS should wait for the information provider to return data before giving up on it • sizelimit • Max number of LDIF objects to be read from the output of the information provider $GLOBUS_LOCATION/etc/grid-info-resource-ldif.conf 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003