The CernVM File System (CVMFS) provides a software distribution service.
- CVMFS is designed for deploying high energy physics software at globally distributed computing infrastructure used to run data processing applications.
- CVMFS is implemented as a POSIX read-only file system user space (FUSE module). Files and directories are hosted at standard web servers and mounted in the universal namespace /cvmfs.
- CVMFS transfers data and metadata on demand and verifies data integrity using cryptographic hashes. Software typically consists of many small files that are often opened and read in their entirety. Therefore, the system uses aggressive caching to reduce latency.
- CVMFS is actively used by small and large HEP collaborations.
How to maintenace the cvmfs repo.
First, to place new software at CVMFS , you need to apply for the creation of a new repository and send the user id_rsa.pub (from the host from where access at vmfs will be provided) to CICC administrator ( Gromova Natalia grom@jinr.ru). The CICC cvmfs repository stores several versions of the software; only the person responsible for the software has write access to the repository.
Next, login to cvm-fs host like this:
ssh cfs.$newrepo@cfs-f000.jinr.ru ,
$newrepo=repository name : dstau,er, bmn ….
The user can perform actions with the repository /cvmf/$newrepo.jinr.ru
In a maximum of an hour, new content will appear on lxpubXX.jinr.ru
The minimum set of commands :
#
# to update the repo (with sudo)
# 1. transaction – make cvmfs/$newrepo.jinr.ru writable
# 2. cvmfs_rsync – copy new content to repo
# 3. publish – commit chages in repo
# make it read-only again & ready for snapshort from stratum-1
cvmfs_server transaction $newrepo.jinr.ru
cvmfs_rsync -a <from> /cvmfs/$newrepo.jinr.ru
or for convenience and safety updates use command /usr/bin/cvmfs_rsync :
rsync –filter=’-p.cvmfscatalog’ –filter=’-p.cvmfsautocatalog’ “$@”
cvmfs_server publish $newrepo.jinr.ru
#
# misc commands
#
# abort commit (just before publish)
#
cvmfs_server abort $newrepo.jinr.ru
#
# remove repo from stratum-0 complitely do that on stratum-1 too
#
cvmfs_server rmfs $newrepo.jinr.ru
# cvmfs check
cvmfs_server check -i $newrepo.jinr.ru
# cvmfs configuration info
/usr/bin/cvmfs_server info
Commands to run with sudo:
/usr/bin/cvmfs_server list,
/usr/bin/cvmfs_server info xxx.jinr.ru,
/usr/bin/cvmfs_server transaction xxx.jinr.ru,
/usr/bin/cvmfs_server resign xxx.jinr.ru,
/usr/bin/cvmfs_server abort xxx.jinr.ru,
/usr/bin/cvmfs_server gc xxx.jinr.ru,
/usr/bin/cvmfs_server publish xxx.jinr.ru,
/usr/sbin/xfs_quota -x -c report /srv/cvmfs,
/usr/bin/chown cfs.xxx /cvmfs/xxx.jinr.ru