A Prestoserve Installation Options





This appendix provides additional information about software options available when you are installing or removing the Prestoserve software.

A.1 Special Uses of the Installation Script

The installation shell script is used to install and remove Sun Prestoserve software and files from the filesystem any time after the initial installation. It is an interactive program that prompts you for confirmation or input at each point where files might be changed.

The installation script decides whether you want to install or remove files by looking for Sun Prestoserve files that are already installed. If there are files already installed it removes them, or installs files from the Prestoserve directory. You can force the install mode by using the - i option, or remove mode with the -r option. You can also supply a - n option that allows you to see the output from an install or remove operation without changing any files in the filesystem. There is also a - q option which cuts down the amount of information printed by the installation script.

During installation, when the script asks for your input, you can stop the program by pressing Control-C. You can then complete the installation process later by restarting the installation script with the - i option to force install mode. Stopping the script at a non-interaction point may leave partially modified files lying around. In that case, run the script with the - r option to remove any partially installed files, and then rerun the installation script to complete the installation.

Note - To install Sun Prestoserve on multiple servers, run the installation script on each server. This ensures that all the Sun Prestoserve files are correctly installed.

A.2 Description of Installation Script for SunOS 4.x and Solaris 1.0

This walk-through of the installation procedure and script provides information about what is going on at each point in the process. This description only applies to the driver written for SunOS 4.x and Solaris 1.x. A detailed description of the installation script is not available for the Solaris 2.x script.

Note - Removing Prestoserve goes through the process in the same order as an installation, but some of the questions may change.

Begin by moving to the mounted cdrom/Prestoserve/dist directory and starting the presto_chango script:

# cd /cdrom/Prestoserve/dist

# presto_chango

When presto_chango is run with no arguments it determines an expected mode of operation (by looking for a file which presto_chango would have installed) and asks you to verify the choice:

The sd and id devices are the standard sun4c and sun4m disk devices. If you want another disk driver type accelerated, use the "-p prefix" flag when running presto_chango to specify the prefix. Note that to accelerate ("Presto- ize") a device, the only entries that are required are in the sys/sun/conf.c file. You do not need the physical device installed nor does the device have to be one which you would normally configure in a kernel. Press RETURN now to continue the install operation, or type "n" to switch the mode of operation. In this case, presto_chango switches the mode of operation and asks:

Do you wish to remove Presto from host instead [no]?

If you answer "y", presto_chango returns to the previous sentence and prompts you to verify the new mode of operation. Otherwise, you can type "n" or press the RETURN key to cause presto_chango to exit.

presto_chango then prompts:

Base path name for system kernel hierarchy [/sys]?

This path name determines which kernel building hierarchy is used to build a kernel that contains the Sun Prestoserve device. Normally /sys is a symbolic link that points to the standard kernel hierarchy used to build systems. Unless you have a specialized filesystem layout press the RETURN key. Or, you can give a path to the kernel hierarchy that you want to be Presto-ized. The path name is verified before proceeding. This path name is symbolically referred to as sys.

* * * Making Presto changes to sys/sun/conf.c

presto_chango makes a number of modifications to sys/sun/conf.c. An entry is added to the cdevsw table for the Sun Prestoserve control device and each device which is to be Presto-ized has its cdevsw and bdevsw table entries modified. This process works even when non-standard devices have already been added to the conf.c file. If you have dramatically changed the format of the bdevsw or cdevsw tables, the automatic modification of conf.c could fail. In this case, you need to follow the directions of the presto_chango script, and modify the conf.c file so presto_chango can interpret the format. All modifications are performed so that if you want to build a kernel without Sun Prestoserve, all you need to do is to edit the config file and remove Sun Prestoserve device (pr) from the set of devices included in the new kernel.

* * * Presto-izing sys/sun4c/conf/files

presto_chango adds the Sun Prestoserve device to the sys/conf/files file for the architecture you are installing Sun Prestoserve on.

* * * Creating the Presto special file entry /dev/pr0

Now, presto_chango creates the Sun Prestoserve control device /dev/pr0. Note that if you use non-standard comments of ifdefs in the cdevsw table in the conf.c file, make sure that the last numbered comment (independent of where it is compiled) corresponds to the last cdevsw entry actually compiled into the table. This ensures that the Sun Prestoserve control device is made with the correct major number.

* * * Creating sys/sundev/prtabs.c

presto_chango generates a set of sub routines for each device to be Presto- ized, and builds a set of data structures that contain per-device and per- partition information.

* * * Adding Presto changes to sys/os/init_sysent.c

presto_chango adds code to ensure that when the machine is halted the Sun Prestoserve cache is flushed to disk. This is done so that the Sun Prestoserve hardware can be safely removed from the machine after it has been halted and powered down.

* * * Installing new Presto kernel files to sys

The following files are installed into the system build directory from the current directory.

sys/sun4c/OBJ/pr.o
sys/sundev/prtabs.c
sys/sundev/prestoioctl.h

