This section presents an overview of the UNICOS file systems and of the
mass storage system available on Nebula.
This mass storage system is a Powderhorn 9310 Automatic Cartridge System
from Storage Technology, Inc., also known as the Silo.
Because you generally use the Silo in automatic migration mode, we
present it first as "just another disk file system."
The last section, Silo Specifics, discusses the hardware characteristics
of the Silo and commands that allow you to control movement of files to
and from tapes in the Silo.
Throughout this section, Silo with a capital S refers to the hardware or
the mass storage system in general, and /silo refers to the disk file
system that is used as a staging area for large files being moved
between disks and tapes.
The UNICOS file structure is like that of other UNIX systems, a tree
structure consisting of files and directories.
Some files and directories are on the mass storage system and may be
physically located on Cray disks or on tapes in the Storage Technology
Silo.
Each file and/or directory, regardless of its physical location, can
have several levels of protection and is identified by a relative or
full pathname.
These concepts, as well as the system directory structure, will be
discussed.
If you are familiar with the UNIX file system, you may wish to skip
directly to the following topics:
Under the UNICOS operating system, a file is a place where information
is kept.
A UNICOS file has a name by which it can be referenced.
When the filename is specified, commands perform operations relative to
the information the file contains.
For example, file contents can be displayed, copied, changed, deleted,
and moved around the file system and network.
The UNICOS operating system has three main types of files: regular
files, directory files, and special files.
Regular files contain programs or data, and they are usually
referred to simply as files.
Directory files list the names of other files.
Special files point to hardware devices, and although they can
be made accessible to end users, they are owned and managed by the
system administrator, known under UNICOS as the superuser.
A directory file, usually called simply a directory, lists a
set of related files in the file system.
The files it lists may be regular files or other directory files (called
subdirectories) that are subordinate to it.
This forms the basis for the inverted-tree, hierarchical structure of
the UNICOS file system.
Starting from a root directory at the top of the
structure, all other directories branch down through various
levels depending on the degree of their subordination.
There is no limit to how many levels this structure can have.
Just as with other files, the contents of directories and subdirectories
can be displayed, copied, changed, deleted, and moved.
Before you create files and directories, you need to know the rules for
naming them so that the names you choose are acceptable to the system.
The guidelines for naming files and directories under UNICOS are as
follows:
- Names can be up to 256 characters long.
- Any alphanumeric characters can be used. However, you should
limit these to letters, numbers, the underscore, and the period.
You should not use spaces. Other alpha characters (the asterisk,
pound sign, and so forth) have special meanings to the UNICOS
system (see
Special Characters (Metacharacters)
).
Problems often arise when operations are performed on files and
directories that have names containing these special characters.
- Uppercase and lowercase characters are significant.
UNICOS is case-sensitive, so foofile,
Foofile, and FOOFILE
are three distinct filenames.
- Filenames beginning with a period (for example,
.login) are hidden files.
By default, the basic ls command for listing
files and directories does not list hidden files.
To get a listing of all files, use the -a option
with the ls command (ls -a).
- Filenames ending in certain suffixes indicate specific filetypes
to some UNICOS utilities.
The table below lists some common special suffixes and their
associated filetypes:
Suffix |
Filetype |
.a |
File containing an object code library |
.c |
File containing a C source program |
.f |
File containing a Fortran 77 source program |
.f90 |
File containing a Fortran 90 "free-form" source program |
.h |
C language "include file" with header data |
.o |
Object code (output from a compiler) |
.s |
File containing a Cray assembly language (CAL) program |
A pathname specifies where a directory or file exists within the UNICOS
file system.
The pathname leads from higher level directories in the file tree
to lower level ones (never from lower to higher), and it may terminate
in either a directory or a file.
The two types of pathnames are full and relative.
A full pathname completely specifies where a file exists in the
total file system.
A relative pathname specifies where a file exists in relation
to the current working directory.
Full pathnames begin with a forward slash (/), standing for the
root directory, followed by one or more directory names
separated by forward slashes, and end with a directory name or
filename.
Relative pathnames do not begin with a forward slash.
A graphical representation of part of the file system might look
like this:
In this diagram, elliptical shapes denote directories and rectangular
shapes denote files.
A full pathname is created by stringing together each directory name
between the root and the file and terminating with the filename.
For example:
/u1/smith/programs/ffts/prog1
is the full pathname of the file shown in the lower left corner of the
diagram.
The full pathname of the file June3 is
The relative pathname begins with or follows the current directory.
To include the reference to the current directory, begin the relative
pathname with . (dot); otherwise omit the . (dot).
If you are operating from the directory labelled smith,
the relative pathnames for the files given above are
programs/ffts/prog1 |
or |
./programs/ffts/prog1 |
data/June3 |
or |
./data/June3 |
Directories, as well as files, may be referenced with full or relative
pathnames.
Some examples of directory names found on the preceding diagram are
Two distinct files on the diagram have the filename prog1.
The full pathnames of these files are
/u1/smith/programs/ffts/prog1
When specifying pathnames, you should use the following guidelines:
- If the file or directory is subordinate to your current working
directory, then a relative pathname will suffice as a
specification.
- If you issue a command and specify a file or directory that is
not subordinate to your current working directory, specify the
full pathname leading to the file or directory, starting with
the root directory.
The directory immediately below the root directory is also referred to
as the file system.
Using this diagram, the file systems shown are usr,
u1, u3 and u5, though
many others exist on the Cray.
Two special files are present in each directory: .
(dot) and .. (dot dot).
File . (dot) may be used to reference the current
working directory and .. (dot dot) is used to reference
the parent of the current working directory.
If you are currently working in the directory
you may replace that entire reference by the single character
. (dot).
If you wish to reference the directory
you may do so by the two characters .. (dot dot).
This is especially useful when one is referencing a file in the parent
directory or moving to another directory subordinate to the parent
directory.
For example, you may move from the directory ffts to
the directory other with the following command
Although you are automatically placed in your home directory when you
first log in, you can move to any directory to which you have access by
using the cd command.
However, you can work in only one directory at any given time.
The directory in which you are working is called the current working
directory.
You can find out what directory you are in at any time by entering the
command pwd (for print working directory).
The pwd command always shows the full pathname
(beginning with a forward slash character (/)) of your current working
directory.
(Remember that the beginning forward slash character stands for the root
directory.)
Every file and directory in the UNICOS system has an owner, usually the
file's creator.
The owner can assign various permissions or protections for each file
and directory.
These allow or prohibit access to the file or directory.
The three categories of users are owner (user), group, and other
(public), while the three types of permissions are read, write, and
execute.
Combining the permission and user types results in three sets of
permissions
owner read
owner write
owner execute
group read
group write
group execute
other read
other write
other execute
These permissions are shown when you enter ls -l and
are written as
The leading dash indicates an ordinary file.
Directory files begin with d.
Files residing on physical tapes in the mass storage system begin with m
(migrated).
The first set of three letters following the dash, d, or m pertains to
the owner (user), the second set to the group, and the third set to
other (public).
A missing permission is shown by a dash (-); this is called a
protection because it withholds the permission.
The owner (user) or the system administrator (superuser) can change the
permission for a file by entering the octal number combination (called
the mask) for the permissions.
Each permission set has the following octal numbers:
r (read) = 4
w (write) = 2
x (execute) = 1
These octal numbers are added together to produce the mask for each
separate category of user.
For example, a user with read and execute permission would have a mask
of 5 (4+1); users with all permissions would have a mask of 7 (4+2+1);
and users without read, write or execute permissions would have a mask
of 0 (zero).
The three masks are concatenated to form the mode.
To change permissions (or modes), use the chmod command.
Some commonly used modes are given below:
644 rw-r--r-- Owner (user) can read and write (4+2=6); the group
can read (4); and other (public) can read (4).
755 rwxr-xr-x Owner (user) can read, write, and execute (4+2+1=7);
the group and other (public) can read and execute (4+1=5).
711 rwx--x--x Owner (user) can read, write, and execute (4+2+1=7);
the group and other (public) can only execute (1).
444 r--r--r-- Everyone can only read the file (4).
The form of the chmod command is
For example, if you want everyone to only read the file named prog1,
enter the following:
To give all permissions to all users for the file named June3 (be
careful with this one!), use
Note: Directories require both read and execute permission for
access.
To display the default permissions assigned when you first create a
file, type umask.
This displays the permissions that are not allowed.
To change the default permissions, type umask and the
octal numbers of the permissions you want to take away.
The format of the umask command is:
If you specify a mask, the indicated access permissions are withheld
when you create a new file.
If you do not specify a mask, your default file creation mask is
displayed.
A umask value of 027 means that the user (owner) has no permissions
removed (0), the group cannot write (2), and others cannot read, write,
or execute (7).
Note: Since chmod gives permissions
and umask withholds permissions, the value
needed for one of these commands is equivalent to 777 minus the value
needed for the other.
For example, umask 027 is equivalent to chmod
750.
Note: Files created with an editor are not made executable even
though the umask value indicates they should be.
You must use chmod explicitly if the file is to be
executed.
Also, files that have been brought into the system with ftp may have
unexpected and undesirable permissions.
You should always check and correct the permissions of files brought in
by ftp after ending your ftp session.
The Cray allocation policy prevents any single user from using too much
disk space.
It is designed to provide a useful amount of the available disk space to
serve the computing needs of each user.
The summary given here provides a brief description of each file system,
the advantages and disadvantages of each file system, and the standard
allocation for each user in each file system.
The section on
Useful UNICOS Commands
in this manual, provides information on the specific commands used to
track disk utilization for home directories.
Each user has a home directory.
This is the directory in which you are automatically placed each time
you log in.
The full pathname of your home directory is of the form
/filesystem-name/login-name
where login-name is your login name and
filesystem-name may be
u1, u2, u3, u4, or u5.
The purpose of this directory is to store a small number of files that
determine the characteristics of your operating environment and make it
easier for you to manipulate files and move around the directory
structure.
These files are .login, .cshrc,
.. (dot dot), and . (dot).
The .login and .cshrc files are your
shell startup files.
Allocation: |
100 MB (6250 blocks).
This is a hard quota; you are not allowed to exceed your quota
at any time.
To determine the amount of disk space that you are currently
using, type the command "quota -u login-name" or the
command "du" while in your home directory. |
Advantages: |
The data in this file system are secure, i.e., files are backed
up nightly and are not scrubbed.
The disks used by this file system are fast and are connected
directly to the Cray. |
Disadvantages: |
Your allocation (quota) cannot be exceeded, even briefly.
A file may be migrated automatically from your home directory to
physical tape in the Silo.
Accessing migrated files may result in a slight delay.
See the description of the mass storage system below for more
information. |
The /silo directory was designed as a staging area for large files, and
each user has access to tape storage on the Storage Technology Silo.
You may archive files onto tape that will not fit in your home directory
space by placing them in the /silo file system.
Although you should store your large files in /silo, you should not use
them from there.
The files should be moved, or copied, from /silo to /tmp or /u1-/u5 for
usage.
The full pathname of the archival directory given to you takes the form
where login-name is your login name.
Small files, less than 4096 bytes, should NOT be stored in this
directory (see the explanation in the
Usage Strategy
section below).
Allocation: |
5 GB (5000 MB).
This file system is a staging area for files to move (migrate)
between tape and disk. |
Advantages: |
The disks used by this file system are fast and connected
directly to the Cray.
Files are secure.
You have a much larger quota here than in any of your other
directories. |
Disadvantages: |
Accessing migrated files may result in a slight delay.
You should not store small files, of less than 4096 bytes, in
/silo.
Nor should you use files directly from /silo; you should first
move the files to /tmp or /u1-u5 (see the explanation in the
Usage Strategy
section below). |
Because you have a fairly limited amount of disk space in your home
directory and because you should not operate from the /silo directory,
you need a temporary directory in which you can do your real work.
When you are given an account on the Cray, you are also given a
directory in the /tmp file system.
The full pathname of your temporary directory takes the form
where login-name is your login name.
Allocation: |
Unallocated.
This file system is shared among all users on a first-claimed
basis. |
Advantages: |
The disks used by this file system are fast and connected
directly to the Cray.
This file system contains 250GB of space on nebula.
You are not limited in how much of it you may use. |
Disadvantages: |
The data in this file system are volatile; the system scrubs
files not accessed for five days.
Files are not backed up from this directory.
Files must be moved to another directory (/u1-/u5 or /silo) for
permanent storage. |
$TMPDIR is a special directory within the /tmp file system.
This directory is created for the duration of a single login session
(interactive mode) or a single job (batch job processing).
As soon as the session or the job terminates, the space is released back
to the system and any files that were not copied elsewhere cease to be
accessible.
The main advantage to this directory is in its use with batch job
processing (see
Using TMPDIR with NQS Jobs
for more information on $TMPDIR).
Allocation: |
Unallocated.
This file is shared among all users on a first-claimed basis. |
Advantages: |
Same as /tmp.
Files in this directory are safe from the scrubber as long as
the job is executing in the batch queues. |
Disadvantages: |
Files must be moved to another directory for permanent storage
BEFORE the job terminates. |
Given the available directories and their advantages and disadvantages,
one good strategy for making use of these directories includes the
following elements:
- Keep only your most frequently used source files in your home
directory.
Executable files and core files tend to be large and should be
removed when not in use.
Take advantage of
make
files to easily re-create your executable files.
- Archive all remaining source files in the /silo directory.
If you never exceed your 100-MB quota in your home directory
(/u1-/u5), do everything there and do not worry about the Silo.
If some files are automatically migrated, they are easily
retrieved by operating on them with UNICOS commands such as
cat, cp, or vi.
- Run jobs that read large input files or generate large output
files in /tmp.
Files read by these jobs should be copied to /tmp at the
beginning of the job.
Files written during the job should be written into /tmp and
moved to a permanent file system (/u1-/u5 or /silo) after the
job completes.
- Do not run jobs that read or write files in the /silo directory
and do not have the executable file residing in this directory.
Files that are open in /silo cannot be migrated to tape.
The smooth operation of the Silo depends on automatic migration
of files between tapes and disks.
If you have a program with 500 MB of files open in /silo and the
job takes several days to complete, it may cause problems for
the migration software.
Move or copy files to /tmp or $TMPDIR when they are used by
batch jobs.
- Do not store files of less than 4096 characters in the /silo
directory.
These files cannot be migrated to tape.
Although no single small file causes a problem, many such files
can clog the directory and cause problems for the migration
software similar to the problems that can be caused by one or
two very large open files.
You can tar small files together into a larger
file and store that file in /silo.
(See
Grouping Related Files with tar
.)
- If you exceed your usage quota on your home directory (/u1-/u5),
you will need to decrease your file usage on that directory.
To do this, use dmput to migrate some files
immediately, or use mv to move some files to
the /silo directory.
The Powderhorn 9310 Automatic Cartridge System from Storage Technology,
Inc., is the mass storage device available for Nebula users.
This device provides each user with at least 5GB of "near-term" storage.
The software chosen for this system is the Data Migration Facility (DMF)
by Cray Research, Inc.
As explained earlier, Silo with a capital S refers to the hardware or
the mass storage system in general, and /silo refers to the file system
that is used as a staging area for large files being moved between disks
and tapes.
The DMF software operates in two modes simultaneously.
In manual mode, you force a file to move from disk to tape by issuing a
dmput command and to move from tape to disk by issuing
a dmget command.
In automatic mode, files are moved from disk to tape cartridges whenever
a file system on which the software is operational reaches a specified
level of fullness.
Files are automatically retrieved from tape and put on disk whenever a
user command that opens the file is issued.
The DMF software operates only on the HOME directories (/u1-/u5) and the
/silo directory.
This means you may not move files between the mass storage system and
the /tmp directory using the dmput and
dmget commands.
You can recognize files that reside on physical tape by an "m" in the
first position of the output from the ls -l command.
Such a listing might appear as follows:
mrwxr-xr-x 1 smith 1201256 Oct 29 1705 filename
Files residing on physical tape must be accessed and moved back onto a
Cray disk before the information in them can be read.
Commands that read the file, such as vi, automatically
migrate the file, while commands that use only the filename, such as
ls, do not.
Files that were migrated manually can be retrieved automatically; files
that were migrated automatically can be retrieved manually.
To specifically migrate files from a Cray disk to the Silo, use the
dmput command.
This command takes one or more filenames as input.
To give multiple filenames, separate the names by spaces, as follows:
dmput filename1 [ filename2 ... filenameN]
To manually recall files from the Silo to a Cray disk, use the
dmget command.
This command takes one or more filenames as input.
To give multiple filenames, separate the names by spaces, as follows:
dmget filename1 [ filename2 ... filenameN]
Note that the usual Unix wildcard characters will work in the filenames
for dmput and dmget.
Automatic file migration may be specified for any file system residing
on the Cray's disks.
The file systems currently using automatic file migration are the HOME
directories (/u1-/u5) and the /silo directory.
Automatic file migration has no effect on other file systems.
Automatic migration within DMF uses the dmput command
to keep a file system from becoming too full.
The automatic file migration daemon monitors the free space on these
file systems, and when free space falls below a threshold value, it
searches for candidate files to migrate.
Files are not migrated automatically unless this condition is detected.
DMF chooses which files to migrate based on the size of the file and the
length of time since the file was last accessed.
Large files that have not been accessed recently are the first files to
be migrated.
Files of less than 4096 characters are never migrated.
Files in your HOME directory accessed within the last 32 days are not
automatically migrated.
Files that have been migrated to tape are automatically recalled to disk
whenever a command is issued that opens the file, because these commands
must see the file's contents.
Examples of these commands are vi, cat,
and head.
Files opened in a Fortran or C program are also recalled automatically.
An example of a command that does not force the file to be automatically
migrated back to disk is ls.
The /silo file system was designed as a staging area for large files.
Files that will not fit in your other disk directories may be moved to
tape by placing them in the /silo file system.
If you know that you will not use these files in the immediate future,
please use the dmput command to force them to tape and
free up the disk space in /silo for other files.
If you will be using a file in the next few days, just move it to /silo
and allow the automatic migration scheme to control its physical
location.
Remember that files should not be used from /silo.
Open files (files in use) cannot be migrated.
If a large file needs to be retrieved from tape, the automatic tape
migration daemon must have the flexibility to move enough other files
from disk to tape to allow the retrieval of the large file.
After the file is retrieved, it should then be moved, or copied, from
/silo to /usr/tmp or /u1-/u5 for usage.
Printer Friendly Version
|