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 GridLab WP 10 activities Work in progress Massimo Cafaro 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 Massimo Cafaro 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 Massimo Cafaro 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. Massimo Cafaro 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 Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 Information Sources, Many Views R R ? R VO C R R R R ? R VO A R R ? R Massimo Cafaro R R R ? VO B 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 R R R 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 Massimo Cafaro 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 Massimo Cafaro 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 Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 MDS 2.2 Architecture Customized Aggregate Directories Users Enquiry A A Protocol Registration Protocol R R R R Standard Resource Description Services Massimo Cafaro 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 Massimo Cafaro 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 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 Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 R Distributed Services R R R R D R R R R R R R R R R registration messages D R R R R R R R R replicated directories R R R R R R D fault-partition D R R divergent directories R R VO-A VO-B Service scales with Grid growth Loose consistency model tolerates failures Interoperability by GRIP/GRRP protocols Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 R R 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 Massimo Cafaro 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 Massimo Cafaro 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 Massimo Cafaro 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? Massimo Cafaro 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? Massimo Cafaro 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 Massimo Cafaro 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 Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 Hierarchical MDS Deployment GIIS GIIS GRISes Massimo Cafaro 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 Massimo Cafaro 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. Massimo Cafaro 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 Massimo Cafaro 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 Massimo Cafaro 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 Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 GRIS Host Objects CPU hn= hostname RAM DISK CPU VM OS NET software=OS OS dev group=CPUs CPU CPU dev group=memory RAM dev=cpu 0 dev=cpu 1 CPU CPU VM dev=RAM RAM Massimo Cafaro dev=VM VM dev group=disk DISK dev group=net NET dev=/scratch1 DISK dev=eth0 NET 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 Massimo Cafaro 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 Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 GRIS Auxiliary Class Examples MdsCpu Once per CPU Once per CPU Once per SMP Once per MPP 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 Massimo Cafaro 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 Massimo Cafaro 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. Massimo Cafaro 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 Massimo Cafaro 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 Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 Configuration files for Registration dc-n1.isi.edu GIIS grid-info-site-policy.conf grid-info-resource-register.conf grid-info-resource-ldif.conf GRIS dc-n2.isi.edu grid-info-resource-register.conf grid-info-resource-ldif.conf Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 GRIS 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) Massimo Cafaro 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=dcn3.isi.edu))(Mds-Service-port=2135)) Massimo Cafaro 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 Massimo Cafaro 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 Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 Example GRIS 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 Massimo Cafaro 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 Massimo Cafaro 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 Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 GRIS Dispatch Logic For each provider: 1. 2. 3. 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 Massimo Cafaro 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 Massimo Cafaro 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 Massimo Cafaro 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 Massimo Cafaro 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 Massimo Cafaro 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 Massimo Cafaro 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 Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 Outline Grid Information Services Globus Toolkit 2.x MDS Configuring servers & adding information providers GridLab WP 10 activities Work in progress Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 GridLab WP 10 Tasks T10.1 Analysis of current state of the art GIS. Completed T10.2 Comparison of GIS capabilities and GridLab dynamic grid computing requirements. Completed T10.3 Specification of information model. Completed T10.4 Security mechanisms & policies. T10.5 Development of extended GIS T10.6 Development of high-level APIs Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 GridLab WP 10 Deliverables D10.1 Analysis report. Delivered D10.2 Requirements & specification. Delivered D10.3 Prototype release. Delivered D10.4 Extended GIS release D10.5 First release report D10.6 Second release report Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 GridLab WP 10 Milestones M10.1 Month 3 Requirements analysis report. On time M10.2 Month 6 Technical specification. On time M10.3 Month 12 Prototype GIS server. On time M10.4 Month 24 First release of GIS M10.5 Month 36 Documented second release of GIS Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 Requirements of GridLab MDS Performance Scalability Security Uniformity Expressiveness Extensibility Multiple sources Dynamic data Flexible access Deployability Decentralized control Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 WP 10: Current release MDS schema extension to provide information about: Services Software Users Firewalls Virtual Organizations Certification Authorities Access to MDS We developed a GSI enabled version of gSOAP supporting mutual authentication and delegation of credentials Developed GSI enabled Web Services in order to: Register information Unregister information Lookup information Generic MDS search Developed GSI enabled clients for the above functionalities Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 Implementation GT 2.x based C based Uses LDAP API WEB SERVICE GSI enabled; uses gSOAP Toolkit WSDL description for clients Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 The gSOAP Tooolkit by Robert Van Engelen, Florida State University, USA development environment for C/C++ Web services easy-to-use RPC compiler: produces the stub and skeleton routines to integrate (existing) C or C++ applications into SOAP/XML Web services automatically maps native C/C++ application data types to semantically equivalent XML types and vice versa simple API relieving the user from the burden of SOAP details SOAP 1.1/1.2 and WSDL 1.1 Zlib compression, SSL encryption, and streaming direct internet message encapsulation (DIME) 2nd GridLab Conference Massimo Cafaro Eger - Hungary, March 31 - April 1 2003 The GSI plugin for gSOAP By Massimo Cafaro, Daniele Lezzi (University of Lecce) and Robert Van Engelen (FSU) Overrides gSOAP callbacks to provide transport-level GSI security Provides mutual authentication and delegation of credentials Very simple API relieving the user from the burden of GSI details Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 A GSI enabled client Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 A GSI enabled, threaded Web Service Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 Information about Services GridLab-Mds-Service-name: service name GridLab-Mds-Service-port: service port GridLab-Mds-Service-type: service protocol GridLab-Mds-Service-description: service description GridLab-Mds-Service-publisher: service publisher Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 Information about Software GridLab-Mds-Software-name: name GridLab-Mds-Software-version: version GridLab-Mds-Software-path: pathname GridLab-Mds-Software-totalLicences: number of total software licences GridLab-Mds-Software-freeLicence: number of available software licences GridLab-Mds-Software-licenceInfo: information about software licence GridLab-Mds-Software-startupEnvironment: multi-valued software startup environmental variables GridLab-Mds-Software-executable: software executable GridLab-Mds-Software-arguments: multi-valued software arguments GridLab-Mds-Software-description: software description GridLab-Mds-Software-helpURL: software help URL 2nd GridLab Conference GridLab-Mds-Software-usage: usage Massimo Cafaro Eger - Hungary,software March 31 - April 1 2003 Information about Users GridLab-Mds-User-ID: user’s login name on local resource GridLab-Mds-User-Mapped-DN: multi-valued attribute representing the Distinguished Name mapped on the user GridLab-Mds-User-homedir: user’s home directory GridLab-Mds-User-shell: user’s shell GridLab-Mds-User-UID: user’s UID GridLab-Mds-User-GID: user’s GID GridLab-Mds-User-comment: a short comment about the user Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 Information about Firewall GridLab-Mds-Firewall-hostname: firewall hostname GridLab-Mds-Firewall-ports: multi-valued attribute representing open ports (range) GridLab-Mds-Firewall-validityTime: time frame during which open ports ranges are valid GridLab-Mds-Firewall-adminDN: Distinguished Name of firewall administrator Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 Information about VOs GridLab-Mds-Vo-name: Virtual Organization to which a specified computational resource belongs to GridLab-Mds-Vo-helpDeskPhoneNumber: multivalued help desk phone number GridLab-Mds-Vo-helpDeskURL: URL pointing to a Virtual Organization’s web page GridLab-Mds-Vo-adminName: administrator name of the VO Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 Information about CAs GridLab-Mds-Certificate-Subj: Distinguished Name of the recognized certification authority GridLab-Mds-Certificate-version: CA’s certificate version GridLab-Mds-Certificate-serialNumber: CA’s certificate serial number GridLab-Mds-Certificate-signatureAlgorithm: CA’s certificate signature algorithm GridLab-Mds-Certificate-issuer: CA’s certificate issuer GridLab-Mds-Certificate-validity-from: beginning date of the CA’s certificate validity GridLab-Mds-Certificate-validity-to: end date of the CA’s certificate validity GridLab-Mds-Certificate-publicKeyAlgorithm: CA’s certificate public key algorithm 2nd GridLab Conference GridLab-Mds-Certificate-RSAPublicKey: CA’s certificate RSA Massimo Cafaro Eger - Hungary, March 31 - April 1 2003 MDS Web Service gridlab_search this method can be used to query an arbitrary MDS server to retrieve specific information gridlab_getServiceDescription this method can be used to get the description of the service Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 MDS Web Service gridlab_register_service this method allows the user to register a new service. gridlab_unregister_service this method removes an existing service from the GIS gridlab_lookup_service this method lookups an existing service and returns the information about the services that have been found. It contacts the supplied MDS server on the default port Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 MDS Web Service gridlab_register_software this method allows the user to register a new software package gridlab_unregister software this method removes an existing software package from the GIS gridlab_lookup software this method lookups an existing software package and returns all the information about the software. It contacts the supplied MDS server on the default port Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 MDS Web Service gridlab_register_firewall this method allows the registration of information about a firewall installed on the grid resource. gridlab_unregister_firewall this method removes information about a registered firewall from the GIS gridlab_lookup_firewall this method lookups firewall information. It contacts the suppliedMDS server on the default port Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 MDS Web Service gridlab_register_vo this method allows the user to register the virtual organization to which the grid resource belongs. gridlab_unregister_vo this method removes information about a Virtual organization from the GIS gridlab_lookup_vo this method lookups information about a specified virtual organization. It contacts the supplied MDS server on the default port Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 MDS Web Service gridlab_lookup_user this method lookups the information about a specified user. It contacts the supplied MDS server on the default port gridlab_lookup_cert this method lookups the information about a specified certification authority. It contacts the supplied MDS server on the default port Massimo Cafaro 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 Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 WP10: Current Activities Configuration of the GridLab MDS to allow GSI connections through SASL binding Development of C APIs (library) to access MDS Anonymous Binding and GSI-SASL Binding Analisys of the GT3 Index Service To migrate GridLab MDS when GT3 is ready for production Development of information providers for: Information about jobs submitted to PBS scheduler Information about PBS queues Development of GSI-plugin for gSOAP Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 GridLab MDS – SASL Configuration MDS supports the following security features Authentication through Cyrus SASL Privacy and integrity protections through the use of TLS Access Control to database entries based on LDAP authorization information IP address Domain name Others Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 GridLab MDS – SASL configuration grid-info-slapd.conf it sets basic access control rules and sets anonymous binding. Additionally, this file designates the GIIS and GRIS provider components to OpenLDAP, establishes LDAP and MDS information schema, and defines back ends supported by the slapd server. The anonymousbind and access to parameters in this file set anonymous binding and access control, respectively. grid-info-site-policy.conf it controls the acceptance of registration messages by a GIIS. This file can be used to create an open policy where all registrants are welcome, or a closed system whereby only specified resources can register with a GIIS. grid-info-resource-register.conf it lists the GIIS servers to which a GRIS or “child” GIIS will register directly. The default is to register to the local GIIS on the host. This file identifies host names, ports, and time values that control registration messages from a GRIS or GIIS to a GIIS server. Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 GridLab MDS – SASL configuration Mutual authentication between GRIS-GIIS and GIISGIIS in a hierarchy In file grid-info-resource-register.conf set: bindmethod: AUTHC-ONLY SASL authorization is performed through: Screening against the grid-mapfile Static ACLs stored in file grid-info-slapd.conf To activate SASL authorization set, in file grid-info-slapd.conf: Anonymousbind no Access to <what> [by <who> <access>]+ Massimo Cafaro What: select the entries and/or attributes to which the access apply Who: which entities are granted access (DN) Access: specifies the type of access granted (search, read, write, compare, …) 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 GT3 Index Service MDS functionality appears throughout GT3 GT3 GRAM service data (GRAM reporter) GT3 Index Service (GIIS) OGSI Service Data interface Information services capabilities are now more tightly integrated in (the right places in) GT3 than they were in GT2. Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 GT3 Index Service Dynamic service data creation and management via information provider programs Aggregation of service data from multiple instances Registration of Grid service instances Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 GT3 ServiceDataProviders SimpleSystemInformation Java native system probe. This provider enumerates the following data; CPU count, Memory statistics, OS type, and Logical Disk Volumes. HostScriptProvider Linux-specific set of shell scripts that monitor system-specific host data. Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 GT3 Index Service Three main mechanisms Poll Automated cache refilling Subscribe to / receive notifications from arbitrary services The Index Service will aggregate Service Data it receives No fixed schema for resource data Information Providers now output XML fragments Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 GT2 & 3 Index Service differences Subscription & notifications This subsumes the role of the GRIS backend server module in GT2 GRAM, GridFTP, … Service Data providers These Service Data sources subsume the role of the sample GRAM and host-information provider scripts in GT2 Service Data Descriptions in Service Type WSDL These subsume the role of MDS schema written in the RFC2252 LDAP schema format. Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 C APIs for accessing MDS struct mdsInfo *gridlab_search (char *giis, int port, char *base_dn, int scope, char **attributes, char *filter, int verbose) Binds anonimously to an MDS server and queries it struct mdsInfo *gridlab_search_auth() Binds through GSI-SASL to an MDS server and queries it Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 New Information Providers To publish queues information Currently working on the OpenPBS scheduler Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 GSI plugin for gSOAP Continuous development to ensure compatibility with the latest gSOAP version Addition of new features, as requested by the users Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003 References GridLab WP 10 Information Services http://www.gridlab.org/WorkPackages/wp-10/index.html Globus Toolkit MDS http://www.globus.org gSOAP Toolkit http://www.cs.fsu.edu/~engelen/soap.html GSI plugin for gSOAP http://sara.unile.it/~cafaro/gsi-plugin.html Massimo Cafaro 2nd GridLab Conference Eger - Hungary, March 31 - April 1 2003