Penguin
Annotated edit history of RAID version 15, including all changes. View license author blame.
Rev Author # Line
5 MattPurvis 1 [Acronym] for __R__edundant __A__rray (of) __I__nexpensive __D__isks.
2
3 The idea behind [RAID] is having an array of disks (usually inexpensive, although that doesn't stop people buying expensive disks for their RAID array) which are all put together to form one logical disk. There are different types of [RAID] (as listed below) which all have various advantages (and disadvantages)
11 DanielLawson 4
14 KragenSitaker 5 See RaidOnLinux and RaidNotes for some specific notes about RAID under linux.
5 MattPurvis 6
7 !![RAID] 0: Striping
8 RAID 0 technically isn't [RAID]: It provides no redundancy or fault tolerance.
9
10 However data is spread across the disks (they aren't just concatenated). This means that file I/O speed is better than having a single disk since each disk can be reading or writing data independant of the others.
11
12 !Advantages:
13 * No parity generation
14 * Easy to implement in software and hardware
15 * Cheap to implement
8 PerryLorier 16
5 MattPurvis 17 * Utilise full disk capacity, no space is wasted storing redundant pages
18
6 MichaelBordignon 19 http://www.raidarray.eu.com/raid0.html or http://www.acnc.com/raid.html
5 MattPurvis 20
21 !Disadvantages
22 * If any disk fails, you lose all your data
23 * Not true [RAID]
24
25 !Applications
26 * Anything where you need fast I/O particularly streaming I/O, for example Video Editing.
27
28 !![RAID] 1: Mirroring
29 When writing data, write it to all disks in the array, when reading read from any of the disks of the array. If any disk in the array fails you can replace it easily and rebuild the array without loosing data. If your disks are hotswappable, you can do this with only minor performance losses.
30
31 !Advantages
32 * Can support all but one disk in the array failing simultaniously
33 * Easy to implement in software and in hardware.
34
35 !Disadvantages
36 * The Cost per MB is high, since you need to buy at least twice as much disk space as you need.
37 * Extremely wasteful of disk space (since at least 50% of your data is being used elsewhere)
38 * Writes can be slowed down
39
40 !Applications
41 * When you just can't afford to have your data die on you.
42 * When you need good read performance but don't care about write performance.
43
44 !![RAID] 2: Striping + ECC
45 This uses striping with some disks holding [ECC] information. Apparently noone has ever implemented this spec, because it's so complicated and really, the other [RAID] levels do it better. Be sure to prove me wrong by finding *someone* that does [RAID] level 2 :)
46
47 !![RAID] 3: Parity Disk
48 [RAID] 3 has a parity disk which stores an XOR of all the other disks. If any one disk fails, then this XOR can be used to recreate the data by XOR'ing all the other disks together and then XOR'ing the parity data. If the parity disk fails then it can be regenerated by XOR'ing all the disks together.
49
50 !Advantages
51 * Efficient use of data storage
52 * High read speed
53
54 !Disadvantages
55 * Requires at least 4 disks
56 * Inefficient with small data transfers
57
58 http://www.raidarray.eu.com/raid3.html
59 !![RAID] 4: Block level striping with Parity Disk
60 [RAID] 4 stripes based on blocks instead of bytes and stripes the data across the disks except for one which stores the Parity. Performance is good.
61
62 !![RAID] 5: Parity shared across disks
63 Ah, [RAID] 5! [RAID] 5 combines the advantages of 3 and 0 by spreading the parity infomation across all drives. This is the most common type of [RAID].
64
65 !Advantages
66 * Optimum Cost/Performance/Fault Tolerance
67 * Very efficient
68 * Handles small writes efficiently
69 * Handles multiple I/O requests
70
71 !Disadvantages
72 * Requires at least 3 disks
73
74 http://www.raidarray.eu.com/raid5.html
75 !![RAID] 6: Dual parity disks
76 Striped array with two parity disks. Any two disks can fail simultaniously with the array continuing on. Good for when the data can't EVER stop!
9 PhilMurray 77
78 The only card I've found that implements RAID6 are SATA cards made by [Areca|http://www.areca.com.tw/] (also rebadged as Tekram).
5 MattPurvis 79
80 !![RAID] 7
81 [RAID] 7 isn't a standard, some company trademarked it, and came up with their own proprietary system and called it [RAID] 7.
82
83 !![RAID] 1+0 (or "10")
84 Data is mirrored and striped across multiple disks. (Combination of [RAID] 1 and [RAID] 0.
85
86 !Advantages
87 * Good performance
88 * Highly fault tolerant
89
90 !Disadvantages
91 * Very expensive
92 * Drive spindles must be synchronised for good performance
93 * Not very scalable
94
95 http://www.raidarray.eu.com/raid10.html
96 !![RAID] 0+1
97 Two striped arrays mirrored.
98
99 !Advantages
100 * Simple
101 * Tolerant
102 * Fast
103
104 !Disadvantages
105 * Expensive
106 * Lots of wasted disk space
7 PerryLorier 107 * If two disks on opposing arrays die, you lose the entire array, where 1+0 would require two disks in the same position to die before you lose the array which is far less probable.
5 MattPurvis 108
109 http://www.raidarray.eu.com/raid0+1.html
10 PerryLorier 110
111 Visual explaination of various RAID setups:
112 [http://fun.sdinet.de/pics/raid.jpg]
8 PerryLorier 113 ----
114 One suggested way of calculating the Stripe size for RAID systems that are doing a lot of random I/O (machines that are serving multiple users, eg email, compute servers etc) is to figure out the maximum throughput you can get through your disks (including controllers, PCI bus bandwidth etc). Then plug it into this formula:
115 stripesize = throughput / (drives * RPM/60)
116 then round down the stripesize to the nearest multiple of your filesystem cluster size (usually 4k).
117
118 Suggestions for the improvement of the estimation of optimal stripe size is solicited.
12 GianPerrone 119 ----
120
13 DanielLawson 121 See Also:
15 AlPyat 122 * [RAID Center-RAID Disk Space Calculator, Tools and Comparison Charts|http://www.icc-usa.com/store/pc/viewContent.asp?idpage=7]
13 DanielLawson 123 * [Usable space calculator|http://www.ibeast.com/content/tools/RaidCalc/RaidCalc.asp]
124 * [http://linux.cudeso.be/raid.php]