Implementation Details: ducs_arch restore
As was discussed earlier, the archivist decides what archive versions
to delete from disk. There should be sufficient disk space available that
only versions which have no further use will need to be deleted. There
should be little occasion to use the command ducs_arch restore.
In the rare event that ducs_arch restore
is needed, there are limitations in what it can do at non-SLAC hosts since
the deleted code is maintained on tape only at SLAC.
- If the version to be restored is a partial DUCS version, ducs_arch
restore can automatically restore it at all hosts by recovering the
code from tape at SLAC and sending it to all hosts over the network.
- If the version to be restored is a full DUCS version, ducs_arch
restore can automatically restore it only at SLAC. There is too much
code to be sent over the network. Restoration to non-SLAC hosts must use
the cumbersome procedure of restoring the code at SLAC, copying this code
to a tape and then shipping the tape to the remote host.
The implementation of ducs_arch restore is as follows:
- The database is queried to obtain the version comment, number of files
and total file size are also read. An error message is issued if the version
is still on disk, does not exist or is too old
to have been stored under the new DUCS archive system.
- The version comment is read back to the user and confirmation is requested.
- Current available disk space is measured on the archive disks at all
appropriate hosts. The system will refuse to
perform copies at any hosts if it does not measure sufficient available
disk space at all appropriate hosts.
- The database is queried to find out how much disk space should be available
in the SLAC archives. This information is provided to the archivist as
a cross-check to tell if the archive disk has been misused (occupied by
code not part of the archive system). The estimated disk space should closely
match the actual measured disk space. However only the actual measured
disk space is used to decide whether to proceed with the restore.
In the past, space conflicts with non-archive system code have been the
primary cause of archive copy failures. A full 4 GB disk is supposed to
be reserved for the DUCS archives at SLAC.
- The code is restored to the SLAC hosts. For a full DUCS copy, this
can take up to half an hour per host.
Confirmation that the restore completed successfully is obtained by scanning
the remote shell login's output for the line: DUCS_ARCH STATUS: SUCCESS
- If the restored code was a partial version, the code is then copied
over the network to the non-SLAC hosts.
- The new archive copy is then measured at all appropriate
hosts by checking the total number of files and the grand total size. An
error message is given if any copy does not match the size read from the
database.
- The database is updated to reflect that the version is now on disk.
Joseph
Perl
18 February 1997