IBM

Depending on the server configuration, you may see highlighted words. You may even see <hyperlinks> surrounding the highlighted words. The hyperlinks take you to the next or previous highlighted word.


Database Record DA144602


ABSTRACT: <Tape> Device Driver Notes

 ABOUT THIS DOCUMENT

       These notes are intended as a supplement to the information
       contained in Info Explorer.  The reader should be familiar
       with the documentation available in Info Explorer before
       reading this document.  This document applies to AIX 3.1 and
       3.2 with the RISC System/6000.

  CONFIGURING THROUGH SMIT

       The following are notes about fields that can be set during
       configuration of <tape> device drivers in smit.

       "<BLOCK> <size> (0=variable length)"

       This field sets the <tape> <block> <size>.  The <block> <size> must be
       the same when a <tape> is read as it was when the <tape> was
       written.  With some commands, <tapes> written with ANY <block>
       <size> can be read if the <block> <size> is set to 0 (variable
       length) (see "<Block> <Sizes>" on page 3).

       "Use DEVICE BUFFERS during writes"

       When this field is set to "yes", the device will buffer data
       internally on writes.  This greatly improves performance,
       but in certain cases it may be undesirable since a "suc-
       cessful completion" indication is returned before the data
       is actually written to <tape>.

       "Use EXTENDED file marks"  (8mm only)

       Extended file marks take up much more space than short (or
       non-extended) file marks.  But extended file marks can be
       overwritten, allowing data which is not at the beginning of
       the <tape> to be overwritten (see "File Marks" on page 2).

       "Enable ECC"  (1/4" only)

       This field adds an Error Correction Code (ECC) to the data.
       THIS SHOULD ALWAYS BE SET TO OFF.  It has been disabled in
       later versions of AIX.

       "RETENSION on <tape> change or reset"  (1/4" only)

       If this field is set to "no", the <tape> will not be
       retentioned automatically when the <tape> is inserted.  Note
       that this will take effect only after the device is used.

  FILE MARKS

       <Tape> devices support multiple <tape> files.  <Tape> files are
       the result of a command in which the device is opened,
       written to, and closed, such as the backup, cpio, tar, and
       dd commands.  Because <tapes> allow large quantities of data
       to be written on a single <tape>, several backups (that is,
       <tape> files) may be combined on one physical <tape>.  Between
       each <tape> file is a "<tape> file mark" or "file mark".  These
       file marks are used by the device driver to indicate where
       one <tape> file ends and another begins.

                                B       E
                     <-------   O       O   ------->
                                T       T
                __ ____________________________ _____________
       physical | \            |       |      \             |physical
       beginning|  \           | <tape>  |       \            | end
         of     |   \          | file  |        \           |  of
        <tape>    |    \         | mark  |         \          | <tape>
                |_____\________|_______|__________\_________|

       Note that there is a distinction between the beginning of
       <tape> (BOT) side of a file mark and the end of <tape> (EOT)
       side of a file mark.  If the head is on the BOT side of a
       filemark, the "tctl fsf 1" command will only move the head
       to the EOT side of the same file mark.

       With the 1/4" <TAPE> DRIVE, writing is sequential and can only
       take place at BOT or after blank <tape> has been detected.
       Only at BOT can you write over data on the <tape>.  If you
       wish to add data to a <tape> which has been written and then
       rewound, you should space forward file mark until an error
       () occurs.  Only then can you start writing again.

       With an 8MM <TAPE> DRIVE, writing can only take place before
       blank <tape>, an EXTENDED file mark, or at BOT.  Thus, if
       several backups have been made on one <tape>, extended file
       marks were used, and you wish to overwrite one of the
       backups, position the <tape> to the place you wish to start
       writing and issue the following commands:

          tctl bsf 1
          tctl eof 1

       The first command skips back to the BOT side of the same
       file mark.  The second command rewrites the file mark
       (writing is allowed before extended file marks).  The erase
       head will erase data ahead of the write head, so that after
       writing the file mark there will be blank space.  Only after
       this may you start writing over data in the middle of the
       <tape>.  (All data beyond where you are currently writing will
       be lost).  Note that you cannot write over a short file mark
       (unless there is blank <tape> after the short file mark).  You

       can only rewrite in the middle of a <tape> if there is an
       extended file mark.  You can use smit to change the type of
       file marks used.

       With the 9-TRACK DRIVE, writing can take place anywhere on
       the <tape>, although overwriting of single <blocks> of data is
       not supported.

  <BLOCK> <SIZES>

       When data is written to <tape> it is written in <blocks>.  The
       <blocks> on a <tape> are separated by inter-record gaps.  It is
       important to understand the structure of the written <tape> in
       order to understand the problems which can occur with
       changing <block> <sizes>.

       In FIXED BLOCK-SIZE MODE all <blocks> on the <tape> are the same
       <size>.  They are the <size> of the <block> <size> set in the device
       configuration.  All read()s and write()s to the <tape> drive
       must be a multiple of the fixed <block> <size>.

       In fixed <block> mode, a read() will return as many <blocks> as
       needed to satisfy the read() request.  If a file mark is
       encountered during the read, only the data up to the file
       mark will be returned.

       In fixed block-size mode, it is not possible for the <tape>
       drive to read a <tape> whose <block> <size> is not the same as the
       <block> <size> in the device configuration.

       In VARIABLE BLOCK-SIZE (0) MODE, the <blocks> written on the
       <tape> are the <size> of the read() and write() requests to the
       device driver.  In this case, the actual <block> <sizes> on the
       <tape> can be changed using options of the backup commands
       (tar -b, cpio -C, backup -b).

       In variable mode, read() requests greater than the <size> of
       the <block> on the <tape> will return only the data from the
       next <block> on the <tape>.  It is this feature that allows
       <tapes> written in any <block> <size> (fixed or variable) to read
       with the dd command (the output from the dd command may be
       piped to restore, tar, or cpio, for example.)  Note that
       backup, tar, and cpio cannot read all <tapes> by using a large
       <block> <size> because they assume there is an error if they get
       a short read().

         dd ibs=128k obs=16k if=/dev/rmt# | ...

       The <tape> head is always positioned at an inter-record gap,
       file mark, or blank <tape> after reading or writing.

       With the 8MM <TAPE> DRIVE, the use of a fixed <block> <size> which
       is not a multiple of 1K is inefficient.  The 8mm <tape> drive
       always writes internally in 1K <blocks>.  It simulates the
       effect of variable <block> <sizes>, but, for example, using a
       fixed <block> <size> of 512 bytes (or using variable <block> <size>
       and write()ing 512 bytes at a time) wastes one half of the
       <tape> capacity and decreases the maximum transfer rate.

  EXCHANGING DATA WITH NON-UNIX AND NON-IBM MACHINES

       o   Most <tape> drives (including non-UNIX and non-IBM)
           support both variable and fixed <block> <sizes>.

       o   With non-IBM UNIX, avoid <block> <sizes> of 64K (-C128) and
           greater, because UNIX often internally chops larger
           reads and writes into manageable pieces (often 65535,
           65534, or 65532 bytes) before doing the actual reads and
           writes.  This means that reads and writes of 64K bytes
           are often broken up into a 65535 byte record and a 1
           byte record.  (In fixed mode, the write of 64K bytes
           will fail.)  The IBM AIX kernel does not break up read
           and write requests, but be aware of this situation on
           other machines.

       o   If you need to read a <tape> written in an unknown <block>
           <size>, set the device configuration in smit to use vari-
           able <size> <blocks>, use the "dd" command with a large
           input <block> <size>, and pipe it to the restore, tar, or
           cpio command, as appropriate.  For example:

             chdev -l rmt# -a block_size=0
             dd if=/dev/rmt# ibs=128k obs=16k | tar -tvf-


  SPECIAL NOTICES

       Please use this information with care.  IBM will not be
       responsible for damages of any kind resulting from its use.
       The use of this information is the sole responsibility of
       the customer and depends on the customer's ability to eval-
       uate and integrate this information into the customer's
       operational environment.