Kent Overstreet, the original developer of the bcache block caching system for Linux, has been developing bcachefs which he refers to as "The COW filesystem for Linux that won't eat your data" for awhile now and I was curious if anyone has had a chance to give it a spin.
I've been running Btrfs on my primary workstation for a number of years without incident, though, the fact that I've avoided RAID5/6 like the plague probably has a lot to do with my success. I've been meaning to upgrade my primary SSD and do a clean install for awhile now and it's tempting to give bcachefs a shot. As bcachefs is based on the widely deployed and tested bcache code I'm reasonably confident in its stability but in the event it does eat my data I have backups. The primary thing that's holding me back is the lack of support snapshots which Kent freely admits is "by far the most complex of the remaining features to implement" and there's nary a mention of it on the TODO which worries me a bit.
Anyway, I was just wondering if anyone had experimented with bcahcefs yet.
Feature status:
homepage: bcachefs
git: evilpiepirate.org/git/bcachefs.git
Patreon: Kent Overstreet is creating bcachefs - a next generation Linux filesystem | Patreon
mailing list: Majordomo Lists at VGER.KERNEL.ORG
irc: irc://irc.oftc.net/#bcache
The bcachefs filesystem [LWN.net] - 25 August 2015
Bcachefs - encryption, fsck, and more - 15 March 2017
A new bcachefs release [LWN.net] - 16 March 2017
I've been running Btrfs on my primary workstation for a number of years without incident, though, the fact that I've avoided RAID5/6 like the plague probably has a lot to do with my success. I've been meaning to upgrade my primary SSD and do a clean install for awhile now and it's tempting to give bcachefs a shot. As bcachefs is based on the widely deployed and tested bcache code I'm reasonably confident in its stability but in the event it does eat my data I have backups. The primary thing that's holding me back is the lack of support snapshots which Kent freely admits is "by far the most complex of the remaining features to implement" and there's nary a mention of it on the TODO which worries me a bit.
Anyway, I was just wondering if anyone had experimented with bcahcefs yet.
Feature status:
- Full data checksumming
Fully supported and enabled by default. We do need to implement scrubbing, once we've got replication and can take advantage of it.
- Compression
Not quite finished - it's safe to enable, but there's some work left related to copy GC before we can enable free space accounting based on compressed size: right now, enabling compression won't actually let you store any more data in your filesystem than if the data was uncompressed
- Tiering/writeback caching:
Bcachefs allows you to specify disks (or groups thereof) to be used for three categories of I/O: foreground, background, and promote. Foreground devices accept writes, whose data is copied to background devices asynchronously, and the hot subset of which is copied to the promote devices for performance.
Basic caching functionality works, but it's not (yet) as configurable as bcache's caching (e.g. you can't specify writethrough caching).
- Replication
All the core functionality is complete, and it's getting close to usable: you can create a multi device filesystem with replication, and then while the filesystem is in use take one device offline without any loss of availability.
- Encryption
Whole filesystem AEAD style encryption (with ChaCha20 and Poly1305) is done and merged. I would suggest not relying on it for anything critical until the code has seen more outside review, though.
- Snapshots
Snapshot implementation has been started, but snapshots are by far the most complex of the remaining features to implement - it's going to be quite awhile before I can dedicate enough time to finishing them, but I'm very much looking forward to showing off what it'll be able to do.
- Mount time
We currently walk all metadata at mount time (multiple times, in fact) - on flash this shouldn't even be noticeable unless your filesystem is very large, but on rotating disk expect mount times to be slow. This will be addressed in the future - mount times will likely be the next big push after the next big batch of on disk format changes.
homepage: bcachefs
git: evilpiepirate.org/git/bcachefs.git
Patreon: Kent Overstreet is creating bcachefs - a next generation Linux filesystem | Patreon
mailing list: Majordomo Lists at VGER.KERNEL.ORG
irc: irc://irc.oftc.net/#bcache
The bcachefs filesystem [LWN.net] - 25 August 2015
Bcachefs - encryption, fsck, and more - 15 March 2017
A new bcachefs release [LWN.net] - 16 March 2017