Offers the performance and reliability of EXT4 and XFS

Aug 21, 2015 23:00 GMT  ·  By

Kent Overstreet, one of the maintainers of the bcache filesystem (also known as bcachefs), had the great pleasure of announcing the general availability of the project, which aims to be a general purpose POSIX file system.

Having many of the nifty features of the ZFS and Btrfs file systems, bcachefs has evolved in the last few years and promises to offer the same performance and reliability as the consecrated EXT4 and XFS file systems. It aims to be a modern COW (Copy-On-Write) filesystem with features like caching, compression, and checksumming.

Among some of its highlights, we can mention support for multiple devices, support for zlib for compression, crc32c and 64-bit support for checksum, support for formatting multiple devices simultaneously with bcacheadm, as well as to assign these devices to different tires, thanks to the built-in caching/tiering functionality.

"For those who haven't kept up with bcache, the bcache codebase has been evolving/metastasizing into a full blown, general purpose posix filesystem - a modern COW filesystem with checksumming, compression, multiple devices, caching, and eventually snapshots and all kinds of other nifty features," says Kent Overstreet.

What's coming next for bcachefs

While bcachefs is available for anyone who wants to take it for a test drive, it would appear that some of the features are limited or missing, so we recommend you to wait a little longer for it to become more mature and gain some of those super powers of the ZFS and Btrfs file systems.

Among these, we can mention snapshots, erasure coding, writeback caching between tiers, as well as native support for Shingled Magnetic Recording (SMR)  drives and raw flash. If you want to see some dbench numbers on how the bcache filesystem performs, and more details about the current limitations, we recommend reading the official announcement.

To test bcachefs right now, you will have to install the bcache-dev branch from "http://evilpiepirate.org/git/linux-bcache.git bcache-dev" and the development branch of bcache-tools from "http://evilpiepirate.org/git/bcache-tools.git dev", and format/mount an empty partition using the following commands.

code
bcacheadm format -C /dev/sda1
mount -t bcache /dev/sda1 /mnt