Copyright © 2008 University Corporation for Atmospheric Research
July 18, 2008
Table of Contents
List of Figures
List of Tables
timestamp FormatsList of Examples
Table of Contents
This document describes the Distributed Computing Services (DCS) interface to the National Center for Atmospheric Research (NCAR) Mass Storage Service (MSS).
The MSS is a collection of hardware and software dedicated to providing archival storage services adequate for handling vast quantities of data. The major components are shown in this table:
Table 1.1. MSS Components
| Name | Description |
|---|---|
| DCS Client Systems | The computers where users run software (or scripts) that calls the DCS Client software in order to interact with the MSS. |
| DCS Server Systems | One or more computers that process the users' submitted DCS requests. The DCS Servers interact with the other MSS components on behalf of the users to accomplish their requests. |
| Mass Storage Control Processor (MSCP) | The computer that maintains the Master File Directory (MFD), which stores the metadata information describing all MSS files. The MSCP handles all resource scheduling for movement of MSS files into and out of the MSS, as well as the automatic migration of data between the various storage media. |
| Storage Manager (STMGR) | One or more computers that control the movement of MSS files between the DCS Client systems and other MSS components and the storage media of the disk cache and tape archives. |
| Disk Cache | A set of Redundant Array of Independent Disk (RAID) units that provide low latency access for most newly written files and frequently read files. |
| Tape Libraries | Several robotic tape library units that automatically handle the storage of tape media and mounts of that media into tape drives. MSS files stored in the tape libraries have an intermediate latency access time. |
| Offline Tape Archive | Open shelves that store tape cartridges, similar to shelves of books in a library. These tapes are mounted by hand when required. MSS files stored in the offline tape archive have a higher latency access time. |
The basic unit of exchange between the MSS and its clients is the MSS file, which is a named collection of one or more bytes (however, see Chapter 6, Usage Guidelines for cautions about storing small files). The maximum size of an MSS file increases from time to time, and the current maximum size is 12 billion (12,000,000,000) bytes. The MSS does not interpret the contents of MSS files, nor does it provide any data format conversion services. When an MSS file is transferred between the MSS and the user's system, the entire contents is moved in one operation. The MSS is not a file server; it is not possible to request the transfer of only a subset of an MSS file.
MSS files are stored for a limited amount of time, known as the retention period. If an MSS file has not been referenced for a period of days equal to its retention period, it is automatically purged from the MSS. After an MSS file has been purged, it is recoverable for a short period of time. See the section called “Retention Period” for more details.
The MSS supports directories that hold one or more MSS files and/or subdirectories. This structures the name space into a tree. Each authorized MSS user has a top-level directory. Directories are not persistent, they are created as needed and are automatically removed when empty. See the section called “Directory Behavior” for more details.
The DCS interface to the MSS is modeled, where possible, on the equivalent POSIX/UNIX style commands. The DCS suite consists of a single file movement command, several metadata commands, and several request management and status commands. The following commands are suitable for a command-line interface based on the current MSS:
| Command | Function |
| mscd(1NCAR) | Change working directory |
| msdu(1NCAR) | Display resource usage |
| msfind(1NCAR) | Find MSS files |
| msls(1NCAR) | List MSS directory contents |
| msmv(1NCAR) | Move (rename) MSS files |
| mspwd(1NCAR) | Print MSS working directory |
| msrcp(1NCAR) | Copy an MSS file to or from the local system |
| msrm(1NCAR) | Remove MSS files |
The commands, documented later, are intended to be as consistent as possible with their POSIX counterparts, and the reader is referred to the POSIX standard (IEEE Std 1003.2-1992, also known as POSIX.2), except where prohibited by the special constraints of the MSS (for example msfind, msmv). The MSS is an archive service and all aspects of its operation cannot be hidden from the user, hence the following commands are also necessary:
| Command | Function |
| mschproj(1NCAR) | Change an MSS file project number |
| msclass(1NCAR) | Change the class of service information for an MSS file |
| mscomment(1NCAR) | Change an MSS file comment |
| mspasswd(1NCAR) | Change an MSS file password(s) |
| msrawinfo(1NCAR) (and msallinfo(1NCAR)) | Return MSS-specific metadata information |
| msrecover(1NCAR) | Recover MSS files from the trash |
| msretention(1NCAR) | Set the MSS file retention period |
| mstouch(1NCAR) | Update the MSS file's last reference time |
The following POSIX commands can not be provided with the current MSS, as the MSS lacks the required functionality:
| Command | Function |
| chgrp | change file group ownership |
| chmod | change file modes |
| chown | change file ownership |
| cp | copy files |
| mkdir | make directories |
| rmdir | remove directories |
| umask | get or set file mode creation mask |
The DCS commands are also callable from C, C++ and Fortran programs. This can be performed via the system(3) C Library routine, by directly managing the fork(2)/exec(2) process or by using the one of the DCS libraries:
This section gives a brief summary of the changes from the current DCS version 3.3 software.
/usr/local/dcs-4.0/bin, and possibly
other directories if your system administrator has installed links.
Table of Contents
Each MSS file has a name (also known as the pathname) of 1 to 128 characters associated with it. The name is similar to, but does not have exactly the same semantics as, a POSIX (Unix) pathname. The name has the following components:
A slash (/) character.
A top-level directory, whose value is an
uppercase version of an user's UCAR Central Authentication Services (UCAS) account name.
A slash (/) character.
Zero or more directory names, each followed by a slash
(/) character.
The basename. The
path prefix is the
portion of the pathname that is not the basename.
The following restrictions apply:
Names are case sensitive. All printable 7-bit ASCII
characters in the range from the space (hex 0x20) to the tilde
(~, hex 0x7e) are valid.
Use of certain characters, including the space, will
require quoting to prevent interpretation by the user's local shell.
Trailing space characters are not allowed.
Trailing slash characters are not allowed, except when used to disambiguate a collided trash file from a collided trash directory.
Multiple consecutive slash characters are not allowed.
The strings consisting of a single period
(.) or two periods
(..) are not allowed as a
directory or basename component.
Only valid UCAS account names of users authorized to access the MSS are permitted as the first directory component.
The path prefix (including the separating slash characters) can only contain a maximum of 126 characters. This means a MSS file name must contain at least one valid character.
The MSS top directory level (also known as the MSS root directory) is not accessible to users. All MSS file or directory names must include a valid UCAS account name as the first component.
Here are some example MSS file names:
| Name | Comment |
/USER/file | Only the UCAS account name and basename. |
/USER/dir/file | UCAS account name, a single directory name, basename. |
/USER/a/b/c/file | UCAS account name, three subdirectory names, basename. |
When MSS files have either been removed or purged, they become
trash MSS files. In this case, their names are prefixed
with /trash. The trash prefix does not count towards the
name length. See Chapter 5, MSS File Life Cycles for more details.
MSS directories are not persistent. This means there are no
empty directories, and they will be automatically created as needed
and removed when empty. For example, if an MSS file with the name
/SIMPSONS/Bart/secretstuff exists, then the directories
/SIMPSONS and /SIMPSONS/Bart also exist.
If /SIMPSONS/Bart/secretstuff is removed, and
no other MSS files exist with /SIMPSONS/Bart as a
path prefix, then the directory /SIMPSONS/Bart will be
automatically removed.
At that point, if no other MSS files exist with /SIMPSONS as
a path prefix, then the directory /SIMPSONS will also
be automatically removed.
The MSS provides no low level commands to directly manipulate directories.
All of the commands described in this document that accept a directory name
as an argument may recursively descend the directory tree (some require the
-R option to be specified) to issue the appropriate
command on all MSS files contained within that tree. For example, the command:
msmv dir1 dir2
would cause thousands of individual move operations to take place if
dir1 contains thousands of MSS files. For
convenience from this point on, we will pretend that directories behave
as in the POSIX standard unless specifically noted.
Unless otherwise noted, the DCS commands that accept MSS file pathnames as input operands will accept POSIX-style shell patterns for expansion (also known as shell wildcards, as described briefly below and in POSIX section 3.13).
msls '*.tar.gz'mss:) need
be quoted.
A pattern consists of normal characters, which match themselves, and
metacharacters. The metacharacters are !,
*, ?,
and [. These characters lose their special
meanings if they are quoted by preceeding them with a back slash
(\).
An asterisk (*) matches any string of characters.
A question mark (?) matches any single character.
A left bracket ([) introduces a character
class. The end of the character class is indicated by a right bracket
(]); if the ]
is missing then the [ matches the
[ character itself, rather than introducing
a character class.
A character class matches any of the characters between the square brackets.
A range of characters may be specified using a minus sign
(-). The character class may be complemented by
making an exclamation point (!) the first
character of the character class.
To include a ] in a character class,
make it the first character listed (after the !,
if any). To include a minus sign, make it the first or last character listed.
Csh-style brace patterns like {pat1,pat2,...} will
also be expanded. Csh-style tilde expansion (~user
or ~/) is also done.
In the following table, each type of wildcard is marked with a notation about its relative expansion speed. Those wildcards marked as "Slow" will have to read the entire directory contents to determine all matching file names. This could be slow if the directory has more than a few hundred files, or very slow for directories with more than a thousand files. See the section called “Metadata Guidelines” for more wildcard usage guidelines.
Table 2.1. Shell Pattern (Wildcard) Summary
| Pattern | Expansion Speed | Description | Example | Meaning |
|---|---|---|---|---|
* | Slow | Matches 0 or more characters | 'ocean/199*' |
Match all names in the ocean subdirectory
that start with '199'.
|
? | Slow | Match a single character | 'ocean/199?/data' |
Matches all subdirectories of the subdirectory
ocean that have four character names that
start with '199'. Then selects any
name data within those matched directories.
|
[] | Slow | Match a class of characters | 'ocean[bpt]' |
Matches all names of the forms oceanb,
oceanp, and oceant.
|
Use - for a range of characters | 'ocean[a-z]' |
Matches all names that start with ocean
followed by a lower case letter.
| ||
Use ! as the first character
for negation.
| 'ocean[!w-z]' |
Matches all names that start with ocean
followed by a character that is not one of 'w', 'x', 'y'
or 'z'.
| ||
{} | Fast | Match multiple patterns | 'ocean/{1995,2000}' |
Matches all names of the forms ocean/1995
or ocean/2000.
|
~ | Fast | Shorthand for a user's top-level directory | '~/data' |
If the user's CISL logon name is BART, it expands to
/BART/data.
|
| Shorthand for another user's top-level directory | '~lisa/data' |
Expands to /LISA/data.
|
mswrite local_file '/USER/A***'/USER/A***.
If you then were to try:
msrm '/USER/A***'/USER/A. To remove this file, you must use:
msrm '/USER/A\*\*\*'Table of Contents
Each MSS file has a set of metadata, or attributes, associated with it. Directories also have a more limited set of non-modifiable metadata. The metadata commands (the commands other than msrcp) either display or manipulate this metadata. The operation of some of these commands could affect access to the contents of the MSS file by removing, renaming or password protecting it. The metadata will be described in the following paragraphs. In addition, the msrcp command can, when copying a file to the MSS, set (or change, when rewriting) some of the metadata for MSS file targets.
Each MSS file has an associated Class of Service (COS) that provides user specified hints or other instructions to the MSS on how to manage the file. The class of service is set by msrcp(1NCAR) when the MSS file is first written, and can be changed by the msclass(1NCAR) command. See the msclass(1NCAR) documentation for details of the supported classes of service.
Each MSS file can have a comment of up to 80 characters associated with it. The comment can contain any printable characters the user desires, and is meant for documentation purposes. When you provide a comment, you must quote it if it contains spaces or shell filename pattern characters. The comment can be set by msrcp(1NCAR) and set or changed by mscomment(1NCAR).
Each MSS file is owned by a single user (indicated by the MSS file's scientist number) and is charged to a project number. In addition, the user name (UCAS account) of the user who writes the MSS file is kept. The user name may not match the scientist number if the MSS file ownership has been changed. MSS file ownership may be changed by sending a request to CISL Customer Support (see CISL Customer Support web site for contact methods).
Files are owned by the user who wrote them. Ownership of a file is not based on the
directory in which the file resides. In other words, user JOE can write a file with
the pathname /LEE/DATA, but JOE still owns the file.
Such files will appear in listings of /LEE, but
charges will be made to the project set by the creator, JOE. Both JOE and
LEE will receive purge notices (see Chapter 5, MSS File Life Cycles for more information).
0) will be shown
for directories in the output of commands that display scientist numbers.
A dummy project number (00000000) will be shown
for directories in the output of commands that display project numbers.
The MSS does not implement MSS file access permissions. However, read and write passwords of 1 to 8 characters may be set by msrcp(1NCAR) when the file is created or later set or changed by mspasswd(1NCAR). If a read password is present, it must be supplied to msrcp before it will be copied from the MSS to the user's system. If a write password is present for an existing MSS file, it must be supplied to msrcp before an MSS file will be copied from the user's system to overwrite the existing MSS file.
The read and/or write passwords, if any have been set, must be given to any command that modifies MSS file metadata. No password is required to touch (update the last reference time) an MSS file, nor to recover an MSS file.
Each MSS file has seven reference times associated with it. They are the times of creation, last read, last write, and the last four references. The reference times are updated when a files is read, written or has its metadata changed. These reference times, along with the last read time, can be zero, which indicates the file has never been read nor has had its metadata modified.
Each MSS file also has read and write counters, which indicate how many times the file has been read or written.
Directories have only a creation time.
Each MSS file has a retention period that specifies how many days it should be kept after the time the file is last referenced (by a read, write or metadata update). The retention period ranges from 1 to 32,767 days, and the default is 32 days. If the MSS file is not referenced within its retention period, it is purged from the MSS (see Chapter 5, MSS File Life Cycles for further details). The retention period may be set by msrcp(1NCAR) when writing the file or changed by msretention(1NCAR) later.
Table of Contents
Access to DCS services is restricted to those systems located behind the UCAR network security perimeter. Systems with (UCAR interior) firewalls located between them and the DCS Servers must have the appropriate firewall entries made to permit certain TCP traffic to pass between the DCS Client system and the DCS Servers. For systems that do not meet these requirements, MSS file access via the MSS FTP Server may be an alternative.
DCS is supported for a variety of Unix systems. See the DCS 4.0 Support Policy for more details. See the Installation Instructions for details on installation and configuration of the DCS commands including on how to configure them for use from behind an UCAR internal firewall.
The normal cd command is somewhat unique in that it is directly performed by your shell. The shell sets its own (internal) working directory, which child processes (commands) inherit. Thus, to get similar behavior, the mscd command must also be performed by your shell in some fashion. To accomplish this, the mscd command must be a shell function (for Bourne or ksh) or an alias (csh or tcsh) which calls another command. This auxiliary command, mscdsetup, is used both to initialize the shell and to perform the actual directory change operation.
Initially, the user must cause the mscdsetup(1NCAR) command to be run before
any use is made of mscd. This can be done explicitly or implicitly via
a shell startup file (note that the Bourne and ksh shells only execute
$HOME/.profile at login time, not when subshells are started).
When mscdsetup is run, it will initialize the NCAR_MSSPWD environment variable (if not
already set) and initialize the mscd alias or function for use.
Because the DCS commands are a mixture of POSIX and non-POSIX, the command line options accepted are a mix between POSIX style (single character) and MSS-specific (multiple character) options. The MSS-specific options can sometimes be abbreviated to the shortest unique prefix. In the man pages for each command, the MSS-specific options will shown in the following form:
-pre[fix]
Where -pre is the minimum required prefix and the suffix
fix may be optionally given.
-project option may be uniquely abbreviated to
-p in commands that do not also take the
period option. However, to avoid confusion,
you may wish to consistently use -pr for specifying
the project and -pe for specifying the retention period.
The DCS Client has some configurable parameters that control the retry of job submission and how long the DCS Client will wait for several phases of the job's processing to complete. These parameters may be tuned, if desired. Note that it is possible for the system administrator for the system upon which the DCS Client runs to have modified the defaults shown below.
These options are set via the --config
command line argument. The value for stringstring is of the form:
name1=value1[,name2=value2][,...]
where namen specifies
the option name and the corresponding value is provided by
valuen.
The following table describes the option names and values.
Time limits are given in seconds, and may be optionally suffixed with
m to specify minutes or
h to specify hours:
number[m|h]
Table 4.1. Advanced DCS Options Description
| Name | Description |
|---|---|
| job.run.timelimit |
Maximum time to allow for job completion after the
DCS server has notified the DCS Client that processing has started.
DEFAULT: 24h |
| job.start.timelimit |
Maximum time to allow for the DCS server to notify the
DCS Client that processing has started.
DEFAULT: 12h |
| submit.retry |
Permit the DCS Client to retry the submission to the
DCS Queue Manager. The values are 1 (one) for true,
0 (zero) for false.
DEFAULT: 1 |
| submit.retry.timelimit |
Maximum time to allow for submission retries
before giving up.
DEFAULT: 2h |
For example, to set the job start time limit to 2 hours, use:
dcscmd --config job.start.timelimit=2h [args ...]
The DCS commands look for a project number to use in this order:
The command line -project option.
The environment variable NCAR_PROJECT.
A system-dependent job account id may be used to obtain a suitable project number.
The file $HOME/.ncar_project.
A default project number from the User master File (UMF).
Currently, charging is only done for storage and file transfer. Metadata
and DCS request management operations are not charged. This may change
in the future, and so all commands accept the -project option.
MSS file read and write passwords are difficult to fit into a POSIX-style interface. However, since the MSS currently implements neither permission nor access control lists (ACLs), we must deal with read and write passwords.
Since many of the commands accept multiple MSS file names, and the individual files could have separate read or write passwords, you may give the password options multiple times on a single command line. The given password option applies to every MSS file from that point on (reading left to right), until changed by another option. In this fashion, a group of MSS files with the same password or different passwords may be manipulated. However, this could quickly become confusing.
The following two options apply to existing MSS files that have a read or write password set currently, or to a new file being created with msrcp:
-rpwd passwordSupply the read password for MSS files.
-wpwd passwordSupply the write password for MSS files.
You may give a null password (i.e. -rpwd '' with no space between the
quotes) to indicate subsequent MSS files do not (or should not) have a password.
For example, if the MSS file abc has a read password of
secret, and the MSS file def has
no read password, you could set the comment for both MSS files with either of
the following commands:
mscomment -c "A comment" -rpwd secret abc -rpwd '' defor:
mscomment -c "A comment" def -rpwd secret abc
The following options may be used to set a new read or write password with some of the metadata commands:
-newr passwordSupply the new read password for MSS files.
-neww passwordSupply the new write password for MSS files.
You may give OFF as the password
(i.e. -newr OFF) to indicate subsequent MSS files
should have the current password removed. For example, if the MSS files
abc and def have a read password
of secret, and you wish to set a new read
password of private for abc and
remove the password for def, you could use the following command:
mspasswd -rpwd secret -newr private abc -newr OFF def
Perhaps the worst simple example is moving an existing MSS file file1
with read abc and write def
passwords to replace an existing MSS file file2 with read
ghi and write jkl
passwords and specifying new read mno and write
pqr passwords:
msmv -f -rpwd abc -wpwd def file1 -rpwd ghi \
-wpwd jkl -newr mno -neww pqr file2
The msls command displays simulated permissions for MSS files
and directories. For directories, the owner and
other permissions are always displayed as
rwx, and the group
permissions are always displayed as ---.
For files, the owner permissions are always displayed as
rw-, group
permissions are always displayed as ---,
and the other permissions indicate whether
the MSS file actually has a read and/or write password.
The other permissions display an r
if the file is readable by everyone (no read password), and display a
w if the file is writable by anyone
(no write password). For example:
-rw----rw- 1 AUSER 01234567 4403 Aug 27 16:41 one -rw----r-- 1 AUSER 01234567 391168 Mar 3 1993 two -rw------- 1 AUSER 01234567 1204992 Jul 7 1992 three
The file named one is read/write for others (it has no read
password and no write password). File two is readable by others,
but not writable by others (no read password, but it does have a write password).
File three is neither readable nor writable by others (it has both
read and write passwords). Of course, if you know the read/write password,
then you can read/write the file.
While shell patterns (wildcards), msfind and recursive operations allow you to conveniently manipulate multiple MSS files with a single command, they may not be flexible enough for every situation. If a list of the desired MSS files can be generated, you can use the xargs(1) program to drive the appropriate DCS command with the contents of the list. The xargs command breaks up the list of files into manageable chunks so that it does not exceed your shell's command line limit. Hence the desired DCS command may actually be run several times, each with a different portion of the filename list. The xargs command has several options, including the -t option that allows you to see the full command it's executing.
Here are some points to be aware of when using xargs:
The xargs command runs on your system, and some of the available options can be specific to each operating system distribution. See the xargs man page for details.
The file list used by xargs is local to your system. It can either be a file or the output of another command piped to xargs. The MSS file names in the file list are separated by blanks or newlines. This may cause problems if the MSS file names contain blanks, unless the version of xargs you are using handles quoting.
The MSS file names can be either absolute or relative (to NCAR_MSSPWD),
and can make use of shell patterns (wildcards).
These DCS commands are not suitable for use with xargs: mscdsetup, mscd, msfind, msmv, mspwd and msrcp.
Please read Chapter 6, Usage Guidelines before using xargs with large lists of files.
The DCS commands will use the following environment variables, if they are set, to provide defaults for various parameters and/or options.
NCAR_MSSPWDThe MSS utilties' current working directory. If this variable is not set, the DCS commands default to using the user's MSS top-level directory as the working directory.
NCAR_PROJECTThe project number to use. If this variable is not set, the DCS commands will select a default project number, as described in the section called “Project Number for Accounting”.
A non-zero exit status code indicates that the job encountered one or more problems while trying to execute the request. Error messages are sent to stderr.
Table 4.2. Exit Status Code Values
| Exit Code | Description |
|---|---|
| 0 | Success. |
| 1 | The request failed. It may be possible to retry the request later after making the appropriate changes to the command arguments. |
| 2 | A retryable error happened. It may be possible to retry the request after a delay. |
| 3 | The request was cancelled by the user, or the DCS Client program has exited for some other reason (e.g. client system reboot). |
| 4 | The request was cancelled by a DCS administrator. |
| 5 | The request was cancelled for a lack of progress. This can happen if the DCS Client program was stopped or blocked for some reason (such as a control-Z typed at the terminal stopping the job, or blocking while writing to stdout when piped to another command such as a pager.) |
| 6 | The request failed to start before the job start timeout expired. |
| 7 | The DCS Client program lost the connection to the DCS request processor sometime after the request processing had started. It may be possible that the request has been partially, or even fully, completed. Examining the request log file with the dcsjlog(1NCAR) command may provide that information. The request may be retryable, but may require DCS administrator intervention if the request has triggered a bug in the request processor. |
| 8 | The NCAR scientist number is unknown. |
| 9 | The NCAR project number is bad or is invalid for the user. |
| 10 | One or more of the specifed DCS job ids were not found. |
| 11 | The dcswait command timed out before the target job(s) completed. |
| 254 | An internal error was detected in the DCS Client program. |
| 255 | An internal error was detected in a DCS server program. |
The DCS commands are passed to remote servers for execution. This means that your system must have network connectivity for the entire time your DCS command is running. If, for any reason, when the DCS server starts to process your request, it can not contact the DCS Client on your system or forward progress is delayed for too long, the request will be automatically terminated. The reason this is done is because the MSS is a shared resource, it is not fair to other users to tie up DCS Server resources on commands that may never complete.
The MSS is limited in the number of operations it can perform at any one time. For example, during periods when few requests are active, your metadata requests may process at the rate of 40 MSS files or directories per second. Thus, it may take a long time to process MSS directory trees with many thousands of files, especially during the busy times of the day. You can use the dcsq command to see if your request is active, or is queued. Some MSS enhancements are planned for the near future to improve the performance of metadata commands.
Table of Contents
This chapter describes the behavior of the MSS when files are either explicitly removed (with msrm) or are automatically purged by the MSS system.
The date and time the MSS file was written to the MSS. This includes a rewrite of an existing MSS file.
The date and time the MSS file was last written, read, touched, or has had its metadata modified.
Each MSS file has a retention period that specifies how many days it should be kept after the time the file is last referenced (by a read, write or metadata update). The retention period ranges from 1 to 32,767 days (inclusive), and the default is 32 days.
An MSS file with a retention period of less than 30 days.
MSS files that have the class of service usage=backup have their retention period interpreted as an expiration date. They become eligible for permanent deletion retention period days after their creation date.
During purge processing, email notifications will be sent for MSS files that will reach their retention period in the near future. MSS files that have reached the end of their retention period will be moved into the trash, and eligible trash MSS files will be permanently deleted.
When MSS files are removed or are purged, they are placed into a special area of the MSS called the trash.
Permanent deletion occurs when a trash MSS file reaches the end of its trash retention period. Permanent deletion also happens when an MSS file with the class of service usage=backup or a temporary MSS file reaches its expiration date.
Currently, the purge processing is performed once a week early on Sunday mornings. The following actions are taken by the purge program:
For MSS files that have a retention period greater than or equal to 30 days: if the MSS file will be eligible for purging 14 days from now the first purge email notice will be sent.
For MSS files that have a retention period greater than or equal to 30 days: if the MSS file will be eligible for purging 7 days from now the second purge email notice will be sent.
For MSS files with the class of service usage=normal: if the MSS file has reached the end of its retention period it will be moved into the trash. The trash expiration date is set to 29 days. If the the MSS file is not recovered from the trash before those 29 days are up, it will be permanently deleted, and will be no longer recoverable.
For trash MSS files: if the trash MSS file has reached its purge date it is permanently deleted, and is no longer recoverable.
For MSS files with the class of service usage=backup or temporary MSS files if the MSS file has reached its expiration date it is permanently deleted and is not recoverable.
Before an MSS file is moved into the trash by the purge processing, up to two email notifications will be sent to the owner of the file. If the owner of the top-level directory under which the MSS file resides is different from the owner of the MSS file, the top-level directory owner will also receive the email notifications.
An MSS file is removed when a user runs the msrm command successfully. When this happens, the MSS file becomes a trash MSS file, and the trash expiration date is 30 days in the future. If the MSS file is not recovered from the trash before those 30 days are up, it is permanently deleted.
When MSS files are removed or are purged, they are placed into a special
area of the MSS called the trash. The name
of the MSS file is prefixed with /trash.
While in the trash, the only metadata operations that can be performed
are msls and msrecover. MSS files may not be read or written
while they are in the trash. While MSS files are in the trash, but before they have been
permanently deleted, they can be restored with the msrecover command.
This chapter provides some guidelines about how to efficiently use the MSS.
Think about what data you need to store on the MSS. Be selective, don't store data indiscriminately just because the MSS is there. In particular, temporary data (i.e. files with a lifetime of less than one month) should probably never be placed on the MSS.
Store fewer large files instead of numerous small files. Files smaller than 64 KB are very inefficient due to overhead, and a one byte file requires 112,640 bytes on the storage medium due to the blocking and checksum overheads, and you will be charged for all 112,640 bytes. Using the tar or cpio command to containerize existing sets of small files before transferring them to the MSS will also reduce the latency to read or write the small files.
Make use of single copies via Class of Service when the data doesn't require the highest level of reliability (see msclass(1NCAR) for details). Remember that the default reliability class of service generates dual copies, and that you will therefore be charged double as well.
Avoid repetitious reads if it all possible. For data that you will access frequently, cache it elsewhere.
Set a reasonable retention period when the MSS file is first created by using
the -period option for msrcp(1NCAR)
Try to estimate the useful lifetime of your data.
For example, some data may only be useful while a specific type of computer is
in use. In this case, a 5 year retention period (or the expected life of that
computer) might be best. You can always change the retention period later
if circumstances warrant it.
The MSS is not a file server, and clients such as middleware must not use it as such. Middleware must use disk cache management to locally buffer file traffic to and from the MSS. Repeated reads of data should be satisfied from the middleware's disk cache as much as possible. The disk cache should be sized appropriately. Do not write temporary data to the MSS.
Data providers wanting to provide web access to NCAR data assets that are archived on the MSS should do everything they can to hide the underlying MSS file and directory pathname structure from end clients. Since many middleware web applications tend to abstract from files, this should not pose any heavy additional burden on the data provider.
Since the computer systems that host middleware servers often also use the MSS to back up their filesystems, data providers must be careful to specifically exclude backing up those cache areas which contain copies of data already archived on the MSS. Failure to do so can (and has) result(ed) in significant redundant backing up of MSS data, and its associated charges.
The creation of more than 5,000 files in a day is a heavy load, and users requiring this rate of data production are encouraged to submit a request to the CISL Customer Support (see CISL Customer Support web site for contact methods) to obtain consultation.
Users wanting to offload more than 100 GB of data should submit a request to the CISL Customer Support to obtain consultation. User options and guidelines for offloading data are discussed at the Offloading MSS Files web site.
Avoid submitting DCS metadata commands that examine or modify large numbers of files, especially with recursive operations on directories. A large metadata update is one that updates 10,000 or more files. A large msls operation is one that lists more than 100,000 files. Users having metadata needs at these scales are encouraged to contact the MSS group for consultation. Consider using the MSS reporting website for obtaining large file listings.
Users are advised that typical transaction rates during busy periods for metadata operations can be as low as these numbers: msls lists metadata entries at 10 per second, and metadata updates about 1-5 per second. This also applies to the exapansion rates for slow wildcard patterns.
When feasible, generate lists of MSS file names programmatically instead of using slow wildcard patterns. Capturing the output msls for a directory then using the grep on your local system may be faster than trying to use slow wildcard patterns in a directory containing many files.
If you are going to manipulate all files in a directory, use a recursive metadata
command (-R option) instead of a trailing
/* wildcard pattern.
Break up very large requests into pieces. Any single request that requires more than 24 hours to execute will automatically be terminated at the end of the 24 hour period.
Do not use mstouch on monthly basis to prevent an MSS file with the default retention period from being purged. If you need to keep some data longer than anticipated, consider using msretention to set a new retention period that reflects the new lifetime of that data, as opposed to using mstouch repeatedly.
Table of Contents
This chapter provides some guidelines about how to provide effective problem reports. The more information you can provide initially, the easier it will be to find and fix any problems.
You can report problems to CISL Customer Support (see CISL Customer Support web site for contact methods) or by calling 303-497-1278. Using the web site will make it easier to get the information accurately to the MSS administrators.
Please be prepared to provide as much of the following information as possible:
Your contact information, including your name, phone number and email address.
Your UCAR Central Authentication Services (UCAS) account name and the project number under which you expected the DCS commands to run and under which your data to be stored.
The host name of the computer on which you were running the DCS commands.
If this computer is not directly managed by CISL, provide the full
domain name. Also please provide the operating system name and revision,
which can be done by providing the output of the
uname -a command.
The dates and times you were running the DCS commands and the DCS job ids if you know them.
The DCS command names and options used.
A problem description. Please include the actual output from the DCS commands if possible.
Table of Contents