Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Excerpt

There are multiple filesystems mounted to each of Pawsey's supercomputers. Each of these filesystems are designed for particular use cases. This page provides a detailed description of these filesystems.

...

Apart from /home, all are Lustre distributed filesystems. Lustre is an open-source, high performance parallel file system optimised for high throughput. 

The filesystems are different in many ways and are designed to facilitate different activities in supercomputing. The intended usage for each of them is explained below. Use outside of these purposes may cause poor performance for a particular activity as well as create detrimental impacts to other users.

...

Insert excerpt
Visual Studio Code for Remote Development
Visual Studio Code for Remote Development
nopaneltrue

Further explanation about quotas, permissions and copy (cp) vs move (mv) of files and directories is given in the sections below.

Software filesystem

The /software  filesystem is a Lustre file system with much higher throughput than /home. It is intended for software installations and Slurm batch script templates. Each project has an associated directory on the filesystem whose path is /software/projects/<project>. Within a project directory, each project member has his or her own directory whose full path, /software/projects/<project>/<username>, is contained in the MYSOFTWARE environment variable.

...

Column
width900px


Code Block
languagebash
themeDJango
titleTerminal 2. Checking the project quota.
$ lfs quota -g $PAWSEY_PROJECT -h /software
Disk quotas for grp project1234 (gid xxxxx):
     Filesystem    used   quota   limit   grace   files   quota   limit   grace
      /software  1.688G    256G  0k    256G       -   2941599415       0       0       -

...


where the first set of columns under used-quota-limit shows that only 1.6G of the 256G limit have been used.

Similarly, the per-user quota usage can be queried in the following way:

Column
width900px


Code Block
languagebash
themeDJango
titleTerminal 3. Checking the per-user quota
$ lfs quota -u $USER -h /software
Disk quotas for usr user1234 (uid xxxx):
     Filesystem    used   quota   limit   grace   files   quota   limit   grace
      /software  14.16G      0k      0k       -   49053       0  100000       - -


where the second set of columns under files-quota-limit shows that only 49053 i-nodes of the 100000 limit have been used.

Scratch filesystem

The scratch filesystem should be used for working data, which is input and output files actively used by jobs queued or running on the supercomputer.

...

The next two words after the permissions are, respectively, the owner-name and the group-name of the file. In the case of files created in /home, both the owner and the group are assigned to the username by default. And in the case of files created in /software and /scratch, the default for the group-name is the projectgroup for your project. This


Column
width900px


Tip

It is important to note because the quota limits explained in the section above are really counted on the group-name of the files and not the owner-name.

...

Then, the quota limit of all the files

...

that have groupname = username (added among all our filesytems) is 10k files, which is very limited. This limitation has frequently hit the quota limit for users that do not follow our recommendations for installing software, because some installation tools/commands may override the default group-name of /scratch and software and assign it as username instead of projectgroup. (Check the related pages at the bottom of this page.)

...

column

width900px


Warning

For the same reason, when transferring files between filesystems, we do not recommend the use of the mv (move) command, because this command preserves the original group-name. Instead, we recommend the use of the cp command (or other tools that allow the assingment assignment of the default ownerships for the destination filesystem). When using cp, do not use the -a or -p flags. If you want to preserve timestamps, use cp --preserve=timestamps. For example, considering the files in $HOME as above:


Code Block
languagebash
themeDJango
titleTerminal X. Do not use mv when transferring files to another filesystem
$ ls -ld $HOME/myscript.sh
-rw-r--r-- 1 username username 2 Nov 30 16:33 myscript.sh

$ cp $HOME/myscript.sh $MYSOFTWARE/myscript_cp.sh        #good practice
$ mv $HOME/myscript.sh $MYSOFTWARE/myscript_mv.sh        #bad  practice

$ ls -ld $MYSOFTWARE/myscript*
-rw-r--r-- 1 username projectgroup 6 Dec 10 10:03 /software/projects/project/username/myscript_cp.sh
-rw-r--r-- 1 username username     2 Nov 30 16:33 /software/projects/project/username/myscript_mv.sh


...

External links

...