Kent Overstreet has released version 1.37.0 of the Bcachefs filesystem. The release includes two packages: bcachefs-kernel-dkms with a kernel module built using the DKMS (Dynamic Kernel Module Support) system, and bcachefs-tools with a user-space utility implementing commands for creating (mkfs), mounting, recovering, and checking the filesystem. The packages are built for Debian, Ubuntu, Fedora, openSUSE, NixOS, and Arch Linux. The DKMS module supports Linux kernels starting from 6.16.
In the new version:
- Stabilization and public readiness of error correction codes, which allow for the recovery of corrupted data similar to RAID 5/6, have been announced. The implementation is based on Reed-Solomon encoding, capable of correcting up to N errors in a stripe with N redundant blocks. Automatic recovery of degraded stripes has been ensured. The ability to apply recovery codes in configurations with drives of different sizes has been added.
- Support for the in-development Linux kernel 7.0 has been added.
- New commands have been implemented: 'subvolume list' for outputting subvolumes with filtering and sorting; 'subvolume list-snapshots' for showing snapshots in a tree format; 'subvolume reflink-option-propagate' for applying file I/O parameters such as compression, checksum, replica count, and target device list to file extents.
- The rewind operation of the journal has been stabilized.
- Automatic recovery is ensured when using devices with incorrect support for commands to flush cached write operations to the drive (flush and FUA).
- Recovery after an improper shutdown has been accelerated.
- The performance of filesystems spanning multiple devices has been enhanced.
- The user-space utilities of bcachefs have been rewritten in Rust. In the future, it is planned to rewrite the filesystem components operating at the kernel level in Rust as well. Work has begun on using the Verus toolchain for formal verification of Rust code.
The Bcachefs project is developing a filesystem aimed at combining extended functionality characteristic of Btrfs and ZFS, with the performance, reliability, and scalability typical of XFS. Bcachefs supports features such as including multiple devices in a partition, layered storage layouts (with the lower layer consisting of frequently accessed data on fast SSDs and the upper layer containing less frequently accessed data from hard drives), replication (RAID 1/10), caching, transparent data compression (using LZ4, gzip, and ZSTD modes), state snapshots, integrity verification via checksums, error correction codes, and storing information in an encrypted format (utilizing ChaCha20 and Poly1305).
Source: opennet.ru
