As far as I understand, you always need an fsck tool. You can design a COW FS to make sure that if a OS crash or a power failure happens in the middle of a write, you can restore back to the last flushed coherent state.
But that only deals with OS crashs or power failures. If you have a disk error for instance, and you manage to extract the data out of the disk, you may want to rebuild a coherent state which omits the corrupted parts. But to be honest, I don't know how btrfs does that or if it does. I've been using btrfs for 6month and came back to ext4 due to the silly metada allocation space full which did not reported the FS as being full and prevented me from booting my OS three times after I upgrade the distribution. Believe, when you have no internet access and you tries to fix that from a busybox emergency environment, it drives you crazy not to even be able to issue "rm" because you get ENOSPC. I got angry and reformatted all my volume, even if i know that this issue has been addressed since then.
Anyway, fsck was just an example for my point, the compression or dedup cases still apply.
But that only deals with OS crashs or power failures. If you have a disk error for instance, and you manage to extract the data out of the disk, you may want to rebuild a coherent state which omits the corrupted parts. But to be honest, I don't know how btrfs does that or if it does. I've been using btrfs for 6month and came back to ext4 due to the silly metada allocation space full which did not reported the FS as being full and prevented me from booting my OS three times after I upgrade the distribution. Believe, when you have no internet access and you tries to fix that from a busybox emergency environment, it drives you crazy not to even be able to issue "rm" because you get ENOSPC. I got angry and reformatted all my volume, even if i know that this issue has been addressed since then.
Anyway, fsck was just an example for my point, the compression or dedup cases still apply.
Comment