Nevis Linux Cluster - Automount This page describes how automount is used at Nevis to link systems on the cluster.

Index:

  • An important message.
  • The naming scheme for automount directories.
  • What does it mean to mount a disk?
  • What does automount do?
  • A practical example of how automount can simplify your life.

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. For example, if I access /a/work/karthur/steinbru from my computer, I will see the contents of /work/steinbru on karthur.

Typically, only the workgroup servers have a /work partition; usually this is an additional disk that was added to the server. As of April 2004, karthur and sasha have /work disks.

/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 /var/spool/mail directory on the mail server. This map is provided so you can use programs like xbiff on your Linux system to monitor when you get new mail. (Note that this map has some additional consequences.)

/a/mail/folders
This maps to the /mail/folders directory on the mail server. This map is provided to give you a place to store your mail directories if you don't want to keep them in your home directory. For example, I arranged to keep my mail on the mail server via the following commands: mkdir /a/mail/folders/seligman cp -arv ~/mail /a/mail/folders/seligman # For compatibility with Pine and webmail ln -sf /a/mail/folders/seligman ~/mail Why is this useful? Well, some collaborations try to save money by purchasing inexpensive workstations; you may feel more confident storing your mail on a server instead of the inexpensive disk drive of your Linux box.

Only use /a/mail/folders for mail. Any data or work files placed here will be deleted -- no warnings, no excuses, no sympathy.

/a/apps/local
This maps to a Nevis application directory (e.g., /usr/nevis on the applications server. This is soft-linked to the directory defined in ${NevisAppBase} 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 hypatia:/usr/local 17G 11G 5.0G 69% /.automount/a/hypatia/usr/local 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:

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, ~/.cshrc is the same for me on every Linux machine.

When I get a chance to do physics, I simulate the ATLAS liquid-argon calorimeter using Geant4. My desktop Linux box is tanya. The source code for all my 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/.mycshrc, 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.


Back to the Nevis Linux Cluster Page.

Return to the Nevis Computing Page.

Up to the Nevis Home Page.

E-mail: Send any comments or questions to the webmaster.