Storage Layout
All storage lives under /data on the compute node (pasteur) and is NFS-mounted at the same paths on pasteur-login — no path differences between interactive use and job scripts.
Directory Structure
The following paths are the same on both pasteur-login and the compute node (pasteur):
<group> in paths like /data/scratch/<group>/<username> is assigned when your account is created — it may be a lab name (e.g. casl) or a project name. Run id -gn to see yours.
Quotas
Each regular lab user has a combined quota of 70 GB across their home, scratch, and apps directories. This is enforced at the filesystem level.
| User Type | Quota | Scope | Notes |
|---|---|---|---|
| Lab user | 70 GB | Combined per user | Across home + scratch + apps/<group>/<user> |
| Shared dirs | Unlimited | Shared project storage | /data/shared/ — not counted against user quotas |
Check your current usage:
$ quota -s
Disk quotas for user jsmith (uid 1002):
Filesystem space quota limit grace files quota limit grace
pasteur:/data 12G 70G 75Gpasteur-login
Home Directory — /data/home/<username>
Your personal home directory. This is where your shell config files, scripts, and important outputs should live. It is accessible from both pasteur-login and the compute node.
- Quota: Counts toward your 70 GB combined quota (shared with scratch and apps/<user>)
- Backed up: No — store important data here but be aware there is no automated backup
- Accessible from: pasteur-login and pasteur (compute)
- Good for: Shell configs, job scripts, small outputs, code repositories
/data/scratch/ or /data/shared/ — a full quota causes login failures.
Scratch — /data/scratch/<group>/<username>
High-throughput temporary workspace intended for active job I/O. Use scratch for data that a running job reads and writes — it counts against your 70 GB combined quota.
- Quota: Counts toward your 70 GB combined limit
- Backed up: No — not backed up at all
- Accessible from: pasteur-login and pasteur (compute)
- Good for: Intermediate job outputs, large input datasets during an active experiment, model training checkpoints in progress
#!/bin/bash
#SBATCH --job-name=my_experiment
GROUP=$(id -gn)
SCRATCH=/data/scratch/$GROUP/$USER
mkdir -p $SCRATCH/run_${SLURM_JOB_ID}
# Copy input data to scratch
cp /data/shared/projects/myproject/input.tar.gz $SCRATCH/run_${SLURM_JOB_ID}/
# ... run your job ...
# Copy important results back to home when done
cp -r $SCRATCH/run_${SLURM_JOB_ID}/results/ $HOME/completed/job.sh
Apps — /data/apps/<group>/
Software installations — primarily conda environments. Your personal area is at /data/apps/<group>/<username>/.
# Create a personal conda environment
$ mamba create --prefix /data/apps/$(id -gn)/$USER/my-env python=3.11
# Activate it
$ conda activate /data/apps/$(id -gn)/$USER/my-env
# In a Slurm job script — always source conda first
source /opt/miniforge3/etc/profile.d/conda.sh
conda activate /data/apps/$(id -gn)/$USER/my-envbash
Shared — /data/shared/
Shared storage for the lab. Access is granted per project by an admin.
/data/shared/containers/— shared Apptainer.sifimages (admin-managed, read by all lab users)/data/shared/projects/— collaborative research datasets (readable and writable by all lab users)/data/shared/archives/— archived user data (admin access only)
Best Practices
| Use case | Recommended location |
|---|---|
| Job scripts & code | $HOME (/data/home/<user>) |
| Input datasets for a running job | /data/scratch/<group>/<user> |
| Completed experiment results | $HOME |
| Shared project data | /data/shared/projects/ |
| Archived data | /data/shared/archives/ |
| Conda environments (personal) | /data/apps/<group>/<user>/ |
| Apptainer container images | /data/shared/containers/ or /data/apps/casl/<user>/containers/ |