[Beowulf] /usr/local over NFS is okay, Joe

Tony Travis ajt at rri.sari.ac.uk
Fri Jul 4 04:44:41 PDT 2008

Joe Landman wrote:
> Yeah, it is ambiguous to a degree, but I figure that something named 
> /local is actually going to be physically local.  It helps tremendously 
> when a user calls up with a problem, say that they can't see a file they 
> placed in /local/... on all nodes.  Usually they get quiet for a moment 
> after saying that aloud, and then say "oh, never mind".  :)
> [...]

Hello, Joe.

Looks like some SunOS/Solaris veterans (like me) showing their colours here!

Sun, as in the network is the computer, developed quite a lot of very 
good strategies for sharing files via NFS on diskless/dataless clients 
and this has been inherited in different ways by Linux distributions.

In particular, Sun went out of their way to move a lot of things from 
/bin into /usr/bin precisely so it could be shared by NFS. I also agree 
with the widely used convention that '/usr/local' means local to the 
site, not the particular machine. It seems intuitively obvious to me 
that /local (i.e. in the root filesystem) is intended to be both local 
to a specific machine, and local to the site, whereas /usr/local is 
local to the site and may be shared via NFS but is not required to be.

I have a bit of a problem with /opt, which is where 'optional' software 
is supposed to be installed. In the same way, that it is intuitively 
obvious to me that /opt is where optional software is installed on a 
specific machine, and /usr/opt may be shared via NFS but is not required 
to be shared. However, I have rather contradicted myself and done this 
on all our servers:

	/usr/local -> /opt/local

I did this so I could use the /opt as a mount point in an NFS 
automounter map: It's not possible to automount /usr/local on /usr 
because, if you do, you hide the rest of /usr unless you use e.g. 
"unionfs" and that's a bit too much like hard work for me!

Another reason I did this is to keep /usr/local out of the 'system' 
hierarchy, which makes upgrades easier because you don't need to worry 
about overwriting /usr/local during an upgrade installation.

One thing that I value from my BSD/SunOS/Solaris days is /export, which 
is where ALL shared (exported) filesystems should be placed on NFS 
servers. I'm a real supporter of Debian/Ubuntu, but it drives me bonkers 
that Debian policy is to put home directories in /home. I put them in:


And use /home as a mount point in an automounter map. This way machines 
can, in the well known BSD/Sun inspired way, share home directories:

	/home/hostname/username -> hostname:/export/home/username

On a stand-alone host, I make a symbolic link:

	/home -> /export/home

If, in future, this host needs to share home directories and mount other 
host's home directories, I then remove the symbolic link, install the 
automounter and use /home as the NFS mount point in the automounter map.

Naturally, I don't always practice what I preach and recently I've been 
trying to work out to use the automounter the 'Debian' way ;-)

So far I've not come up with anything that beats using /export/home!

Dr. A.J.Travis,                     |  mailto:ajt at rri.sari.ac.uk
Rowett Research Institute,          |    http://www.rri.sari.ac.uk/~ajt
Greenburn Road, Bucksburn,          |   phone:+44 (0)1224 712751
Aberdeen AB21 9SB, Scotland, UK.    |     fax:+44 (0)1224 716687

More information about the Beowulf mailing list