What about redundancy schemes more along the lines of RAID 5? In my dream world I'd like a RAID5/6 array that as it fills I simply need to add additional drives, permit the parity to rebuild, and then the overall storage becomes presented as a larger massive disk. Imagine a initial 4x2TB array running RAID 5 yielding 6TB raw. I want to add capacity, so drop in 2 more 2TB drives, I dream of a solution that simply finds the drives and begins to expand the overall array to one that is now 10TB raw. It allows me to reduce the % of overall storage lost to parity while also making the management simple.
ZFS has a RAIDZ mode that provides one drive (RAID5), two drives (RAID6), or three drives (beyond RAID6) of redundancy. These are called RAIDZ, RAIDZ2, and RAIDZ3.
Example with four-drive RAIDZ
zpool create mypool raidz c4t0d0 c4t1d0 c4t2d0 c4t3d0
You could add another RAIDZ set later,if you have the ports available - no need to rebuild:
zpool add mypool raidz c4t4d0 c4t5d0 c4t6d0 c4t7d0
Or, if autoexpand is on, you could replace drives one at a time with bigger ones, letting each resilver, and once the last drive finishes resilvering, presto! More space!
Note that additional vdevs (drive sets, in ZFS terminology) added to an existing pool don't have to be the same configuration. You could add mirrored pairs or triplets, or add a RAIDZ2 set to an existing RAIDZ1 pool, etc.
A comprehensive guide to ZFS, though it's specific to Solaris (and OpenIndiana):
http://download.oracle.com/docs/cd/E19253-01/819-5461/index.html