• Some users have recently had their accounts hijacked. It seems that the now defunct EVGA forums might have compromised your password there and seems many are using the same PW here. We would suggest you UPDATE YOUR PASSWORD and TURN ON 2FA for your account here to further secure it. None of the compromised accounts had 2FA turned on.
    Once you have enabled 2FA, your account will be updated soon to show a badge, letting other members know that you use 2FA to protect your account. This should be beneficial for everyone that uses FSFT.

Question for you Mage

Rocco123

Limp Gawd
Joined
Jan 24, 2006
Messages
481
For RAID 5 (hardware RAID, server class RAID cards, U320), what would be the performance difference between a 4 disk and a 7-10 disk RAID 5? I'm curious about the I/O performance of having more disks, and what the ideal amount of disks would be.

Thanks!
 
Lots and lots of *small* I/O? I assume so - LN is a calendar app or something like that, so I'd imagine it's lots of small

In any case, let's compare a small (3-disk) array to a large (let's say 10-disk) array. I'll use standard notation, adopted to ascii - p' is read p prime, which is the "new" version of p; a plus sign means XOR. If you get confused, complain.

With a very small request - less than or equal to the stripe size of the array, so only a single block needs modification (plus possible parity updates, of course):
Case 1: It's a read request. The 3-disk array must seek one disk to the proper position and read the block. The 10-drive has to do the same. Net result: draw.
Case 2: It's a write request. The 3-disk array has to modify a block and parity. Two blocks will be modified - data1 and parity - and one will be left unmodified. The most efficient way to go about this is to read block data2, calculate d1+d2=parity, and write all 3 blocks back to disk. The 10-disk array can't do this - that would require reading all 8 non-modified disks first - so it reads p and d1, calculates p'=p+d1+d1', and writes p' to p and d1' to d1. 2r2w for the 10, 1r2w for the 3.

With larger I/Os, you can look at them as a series of many smaller I/Os, which happen to be next to each other. So the same thing applies, mostly. Since raid 5 requires rotating parity, the controller might have something going on on a disk that'll be used in IO2 but not IO1, so after IO1 has finished everything has to wait for that disk to seek before IO2 can proceed.

So. Where does this leave us? Essentially, anything more than 3 disks is paying a constant-sized penalty for its size - a 10-disk array has the same hit (2r2w) as a 4-disk or 30-disk raid 5. So if you had 6 disks (and could afford to lose the capacity of 2) a pair of 3-disk raid 5's striped into raid 50 would perform better than a 6-disk raid 5. But, all of that said:

If you're planning to use a raid 5 array for a database-type app (LN is database-backed, no?), you're wrong. SAME - stripe and mirror everything. This powerpoint (in pdf) talks about the advantages of SAME. Raid 5, hardware or not, just isn't fast enough for heavy workloads. With raid 0 or 1, all that happens on a read or write is a read or write - none of this mucking about with parity.

 
Thanks Mage,

I'm confused about a couple things, but I will try to summarize and you can tell me if I'm correct here:

Sounds like RAID 5 makes a pretty poor DB structure., and yes LN is all back-end DB with eye candy features for mail, cal, etc. etc. Lots of both large and small IO. The way to go might be a striped-mirrored type thing, like 50, or 0+1 or 1+0. We lose a lot of storage in the process, but hey, HD are cheap compared to the function they provide.

That Oracle doc was VERY interesting, I never realized how cluster size affected the sequential IO performance. I mean, it makes perfect sense but I never looked at it that way.


Thanks again!
 
Rocco123 said:
Sounds like RAID 5 makes a pretty poor DB structure., and yes LN is all back-end DB with eye candy features for mail, cal, etc. etc. Lots of both large and small IO. The way to go might be a striped-mirrored type thing, like 50, or 0+1 or 1+0. We lose a lot of storage in the process, but hey, HD are cheap compared to the function they provide.
Well, raid 50 with a bunch of 3-disk arrays striped together would be a Bad Thing in my book. Striping a bunch of mirrors is the way to go. As an added benefit, you don't need the raid 5 functionality in hardware. That could make your raid controller a few hundred bucks cheaper - but don't buy one because it's cheap, research the heck out of it first. More channels is probably better here. Pci-X or -express, period.

Find out how much storage you need now, and buy three times as many disks as that (and mirror them, so it's really only 50% extra). It'll pay off in the long run. Keep at least one hot spare and one cold if you're over say 8 disks. More small disks will perform better than a few large ones - usually. Buy current generation disks, whatever you do.

 
Back
Top