Getting Access to EESSI¶
To get access to EESSI, it suffices to have CernVM-FS installed, and make it aware of the EESSI repository.
Is EESSI accessible?¶
EESSI can be accessed via a native (CernVM-FS) installation, or via a container that includes CernVM-FS.
Before you look into these options, check if EESSI is already accessible on your system.
Run the following command:
ls /cvmfs/pilot.eessi-hpc.org
Note
This ls
command may take a couple of seconds to finish, since CernVM-FS may need to download
or update the metadata for that directory.
If you see output like shown below, you already have access to EESSI on your system. :tada:
host_injections latest versions
For starting to use EESSI, continue reading about Setting up environment.
If you see an error message as shown below, EESSI is not yet accessible on your system.
ls: /cvmfs/pilot.eessi-hpc.org: No such file or directory
Continue reading about the Native installation of EESSI, or access via the EESSI container.
Native installation¶
Setting up native access to EESSI, that is a system-wide deployment that does not require workarounds like using a container, requires the installation and configuration of CernVM-FS.
This requires admin privileges, since you need to install CernVM-FS as an OS package.
The following actions must be taken for a (basic) native installation of EESSI:
- Installing CernVM-FS itself, ideally using the OS packages provided by the CernVM-FS project (although installing from source is also possible);
- Installing the EESSI configuration for CernVM-FS, which can be done by installing the
cvmfs-config-eessi
package that we provide for the most popular Linux distributions (more information available here); - Creating a small client configuration file for CernVM-FS (
/etc/cvmfs/default.local
); see also the CernVM-FS documentation.
The good news is that all of this only requires a handful commands :astonished: :
# Installation commands for RHEL-based distros like CentOS, Rocky Linux, Almalinux, Fedora, ...
# install CernVM-FS
sudo yum install -y https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest.noarch.rpm
sudo yum install -y cvmfs
# install EESSI configuration for CernVM-FS
sudo yum install -y https://github.com/EESSI/filesystem-layer/releases/download/latest/cvmfs-config-eessi-latest.noarch.rpm
# create client configuration file for CernVM-FS (no squid proxy, 10GB local CernVM-FS client cache)
sudo bash -c "echo 'CVMFS_CLIENT_PROFILE="single"' > /etc/cvmfs/default.local"
sudo bash -c "echo 'CVMFS_QUOTA_LIMIT=10000' >> /etc/cvmfs/default.local"
# make sure that EESSI CernVM-FS repository is accessible
sudo cvmfs_config setup
# Installation commands for Debian-based distros like Ubuntu, ...
# install CernVM-FS
sudo apt-get install lsb-release
wget https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest_all.deb
sudo dpkg -i cvmfs-release-latest_all.deb
rm -f cvmfs-release-latest_all.deb
sudo apt-get update
sudo apt-get install -y cvmfs
# install EESSI configuration for CernVM-FS
wget https://github.com/EESSI/filesystem-layer/releases/download/latest/cvmfs-config-eessi_latest_all.deb
sudo dpkg -i cvmfs-config-eessi_latest_all.deb
# create client configuration file for CernVM-FS (no squid proxy, 10GB local CernVM-FS client cache)
sudo bash -c "echo 'CVMFS_CLIENT_PROFILE="single"' > /etc/cvmfs/default.local"
sudo bash -c "echo 'CVMFS_QUOTA_LIMIT=10000' >> /etc/cvmfs/default.local"
# make sure that EESSI CernVM-FS repository is accessible
sudo cvmfs_config setup
Note
:point_up: The commands above only cover the basic installation of EESSI.
This is good enough for an individual client, or for testing purposes, but for a production-quality setup you should also set up a Squid proxy cache.
For large-scale systems, like an HPC cluster, you should also consider setting up your own CernVM-FS Stratum-1 mirror server.
For more details on this, please refer to the Stratum 1 and proxies section of the CernVM-FS tutorial.
EESSI client container¶
The eessi_container.sh
script provides a very easy yet versatile means
to access EESSI.
This page guides you through several example scenarios illustrating the use of the script.
Prerequisites¶
- Apptainer 1.0.0 (or newer), or Singularity 3.7.x
- Check with
apptainer --version
orsingularity --version
- Support for the
--fusemount
option in theshell
andrun
subcommands is required
- Check with
- Git
- Check with
git --version
- Check with
Preparation¶
Clone the EESSI/software-layer
repository and change into the software-layer
directory by running these commands:
git clone https://github.com/EESSI/software-layer.git
cd software-layer
Quickstart¶
Run the eessi_container
script (from the software-layer
directory) to start a shell session in the EESSI container:
./eessi_container.sh
Note
Startup will take a bit longer the first time you run this because the container image is downloaded and converted.
You should see output like
Using /tmp/eessi.abc123defg as tmp storage (add '--resume /tmp/eessi.abc123defg' to resume where this session ended).
Pulling container image from docker://ghcr.io/eessi/build-node:debian11 to /tmp/eessi.abc123defg/ghcr.io_eessi_build_node_debian11.sif
Launching container with command (next line):
singularity -q shell --fusemount container:cvmfs2 pilot.eessi-hpc.org /cvmfs/pilot.eessi-hpc.org /tmp/eessi.abc123defg/ghcr.io_eessi_build_node_debian11.sif
CernVM-FS: pre-mounted on file descriptor 3
Apptainer> CernVM-FS: loading Fuse module... done
fuse: failed to clone device fd: Inappropriate ioctl for device
fuse: trying to continue without -o clone_fd.
Apptainer>
Note
You may have to press enter to clearly see the prompt as some messages
beginning with CernVM-FS:
have been printed after the first prompt
Apptainer>
was shown.
In this environment, you should be able to access the EESSI pilot repository:
ls /cvmfs/pilot.eessi-hpc.org
More information on using the eessi_container
script is available in the EESSI documentation.
To start using EESSI, see Using EESSI.
next: Using EESSI - (back to overview page)