I recently had a bit of a scare with my software RAID 5 array becoming degraded. I was able to add the drive back into the array, but it got me thinking about trying something different.

I am currently running the file server along with my DNS, web server, plex media server, some VM's, and some other stuff all on Ubuntu 12.04 and I'm using mdadm for the software RAID 5. My hardware is an AMD FX-4100 quad core, 8 GB of RAM, and 3 x 1.5TB "green" drives. Recently, however, I have been looking into FreeNAS and the Z-RAID options. Another possibility is for me to just upgrade my RAID 5 array to RAID 6, but keep the OS and everything else the same.

This is for home use, but most of the data on there is not replaceable (home videos and pictures) we keep other backups, but that is a manual solution, I would rather keep everything automatic.

One concern I have with Z-RAID is with the performance. I have read that the performance is quite a bit lower than with regular RAID... is this true if the hardware is sufficient, as I assume mine is?

Building a dedicated FreeNAS system would obviously require building another box so I can continue to run my other server applications, and I'm trying to determine if it is worth it from a data integrity standpoint.


Copy-on-Write is not universally efficient for some particular load patterns (e. g., RDBMSes), but it should be absolutely fine for file-storage.



ZFS is much better than traditional file system.

First it has built in RAID and volume management capabilities (so it sort of covers what can be done with software RAID and LVM) and can usually out perform those when initializing the RAID or rebuilding it because it knows the files in use, unless like a RAID system which would need to keep track of the known used blocks/clusters. So if the filesystem is not full, it does not have to scan the whole disk, which means it is less likely to encounter a read fault when rebuilding! And even if that happen, if you use something with 2 redundant hard disk, it will be able to correct the problem, where a RAID-6 system would simply fail to repair the faulty cluster.

Second, ZFS support data and metadata checksum. So it is able to detect silent data corruptions, such as a cosmic ray (don't laugh) or a bad hard disk controller. It is best used when having ECC RAM. When ZFS has access to a copy of a detected corrupted data, it can automatically repair it.
Side Note: Most AMD processors support ECC (if not all) however most motherboard manufacturers do not expose this feature. Few consumer Intel CPU support ECC.

ZFS supports a RAID level equivalent to RAID-5, called RAID-Z, and RAID-6 is called RAID-Z2.

ZFS can be fast but you would better have plenty of RAM available (>> 2 GB).

Warning: I would not trust ZFS on Linux yet. As for BTRFS it is not mature enough.

  • 1
    I'm using ZFS on Linux in production now. It's turned out well so far. – ewwhite Mar 14 '13 at 15:34

I struggled with the same problem a while ago and came to the following resolutions:

Testing scenario was a HP N40L with 8gb RAM and 4x2TB Sata. I tested Nexenta, Freenas and a conventional mdadm/lvm ext4 setup and never got over 35 MB/s with ZFS while I reached 95 MB/s with the md setup (which is almost the complete gigabit speed). It could be, that your AMD quadcore will improve the situation, but you will never reach the same performance as you do with md.

In general ZFS is a pretty cool filesystem, but the "killer-features" like compression and deduplication are really resource intensive (I read somewhere that you'll need 30GB RAM/L2ARC per TB deduplicated Pool).

For uncritical applications you can surely use ZFS (as I do for backup with zfs-on-linux) but especially for performance critical application I suggest you to continue to use md and maybe lvm + brtfs if you want to come close to the nice features of zfs.

Furthermore RAIDZ wont gain any more data security (except of checksumming) if you dont add more parity drives (as you also would do with Raid 6).

Not the answer you're looking for? Browse other questions tagged or ask your own question.