> From: zfs-discuss-boun...@opensolaris.org [mailto:zfs-discuss-
> boun...@opensolaris.org] On Behalf Of Harry Putnam
> As a common slob who isn't very skilled, I like to see some commentary
> from some of the pros here as to any comparison of zfs against btrfs.
I recently put my first btrfs system into production. Here are the
similarities/differences I noticed different between btrfs and zfs:
* Obviously, one is meant for linux and the other solaris (etc)
* In btrfs, there is only raid1. They don't have raid5, 6, etc yet.
* In btrfs, snapshots are read-write. Cannot be made read-only without
quotas, which aren't implemented yet.
* zfs supports quotas. Also, by default creates snapshots read-only but
could be made read-write by cloning.
* In btrfs, there is no equivalent or alternative to "zfs send | zfs
* In zfs, you have the hidden ".zfs" subdir that contains your snapshots.
* In btrfs, your snapshots need to be mounted somewhere, inside the same
filesystem. So in btrfs, you do something like this... Create a
filesystem, then create a subvol called "@" and use it to store all your
work. Later when you create snapshots, you essentially duplicate that
subvol "@2011-10-18-07-40-00" or something.
* btrfs is able to shrink. zfs is not able to shrink.
* btrfs is able to defrag. zfs doesn't have defrag yet.
* btrfs is able to balance. (after adding new blank devices, rebalance, so
the data & workload are distributed across all the devices.) zfs is not
able to do this yet.
* zfs has storage tiering. (cache & log devices, such as SSD's to
accelerate performance.) btrfs doesn't have this yet.
* btrfs has no dedup yet. They are planning to do offline dedup. ZFS has
online dedup. I wouldn't recommend zfs dedup yet until performance issues
are resolved, which seems like never. But when and if zfs dedup performance
issues are resolved, online dedup should greatly outperform offline dedup,
both in terms of speed and disk usage.
* zfs has the concept of a zvol, you can export iscsi or format with any
filesystem you like. If you want to do the same in btrfs, you have to create
a file and use it loopback. This accomplishes the same thing, but the
creation time is much longer (zero time versus linear time, could literally
be called "infinitely" longer) ... so this is an advantage for zfs.
* zfs has filesystem property inheritance and recursion of commands like
"snapshot" and "send." Btrfs doesn't.
* zfs has permissions - allow users or groups to create/destroy snapshots
and stuff like that. In btrfs you'll have to kludge something through sudo
* Both are able to grow. (Add devices & storage)
* Neither one has a fsck. They both have scrub. (btrfs calls it "scan" and
zfs calls it "scrub.") (Correction ... In the latest btrfs beta, I see
there exists btrfsck, but I don't know if it's a full fledged fsck. Maybe
it's just a frontend for scan? People are still saying there is no fsck.)
* Both do compression. By default zfs compression is fast but you could use
zlib if you want. By default btrfs uses zlib, but you could opt for fast if
zfs-discuss mailing list