RAID 0, RAID 1, RAID 5, RAID 10 Explained with Diagrams

by Ramesh Natarajan on August 10, 2010

RAID stands for Redundant Array of Inexpensive (Independent) Disks.

On most situations you will be using one of the following four levels of RAIDs.

  • RAID 0
  • RAID 1
  • RAID 5
  • RAID 10 (also known as RAID 1+0)

This article explains the main difference between these raid levels along with an easy to understand diagram.

In all the diagrams mentioned below:

  • A, B, C, D, E and F – represents blocks
  • p1, p2, and p3 – represents parity

RAID LEVEL 0


Following are the key points to remember for RAID level 0.

  • Minimum 2 disks.
  • Excellent performance ( as blocks are striped ).
  • No redundancy ( no mirror, no parity ).
  • Don’t use this for any critical system.

RAID LEVEL 1

Following are the key points to remember for RAID level 1.

  • Minimum 2 disks.
  • Good performance ( no striping. no parity ).
  • Excellent redundancy ( as blocks are mirrored ).

RAID LEVEL 5


Following are the key points to remember for RAID level 5.

  • Minimum 3 disks.
  • Good performance ( as blocks are striped ).
  • Good redundancy ( distributed parity ).
  • Best cost effective option providing both performance and redundancy. Use this for DB that is heavily read oriented. Write operations will be slow.

RAID LEVEL 10

Following are the key points to remember for RAID level 10.

  • Minimum 4 disks.
  • This is also called as “stripe of mirrors”
  • Excellent redundancy ( as blocks are mirrored )
  • Excellent performance ( as blocks are striped )
  • If you can afford the dollar, this is the BEST option for any mission critical applications (especially databases).

Additional RAID Tutorials:

Share

If you enjoyed this article, you might also like..

  1. 50 Linux Sysadmin Tutorials
  2. 50 Most Frequently Used Linux Commands (With Examples)
  3. Top 25 Best Linux Performance Monitoring and Debugging Tools
  4. Mommy, I found it! – 15 Practical Linux Find Command Examples
  5. Linux 101 Hacks 2nd Edition eBook Linux 101 Hacks Book

Bash 101 Hacks Book Sed and Awk 101 Hacks Book Nagios Core 3 Book Vim 101 Hacks Book

{ 100 comments… read them below or add one }

1 Vaisakh August 10, 2010 at 12:09 am

nice… very handy

2 SuhasMK August 10, 2010 at 2:03 am

Good post. Thank you

3 ChristianS August 10, 2010 at 2:15 am

Your explanation of RAID10 is true for the combined level RAID 0+1. The upper layer mirrors the two striped sets below. But if one drive of each stripe set fails, the data is lost.

The other combined level RAID 1+0 means a striped set across two mirrors. With this redundancy level, a disk may fail in each of the mirrors without losing your data.

4 karthik August 10, 2010 at 2:55 am

Would be still better if a few lines was there about what is parity/ what is striped…

5 anurag rana August 10, 2010 at 5:17 am

can u please elobrate what is parity , strriping ..all the terms used..please.

6 varun August 10, 2010 at 5:38 am

Nice One!! Can you elaborate things to understand what is what..

7 Pushpraj August 10, 2010 at 7:14 am

nice article…as anurag said can you elaborate parity..stripping and other terms which seems little bit confusing….

8 sjs August 10, 2010 at 10:02 am

nice opener for a beginning description, but hardly worth the time to read as several key issues are not addressed, in particular:
+ why use RAID at all
+ why is parity important
+ why is striping important
+ how does you implement any of the RAID levels in any version/variation of linux
+ how do you recover data and/or replace a disc after a crash
The pictures are pretty, and convey some understanding of the concept, but there is a lot of missing info.

9 Logan August 10, 2010 at 11:57 am

Nice article. Simple yet effective.

Would be nice to have a diagram for both RAID 0 + 1 and RAID 1 + 0, and the differences between them.

Excellent, Ramesh. Keep up the good work. I learn new things from your site.

