I recently picked up a bunch of hardware to build a new home media server. When fully configured, it'll have 20 1TB hotpluggable SATA-II drives running under a Linux system. To date, I've used RAID5 and RAID6 (not in conjunction) in smaller servers spanning up to eight drives, but I'm wondering if that's still a good idea.
More specifically, I'll have six SATA cards in the system - four PCI cards with four SATA ports each, and two PCI-Express x1 cards with two SATA ports each. (This hardware isn't entirely for sure yet - as an aside, let me know if I can improve on it. Those slots are the only ones available on the current motherboard.)
I'm primarily looking for suggestions as to what low-level software system (RAID, LVM, a combination, something else entirely) I should use to implement this system. Requirements:
- It has to be scalable up to the 20 drives - I'm starting with four, and working my way up (most likely one or two drives at a time) to the full capacity.
- It has to run on Gentoo Linux - I'm very flexible as to the software I use, but not to the point of switching the entire operating system for it.
- It has to be reliable enough to suffer drive losses - at least two of the twenty at any given time. The server will be some hundreds of miles away from me most of the time, and I can't get anyone there to swap out drives as soon as they go bad, so it needs to be able to live with a drive or two down for a little while. Bonus if an entire controller card can fail and the array stays up.
- It has to have reasonable capacity - I'd like at least 15TB, out of the 20, actually available for data storage (as opposed to RAID parity or similar). More capacity, as long as it's not sacrificing too much integrity, is better.
- It has to present a single unified filesystem to the OS - 20 separate 1TB drives, all with separate filesystems and mounted separately, won't be manageable (even ignoring the fact that a drive failure in this kind of setup would destroy a terabyte of data).
Keep in mind when making suggestions that I don't mind putting a fair amount of work into this - there's no requirement for easy or instant setup, as long as it works and is reliable in the future. Suggestions as to the filesystem to layer on top of it would also be welcome. I'm currently using JFS, because it seems to perform well and is growable while mounted read-write, but if there's an improvement I can make I'm open to it.