Home About Software Documentation Support Outreach Ecosystem Blog Dev Awards Team & Sponsors

Installation Guide 5.14

Required Software

GridWay is distributed as a source package. This document explains how to install GridWay from source code.

Recently, the IGE project distributes GridWay as binary packages. The following links provide instructions to install GridWay this way:

Required software to compile

  • C compiler: Tested versions gcc 3.4.2, 3.4.4, 4.0.3, 4.0.3, 4.1.2, 4.3.3
  • J2SE version 1.5.0+
  • GNU Make
  • sudo command (only required for multiple-user mode)
  • Berkeley Database development library version 4.4.20 or higher (only required to compile the accounting module)

Middleware

One of the following middlewares should be installed to build the corresponding drivers:

  • Globus Toolkit 4 or 5
  • gLite UI 3.1 (GRAM2-based)
  • gLite UI 3.2 (CREAM-based)
  • EMI-UI 1.0 (UMD-1)
  • EMI-UI 2.0 (UMD-2)

Alternatively, SSH can be used to manage individual resources.

Optional

  • Ruby, Ruby-devel: For the --enable-drmaa-ruby options
    • net-ssh and net-sftp libraries in ruby: For the --enable-ssh option. If installed through rubygems, lower than 2.0.0 version
  • Perl and net-ldap library in perl: For the BDII driver

Installing GridWay Core and Commands

You can install GridWay in two different ways:

  1. Single-user installation. GridWay will be installed configured and executed by each user. In this case, neither the installation nor the configuration require priveledge access to the system. This installation mode will be useful if you want to set up a personal queue, or for testing purposes.
  2. Multiple-user installation. GridWay will be installed, and configured by the system manager. Regular users are able to submit, control and monitor their jobs from a front-end (GridWay server host) or from client hosts. This installation mode is recommended for production use.

Next sections describe in detail the installation process for these two cases.

Single-User Mode Installation

In this scenario, GridWay is installed by each end-user in his client host.

Login as your user account and follow these steps:

  1. Download the distribution file to the installation directory, for example your $HOME directory
  2. Unpack the distribution file and change to the gridway-5.14 directory:
    $ tar xzf gridway-5.14.tgz
    $ cd gridway-5.14
  3. Run configure to set up GridWay installation (check below for possible options):
    ./configure <OPTIONS>
  4. Run make to build and install:
    $ make
    $ make install
  5. Once installed, you should have the following directory tree in your GridWay location directory:
        $GW_LOCATION/
            |
            +--- bin/        executables
            |
            +--- etc/        gwd.conf and job_template.default configuration files
            |
            +--- share/      examples
            |
            +--- include/    header files
            |
            +--- lib/        compiled libraries
            |
            +--- libexec/    wrapper and monitor scripts
            |
            +--- test/       test suite [Optional]
            |
            +--- var/        lock, port and log files
            |
            +--- xml_schema/ schema for XML output validation

Multiple-User Mode Installation

In this scenario, the installation of GridWay is performed by the system manager and the users are able to submit, control and monitor their jobs from a front-end (GridWay server host) or from client hosts, which may not require a GridWay installation. This means that there is one GridWay installation for each organization that provides support for multiple intra-organization users.

Important
The instructions here described assumes that you are going to install GridWay in its own directory ($GW_LOCATION, e.g. /opt/gridway/5.14.0). Also it is assumed that the installation, configuration and service execution will be performed by a special account (gwadmin).
Note that GridWay daemon SHOULD NOT be run as root. Only part of the installation will require privileged access.

Login as root account and follow the next steps:

  1. All of the GridWay users must be members of the same UNIX group. We recommend to create a new group (gwusers, for example), and assure that all GridWay user accounts are members of this new group.
  2. The GridWay administrator account can be an existing administrative login or a new login. We recommend creating a new account for the GridWay administration user (gwadmin, for example). This account will own all of the files in the GridWay installation, all of the daemons in the GridWay execution and it can be used to configure GridWay once it is installed. Primary group of gwadmin should be the GridWay users group (gwusers).
    DO NOT use root account for the GridWay administrator account.
  3. Download the distribution file to the installation directory, for example your /opt/gridway directory
  4. Unpack the distribution file and change ownership:
    # tar xzf gridway-5.14.0.tgz
    # chown -R gwadmin:gwusers /opt/gridway
    # chmod 755 /opt/gridway
    Become GridWay administrator user, and change to gridway-5.14.0 directory:
    # su gwadmin
    $ cd gridway-5.14
  5. Run configure to set up GridWay installation (check below for possible options):
    ./configure OPTIONS
  6. Run make to build and install:
    $ make
    $ make install
  7. Once installed, you should have the following directory tree in your GridWay location directory:
        $GW_LOCATION/
            |
            +--- bin/        executables
            |
            +--- etc/        gwd.conf and job_template.default configuration files
            |
            +--- share/      examples
            |
            +--- include/    header files
            |
            +--- lib/        compiled libraries
            |
            +--- libexec/    wrapper and monitor scripts
            |
            +--- test/       test suite [Optional]
            |
            +--- var/        lock, port and log files
            |
            +--- xml_schema/ schema for XML output validation

