Why is RAID 1 not faster

smn198

Member
Sep 27, 2000
126
0
0
Could someone please explain why RAID 1 is not faster when reading data than a single drive?

The same data should be present on both disks, so why are requests for data not shared between the drives assuming multiple requests are being made?

Would there be anything a controller could do to share single requests for large files across disks?

I would assume that the potential is there that under certain circumstances, reads could be on a par with RAID 0.
 

SilthDraeth

Platinum Member
Oct 28, 2003
2,635
0
71
I do not have an in depth knowledge of RAID but looking at it logically, on how it is explained to me, and description of raid.

Raid 1 = Mirroring.
Raid 0 = Striping.

So logically, if you have a raid 1 array, your cpu writes to both simultaneously, and reads from both at the same time.

So lets say you have a folder with 10 pictures in it for simplicity sake.
You open the folder, and it pulls picture one from disk 1, and then it looks at disk 2, and grabs picture 1.
Now if it was a raid 0 array, then picture 1 would be on 1 disk, and picture 2 on the other disk.

Or half a file on one disk, and half on another, so it reads half from each at the same time improving performance.

http://www.acnc.com/04_01_00.html Raid 0
http://www.acnc.com/04_01_01.html Raid 1
http://www.acnc.com/04_01_0_1.html Raid 0+1 This is sort of what you are talking about, it combines both types, but takes a mininum of 4 hard drives.
 

smn198

Member
Sep 27, 2000
126
0
0
But why, if the same data is stored on 2 drives, why can it not get half from each drive?
 

Matthias99

Diamond Member
Oct 7, 2003
8,808
0
0
Originally posted by: smn198
But why, if the same data is stored on 2 drives, why can it not get half from each drive?

It can. Sometimes. Actually, RAID1 is faster -- of course, it depends on what you mean by "faster".

A RAID1 array of N disks allows you to always run up to N parallel reads -- if you find RAID tests of something that does a lot of small, random parallel reads (for instance, a webserver), you'll find that RAID1 blows everything else out of the water. Its write performance, however, is terrible (as it doesn't scale up at all with the number of disks).

It also doesn't help a whole lot with STR (Sustained Transfer Rate). For a fairly small read (less than N stripes for an N-disk array), you can sort of 'pseudo-stripe' the read by having each disk read one of the N stripes you need. But beyond that, the disks need to reseek all the time to find the next stripe you haven't read yet, and that takes enough time to basically kill the benefit you get from doing the reads in parallel. Drives are MUCH faster when doing long linear reads than they are doing "Read 4K, seek, Read 4K, seek, Read 4K, seek, ...". With a striped RAID level (such as RAID0, RAID1+0, or RAID5), when you do one big read, each drive just reads linearly, so you get maximum STR. See crappy diagram below:

RAID1:
DISK1.....A.....B.....C.....D.....E.....F.....
DISK2.....A.....B.....C.....D.....E.....F.....
DISK3.....A.....B.....C.....D.....E.....F.....
DISK4.....A.....B.....C.....D.....E.....F.....

RAID0:
DISK1.....A.....E.....I.....
DISK2.....B.....F.....J.....
DISK3.....C.....G.....K.....
DISK4.....D.....H.....L.....

If you want to read blocks A-D, you can see that the RAID1 and RAID0 can both split the read up into four parallel operations. But if you wanted to read blocks A-L, you would get the following usage patterns:

RAID1:
DISK1: Seek to A, Read A, seek to E, read E, seek to I, read I
DISK2: Seek to B, Read B, seek to F, read F, seek to J, read J
DISK3: Seek to C, Read C, seek to G, read G, seek to K, read K
DISK4: Seek to D, Read D, seek to H, read H, seek to L, read L

RAID0:
DISK1: Seek to A, Read A, Read E, Read I
DISK2: Seek to B, Read B, Read F, Read J
DISK3: Seek to C, Read C, Read G, Read K
DISK4: Seek to D, Read D, Read H, Read L

