Release of Bcachefs 1.38.0. NASty distribution for deploying NAS based on Bcachefs

Kent Overstreet has released version 1.38.0 of the Bcachefs filesystem. The release covers two packages: bcachefs-kernel-dkms, which includes a kernel module built using the DKMS (Dynamic Kernel Module Support) system, and bcachefs-tools, which provides a user-space utility for Bcachefs that implements commands for creating (mkfs), mounting, recovering, and checking the FS. The packages are built for Debian, Ubuntu, and are expected for Arch Linux, Fedora, openSUSE, and NixOS. The DKMS module supports Linux kernels starting from 6.16.

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).

In the new version:

  • The need_discard B-tree structure, used to track freed block sets, has been changed to index by log sequence number instead of a device/bucket pair. This change has improved the performance of the need_discard structure and prevented deadlocks during log recovery when mounting the FS with insufficient free blocks for metadata.
  • Journal write operations have been moved to a separate FIFO queue, and the maximum number of concurrent journal write operations has been increased from 16 to 256, which has accelerated the performance of large storage systems under heavy write load.
  • The mounting of FS with a large number of snapshots has been significantly accelerated.

Additionally, the release of the NASty project 0.0.3 can be noted, which develops a distribution for creating network-attached storage (NAS) based on standard hardware. The distribution is built on the NixOS package base, uses the Bcachefs filesystem, and supports file access via NFS and SMB, as well as block device export through iSCSI and NVMe-oF. Management is conducted through a web interface. The size of the installation ISO image is 1.9 GB. The project’s developments are distributed under the GPLv3 license. The web interface is written in TypeScript using the SvelteKit framework. The storage and system management engine is implemented in Rust.

Updates are downloaded and installed automatically. The system updates atomically with the ability to revert to a previous state when issues are detected in the new version. The web interface offers capabilities for managing file systems, snapshots, partitions, disks, virtual machines, and sharing. There is a built-in file manager and terminal emulator that work in the browser. Rules can be created to perform actions and notify the administrator in case of excessive disk space consumption, storage failures, and overheating.

Support is provided for running isolated environments and applications, using virtualization based on QEMU/KVM and container isolation via the k3s runtime (it is possible to install Helm charts directly from the WebUI to run applications in containers and configure access through nginx ingress). Integration with the Kubernetes platform is supported, for which a CSI driver is provided for dynamic storage allocation. The default distribution sends telemetry with anonymized data about the number of storage devices and storage size (telemetry can be disabled in the 'Settings → Telemetry' section).

Reasons for choosing Bcachefs over ZFS include active development, distribution under the GPL license, a simple model for working with file systems, partitions, and snapshots (without complicated concepts like datasets, zvols, and nested pools), and the presence of advanced features such as automatic relocation of rarely used data to slower storage, error correction codes, and damage recovery without stopping work with the file system.

Changes in version NASty 0.0.3 include:

  • transition to using the nix flake mechanism for packaging and managing dependencies;
  • disabling the tracker blocking VPN Tailscale for NVMe-oF over VPN;
  • integration of k3s runtime; addition of NUT (Network UPS Tools) for monitoring uninterruptible power supply devices;
  • web panel for fine-tuning NFS, SMB, and iSCSI (including options for selecting the I/O scheduler, journaling, and metadata backup);
  • additional settings for Bcachefs (managing error correction codes, selecting checksum algorithms, online rebalancing, etc.);
  • support for Cachix cache to speed up the delivery of updates;
  • generation capability for TLS certificates through Let’s Encrypt;
  • inclusion of utilities iotop-c, btop, fwupd, rsync, and croc.

Release of Bcachefs 1.38.0. NASty distribution for deploying NAS based on Bcachefs

Source: opennet.ru

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster