
OpenZFS 2.3.4 has arrived two months later 2.3.3 as a maintenance update that, despite its conservative nature, brings useful changes for demanding administrators: greater compatibility with recent kernels, a new subcommand for data rewriting, and several fixes. In addition, in parallel, the following has been announced: OpenZFS 2.4.0 RC1 with a good handful of improvements that serve as a preview of where the project is going.
In this article we gather and explain in a practical way all the news mentioned in the available sources: what changes in version 2.3.4, what are its supported platforms, what exactly is the new zfs rewrite, and how it all fits into the 2.3 series (including what 2.3.0 introduced).
What OpenZFS 2.3.4 brings
The new stable point release expands the Linux kernel compatibility up to 6.16, when 2.3.3 stopped at 6.15. It maintains backward support to Linux 4.18 and covers FreeBSD since 13.3, including the upcoming 15.0. This expanded compatibility provides peace of mind for those upgrading their base systems without sacrificing advanced ZFS features.
The star of 2.3.4 is the addition of the zfs rewrite subcommand. Along with him, they arrive fixes for FreeBSD, packaging improvements and a set of minor fixes that polish the overall performance. It's a release designed for robustness and maintenance, not for breaking the table with disruptive changes.
zfs rewrite: Relocate data without touching it (and faster)
For years many users have asked for power Rebalance a pool after adding vdevs, defragment randomly written files, or apply new properties to existing data. Until now, the alternatives were copy/rename or by sending/receiving and renaming datasets, solutions with obvious drawbacks (I/O cost, window times, impact on caches and metadata).
The new subcommand allows rewrite the contents of files “as is” but by placing them in another area and with different properties: you can change the site, compression algorithm, checksum, if applicable deduplication, The number of copies and other parameters, keeping the data logically intact.
The grace is that it is faster than reading and rewriting, as it prevents data from being copied to user space. In datasets with sync=always It is also faster because, as there is no modification of data, does not force writes to the ZIL. The process is protected with range locks normal, so it can be run under any load, without blocking the system more than necessary. And, very importantly, does not touch the mtime nor other file properties.
A typical flow could be as simple as running zfs rewrite on one or more target files to relocate them with new internal properties. This 2.3.4 release introduces the base feature; we'll see additional options later, which are being released as part of 2.4 RC1.
Compatibility and platforms
OpenZFS 2.3.4 officially validated Linux 4.18 to 6.16 y FreeBSD 13.3 onwards, including the upcoming 15.0. This broad range facilitates both long-term server deployments and environments that run on the latest kernels.
In the previous cycle, the team released a 2.3 series RC with support for Linux 6.12LTS, an important version for its use in distributions such as CentOS Stream 10 and others. That work has been consolidated, and 2.3.4 reflects continued extended support for modern kernels while maintaining stability.
Fixes and maintenance
In addition to the new subcommand, this version delivers settings in FreeBSD, changes of packaging and several bug fixes Of lesser importance. It's not a mile-long changelog, but rather a collection of tweaks that add stability for production adoptions.
How to download, test, or upgrade to OpenZFS 2.3.4
If you want to get to the point, the OpenZFS 2.3.4 downloads are available on GitHub along with the notes from this release, and many distributions will provide the packages in their stable repositories. Those who prefer can compile from sources and validate in staging environments before deploying to production.
For those who wish to test the immediate future, the team encourages you to try OpenZFS 2.4.0 RC1 and submit feedback. The project itself provides a command to list the RC changes against the reference branch: git cherry -v zfs-2.3-release master | sed '/^-/d; s/+ //g'. It's a quick way to see what patches have been integrated.