Nikola

Disk Layout Plan

and

List of Supported Platforms

Path Protected Space NFS mount Unique Mount Description/Purpose/comments
/ Y N Y Do not put anything here. This is a clean zone. It is the root filesystem.
/bin Y N N OS specific, vendor-supplied filesystem where general-use binaries that have to be there when the only the root filesystem lives live. We should only add globally approved binaries listed in Appendix A to this directory.
/etc N N N System configuration files. This is the only part of / that should do much changing, and even this filesystem should only be changed after severe consideration.
/etc/init.d N N N All rc files live here and get linked to from the /etc/rc.d/rc#.d directory. Some versions of Linux have an /etc/rc.d/init.d. This should be linked to /etc/init.d for standardization.
/etc/packagename N N N Home for package-specific (ntp, amd, samba, etc) configuration files.
/home N N N Local disk which provides user's home directory. No path should ever point here, except for the /u link maintained by amd(8). Do not reference this directory in any scripts.
/lib Y N N OS specific, vendor-supplied filesystem where general-use libraries live. We don't mess with this filesystem.
/man Y N N OS specific, vendor-supplied filesystem where manpages live. We don't mess with this filesystem.
/n N A N/A Host space. Used to access any filesystem exported by any host. /n is controlled via an amd(8) map.
/opt Y N N/A EVIL. Some vendors insist on installing stuff in /opt. This is an evil Sun-ism and should be resisted if at all possible. Create it only if there is no alternative. Document that it was created and why.
/sbin Y N N OS specific, vendor-supplied filesystem where sadmin binaries live. We should only add globally approved binaries listed in Appendix B to this directory.
/share N N Y Deprecated. Replaced by /usr/nikola. Remove from user's paths. Do not add anything new to it.
/u N A N/A User home directory mapping space. /u is controlled via an amd(8) map.
/usr Y N N Basic root location for system binaries. Don't mess with it.
/usr/bin Y N N OS specific, vendor-supplied filesystem where general-use binaries live. We should only add globally approved binaries listed in Appendix C to this directory.
/usr/lib Y N N OS specific, vendor-supplied filesystem where general-use libraries live. We should only add globally approved binaries listed in Appendix D to this directory.
/usr/local N N Y Basic root location for local-to-the-host required binaries. This is a small space, so don't put too much stuff in it, just things that must be here.
/usr/local/bin N N N Our locally-mounted user-realm binaries live here.
/usr/local/lib N N N Local filesystem where our general-use libraries live.
/usr/local/man N N N Local filesystem where our manpages live.
/usr/local/pkgs N N N Local package repository. This is where we put packages that must be on the system regardless of the status of AMD. It is for basic functions like the PERL package that Nikola requires. It is also where we put this host's specific daemons that must be present on boot.
/usr/local/sbin N N N Our locally-mounted sysadmin binaries and daemons live here.
/usr/nikola N Y Y "Image-wide" filesystem. Supplements /usr/local. NFS-mounted only. Controlled by AMD.
/usr/nikola/.$NARCH N Y Y Hidden (.) directory that is Nikola Arch-specific. One must exist for each valid $NARCH defined in nikola.conf. This is where the real bin, pkgs, sbin, etc directories live. Referenced by AMD based on $NARCH.
/usr/nikola/bin N Y Y Entry in user's $PATH. Links from ../pkgs/*/bin/* go here so package-based binaries can be found easily. Controlled by AMD based on $NARCH.
/usr/nikola/bunch N Y Y Bunch-specific Nikola tree. Controlled by AMD based on $BUNCH.
/usr/nikola/etc N Y Y Nikola control files live here. Controlled by AMD based on $NVER (Nikola Version).
/usr/nikola/etc/skel N Y Y Sekelton user .cshrc, .login, and .profile live here. Controlled by AMD based on $NVER (Nikola Version).
/usr/nikola/groups N Y Y Group specific tree used for containing additional packages and their control files. Controlled by AMD based on $NARCH.
/usr/nikola/include N Y Y Links from ../pkgs/*/include/* go here so package-based include files can be found easily. Controlled by AMD based on $NARCH.
/usr/nikola/info N Y Y Links from ../pkgs/*/info/* go here so package-based info files can be found easily. Controlled by AMD based on $NARCH.
/usr/nikola/lib N Y Y Links from ../pkgs/*/lib/* go here so package-based libraries files can be found easily. Added to user's $LD_LIBRARY_PATH. Controlled by AMD based on $NARCH.
/usr/nikola/libexec N Y Y Links from ../pkgs/*/libexec/* go here so package-based libexec files can be found easily. Controlled by AMD based on $NARCH.
/usr/nikola/man N Y Y Links from ../pkgs/*/man/* go here so package-based man files files can be found easily. Added to user's $MANPATH. Controlled by AMD based on $NARCH.
/usr/nikola/nuggets N Y Y Nugget directory for the given Nikola Version. Controlled by AMD based on $NVER (Nikola Version).
/usr/nikola/pkgs N Y Y Nikola package repository. Controlled by AMD based on $NARCH.
/usr/nikola/sbin N Y Y Links from ../pkgs/*/sbin/* go here so package-based sbin binaries can be found easily. Added to System Admin's $PATH. Controlled by AMD based on $NARCH.
/usr/nikola/share N Y Y Links from ../pkgs/*/share/* go here so package-based share files can be found easily. Controlled by AMD based on $NARCH.
/usr/sbin Y N N OS specific, vendor-supplied filesystem where sadmin binaries and daemons live. We should only add globally approved binaries listed in Appendix E to this directory.
/users N N N The preferred true path for all user home directories. This is the path that should be used for scripts which point at user homedirs, though running scripts or binaries in this filesystem is discouraged. Link to /u.
/var N N Y This is where varable files go. This includes spool files like email and print jobs, as well as log files.
/var/log N N N This is where log files go. Any process which logs should log here, preferably using syslogd(8).
/var/mail N N N Link to NFS-mounted departmental mail spool directory. Allowed but discouraged.
/var/nikola N N N This is where we store image-related control and configuration files.
/var/pkgs N N N Local filesystem where packages that need/use host-specific data can store it. Each package should have a subdirectory under /var/pkgs. Subdirectories are only created when/if needed.
/var/spool N N N This is where transient files go. This includes in-transit email and print jobs.
/var/spool/mail N N N Link to /var/mail.

RCS-wide Filesystems

Path Protected Space NFS mount Unique Mount Description/Purpose/comments
/homes N N N RCS's true path for user home directories. Running/pointing-to scripts or binaries in this filesystem is discouraged. Link to /u. (Nomad would really love to replace this with /users.)

SSLI-specific Filesystems

Path Protected Space NFS mount Unique Mount Description/Purpose/comments
/d# N M Y Data space. Backed up. # represents a number from 0 to 9. The number is unique to each host.
/g N A N/A Group space. /g is controlled via an amd(8) map. Eventually, it will contain links into /usr/nikola, for shortcut purposes.
/s# N N Y Local scratch space. Not backed up, not for irreplaceable data. # represents a number from 0 to 9. The number is unique to each host.
/u# N M Y DEPRECATED. Do not use. Gone, history, never to be used again.

Appendix A

Approved Binaries to be added to /bin

Binary Vendor Justification
bash web This is a login shell. It needs to be available on the one disk that is sure to be mounted, regardless of system state.
tcsh web This is a login shell. It needs to be available on the one disk that is sure to be mounted, regardless of system state.

Appendix B

Approved Binaries to be added to /sbin

Binary Vendor Justification
sudo web This is how we get root access. We need to ensure that it is available, regardless of system state.

Appendix C

Approved Binaries to be added to /usr/bin

Binary Vendor Justification
perl web Required for most administrative scripts and daemons. Should be local in case of disaster where only / filesystem is available.

Appendix D

Approved Libraries to be added to /usr/lib

Library/Directory Vendor Justification
perl web Required for most administrative scripts and daemons. Should be local in case of disaster where only / filesystem is available.

Appendix E

Approved Binaries to be added to /usr/sbin

Binary Vendor Justification
collection: am-utils web Binaries for AMD automounter, required before NFS works.
ntpd web Time daemon. Needed to keep all of our systems in sync. Can't be NFS-mounted because it is always running.

Appendix F

Supported platforms

OS Release Hardware Comment
AIX 4.3.3 RS/6000 **FUTURE** SSLI Only
Red Hat Linux 7.1 iX86 Nikola 1.x
Red Hat Linux 7.2 iX86 Nikola 2.x
Solaris 8 Sparc

Version: 0.9.7

Author: Lee Damon. This document was last modified .

Copyright (c) 2001-2002, University of Washington, UW/EE