btrfs raid5 and raid6, some progress

I see a pull request for the Raid 5/6 code http://www.mail-archive.com/linux-btrfs@vger.kernel.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).

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s