🚧 Under Construction (Last updated: 27 October 2025)
This documentation page is currently being written and reviewed.
Please note:
- Some sections may be incomplete
- Examples might be missing
We appreciate your patience!
CVMFS at NHPCC#
To provide access to CVMFS (CernVM File System), we offer it as a containerized OS application. This allows you to run a compatible environment through Open OnDemand and use your persistent Apptainer overlay for software installations.
Preparing the cache#
The process for using CVMFS is similar to launching any other OS app. We used the Rocky Linux 9.6 as the base. The key difference is you must specify the CVMFS repositories you need in the launch form. As an example, if you want to use two repositories sft.cern.ch and software.eessi.io, you should fill out the CVMFS Repositories part as:

Repositories
-
cvmfs-config.cern.ch: This is a configuration repository that provides essential settings for many other repositories. Its inclusion is highly recommended and often mandatory. -
Additional Repositories: You can add other repositories as needed for your research software.
Initial cache population#
The first time you launch the CVMFS app with a new set of repositories, you must select a node with internet access. This is required to populate the local cache.

Subsequent sessions can often run on other nodes without internet, provided all necessary files were cached during the first run.
Persistent image
As with other OS apps, you must create a persistent image with sufficient space for your needs, within your allocated blkdir directory quota.
A persistent image filesystem holds the CVMFS cache (which we set it up to use up to 75% of the allocated space; for example for a 1 GB image, the maximum allocated CVMFS cache space is 0.75 GB. It also stores all your changes, including any packages installed via
dnf install and modifications to system directories like /opt, /etc, or /usr.
Cache Warming
To ensure optimal performance, we recommend a process known as cache warming. After your first session, compile and run your code completely. This will download all required libraries and data into the local cache, making future runs faster and more reliable, especially on nodes without direct internet access.
Accessing repositories#
Once your CVMFS session is active, the repositories you specified will be mounted as read-only directories under /cvmfs. For the above example, you would find the following paths available:
/cvmfs/cvmfs-config.cern.ch ## Configuration files for CVMFS
/cvmfs/sft.cern.ch ## LCG Software Stacks
/cvmfs/software.eessi.io ## Software stacks via EESSI
You can immediately navigate to these paths and access the software and data they contain according to their manual.
Saving your cache#
The CVMFS service automatically maintains a local cache of accessed files to speed up future use. This cache, along with any other system changes in your session, is stored in your persistent image.
After populating the cache and finishing your work, you must log out properly from the desktop session before your session is terminated by the maximum job time. You should wait for a few seconds (depending on the size of the image file) This ensures that all your changes and the CVMFS cache state are correctly saved in the persistent image file for your next use. Please also see the OSs manual.
Re-using your cached software#
To benefit from your cached software in a new session, please follow the process described in the Re-using your image section. Specifically, in the CVMFS app launch form:
- Specify the repositories you want to mount. It is crucial to specify the same list of CVMFS repositories or a subset of them as you did when the image was first created and the cache was warmed. For CERN repositories, this must include
cvmfs-config.cern.ch. If you add a new repository, you will need to run a new session with internet access to populate its cache. - Select your previously created persistent image.
- Launch the app
.
This workflow ensures that subsequent jobs can run without requiring internet access, as all necessary software is already available in the local cache on your image.