On Thu, 16 Apr 1998, Paul Blackburn wrote:

: Rich,
: 
: >The University of Michigan directory structure (which is the same one being
: >proposed) is indeed the right one to use.  Given the afs_id you know
: >exactly where the users home directory. This is exactly what you want, 
: >no lookups.    
: 
: How would you compare and contrast the UoM structure with the following:
: 
: Let's say you have decided on 64 "mid level" directories
: (eg /afs/@cell/u/u0/ through /afs/@cell/u/u63/).
: You add a new user "deedee" with AFS-id, say, 1025.
: Take modulo 64 of 1025 gives 1.
: So, volume user.deedee is mounted at /afs/@cell/u/u1/deedee
: and make a symbolic link /afs/@cell/home/deedee -> /afs/@cell/u/u1/deedee
: 
: Given the AFS-id, it is trivial to locate the $HOME.
: Also, the key advantage of this is that the user volumes
: are spread evenly across all the 64 "mid level" directories.
: 
: If you really wanted, you could still have the /afs/@cell/user/d/e/deedee
: as a symbolic link to /afs/@cell/u/u1/deedee (at account creation).
: -- 

In my experiance ths following example is a nightmare. We had this with a
40,000 account cell. It was not obvious to the average user where someone
elses home space was. People would copy other peoples shell scripts or
source code and the paths where always wrong, which added more confusion.

The attempt to work around this was as you suggested with a link to a common
directory. Think about about "cd  /afs/@cell/home/ ; ls -Fs". With Netatalk
for the MAC and AFS or Samba for the PC, their browsers would hang for long
long times, and have little value with 40,000 folders.

We have since joined much of this cells filesystem with another cell that
supports a good number of departments, many with their own AFS (or NFS) 
servers. (i.e. they manage those quotas and those users.)

Our current layout looks like this from the cells we support;
ls /:/home
bmgt   econ   enag   enee   enma   enre   glue   isr    math   psyc   zool
chem   elves  ence   enfp   enme   ense   ipr    lbsc   micb   socy
csc    enae   ench   engr   ennu   ents   ipst   lps    phys   wam

With system:enee-managers maintaining /:/home/enee/*.
Some of these are further divided into administrative boundries.
ls /:/home/enee/
admin    alumni   faculty  grad     staff    ugrad

But any directory  with much more then a screenfull of subdirectories
gets put in to the format others have mentioned;
ls /:/home/phys/
a  b  c  d  e  f  g  h  i  j  k  l  m  n  o  p  q  r  s  t  u  v  w  x  y  z

The general undergrad area (40,000) is two deep.
ls /:/home/wam/a/
0  2  4  6  8  a  c  e  g  i  k  m  o  q  s  u  w  y
1  3  5  7  9  b  d  f  h  j  l  n  p  r  t  v  x  z


However, the path in the passwd file looks the same for everyone.
hesinfo rsw passwd
rsw:X:5378:20:Randall Winchester,CSC-1319,53690:/homes/rsw:/bin/tcsh

We do this with amd (the public domain automounter) which we run on
everything.
hesinfo rsw homes.amd
fs:=/afs/glue.umd.edu/home/elves/rsw/home
This also allows us to support NFS or DFS in a similar fashion.
Everyones home is in /home/$USER, but "cd /home ; ls -Fs"  only shows
currently accesses directories, which makes the PC and MAC browsers alot
happier.

(side note: "hesinfo" is from Hesiod, which means we keep *alot* of our
information in our DNS servers.)

Actually our "user" volume layout is different then most also.

/users/$USER gets you (wuth the automounter) to the top of a users volume.
They all look like this:
ls /users/rsw
backup  home    mail    pub

They do not have "administrative" control over the top of the volume.
This allows us to keep the "home" private. In "pub" are their web pages and
other public and ftpable files. Their "INBOX" is in "mail" along with
.forward, .vacation, etc... files. We mount their backup volume as "backup".

Access list for . is
Normal rights:
  system:authuser k
  system:anyuser rl

Access list for backup is
Normal rights:
  system:authuser k
  system:anyuser rl

Access list for home is
Normal rights:
  rsw rlidwka

Access list for mail is
Normal rights:
  admin:postmaster rlidwka
  rsw rlidwk

Access list for pub is
Normal rights:
  system:anyuser rl
  rsw rlidwka


So to summarize a bit, the /:/homesdir/r/s/rsw directory structure is easy
for a user to pick up on, and it is easy to code (user[0]/user[1]/user).
If you have additional administrative boundries, use obvious names, like
"procurement, engineering, enee, math, chem...." that users will understand.
/u{0-N} is not user friendly. Even if a newly hired EE secretary forgets
a faculty members username, they stand a chance of finding it in:
/:/home/enee/faculty/.

If you want to get fancy, use an automounter to maintain the links.
The bottom of our amd.conf file looks like the following. It is intended to
make life easy for the user, and consistant across a large environment.

##############################################################################
# Individual Mount Point Definitions

[ /data ]
map_name =      hesiod.data

[ /group ]
map_name =      hesiod.group

[ /home ]
map_name =      hesiod.home

[ /homes ]
map_name =      hesiod.homes

[ /mail ]
map_name =      hesiod.mail

[ /pub ]
map_name =      hesiod.pub

[ /users ]
map_name =      hesiod.users

[ /scratch ]
map_name =      hesiod.scratch

[ /software ]
map_name =      hesiod.software

[ /src ]
map_name =      hesiod.src





Reply via email to