[NTLUG:Discuss] OT: tapes and buffers
Eric Schnoebelen
eric at cirr.com
Mon Sep 8 16:24:51 CDT 2008
Fred James writes:
- My question is how does the buffer work (or is that dependent on the
- particular software?) - does it fill and then not accept new data until
- it is empty again, or is it more like a pipe (input only limited by the
- capacity of the buffer, and output anytime there is anything in the buffer)?
-
- Or am I asking the question wrong?
You're probably asking the question wrong. :)
The general idea is to set up a queue of data ready to go to the
tape drive, allowing the tape write engine to keep the drive
"streaming", and allow the highest density possible on the
drive.
It can be implemented in a number of fashions.
xdump (from ConvexOS, and probably other places) implemented it
as a pair/set of shared memory buffers, that would be "swapped"
between the data gathering process and the tape writing process.
amanda implements it by spooling all of the data from the remote
systems to the local system, and then doing something similiar,
namely having one process read data off the local disk into
memory, and another taking from memory and writing to tape.
When the writer finishes consuming it's data, it picks the next
buffer out of the queue, and starts sending down the IO buss to
the tape drive.
Keeping a tape drive streaming has implications on the IO bus.
It can easily saturate even the highest speed of bus.
So, you want to make sure your data source (the disk/remote
device/etc) is on a different IO bus than your data sink (the
tape drive.)
In the case of SCSI based systems, don't have both the source
disk and the destination tape drive on the same bus.
--
Eric Schnoebelen eric at cirr.com http://www.cirr.com
Old machines never become obsolete, They just get consolidated for parts
- Gordon Greene in Alt.folklore.computers
More information about the Discuss
mailing list