Changing the subject since this is rather Btrfs specific now.
The block layer has no faulty device handling, i.e. it just reports whatever problems the device or the controller report. Where md/mdadm and md/LVM have implemented policies for ejecting (setting a device to faulty) a block device. Btrfs does not do that, it’ll just keep trying to use a faulty device.
So you have to setup something that monitors for either physical device errors, or btrfs errors or both, depending on what you want.
There’s 1500 to 3000 line changes to Btrfs code per kernel release. There’s too much to backport most of it. Serious fixes do get backported by upstream to longterm kernels, but to what degree, you have to check the upstream changelogs to know about it.
And right now most backports go to only 4.4 and 4.9. And I can’t tell you what kernel-3.10.0-514.10.2.el7.x86_64.rpm translates into, that requires a secret decoder ring near as I can tell as it’s a kernel made from multiple branches, and then also a bunch of separate patches.
Red Hat are working on a new user space wrapper and volume format based on md, device mapper, LVM, and XFS. http://stratis-storage.github.io/
It’s an aggressive development schedule and as so much of it is journaling and CoW based I have no way to assess whether it ends up with its own set of problems, not dissimilar to Btrfs. We’ll just have to see. But if there are underlying guts in the device-mapper that do things better/faster/easier than Btrfs, the Btrfs devs have said they can hook into device-mapper for these things to consolidate code base, in particular for the multiple device handling. By its own vague time table it will be years before it has “rough ZFS features” and again estimating bootloader support, and to what degree other distros pick up on it, it very well could end up being widely adopted, or it could be a Red Hat only thing in practice.
Canonical appears to be charging ahead with OpenZFS included by default out of the box (although not for rootfs yet I guess), and that has an open ended and possibly long window before legal issues get tested. But this is by far the most cross platform solution: FreeBSD, Illumos, Linux, macOS. And ZoL has RHEL/CentOS specific packages.
But I can’t tell you for sure what ZoL’s faulty device behavior is either, whether it ejects faulty or flaky devices and when, or if like Btrfs is just tolerates it.
The elrepo.org folks can still sanely set CONFIG_BTRFS_FS=m, but I
suspect if RHEL unsets that in RHEL 8 kernels, that CentOS will do the same.