Configuration Options

Possible options for configure are:

Option Description
--prefix Sets final GridWay installation dir. Defaults to /opt/gridway/5.14.0
--enable-drmaa1-java Build Java DRMAA 1.0 support
--enable-drmaa-java Build Java DRMAA 0.6 support
--enable-drmaa-ruby Build Ruby DRMAA support
--enable-jsdl Build JSDL support
--enable-debug Enable debug info in logs
--enable-usage Enable usage stats collection (needs Globus and makefile-header file).
--with-db=<path_to_db> Specify the Berkeley DB path to build accounting support
--with-tests Build test suite

Notes for a "Remote" Installation

Additionally, client hosts, that are not required to have GridWay installed, could be deployed to remotely interface to the GridWay server host. In such a case, user accounts and home directories must be shared between the GridWay server and the client hosts, via for example NIS and NFS; and $GW_LOCATION directory should be readable on all client hosts. The $GW_LOCATION directory may be available via for example NFS by exporting $GW_LOCATION from GridWay server, creating the directory in the client hosts, changing its ownership to gwadmin:gwusers and mounting the $GW_LOCATION directory exported by the GridWay server on the $GW_LOCATION of the client hosts.

Following those steps, a user logged in a client hosts is able to interface to the GridWay daemon in the GridWay server host. However, the grid-proxy-init command must be executed in the server host in order to create a proxy by, for example, executing:

$ ssh <GridWay server> grid-proxy-init

Installing GridWay MADs

One of the novelties of this 5.14 release is that MADs are installed separately from the GridWay core and commands.

Perform the following steps as the GridWay user (for single-user mode) or as the gwadmin user (for multiple-user mode):

  1. Go to the directory of the MAD:
    • Information (gridway-5.14/src/im_mad)
      • Globus MDS2 (mds2)
      • Globus MDS4 (mds4)
      • gLite BDII (bdii)
      • Static (installed along with GridWay core and commands)
    • Execution (gridway-5.14/src/em_mad)
      • Globus GRAM2 or GRAM5 (gram2)
      • Globus GRAM4 (gram4)
      • gLite CREAM (cream)
      • OGF BES (bes)
      • SSH (ssh)
    • Transfer (gridway-5.14/src/im_mad).
      • Globus GridFTP (gridftp)
      • Dummy (dummy)
      • SSH (ssh)
  2. Run make to build and install:
    $ make install
    Some drivers have specific requirements that will be noticed at this time.
  3. Add an alias for the gwusers group in the /etc/sudoers file:
    # User alias specification
    Runas_Alias     GWUSERS = %gwusers
  4. Add a line for each execution or transfer MAD used in the /etc/sudoers file:
    # GridWay entries
    gwadmin ALL=(GWUSERS)     NOPASSWD: /opt/gridway/5.14.0/bin/gw_em_mad_<name> *
    gwadmin ALL=(GWUSERS)     NOPASSWD: /opt/gridway/5.14.0/bin/gw_tm_mad_<name> *

    For Globus or gLite, the following line is also needed:

    gwadmin ALL=(GWUSERS)     NOPASSWD: <absolute_path>/bin/grid-proxy-info *

Usually sudo clears all environment variables for security reasons. However some MADs need the GW_LOCATION and GLOBUS_LOCATION (and GLOBUS_TCP_PORT_RANGE if existing) variables to be set. To preserve those variables in the MAD environment, add the following line to your “sudoers” file:

Defaults>GWUSERS env_keep="GW_LOCATION GLOBUS_LOCATION GLOBUS_TCP_PORT_RANGE"

The following line SHOULD NOT be in the sudoers file, otherwise GridWay could not use sudo as it will ask for a tty:

Defaults    requiretty

Please refer to the sudo manual page for more information.

Additionally you can configure your drivers environment by using the gwrc interface (see Section “MAD Environment Configuration”).

To test the sudo command configuration, as the gwadmin user, try to execute a MAD as a user in the gwusers group, for example:

gwadmin@gridway$ sudo -H -u <gwuser> /opt/gridway/5.14.0/bin/gw_em_mad_gram2

Platform Notes

GridWay has been run on the following platforms:

Fedora Core

Problems have been reported on Fedora Core platforms when using 32 bit JSDK binaries on AMD64 architectures.

Debian / Ubuntu Testing

No known issues.

Mac OS X

No known issues. Tested on Mac OS X 10.4 (Tiger).

Solaris 10

No known issues.

Other Linux/UNIX flavors

GridWay should run smoothly on any linux based distribution and it is also likely to work on any unix based operating system, although it just have been tested in the aforementioned platforms.

Verifying Globus Installation

As GridWay usually relies on Globus services, we provide some test to check if Globus grid infrastructure has been correctly installed and configured.

  • Initiate your proxy:
    gwuser@gridway:~$  grid-proxy-init || voms-proxy-init 
    Your identity: /DC=es/DC=irisgrid/O=ucm/CN=gridway.user
    Enter GRID pass phrase for this identity:
    Creating proxy ......................................... Done
    Your proxy is valid until: Wed Mar 30 00:42:41 2011

Pre-WS tests

You can perform the following tests to verify your Globus pre-WS installation, and to ensure that it will work with GridWay. Here we assume you have some resource (worker node front-end) where the Globus container is already initialized (in this case is gilda-ce.rediris.es please change where appropriate for your tests):

  • Authorization test:
    $ globusrun -a -r gilda-ce.rediris.es
    GRAM Authentication test successful
    
    Then everything is working as expected. If on the contrary you get
    GRAM Authentication test failure: the connection to the server failed (check host and port)
    then probably is because you are trying to access a computing element not properly configured or unreachable.
  • Submission test:
    $ globus-job-run gilda-ce.rediris.es /bin/uname -a
    Linux gilda-ce.rediris.es 2.6.9-89.0.16.EL #1 Tue Mar 29 21:09:04 CST 2011 i686 athlon i386 GNU/Linux
    
    You should see the complete output of the uname command. But quite often we found that the error
    GRAM Job submission failed because the job manager failed to open stderr (error code 74)
    appears. The reason is probably that either the GLOBUS_TCP_PORT_RANGE variable has not been set to incoming opened ports, or the globus-hostname command does not return a full qualified domain name accessible from outside.
  • File transfer test:
    $ globus-url-copy -v file:///etc/hostname gsiftp://gilda-ce.rediris.es/tmp/test_`hostname -f`
    Source: file:///etc/
    Dest:   gsiftp://gilda-ce.rediris.es/tmp/
      hostname  ->  test_gridway.dacya.ucm.es
    Conversely you might retrieve your data back to your system:
    $ globus-url-copy -v gsiftp://gilda-ce.rediris.es/tmp/test_`hostname -f` file:///tmp/test_`hostname -f`
    Source: gsiftp://gilda-ce.rediris.es/tmp/
    Dest:   file:///tmp/
      test_gridway.dacya.ucm.es
    The contents of files /etc/hostname and /tmp/test_gridway.dacya.ucm.es should be identical.

WS tests

You can perform the following tests to verify your Globus WS installation, and to ensure that it will work with GridWay:

Note
Change localhost to the name of the host your want to test.
  • Submission test:
     $ globusrun-ws -submit -F localhost -s -c /bin/uname -a 
    You should see the output of the /bin/uname -a command (along with other information about submission progress).
  • File transfer test:
    $ globus-url-copy file:///etc/hosts gsiftp://localhost/tmp/hosts1
    $ globus-url-copy gsiftp://localhost/tmp/hosts1 file:///tmp/hosts2
    The contents of files /etc/hosts, /tmp/hosts1 and /tmp/hosts2 should be identical.
  • Information retrieval test:
    $ wsrf-query -s https://localhost:8443/wsrf/services/DefaultIndexService
    You should see a lot of information in XML format.
Note
XML documents from wsrf-query should not contain any DEBUG messages. SOAP Message Logging for the client tools has to be disabled in $GLOBUS_LOCATION/log4j.properties.

If a binary distribution of the Globus Toolkit is installed, you may be required to manually install globus_core (used to detect the compiler and platform settings of the computer that the Toolkit is installed on). The following command can be used to perform this operation:

$ $GLOBUS_LOCATION/sbin/gpt-build -nosrc <flavor> 

More information about this procedure is available (here).

Admin · Login