The RAID0 doesn't have to seek when doing linear reads. That's why it's faster doing those, but slower at small random reads (since the RAID1 can do them all in parallel, whereas the RAID0 can only do them in parallel if they do not need to access the same disks).
 

smn198

Member
Sep 27, 2000
126
0
0
Thanks Matthias. Sorted that one out for me. Can all RAID controllers access all disks on a RAID 1 array (including ones commonly built in to motherboard and my old Promise FastTrack 66)?

I've got a RAID 0 at the moment but may make it RAID 1 as the disks are quite old now.
 

Matthias99

Diamond Member
Oct 7, 2003
8,808
0
0
Originally posted by: smn198
Thanks Matthias. Sorted that one out for me. Can all RAID controllers access all disks on a RAID 1 array (including ones commonly built in to motherboard and my old Promise FastTrack 66)?

I've got a RAID 0 at the moment but may make it RAID 1 as the disks are quite old now.

It really depends on the exact controller. Almost all RAID1 controllers (even fairly cheap software ones these days) can do parallel reads (although note that few desktop applications will take advantage of this, unless you are running multiple disk-heavy apps at once). I would suggest consulting your controller's documentation -- or the manufacturer -- if you need more information.
 

boborich

Member
Feb 16, 2005
154
0
0
Originally posted by: Matthias99
Originally posted by: smn198
But why, if the same data is stored on 2 drives, why can it not get half from each drive?

It can. Sometimes. Actually, RAID1 is faster -- of course, it depends on what you mean by "faster".

A RAID1 array of N disks allows you to always run up to N parallel reads -- if you find RAID tests of something that does a lot of small, random parallel reads (for instance, a webserver), you'll find that RAID1 blows everything else out of the water. Its write performance, however, is terrible (as it doesn't scale up at all with the number of disks).

It also doesn't help a whole lot with STR (Sustained Transfer Rate). For a fairly small read (less than N stripes for an N-disk array), you can sort of 'pseudo-stripe' the read by having each disk read one of the N stripes you need. But beyond that, the disks need to reseek all the time to find the next stripe you haven't read yet, and that takes enough time to basically kill the benefit you get from doing the reads in parallel. Drives are MUCH faster when doing long linear reads than they are doing "Read 4K, seek, Read 4K, seek, Read 4K, seek, ...". With a striped RAID level (such as RAID0, RAID1+0, or RAID5), when you do one big read, each drive just reads linearly, so you get maximum STR. See crappy diagram below:

RAID1:
DISK1.....A.....B.....C.....D.....E.....F.....
DISK2.....A.....B.....C.....D.....E.....F.....
DISK3.....A.....B.....C.....D.....E.....F.....
DISK4.....A.....B.....C.....D.....E.....F.....

RAID0:
DISK1.....A.....E.....I.....
DISK2.....B.....F.....J.....
DISK3.....C.....G.....K.....
DISK4.....D.....H.....L.....

If you want to read blocks A-D, you can see that the RAID1 and RAID0 can both split the read up into four parallel operations. But if you wanted to read blocks A-L, you would get the following usage patterns:

RAID1:
DISK1: Seek to A, Read A, seek to E, read E, seek to I, read I
DISK2: Seek to B, Read B, seek to F, read F, seek to J, read J
DISK3: Seek to C, Read C, seek to G, read G, seek to K, read K
DISK4: Seek to D, Read D, seek to H, read H, seek to L, read L

RAID0:
DISK1: Seek to A, Read A, Read E, Read I
DISK2: Seek to B, Read B, Read F, Read J
DISK3: Seek to C, Read C, Read G, Read K
DISK4: Seek to D, Read D, Read H, Read L

The RAID0 doesn't have to seek when doing linear reads. That's why it's faster doing those, but slower at small random reads (since the RAID1 can do them all in parallel, whereas the RAID0 can only do them in parallel if they do not need to access the same disks).



Thanks! Actually I learned a lot from your post.:sun:
 

Sunner

Elite Member
Oct 9, 1999
11,641
0
76
Originally posted by: Matthias99
Originally posted by: smn198
Thanks Matthias. Sorted that one out for me. Can all RAID controllers access all disks on a RAID 1 array (including ones commonly built in to motherboard and my old Promise FastTrack 66)?