10 mohamad reza August 10, 2010 at 2:41 pm

hi
thanks!
A strip is a data that striped(in the raid option you can choose 64kb or 128kb for strip size) to lower one!!! For ex if u have a 1mb data , raid strip that to 12 strips then store them!!
Parity is a XOR bitween 2 strips
for 01 and 11 data , parity is 01!!!

11 The Hulk August 10, 2010 at 4:27 pm

Thanks for the article. Now can you show us how to configure RAID 10? I have not found a decent tutorial on that yet.

12 kamlesh August 10, 2010 at 6:28 pm

Thanks for the valuable tips and can you describe how to configure RAID-10 briefly.
Thanks in advance .

13 Abhishek August 11, 2010 at 1:21 am

Thanks, but can you please elaborate the parity and strip in non technical terms so it
will be more precious than mugging up.

14 mohamadreza August 11, 2010 at 11:21 am

hello boy’s
first excuse me for my bad english(my language is PERSIAN!!!)

to ABHISHEK:
strips:
if u have a data that is: 1000101110011101(for example!) and our RAID strip size is 8 bits!! the RAID Program , break data to this two datas:
10001011
and
10011101
in this level , if u have a RAID 1 , RAID just store them!! but in other RAIDs the RAID program calculate the PARITY that is XOR of two block of strips
why we need PARITY?
if u lose one disk , and change the damaged disk , after boot , the RAID program or hardware calculate the damaged disk again (with the XOR) and store the data on the new disk!!!!(RAID 5 only must have 3 disk)

by good boys and girls!!!!!

15 Raj Mohan August 12, 2010 at 9:20 pm

Thanks for Sharing

16 Ewoud August 17, 2010 at 12:35 pm

Nice post!

17 Ramesh Natarajan August 17, 2010 at 11:22 pm

@All,

Thanks a lot for your valuable feedback. Mohamad Raza has explained on very high-level in the comment above about striping and parity.

I’ll create a separate article to explain in detail about parity and striping concept.

18 rahul October 18, 2010 at 5:46 am

nice explanation, easy to understand and useful to utilize :)

19 pruthvi October 24, 2010 at 3:14 am

Good One
Dude
Very Easy To Understad
Thank$

20 mythili December 7, 2010 at 6:51 pm

good points 2 remember easily….thank u :-)

21 devati December 19, 2010 at 2:41 pm

Very good article. Thanks a lot. Please explain about parity and level 0+1

22 vivek February 2, 2011 at 1:12 am

Good one,easy to understand

23 Roshan Munavar February 3, 2011 at 1:03 am

SRM

hai cool info from ur site but give some explain abt parity bit
why & what it is
keep updating ur work it’s very helpful for us

Thanking You…

24 mohamadreza February 4, 2011 at 12:32 am

thanks to Ramesh Natarajan

for it’s tutorial , First , ask your mainboard support center for RAID enabled in your mother board or not?

then in your Mainboard User Manual , there is a Step by Step tutorial(If support) For Creating RAID(for Ex X58 intel Chipset , can handle RAID 0 , 1 , 10 , 5)

25 Fernando Martins February 28, 2011 at 3:59 am

I picture is worth a thousand words – no doubt about it.

Nice article, thank you for that.

26 Prashant Bhangare March 3, 2011 at 5:09 am

Thanx……..

27 phesant_sk March 30, 2011 at 2:49 am

Clear, thanks!

28 Netsecurity April 12, 2011 at 4:46 pm

Actually Raid 6+1 is the best as it is set up with striping, distributed parity like Raid 5, and mirrored. Raid 6 allows for 2 HDs to fail at the same time in each mirror and still is recoverable.

From Wikipedia: “According to the Storage Networking Industry Association (SNIA), the definition of RAID 6 is: “Any form of RAID that can continue to execute read and write requests to all of a RAID array’s virtual disks in the presence of any two concurrent disk failures. Several methods, including dual check data computations (parity and Reed-Solomon), orthogonal dual parity check data and diagonal parity, have been used to implement RAID Level 6.”[14]”

Raid 6+1 adds mirroring which is good for extreme reliability.

29 Reddy April 16, 2011 at 6:04 am

Good post. Very Nice ………..

30 Ram April 24, 2011 at 8:00 pm

Very Good Article. It was very helpful for me to understand my server setup though i am more into application areas. One of my disk is failing on Raid 5 and now I know that I need to just replace that disk and not go through the entire install from scratch.

31 Sandeep May 3, 2011 at 11:08 am

Nice Explanation!
Please explain the usage also as in which raid level should be used and when it should be used.

32 prasanna kumar May 26, 2011 at 2:48 am

Nice explanation

33 suresh May 31, 2011 at 1:34 am

hi ramesh,
your data is very helpful for beginners…… thanks a TON for your data……..
keep up the good work.

Regards,
Suresh Kumar

34 Anonymous June 2, 2011 at 5:49 am

what is diff betw raid1and10

35 utkarsh June 8, 2011 at 3:11 am

I have configured RAID10 in my server, but I am not sure wether it is performing as per the definiation or not. How will I cross check weter it is working well or not.

My second question is , if one of the drive in RAID10 array fails, will still the server able to boot and run the operating system

36 anil June 9, 2011 at 2:18 am

great , but need to some clear definition , such as parity , strriping ..all the terms used.thease should be defined here …

37 Anish Kumar June 12, 2011 at 1:47 am

Nice one & thanks

38 utkarsh June 13, 2011 at 12:14 am

Is there any tool which can inform me in advance about the hard disk failuer in RAID 10 array? This tool should be able to send me a mail or sms

39 robinatw June 21, 2011 at 3:36 am

I have configured RAID10 in my server, but I am not sure wether it is performing as per the definiation or not. How will I cross check weter it is working well or not.
———–>whatever in speed and performance ,RAID10 is the better than other raid but raid 0.In fact , every server’s vendor has utility to monior raid level is or not good..

My second question is , if one of the drive in RAID10 array fails, will still the server able to boot and run the operating system
——————->well, guys, you know, if you setup os on raid 1 or raid10 disk.. when part of disk fails, it can’t affect your os run normally…

40 Gerald June 21, 2011 at 2:51 pm

Your description of RAID10 is incorrect. You have described mirrored stripes which is exactly what RAID10 is NOT

The definition of RAID10 means striped mirrors and was brought into use to solve the issue of the confusion between RAID0+1 and RAID1+0 which have both been used to describe Striped Mirrors. See this wiki article.

41 Eric Hazlewood July 15, 2011 at 12:11 pm

I have 4 150 gb western digital velociraptors 10000 rpm hard drives I am using raid 10 under the suggestion of a friend of mine Windows 7 sees this as a 300gb hard drive is this correct
i was under the assumption it would see it as a 600gb hard drive as raid 10 is stripped pluis mirrored.

42 Gerald July 15, 2011 at 3:12 pm

The RAID10 explanation is still incorrect

43 Gerald July 15, 2011 at 3:19 pm

@eric
so two of the disks are mirrored, that gives you 150GB useable and so are the other two disk (another 150GB) then the two mirrors are striped. ie 150GB + 150GB ie 300GB

If you striped the lot, 4*150GB would equal 600GB but where is the redundancy? lose one disk, lose all your data!

44 Gerald July 15, 2011 at 3:28 pm

@robinatw
RAID-0 is only for files and data that you can reconstruct as losing a disk in a RAID-0 array means you have lost all of the data.

RAID10 is the most redundant and the best performing array, but its also the worst utilisation (only 50%).

And yes if one drive fails then the array will still be valid and the system will still boot and run. In fact it can sustain a disk failure in each of the mirrors and still survive.

45 maximus July 21, 2011 at 10:32 pm

Do we have to use exactly the same type/model of hdd in raid5?

Can we use 2 seagate barracuda LP 2TB and 2 seagate barracuda green 2TB to form a raid5?

Kindly advise. Thanks.

46 Ashit Kumar Das July 24, 2011 at 7:09 am

