A Coda cell is a set of servers which all believe one member of the set to be the master, or SCM server. All modifications to important Coda databases should be made on the SCM, otherwise the SCM plays the role of an ordinary Coda server. The updateclnt and updatesrv daemons will then propagate changes from the SCM to the other servers.
The first server setup must be the SCM. This chapter is divided into three sections: installing the binaries, configuring the system using the configuration script vice-setup (for both SCM and non-SCM servers) and finally, a detailed look at what needs to be done to setup a server manually. Before beginning, we have provided some overview information to assist in setting up the server.
To help ensure that data is not lost or left in inconsistent state between server restarts, Coda uses Recoverable Virtual Memory (RVM) which is a transaction system that maintains the system state of the Coda server meta data. RVM is a data logging transaction system which writes modifications into the RVM log and upon truncation or restart incorporates such modifications into the RVM data file. Both log and data file for RVM are ideally held on raw partitions.
Note: This should not be confused with Virtual Memory.
Upon startup, the Coda servers use RVM to restore the Coda system state. For optimal performance you should have dedicated disk partitions for metadata and log partitions, ideally log partition should reside on its own disk. However, a disk sharing the log partition with other disk partitions or the use of a log file may be used at corresponding loss of optimal performance.
RVM metadata storage. This is a file or raw partition for RVM metadata. You can use a file but it will be quite slow on a larger server. This partition must be around 4% of the total size of the files you wish to store under /vicepa (e.g. on a 2GB server we use around 80MB of rvm data). For first installations we recommend the default 22MB options, and using files for RVM log and data.
Note: Windows NT Setup creates the file c:\coda\rvm\DATA. Use this for RVM metadata.
Virtual memory. The metadata, held in the RVM data file, is memory mapped. You need that amount of space as virtual memory on your system, in addition to virtual memory to run the server (~6MB) and other software.
RVM transaction log. This is a LOG file, preferably a raw partition on a disk by itself. This needs not be large, a few MB's are fine.
Note: Windows NT Setup creates the file c:\coda\rvm\LOG. Use this for RVM transaction log.
Please refer to the section called RVM Initialization for more details on RVM.
Coda servers require a minimum of 2 disk partitions for optimal performance (one raw partition for the RVM Log, one raw partition for RVM Data and one regular UNIX file system to hold file data store in Coda), data security and protection from accidental deletion. For additional performance gains the RVM Log partition should be on its own disk to avoid head movement latencies which reduces disk seek times on log operations. Optionally, /vice can be a separate partition for the same reasons it is advantages to have /var as a separate partition.
However, other configuration may be used such as having the RVM Data and Log information stored as regular UNIX files at a loss in performance and data security. Also, if more than one Storage Area Data is needed on a Coda Server (the default directory is called /vicepa), the additional storage areas must be separate partitions (different partition from /vicepa the default, initial storage area for data under Coda) and mounted as /vicepb, for example.
The table below shows a possible partitioning of disks on Coda servers with their respective purpose, mount points, typical sizes and consistency check program.
Note: Sizes of these partitions were taken from one of the Coda servers at CMU-SCS, the actual sizes may vary at other installations.
Table 6-1. Example of Partitions for a Coda Server
|Partition||Storage Purpose||Mounted||Typical Size||Whether fscked|
|hda2||RootandUser File System||/||650MB||Yes|
|hda5||Var file system||/var||100MB||Yes|
|hda3||Vice File System||/vice||300MB||Yes|
|sda2||Coda FS Data0||/vicepa||1.6GB||Yes|
|sda3||Coda FS Data1||/vicepb||1.6GB||Yes|
|sda5||Coda FS Data2||/vicepc||1.6GB||Yes|