XRootD Installation (RPMs)¶
The following documentation describes how to install XRootD using RPMs.
The old page (with legacy instructions) can be found here
For questions and support, please contact Adrian Sevcenco.
Packages Installation¶
Prerequisites
These instructions assume EL7/CC7 x86_64 platform that is supported and tested.
Redirector on disk server configuration is not supported nor foreseen.
Preparation of storage locations
It is assumed that the server is already prepared with the necessary directories and correct rights and ownership.
-
Install required tools (root user is assumed):
~# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
-
Install the WLCG repository, for example for CC7:
~# rpm --import http://linuxsoft.cern.ch/wlcg/RPM-GPG-KEY-wlcg ~# yum -y install http://linuxsoft.cern.ch/wlcg/centos7/x86_64/wlcg-repo-1.0.0-1.el7.noarch.rpm
Updating from XRootD v4 to v5 case
Because of configuration fixes and not only the minimum version is 5.1 (but recommended to use latest version available) See upgrading below
-
Install the required packages
3.1 If fresh install, install the metapackage that will pull XRootD as a dependency (when present in epel):~# yum -y install alicexrdplugins
3.2 For upgrade from v4 case it's best to remove all XRootD packages
~# yum remove -y xrootd*
Then one can install either the epel version or the upstream XRootD version (N.B.!! epel have no downgrade path)
(see Yum repositories section from XRootD downloads)~# yum install -y xrootd-client xrootd-server
The ALICE XRootD plugins are:
-alicetokenacc
(dependent on XRootD)
-xrootd-aggregatingname2name
(dependent on XRootD)
-alicexrdplugins
(metapackage, will pull the above packages)Until these pluggins are accepted in WLCG repository,
alicetokenacc
,xrootd-aggregatingname2name
,alicexrdplugins
can be downloaded from here otherwise they are usually found in WLCG repository. (chose the relevant distro, for centos 7, choseel7
directory.)
XRootD Management Script¶
Change of management tools!!! (and configuration template)
The former xrd.sh
was re-wrote and splited in xrdctl
service management script and xrd_mk_config
configuration generation script
See the github repository alicexrd
When upgrading recreate system.cnf
file (it has new content/organization) and run xrd_mk_config
for XRootD configuration generation.
Tested: Running of XRootD as non-privileged user
Not yet tested: use of xrd_mk_config
generated systemd service files.
-
Deployment and setting up the environment:
xrdctl
andxrd_mk_config
scripts and configuration files can be automatically deployed from github as follows:The script will place the scripts within~$ bash <(curl -fsSLk https://raw.githubusercontent.com/adriansev/alicexrd/master/deploy_alicexrd)
${XRDCTLDIR:=~/alicexrd}
and configurations in${XRDCONFDIR:=~/alicexrdconf}
Within
XRDCONFDIR
:~$ cp system.cnf_CHANGEME system.cnf
Then setSE_NAME, LOCALROOT, OSS_SPACE_DIRS
as all former others are detected automatically. -
After completing the configuration run the script:
$XRDCTLDIR/xrdctl -c
.
(one can symlinkxrdctl
into$HOME/bin/
)
Usage:xrdctl arg [configuration_file]
, where argument is one of :Argument Description -l | --l | -list | --list
list found configuration files -s | --s | -status | --status
show status of services -c | --c | -check | --check
check and restart if not running -k | --k | -kill | --kill
kill running processes -f | --f | -restart | --restart
force restart -logs | --logs
manage the logs -addcron | --addcron
add/refresh cron line -removecron | --removecron
remove the cron line optionaly the configuration file can be explicitly declared.
Note
The operations will be applied on
- specified configuration file
OR
- on ALL.xrdcfg
files from$XRDCONFDIR
Environment variables for
xrdctl
:Argument Description XRD_READONLY checked by xrootd configuration; if set the export (for ALL found configurations) will be declared as notwritable XRDCTL_CMD_XRD/XRDCTL_CMD_CMSD xrootd and cmsd executables (other than the defaults from /usr/bin) XRDCTL_PRELOAD use LD_PRELOAD for xrootd/cmsd processes XRDRUNDIR location of admin,core,logs,logsbackup dirs; if not set it will be XRDCTLDIR/run/ XRDCONFDIR location (directory) of .xrdcfg configuration file(s); if not set it wll be XRDCTLDIR/xrootd.conf/ XRDCTL_DEBUG if set (any value) it will enable various printouts of xrdctl XRDCTL_DEBUG_SETX bash enable -x XRDCTL_DEBUG_XRD if set enable debug flag for xrootd process XRDCTL_DEBUG_CMSD if set enable debug flag for cmsd process
Script Configuration¶
The following table highlights environment variables that influence how xrd_mk_config
works:
Usage: xrd_mk_config [template_configuration_file]
where the specified argument is a custom path for template configuration (otherwise the ${XRDCONFDIR}/xrootd.xrootd.cf.tmp
is used)
It will parse/source ${XRDCONFDIR}/system.cnf
and generate the xrootd configuration.
${XRD_MULTISRV}
usage
If "${XRD_MULTISRV}
" is set, it will enable the spawning of an xrootd/cmsd process FOR EACH OSS_SPACE_DIRS
In this mode, oss.space
declaration will be commented/omitted,
and a distinct xrootd configuration file will be generated for each directory specified by OSS_SPACE_DIRS
OSS_SPACE_DIRS
will be explicitly listed, so globbing will be expanded to all possible directories.
Example: /storage*/xrddata
will be expanded by ls
to all existing directories
Environment Variable | Description |
---|---|
XRDRUNDIR | location of admin,core,logs,logsbackup dirs; if not set it will be XRDCTLDIR/run/ |
XRDCONFDIR | location (directory) of .xrdcfg configuration file(s); if not set it wll be XRDCTLDIR/xrootd.conf/ |
XRootD MonaLisa monitoring¶
The monitoring of XRootD is done by MonaLisa agent - MLSensor
This is deployed as a distinct service, found within WLCG repository.
~# yum -y install mlsensor
There is a required configuration of service (as root):
~# cd /etc/mlsensor
~# mlsensor_config mlsensor.properties.tmp <name of ALICE storage name>
Multiple services/custom ports
if multiple XRootD services are used (or custom ports), make sure to modify mlsensor.properties
file
and update lia.Monitor.modules.monXrdSpace.args
variable to a space separrated list of XRootD ports, e.g.:
lia.Monitor.modules.monXrdSpace.args=1094 1095
then the normal system enablement procedure can take place
systemctl enable mlsensor
systemctl start mlsensor
Support for MLSensor
For the package and deployment details (configuration): adrianDOTsevcencoATNOSPAMcernDOTch
For the monitoring mechanics and features of java package: costinDOTgrigorsATNOSPAMcernDOTch