Good concepts sharing …
thanks to all…

47 Umesh Nigam July 25, 2011 at 7:33 am

Nice one it is easy to understand RAID basic funda
Thanks very much

48 sure August 9, 2011 at 2:30 am

easy to understand and many thanks

49 Gerald August 9, 2011 at 1:31 pm

@maximus, yes its likely that your RAID controller will let you do that although its not normally a good idea to mix drives with different attributes.

50 Gerald August 9, 2011 at 1:36 pm

Still worried that Ramesh hasn’t fixed his definition for RAID10 yet

51 rahul August 26, 2011 at 7:48 am

Thank you so much.Gr8 job.

52 touristguy87 August 26, 2011 at 9:21 am

your raid 10 diagram is backwards.
the first number indicates the first stage operation, the 2nd the 2nd-stage operation.
ie raid1 in raid0

so a raid10 is a raid0 array of raid1 arrays, where raid0 is striping and raid1 is mirroring.
Your diagram is obviously wrong, knowing that basic fact.
It should go
aa:bb
cc:dd
etc

what you have is
ab:ab
cd:cd

which is obviously a mirrored pair of striped disks, which would be raid01

Unless, you know, Wiki is just wrong:
http://en.wikipedia.org/wiki/Nested_RAID_levels#RAID_1_.2B_0

but you raise a good point:
on the Internet, you can expect a fair number of people to have it wrong.

53 Anonymous September 13, 2011 at 1:02 am

nice, easy to understand

54 joe fido September 20, 2011 at 1:26 pm

Another good reason for a RAID configuration is speed. Especially in a gaming environment. Having the extra paths for data read and write on two (2) separate discs, speeds things up considerably with HDD’s. Add SDD’s and it’s a whole ‘nother story!

55 Gerald September 21, 2011 at 11:43 am

@joe fido, You are obviously only talking about RAID-1 (aka mirroring)
NB not all RAID controllers read from both disks – they read and write from one primary disk and just copy on write to the other – the second disk only gets used if the primary fails.

56 Trevor September 28, 2011 at 1:46 pm

I like the explanation of the raids and the diagrams. Makes it easier to understand.

However Raid 10 can be done one of two ways. 0+1 which is what you have shown in your diagram, and 1+0 which is two sets of mirrors, striped.

57 Gerald September 28, 2011 at 2:25 pm

@Trevor, well no, RAID10 only has one defintion, it is striped mirrors. (ie mirrors that are striped)

The term RAID10 has been created to remove the confusion between RAID 0+1 and RAID 1+0 both of which have ambiguosly been used to describe striped mirrors.

58 David October 2, 2011 at 7:48 am

Thanks,
Simple and effective

59 Larry October 3, 2011 at 11:19 am

This is a great graphic, thanks.

But if it’s correct then RAID 10 is basically RAID 0 mirrored, or RAID 1. Stripe and Mirror is basically mirror, from a DR or redundancy perspective. There’s no parity. You can lose drives 1 and 2, 1 & 4, or 2 & 3, but if you lose both 1 & 3 or 2 & 4 you’re restoring from backups because the excrement is in the HVAC.

60 Gerald October 3, 2011 at 3:04 pm

But its not correct!

RAID10 is defined as mirror sets (RAID-1) that are striped (RAID-0) i.e. you create mirror sets for redundancy then you stripe for capacity and performance.

If you lose 1 disk in RAID10 your data is still safe (but at risk).
If you lose 1 disk in a mirrored stripe config you have lost all of your data

61 Ramesh Natarajan October 4, 2011 at 10:19 pm

@Gerald,

Thanks for pointing out the issue with RAID 10. It is fixed now.

62 shree October 10, 2011 at 10:20 am

good……

63 Govind October 12, 2011 at 7:09 am

Very useful thanks for good material

64 Venkat October 18, 2011 at 9:10 am

It this useful for easy understanding about RAID

65 pandia rajan October 20, 2011 at 12:53 am

Hai this one is good to clear about RAID

Thank you

