RAID-5 and database servers
poweredge at antibozo.net
Tue Mar 9 17:23:19 CST 2010
On 2010-03-09 23:12, Matt Domsch wrote:
> On Tue, Mar 09, 2010 at 04:54:44PM -0600, John G. Heim wrote:
>> Has anyone configured a database server with RAID-5? Is it really a bad idea
>> to do so? I asked last month for tips on configuring a DB server. I have
>> around $6K to spend. I am pretty much settled on getting 2 quad-core CPUs
>> and 32 Gb of RAM. But I'm still ignorant in terms of what to get for disk.
>> 1500 RPM, I know that. But is it better to do RAID-1 or RAID-5. I can't
>> figure out why RAID-1 would be better than RAID-5. I understand that with
>> RAID-5, a single database write might translate into writing 2 blocks (a
>> data block and a parity block). But doesn't RAID-1 *always* do an extra
>> write for every data block written?
> RAID 5's problem isn't the extra write. It's that to write a hunk
> that's not a whole stripe width (64k * (num_drives - 1)) it has to
> first read a whole stripe (num_drives-1), calculate the parity, and
> then write to 2 disks.
Not really. It can recalculate parity for a single block using the
parity block, the new block, and the block it is about to overwrite,
regardless of how many disks are in the stripe.
In any case, RAID 5 (and even RAID 6) implementations are extremely fast
nowadays. What you should do is ask your database vendor what numbers
they expect in terms of read and write bandwidth and IOPS in order to
achieve your performance objective, and then use iozone or similar tools
to benchmark the RAID configurations you are considering.
Note that using direct I/O and/or asynchronous I/O may have a large
impact on performance, as well as available memory. The RAID level may
be essentially insignificant compared to these factors. Just try to make
your RAID block size equal to the database block size. And align your
partitions to the block size as well, or don't use partitions at all.
See this essay for further info on the latter:
More information about the Linux-PowerEdge