where
is something like def-profname
, thus a group with a reasonable quota of a terabyte or more.
=== An explanatory example ===
Imagine that we have a PI (“Sue”) who has a sponsored user under her (“Bob”). Both Sue and Bob start with a directory structure that on the surface looks similar:
* /home/sue/scratch
(symbolic link)
* /home/sue/projects
(directory)
* /home/bob/scratch
(symbolic link)
* /home/bob/projects
(directory)
The scratch link points to a different location for Sue (/scratch/sue
) and Bob (/scratch/bob
).
If Bob's only role was the one sponsored by Sue, then Bob's projects
directory would have the same contents as Sue's projects
directory. Further, if neither Sue nor Bob have any other roles or projects with Alliance, then each one's projects
directory would just contain one subdirectory, def-sue
.
Each of /home/sue/projects/def-sue
and /home/bob/projects/def-sue
would point to the same location, /project/
. This project directory is the best place for Sue and Bob to share data. They can both create directories in it, read it, and write to it. Sue for instance could do
$ cd ~/projects/def-sue
$ mkdir foo
and Bob could then copy a file into the directory ~/projects/def-sue/foo
, where it will be visible to both of them.
If Sue were to get a RAC award with storage (as is often the case these days), both she and Bob would find that there is a new entry in their respective projects
directory, something like
~/projects/rrg-sue-ab
They should use this directory to store and share data related to the research carried out under the RAC award.
For sharing data with someone who doesn't have a role sponsored by Sue--- let's say Heather--- the simplest thing to do is to change the file permissions so that Heather can read a particular directory or file. See [[Sharing data]] for more details. The best idea is usually to use ACLs to let Heather read a directory. Note that these filesystem permissions can be changed for almost any directory or file, not just those in your project
space --- you could share a directory in your scratch
too, or just a particular subdirectory of projects
, if you have several (a default one, one for a RAC, etc.). Best practice is to restrict file sharing to /project
and /scratch
.)
One thing to keep in mind when sharing a directory is that Heather will need to be able to descend the entire filesystem structure down to this directory and so she will need to have read and execute permission on each of the directories between ~/projects/def-sue
and the directory containing the file(s) to be shared. We have implicitly assumed here that Heather has an account on the cluster but you can even share with researchers who don't have a Alliance account using a [[Globus#Globus_Sharing | Globus shared endpoint]].
If Heather is pursuing a serious and ongoing collaboration with Sue then it may naturally make sense for Sue to sponsor a role for Heather, thereby giving Heather access similar to Bob's, described earlier.
To summarize:
* scratch
space is for (private) temporary files
* home
space is normally for small amounts of relatively private data (e.g. a job script),
* Shared data for a research group should normally go in that group's project
space, as it is persistent, backed up, and fairly large (up to 10 TB, or more with a RAC).