Data is written to tape most commonly via a command named jput. The requirements for using this tool are:
- a valid scientific computing certificate as described in "Getting Started",
- access to /site/bin/jput on a supported machine,
- write permission in the jasmine stub file system. Permissions are typically granted to groups when the destination directories are configured by scientific computing administrators.
Files may also be sent to tape via other special-purpose tools documented elsewhere. Regardless of the the way that write requests are generated, the ultimate process that jasmine uses to service those requests is as follows:
- For each destination file in the stub filesystem, the request will fail if any of the following conditions pertain:
- the file already exists,
- another request already exists to write the file,
- the user does not have permission to write the destination file,
- the destination directory does not exist and the user does not have permission to write in the closest ancestor directory.
Once a request has been created successfully, it will be assigned a unique identifier. Each job in the request will also be given its own unique identifier and assigned an initial state of Pending. The meaning of job states for write requests is as follows:
- Pending - the job is waiting to be processed
- Staging - the file is being copied from the client to a holding area
- Staged - the file is ready to be written to tape
- Running - the file is being written to tape
- Done - the file was successfully written to tape
- Cancelled - the job was cancelled
- Failed - an error prevented the file from going to tape
In some special situations (mostly when write requests are generated via special-purpose tools other than jput), a write job may start in the Staged state. This indicates that the file can go directly to tape without having to be stored in a holding area.
When the jasmine scheduler determines it's time to start processing a file, a data mover service will either contact the client via socket to stream the file over the network or, if possible, copy the file directly from its source location on a network filesystem.
Once a file has been written to tape, jasmine sets its state to Done and creates the corresponding /mss stub file.
If a non-fatal error occurs at any point in the processing of a file, its state will automatically be reset for a future retry. The jput client will display each job's state as it is updated.