I've got a RAID 0 at the moment but may make it RAID 1 as the disks are quite old now.

It really depends on the exact controller. Almost all RAID1 controllers (even fairly cheap software ones these days) can do parallel reads (although note that few desktop applications will take advantage of this, unless you are running multiple disk-heavy apps at once). I would suggest consulting your controller's documentation -- or the manufacturer -- if you need more information.

Apparently relatively few consumer grade controllers can do this.
I got a little burned over this subject in a previous thread where I made the blanket statement that "Yeah, RAID-1 will improve read performance", and it turns out that most consumer grade controllers actually couldn't do parallel reads.

Me, I've never used any "non-server" controller, I just assumed that such a relatively rudimentary function would be included even in the cheapo controllers that are included on $150 mobos.

Who was it that "invented" RAID-1.5, which turned out to be nothing but RAID-1 with parallel reads? Highpoint?
 

Matthias99

Diamond Member
Oct 7, 2003
8,808
0
0
Originally posted by: Sunner
Originally posted by: Matthias99
Originally posted by: smn198
Thanks Matthias. Sorted that one out for me. Can all RAID controllers access all disks on a RAID 1 array (including ones commonly built in to motherboard and my old Promise FastTrack 66)?

I've got a RAID 0 at the moment but may make it RAID 1 as the disks are quite old now.

It really depends on the exact controller. Almost all RAID1 controllers (even fairly cheap software ones these days) can do parallel reads (although note that few desktop applications will take advantage of this, unless you are running multiple disk-heavy apps at once). I would suggest consulting your controller's documentation -- or the manufacturer -- if you need more information.

Apparently relatively few consumer grade controllers can do this.
I got a little burned over this subject in a previous thread where I made the blanket statement that "Yeah, RAID-1 will improve read performance", and it turns out that most consumer grade controllers actually couldn't do parallel reads.

Me, I've never used any "non-server" controller, I just assumed that such a relatively rudimentary function would be included even in the cheapo controllers that are included on $150 mobos.

I know that a few years back this was an issue, but I thought that even the cheap-ass Silicon Image controllers used on most motherboards these days could do this. Certainly this is something to look into if you're planning on using a MB with onboard RAID for a low-end server... parallel reads are not *required* for RAID1 support, so I guess YMMV.

Who was it that "invented" RAID-1.5, which turned out to be nothing but RAID-1 with parallel reads? Highpoint?

Either them or 3Ware.
 

Sunner

Elite Member
Oct 9, 1999
11,641
0
76
Originally posted by: thunderroller
raid shouldn't be fast

While "Redundant" may be the first part of the acronym, speed is another point of it, or you'd have little reason to ever use RAID-10 for example.
 

Sunner

Elite Member
Oct 9, 1999
11,641
0
76
Originally posted by: Matthias99
I know that a few years back this was an issue, but I thought that even the cheap-ass Silicon Image controllers used on most motherboards these days could do this. Certainly this is something to look into if you're planning on using a MB with onboard RAID for a low-end server... parallel reads are not *required* for RAID1 support, so I guess YMMV.

Maybe it's less of an issue today, though this wasn't too long ago.
Oh well, I don't see myself using any form of RAID on my computer anytime soon, and I know our servers can do it, so I don't really care

Originally posted by: Matthias99
Either them or 3Ware.

I'd hope 3Ware's stuff would do it since they're marketed as relatively high end controllers.
 

helo7050

Banned
Mar 16, 2005
275
0
0
Originally posted by: smn198
Could someone please explain why RAID 1 is not faster when reading data than a single drive?

The same data should be present on both disks, so why are requests for data not shared between the drives assuming multiple requests are being made?

Would there be anything a controller could do to share single requests for large files across disks?

I would assume that the potential is there that under certain circumstances, reads could be on a par with RAID 0.

Raid 1 is for mirroring ONLY. . it just makes a duplicate of the data incase of a hardware failure of 1 drive.

