Posts for: #file-system

OpenZFS/ZFS on Linux Releases Versions 2.2.2 and 2.1.14, Addressing Critical Data Corruption Issue

OpenZFS has released versions 2.2.2 and 2.1.14 to address a critical data corruption issue.

The bug, which was discovered due to changes in cp in coreutils 9.x, could cause data corruption due to an incorrect dirty dnode check. While it is unlikely that the bug was encountered on EL7, EL8, or EL9 when running cp, it is still recommended that users upgrade to either version 2.2.2 or 2.1.14 to ensure the fix is applied.

In addition to the data corruption fix, the release includes several other bug fixes and improvements. These include fixing ZFS so that snapshots under .zfs/snapshot are NFS visible on FreeBSD, addressing compatibility issues with Linux 6.6, and fixing build and shell-init errors on FreeBSD.

For a full list of changes and bug fixes, refer to the release notes.

OpenZFS Continues to Grapple with Data Corruption Challenges

Last week saw the release of OpenZFS 2.2.1, which was initially believed to have fixed a data corruption issue attributed to a block cloning bug in a new feature introduced in the v2.2 release. However, further investigation over the US holiday weekend revealed that the block cloning feature was not the root cause, and both v2.2.1 and pre-v2.2 releases remain susceptible to data corruption.

It has been discovered that the data corruption bug affects not only the v2.2 release but also older versions of OpenZFS. While real-world instances of data corruption are believed to be limited, scripting can reproduce the issue. Additionally, it is now understood that the OpenZFS 2.2 block cloning feature increases the likelihood of encountering the problem.

The FreeBSD project has issued an advisory regarding the OpenZFS data corruption issue and recommends a workaround involving setting sysctl vfs.zfs.dmu_offset_next_sync=0 to “drastically reduce the likelihood” of experiencing the problem.

A pending pull request on GitHub is anticipated to address the OpenZFS data corruption issue. Hopefully, a new OpenZFS point release will be available soon, effectively resolving the data corruption problem.

Source: Phoronix.

ZFS on Linux (OpenZFS) Unveils Important Version 2.2.1 Update

ZFS on Linux (OpenZFS), the open-source implementation of the ZFS file system and volume manager, has released an important update, version 2.2.1. Users are recommended to update to this release, especially if they are currently running 2.2.0, to avoid the block cloning bug. Users running older versions of ZFS are unaffected by this issue.

Changes in version 2.2.1 include:

  • Disabling block cloning by default to fix a block cloning bug that could result in data corruption
  • Adding a tunable to disable BRT support
  • Auto-generating changelog during configure for packaging
  • Compatibility updates for Linux 6.6
  • Various bug fixes and optimizations

Supported Platforms:

  • Linux: compatible with 3.10 - 6.6 kernels
  • FreeBSD: compatible with releases starting from 12.2-RELEASE

For more information and to download the latest release, visit the OpenZFS GitHub page.

Bcachefs Joins Linux 6.7 Kernel

Bcachefs, an open-source file system, has been surprisingly merged into Linux 6.7, less than 24 hours after its submission. This quick approval by Linus Torvalds comes as a surprise, considering the previous challenges in getting Bcachefs integrated. The file system spent the entire 6.6 cycle within Linux-Next before being merged. It was developed by Kent Overstreet and is initially regarded as an experimental file system.

Source: Phoronix.

Btrfs Introduces Exciting Enhancements for Linux 6.7

Phoronix reports that Btrfs, the file system for Linux, will be introducing three new features in version 6.7. These features include a RAID stripe tree, simple quota accounting, and temporary file-system ID (FSID) support. The FSID support is particularly notable as it was a feature requested by Valve for their Steam Deck. The Btrfs feature work was carried out by Igalia on behalf of Valve.

The Btrfs pull request for Linux 6.7 provides more details on these features:

  • RAID stripe tree: This new tree is used for logical file extent mapping, especially in zoned mode to implement RAID0 and RAID1 profiles. It can also be used in non-zoned mode. Support for RAID56 is currently being developed. Enabling this feature requires configuring it at the time of creating the file system.
  • Simple quota accounting (squota): This feature provides a simplified mode of qgroup that accounts for all space on the initial extent owners (subvolumes). It makes creating and deleting snapshots more efficient, particularly for container use cases. Enabling this feature is backward incompatible but can be done on an existing file system.
  • Temporary filesystem FSID (temp_fsid): The FSID is a unique identifier for a filesystem and is hard-coded in the structures, which prevents mounting the same FSID on different devices. With this feature, a new temporary FSID can be generated on mount, allowing for root partition A/B testing or for use with VM root images.

The article also mentions performance improvements in Btrfs for Linux 6.7. One improvement is the reduction of reservations for checksum deletions, resulting in a 12% decrease in deletion time for files with many extents. Additionally, work has been done to make extent state merges more efficient during insertions, reducing the runtime of critical functions by 5%.

It is worth noting that Btrfs in Linux 6.7 removes its integrity check functionality and includes various other low-level code improvements.

Source: Phoronix.

Stratis 3.6 Released

Red Hat engineers have released Stratis 3.6, an incremental update to their Linux storage solution. Stratis, which utilizes the Rust programming language and is built on the XFS file-system and LVM, aims to provide functionality similar to ZFS and Btrfs. However, its adoption in the wild remains limited.

Stratis 3.6 introduces several new features and improvements. Users can now set size limits on file-systems, ensuring better control over storage usage. The release also includes a persistent keyring for Clevis, which enhances security. D-Bus handling has been improved, allowing for better communication when a device grows or a pool is extended. Additionally, the update includes various maintenance tasks and code cleaning.

For those interested in trying out Stratis 3.6, the daemon release can be downloaded from the official Stratis-Storage GitHub page.

Overall, the latest release of Stratis continues to enhance Linux storage management. While still gaining traction, Stratis provides becoming a viable option for those in need of modern storage management in their Linux environments.

For more details on Stratis 3.6, please visit the Stratis-Storage GitHub page.

Source: Phoronix.