Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | Channel attached Tape device driver |
| 2 | |
| 3 | -----------------------------WARNING----------------------------------------- |
| 4 | This driver is considered to be EXPERIMENTAL. Do NOT use it in |
| 5 | production environments. Feel free to test it and report problems back to us. |
| 6 | ----------------------------------------------------------------------------- |
| 7 | |
| 8 | The LINUX for zSeries tape device driver manages channel attached tape drives |
| 9 | which are compatible to IBM 3480 or IBM 3490 magnetic tape subsystems. This |
| 10 | includes various models of these devices (for example the 3490E). |
| 11 | |
| 12 | |
| 13 | Tape driver features |
| 14 | |
| 15 | The device driver supports a maximum of 128 tape devices. |
| 16 | No official LINUX device major number is assigned to the zSeries tape device |
| 17 | driver. It allocates major numbers dynamically and reports them on system |
| 18 | startup. |
| 19 | Typically it will get major number 254 for both the character device front-end |
| 20 | and the block device front-end. |
| 21 | |
| 22 | The tape device driver needs no kernel parameters. All supported devices |
| 23 | present are detected on driver initialization at system startup or module load. |
| 24 | The devices detected are ordered by their subchannel numbers. The device with |
| 25 | the lowest subchannel number becomes device 0, the next one will be device 1 |
| 26 | and so on. |
| 27 | |
| 28 | |
| 29 | Tape character device front-end |
| 30 | |
| 31 | The usual way to read or write to the tape device is through the character |
| 32 | device front-end. The zSeries tape device driver provides two character devices |
| 33 | for each physical device -- the first of these will rewind automatically when |
| 34 | it is closed, the second will not rewind automatically. |
| 35 | |
| 36 | The character device nodes are named /dev/rtibm0 (rewinding) and /dev/ntibm0 |
| 37 | (non-rewinding) for the first device, /dev/rtibm1 and /dev/ntibm1 for the |
| 38 | second, and so on. |
| 39 | |
| 40 | The character device front-end can be used as any other LINUX tape device. You |
| 41 | can write to it and read from it using LINUX facilities such as GNU tar. The |
| 42 | tool mt can be used to perform control operations, such as rewinding the tape |
| 43 | or skipping a file. |
| 44 | |
| 45 | Most LINUX tape software should work with either tape character device. |
| 46 | |
| 47 | |
| 48 | Tape block device front-end |
| 49 | |
| 50 | The tape device may also be accessed as a block device in read-only mode. |
| 51 | This could be used for software installation in the same way as it is used with |
| 52 | other operation systems on the zSeries platform (and most LINUX |
| 53 | distributions are shipped on compact disk using ISO9660 filesystems). |
| 54 | |
| 55 | One block device node is provided for each physical device. These are named |
| 56 | /dev/btibm0 for the first device, /dev/btibm1 for the second and so on. |
| 57 | You should only use the ISO9660 filesystem on LINUX for zSeries tapes because |
| 58 | the physical tape devices cannot perform fast seeks and the ISO9660 system is |
| 59 | optimized for this situation. |
| 60 | |
| 61 | |
| 62 | Tape block device example |
| 63 | |
| 64 | In this example a tape with an ISO9660 filesystem is created using the first |
| 65 | tape device. ISO9660 filesystem support must be built into your system kernel |
| 66 | for this. |
| 67 | The mt command is used to issue tape commands and the mkisofs command to |
| 68 | create an ISO9660 filesystem: |
| 69 | |
| 70 | - create a LINUX directory (somedir) with the contents of the filesystem |
| 71 | mkdir somedir |
| 72 | cp contents somedir |
| 73 | |
| 74 | - insert a tape |
| 75 | |
| 76 | - ensure the tape is at the beginning |
| 77 | mt -f /dev/ntibm0 rewind |
| 78 | |
| 79 | - set the blocksize of the character driver. The blocksize 2048 bytes |
| 80 | is commonly used on ISO9660 CD-Roms |
| 81 | mt -f /dev/ntibm0 setblk 2048 |
| 82 | |
| 83 | - write the filesystem to the character device driver |
| 84 | mkisofs -o /dev/ntibm0 somedir |
| 85 | |
| 86 | - rewind the tape again |
| 87 | mt -f /dev/ntibm0 rewind |
| 88 | |
| 89 | - Now you can mount your new filesystem as a block device: |
| 90 | mount -t iso9660 -o ro,block=2048 /dev/btibm0 /mnt |
| 91 | |
| 92 | TODO List |
| 93 | |
| 94 | - Driver has to be stabilized still |
| 95 | |
| 96 | BUGS |
| 97 | |
| 98 | This driver is considered BETA, which means some weaknesses may still |
| 99 | be in it. |
| 100 | If an error occurs which cannot be handled by the code you will get a |
| 101 | sense-data dump.In that case please do the following: |
| 102 | |
| 103 | 1. set the tape driver debug level to maximum: |
| 104 | echo 6 >/proc/s390dbf/tape/level |
| 105 | |
| 106 | 2. re-perform the actions which produced the bug. (Hopefully the bug will |
| 107 | reappear.) |
| 108 | |
| 109 | 3. get a snapshot from the debug-feature: |
| 110 | cat /proc/s390dbf/tape/hex_ascii >somefile |
| 111 | |
| 112 | 4. Now put the snapshot together with a detailed description of the situation |
| 113 | that led to the bug: |
| 114 | - Which tool did you use? |
| 115 | - Which hardware do you have? |
| 116 | - Was your tape unit online? |
| 117 | - Is it a shared tape unit? |
| 118 | |
| 119 | 5. Send an email with your bug report to: |
| 120 | mailto:Linux390@de.ibm.com |
| 121 | |
| 122 | |