I see a pull request for the Raid 5/6 code http://firstname.lastname@example.org/msg22694.html. This means, I believe, that the code has gone into the base btrfs repository, which means a wider group of people will be testing it. Having said that, it’s still missing a few key features, so I wouldn’t be expecting to see it in a Linux kernel for a while, I can’t see that it will make 3.9, and it’d be shaky for 3.10.
Yet to be implemented features look to be:
- Parity logging, which looks to address the situation where a write has occurred to only some disks and a power failure or other crash occurs, which would leave the disks out of sync
- Providing for the scrubbing routines to notice any raid discrepancies, use the checksumming to work out which bits are the incorrect bits, and rewrite the stripe
- Support in the user-space programs (btrfs-progs), which in some circumstances need to be aware of the raid levels
Overall, it feels close, I’m very keen on this as I plan to eventually move my systems over to btrfs for all file systems. In theory this should mean the end of partitioning disks, dealing with different drive sizes in raid sets, creating different arrays for different use cases (one for RAID1, another for RAID0 etc). It should also mean goodbye to silent data corruption, and hello to in-file-system compression for those bits of my file system that are compressible (obviously that doesn’t include any media files such as photos, music and recorded tv, which make up the majority of my storage, but it would include virtual machine images).