v1.10.0
This release contains some fixes and a lot of new features, including ...
- Improved compat with rsync.net.
- Added daemon support for periodic activities every N milliseconds, including for taking snapshots, replicating and pruning.
- Added the bzfs_jobrunner companion program, which is a convenience wrapper around
bzfsthat simplifies periodically creating ZFS snapshots, replicating and pruning, across source host and multiple destination hosts, using a single shared jobconfig script. - Added
--create-src-snapshots-*CLI options for efficiently creating periodic (and adhoc) atomic snapshots of datasets,
including recursive snapshots. - Added
--delete-dst-snapshots-except-planCLI option to specify retention periods like sanoid, and prune snapshots accordingly. - Added
--delete-dst-snapshots-exceptCLI flag to specify which snapshots to retain instead of which snapshots to delete. - Added
--include-snapshot-planCLI option to specify which periods to replicate. - Added
--new-snapshot-filter-groupCLI option, which starts a new snapshot filter group containing separate--{include|exclude}-snapshot-*filter options, which are UNIONized. - Added
anytimeandnotimekeywords to--include-snapshot-times-and-ranks. - Added
all exceptkeyword to--include-snapshot-times-and-ranks, as a more user-friendly filter syntax to say "include all snapshots except the oldest N (or latest N) snapshots". - Log pv transfer stats even for tiny snapshots.
- Perf: Delete bookmarks in parallel.
- Perf: Use CPU cores more efficiently when creating snapshots (in parallel) and when deleting bookmarks (in parallel) and on
--delete-empty-dst-datasets(in parallel) - Perf/latency: no need to set up a dedicated TCP connection if no parallel replication is possible.
- For more clarity, renamed
--force-hardto--force-destroy-dependents.--force-hardwill continue to work as-is for now, in deprecated status, but the old name will be completely removed in a future release. - Use case-sensitive sort order instead of case-insensitive sort order throughout.
- Use hostname without domain name within
--exclude-dataset-property. - For better replication performance, changed the default of
bzfs_no_force_convert_I_to_iformfalsetotrue. If ZFS complains with a "cannot hold: permission denied" error, then the fix is for the ZFS administrator to grant ZFS 'hold' permission to the user on the source datasets, like so: 'sudo zfs allow -u $SRC_USER send,hold tank1/foo'. Or run with 'export bzfs_no_force_convert_I_to_i=false'. Also see openzfs/zfs#16394 - Fixed "Too many arguments" error when deleting thousands of snapshots in the same 'zfs destroy' CLI invocation.
- Make 'zfs rollback' work even if the previous 'zfs receive -s' was interrupted.
- Skip partial or bad 'pv' log file lines when calculating stats.
- For the full list of changes, see v1.9.0...v1.10.0