66 1wd November 10, 2011 at 12:10 am

Is there RAID 15(1+5) ?

67 Muujig November 10, 2011 at 1:20 pm

Can RAID read from 6 different HDDs or SSDs? If it can, what RAID will it be? RAID 1*6?

68 Gerald November 10, 2011 at 2:40 pm

@1wd its not a usual configuration, but some controllers implement RAID50 (Striped RAID-5 sets)

@Muujig Most RAID controllers will generally allow large numbers of disks to be configured in RAID-0, RAID-1, RAID-5 and RAID-6 sets although its is generally accepted that more than 10 disks in RAID-5/RAID-6 RAIDsets are not a good idea due to the overhead involved if a disks fails (ie having to read from all the other disks in the RAIDset to do the XOR)
6 disks could be in:
- RAID-0 – Straight stripe, no redundancy. [Capacity 6*Disks]
- RAID-5 – 1) 5 Data, 1 Parity. [Capacity 5*Disks]
or
2) 4 Data, 1 Parity + Hot Spare [Capacity 4* Disks] (RAID-6 probably a better option)
- RAID-6 – 4 Data, 2 Parity [Capacity 4*Disks]
- RAID10 – a Stripe (RAID-0) of 3*Mirrors (RAID-1) Capacity [3*Disks]
+ plus sundry other esoteric RAID configurations.

For modern high capacity disks, RAID-6 or RAID10 are recommended.

69 Kjell Roar Bjørnsen November 15, 2011 at 3:34 pm

I have a PC with ASUS P5Q PRO motherboard and use Win7 64 and two HDD each of 1,5TB set up in a RAID1 (mirroring). Do you know if it’s possible to move to a RAID 10, without reinstalling the PC, of course after installing two extra HDD of 1,5TB

70 Gerald November 16, 2011 at 1:00 am

@Kjell – whatever you decide to do make sure you do a full BACKUP first!

71 Rakesh Sharma November 16, 2011 at 8:21 am

Very gud presentation and explain for Biggner

72 Anonymous November 24, 2011 at 12:45 am

Very useful thanks

73 saudan singh November 30, 2011 at 2:31 am

Good concept mirroring and data sharing.But clear define the striping.and define the
very good diagram.

74 Glen d'souza December 12, 2011 at 12:38 am

so is anybody are having the idea about snap mirror and snapshot technology.if so pls share it.

75 Glen December 18, 2011 at 4:27 am

which tool we can use for snapshot technology
pls suggest me

76 Gerald December 19, 2011 at 12:58 am
77 Glen December 22, 2011 at 9:01 am

thanx Gerald,
i have a another question for you….
how to check the PC is enabled with the VT technology….

78 Ramesh Natarajan December 22, 2011 at 4:20 pm

@Glen,

If you are using DELL machine, you can view/enable VT option from the BIOS.

79 Waqar Maqsood January 6, 2012 at 12:38 am

Very Informative and Interestingly Understandable

80 Glen January 15, 2012 at 10:28 am

thankx @Ramesh

81 Ritchie January 24, 2012 at 2:19 pm

Really nice information pal. I think you concentrated only with the main RAID types. But its good. Its much better than telling everything and make the article to look dry.

Good Job. Keep up this good work

82 NAVITA kaushal February 13, 2012 at 11:21 am

plz explian what is parity and striped

83 Gerald February 13, 2012 at 1:48 pm
84 Anonymous February 19, 2012 at 9:50 pm

i want more explanation on raids especially raid 10 and raid o1

in both of these raid levels concept is same i.e
striping performance of raid 0 and full redundancy concept raid 1
so why raid 10 giving more performance than raid 01

85 Gerald February 20, 2012 at 1:10 am

There isnt a RAID-01 defintion. There is a RAID-1.

We used to use RAID-0+1 and RAID-1+0 but as these terms are ambiguous because different manufacturers used both of them to mean striped-mirrors we have started to use RAID10 which has a standard definition of striped-mirrors, to remove this ambiguity.

