[net.periphs] Magtape capacities vs densities ?

dan@rna.UUCP (01/03/84)

	A question for those with 6250bpi magtape drives:
	How much can you actually put on a 2400 foot reel ?

	The DEC Peripherals Handbook says 145 Mb for their TU78 with
8kb records. They also say 40Mb at 1600 bpi for 8kb records.
	Our Kennedy 9100 can put somewhere around 43Mb on a 2400 foot
tape.
	How much can put put on and with what record sizes ? How much
variability is there (I imagine tape length to be somewhat variable
between manufacturers) ?

					Thanks,
					Dan Ts'o
					...cmcl2!rna!dan

P.S.
	The question is immediately relevant to changing partitions
on our 4.2BSD. Do people still do image copy backups or is another
method almost as fast ?

lat@stcvax.UUCP (Larry Tepper) (01/04/84)

Here is a program to compute the capacity you can expect with a given
tape length and density.  Tape records have 82 bytes of preamble and
postamble (total) and are followed by a .6 inch inter-record gap.

The amount of data you can get on a tape depends on the tape-record
size.  If you write 1-byte tape records, you would incur an overhead
of 82 bytes header and .6 inches of gap for every byte.

The 145 Mb number is basically correct -- if you write 16k-byte (not
8k-byte) records and use every inch of the 2400 foot tape.  Note that
a number of popular disks have 32 512-byte sectors (i. e. 16k bytes)
per track

In the program below, the usual value for `data record size' is 512.
A typical value for `blocking factor' is 20 (tar and dump tapes).

#include <stdio.h>

main()
{
	double nrecs, tpsize, recsize, blkfctr, density;

	for ( ;; ) {
		printf("\n Enter tape density (bpi): ");
		scanf("%f", &density);
		printf(" Enter tape length (feet): ");
		scanf("%f", &tpsize);
		if (tpsize > 2400.) {
			printf(" length > 2400???  nice try!\n");
			continue;
		}
		printf(" Assuming use of 95%% of specified tape length\n");
		tpsize *= .95 * 12.;		/* Convert to inches */
		printf(" Enter data record size (bytes): ");
		scanf("%f", &recsize);
		printf(" Enter blocking factor: ");
		scanf("%f", &blkfctr);
		recsize *= blkfctr;
		nrecs = tpsize / (((recsize + 82.) / density) + .6);
		printf(" Number of records per tape:\n");
		printf("\t- data records:  %8.1f\n", nrecs * blkfctr);
		printf("\t- tape records:  %8.1f\n", nrecs);
		printf("\t- megabytes:     %8.1f\n", nrecs * recsize / 1000000.0);
	}
}

lat@stcvax.UUCP (Larry Tepper) (01/04/84)

Oops!  That program I posted has been laying around our site for
awhile.  The inter-record gap for 6250 tapes is .3 inches, but is
.6 for 1600 bpi.  If you change the program to account for this,
you do indeed get same numbers as the DEC Peripherals Handbook.
The changes are simple:

	Make `density' an int and fix it's scanf format string.
	Add a variable `gap' (double).
	After getting `density' put a switch and set gap accordingly.
	Change that 0.6 to `gap'

usenet@abnjh.UUCP (usenet) (01/04/84)

The facts you need to calculate the capacity of a given length of tape
are as follows:
	'nominal' inter-record-gap:
			0.3 inch for 6250 density
			0.6 inch for 1600 density
		actual irg *may* be very large (~100 feet, I think)
		but almost never is significantly more than the 
		'nominal' value.  And (exact value depending on error
		recovery strategy used by the software) should never
		be more than a few times the length of the physical record.
	Actual number of 8-bit frames of user data (ie non-overhead
	data; that is, CRC frames and other redundancy subtracted
	out) per inch recorded on the tape.  
			6250 for 6250 density
			1600 for 1600 density
		The actual number of flux changes per inch are greater
		because of redundancy and/or details of recording
		mode.  But for your purposes, this is irrelevant.

Thus, for 8Kilo-byte records at 6250 density, a record (including the
trailing inter-record-gap) is 8000/6250+0.3=1.58 inches long.
A 2400 foot reel of tape has space for 12*2400/1.58=18227 such records,
or 146 MegaBytes bytes.  This should be treated as an upper limit, but
I have found it to be reasonably accurate (to within 20% say).

One other number you may find useful:  A 'tape mark' (EOF for people
who don't care about formal standards) is minimum 3 inches long, and
(again) *may* be very long depending on software error recovery
strategys).

Rick Thomas
ihnp4!abnji!rbt
ihnp4!abnjh!usenet
(201)-560-6565

dhb@rayssd.UUCP (01/13/84)

The amount of data that can be stored on a magtape is not strictly
a function of the density, the record size plays a very important
part.  The amount of tape used by each record is approximately the
size of the record (in bytes) divided by the density.  The reason
I say approximately is that there are other things recorded on the
tape than just the data (CRC data and junk like that).  Also, the
number "6250" is just an approximation due to all the crap that
gets put on the tape by the "group-coded-recording" method.  The
real physical density of the tape is 9042 BPI.  Once you have
computed the approximate amount of tape used by the data records,
you have to remember that between each record is an inter-record
gap which is somewhere between .6 inches and .75 inches (depending
on the recording density).  Thus if you write a tape with many
small records, the tape ends up being mostly empty space.  Also,
if you put more than one file on the tape, a file mark takes up
about 3.5 inches.
-- 
	Dave Brierley
	Raytheon Co.; Portsmouth RI; (401)-847-8000 x4073
	...!decvax!brunix!rayssd!dhb
	...!allegra!rayssd!dhb
	...!linus!rayssd!dhb