Article View: comp.sys.next.sysadmin
Article #1386Final Chap?: Client / Server Lookalike (GURU's SCAN PLEASE)
From: Greg Colello
Date: Sat, 14 Nov 1992 04:02
Date: Sat, 14 Nov 1992 04:02
173 lines
8941 bytes
8941 bytes
Keywords: server client
Distribution: world
UNIX GURU's. OPINIONS NEEDED ON ONE POINT!!! PLEASE SCAN BEFORE IGNORING.
I have a VERY simple non-Netboot solution to client/server lookalike
problem, but I'm afraid it may cause system corruption. Guru's skip to
paragraph labeled "QUESTION" below. The rest of this is a step-by-step
outline of the whole server/client setup process.
---------------------------------------------------------
Well I got a lot of advice on how to make client filesystems identical to
their server's. I learned the following that I think is worth sharing
(assumes the standard Netinfo server/client arrangement):
1. Backup all relevant files (of course). Attach cd-rom drive directly to
each machine in turn. Use complete install option of NS 3.0 installer
(init disk) for both server and clients. Install base OS ~70MB. It is not
necessary to partition the server's disk into read only and read/write
export sections (because I'm going to export root and keep everything
under root on the server on a 1GB drive). Use HostManager Local option for
each client to set them up on the network. Make then Netinfo clients. Add
/etc/resolv.conf file for domain name server (if any). Adjust client's
sendmail to use server's name in their From: field. That's it for the
clients. All other work is done on the server.
2. Set up network accounts (at root domain level), but make their home
directories be /Users/person instead of /Net/server/Users/person (This
avoids the automounting associated with /Net. I tested it. The /Net
approach appeared to have about 3 times slower access times than a hard
mount ALL THE TIME. Does this make sense?) Restore account data from
backups as needed.
3. Set up server as mail server.
4. Export root as read/write from the server to each of the clients. NFS
Manager is great for doing this although you've got to double-click the
return button to get "/" to register. Each client gets root access.
5. At Netinfo root domain level in NFS Manager set up the following
imports (another great use of NFS Manager):
server:/bin /bin ro
server:/lib /lib ro
server:/usr /usr ro
server:/LocalApps /LocalApps ro
server:/LocalLibrary /LocalLibrary ro
server:/NextApps /NextApps ro
server:/NextDeveloper /NextDeveloper ro
server:/NextLibrary /NextLibrary ro
server:/private/spool/mail /private/spool/mail rw
server:/Users /Users rw
{One person suggested that /LocalApps and /LocalLibrary may need to be
mounted rw. So far no problem. When it is a problem, I'll change the
mount. It's trivial with NFS Manager. (If you haven't guessed by now, I
REALLY like NFS Manager.)}
All of the above mounts will be done on each Netinfo child of the root
domain at boot time. The mounter is smart enough to not mount to the
server even though it's a child of the root domain also. Messages appear
saying something like "server:/bin /bin Not done because /bin is already
local to server"
The interesting thing I learned is that these mounts simply "override" the
existing directories on the clients without disturbing the existing
contents. Thus the existing contents are used at boot time and then simply
disappear to be replaced by the server's directories after booting is
completed. I never knew that mounting could work this way. It's not in the
Sys Admin Manual that's for sure.
-----------------------------------------------------------------
QUESTION: This seems to work great except I worry about things like page
faulting on processes that were started at boot time (for example
/usr/etc/netinfod) from the client's directories which now point to the
server due to "overmounting". I'm worried about mixed up inodes or
something. However, no apparent problems so far of any kind (we're been
running this way for 3 days). Any comments from the guru's? Have I
committed an unspeakable sin? Read on for more detailed analysis...
------------------------------------------------------------------
You might wonder why I would export directories like /bin, /lib, and /usr.
Well that's because typical software loaded on the server put things in
these directories. In fact I chose all the above directories as import
candidates by looking at the log file list from the package Installer for
the following packages:
Abbrv Full Name
------- --------------------------------------------
Imp Improv
Exe Executor
Drw Draw
Frm Framemaker
CoX CoXist
F77 Absoft Fortran 77
Dan Data Analyzer Plotting
Dgm Diagram
Dem NextStep 3.0 Demonstartions
Dev NextStep 3.0 Developer
DgW NextStep 3.0 DigitalWebster
Doc NextStep 3.0 Documentation
Lit NextStep 3.0 Literature
Tex NextStep 3.0 NeXTTeX
ApT NextStep 3.0 NeXT_AppleTalk
Syb NextStep 3.0 Sybase_DB-Library
Here is where they installed themselves on the server (and this is before
running any command-line install scripts like Tex has):
Packages Writing to Dir
Directory (Dir) or Somewhere Below Dir
-------------------------------------------- -----------------------
/LocalApps Imp, Exe, Drw, Frm,
CoX, F77, Dan, Dgm
/NextDeveloper Tex, Dev, Dem
/NextLibrary DgW, ApT, Doc, Lit,
Tex, Dev, Syb
/NextApps DgW, Lit
/LocalLibrary Tex
/bin Tex, Dev
/lib Dev
/private/tftpboot/boot.cdrom, diagnostics, mach Dev
/usr/bin Dev
/usr/dict Dev
/usr/etc ApT
/usr/netware Dev
/usr/pub Dev
/usr/template/client/tftpboot Dev
/usr/sybase Syb
/usr/ucb Dev
/usr/tex Tex
/usr/include --> /NextDeveloper/Headers Dev
/usr/man --> /NextLibrary/Documentation/ManPages CoX, F77, Dev
/usr/lib ApT, Doc, Dev, Syb,
CoX
COMMENTS:
Now the problem comes in that the boot scripts look for boot modules in
/bin, /usr/bin, /usr/etc, and (where else?). How about /private/tftpboot?
Is it used at boot-time? I suspect so. That's why I haven't imported it
yet (see import table above). I suspect the additions made to
/private/tftpboot by the Developer package must be present at boot time.
If so, can I just copy them to the clients? (Why are these files
boot.cdrom, diagnostics, and mach added by the Developer package anyway?)
These packages make huge changes to all the above-mentioned boot target
directories. Is this a mess or what? I sure don't care to sift out
installed files from these directories (and make copies of them on the
clients) each time I install a package.
Why isn't all boot code isolated to /private or /etc anyway? For example
mach_init is in /etc as a LINK to /usr/etc/mach_init (where mach_init
really is). Since packages come along and modify /usr, the server should
serve /usr to its clients. But this means overmounting boot-time things
like /usr/etc/mach_init.
Please tell me I'm worrying about nothing....If so, the above importing
solution is quick, simple, and thorough.
-----------------------------------------------------------------
Greg Colello
Carnegie Institution, Department of Plant Biology
Stanford University
gcolello@biosphere.stanford.edu
Technical Details
Message-ID:
<1992Nov14.040249.10599@leland.Stanford.EDU>Path:
arc1-ca.pugleaf.net!sparky!uunet!charon.amdahl.com!pacbell.com!ames!agate!stanford.edu!leland.Stanford.EDU!newsShow Full Headers
Complete Article Headers
Newsgroups: comp.sys.next.sysadmin Path: arc1-ca.pugleaf.net!sparky!uunet!charon.amdahl.com!pacbell.com!ames!agate!stanford.edu!leland.Stanford.EDU!news From: gcolello@biosphere.Stanford.EDU (Greg Colello) Subject: Final Chap?: Client / Server Lookalike (GURU's SCAN PLEASE) Message-ID: <1992Nov14.040249.10599@leland.Stanford.EDU> Sender: news@leland.Stanford.EDU (Mr News) Organization: DSO, Stanford University Date: Sat, 14 Nov 92 04:02:49 GMT Lines: 173