[comp.sys.dec] DECstation 3100 Kernel size and Diskless Operation

rhaslam@esunix.UUCP (Reed Haslam) (09/22/89)

I have two questions regarding the DECstation 3100.

1- The kernel /vmunix is a little over 2MB in size. Why is it so large?

2- I've read the documentation about "Diskless Management Services (dms)",
but its the most confusing Digital documentation I've read in some time.
It tends to imply that if I want to boot a second DECstation 3100 off of
an existing DECstation 3100 that I have to create two physical partitions on
the server machine, 1 for /dlclient0 and the other for /dlenv0. Further it
tends to suggest that /dlenv0 has to be populated with all of the software 
in the /usr partition on the server thus giving rise to two copies of /usr
on the server machine. If this is all true it would seem diskless 
DECstation 3100 systems are impraticle since each one would need its own
/usr partition (/dlenvn) on the server.  The one part that is clear is
that the user must purchase the server license and server software
distribution kit (since the base operating system does not include these).
The cost of the server kit is the same as the cost of the Ultrix kit.
Shame on the DEC marketing guy who instituted this policy.

Could someone clarify these issues please?

Reed B. Haslam
Evans & Sutherland Computer Corporation
Salt Lake City, Utah 84108
(801)-582-5847 x3344
{decwrl ! utah-cs }!esunix !rhaslam

steve@fnord.umiacs.umd.edu (Steve D. Miller) (09/25/89)

If you take the DECstation /genvmunix and strip it, it goes from being
2.25MB in size down to 1.15MB in size.  It seems clear that a lot of
what's sucking up space is all the dbx-related cruft that's being kept
around.  Compiling out the DECnet code (an option for us, but not for
everyone) saves another 300K off the kernel size before stripping, and
I don't know how much after stripping.

I don't suppose anyone has (a) tried to rebuild the kernel from sources,
without -gN turned on, or (b) ported adb to the DECstations...  If I get
some spare time, I might try (a).

	-Steve

Spoken: Steve Miller    Domain: steve@umiacs.umd.edu    UUCP: uunet!mimsy!steve
Phone: +1-301-454-1808  USPS: UMIACS, Univ. of Maryland, College Park, MD 20742

cks@white.toronto.edu (Chris Siebenmann) (09/26/89)

[Caution: some of this is derived by extension from what I did for
 diskless Vax clients. The important bits work, though; we brought our
 DS3100s up diskless and then scribbled on their local disks.]

 With a bit of trickery, you don't actually HAVE to have a huge
/dlenv0 partition on your server; you can reuse your server's /usr
(regardless of what you do, you only need one /dlenv0 for all your
clients(*)). You can even make /dlenv0 and /dlclient0 live in the same
(non-root) partition; it's more convenient if you make /dlenv0 the
real partition mount point, although not 100% necessary.

 To do this, do the following:
- Make sure your server has a /var, and that /usr/var is a symlink to
  it. If it doesn't, make one by copying /usr/var to /var and changing
  it to a symlink; you probably want to try and put /var on it's own
  partition.
- decide where you're going to put the diskless client support
  partition(%). Let's call it /diskless. Make /dlenv0 and /dlclient0
  be symlinks that point into it.
- use /etc/dms.new to load the minimal setup into /dlenv0/root0.mips
  (base plus kernel plus networking, I think, but it's been a while --
  just pick no optional stuff). You may have to either circumvent the
  check for enough free space if /dlenv0 is a symlink to someplace, or
  you can just temporarily mount the disk partition on /dlenv0 instead
  of it's eventual destination; that's what I did here.
  [You *might* be able to get away with making /dlenv0/root0.mips a
   symlink to /; I'm not sure.]
- Configure your diskless client through /etc/dms.new, following all
  the instructions.
- STOP! Make sure that /dlclient0/<client>.root is exported read-write
  and with the "-r=0" option to the client. This will probably require
  you to fix the /etc/exports line for the mount point where
  /dlclient0/<client>.root lives (/diskless in our example).
- Make sure /usr on the DS3100 server is exported to the client.
- edit /dlclient0/<client>.root/etc/fstab and change the mount of /usr
  from /dlenv0/root0.mips/usr@<server> to /usr@<server>. While you're
  at it, fix up things like the hosts file and svcorder to match the
  server's. You may also need to add /etc/route invocations in the
  client /etc/rc.local.

 There! You should be done; boot the new client.

Disclaimer: Remember your software licensing; make sure all your
	    clients are licensed for the software on your server. Use
	    this procedure to save disk space, not to bypass licensing
	    restrictions.

*: Assuming all clients are licensed for all the software.
%: You can probably put /dlenv0 and /dlclient0 somewhere in the middle
   of a partition (say /var/diskless, where /var is a partition), but
   it's trickier and I haven't tried it.
-- 
	"I shall clasp my hands together and bow to the corners of the world."
			Number Ten Ox, "Bridge of Birds"
Chris Siebenmann		...!utgpu!{ncrcan,ontmoh!moore}!ziebmef!cks
cks@white.toronto.edu	     or ...!utgpu!{,csri!}cks