You have the topic - now fight to the death! (Please motivate you answer)
??? hardware raid card always.
Why is that?
Hardware RAID gives additional caching, and thus has it's own memory assisting in write/read operations and allows for greater options of RAID formats. It's just typically not ideal for a home user that's not an ethusiast since good quality cards start out around 200 dollars.
software RAID5+BCache!
Something Interesting for u... I have a FX-8350 on a sabertooth 990FX r2.0... anyway, i turned on the raid controller on the amd chipset... my ram went from 16GB to 15.7 Usable... and the windows performance index on my cpu/ram went from 7.8 to 7.7
And what about RAID-Z?
RAID-Z is a software implementation similar but faster than RAID-5 and RAID-6 depending on version of RAID-Z. There are three versions of RAID Z: the first edition mimics RAID 5 while getting around the write hole, Z2 increases the parity amount to where it is more similar to RAID 6 than 5, and finally Z3 reduces the resilvering time that also plagues the parity RAID solutions. Software RAID tends to be slower than hardware RAID, but this implementation of RAID is cheaper to set up. Although initially it might be the same speed or slightly slower it gets around the write hole that plagues other parity RAIDs. While hardware RAID may be more expensive it is faster and more flexible. Here is a rundown of the RAID arrays that are implemented.
0. Striping
Requires 2 drives and stripes the data in between. Downfall is that if one drive fails the entire system fails. All drive amounts have to be a multiple of 2.
1. Mirroring
Copies one drive over to another drive for a perfect backup. Downfall is that it consumes 2 drives and leaves only 1 drive worth of space. Also if one drive has bad data it doesn't know to correct it at times and can lead to annoying errors. All drive amounts have to be a multiple of 2.
2,3 and 4.
2 is only a theorized RAID and not actually used, and the other two just aren't practical solutions. Here is a good wiki on RAID.
5. Striping and parities (the ubiquitous RAID level)
RAID 5 takes a minimum of 3 drives, and stripes the data and uses the stipes to store parity data. This parity data is used in case one drive fails. This allows the computer to figure out what data is lost and recreate it from the parities and known data. Downsides it can lose its speed and become extremely slow with its write whole, and also when a drive fails and it begins resilvering it radically increases the likelihood of another drive failure (depending on the drive write/read error rating). This array fails if there are two or more drive failures.
6. striping and parities *this is not RAID 5, but this is similar to RAID5*
RAID 6 also stripes in parities, but it does it over a 4 drive minimum. There is double the parity data in case there are multiple drive failures. Downside is that it still has the same write hole problem that RAID 5 has. This also wastes the same drive space in equal proportion as RAID 1. This also when using its parity data also has among the higher risks for drive failure when recooping from a previous failure. All drive amounts have to be a multiple of 2.
Now the wonderful world of nested RAIDs. Nested RAIDs combine multiple RAID types so that they are layered on top of each other to compensate for their weaknesses. I will go over one, but you should really take the time to read the wiki with other articles on the subject.
1. 1+0 the most common
Considered by many to be one of the standards in RAID arrays. This array first mirrors two drives into a virtual drive with active back ups, and then it stripes the data among the virtual drive. It combines the speed boost of RAID 1 with the safety of the backup, but it uses one half of your drives to just be a backup. This RAID array also will fail if one entire drive set fails. All drive amounts have to be a multiple of 2.
REMEMBER ALL THE RAID IN THE WORLD WON'T REPLACE QUALITY BACKUPS. SO BE SURE TO BACK UP WHAT YOU ARE DOING BECAUSE RAID WILL EVENTUALLY FAIL.
I've considered RAID and always seem to resort to redundant backups. Maybe if I had a mission critical system/server, then I'd mess with it.