Kent Overstreet 发布了 Bcachefs 1.38.0 文件系统。该版本包含两个软件包:bcachefs-kernel-dkms,其中包含一个使用动态内核模块支持 (DKMS) 系统构建的内核模块;以及 bcachefs-tools,其中包含用户空间 bcachefs 实用程序,该实用程序实现了用于创建 (mkfs)、挂载、恢复和验证文件系统的命令。这些软件包已针对特定环境编译。 Debian, Ubuntu 预计 Arch LinuxFedora、openSUSE 和 NixOS 等操作系统都支持 DKMS 模块。该模块支持内核。 Linux从 6.16 开始。
Bcachefs 项目旨在开发一种文件系统,将 Btrfs 和 ZFS 的高级功能与 XFS 的性能、可靠性和可扩展性相结合。Bcachefs 支持多种特性,例如每个分区可连接多个设备、多层存储布局(底层基于高速 SSD 存储频繁访问的数据,顶层基于硬盘存储访问频率较低的数据)、数据复制(RAID 1/10)、缓存、透明数据压缩(LZ4、gzip 和 ZSTD 模式)、状态切片(快照)、使用校验和进行完整性验证、纠错码以及加密数据存储(使用 ChaCha20 和 Poly1305)。
在新版本中:
- 用于跟踪已释放块集的 need_discard Btree 结构已从设备/存储桶对索引切换到日志索引号索引。此更改提高了 need_discard 结构的性能,并消除了在挂载元数据可用块不足的文件系统时,日志恢复期间发生的死锁。
- 日志写入操作已移至单独的 FIFO 队列,并且同时日志写入操作的最大数量已从 16 增加到 256,这提高了具有密集写入负载的大型存储系统的性能。
- 挂载包含大量快照的文件系统速度已显著提升。
值得一提的是,NASty 0.0.3 版本也已发布,这是一个用于使用通用硬件创建网络附加存储 (NAS) 设备的开发发行版。该发行版基于 NixOS 软件包构建,采用 Bcachefs 文件系统,支持通过 NFS 和 SMB 进行文件共享,以及通过 iSCSI 和 NVMe-oF 进行块设备导出。管理界面为 Web 界面。安装 ISO 镜像大小为 1.9 GB。该项目采用 GPLv3 许可证。Web 界面使用 TypeScript 和 SvelteKit 框架编写。存储和系统管理引擎则使用 Rust 编写。
更新会自动下载并安装。系统采用原子性更新,如果新版本中检测到问题,可以回滚到之前的状态。Web 界面提供文件系统、快照、子项、磁盘、虚拟机和共享访问的管理选项。Web 界面包含一个内置文件管理器和一个在浏览器中运行的终端模拟器。用户可以创建规则,以便在磁盘空间占用过高、驱动器故障或过热时执行相应操作并向管理员发出警报。
该发行版支持使用基于 QEMU/KVM 的虚拟化和 k3s 运行时实现容器隔离,从而支持启动隔离环境和应用程序。用户可以直接通过 WebUI 安装 Helm Chart,以在容器中启动应用程序并通过 Nginx Ingress 配置访问转发。该发行版支持与 Kubernetes 平台集成,并提供 CSI 驱动程序以实现动态存储分配。默认情况下,该发行版会发送包含匿名化数据的遥测信息,例如驱动器数量和存储大小(可在“设置 → 遥测”部分禁用遥测功能)。
选择 Bcachefs 而不是 ZFS 的原因包括:积极的开发、根据 GPL 许可证分发、简单的文件系统操作模型、子分区和快照(没有数据集、zvol 和嵌套池等复杂概念),以及具有高级功能,例如自动将不常用的数据移动到速度较慢的驱动器、纠错码和损坏恢复,而不会中断文件系统的工作。
NASty 0.0.3 版本中的诸多变化中,以下几点尤为突出:
- 过渡到使用nix flake机制进行打包和依赖管理;
- 支持 VPN Tailscale 用于通过 VPN 转发 NVMe-oF;
- k3s 运行时集成;添加 NUT(网络 UPS 工具)以监控不间断电源设备;
- 基于 Web 的控制面板,用于微调 NFS、SMB 和 iSCSI(包括选择 I/O 调度程序、日志记录和元数据备份的选项);
- Bcachefs 的其他设置(管理纠错码、选择校验和算法、在线重新平衡等);
- Cachix缓存支持,可加快更新速度;
- 产生的可能性 TLS证书 通过 Let's Encrypt;
- 包含 iotop-c、btop、fwupd、rsync 和 croc 工具。

来源: opennet.ru
