wiki:NewInfoProvider
Last modified 10 years ago Last modified on 07/23/08 15:22:01
  1. Do NOT edit this page (I mean this!). It contains a copy of the file: /opt/d-cache/share/doc/README.GLUE (in SVN: skel/share/doc/README.GLUE). If there are corrections then that file must be edited and the edits copied across.
  1. This page describes configuring dCache v1.8.0-16; it simply won't work for earlier dCache versions.

How to configure and test dCache GLUE info provider

This document describes how to configure the information provider supplied with dCache so it provides the correct information for WLCG. This is necessary so that WLCG infrastructure (such as FTS) and clients using WLCG tools can correctly use the dCache instance.

The process is designed to be the minimum overhead so it can easily be performed manually; however, you may choose to use an automatic configuration tool, such as yaim.

Ensuring dCache information is available

Make sure that both the httpd and info services are running, both are required for publishing information. By default, the info service is started on the admin node; but it is possible to configure dCache so it runs on a different node. You should run only one info service per dCache instance.

NB

the info service is different from, and completely independent of, the infoProvider service.

If necessary, you may start the info service manually:

  /opt/d-cache/bin/dcache start info

You can check which services are running on the local node using the status command:

  /opt/d-cache/bin/dcache status

You can also verify both services (httpd and info) are running with the following wget command. This command assumes that you run it on the node that has the httpd service (by default, the admin node). If may run the command on any node by replacing "localhost" with the hostname of the node running the httpd service.

  wget -O/dev/null http://localhost:2288/info

If you see the following output:

  # wget -O/dev/null http://localhost:2288/info
  --10:05:35--  http://localhost:2288/info
             => `/dev/null'
  Resolving localhost... 127.0.0.1
  Connecting to localhost|127.0.0.1|:2288... failed: Connection refused.

Then the httpd service is not running. Start the service with the following command:

  /opt/d-cache/bin/dcache httpd start

If you see the following output:

  # wget -O/dev/null http://localhost:2288/info
  --10:03:13--  http://localhost:2288/info
             => `/dev/null'
  Resolving localhost... 127.0.0.1
  Connecting to localhost|127.0.0.1|:2288... connected.
  HTTP request sent, awaiting response... 503 Unable to contact the info cell.  Please ensure the info cell is running.
  10:03:13 ERROR 503: Unable to contact the info cell.  Please ensure the info cell is running..

Then the info service is not running. start it with the following command:

  /opt/d-cache/bin/dcache info start

Configuring info provider

In the directory /opt/d-cache/etc you will find a template file glue-1.3.xml.template. Copy this file as glue-1.3.xml in the same directory.

Edit glue-1.3.xml with your favourite text editor.

The file is split into two parts. The first part contains the configuration that a site will typically need to configure. Most sites may leave the second part alone. The two parts are separated by the comment:

    YOU SHOULD NOT NEED TO EDIT ANYTHING BELOW THIS POINT.

Take care when editing the file! The file is XML format the resulting file must be a valid, well-formed XML file. In particular, be very careful when adding a less-than symbol ('<') that isn't part of an XML element, or an ampersand symbol ('&') that isn't part of an entity markup; if you wish to add these symbol you must use the marked-up version: "&lt;" and "&amp;" respectively. For example:

    <constant id="SE-NAME">Simple &amp; small dCache instance for small VOs (typically &lt; 20 users)</constant>

As a hint, you should *only* edit text between two elements or add more elements (for lists and mappings). You should *never* edit text inside double-quote marks. For example, with the following element definition:

    <constant id="SITE-UNIQUE-ID">EXAMPLESITE-ID</constant>

you should review the contents between the elements ("EXAMPLESITE-ID") and edit the contents accordingly. You should *never* edit the "SITE-UNIQUE-ID" as it is in double-quote marks. A valid, edited value is:

    <constant id="SITE-UNIQUE-ID">DESY-HH</constant>

Testing the info provider

Once you have configured glue-1.3.xml to reflect your site's configuration, you may test that the info provider produces meaningful results.

Run the script:

  /opt/d-cache/libexec/infoProvider/info-based-infoProvider.sh

This should provide GLUE data in LDIF format, which should look like:

  #
  #  LDIF generated by Xylophone v0.1
  #
  #  XSLT processing using libxslt 1.0 (http://xmlsoft.org/XSLT/)
  #


  dn: GlueSEUniqueID=dcache-srm.example.org,mds-vo-name=resource,o=grid
  objectClass: GlueSETop
  objectClass: GlueSE
  objectClass: GlueKey
  objectClass: GlueSchemaVersion
  GlueSEStatus: Production
  GlueSEUniqueID: dcache-srm.example.org
  GlueSEArchitecture: multidisk
  GlueSEImplementationName: dcache
  [... etc ...]

The actual values you see will be site-specific and depend the contents of the glue-1.3.xml file and your dCache configuration.

To verify that there are no problems, redirect stdout to /dev/null to show only the error messages

  /opt/d-cache/libexec/infoProvider/info-based-infoProvider.sh >/dev/null

If you see two error messages, repeated several times:

  error : Operation in progress
  warning: failed to load external entity "http://localhost:2288/info"

then verify that the httpd service is running, using the above wget test and also by running:

  /opt/d-cache/bin/dcache status

If you see the single error messages, repeated several times:

  warning: failed to load external entity "http://localhost:2288/info"

then verify that the info service is running.

Configuring BDII

By default BDII obtains fresh information by querying GIP. To allow BDII to obtain the GLUE information, you must tell GIP where to find this information. This is achieved by either copying the above script into the directory /opt/glite/etc/gip/provider/

  cp /opt/d-cache/libexec/infoProvider/info-based-infoProvider.sh /opt/glite/etc/gip/provider/

or by symbolically linking the script in there:

  ln -s /opt/d-cache/libexec/infoProvider/info-based-infoProvider.sh /opt/glite/etc/gip/provider/

If GIP (glite-info-generic) and BDII are installed, and the BDII daemons are running, then you will see the information appear in BDII after a short delay (a minute or so).

You can verify the information is present with the query:

  ldapsearch -LLL -x -H ldap://localhost:2170 -b o=grid

This should give similar results to running the information provider script manually.

Updating information

The information contained within the info service may take a short time to achieve a complete overview of dCache's state. For certain gathered information it may take a few minutes before the information stabilises. This is intentional and prevents the gathering of information from adversely affecting dCache's performance.

The information contained within the LDAP (a.k.a. "BDII") server is updated periodically from the information contained in the info service. By default this is every 60 seconds. This will introduce an additional delay between a change in dCache's state and that information propagating.

A few pieces of information are "hard-coded" within the glue-1.3.xml file; that is, you will need to edit this file before the published value(s) will change. These values are ones that typically a site-admin must choose independently of dCache's current operations.