How does BTRFS compare to ZFS? [closed]

I am considering which OS and filesystem to use on some new servers I have and am considering either Free BSD with ZFS, or Linux with BTRFS.

The programs I have run on both systems, so the only issue is reliability of the filesystems and performance, etc.


Solution 1:

As of April 2010 Btrfs is still in development and not ready for production use (really, it isn't - I have been bitten experimenting with kernel 2.6.32). Feature-wise btrfs contains some but not all of ZFS features. Most notably RAID-Z and data deduplication are missing.

What does work with btrfs is snapshotting, copy-on-write, checksumming and using multiple disks as a single volume. GNU cp recently got a neat "reflink" function to copy files as copy-on-write duplicates.

ZFS-FUSE seems more stable than btrfs, so if you go with Linux that may be an option (http://zfs-fuse.net/). Most features of Solaris ZFS are implemented. Can't find up-to-date performance benchmarks, though.

For a rock solid solution, I'd still say go with Linux and XFS. If you need snapshotting, add LVM2. If you need Software-RAID, add mdadm.

Solution 2:

As of today (2012-02-01) btrfs still lacks an fsck utility, meaning that all your data is at risk if your system crashes (think kernel panic, power loss, and many other scenarios). I've experienced this data loss first-hand. If you're looking for data security (and who isn't?) then avoid btrfs. As of right now BTRFS is for experimenting filesystem junkies or non-essential data.

Of course you should keep backups of valuable data anyways, right?

For an ultra-stable alternative use ZFS on PC/FreeBSD 9. ZFS is a trustworthy enterprise filesystem that's been around many years. RAIDZ2 is a life saver.

Solution 3:

As others have mentioned, Btrfs is still experimental, so you probably don't want to rely on Btrfs just yet.

People generally seem happy with ZFS on BSD, but you might also want to consider running ZFS on Solaris.

The BSD port of ZFS is probably the most mature port, but it still lags a few versions behind ZFS on Solaris, so you won't get all the latest features right away. As of FreeBSD 8.0, only ZFS version 13 is supported--so, for example, you won't get deduplication (which was introduced in ZFS version 21). You also won't get iSCSI with FreeBSD 8.0.

If you want the latest ZFS features as they're introduced, you may want to opt for OpenSolaris or Oracle Solaris, or Nexenta (a Solaris derivative with a GNU userland).

Solution 4:

As others have already pointed out, BTRFS is not really production quality yet, so if you need something that works today, ZFS is a better bet.

For some background on BTRFS, and how it differs from ZFS, see this LWN article.

Solution 5:

I'm still a ZFS user (on both Solaris and Linux) however, on the latter, I would now consider btrfs as its latest (March 2012) release includes new features, performance improvements, bug fixes, and the very expected release of a btrfsfsck with repair capabilities.

According to that press release, the Btrfs file system is now production-ready.