If you want to do simple storage pooling with duplication, then either Windows Home Server 1.x with Drive Extender, Windows Home Server 2.x with a Drive Extender clone, or Amahi Home Server (which incorporates Greyhole) will serve your needs.
If you want to maximise your usable storage capacity, then some kind of parity-based redundancy mechanism is the way to go.
a) FlexRAID. This available for Windows and Linux.
b) Linux software RAID (md RAID). This is a software RAID and is obviously native to Linux. It performs very well, is very robust and reliable, and in the several years I've been using it to manage around 5TB of data, it's never let me down.
md RAID is available for virtually every Linux distribution, including Amahi Home Server (which is based on Fedora), and supports parity RAID levels 4, 5, and 6. It's also available for more storage-focused Linux distributions such as Openfiler and QuantaStor.
c) NexentaStor. This is an OpenSolaris-based OS, focused on being a storage target. It's primary filesystem is ZFS, which is a filesystem, volume manager and RAID engine in one. It's incredibly robust, and can self-heal corrupted data. Right now ZFS is the most sophisticated and robust data storage mechanism available. NexentaStor also supports NFS and CIFS, so you can share a ZFS volume out to Windows clients.
Lastly, NexentaStor Community Edition supports up to 18TB. After that, you have to start paying for it.
d) RAID card The benefits of this choice are CPU-offloading (for true hardware RAID), lower latency (for true hardware RAID) and easier management. I'd stay away from fakeRAID cards, since they can prove to be unstable in RAID 5, and have poor performance. However, hardware RAID cards can prove to be expensive - unless you pick up a bargain Dell PERC 5/i or PERC 6/i on eBay.
e) unRAID. This works somewhat similar to FlexRAID, except it does parity calculations on the fly, is Linux-only and it needs to have its own dedicated hardware. The best way to describe it would be RAID-4 without striping. The array could withstand a single drive failure without losing data. Another nice thing about it is since it's JBOD, if you have 2 or more drive failures, you only lose data contained in those drives unlike in RAID-5 where you lose your whole array. It's also very power friendly. Since data isn't striped, it can spin down drives that are not in use which can make for significant power savings when you've got 10 drives in your array or more. You can also mix and match different drives and drive sizes.
Currently, unRAID supports up to a maximum of 40TB storage (20x2TB data, 1x2TB parity) in a protected array. Right now, unRAID only supports 2TB HDD's (including advanced format/4k) but the developer has mentioned support will be coming for 2+ TB HDD's. The biggest drawback with unRAID are the write speeds. Since it's doing a bunch of read/write operations on the parity disk and data disk being written to whenever you write something to the array, writes can be quite a bit slower than a single HDD configuration. Another thing, since it's a customized Linux distribution that fits on even a 512MB flash drive, it's somewhat feature-limited. It works great for storing your data, but beyond that, it'll take quite a bit of work to get it to do other things such as act as torrent downloader, etc. You can get more information about unRAID here.
Edited by rui-no-onna - 3/14/11 at 7:27am