Next, presto_chango asks if you want to install the man pages. If it finds a writable, non-empty /usr/man directory, presto_chango defaults to "yes":

Install Presto man pages [yes]?

If it could not find /usr/man or /usr/man was empty or not writable, the default answer is "no":

Install Presto man pages [no]?

If you answer "y" here, presto_chango prompts for a writable directory where it can install the man pages. You must give the path name of an existing directory. If the man/man[1348] directories do not exist, presto_chango creates them.

Manual page path [/usr/man]?

Your response replaces /usr/man as the value for man. These files are then installed.

man/man1/presto.1
man/man1/prestotool.1
man/man3/prestoctl.3r
man/man4/presto.4
man/man8/prestoctl_svc.8
man/man8/presto_chango.8

If the man/cat[1348] directories exist, presto_chango asks whether to use catman to pre-format the appropriate sections.

Format new nroff copies of man pages (NOTE - this takes a while) [yes]?

If the man/fmt[1348] directories exist, presto_chango asks whether to use catman to troff the appropriate sections.

Format new troff copies of man pages (NOTE - this takes a while) [yes]?

If the man/cat[1348] and the man/fmt[1348] directories don't exist but the man/whatis file does exist, presto_chango asks whether to use catman(8) to update the whatis database.

Update the man page directory (NOTE - this takes a while) [yes]?

Running catman can take several minutes to complete because it examines every manual page to reconstruct the whatis database file.

* * * Installing new Presto files

These files are installed from the current directory.

/usr/bin/prestotool
/usr/etc/presto
/usr/etc/prestoctl_svc
/usr/include/rpcsvc/prestoctl.x
/usr/include/sundev/prestoioctl.h
/usr/etc/presto_chango

Next presto_chango asks whether or not to configure and build a Presto kernel:

Config and make a Presto-ized kernel [yes]?

If you default, presto_chango asks:

System name in sys/sun4c/conf to config [sysname]?

presto_chango tries to set sysname to the name of the configuration file that was used to build the kernel you are currently running. It looks at dmesg output, /etc/motd and /usr/adm/messages. Next, it tries the hostname converted into upper case letters. If it still can't find a name with a matching configuration file it checks for a GENERIC configuration file. When all else fails it sets sysname to UNKNOWN.

If you want to inspect a kernel (for example, /vmunix) to see what configuration file it was built from, use adb to print out the "version" symbol as a string:

% adb /vmunix

version? s
_version: SunOS Release XXX A #1: Thu Aug 17 17:08:39

The name of the configuration file is underlined in the example shown above.

* * * Config'ing sys/sun4c/conf/sysname
* * * Making sys/sun4c/sysname
kernel

After output is generated by the kernel make, presto_chango displays this message:

/vmunix.sysname.presto installed and ready for testing
Presto successfully installed on host!

Write down the name of the system that is displayed by presto_chango. At this point the Prestoserve software is installed.

A.3 Configuring a Non-standard Disk Controller (SunOS 4.x Only)

Note - This sections describes the steps for configuring a system using a non- standard disk controller. This section only applies to systems running the SunOS 4.x operating system. Nothing special needs to be done for systems running the Solaris 2.x operating system.

Devices identified as "sd" and "id" are standard Sun disk controllers. If you have a different disk controller that you want accelerated, install the non- standard disk controller's driver according to the manufacturer's instructions. Once you verify that the new kernel boots and that the new device is working correctly, run the Prestoserve installation script using the following syntax:

# presto_chango -i -p prefix

The argument to the -p option is the non-standard disk controller's device prefix. For example, to Presto-ize the Ciprico Rimfire driver (/dev/rf*), run:

# presto_chango -i -p rf

If you want to Presto-ize additional disk drivers, repeat the previous presto_chango command with the new prefix. The changes made by the installation script are cumulative when the -p option is used.

A.3.1 Maximizing Performance of Non-standard Disk Controllers

Note - This section only applies to systems running SunOS 4.x. The Prestoserve driver for Solaris 2.x no longer supports BOUNCEIO because modern disk controllers and NVRAM devices no longer require this function.

When controllers, drivers, and kernels cannot access SBus memory, Sun Prestoserve copies data buffers from Sun Prestoserve memory back into kernel memory before handing the buffers to the disk driver. This extra copy mode is called BOUNCEIO. BOUNCEIO solves the problem in a general way, but entails a performance penalty of about 5 percent (on heavy write loads, this can be as high as 20 percent). It can also increase the kernel memory usage by up to 128 Kbytes, and increase CPU utilization by about 5 percent.

By default, BOUNCEIO is NOT used for all non-standard disk controllers. To disable BOUNCEIO for a non-standard controller, run the installation script with the -b option and the -p prefix arguments during the installation procedure. If you have already installed Sun Prestoserve, you must remove Sun Prestoserve by running the script with the -p prefix and the -r arguments.

If you want to maximize your NFS server performance, call Sun Customer Service and ask for support. Tell them that you are using a non-standard controller, and ask whether BOUNCEIO is required for your particular environment.