Hi, I've read btrfs roadmap and skimmed through the code trying to learn about self-healing in btrfs. Sadly I found none. If I understand correctly, upon detecting checksum error btrfs will only report it via printk() (in csum_tree_block()). Self-healing is most important feature of ZFS for me.
Little digress, what is self healing? When ZFS detects checksum error, it will re-read other copy of data, check if other checksums is correct (it should be) and return correct data to userspace. Correct data is also written to the first block, which failed checksum check. Where this "other copy of data" comes from? It could be block mirrored on other disk in RAID1-like setup. ZFS also allows per-filesystem (per-subvolume) setting to store normal data in more than one copy. So with copies=3, 4 KB file will use 12KB of disk space but will be lot safer than with copies=1. As far as I understand, to have self healing in btrfs, first multiple devices spanning and configuration like raid1 must be implemented. Also multiples copies per subvolume (via btrfsctl I suppose) would be nice to have. Device spanning is in Roadmap. But what with other features? When they're planned? -- Tomasz Torcz _______________________________________________ Btrfs-devel mailing list [email protected] http://oss.oracle.com/mailman/listinfo/btrfs-devel
