Installing and Configuring a Coda Client
Danger
This page contains outdated info and needs to be updated and rewritten.
A Coda client can be run on any workstation that has kernel support for Coda in its kernel. Supported UNIXTM-like platforms are currently Linux, FreeBSD and NetBSD.
This chapter assumes the chapter on Kernel Configuration has been read. It contains valuable information for building a kernel if a pre-built kernel with Coda support (or loadable coda kernel modules) cannot be used.
Installing and Configuring the Coda Client Binaries and Documentation
Install RPMS using following commands.
# rpm -Uvh lwp-<release>.i386.rpm
# rpm -Uvh rvm-<release>.i386.rpm
# rpm -Uvh rpc2-<release>.i386.rpm
# rpm -Uvh coda-debug-client-<release>.i386.rpm
Build and install coda5_client port from /usr/ports/net/coda5_client
.
# cd /usr/ports/net/coda5_client
# make
# make install
Build and install coda5_client source package from
/usr/pkgsrc/net/coda5_client
.
# cd /usr/pkgsrc/net/coda5_client
# make
# make install
Install Coda client by running ??????.
Currently, client files for the supported platforms are installed into the following directories:
/usr/bin
- user applications/usr/sbin
- system binaries/etc
- other files
/usr/local/bin
- user applications/usr/local/sbin
- system binaries/usr/local/etc
- other files
/usr/local/bin
- user applications/usr/local/sbin
- system binaries/usr/local/etc
- other files
- All executables can be found in the directory
C:\usr\coda\bin
.
Note
Please make sure your PATH environment variable is set properly for your
platform. That is, ensure FreeBSD has /usr/local/{bin,sbin}
and NetBSD
has /usr/pkg/{bin,sbin}
in its default search paths. Linux installs Coda
into the default system paths, so Linux should not need its default search
path modified.
Linux and the BSD's: running venus, the client cache manager
Once the binaries and documentation are installed, configuration of venus is identical for all platforms when venus-setup is used. To run the script, type:
venus-setup comma,separated,list,of,servers cache_size_in_kilobytes
Note
venus-setup is not needed when you install from the Debian/Ubuntu binary packages because its functionality has been integrated into dpkg-reconfigure.
The venus-setup script does all the hard work, it will setup the coda
control files, create /dev/cfs0
to communicate with the kernel, … It
also initializes a directory for cache files. In your first Coda run we
recommend a small cache, say 20MB. The cache size should be at least 10Meg,
typically 60-200Meg is used. Do not go above 300Meg. All the files created
will be placed under /usr/coda
. You should make sure that there is enough
space in the file system on which /usr/coda
resides to hold a fully populated
cache.
For example, venus-setup micky,minnie,goofy 40000
will set up venus to
look for the set of servers micky, minnie, and goofy and configure it to
use 40MB of disk space for caching. This information is kept in
/etc/coda/venus.conf
. We strongly recommend that you initially try your
client against testserver.coda.cs.cmu.edu first, and keep the cache size to
20000.
Start venus with venus &
. An -init flag can be given when venus
is started to flush the local cache contents. Installation procedure performed
by venus-setup forces venus to inititialize cache upon first startup.
The -init flag can be given if Coda cannot recover its cache after a crash
or after re-editing the venus.conf
file manually.
Observe the venus log with tail -f /var/log/coda/venus.err
it will tell you
when venus has started and give status. Type codacon
to see the actions
of the client in more detail, such as the communication between venus and
the Coda servers.
It is possible to see the upcalls from the kernel to venus by turning up
logging, but they are not very interesting. (To turn on minimal debugging,
type vutil -d 1
and then tail -f /var/log/coda/venus.log
.)
To halt venus, type:
# umount /coda # Linux only
# vutil shutdown
Or you can kill -9 venus, if you must.
Linux specific notes
-
Before restarting venus,
/coda
must be unmounted. If umounting/coda
gives trouble, make sure to exit all process that hang on to the Coda filesystem, e.g. by having files open or being cd'd into /coda. A utility like lsof and fuser can help with this. -
/proc/fs/coda
has interesting Coda statistics. -
You can enable kernel debugging with
vutil -kdebug 4095
and call tracing withvutil ktrace 1
. The messages appear in/var/log/messages
.
Windows 95: Starting and Configuring a Coda client
During installation you will be prompted for the IP address of your Coda server(s). Enter this as indicated.
CodaStart
CodaStart is a Win32 windows-based application to control and observe the Windows 95 Coda client. It will be enhanced in the future. For now it provides a convenient way to start venus.exe. It also displays the kernel-venus communication for debugging purposes. Printing the messages can be stopped by unticking the Monitor check box. The Reset button clears the display.
When you start venus for the first time, or you want to reinitialize its cache, tick the Init venus check box. This will start venus with the -init and -cf 1500 flag set. To add or override flags use the Configure button. Start venus by clicking the left Start button. The 'Status' message will tell you 'Running' when venus starts.
Coda will be mounted automatically on the drive specified in the
C:\usr\coda\etc\vstab
file. vstab
is created by the installer.
To unmount, type cfs uk in a DOS window. This will cleanly shut down venus as well.
You are now ready to browse through the Coda filesystem using the explorer!
Important
In some installations the DPMI DOS Extender window suspends when it is not active. In this case untick the window property Properties->Misc->Background->Always Suspend. If it is unticked, ticking and unticking it again might help. Also untick the Termination flag, to allow Coda to automatically shutdown, when the system shuts down. For your convenience tick the Close on Exit check box in the Program tab.
Upgrading from a previous Release
If you are upgrading Coda from a previous release, do not run venus-setup again! Simply obtain the packages for your platform as indicated above. Then, shutdown venus by becoming root and issue the following command:
# vutil -shutdown
Next, install the binary packages following the installation instructions
above. Make sure you have the appropriate kernel or module for *BSD systems
or the correct module for Linux systems. The INSTALL.<platform>
document
available from the Coda ftp site will contain relevant notes about upgrading
your system core components.
Once the new binaries are installed and the any necessary kernel updates are completed, you need to start the new venus for the first time by becoming root and typing:
# venus -init &
The -init flag is used to re-initialize the /usr/coda/venus.cache/
.
Configuration changes made by venus-setup
This section describes the changes that must be made to various configuration files. Samples of the files are contained in Example Files.
/etc/coda/venus.conf
The Coda client configuration file venus.conf
in /etc/coda
is copied from
/etc/coda/venus.conf.ex
if it doesn't exist yet. All configurable options in
this file are extensively documented by comments in the file itself.
/etc/rc.
To automatically start venus at boot time, the script rc.venus is provided
in /usr/local/etc
for FreeBSD systems and /usr/pkg/etc
for NetBSD.
venus.init* is provided for RedHat Linux in /etc/rc.d/init.d
.
RedHat Linux users should create the following symbolic link if it doesn't already exist:
# ln -sf /etc/rc.d/init.d/venus.init /etc/rc.d/rc3.d/S97venus.init
This will allow init to process the file and start venus at boot time.
FreeBSD system users should create /usr/local/etc/rc.d/venus.sh
(with
rwxr-xr-x permissions), containing:
#!/bin/sh
echo -n " venus"
/usr/local/sbin/venus &
NetBSD system users should create /usr/pkg/etc/rc.d/venus.sh
(with
rwxr-xr-x permissions), containing:
#!/bin/sh
echo -n " venus"
/usr/pkg/sbin/venus &
/etc/services
The following port numbers are added to /etc/services
by venus-setup:
coda_opcons 1355/udp # Coda opcons
coda_auth 1357/udp # Coda auth
coda_udpsrv 1359/udp # Coda udpsrv
coda_filesrv 1361/udp # Coda filesrv
coda_venus 1363/udp # Coda venus
coda_backup 1407/tcp # coda backup service
codacon 1423/tcp venus.cmu # Coda Console
coda_aux1 1431/tcp # coda auxiliary service
coda_aux1 1431/udp # coda auxiliary service
coda_aux2 1433/tcp # coda auxiliary service
coda_aux2 1433/udp # coda auxiliary service
coda_aux3 1435/tcp # coda auxiliary service
coda_aux3 1435/udp # coda auxiliary service
/dev/cfs0 The following major and minor numbers are used for the various platforms:
-
Character-special with Major 67 and minor 0 for Linux
# mknod /dev/cfs0 c 67 0
-
Character-special with Major 93 and minor 0 for FreeBSD
# mknod /dev/cfs0 c 93 0
-
Character-special with Major 46 and minor 0 for NetBSD 1.2
# mknod /dev/cfs0 c 46 0
-
Character-special with Major 51 and minor 0 for NetBSD 1.3
# mknod /dev/cfs0 c 51 0
Please be sure to check INSTALL.<platform>
to make sure these numbers have
not changed. For Linux and FreeBSD, the above numbers are officially
registered. Coda on NetBSD at present does not have formally registered major
device numbers so these are subject to change from release to release.
Where Data and Configuration Information is Stored
/usr/coda/etc
- Coda configuration files critical for venus startup./usr/coda/venus.cache
- Cached copies of Coda files./usr/coda/spool
- Saved CMLs from automatic or manual checkpointing./usr/coda/tmp
- Temporary hoard related files./etc/services
- Various port numbers used by Coda for client and server communication.