1 RAIT (Redundant Array of Inexpensive Tape) Support
3 Author: Marc Mengel<mengel@fnal.gov>.
5 Currently it is only integrated with the chg-manual changer script;
6 collaboration on integrating it with the other tape changers is needed.
10 RAIT is an acronym for Redundant Array of Inexpensive Tapes, where
11 data is striped over several tape drives, with one drive writing
12 an exclusive-or-sum of the others which can be used for error
13 recovery. Any one of the data streams can be lost, and the data
14 can still be recovered.
16 This means that a 3-drive RAIT set will
17 write 2 "data" streams and one "parity" stream, and give you
18 twice the capacity, twice the throughput, and the square of the
19 failure rate (i.e. a 1/100 failure rate becomes 1/10,000, since
20 a double-tape failure is required to lose data).
22 Similarly, a 5-drive RAIT set will give you 4 times the capacity,
23 4 times the throughput (with sufficient bus bandwidth), and
24 the square of the failure rate.
26 This means you can back up partitions as large as four times your tape
27 size with amanda, with higher reliability and speed.
31 If you have several tape devices on your system you tell amanda to use
32 them as a RAIT by listing them as a single tape device using /bin/csh
33 curly-brace-and-comma notation, as in:
34 +------------------------------------
35 | tapedev = "rait:/dev/rmt/tps0d{4,5,6}n"
36 +------------------------------------
37 which means that /dev/rmt/tps0d4n, /dev/rmt/tps0d5n, and /dev/rmt/tps0d6n
38 are to be treated as a RAIT set. You can now mount three tapes, and
39 label them with amlabel, etc.
42 Also, you want to create a new tape-type entry, which lists an n-drive
43 RAIT set, for this RAIT-set. So if you were using an entry like:
44 +------------------------------------
45 | define tapetype EXB-8500 {
46 | comment "Exabyte EXB-8500 drive on decent machine"
51 +------------------------------------
52 You would want to make a new one like:
53 +------------------------------------
54 | define tapetype EXB-8500x3 {
55 | comment "Exabyte EXB-8500 3 drive stripe on decent machine"
60 +------------------------------------
61 and change your tapetype entry to:
62 +------------------------------------
64 +------------------------------------
65 To tell amanda about the multiple drive set.
67 To use other than 3 or 5 tape RAIT sets, you need to change the blocksize
68 in the tapetype to be divisble by the number of data stripes in your
69 RAIT set (i.e. the number of devices minus one).
71 Blocksizes and Performance:
73 For better performance, and to get more flexibility with tape stripes,
74 you want to build amanda with a very large maxtapeblocksize, something
76 ./configure --with-maxtapeblocksize=640
77 Then you can do something like:
78 +------------------------------------
79 | tapedev = "rait:/dev/rmt/tps0d{4,5,6,7}n"
83 | define tapetype DLT700x4 {
84 | comment "Exabyte DLT 4 drive stripe on decent machine"
85 | length 115167 mbytes
88 | blocksize 384 kbytes
90 +------------------------------------
91 which will give you 128k physical blocks on the tape; more generally for
92 an n-tape stripe, you want (n-1)*32 kbytes for a tape that likes
93 32k physical blocks, or (n-1)*128 kbytes for a tape that likes
97 the last stripe is the xor stripe, it is likely to compress poorly
98 relative to the other data stripes if you use hardware compression.
102 To assist in disaster recovery (as well as changer scripts) the
103 amanda package now also includes "amdd", which is a simple dd(1)
104 replacement which supports (only) the "if=xxx", "of=xxx", "bs=nnn[kMb]"
105 "skip=nnn" and "count=nnn" options, but which can read and write RAIT
108 Using amdd and your usual amanda unpack instructions will suffice
109 for disaster recovery from RAIT tape-sets.