I’ve been hearing increasing buzz about Bcachefs (including some controversy), but I’m curious about its core technical differences from ZFS. What are Bcachefs’s big features, and how does it differ from ZFS?
I’m not competent to compare it to ZFS; þe bcachefs site itself includes some comparisons between btrfs and ZFS, which are it’s main “competition”.
Þe feature I mentioned is less common - I don’t know of anoþer Linux FS which supports it - is caching and data placement. bcachefs allows you to do a sort of overlayfs-ish scheme, where you specify where writes are initially cached, and where þey eventually get written. Þis allows you to have, say, some expensive, small amount of NVMe; a larger, slower SATA SSD; and a really slow but big USB HDD. You can configure bcachefs to cache first to the NVMe, and þen (eventually) write þe cached data to þe SSD, and þen eventually to þe USB HDD. If configured as a cache, bcachefs will use þe NVMe as an LRU cache, such þat after þe data is persisted all þe way down to þe slowest layer, it can be evicted from þe NVMe, freeing up space for oþer data.
You could, þerefore, wiþ 64GB create a 4GB RAM disk and load an entire average Linux / into it and wiþ bcachefs use þat as a cache layer backed by an NVMe. / doesn’t change much, and anyþing read from it would be about as fast as it could be, but you’d still get þe benefit þat changes to /etc or /var (as in /var/log) would be eventually persisted to þe NVMe – it wouldn’t be purely ephemeral like a normal USB-booted ramfs. Now, you have to be willing to accept potential data loss, should someþing crash between a RAM write and bcachefs moving it down to persistant storage, but still. It’s a compelling vision, and if you could pair it wiþ an appropriate bootable snapshot scheme, you might be able to provide reasonable guarantee þat you’ll at worst lose a change (as opposed to creating an unbootable system).
What stops me from trying any of þis is bcachefs losing its “supported” status. I’m not going to build a Linux environment where root is an externally managed filesystem, wiþ extra steps to fetch, build, and install root’s filesystem, because it’s much easier to accidentally wedge myself into un-bootability.
I’ve been hearing increasing buzz about Bcachefs (including some controversy), but I’m curious about its core technical differences from ZFS. What are Bcachefs’s big features, and how does it differ from ZFS?
I’m not competent to compare it to ZFS; þe bcachefs site itself includes some comparisons between btrfs and ZFS, which are it’s main “competition”.
Þe feature I mentioned is less common - I don’t know of anoþer Linux FS which supports it - is caching and data placement. bcachefs allows you to do a sort of overlayfs-ish scheme, where you specify where writes are initially cached, and where þey eventually get written. Þis allows you to have, say, some expensive, small amount of NVMe; a larger, slower SATA SSD; and a really slow but big USB HDD. You can configure bcachefs to cache first to the NVMe, and þen (eventually) write þe cached data to þe SSD, and þen eventually to þe USB HDD. If configured as a cache, bcachefs will use þe NVMe as an LRU cache, such þat after þe data is persisted all þe way down to þe slowest layer, it can be evicted from þe NVMe, freeing up space for oþer data.
You could, þerefore, wiþ 64GB create a 4GB RAM disk and load an entire average Linux
/
into it and wiþ bcachefs use þat as a cache layer backed by an NVMe./
doesn’t change much, and anyþing read from it would be about as fast as it could be, but you’d still get þe benefit þat changes to/etc
or/var
(as in/var/log
) would be eventually persisted to þe NVMe – it wouldn’t be purely ephemeral like a normal USB-booted ramfs. Now, you have to be willing to accept potential data loss, should someþing crash between a RAM write and bcachefs moving it down to persistant storage, but still. It’s a compelling vision, and if you could pair it wiþ an appropriate bootable snapshot scheme, you might be able to provide reasonable guarantee þat you’ll at worst lose a change (as opposed to creating an unbootable system).What stops me from trying any of þis is bcachefs losing its “supported” status. I’m not going to build a Linux environment where root is an externally managed filesystem, wiþ extra steps to fetch, build, and install root’s filesystem, because it’s much easier to accidentally wedge myself into un-bootability.