The CERN Advanced STORage manager (CASTOR) is a hierarchical storage management system which was developed at CERN for managing physics data files. Files can be stored, listed, retrieved and remotely accessed using CASTOR command-line tools or user applications that were developed using the CASTOR API. Files are always accessed via disk caches, these files are then saved to, and recalled from, tape. CASTOR provides a set of access protocols such as RFIO (Remote File IO), ROOT, XROOT and GridFTP.
CASTOR's design is based on a component architecture (Architecture diagram) using a central database that safeguards the state changes of the components. The access to disk pools is controlled by the Stager - the directory structure being kept by the Name Server. The tape access (write and recalls) is controlled by the Tape Infrastructure.
The 5 major functional modules are:
- Stager - this disk pool manager allocates and reclaims space; it also controls client access and oversees the disk pool local catalogue
- Name Server - this CASTOR name space (files and directories) includes the corresponding file metadata (size, dates, checksum, ownership and ACLs, tape copy information). Command-line tools modelled along Unix tools enables the manipulation of the name space (e.g. nsls corresponds to ls, etc...)
- Tape Infrastructure - under certain conditions CASTOR saves files onto tape in order to provide data safety and to manage data storage that is larger than the available disks
- Client - this allows the user to upload, download, access and manage CASTOR data
- Storage Resource Management - allows for data access in a computing Grid via the SRM protocol. It interacts with CASTOR on behalf of a user or other services (such as FTS, the File Transfer System used by the LHC community to export data).
CASTOR service at CERN
The CASTOR service at CERN is run by the DSS group within the CERN IT department. This service is for the storing of large volumes of physics data and user files on disk servers and on tape. Physics data (RAW data, simulation files) are stored on disk and copied to tape later.
Efficient writing is achieved by using large files (1 GB and above). For more moderate volumes, users are advised to use the AFS service. In CASTOR, files will normally get a copy on tape within 24 hours (8 hours for physics data). The disk copies are then deleted asynchronously to avoid the disks filling up.
The time taken for recalling data from tape to disk has large variations. As a guideline, a waiting time of 4 hours is quite normal. During this time the program will wait and data will get processed once the 'recall' has completed. Good read performances can, nonetheless, be achieved as files can be 'pre-staged' onto disk by the user or the experiment prior to the data being needed.
User access to data, in particular 'tape recalls' to create disk copies of data residing on tape, is wholly determined by the experiment/user community policies (see the SLA section on the Users Page). As an example, user files, such as ntuples for analysis, may be set to go to 'disk only' as these data are non-custodial, and hence do not need to be safeguarded in case of hardware failure. In case of 'disk full', no further writing is possible until obsolete data are removed by the experiment/user community.