Nevis Linux Cluster - Automount
This page describes how
automount
is used at Nevis to link systems on the cluster.
IMPORTANT
If you refer to any path that begins with the text /.automount
, you are automatically doing something wrong. If you write to a systems administrator
and include such a directory path in your question, you will be sent to read this page without further comment. Correct automount paths always begin with /a
not /.automount
; use of the latter guarantees that your task will fail.
The naming scheme for automount directories
This section is first because I assume most users at Nevis know what
"mounting a disk" means and have a vague sense what "automount" means.
This section tells you what you really want to know: how to access
files on other Nevis machines just by visiting a directory. The
special directory names are:
/a/home/{computer-name}
This maps to the
/home
directory on the named computer. For
example, if you access
/a/home/tanya/seligman
from your
computer, you will see the contents of
/home/seligman
on
tanya.
/a/data/{computer-name}
This maps to the
/data
directory on the named computer. For example,
if I access
/a/data/kolya/seligman
from my computer, I will see the
contents of
/data/seligman
on
kolya.
Not every computer has a
/data
partition. If you try to access
/a/data/hypatia
, you'll get an error message.
/a/work/{computer-name}
This maps to the
/work
directory on the named computer.
Typically, only the workgroup servers have a
/work
partition;
usually this is an additional disk that was added to the server. As
of May 2010, no servers export any
/work
partitions.
/a/tier3/{computer-name}
This maps to the
/tier3
directory on the named computer. As
of May 2010, only
xenia has a
/tier3
partition.
/a/file
This maps to the
/file
directory on the
archive file server. For example, if I access
/a/file/d0disk/d0/steinbru
from my computer, I will see the
contents of
/file/d0disk/d0/steinbru
on
archive.
This is meant to be a way for long-time users to access files that were
formerly on
nevis1, a central Nevis server that
no longer exists
.
/a/mail/inbox
This maps to the
/mail/inbox
directory on the mail server. See the
mail-related files page for more information.
/a/mail/folders
This maps to the
/mail/folders
directory on the mail
server. See the
mail-related files page for more information.
/a/apps/local
This maps to a Nevis application directory (e.g.,
/usr/nevis
on the
applications server. This is soft-linked to
/usr/nevis
on your computer, so the contents of this directory always come from the applications server.
What does it mean to mount a disk?
Suppose you're on one computer system. You want to see files located
on another computer system. You can copy files from the other system
using
sftp
or
scp
,
but this is inefficient. It would be easier if you could somehow
"attach" the disks or directories on the remote computer to your own.
Then you can access those files directly, list the contents of the
directories to see if anything changed, perhaps even create new files
on the remote computer.
The way a UNIX machines attaches a disk or directory on a remote computer is called
NFS
.
The UNIX command to attach a disk is
mount
.
The syntax for referring to a directory on a remote computer is
{computer-name}:{remote-directory}
. So if you wanted access
to the
/home
disk on my computer
tanya, you'd want to mount
tanya:/home
.
After you've mounted my disk on your computer, you need some way to
refer to it. You probably don't want to call it
/home
,
because then you wouldn't be able to refer to a
/home
directory that already exists on your computer. Typically you have to
mount a remote directory under some other name. In this example,
let's pick a "local" name for
tanya:/home
of
/tanya/home
. So the mount command would be:
mount tanya:/home /tanya/home
If you could execute this command, then you could
cd /tanya/home
and see the files in
/home
on
tanya.
But if you tried to execute the above command, you probably got an
error message because you're not running an account with
administrative privileges. Even if you were, you have to make sure to
create the directory
/tanya/home
on your machine before you
execute the
mount
command. Once you were through accessing
the directory, you'd have to remember to unmount it. And if you had
to access many directories on many computers (which is common in a
cluster), you'd have to remember all these details for each directory
you mounted.
As you've already guessed,
automount
takes care of all these
details for you.
What does automount do?
The name says it all:
automount
is a facility to
automatically mount disks. If you go to a directory that's monitored
by
automount
, it will determine which disk on a remote
computer system you wish to see and mount it for you.
The
df
command lists the disks that are currently available on your system.
On 12-Jul-2001, I typed
df -h
on my computer system
tanya, and this was the output:
Filesystem Size Used Avail Use% Mounted on
/dev/hda5 486M 190M 271M 41% /
/dev/hda6 2.7G 1014M 1.6G 38% /home
/dev/hda7 972M 849M 72M 92% /usr
franklin:/mail/inbox 4.1G 3.1G 1.0G 76% /.automount/a/franklin/mail/inbox
karthur:/usr/local 17G 11G 5.0G 69% /.automount/a/karthur/usr/nevis
The first three filesystems are partitions on my system. The
last two are directories on remote computer systems that have been
mounted on
tanya by
automount
:
-
franklin:/mail/inbox
was mounted when my mail program accessed the file /a/mail/inbox/seligman
. The directory /a/mail/inbox
is monitored by automount
; when I accessed a file in that directory, a directory on the mail was mounted on my computer.
-
karthur:/usr/nevis
was mounted when my system searched the directory /usr/nevis
for programs. If you're running on a system in the Linux cluster, the directory defined in ${NevisAppBase}
is linked via automount to a directory on the applications server
:
# ls -ld ${NevisAppBase}
lrwxrwxrwx 1 root root 13 Jun 22 2000 /usr/nevis -> /a/apps/local
You'll notice that the directory under which the remote system is
mounted is
/.automount
. This is an
automount
convention; you should leave this directory alone (see the warning above).
If you list the name of a directory that
automount
monitors,
you can see the link:
# ls -ld /a/mail/inbox
lrwxrwxrwx 1 root root 34 Jul 12 11:35 /a/mail/inbox -> /.automount/a/franklin/mail/inbox
When you do your work, you can ignore all these links. Just access a
directory using the
automount
naming
scheme and let the system take care of the links for you.
A practical example of automount
My home directory is
/a/home/tanya/seligman
. Thanks to
NIS
,
this is my home directory no matter which Linux box I'm logged
into. All of my various configuration files and scripts are available
in my
~seligman
directory; for example,
~/.zshrc
is
the same for me on every Linux machine.
When I get a chance to do physics, I might
simulate
the ATLAS
liquid-argon calorimeter using Geant4. My desktop Linux box is
tanya. The source code for all that work is in
/a/home/tanya/seligman/geant4
(or
~seligman/geant4
,
or simply
~/geant4
for me).
The ATLAS workgroup server is
kolya, so I store my compiled
binary files and libraries in
/a/home/kolya/seligman/g4work
. That way, when my programs
execute, their physical location is on the same computer that's
running the programs. I prefer to compile and execute my programs on
the server
kolya, which is much faster than my desktop
tanya. I can run a job by logging onto
kolya, or I can
run it remotely via SSH:
ssh kolya "at -f ~/geant4/calo/LArHits-0.5/cmd/electron.cmd now"
When I generate big ROOT Tree files or any other form of output, I can
store them in
/a/data/kolya/seligman/LArHits
, which has a lot of
available disk space.
Note that these directory names are the same on every system in the
Linux cluster: my own desktop
tanya, the server
kolya,
Mikhail Leltchouk's desktop client
anna, etc. Mikhail has
access to all of my work through the same directory names.
Obviously, I don't type in all these long names every time I want to
change directories. If you look at
~seligman/.myprofile
,
you'll see aliases that I've defined for these directory names. For
example:
setenv G4WORKDIR /a/home/kolya/seligman/g4work
setenv LArDataDir /a/data/kolya/seligman/LArHits
However, all this fails if
tanya goes down. Then
the
/a/home/tanya
directory would be inaccessible, and I'd
have problems logging onto other machines in the Linux cluster. As an
alternative, I could keep my home directory on the server (i.e.,
/a/home/kolya/seligman
), since if the ATLAS server goes down
I couldn't do any analysis work anyway.