Bcachefs is a copy-on-write file system for Linux-based operating systems.
It seems that the efforts of the author of BcacheFS have borne fruit, since recently it became known the news that his file system, has finally managed to be accepted and merged into the Linux kernel code, being specific in the linux-next branch (which tests features for future versions of the Linux kernel).
And for just over 3 years Kent Overstreet, author of BcacheFS, has worked hard on polishing his file system so that it can be included in the code of the main branch of the Linux Kernel.
Even though BcacheFS has been accepted and merged into the linux-next branch, the request extract to to include code by BcacheFS in the main branch it was rejected by Linus Torvalds, to which in comments from the father of Linux, he recommended Kent Overstreet to first evaluate the suitability of the patches proposed in the experimental branch of Linux-next, so if the review is successful, BcachefsFS could be included in the 6.7 kernel, whose launch is expected in December.
For those who do not know about BcachefsFS, you should know that this is a file system developed using technologies already tested in development of the Bcache block device, designed to cache access to slow hard drives on fast SSDs (included in the kernel since version 3.10).
screenshot that Bcachefs has already been accepted on Linux
Bcachefs uses a copy-on-write mechanism (COW) in which changes do not cause data to be overwritten: the new state is written to a new location, after which the current state pointer is changed.
The goal of Bcachefs is to achieve the level of performance, reliability and scalability of XFS, by while providing additional Btrfs and ZFS features such as multi-device partitioning, multi-layer drive layouts, replication (RAID 1/10), transparent data and caching, compression in LZ4, gzip and ZSTD modes, health outages, integrity using checksums, the ability to store Reed-Solomon error correction codes (RAID 5/6), storage of information in encrypted form (ChaCha20 and Poly1305 are used).
In terms of performance, Bcachefs is ahead of Btrfs and other file systems based on the copy-on-write mechanism and demonstrates an operating speed close to Ext4 and XFS.
A special feature by Bcachefs is support for multi-layer drive connections, in which the storage is made up of several layers: the faster drives (SSD) are connected to the lower layer, which is used to cache frequently used data, and the upper layer is made up of faster disk drives. Spacious and economical that provide storage for less used data.
Write-back mode caching can be used between layers. Drives can be dynamically added and detached from a partition without stopping use of the file system (data migrates automatically).
It is worth mentioning that of the latest achievements In the development of Bcachefs, the stabilization of the implementation of writable snapshots stands out. Compared to Btrfs, snapshots in Bcachefs now scale much better and are free of the problems inherent in Btrfs. In practice, snapshots have been tested to work when organizing MySQL backups.
Regarding future plans include the desire to use the Rust language when developing Bcachefs. According to the Bcachefs author, who likes programming instead of debugging code, it would be crazy to write code in C now that a better option is available.
Rust already participates in Bcachefs in the implementation of some utilities that run in user space. Additionally, the idea is brewing to gradually rewrite Bcachefs completely in Rust, as using this language significantly saves debugging time.
Source: https://www.phoronix.com