Hardware for large mysql db

03-11-2009, 10:21 AM

I am shopping for a new storage array for our MySQL DB. In the past I have purchased Dell MD1000 with a PERC Card. 147GB 15K rpm SAS Drives, and striped them RAID5 b/c each shard of our DB is ~500GB and we needed RAID5 to get enough storage out of the 147GB drives. Now they have drives up to 450GB which would allow me to strip RAID10. Also, our db, using innodb and is pretty write intensive. The MD1000 has the ability to flip a switch and split the array in half, so we use one side for master and one side for slave (7 drives on one side and 8 drives on the other) The downside to this hardware in my opinion is that it has an odd number of drives, 15, which if you split the array in half only gives you 6 drives you could use on one side for RAID 10, essentially giving you 3 drives worth of space.

My question is, is it better to still strip RAID5, having 6 or 7 disks (minus the parity disk) on each side of the array, OR, go ahead with RAID10 and potentially only having a 6 disk RAID10 strip?

RAID 5 will give you the write performance of one disk. RAID 10 will give you the write performance of N/2 disks. If you have 15 disk, leaving out one for a hot spare, RAID 10 should be about 7 times faster for writes. Or you could get 6 times the write performance with 3 hot spares.

If the RAID controller is battery backed, you may wish to investigate the setting innodb_flush_log_at_trx_commit which can vastly improve your write performance.