Is it possible to grow partitions in RAID1

raidtruenas

I'm thinking of building a NAS for the household. It will be a simple file, printer, rsync and bit-torrent server running FreeNAS. The server will have two 3.5" SATA drives, I plan to mirror them using software RAID1.

I have two questions:

  1. Which file system should I use, the default UFS or ZFS? As far as I understood from various blog posts ZFS is very memory and CPU hungry, will it work with VIA C7? I like the idea of ZFS snapshots but I can live without them if it's too demanding.

  2. I currently have two drives: 640GB and 1TB. If I use them in RAID-1 the total array size will be the minimum size of the two disks, that is 640GB. That's all right for now, but what will happen if in a year I get a new, say 1.5TB, drive? RAID array should rebuild when I replace the smallest drive with the new one, but will it be possible to grow it from 640GB to the new minimum – 1TB without losing the data?

Thanks and sorry if I'm asking trivial questions, I'm a software guy.

UPDATE: To answer the second question, this blog post explains how to grow a RAID1 partition after replacing one of the drives.

Best Answer

ZFS rules, but is restricted by hardware choice (ZFS stability), as as C7s are 32bit (wikipedia states they use the x86 instruction set) ZFS may not be the solution you seek. If you decide otherwise (it protects you from data corruption and failing disks) there are some useful projects about

RAID array should rebuild when I replace the smallest drive with the new one, but will it be possible to grow it from 640GB to the new minimum - 1TB without losing the data?

Shouldn't be a problem (I've never used FreeNAS), with hardware RAID controllers I've done this many times:

  1. backup all your data :)
  2. remove the smaller disk from the array
  3. insert the new disk
  4. rebuild the array from using the original disk as primary

Alternatively, if you want totally painless dynamic resizing of the array and huge redundancy, get a Drobo (the newer models are markedly better) - you cannot run this as a simple server however. So, you could run an ultra low power SheevaPlug as the server (cheap as chips) and plug the Drobo into it. That's my recommended low power ultra scalable solution (limited only by current maximum HDD capactity).