Linux – Setting up a home server – what to use? (ZFS vs btrfs, BSD vs Linux, misc other requirements)

freebsdfreenaslinuxopensolariszfs

I need to get all our home content off individual machines and onto a central server. What I'd like to have is the metaphorical "server under the stairs".

Stuff we need:

  • expandable storage. I want to be able to add extra disc as we go along, with minimal maintenance required. Currently we've got about 3Tb of files we need to host, and that's likely to grow by another Tb every 6-12 months based on recent history. I need to be able to add additional disc with minimal pain
  • needs to store all the media (i.e. photos, video, music) we have, and run services to serve the various devices we have in the house to playback (e.g. DAAP so we can play stuff through iTunes, ccxstream so we can play stuff over XBMC). DAAP and ccxstream are needed now, but we also need to support new standards as they emerge (so a closed-box solution isn't going to work)
  • RAID 5, or something broadly equivalent (e.g. RAID-Z)
  • BitTorrent client
  • ssh, NFS, Samba access
  • snapshot capability (as in ZFS), so we can snapshot individual file systems regularly and rollback when my kids delete their school assignments the day before they're due…
  • ability to recover quickly from power outages (it's not unusual for us to have power outages that last longer than our UPS' batteries)
  • FOSS software
  • a modern distributed version control system running on the box, such as Mercurial

Stuff I'd like to have on the server, but can live without:

  • PVR capability, so I could record TV to the box
  • Web server. We currently run a small Web server on a very old box, and I'd ideally like to turn the old box off and move the content to the new server just to save some electricity
  • Nagios + mrtg

I've been looking at using a EEE Box as the server, primarily because I can get them cheap and they don't consume much power. The choice of OS and file system is more difficult, from what I've found:

  • I've got most experience with various Linux distros, but am happy to use another Unix
  • FreeBSD and OpenSolaris seem to be the best choices for hosting ZFS
  • OpenSolaris' hardware support is nowhere near as good as e.g. Ubuntu
  • btrfs, while looking very good, doesn't seem ready for prime-time yet
  • ZFS doesn't let you (easily?) add new discs to a RAID5 or RAID-Z
  • reading around, it seems that ZFS is a bit short of tools for recovering lost data

At the moment, I'm leaning towards running FreeNAS+ZFS, but I'm concerned about the requirement to be able to add new disc on a fairly regular basis to an existing RAID-Z.

Can anyone provide some recommendations, or share experiences?

Thanks in advance

Best Answer

FreeBSD and OpenSolaris seem to be the best choices for hosting ZFS

With OpenSolaris, ZFS is usually versions/features/bug-fixes ahead.

OpenSolaris' hardware support is nowhere near as good as e.g. Ubuntu

Hardware support is getting much better with recent OpenSolaris builds but as long as your hardware is supported that shouldn't really matter.

ZFS doesn't let you (easily?) add new discs to a RAID5 or RAID-Z

You cannot add a single disk to a raidz but you can add another raidz to the pool where your first raidz is. The only drawback is you need to add multiple disks at the same time.

reading around, it seems that ZFS is a bit short of tools for recovering lost data

The point is ZFS doesn't lose data by design so recovering tools are of little purpose, outside the self-healing built in ones.

Related Question