Non aqualon-ed configuration setup on davs gateways config
Non aqualon-ed configuration setup on davs gateways config
Installing Buffer optimised code on Webdav aliased hosts
Currently the Webdav optmised code is build as a set of library files (rather than packages as an RPM), and updated xrootd cfg files.
Latest configuration
Current / testing
33dfdd3_2 ; latest version running on the gateways; no known issues (aside from the generally observed stability problems).
Previous
N/A
Library files
The necessary library files are:
libXrdCeph-5.so
libXrdCephPosix.so
libXrdCephPosix.so.0
libXrdCephPosix.so.0.0.1
libXrdCephXattr-5.so
And are put into their own directory, so not to overwrite the standard files.
Installation
Below COMMIT refers to a directory containing the required library files for XrdCeph. While it doesn't have to refer to the commit version, it's probably sensible that it does.
COMMIT=33dfdd3_2
cd ~/bufferCode/${COMMIT}
mkdir /usr/local/lib64/xrootd_buffer
chown xrootd:xrootd -R /usr/local/lib64/xrootd_buffer
cd ..
cp -r ${COMMIT} /usr/local/lib64/xrootd_buffer/.
systemctl edit xrootd@proxy.service --full
# change line to this: LimitNOFILE=655360
cd /etc/xrootd
# udpate the xrootd-proxy.cfg and xrootd-ceph.cfg files
systemctl daemon-reload
systemctl restart xrootd@proxy && systemctl restart xrootd@ceph
# noquattor the host
echo "WebDav Optimisations" > /etc/noquattor
xrootd-proxy
Example of the proxy config file; not there are host-specific lines
# The export directive indicates which paths are to be exported. While the
# default is '/tmp', we indicate it anyway to show you this directive.
#
all.export *?
all.export /
# The adminpath and pidpath variables indicate where the pid and various
# IPC files should be placed
#
all.adminpath /var/spool/xrootd
all.pidpath /var/run/xrootd
#xrootd.async segsize 67108864
xrootd.async off
xrd.buffers maxbsz 67108864
# Configure TPC
# ensure cksum adler32 is included in the tpc directive, in order to caclulate by default on transfer
ofs.tpc cksum adler32 fcreds ?gsi =X509_USER_PROXY autorm xfr 40 pgm /etc/xrootd/xrdcp-tpc.sh
# Configure proxy memory caching
#
ofs.osslib /usr/lib64/libXrdPss.so
ofs.ckslib * /usr/lib64/libXrdPss.so
pss.origin ceph-svc97.gridpp.rl.ac.uk:1095
#pss.cache max2cache 16777216 pagesize 16777216 size 17179869184
# add this line to trigger external checksum calculation. Would be overwritten by other xrootd.chksum lines
xrootd.chksum max 50 adler32 /etc/xrootd/xrd_cephsum.sh
#xrd.trace all
# Configure gsi security
#
xrootd.seclib /usr/lib64/libXrdSec.so
sec.protparm gsi -vomsfun:/usr/lib64/libXrdSecgsiVOMS.so -vomsfunparms:certfmt=pem|vos=atlas,dteam|grps=/atlas,/dteam|grpopt=10|dbg
sec.protocol unix
sec.protocol gsi -dlgpxy:1 -exppxy:=creds -crl:3 -cert:/etc/grid-security/xrootd/hostcert.pem -key:/etc/grid-security/xrootd/hostkey.pem -gridmap:/etc/grid-security/grid-mapfile -gmapopt:2 -gmapto:3600 -d:0
sec.protbind * only gsi
sec.protbind castor-ns-snapshot.gridpp.rl.ac.uk unix
# Configure authorisation
#
ofs.authorize
acc.authdb /etc/grid-security/authdb
acc.audit deny grant
# Name-to-name mapping
#
pss.namelib /usr/lib64/libXrdCmsTfc.so file:/etc/xrootd/storage.xml?protocol=xrootd,https,http,davs
# Configure internal fstream event reporting
# details: https://wiki.e-science.cclrc.ac.uk/web1/bin/view/EScienceInternal/XrootdMonitoring
#
xrootd.monitor all auth fstat 10s ops lfn xfr 1 ident 1m dest fstat info user redir 172.16.105.115:9931
if exec xrootd
# both xrootd and https will use port 1094 !
xrd.protocol http libXrdHttp.so
fi
# Dont use voms but rather the grid-mapfile:
# http.secxtractor /usr/lib64/libXrdSecgsiVOMS.so
http.gridmap /etc/grid-security/grid-mapfile
# /etc/xrootd/robots.txt
# it is used to discourage Google search of http(s)
# User-agent: *
# Disallow: /
http.staticpreload http://static/robots.txt /etc/xrootd/robots.txt
# Require the use of the xrd.tls certificates (alternative is to use manual)
http.httpsmode auto
# HTTP TPC, see https://twiki.cern.ch/twiki/bin/view/Main/XRootDoverHTTP#Enable_Third_Party_Copy
http.exthandler xrdtpc libXrdHttpTPC.so
http.header2cgi Authorization authz
# Please install libmacaroons rpm from EPEL.
# Macaroons support, see: https://twiki.cern.ch/twiki/bin/view/Main/XRootDoverHTTP#Macaroons_Support
http.exthandler xrdmacaroons libXrdMacaroons.so
# the secret must be the same on all external gateways
# the current secret can be found on keys.gridpp in /var/keys/echo-xrootd-token/,
# and should be copied into the location below, owned by xrootd:xrootd (perms 440)
# original command used to generate:
# openssl rand -base64 -out /etc/xrootd/macaroon-secret 64 (make single line)
macaroons.secretkey /etc/xrootd/macaroon-secret
ofs.authlib libXrdMacaroons.so
# TLS
xrd.tls /etc/grid-security/xrootd/hostcert.pem /etc/grid-security/xrootd/hostkey.pem
xrd.tlsca certdir /etc/grid-security/certificates
#xrootd.tls capable all -data
xrootd.tls off
all.sitename T1_UK_RAL
xrootd-ceph
Example of the ceph config file; note there might be host-specific lines
###########################################################################
# This is a very simple sample configuration file sufficient to start an #
# xrootd data server using the default port 1094. This server runs by #
# itself (stand-alone) and does not assume it is part of a cluster. You #
# can then connect to this server to access files in '/tmp'. #
# Consult the the reference manuals on how to create more complicated #
# configurations. #
# #
# On successful start-up you will see 'initialization completed' in the #
# last message. You can now connect to the xrootd server. #
# #
# Note: You should always create a *single* configuration file for all #
# daemons related to xrootd. #
###########################################################################
# The export directive indicates which paths are to be exported. While the
# default is '/tmp', we indicate it anyway to show you this directive.
#
all.export *?
all.export /
# The adminpath and pidpath variables indicate where the pid and various
# IPC files should be placed
#
all.adminpath /var/spool/xrootd
all.pidpath /var/run/xrootd
#xrootd.async segsize 67108864
xrootd.async off
xrd.buffers maxbsz 67108864
# Configure sss security
#
xrootd.seclib /usr/lib64/libXrdSec.so
sec.protocol sss -s /etc/grid-security/xrootd/sss.keytab.grp -c /etc/grid-security/xrootd/sss.keytab.grp
sec.protbind * only sss
# Configure rados connection
#
#ofs.osslib +cksio /usr/lib64/libXrdCeph.so xrootd@,1,8388608,67108864
#ofs.xattrlib /usr/lib64/libXrdCephXattr.so
ofs.osslib +cksio /usr/local/lib64/xrootd_buffer/33dfdd3_2/libXrdCeph.so xrootd@,1,8388608,67108864
ofs.xattrlib /usr/local/lib64/xrootd_buffer/33dfdd3_2/libXrdCephXattr.so
xrootd.chksum max 50 adler32 /etc/xrootd/xrd_cephsum.sh
# Configure the port
#
xrd.port 1095
# 5 is good
ceph.nbconnections 10
ceph.usebuffer 1
#ceph.usebuffer 1
#ceph.buffersize 1048576
#ceph.buffersize 2097152
#ceph.buffersize 4194304
#ceph.buffersize 8388608
ceph.buffersize 16777216
#ceph.buffersize 33554432
#ceph.buffersize 67108864
#ceph.buffersize 134217728
ceph.usereadvalg 0
ceph.readvalgname passthrough
#ceph.readvalgname basic
, multiple selections available,