RAID 0 on the other hand allows for stripping of the data for increased read-write proformance.

 

Matthias99

Diamond Member
Oct 7, 2003
8,808
0
0
Originally posted by: helo7050
Originally posted by: smn198
Could someone please explain why RAID 1 is not faster when reading data than a single drive?

The same data should be present on both disks, so why are requests for data not shared between the drives assuming multiple requests are being made?

Would there be anything a controller could do to share single requests for large files across disks?

I would assume that the potential is there that under certain circumstances, reads could be on a par with RAID 0.

Raid 1 is for mirroring ONLY. . it just makes a duplicate of the data incase of a hardware failure of 1 drive.

RAID 0 on the other hand allows for stripping of the data for increased read-write proformance.

Please read threads before responding... RAID1, in a proper implementation, can offer significant speed increases when doing multiple reads in parallel.
 

TerryMathews

Lifer
Oct 9, 1999
11,464
2
0
I think that the differentiation on whether or not a controller can do parallel reads in RAID 1 is whether it's RAID 5 capable (processor and RAM - otherwise known as a full hardware controller).

Not that a cheaper controller is physically incapable of this task, just that companies don't feel the need to invest the effort into a bargain basement product. I know for certain the Promise SuperTrak SX4000 and 6000 can do it, but I do not think the FastTrak TX4000 can.
 

Velk

Senior member
Jul 29, 2004
734
0
0
Originally posted by: Matthias99
Originally posted by: smn198
But why, if the same data is stored on 2 drives, why can it not get half from each drive?

It can. Sometimes. Actually, RAID1 is faster -- of course, it depends on what you mean by "faster".

A RAID1 array of N disks allows you to always run up to N parallel reads -- if you find RAID tests of something that does a lot of small, random parallel reads (for instance, a webserver), you'll find that RAID1 blows everything else out of the water. Its write performance, however, is terrible (as it doesn't scale up at all with the number of disks).

Wouldn't it really depend on size ? If it's a really small website, it's going to be cached in memory anyway and the storage will be irrelevant. If it's a really large website, then the chance of any given set of parallel reads being on the same disk regardless of method begin to get pretty small.

For website sizes that fit the size of the drives, use all of the content consistently, and the number of simultaneous requests is less than or equal to the number of drives and the average file is smaller than the stripe size, it's got a good advantage, but those are pretty specific circumstances.

Even then if we have say 5 drives, and get 5 requests at once, then you'd expect with raid-1 to get 5 of them running at once, whereas with raid-5 you are expected to get 1 + 0.8 + 0.8^2 + 0.8 ^3 + 0.8 ^4 or 3.36 requests at once - so in absolute best case it's a 50% improvement on average.


 

Tab

Lifer
Sep 15, 2002
12,145
0
76
Why have raptors in a RAID configuration been commonly downplayed?

What are the distinct differences between RAID 10 and 0+1. Aren't they basically the same?

 

Sunner

Elite Member
Oct 9, 1999
11,641
0
76
Originally posted by: Tabb
Why have raptors in a RAID configuration been commonly downplayed?

What are the distinct differences between RAID 10 and 0+1. Aren't they basically the same?

Because most people who want/use Raptors in RAID configs are "enthusiasts" who use RAID-0 configs with the belief that it will vastly speed up xzy task, while in reality it's useful for stuff they'd never do, but nearly useless for the stuff they actually do.

And RAID-10/0+1/1+0 is pretty much the same, but there are two similar but yet different configs.
You either setup striped mirrors, or mirrored stripes.

Say you have eight disks.
In a config with striped mirrors, you'd have 4 mirrors with two disks each.
You can lose one disk in every mirror and still have a functional array.

If you have mirrored stripes on the other hand, you'd have a 2x4 config, and losing just one disk in every stripe would cause the entire array to fail, since just one disk anywhere will cause that stripe to fail.

Of course, the worst case scenario for both is the same, two disks are gone, and the array is gone, but statistically speaking, the striped mirrors will have a higher chance of survival.
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |