Installing a Coda Backup Coordinator Machine

The Coda Backup coordinator should be a trusted machine. It should be able get all the files that exist in the /vice subtree on the servers, although it is not necessary to run a file-server on the backup coordinator (nor is it recommended that the backup machine be a file-server).

Assuming the Backup Coordinator has been setup with an appropriate operating system, the steps are as follows:

  1. On the Coda File Server designated as the SCM, verify that /vice/db/dumplist contains correct backup schedule for your volumes. If you were using createvol_rep for volume creation, you should have been prompted about the backup schedule for new volume. The dumplist contains three fields: volume id specified as its hex value, the full/incremental backup schedule, and a comment which is generally the human readable volume name. For example:

    7f000001        IFIIIII         s:coda
    7f000002        IIIIIFI         u:satya
    7f000003        0325476         u:jan

    The first column specifies the volume id to be backed up, the second column specifies the backup schedule by the day of the week beginning Sunday, and the third column is a comment, usually the volume name in human readable form. So, the volume id 7f000001 is scheduled for a Full backup every Monday, and a level 1 Incremental - Tuesday through Sunday and from the comment, we know this is a system volume called coda. Likewise, the second volume 7f000002 is scheduled for a Full backup on Friday with a level 1 incremental being done Saturday through Thursday and is a user volume called satya. The last entry shows that it is also possible to numerically identify which dumplevels are to be made on each day.

  2. On the SCM, modify /vice/db/vicetab to indicate which host is acting as the backup coordinator and which partitions on the backup server are to be used by the backup coordinator to store the dump files. On a triply replicated system, vicetab might look like this:
    tye             /vicepa         ftree  width=8,depth=5
    taverner        /vicepa         ftree  width=8,depth=5
    tallis          /vicepa         ftree  width=8,depth=5
    dvorak          /backup1        backup
    dvorak          /backup2        backup
    dvorak          /backup3        backup

    vicetab, in addition to listing information on the servers providing replicated data, must also include information on the backup coordinator with backup coordinator's name in the first column, the backup partitions in the second column, and the designation backup in the third column. The 4th column is not used for the backup sub-system. Please see the vicetab(5) man page for additional information.

    The number of partitions available for dumping may be controlled by the system administrator. Because the volume of data may be both large and variable, the backup program intelligently decides where to store individual dump files based on size across the specified backup partitions. The directories in the sample vicetab, are assumed to be separate local disk partitions. An organized central symbolic link tree is created by the backup.sh script in the directory /backup that points to the actual files scattered across the /backup1, /backup2, and /backup3 given in this example.

  3. On the Backup Coordinator, the backup binaries and shell scripts need to be installed. The following directories should be have been created under /vice upon the installation of the Coda backup package:

    /backup
    /vice/backup
    /vice/backuplogs
    /vice/db
    /vice/vol    
    /vice/lib
    /vice/bin
    /vice/spool
    /vice/srv

    The primary binaries that should be installed under /vice/bin to get started are:

    backup
    backup.sh
    bldvldb.sh
    merge
    updateclnt
    updatesrv
    updfetch
    tape.pl

    Once it has been verified that the backup system is installed, the files /vice/db/hosts, /vice/db/files should be manually copied from the SCM to the same location on the Backup Coordinator. These are needed the first time by the updateclt daemon the when it runs. Also, Coda currently relies on the BSD dump and restore command to manipulate the tapes. A copy of dump package should be installed on the backup coordinator. BSD dump is available for all UNIX and UNIX like operating systems we have successfully run Coda on. Please check with your OS Vendor if you need help obtaining a copy.

Upon completion backup will print which volumes were successfully backed up, the volumes on which backup failed, and those volumes which were not specified for backup.

The merge program allows a system administrator to update the state seen in a full dump by the partial state in an incremental dump. This is useful, when a user wishes to restore to a state that was captured by a full and some number of incremental dumps, for instance, in the middle of the week. merge applies an incremental to a full dump, producing a new full dump file.

An incremental is a partial snapshot with respect to the previous dump. The Coda backup facility maintains an order on dumps for a volume. merge will only allow an incremental to be applied to its predecessor in the order. This predecessor may be a full dump or the output of the merge.

Once the administrator has created or retrieved the full dump which contains the desired state of a volume, she can create a read-only copy of that state by using the volutil restore facility. This volutil command creates a new read-only volume on a server. The new volume can be mounted as any other Coda volume. Regular Unix file operations can then be used to extract the desired old data. The obvious exception is that mutating options will fail on files in a read-only volume.