CernVM File system (cvmfs)

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.

General overview over CernVM File System's Architecture

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).

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