Does RAID 1 actually increase read speed?

Status
Not open for further replies.

ponchato

Distinguished
Apr 19, 2009
91
0
18,630
I've seen sites that say it does, some say it doesn't. Let's say I'm using Windows 7 and I have a RAID 1 array. Will there be any performance difference between that setup and one drive?
 

wuzy

Distinguished
Jun 1, 2009
900
0
19,010
Zilch. RAID1 is mirroring not stripping like RAID0 is.
Read the RAID sticky at the top of this forum for detailed info.

If you are considering going with RAID0 instead, besides the increases probability of data loss, the actual speed increase you're going to experience with desktop usage patterns is going to be minimal for HDDs (with SSDs it's a little different). Any speed increase you experience is most likely placebo effect.
 

sub mesa

Distinguished
RAID1 can be just as fast as RAID0 as for reading, because it could read in the very same way as RAID0's do. Better yet, since all disks contain all data, there is no requirement anymore to read from a specific disk; as both disks contain the same data striping can be done more efficiently.

So, RAID1 should be faster than RAID0 for random read, and at least the same as for sequential read. Unfortunately, only UNIX RAID drivers like geom_mirror implement things like load balancing and round robin algoritms on the RAID1 layer.

Even Areca hardware RAID doesn't profit alot from RAID1. And all onboard-RAID do not employ any optimizations for RAID1, causing it to slowdown to the speed of a single disk. Perhaps Intel ICHxR drivers will be a little better, but i doubt they can profit from RAID1 potential as the GEOM storage layer does in the FreeBSD operating system.

So short answer: no, Windows does not offer any advanced storage technology, like Linux/BSD do.
 

blackened144

Distinguished
Aug 17, 2006
1,051
0
19,280
I had 6 drives at one point, in 3 riad0 arrays.. My system felt a lot slower installed to the raid partition, so I took one drive out and ran my OS on a single 400gb drive. Every time I opened My Computer it would take a second to spin the drives upa nd make each array available.. Its fine for my storage arrays, but annoying when it slows down the OS. It flys when copying large files from array to array though. After 3 builds that drive finally died and now Im back to running raid, but now using 2x30gb Vertex SSD drives..

EDIT: I forgot to actually post my reply to your original question. Yes in certain situations raid1 can read as fast as raid0. And raid1 will give you the redundancy you may be looking for but I wouldnt bet on any performance increases by having your OS on a raid array.
 

sub mesa

Distinguished
Not "as fast"; faster.

RAID1 offers more potential for reading efficiently than RAID0 does. With RAID0 it only works if the read requests are spread evenly on all drives - RAID1 doesn't have this issue, since all disks contain all information, they can be used fully parallel for read requests.

It could even be faster for writing, though only temporary. Ive seen no implementation that tries to use this potential.
 

jrch2k8

Distinguished
Jun 19, 2009
1
0
18,510
in latest linux dm soft raid i noticed like a 5 or 6% improvements in raid1 write but need more work like maybe improve write cache, example instead of write at 4 disks at once you write at any random disk and to a cache queue so other disk get the data commited on batch some ns later to keep the data integrity.

about read yes in linux is sick the read speed in raid1 in random reads like the OS boot or copying a super big chunk of little files like a kernel source, in secuential read like in big files like a dvd iso is the same with only 1 hdd (there is when raid0 rocks cuz raid0 read simoultaneously chunks from all hdd in the array)

note: never raid with a mobo included chip, windows handle very bad raids if you really need i/o speed get a unix flavor OS like linux or bsd
 

sub mesa

Distinguished
In linux you do not have any "load-balancing" algoritms for the mirror layer, in BSD you can choose between:

-b balance Specifies balance algorithm to use, one of:

load Read from the component with the
lowest load.

prefer Read from the component with the
biggest priority.

round-robin Use round-robin algorithm when
choosing component to read.

split Split read requests, which are big-
ger than or equal to slice size on N
pieces, where N is the number of
active components. This is the
default balance algorithm.
In my testing, split was the worst performance setting; "load" (balancing) and "round-robin" schemes were the fastest. You do not need proper alignment for RAID1 arrays, although some implementations may use stripe boundaries so in fact can be affected by alignment issues.
 

sub mesa

Distinguished
Really? Tell me why RAID1 would be any less fast than RAID0, either sequential read or random read, by a proper driver?

Don't you see that since both disks carry the same data, you can read from the disks exactly the same way as RAID0's do. Even better, you do not have the problem of read requests not spread evenly on the disks, like is the case with RAID0. RAID1 disks could be put in a true "load balancing" algorithm. You could even mix slow and fast disks and it wouldn't matter.

Even for writing the RAID1 could be faster than a single disk, though not faster than RAID0. In order to do this, it needs to write an I/O just to once disk instead of to all the disks, when there is no more activity the disks are finally synced again, duplicating all data. By not doing that right away, you can get nice burst write speeds because you can write to multiple disks at once like RAID0 does. Ofcourse, this is a complex design and no one ever attempted something like this. It also requires intelligent meta-data updates, to recover in case of a crash.
 

wuzy

Distinguished
Jun 1, 2009
900
0
19,010
Thanks again for the info sub mesa. :) I didn't realise RAID1 can have such performance benefits because most RAID implantation as you said don't utlise it which was why I didn't notice it before.
 

jrst

Distinguished
May 8, 2009
83
0
18,630
sub mesa -- Agree; good synopsis.

However, I'd add that not only is it possible, but it's being done. Good controllers can, and do, deliver equal or better performance using RAID-1 vs. RAID-0 for most workloads; the exceptions are workloads which are write-heavy, and in particular those that do streaming writes.

