2 min read

ZFS on Ubuntu vs Freenas

ZFS on Ubuntu vs Freenas

I don’t want to bore you why ZFS is the coolest filesystem (features), this is just a recap of my experience with OpenZFS on Linux and Freebsd/Freenas in a Desktop and Home Server perspective.

4 years ago OpenSolaris released Nautilus with TimeSlicer, an efficient “Time machine” for your files and your backups, but since then a lot of things changed: Oracle acquired Sun, OpenSolaris is dead and in 2013 the communities interested in ZFS Open Source, Illumos, Freebsd, ZFS on Linux, merged the efforts in OpenZFS project  (aka ZFS v5000 and beyond).

A quick look FreeNAS vs Ubuntu

FreeNAS: it is an ad-hoc OS based on FreeBSD to build a full-featured File Server. It is managed mainly via a local Web UI and it simplify a lot all the File Server related tasks.
Ubuntu: It is a well known Desktop and Server GNU/Linux OS. 

ZFS support

Freebsd/FreeNAS: The support of the ZFS filesystem isn’t new anymore and You get it out-of-the-box. FreeNAS 
Linux: The ZFS on Linux project is very active and it is also used in production but ZFS will never ship with the Linux Kernel or in a distro because incompatibilities in the license. It means when You install the OS for the first time You’ll  have to add a repository and download the ZFS drivers.

The Benchmark: copy a ~8gb file locally and via ethernet

I didn’t find a more scientific comparison, so this is my basic performance test with the “time command” repeated 3 times.
Hardware: Intel dual core E8400, 4Gb ram, Hard Disk WDC_WD15EARS
Software: Linux kernel 3.8 on Ubuntu 12.04.3, FreeNAS/Freebsd 9.1
Copy on the same partition: ~30Mb/s
And ~37Mb/s with ext4. Anyway the bottleneck is the ethernet. 
Copy via NFS/sftp arcfour: ~10Mb/s

Interoperability

NO thanks: I really had bad times sharing the same volume ZFS v5000  between the 2  OSes. I created it in a partition via Ubuntu, FreeNAS automatically imports ZFS from an entire Hard Disk, I imported manually the volume and It worked, then I unmounted it with “zfs export” and I got a valid ZFS Volume for Freenas but corrupted UNAVAIL for Linux and also duplicated IDs.

# zpool import
   pool: rpool
     id: 15148464799595220882
  state: UNAVAIL
 status: One or more devices contains corrupted data.
 action: The pool cannot be imported due to damaged devices or data.
   see: http://zfsonlinux.org/msg/ZFS-8000-5E
 config:

    rpool                                      UNAVAIL  insufficient replicas
      ata-WDC_WD15EARS-00Z5B1_WD-WMAVU2166291  UNAVAIL

   pool: rpool
     id: 13859084770064415634
  state: ONLINE
 action: The pool can be imported using its name or numeric identifier.
 config:

    rpool                                              ONLINE
      scsi-SATA_WDC_WD15EARS-00_WD-WMAVU2166291-part4  ONLINE


Crypto: Your CPU should support AES-NI but Linux uses LUKS, Freebsd GELI and Solaris 11 uses a “per ZFS Volume” encryption that isn’t Open Source.

Conclusion

You should really try both. FreeNAS is really a Full-Featured File Server and it is extensible via “secure plugins” called Jails (LXC docker on Linux). On Linux I didn’t find a so All-in-One and documented Web Interface.
If You want a more mainstream general purpose OS, with almost all driver suppport and you like to tweak via shell: Ubuntu (ZFS on ROOT), but also Debian and Gentoo have a great ZFS on Linux support