[CentOS] Re: RAID5 or RAID50 for database?

Mon May 26 00:14:32 UTC 2008
Christopher Chan <christopher at ias.com.hk>

Ross S. W. Walker wrote:
> Christopher Chan wrote:
> 
>> William Warren wrote:
>>> I'm not a fan of RAID 5 at all since it can only tolerate one failure at 
>>> all.  Go with raid 10 or something like that which is able to handle 
>>> more than one failure.  Intermittent, uncorrectable sector failures 
>>> during rebuilds are becoming an increasing problem with today's drives.
>>>
>> Is that raid10 or raid 1+0 or raid 0+1? :D
>>
>> At least for the latter two, their handling more than one failure 
>> depends on which disks blow. Not sure how the raid10 module 
>> handles things.
> 
> Whoever implements RAID10 will want the RAID1+0 which is a stripe set
> of mirrors, rather then the RAID0+1 which is a mirror of stripe sets.

Here we go. Please go and hammer Neil Brown about his version of RAID10 
for md which is decidedly different from doing md 0+1/1+0.
http://neil.brown.name/blog/20040827225440

Feel free to also hammer him on his definition of raid 1+0/0+1 as he 
calls raid 0+1 "a raid0 array built over a collection of raid1 arrays".

> 
> The problem being two fold, 1) in a RAID0+1 a single drive failure
> on either side of the mirror will put the whole array into total
> failure jeopardy, a failure on both sides is a total loss, 2) the
> pathway for simultaneous operations is cut down from (say X is an
> even number of disks) X reads, X/2 writes, to 2 reads, 1 write.

A failure of one mirror will destroy the whole raid 1+0 array too. I do 
not see how having a functional raid0 array on one side of the mirror in 
raid 0+1 will cut writes to one disk instead of two.

However, I would personally go for a stripe of mirrored disks since a 
rebuild will not involve all disks.

> 
> On a RAID5/6 array you are limited to a pathway of 1 read and 1
> write at a time and all writes must write across the entire stripe,
> so if you do choose RAID5/6 then it is highly recommended to use a
> hardware RAID controller with a BBU write-back and read-ahead cache
> which can minimize the impact of this by caching a whole stripe set
> to write at once and to have a stripe set of reads waiting for io
> requests.

Yes, any hardware raid doing raid5 without a decent amount of cache is 
going to be very poor on write performance.

> 
> For database log files and other applications that do a lot of
> random io it is recommended to use fast RPM drives in a RAID10
> which has the multiple pathways for reads and writes which will
> maximize the total number of random IOPS (ios per second).

Next time, please follow the thread. We are japping about the raid10 
module for md by Neil Brown and how it apparently does not require the 
traditional way of doing raid 1+0/0+1. Like how his module can do 
"raid10" with just three disks.

http://neil.brown.name/blog/20040827225440

> 
> Typically most vendors recommend a two-prong approach, keep the
> database data files on a RAID5/RAID6 type array and keep the
> log files on a RAID10 array.
> 

Thank you for your information.