TWiki
>
Main Web
>
Computing
>
LinuxCluster
>
Automount
(revision 6) (raw view)
Edit
Attach
---+!! Nevis Linux Cluster - Automount This page describes how [[http://www.cs.columbia.edu/~ezk/am-utils/][automount]] is used at Nevis to link systems on the cluster. %TOC% ---++ 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: ---+++ =/nevis/{computer-name}/= This is perhaps the simpler way of accessing files on another machine. For example, if you want to access the =/home= directory on the computer _tanya_, you can use the path =/nevis/tanya/home=. ---+++ =/a/{base-directory}/{computer-name}= This maps to =/{base-directory}= 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_. This automount syntax may be a bit confusing compared to the previous one. The idea is that you can conceptually think of all =home= directories (for example) as being linked together by a common purpose, while the computer they're on is less important. Some common examples of this automount path: <verbatim> /a/home/{computer-name} /a/share/{computer-name} /a/data/{computer-name} /a/scratch/{computer-name} /a/tier3/xenia /a/mail/inbox /a/file/d0disk/d0/steinbru </verbatim> There are some special cases in the above example: ---++++ =/a/file= This maps to the =/file= directory on the [[services][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 [[http://www.nevis.columbia.edu/status/2005-nevis1 shutoff.html][no longer exists]]. ---++++ =/a/mail/inbox/$USER= This is where your mail inbox is located. See the [[mail-related files]] page for more information. ---++++ =/a/mail/folders/$USER= The location of your IMAP files. 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 [[http://www.nevis.columbia.edu/cgi-bin/man.sh?man=sftp][sftp]] or [[http://www.nevis.columbia.edu/cgi-bin/man.sh?man=scp][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 [[http://www.google.com/search?hl=en&lr=&ie=UTF-8&oe=UTF-8&oi=defmore&q=define:NFS][NFS]]. The UNIX command to attach a disk is [[http://www.nevis.columbia.edu/cgi-bin/man.sh?man=mount][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: <pre> mount tanya:/home /tanya/home </pre> 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 [[http://www.nevis.columbia.edu/cgi-bin/man.sh?man=df][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: <pre> 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 benjamin:/mail/inbox 4.1G 3.1G 1.0G 76% /a/mail/inbox library:/usr/nevis 17G 11G 5.0G 69% /a/apps/local </pre> 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=: * =benjamin:/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]] server was mounted on my computer. * =library:/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 [[http://www.nevis.columbia.edu/linux/appserver.html][applications server]]: <pre> # ls -ld ${NevisAppBase} lrwxrwxrwx 1 root root 13 Jun 22 2000 /usr/nevis -> /a/apps/local </pre> </ul> 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 [[http://www.nevis.columbia.edu/linux/authentication.html][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 [[http://www.nevis.columbia.edu/~atlas/lar/][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: <pre> ssh kolya "at -f ~/geant4/calo/LArHits-0.5/cmd/electron.cmd now" </pre> 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_, the student desktop workstation _eeyore_, etc. You have 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: <pre> setenv G4WORKDIR /a/home/kolya/seligman/g4work setenv LArDataDir /a/data/kolya/seligman/LArHits </pre> 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. ---++ Caveat For you to access a given partition or disk on a remote computer, that computer has to [[http://www.nevis.columbia.edu/cgi-bin/man.sh?man=5+exports][export]] that directory via its NFS service. For example, you can't access =/nevis/tanya/etc=, because the system _tanya_ does not export that directory for mounting by other computers.
Edit
|
Attach
|
Watch
|
P
rint version
|
H
istory
:
r7
<
r6
<
r5
<
r4
<
r3
|
B
acklinks
|
V
iew topic
|
Raw edit
|
More topic actions...
Topic revision: r6 - 2017-01-18
-
WilliamSeligman
Main
Log In
or
Register
Main Web
Create New Topic
Index
Search
Changes
Notifications
RSS Feed
Statistics
Preferences
Webs
ATLAS
DOE
Main
TWiki
Veritas
Copyright © 2008-2023 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback