I’m thinking of downloading the new kernel and trailing it on a virtual this weekend, at which point I can maybe post some experiences / howto information.
In the meantime, what I see that’s new is an update on the FAQ page. There is support for:
- RAID-5 (many devices, one parity)
- RAID-6 (many devices, two parity)
- The algorithm uses as many devices as are available (see note, below)
- No scrub support for fixing checksum errors
- No support in btrfs-progs for forcing parity rebuild
- No support for discard
- No support yet for n-way mirroring
- No support for a fixed-width stripe (see note, below)
It looks like the fixed-width stripe is the key one. The implication is that it uses all the devices available, so if you happened to have 12 disks, it’d build a 12 disk RAID. This impacts seek times – every disk needs to seek to the right place simultaneously to get that data. Whereas if you had 12 disks and btrfs decided to build stripes using 6 disks, then only 6 disks need to seek simultaneously, and on average you can support two different IO requests in parallel.
Secondly, the balancing code doesn’t yet deal with different sized disks. It sounds like if it didn’t always use as many devices as were available then it would deal OK with mixed size disks, no doubt within limits.
All good progress. I think to use it I’ll have to download and build a new kernel, and download and build a new version of the btrfs progs. We’ll see this weekend maybe.