The following sections contain names and descriptions of alphanumeric and boolean brutab fields and of global brutab parameters. This is information that may be needed during installation. See both Chapter 2, “Installation” and Appendix E, “A Sample brutab File.”
Alphanumeric brutab Fields
These are the alphanumeric fields currently recognized by BRU. The two most important fields are listed first:
Media size in bytes, if known. Zero, if unknown, or if variable-sized media. If a size is given, it must not be larger than the actual media size. For instance, do not specify size=30G if you are using a 15 gigabyte tape.
This option should be used with fixed size devices such as tape drives, removable devices (Iomega Zip or Jaz), and floppy disks. With modern tape drives that provide hardware compression, it is not possible to properly define the amount of data that a cartridge will store – in these cases, please use a setting of size=0.
If you do specify a size other than 0, the specified size must not be larger than the actual tape size. If you set it larger, it may cause confusing error messages. This is because BRU is unable to determine the difference between an end-of-tape condition and a real error. To avoid problems, it is better to set the size too small than too large.
Media size can also be specified on the command line with the -s option. This command line specification will override any value specified in brutab. IMPORTANT: The media size must be specified as a whole number, no decimals are allowed. Specifying size=2.2GT is ILLEGAL and will not work. Instead, you should use size=2200MT.
Default I/O buffer size for this device. If omitted, the default is 20 kilobytes. If you are using double buffering (-D) this bufsize value should not be larger than the value of shmmax, or the system imposed limit on the size of a shared memory segment, whichever is smaller. The buffer size is the amount of data BRU will transfer from/to the archive device during each read/write operation.
This parameter is usually the one to adjust when trying to maximize BRU’s speed. The optimum value varies widely, depending on your system and device. If you are having problems, start by setting bufsize=16K. This should work for almost any UNIX system. There is no single “best” value for bufsize. On some systems, bufsize=8K may produce the best results. On others, setting bufsize=128K or larger may be faster. IMPORTANT NOTE: Over 75% of all reported BRU problems are caused by buffer sizes that are too large. This is especially true for devices that have a SCSI interface. In many cases, these problems are not apparent when writing to a device (backing up data), but occur when attempting to read (restore data).
DO NOT USE A LARGE BUFFER SIZE SIMPLY BECAUSE IT IS FASTER!
Verify your backup! Use the -i or -d options to verify the backup, or let AUTOSCAN do it automatically. A fast backup is worthless if it contains errors.
The buffer size can also be specified on the command line with the -b option. This will override any value specified in your brutab.
Listed below are additional alphanumeric brutab fields. These are optional and can usually be ignored:
The maximum number of seconds that it takes to rewind a tape. Normally, the UNIX system causes the tape to rewind and then returns control to BRU when the rewind is done. However, some tape drives (or device drivers) have a design under which they return control to BRU immediately before the rewind has finished – which causes errors when BRU attempts to read the tape during AUTOSCAN. If your tape drive has this bug, setting maxrewindtime will cause BRU to wait before attempting to start an AUTOSCAN. If necessary, a setting of maxrewindtime=180 seems to work for most tape drives.
The minimum number of seconds that it takes to rewind a tape. This parameter is only in effect only if maxrewindtime is set to a non-zero value. In most cases, minrewindtime does not need to be specified and defaults to 25 seconds.
AUTOSCAN buffer size. By default, this is same as the value specified by bufsize. Normally, this is the best value and there is no need to specify asbufsize.
Maximum I/O buffer size for this device. The maximum buffer size this device can handle. If you ask BRU to use a larger buffer size, it will issue a warning that the maximum buffer size has been exceeded. Without this warning, it can be hard to determine the cause of read or write errors that are due to exceeding the capabilities of the device.
Minimum seek resolution. Zero if no seeks allowed. For most seekable devices, the seek resolution corresponds to the physical block size of each data block on the device. All seeks performed on the device will be an integral multiple of this value.
Error code returned by the device driver when the end-of-device is reached. This allows BRU to detect when it has reached the end of a tape. On many systems, this should be set to ENOSPC. For example:
Device drivers vary widely, so the correct value for your system may be different. If you do not know the error code that is returned, do not specify ederr or set ederr=0.
Error code returned by the device driver for partial reads. A partial read successfully reads more than zero bytes but less than the requested number of bytes.
Error code returned by the device driver for partial writes. A partial write successfully writes more than zero bytes but less than the requested number of bytes.
Error code returned by the device driver for zero length reads. A zero length read reads zero bytes.
Error code returned by device driver for zero length writes. A zero length write is one that writes zero bytes.
Error code returned by device driver after an attempt to read from unformatted media. Applies mostly to floppy drives (most tapes are not formatted).
Error code returned by the device driver after an attempt to write to unformatted media. This code applies only to devices that must be formatted (like floppies or mini-cartridge tapes). It does not apply to most cartridge tapes, as they do not require formatting.
Error code returned by the device driver after an attempt to write to media that are write-protected.
Allows you to specify a format command that BRU will execute if it tries to write to unformatted media (like a floppy disk that has not been formatted). The format command should be enclosed in double quotes. For example, the following command formats a floppy disk under SCO OpenServer:
fmtcmd=”format -f /dev/rfd096”
If fmtcmd is specified, the format field must also be specified or the fmtcmd string will not be executed.
Read/write timeout value. This is not a fixed timeout but is the number of seconds added to the maximum time needed to read/write a block of data at 1000 bytes/second. For example, the time needed to write 20,000 bytes would be 20 seconds. If iotimeout=30 is specified, this value would be added to 20. In this case, BRU will issue a timeout error if the write did not complete within 50 seconds. Normally, iotimeout can be left out. It is useful for trouble-shooting purposes if BRU “hangs” mysteriously when writing to a device.
Number of additional times BRU will try to open a device if the first attempt fails. The default value is 1. Specify openretries=0 if you want only one attempt at opening a device.
Number of seconds BRU will wait while attempting to open a device. The default value is 3600 seconds. This value must be large enough to include the amount of time it takes to rewind a device, since many devices do not return from an open call until the rewind is complete. Specify opentimeout=0 to disable the timeout.
The following parameters apply only if double buffering (the -D option) is used. If double buffering is not used, they are ignored.
Limit on the size of each shared memory segment. BRU will not attempt to allocate a shared memory segment larger than this limit.
Limit on the number of shared memory segments. BRU will not attempt to allocate more than this number of shared memory segments. For double buffering, BRU allocates one segment for shared variables, and then at least one additional segment for shared I/O buffers. Therefore, the minimum number of shared memory segments is two.
Limit on the total amount of shared memory used. BRU will not attempt to allocate more than this total amount of shared memory.
Boolean brutab Fields
This section contains a listing of the fields with Boolean capabilities currently recognized by BRU. These Boolean fields are:
Ignore the error that is generated by some devices when they are closed. Some devices with a SCSI interface may need to have this field specified. This will eliminate the [W003] warning message that occurs with some tape drives.
Disable the AUTOSCAN feature. The AUTOSCAN feature acts as an early-warning system – detecting minor problems before they become serious. If AUTOSCAN is disabled, your data integrity may be compromised and many types of problems can go undetected.
Do not close and reopen archive upon media switch. This setting is rarely used but keeping the archive device open usually prevents other processes from accessing the same device.
Archive device is a raw tape drive. This means that the kernel does not buffer data to and from the device.
Archive device does not automatically rewind to the start of the media after it has finished writing. Note that the size parameter should be zero. NOTE: AUTOSCAN will be disabled if norewind is specified.
Indicates that the device has the capability of advancing the media past read/write errors. In our experience, very few tape drives (or device drivers) have this capability. Most refuse to advance past hard errors on the media. If this parameter is set, BRU will be able to proceed past bad spots on the media. NOTE: It is a serious mistake to define this parameter for devices which are unable to advance the tape drive when an error occurs. If defined incorrectly BRU may not be able to recover from read errors. Most tape drives do not have the ability to advance on error.
For the first write to the first media in this device, request confirmation to proceed. This flag should be used if the device is also used for mounted filesystems, to protect against accidentally overwriting a media that may have been left in the device (floppy drives for example). NOTE: Does not work when multiple archive devices are specified.
Indicates that the device driver for this device cannot do I/O directly from shared memory. During archive writes, the data will be copied from shared memory to a locally allocated buffer before doing I/O to the archive device. During archive reads, the data will first be read into a locally allocated buffer, and then copied to shared memory. BRU will warn you when it detects conditions that indicate that this parameter should be set, and will automatically switch to copy mode.
NOTE: This parameter is needed only with double buffering (-D option). If double buffering is not used, this parameter is not needed.