RAID 5 on multiple controllers

edited July 2010 in Hardware
Hi all, I have been using a software raids for several years mostly due to inexperience with configuring and managing hardware raids. I am a little more comfortable with hardware raids now but still have some questions regarding setup/configuration. I have 6 drives, 2tb each. I have 2 4-port sata controllers. Is it possible for me to set the 6 disks up in a single raid 5 array even though they are on 2 different controllers?

Thanks in advance.

Comments

  • RootWyrmRootWyrm Icrontian
    edited July 2010
    Not with modern controllers, no. You can do a software RAID, sure. I wouldn't recommend a RAID5 for a 6x2TB configuration though; I'd recommend RAID6. It's going to offer you the best mix of resilience and speed. RAID5 generally performs poorly with even number disk configurations (4, 6, 8, etc.)
  • ardichokeardichoke Icrontian
    edited July 2010
    I disagree with RootWyrm. I strongly suggest against doing software RAID5 or RAID6. You're going to take a huge performance hit with either due to parity calculations which must be done by the CPU as opposed to a specialized hardware RAID card. Further, I've never seen credible evidence suggesting that RAID5 takes a performance hit on even numbers of disks. That doesn't make any sense from a theory standpoint and it doesn't stand up to what I've seen in the field either. If anything, RAID6 will always perform slightly worse than RAID5 because it needs to calculate an extra set of parity bits every time it writes to the disk. Of course 6 does give you the ability to recover from the loss of 2 disks instead of just 1 which can be nice.

    As for doing an array across multiple controllers, it's not always impossible. Some modern cards do have the ability to span an array across multiple controllers (or so I've read). The caveat here is that you have to have cards that support that feature (and there aren't many of them, once again, from what I've read) and I'm pretty sure you have to have the exact same model of card for all your RAID cards.

    If you're going to do RAID5, make sure you're using a true hardware RAID card and not a CPU assisted RAID card. If you paid less than 300 dollars for your RAID card, you're probably not using a true hardware RAID controller. If you are not using true hardware RAID, I would suggest strongly that you do not go RAID5 or 6 due to the fact that, as I mentioned before, you're going to take a serious performance hit. Add to that the fact that it is highly unlikely that you will be able to make a RAID array across the cards and what you're probably better off doing would be making a RAID10 array across the 6 disks. In case you're not familiar with RAID10, this would involve making 3 sets of 2-disk RAID1 arrays then using those 3 arrays to make one big RAID0 array. This gives you the redundancy of a mirrored array (ability to lose 1 disk out of each RAID1 array without data loss) as well as a decent performance boost because you are striping your data across the 3 arrays. You'll also be able to do it across cards (in a manner of speaking) because you can make the RAID1 arrays on the card itself, then use software RAID to make your RAID0 across the RAID1 arrays.
  • RootWyrmRootWyrm Icrontian
    edited July 2010
    First and foremost comes down to something any Enterprise Systems Ninja knows by heart; disk failures! With RAID5, you either go 5+1+Spare and suffer the 24+ hour rebuild on a disk failure, or you run high risk till a replacement disk comes. Consumer disks, you're virtually guaranteed to be within a month of each other on the manufacture date. Which means your MTBF or inherent defect failures will tend to come in pairs. Lose a second disk, lose the array, unless you have a hotspare. But a hotspare is a spinning disk doing nothing - pretty useless. And totally useless until rebuilds are completed. Free (as in beer) RAID implementations don't currently do used-block only rebuild either.

    The idea that RAID6 somehow has some massive CPU overhead is a complete fallacy. RAID5 is N+Parity, RAID6 is N+P+Q. (Where N is your data disks.) The idea that P is expensive, is just silly. P is XOR - that's it. Q is XOR + Galois. Typically this is implemented functionally as XOR -> Linear Bitshift. So there's not actually enough CPU overhead to matter, unless you're running the disks ragged with sequential IO on something like a TBird 750MHz. (And even that can handle it with ease.) Honestly, if RAID5 or RAID6 actually incurred that much CPU loading, do you think NASes would work at all? You're talking about systems which don't have dedicated parity engines and are using very low power embedded CPUs. RAID just isn't that CPU expensive any more, relatively speaking.

    As for cross-card spanning, nobody's doing that currently unless I missed a feature on the latest round of LSI cards. That feature was removed after the LSI Ultra320 family for lack of demand. Now I'm going to have to go look into things, and see if somebody brought it back. <joking>
    (JOKE) Thanks a bunch for that, ardichoke! You're making me do research! Jerk! (/JOKE)</joking>

    I don't disagree that true hardware is superior. Especially if you're only talking 6 disks. The problem is that you're talking 6 disks. That puts you into the higher end of RAID cards if you want something that isn't going to crap out. You can get true hardware RAID for cheap, but you're not going to get fast or more than 4 ports. 6 disks means 8 ports means LSI 8708 or 926n-8i, Areca ARC-1160 family, you get the idea. Very Not Cheap products.
    The other problem here is that with 2TB SATA, your best case IOPS in real world is right around N * 90. So for 6 disks, that's a whopping 540 IOPS. (Compare this to 15k SAS @ 250+ per disk and even consumer SSD at >4K IOPS.) Your primary concern in this array is the disks are sloooooooow. They're also consumer disks, which like it or not, means that failure will occur. And rebuild will be hellish and insanely long. As disk size increases, rebuild time does not go down. And with disks that slow, good luck loading down any modern CPU. (You'll see load, oh yes! It'll just say "iowait.")

    So I'm not recommending RAID6 because it's buzzword or because it's faster. I'm recommending it because for a 6 disk software RAID setup, it's going to give the least amount of pain. It's also going to make the inevitable expansion less agonizing. I'm not going to recommend RAID0 overlaying RAID1 because frankly, you aren't buying 2TB drives to lose half your capacity. And you're not going to actually gain anything over RAID6 either. RAID6 at least you've got all spindles involved; RAID1 halves your performance potential. Plus software RAID0 is the most fragile sort. Software RAID3, 4, 5, and 6 leave you parity recovery. RAID0 has no such protection, making data loss potential much much higher.

    Yes. I do spend entirely too much time on storage. But then again, it is my job. :vimp:

    (EDIT) Oh my gods, I forgot to mention; hardware RAID cards aren't an option for 2TB drives except for Seagate Constellation 2TB, Hitachi A7K2000 and WDC RE4 drives. Without TLER and adaptive algorithm, they will drop off the controller. Joy!
  • ardichokeardichoke Icrontian
    edited July 2010
    Hey, I'm just letting him know what I've seen. It's my job too, I'm dealing with RAID arrays of all sorts on a daily basis. Also, I've run software RAID5 before and I can tell you without a doubt that it killed my I/O performance. Every time my system started writing a significant amount of data to the array my CPU usage would spike any my system would slow to a crawl. This was on an Athlon X2 5200+ system too... not exactly crap hardware. You can toss about all the theory you want, but in practice software RAID5 and 6 performance sucks and will have a noticeable negative effect on any desktop system. Sure, sitting in a NAS it might not be so bad, but interactive systems are completely different ball of wax.

    Further, recommending RAID6 is rather silly as well. You get no performance benefit (in fact, you will take a slight performance hit thanks to the additional parity calculation) and you sacrifice 2 extra TB of storage. If you really want to go 5 or 6, just go 5 and invest in an extra disk to have on standby in case of failure. Of course to be fair, in a home environment your chances of failure are not all that high. I, for one, have never had a disk fail on me and I'm not exactly what you would call a standard user. I have a couple computers at home that run more or less 24/7. That said you should still have backups... but you should have backups no matter what RAID level you are running because RAID IS NOT BACKUPS.
  • RootWyrmRootWyrm Icrontian
    edited July 2010
    ardichoke wrote:
    Hey, I'm just letting him know what I've seen. It's my job too, I'm dealing with RAID arrays of all sorts on a daily basis. Also, I've run software RAID5 before and I can tell you without a doubt that it killed my I/O performance. Every time my system started writing a significant amount of data to the array my CPU usage would spike any my system would slow to a crawl. This was on an Athlon X2 5200+ system too... not exactly crap hardware. You can toss about all the theory you want, but in practice software RAID5 and 6 performance sucks and will have a noticeable negative effect on any desktop system. Sure, sitting in a NAS it might not be so bad, but interactive systems are completely different ball of wax.

    Man, I can go on for about.. I think last test went four weeks on "OMG NO STOP PUTTING THIS IN DESKTOP." And that was on ICH9R Matrix RAID. I can probably add another week just from ICH10R alone, forget the Marvell stuff! (Let's not test it, please!) :D
    Seriously. 6x2TB in desktop = :mad2:. RAID5 in desktop = :mad2:. RAID1 in desktop = :cool:. RAID0 in desktop = :cool:. MatrixRAID = :mad2: (fake hardware RAID, again, YAY!) There are of course, exceptions to the rules - certain workstations I've built shipped RAID5. But they also shipped RAID5 with 15k SCSI or SAS disk on LSI. Microsoft's software RAID blows, Linux software RAID5 is abysmal. There are two ways to get not-fail software RAID5; FreeBSD and NetBSD. And they work fine on interactive. (Sorry. Them's the breaks.)
    Further, recommending RAID6 is rather silly as well. You get no performance benefit (in fact, you will take a slight performance hit thanks to the additional parity calculation) and you sacrifice 2 extra TB of storage. If you really want to go 5 or 6, just go 5 and invest in an extra disk to have on standby in case of failure. Of course to be fair, in a home environment your chances of failure are not all that high. I, for one, have never had a disk fail on me and I'm not exactly what you would call a standard user. I have a couple computers at home that run more or less 24/7. That said you should still have backups... but you should have backups no matter what RAID level you are running because RAID IS NOT BACKUPS.

    Well, this isn't true. RAID6 is striped parity, not purely N+P+Q. N+P+Q is your capacity calculation. Because RAID6 is striped parity across all disks, you get another spindle of IOPS available over RAID5 + Spare. RAID5 is also going to incur a penalty on any configuration besides 4+1 and 8+1 forever and ever amen because of full stripe writes. You can't do them on odd number disks at any stripe size, period. RAID6 suffers full-stripe write penalties on odd disks but not on even disks. Realistically, a 6 disk RAID6 will see better performance than a 4+P+Spare RAID5 and will always be faster than 5+P RAID5. You're not taking any capacity hit over RAID5 + Spare, and you're avoiding 24+ hours of praying a second glitch doesn't happen. It doesn't even have to be a full failure - just enough to trigger a rebuild.

    And as I often preach, presuming no failure is nothing more than a guarantee you will. Failure will happen. Arrays that big at home are not backed up often enough or effectively enough. You're better served acknowledging the fact that a disk failure of some sort will occur, and planning for it with a priority on fault tolerance. All it takes is once.
  • ardichokeardichoke Icrontian
    edited July 2010
    I could argue this til I'm blue in the face with you but it's going to make no difference. A lot of what you're saying contradicts what both my training in computer science and my real world experiences have shown. Especially the spiel about the number of disks in RAID 5 and 6 affecting performance, you're the first person I've ever heard claim that and I've never seen a RAID 5 show performance problems due to the number of disks in it and believe me, we have a lot of 3 and 4 disk RAID5s in our 3 data centers (all on hardware RAID controllers mind you). We have quite a few arrays with more than 3 or 4 disk RAID5s as well including ones with hot spares. I've never once heard any of my coworkers mention, or seen for myself, a RAID5 take a performance hit because of having an even or odd number of disks. As for the RAID6, I can't say I've worked with any thus I can only go off theory on that particular one. The fact that you have to write the stripe, calculate the parity bits then go back and calculate the 2nd layer of parity suggests to me it should be slower than RAID5, but I'm sure there are tricks to get around that. Wikipedia seems to agree with me though stating about the speed of RAID6 that it can be as fast as a RAID5 with 1 less disk suggesting that it will never be faster than a RAID5 of the same storage capacity.

    Regardless, we've gotten way off topic here anyway. @BossHogg - It is highly unlikely you will be able to span an array across both RAID cards (unless you use pure software RAID).
  • trolltroll Windsor, Nova Scotia Icrontian
    edited July 2010
    Thanks for the good read guys!

    I love it when the storage geeks go "Hammer and Tong" :rockon:
  • edited July 2010
    RootWyrm and ardichoke, thank you both for your feedback. My cards are both the same model so I am going to give it a try and see if I am able to create the RAID5 across the 2 cards and see if that works. If not I like ardichoke's idea of the RAID10 and will go that route if I plan A turns out not to be viable solution with the cards I have. Thanks again and I will post back and let everyone know how things worked out.
Sign In or Register to comment.