Configuring and Running the Shore Server
Version 0.1

The Shore Project Group
Computer Sciences Department
UW-Madison
Madison, WI

Thu Nov 3 14:12:50 CST 1994

1 Introduction

This document describes how to start a Shore Server (SVAS - for Shore Value-Added Server). We assume that you have installed the software according to the instructions in the installation manual.

2 Configuring a Shore Server

This section gives you the bare essentials for using the Shore Server (SVAS - for Shore Value-Added Server) as it is distributed in the Alpha release.

The SVAS is a program that runs as a daemon process. It can be run in many ways, including, but not limited to these variations:

The configuration choices are determined by the values of configuration options (or just options). The values of these options are determined when a server is started by:

The Alpha release does not contain exhaustive documentation for setting option values. The release contains an example configuration file, called alpha.options. The example configuration file is located in the directory that contains the sources for the SVAS, src/vas/server.

After you have read these instructions, make a copy of alpha.options, place it in /.shoreconfig, and edit it as you please. Alternatively, you can name it something else and set your environment variable SHORE_RC to the name of the edited file.

See the manual page options(SVAS) for a description of all the configuration options.

See the manual page environment(SVAS) for a description of all the environment variables used by the SVAS.

3 Running a Shore Server

3.1 A Bootstrapping Problem

Once started, the server locates its configuration file and reads it. The configuration option svas_root tells the server where to find its root directory. When you start from scratch, you have no root directory and you have to create one, so the server is able to run without a root directory.

In order to make bootstrapping as easy as possible, after the server reads its configuration file, it can start a Tcl shell and read another file of commands.

Tcl command file (option svas_shellrc)

One of the configuration options, svas_tclshell, determines whether the server will start a Tcl shell. If the value of svas_tclshell is yes or true, a shell is started, and the option svas_shellrc is inspected. If svas_shellrc is set, it names a file of Tcl commands, which are interpreted when the shell starts.

The file of Tcl commands is a convenience, not a requirement. When you are experimenting with the system, you might often throw away everything and start over.

When you throw away your Shore volumes and log and start from scratch, you are doing the Shore counterpart of re-installing Unix. The analogous activity in Unix is to reformat your disks and install Unix from scratch, making file systems with mkfs(8) or newfs(8)). There are enough steps to this process that you don't want to have to do it by hand each time.

That's the reason for the file of Tcl commands: it makes the process of starting from scratch automatic. Once your system is configured and running, and you are in ``production mode'', you can dispense with the Tcl command file. As long as you don't intend to reformat your disks, you can start a server without an Tcl commands; all you have to do in this case is to set the SVAS option svas_root so that the SVAS can mount the root directory. On the other hand, it does not hurt anything to run the server with a Tcl shell and to have it read the Tcl command file each time it starts.

The release contains a file of Tcl commands called shore.rc. These commands determine if the root file system was mounted when the server started running. If not, the Tcl commands format the root volume and create a Shore file system on it. The commands also create several directories that are required by the example applications.

If you want to replace the file of Tcl commands with your own version, or if you want to avoid reading such a file altogether, edit your options file (alpha.options), and change or remove the command that sets the option svas_shellrc.

3.3 Running the Shore Server

We suggest that you first run the Shore Server (SVAS) according to the directions in the testing section of the Installation Manual.

When you start the server, you will see several message looking like this:


analysis ...
redo ...
undo ...
Warning: This server is running under userid 1966, groupid 2363
Cannot serve ./volumes/miniroot
You must format it and try again../volumes/miniroot
Warning: SVAS is starting without a root directory.
Looking for run command file "shore.rc"...
/ is now 0.0.0.0:10.20005  
Done reading shore.rc.
Welcome to the Shore Value-Added-Server 
Version (Alpha-$Id: running.tex,v 1.26 1994/10/31 22:54:22 nhall Exp $)
[page =8192B; sm obj <= 8096B; lg obj 8120B/page; buffer pool=320KB]
(0)%

You can ignore most of these messages.

analysis ...
announces the beginning of the analysis phase of recovery
redo ...
announces the beginning of the redo phase of recovery
undo ...
announces the beginning of the undo phase of recovery
Warning: This server is running ...
announces that the server is not being run by the super-user.
Cannot serve ... Warning: SVAS is starting without ...
When the server starts, it tries to mount the volume described in the option svas_root in the file alpha.options. The first time the server is run, that volume does not exist, and the attempt to mount it as the root of the Shore file system results in this error.
Reading run command file ... Done reading ...
If the server is configured to run a Tcl shell (which it was), and if it is given a file to read when the shell starts (shore.rc in this case), it reads that file and interprets the commands therein. Among the commands in shore.rc were commands to format the device and volume for the root directory, mount the root directory, and print the full object identifier of the root directory.
Welcome... (0)
After reading the file of Tcl commands, the server's Tcl shell prints a welcome message and a prompt for Tcl commands.

The SVAS is now running a Tcl shell in the window in which you started the server. As you run clients, you can also run Tcl shell commands to the SVAS. Unfortunately, this shell has no user guide, but is has some on-line help. Type ``commands'' or ``help''.

3.4 Shutting the Server Down

The server shuts down when you type the command bye, which is synonymous with quit, q, exit, and x. You can also run the program shutdown, which contacts the server and causes it to shut down.

3.5 Changing Your Environment

If you want to change the location of your logs or the location of your data volumes, you will need to edit shore.rc (or whatever file you have chosen as your file of Tcl commands).

The file of Tcl commands does several things:

  1. defines a table of volumes on which to create file systems
  2. formats the volumes if necessary. Warning: If your volumes are on a Unix raw device, you MUST remove this step.
  3. determines if the root directory was already mounted when the configuration file was processed, and if not,
  4. creates a file system (with the Alpha release, this corresponds to a volume) for the root of the Shore name space (``/'') , and mounts it,
  5. mounts any non-root volumes (the Alpha release does not include any non-root volumes.)
  6. creates some directories and pools used by the example applications, if they don't already exist.

If you want to change the location or size of your file system, look at the volume table at the beginning of the file. The comments there are self-explanatory.

4 NFS-Mounting Your File System

The Shore Value-Added Server is, among other things, and NFS daemon and a Mount daemon [SGK+85]. If you configure and run the server as it is distributed, the NFS and Mount services will be available. If you want to use them, you have to mount the Shore file system as an NFS file system on one or more of your workstations.

Take the following steps for each workstation from which you want NFS access to the Shore file system:

  1. Identify or create a Unix mount point, which is an empty Unix directory on your workstation.

  2. The installed bin directory must be in your (super-user's) path.

  3. You will run the script mnt, which takes 2 arguments: the name of a host, and the pathname for the mount point you have chosen. It calls the program smount (also in the installed bin directory) with a string of arguments, the last two of which are constructed from the host name and the mount point.

    You can use mnt as it is, or you can edit a it if you want to use different arguments to smount. You can also just use smount directly. See the manual pages for smount(shore) for assistance.

  4. Check the mount. You don't have to be super-user to do this. Type mount or smount and see if your mount point shows up in the mount table.

References

SGK+85
R. Sandberg, D. Goldberg, S. Kleiman, D.Walsh, and B.Lyon. Design and implementation of the sun network filesystem. In USENIX Summer Conference Proceedings, 1985.


zwilling@caseus.cs.wisc.edu
Thu Nov 3 14:12:46 CST 1994