Imported Upstream version 2.4.4p3
[debian/amanda] / docs / RAIT
1 RAIT (Redundant Array of Inexpensive Tape) Support
2
3 Author: Marc Mengel<mengel@fnal.gov>.  
4
5 Currently it is only integrated with the chg-manual changer script; 
6 collaboration on integrating it with the other tape changers is needed. 
7
8 What is a RAIT?
9
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.  
15
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).
21
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.
25
26 This means you can back up partitions as large as four times your tape 
27 size with amanda, with higher reliability and speed.
28
29 Using a RAIT:
30
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.
40
41
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"
47         |     length 4200 mbytes
48         |     filemark 48 kbytes
49         |     speed 474 kbytes
50         | }
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"
56         |     length 8400 mbytes
57         |     filemark 200 kbytes
58         |     speed 948 kbytes
59         | }
60         +------------------------------------
61 and change your tapetype entry to:
62         +------------------------------------
63         | tapetype EXB-8500x3
64         +------------------------------------
65 To tell amanda about the multiple drive set.
66
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).
70
71 Blocksizes and Performance:
72
73 For better performance, and to get more flexibility with tape stripes,
74 you want to build amanda with a very large maxtapeblocksize, something
75 like:
76     ./configure --with-maxtapeblocksize=640
77 Then you can do something like:
78         +------------------------------------
79         | tapedev = "rait:/dev/rmt/tps0d{4,5,6,7}n"
80         ...
81         | tapetype DLT7000x4
82         ...
83         | define tapetype DLT700x4 {
84         |     comment "Exabyte DLT 4 drive stripe on decent machine"
85         |     length 115167 mbytes
86         |     filemark 120 kbytes
87         |     speed 4482 kbytes
88         |     blocksize 384 kbytes
89         | }
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
94 bigger blocks.
95
96 Hardware Compression:
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.
99
100 Disaster Recovery:
101
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 
106 tapesets.
107
108 Using amdd and your usual amanda unpack instructions will suffice
109 for disaster recovery from RAIT tape-sets.