E.g., For streaming read performance, the difference (according to Areca) RAID-0 vs. RAID-1: Areca 1680 -6%, Adaptec 5805 -26%, and LSI-8888ELP +9%. (Yes, the LSI is actually faster doing streaming reads RAID-1 than RAID-0--it can also deliver RAID-1 streaming write performance ~70% of RAID-0; the others are 30-50%).

That said, those are artificial benchmarks and configurations (but no worse than what most of the RAID-0 fanclub throws around :), which are unlikely ever to be found in the real world environments and workloads, especially where such controllers are used. In the real world RAID-1 is as good or better than RAID-0. See, e.g.,

http://www.storagereview.com/articles/200406/20040625TCQ_1.html?page=0%2C0
http://techreport.com/articles.x/9124/1
http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-series.html
http://www.areca.com.tw/indeximg/pdf/arc1680_v.s_adaptec5805_v.s_lsi_8888e_comparison.pdf
 
G

Guest

Guest
A long long time ago before mdadm (I think in the mkraid days), RAID1 used to stripe reads to double your throughput performance. Nowadays, I think they changed that behavior so that the only performance benefit you get from reading a RAID1 array is reduced latency by doing seeks from the drive head that is closer to the desired sector.

In order to nearly double your read performance, you will need to rebuild the array using RAID10 with the profile "far=2", which can stripe and mirror across as few as 2 disks (you don't actually need 4+). Basically it will stripe data across the first half of your drives, and mirror the striped data to the second half of your drives.

The default profile for RAID10 is "near=2", which behaves similar to RAID1 and doesn't stripe reads... I'm realizing I need to rebuild all of my RAID1 and RAID10 arrays to take advantage of the "far" profile :p
 

sub mesa

Distinguished
Switch to FreeBSD for your storage and try the geom_mirror driver, can do dynamic updates of read strategies: load balancing, split I/O, priority, round-robin.

You'll also get the latest ZFS for free, assuming FreeBSD 8.0 releases soon.
 
G

Guest

Guest
Some really nice links. Particularly liked the comprehensive tests in the Tech Report link but the review was done in 2005. I'm wondering if the hardware RAID support in modern southbridges is any better. Does anyone know?


 

colgateJR

Distinguished
May 10, 2011
1
0
18,510
I was very curious about the performance of my Windows 7 software raid (RAID1, 2 mirrored drives) vs the individual drives, so I went to Google to find some real-world benchmarks. The top results kept leading me to the same sites (here and some others), but no one had any actual numbers. So, I decided to do a quick test myself.

I just used the Sisoftware Sandra benchmark tool, which comes with a file system benchmark option. First I benchmarked the raid, then I broke the raid and benchmarked each of the individual drives. In short, the read performance of the raid was 1.5-2x higher, and the write performance was about 1.5x lower (sequential read got the biggest boost and sequential writes had the smallest loss).

So it looks like Windows does take some advantage of the raid configuration when reading. Figured I'd share my results:


DISK1 INDIVIDUAL
Detailed Benchmark Results
Buffered Read : 215MB/s
Sequential Read : 75.24MB/s
Random Read : 44.27MB/s
Buffered Write : 147.22MB/s
Sequential Write : 74.9MB/s
Random Write : 41MB/s
Random Access Time : 9.3ms

Performance Test Status
Result ID : WDC WD1001FALS-00J7B1 (1TB, SATA300, 3.5", 7200rpm, 32MB Cache)
Computer : System Manufacter System Product Name (Abit IP35-E (Intel P35
Platform Compliance : x64
System Timer : 3MHz
Operating System Disk Cache Used : No
Use Overlapped I/O : Yes
I/O Queue Depth : 8 request(s)
Test File Size : 6GB
File Fragments : 54
Block Size : 1MB


DISK2 INDIVIDUAL
Detailed Benchmark Results
Buffered Read : 215MB/s
Sequential Read : 75.45MB/s
Random Read : 43.44MB/s
Buffered Write : 149.4MB/s
Sequential Write : 75.1MB/s
Random Write : 45.74MB/s
Random Access Time : 9.77ms

Performance Test Status
Result ID : WDC WD1001FALS-00J7B1 (1TB, SATA300, 3.5", 7200rpm, 32MB Cache)
Computer : System Manufacter System Product Name (Abit IP35-E (Intel P35
Platform Compliance : x64
System Timer : 3MHz
Operating System Disk Cache Used : No
Use Overlapped I/O : Yes
I/O Queue Depth : 8 request(s)
Test File Size : 6GB
File Fragments : 54
Block Size : 1MB


WINDOWS 7 SOFTWARE MIRRORED RAID
Detailed Benchmark Results
Buffered Read : 310.9MB/s
Sequential Read : 142.66MB/s
Random Read : 72.4MB/s
Buffered Write : 93.7MB/s
Sequential Write : 71.54MB/s
Random Write : 34.28MB/s
Random Access Time : 6.8ms

Performance Test Status
Result ID : 2x WDC WD1001FALS-00J7B1 (1TB, RAID/SATA300, 3.5", 7200rpm, 32MB Cache)
Computer : System Manufacter System Product Name (Abit IP35-E (Intel P35
Platform Compliance : x64
System Timer : 3MHz
Operating System Disk Cache Used : No
Use Overlapped I/O : Yes
I/O Queue Depth : 8 request(s)
Test File Size : 6GB
File Fragments : 54
Block Size : 1MB
 
Status
Not open for further replies.