Computing Element Guide#
This guide provides instructions on setting up JAliEn Computing Element (CE) by either running directly from CVMFS (Option 1), or by cloning the JAliEn Git repository (Option 2).
Option 1: Running from CVMFS#
This approach only requires CVMFS and a valid Grid certificate or a user/host token in ~/.globus
. It is the simplest approach for getting a CE up and running, but configuration is limited to the options given in the config files.
-
Ensure environment path for the proxy certificate is set. See output from
voms-proxy-info -path
to get the full path, for example: -
Load the JAliEn environment:
-
Run the CE:
This will start a JAliEn CE with default configuration options.
Override is possible by placing desired configuration in ~/.j/config
.
Overview of the config files, and their default values, can be found here.
User/Host token
User and host tokens can be generated from within a JAliEn shell by using token -t user/host
command.
These can be put as user[cert/key].pem into .globus
folder, instead of a full Grid certificate.
Option 2: Compile From Source#
Requirements
This approach requires compile tools such as JDK11+ be available.
This approach gives access to the latest CE changes without waiting for a new tag to be pushed to CVMFS. JobAgents will still run from CVMFS, but their startup script may now be modified - allowing for changes such as what variables are exported, scripts are run before start, and containers may also be enabled/disabled as desired. Other in-code overrides are also possible (at own risk). As with the first option, a valid Grid certificate or a user/host token in ~/.globus
is required.
-
Clone the JAliEn Git repository:
-
Compile JAliEn using the following commands, adjusting configuration in
jalien/config
as needed beforehand. -
Ensure environment path for the proxy certificate is set. See output from
voms-proxy-info -path
to get the full path, for example: -
Run the CE as follows:
Managing the CE#
A wrapper script can be used to shortcut common tasks such as start
, stop
and checking the service status
:
Example: jalienCE.sh
#!/bin/bash
export X509_USER_PROXY=
export ALICE_LOGDIR= #e.g ~/ALICE/alien-logs
export JALIEN_PATH= #e.g ~/jalien (remove if running from CVMfS)
cd $ALICE_LOGDIR
if [ $1 = "start" ]
then
echo "Starting JAliEn CE"
nohup $JALIEN_PATH/jalien ComputingElement & echo $! > CE.pid
elif [[ $1 = "stop" ]]
then
echo "Stopping JAliEn CE"
pkill -f alien.site.ComputingElement
elif [ $1 = "status" ]
then
if ps -p $(cat $ALICE_LOGDIR/CE.pid) > /dev/null 2>&1
then
echo "JAliEn CE is running"
else
echo "JAliEn CE is NOT running!"
fi
else
echo "Usage: 'start', 'stop' or 'status'"
fi
Be aware that the JAliEn CE will terminate once the token expires. To avoid downtime, a service can be set up to automatically restart it once that happens. A trivial solution can be to extend the above wrapper script with a restarter as follows:
Example: jalien-restarter.sh
FAQ#
What about logs?
The JAliEn CE log directory is defined in LDAP, the same way as for legacy AliEn. A common directory used is ~/ALICE/alien-logs
.
What about updates?
When using option 1 (CE in CVMFS), the CE can be updated by simply reloading the CE and alienv, activating the latest tag. For option 2 (CE from git), the latest version can be obtained by doing a git pull
and compile.sh all
, before restarting.
No action is needed for the JobAgents, as these are always started using the same (or closest available) tag as the CE through CVMFS.