Jasmine maintains a directory hierarchy that uniquely names each file on tape. This stub filesystem allows users to organize files as though they existed within a conventional directory. It also serves another important function: it maps each directory to a logical grouping, known as a volume set. Files are stored on tape along with other files belonging to the same volume set. Doing this simplifies auditing, permits efficiency gains on retrieval, and provides opportunity for physically moving tapes based upon their contents.
Note that files written to tape inherit the permissions of the directory into which they are placed, and have no inherent permissions of their own. The majority of files on tapes are readable by anyone. There is a small fraction of files that are owned by some experiment groups who wish to use these files exclusively for a short period of time during which no one else can read these files. In addition, only users with appropriate permission can delete and write new files to a virtual tape file system directory. Finally, all experiment raw data are owned by a special user "halldata". These raw data cannot be deleted by anyone.
Users can inspect the ownership, permission and contents of the tape library by listing the contents of the stub filesystem, rooted at /mss on centrally managed machines. This directory provides a limited view into the virtual filesystem system maintained within jasmine: it displays the hierarchical organization of files and it provides some basic information about the files on tape. It does not provide information about volume set mappings. At present, only administrative tools provide this capability.
The stub filesystem should be considered essentially write-once, read-many. While it is technically possible to logically re-organize files by changing their stub paths within jasmine, this can lead to confusing inconsistencies between the virtual view of the tape files and the physical reality of their on-tape location. For example, what does it mean to move a file to a directory that maps to a different volume set? Is it good to rename a file virtually, while it necessarily keeps its original name on tape?
New stub sub-directories are created as files are written to paths
with prefixes that match existing higher level directories. Only
administrators (members of the scientific computing group) can create
new empty directories that don't inherit the volume set mapping of their
parent directories.
Volume sets associate a stub directory location with a particular experiment, analysis phase, or other grouping that makes sense to end users of the system. Each volume set has a unique name and is assigned to a storage group, which indicates a broader level of grouping (e.g. hall a/b/c/d, lattice, accelerator, home, etc). It also is assigned an accounting category, which allows another level of auditing by classifying files as raw, production, hpc, user data, etc.
New volume sets are created by administrators as requested by users.