Friday, May 21, 2010

Shifting gears to Btrfs

Btrfs (pronounced Butter FS) is still marked as experimental in the Linux kernel yet several distros have already begun making it available as technology previews (most recently OpenSUSE). MeeGo even goes so far as to make it the default filesystem. At this point in time, Btrfs is barely 2 years old yet it's already considered stable enough for the brave of heart to try out. Even Ubuntu is considering making it the default filesystem should certain criteria be met in time.

Btrfs marks the transition to a new kind of filesystem. With the advent of multicore computing, resources have become abundant enough for features that were previously too costly to now be considered viable. And those features aren't just for the sake of more features, too.

Checksums - Data and metadata will be checksummed and verified. As hard disks grow larger, the number of errors will inevitably rise. Providing a mechanism to ensure anything written to disk is correct will no longer be optional.

Transparent compression - Even as hard disks grow exponentially larger, there's always a need for more particularly with media content taking center stage. Optional compression will allow more efficient use of available space.

Multiple device support - No longer will RAID be an enterprise-only feature. Btrfs will bring RAID-like capabilities to the masses (optional, of course) and you don't even need RAID hardware for it. With traditional RAID, the filesystem is unaware that the underlying storage device is not a single physical disc. Btrfs will know that the underlying storage is a group of storage disks and can be configured to move out data from failing hard disks before it's too late.

There's more, of course.

Extents-based storage, online fsck, online defragmentation, subvolumes, snapshotting, and more are planned. Many are already available in the current unstable version. More distros adopting btrfs as a technology preview only means more testers for the in-development filesystem. That translates to a faster rate of evolution, and a better stable release in future.