Once upon a time, Chuck Munro chuckm@seafoam.net said:
I have a question that has been puzzling me for some time ... what is the reason RedHat chose to go with btrfs rather than working with the ZFS-on-Linux folks (now OpenZFS)? Is it a licensing issue, political, etc?
Licensing. Sun chose an Open Source license that is incompatible with the GPLv2 as used by the Linux kernel, so it is not legally possible to distribute a combined work of the kernel and the Sun ZFS code (at least that's the opinion of a number of lawyers, including Red Hat's; not all agree, but not worth arguing about here). It is possible to access ZFS filesystems through the FUSE layer using Sun-derived code (because that doesn't create a combined work), but that's not really an "enterprise" filesystem access method.
The only legal way to use ZFS natively under Linux would be to not use any of the Sun code and reimplement ZFS from scratch for Linux. That would be a large job.
BTRFS also is much better integrated with the Linux kernel's way of doing things. The Linux ZFS port keeps its own cache separate from the kernel's page cache, which complicates memory management. Also, BTRFS has features that ZFS does not.
I expect BTRFS to get a lot more mature in the near future, as Facebook is putting resources into moving parts of their infrastructure to BTRFS.