A Digital Age Deserves A Digital Leader

RAID 5 to RAID 10

RAID 5 to RAID 10

Postby mnemonicj » Tue Jan 19, 2010 2:07 pm

After having a few bad experiences with my RAID 5 running on my Intel Server Board, I decided to go with a RAID 10 for now. I really like RAID 5 when it is done correctly. I had been spoiled with a great RAID 5 that I had on my old server. I used a Promise 4-port IDE RAID card with a 256MB RIMM for cache that worked as a true hardware RAID. Up until recently, I was using my new Intel Server Board's onboard RAID setup (software RAID) for my RAID 5 and I wasn't pleased. The write rates seemed really slow.

In a specific instance, I was transferring two large ISO files (2GB+) from my main PC to my server's RAID 5 over gigabit ethernet. The first ISO transferred quickly, as I expected, but the second file transfer almost seemed to freeze. I switched my KVM switch over to my server and watched my server's memory usage levels running at peak at 4GB and slowly ramping down as my RAID 5 hard drive lights were blinking furiously. Finally, after the memory usage levels ramped down and leveled out, the estimated transfer time of the second ISO file lowered from 20 hours to 5 minutes.

This showed me that a software RAID 5 will not live up to my expectations and if I want to have speed and redundancy, I needed to go with a RAID 10. It was definitely cheaper to go with a software RAID 10 than a hardware RAID 5. True Hardware RAID 5 SATA PCIe cards seem to start around $250, but to take my three 500GB hard drives in a RAID 5 to four 500GB hard drives in a RAID 10 only cost me $55.

I know a few people in this forum use a RAID 10. What was your reason for going with a RAID 10?
PRO Level 15
User avatar
Posts: 1066
Joined: Tue Aug 17, 2004 1:41 am
Location: Indianapolis, IN

Re: RAID 5 to RAID 10

Postby Weaver » Thu Apr 01, 2010 3:24 am

Both hardware and software RAID 5 suffer from [relative] terrible write performance compared to other modes where parity is not involved. On the read side of the coin, RAID 5 is acceptable.

The plagued write performance stems from having to calculate the both the location of the parity stripe (rotating parity) and the parity stripe value itself on every write to any stripe. This is computationally expensive [relatively] increasing latency and ultimately perceived controller throughput.

Hardware RAID 5 implementations in nearly all cases use application specific integrated circuits (ASICs) to perform the necessary parity calculations in hardware specifically designed for the role. Software RAID 5 implementations use the host main CPU to perform these calculations through the "driver" a la winmodems. The bottom line is that RAID 5 should not be used on any piece of equipment where write performance (or IMHO where performance in general) matters. RAID 5 does however yield the greatest usable space (other than RAID 0 which offers no redundancy despite the name) out of all of the standard RAID levels.

RAID 50 and RAID 60 attempt to offset the inherent write penalties of RAID 5 and 6. They still however, have write penalties due to parity computation. An aside note, RAID 50 and 60 capability more often than not requires enterprise class controllers.

Instead, if you desire read and write performance with excellent redundancy RAID 10 is your man. With no parity stripe or parity calculations, there is not a computational bottleneck stemmed from parity. Probably the biggest downside to RAID 10 is that only half of your raw space is available to be used.

My reasons for using RAID 10 on our servers? Excellent [relative] read performance, excellent [relative] write performance, and excellent [relative] redundancy. As mentioned earlier, the biggest caveat is only having half of the raw space usable in the array.

You only have to be burned by RAID 5 performance once; that burnt tongue feeling hasn't left the mouth of my career.

-Weaver
Public Keys

The primary purpose of the DATA statement is to give names to constants; instead of referring to pi as 3.141592653589793 at every appearance, the variable PI can be given that value with a DATA statement and used instead of the longer form of the constant. This also simplifies modifying the program, should the value of pi change.
-- FORTRAN manual for Xerox Computers
PROfessional Member
User avatar
Posts: 1967
Joined: Wed Jun 19, 2002 12:05 am
Location: /home/weaver/

Return to Hardware and Customizing

Who is online

Users browsing this forum: No registered users and 3 guests

cron
cron