Why does RAID10 perform better than RAID-1?
1) It gives better capacity
2) IT gives the IOPS benefit of a stripe (RAID-1 only the IOPS of 1 spindle say approx 80-150 depending on the disk technology)

86 Ady March 5, 2012 at 7:16 pm

You say ; “RAID stands for Redundant Array of Inexpensive Disks”
You are wrong. This is an old and out-of-date definition.
Since the floods at the HardDisk manufacturers, it now stands for
Reallyexpensive Array of Incrediblyexpensive Disks ( ! )
Thanks for this article Ramesh !
Ady

87 vj March 8, 2012 at 2:02 am

Nice document which expains to the point and is used these concepts in the real sceanario, it also help us to explain to the customer the advantages of one raid level to another. Thank you for uploading the nice document.

88 girish kodumthara March 15, 2012 at 11:54 pm

very nice explanation…………

89 vipin jagwan March 16, 2012 at 11:55 am

thank you

90 Vasudev March 25, 2012 at 6:49 am

Thank u very much for short and simple explanation.

91 Thomas Vanhoutte April 4, 2012 at 2:43 am

Thank you for this great explaination – especially the pictures helped me a lot to understand the difference between RAID 0, 1, 5 and 10.

92 hari April 7, 2012 at 10:23 pm

i learn about raid levels very well with ur diagrammatic representation but some matter missing about stripping,mirroring

93 Gerald April 9, 2012 at 2:25 pm

@hari, you are joking right? The A, B, C etc don’t give you a clue? and the fact that on RAID-1 it has A on both sides? and it says mirrored in the diagram description!

94 Matt April 12, 2012 at 11:53 am

I really appreciate this site. Really simplifies the differences to help them be more digestible and make sense. Thank you for putting it together.

95 Billfeld April 16, 2012 at 7:45 am

Thanks a lot for this quick overview! :-)

96 prateek April 16, 2012 at 1:13 pm

good post . .
but try to elaborate it more . .

97 raja April 17, 2012 at 6:09 am

I really appreciate this site. Really simplifies the differences to help them be more digestible and make sense. Thank you for putting it together.

98 ranipriya May 3, 2012 at 12:31 am

good

99 Chuckles May 7, 2012 at 9:31 am

I know this may be a simple question however, can I set up the raid level 1 across IDE and SATA ? Just wanting to migrate to SATA and provide some redundancy to this server.
Thanks fore your time.

100 Rupesh May 16, 2012 at 6:21 am

In computers that use multiple hard disk systems, disk striping is the process of dividing a body of data into blocks and spreading the data blocks across several partitions on several hard disks. Each stripe is the size of the smallest partition. For example, if three partitions are selected with one partition equaling 150megabytes, another 100MB, and the third 50MB, each stripe will be 50 MB in size. It is wise to create the partitions equal in size to prevent wasting disk space. Each stripe created is part of the stripe set. Disk striping is used with redundant array of independent disks (RAID). RAID is a storage system that uses multiple disks to store and distribute data. Up to 32 hard disks can be used with disk striping.

There are two types of disk striping: single user and multi-user. Single user disk striping allows multiple hard disks to simultaneously service multiple I/O requests from a single workstation. Multi-user disk striping allows multiple I/O requests from several workstations to be sent to multiple hard disks. This means that while one hard disk is servicing a request from a workstation, another hard disk is handling a separate request from a different workstation.

Disk striping is used with or without parity. When disk striping is used with parity, an additional stripe that contains the parity information is stored on its own partition and hard disk. If a hard disk fails, a fault tolerance driver makes the lost partition invisible allowing reading and writing operations to continue which provides time to create a new stripe set. Once a hard disk fails, the stripe set is no longer fault tolerant, which means that if one or more hard disks fail after the first one, the stripe set is lost. Disk striping without parity provides no fault tolerance. The disk striping process is used in conjunction with software that lets the user know when a disk has failed. This software also allows the user to define the size of the stripes, the color assigned to the stripe set for recognition and diagnosing, and whether parity was used or not.

Leave a Comment

Previous post:

Next post: