Jlab LQCD Cache Disk Pool
(Last modified date: January 23, 2007)

The cache disk pool is made of several large cache disks (/cache1, /cache5, and /cache6), which are mounted as /cache on interactive machine qcdi01, qcdi02, qcdi03 for cluster users to use. An attempt is made to evenly balance the data on these disks by organizing the data into different projects, with path names /cache/<project-name> (where the project name generally contains a collaboration name) and then distributing these projects onto the multiple servers. So far there are directories created for six projects. User must send a request through CCPR system in order to add a new project at the top level. Anyone in the lattice group can create a subdirectory under these existing project directories.

For users wishing to do some development work outside of formal projects, there are directories /cache/users/<username> for each user of the system. Please send a request through CCPR system to set up a work space under/cache/users/ area.

The cache disk is managed by cache manager software with pre-defined backup policy and deletion policy. Cache Disk Usage and Management describes the the cache disk management policy in detail. Please read this document before using any of this disk space. Files can disappear without any backup if a user doesn't understand the policy, as the cache system supports the notion of transient files at any point in the directory tree -- files that can be deleted when the disk is full.

The /cache/<project> directories have a default policy which will make all newly discovered files permanent. The /cache/users/<username> directories have a default policy which will make all newly discovered files volatile. User can change the default policy of any directory by create a new .srm-default-policy policy file in that directory. Please reference this page for the sample policy file.

User quotas are set up on all these disks. Please only keep data files needed in the near future on the disk. When any one of the disks is full, the least recently used files will be removed from disk automatically by the cache manager to free up space. The cache manager daemon will ensure that the files with permanent storage type are copied into the silo system before removing them from the disk. We also provide a srmPin utility for users to mark files as in use ("pin") for a period of time to ensure they stay on disk for a specified period of time.

Each user has a limited amount of pin quota, and it is much smaller than the disk quota. In this way, there will always be files that can be removed to free up disk space. In other words, only a small proportion of files can be pinned by each user at the same time. A user can pin his own files or files owned by others. One file can be pinned by several different users. When a user pins a file owned by another, it only guarantees it will not be removed by the clean up daemon, not the owner of the file. If a pinned file is deleted by the owner, all the pin records to this file will be removed and the pin quota will be returned to the user(s).

Please remember to give every file a unique name (path+filename). If a file is put into the silo and then deleted from disk, this path name should not be used again except to stage the original file back from the silo. If you create a different file with same path name, it will be deleted without backup since the cache manager will treat it as if it is already in the silo.

Users can use any Unix tool to manage their files (scp, cp, mv, rm. etc.) in the cache disk pool. Besides these Unix commands, the cache manager software provides additional utilities, srmQuota, srmPin, srmPinStatus, srmPut, srmGet, srmPermanent, srmLs, srmRequest and more. The following table summarizes the usage of these utilities.

UtilityArgumentDescriptionOption
srmQuota (none) lists user's pin quota -p (including pinned file)
srmPinStatus path1, path2, ... lists given file(s) pin status -l (to obtain detailed information)
srmPin path1, path2, ... pin a given file or files in a given directory -r (recursive)
-t (life time) number of days
srmGet path1, path2, ... get file(s) or files in given directories from the silo -r (recursive)
srmPut path1, path2, ... add file(s) or files in given directories into the silo -r (recursive)
-d (delete) after put into silo
srmPermanent
/srmVolatile
path1, path2, ... set storage type of file(s) or files in given directories to permanent/volatile -r (recursive)
srmRequest id1, id2, ... obtain status information of given request -
srmPendingRequest
(none) obtain status information of all pending and active requests submitted by this user -
srmLs (none) lists all files in the silo but not in disk owned by this user -l (long detailed list)
-h (display the usage)
srmLs path lists the contents of a given directory -l (long detailed list)
-r (recursively)
--cache (only file in the cached disk)
--ncache(only file not in the cached disk)
--pin (only pinned file)
--unpin (only unpinned file)
--silo (only file in the silo)
--nsilo (only file not in the silo)
--perm (only permanent file)
--volatile (only volatile file)


Cache disk directory layout

Cache disk file backup policy
Cache disk deletion policy

Cache manager Utilities: (located in /usr/local/bin directory on all interactive nodes).