Skip to content

Releases: jimsalterjrs/sanoid

v2.1.0 — bugfixes, doc improvements, portability

01 Apr 15:47
Choose a tag to compare

Special thanks to @phreaker0 for unceasing work not only on the code itself, but the very real work of maintaining the CHANGELIST and getting releases ready to go. You rock, Christoph!

2.1.0 [overall] documentation updates, small fixes (@HavardLine, @croadfeldt, @jimsalterjrs, @jim-perkins, @kr4z33, @phreaker0)
[syncoid] do not require user to be specified for syncoid (@aerusso)
[syncoid] implemented option for keeping sync snaps (@phreaker0)
[syncoid] use sudo if neccessary for checking pool capabilities regarding resumeable send (@phreaker0)
[syncoid] catch another case were the resume state isn't availabe anymore (@phreaker0)
[syncoid] check for an invalid argument combination (@phreaker0)
[syncoid] fix iszfsbusy check for similar dataset names (@phreaker0)
[syncoid] append timezone offset to the syncoid snapshot name to fix DST collisions (@phreaker0)
[packaging] post install script for debian package to remove old unused snapshot cache file (@phreaker0)
[syncoid] implemented fallback for listing snapshots on solaris (@phreaker0)
[sanoid] remove invalid locks (@phreaker0)
[packaging] removed debian dependency for systemd (@phreaker0)
[sanoid] move sanoid cache and lock files to subdirectories (@lopsided98)
[sanoid] remove 's in monitoring messages (@dlangille)
[findoid] reworked argument parsing and error out if file path is not provided (@phreaker0)
[findoid] also show current file version if available (@phreaker0)
[findoid] handle FileNotFound errors properly (@phreaker0)
[findoid] don't use hardcoded paths (@phreaker0)
[findoid] improve dataset detection by only including mounted datasets (@phreaker0)
[sanoid] pass more information to pre/post/prune scripts and execute them only once per dataset (@tiedotguy, @phreaker0)
[syncoid] implemented option for preserving recordsizes on initial replications (@phreaker0)
[syncoid] fixed send size estimation for latest FreeBSD versions (@phreaker0)
[syncoid] add ability to configure pv (@gdevenyi)
[sanoid] don't use hardcoded paths (@phreaker0)
[syncoid] gracefully handle error when source dataset disappeared (@mschout)

v2.0.3 - more bugfixes

02 Nov 02:10
Choose a tag to compare
  • fix DST bug preventing systemd service from starting
  • fix gentoo packaging bug

v2.0.2 - bugfixes galore

20 Sep 21:01
Choose a tag to compare

In this release we have various FreeBSD-releated fixes, improvements in handling cases where interrupted replication is resumed, fixed snapshot ordering, and more. Note that syncoid picked up a new dependency for Capture::Tiny, aka libcapture-tiny-perl in Ubuntu repos!

v2.0.1 - fix breaking monthly_warn/crit bug in sanoid.defaults.conf

14 Dec 15:48
Choose a tag to compare

Discovered that sanoid.defaults.conf had default monthly_warn of 5 and monthly_crit of 6, meaning that WARN and CRIT would be thrown when the latest monthly snapshot was 5 or 6 days old respectively. Updated to defaults of 32 and 40.

Version 2.0.0 - ZFS bookmarks and more!

13 Dec 15:59
Choose a tag to compare

This one's a whopper, consisting of 6+ months of development by multiple authors - especially Chistoph Klaffl (@phreaker0), who has been an invaluable and tireless contributor to the project. Thanks to all of you who contribute, support, and use Sanoid and Syncoid!

2.0.0 [overall] documentation updates, small fixes, more warnings (@sparky3387, @ljwobker, @phreaker0)
[syncoid] added force delete flag (@phreaker0)
[sanoid] removed sleeping between snapshot taking (@phreaker0)
[syncoid] added '--no-privilege-elevation' option to bypass root check (@lopsided98)
[sanoid] implemented weekly period (@phreaker0)
[syncoid] implemented support for zfs bookmarks as fallback (@phreaker0)
[sanoid] support for pre, post and prune snapshot scripts (@jouir, @darkbasic, @phreaker0)
[sanoid] ignore snapshots types that are set to 0 (@muff1nman)
[packaging] split snapshot taking/pruning into separate systemd units for debian package (@phreaker0)
[syncoid] replicate clones (@phreaker0)
[syncoid] added compression algorithms: lz4, xz (@spheenik, @phreaker0)
[sanoid] added option to defer pruning based on the available pool capacity (@phreaker0)
[sanoid] implemented frequent snapshots with configurable period (@phreaker0)
[syncoid] prevent a perl warning on systems which doesn't output estimated send size information (@phreaker0)
[packaging] dependency fixes (@rodgerd, mabushey)
[syncoid] implemented support for excluding children of a specific dataset (@phreaker0)
[sanoid] monitor-health command additionally checks vdev members for io and checksum errors (@phreaker0)
[syncoid] added ability to skip datasets by a custom dataset property 'syncoid:no-sync' (@attie)
[syncoid] don't die on some critical replication errors, but continue with the remaining datasets (@phreaker0)
[syncoid] return a non zero exit code if there was a problem replicating datasets (@phreaker0)
[syncoid] make local source bwlimit work (@phreaker0)
[syncoid] fix 'resume support' detection on FreeBSD (@pit3k)
[sanoid] updated INSTALL with missing dependency
[sanoid] fixed monitor-health command for pools containing cache and log devices (@phreaker0)
[sanoid] quiet flag suppresses all info output (@martinvw)
[sanoid] check for empty lockfile which lead to sanoid failing on start (@jasonblewis)
[sanoid] added dst handling to prevent multiple invalid snapshots on time shift (@phreaker0)
[sanoid] cache improvements, makes sanoid much faster with a huge amount of datasets/snapshots (@phreaker0)
[sanoid] implemented monitor-capacity flag for checking zpool capacity limits (@phreaker0)
[syncoid] Added support for ZStandard compression.(@danielewood)
[syncoid] implemented support for excluding datasets from replication with regular expressions (@phreaker0)
[syncoid] correctly parse zfs column output, fixes resumeable send with datasets containing spaces (@phreaker0)
[syncoid] added option for using extra identification in the snapshot name for replication to multiple targets (@phreaker0)
[syncoid] added option for skipping the parent dataset in recursive replication (@phreaker0)
[syncoid] typos (@UnlawfulMonad, @jsavikko, @phreaker0)
[sanoid] use UTC by default in unit template and documentation (@phreaker0)
[syncoid] don't prune snapshots if instructed to not create them either (@phreaker0)
[syncoid] documented compatibility issues with (t)csh shells (@ecoutu)

Receive/resume support added

25 Apr 19:28
Choose a tag to compare

Syncoid now supports resumable replication by default when both source and target support receive_resume tokens. Resume support can be manually disabled with new --no-resume argument if necessary. Syncoid also supports passing CLI arguments to SSH now with -o opt1=value,opt2=value syntax, and will continue recursive replication with remaining child datasets when any one dataset errors out (for example, due to being busy at the time, having gotten deleted out from under syncoid, etc).

v1.4.14 - fixed syncoid regression #112

17 Jul 13:48
Choose a tag to compare

Fixed significant syncoid regression; syncoid now pulls both creation AND guid; sorts by creation, matches on guid. Thank you @da-me for the quick report!

v1.4.13 - multiple enhancements and fixes

12 Jul 21:08
Choose a tag to compare

1.4.13 Syncoid will now continue trying to replicate other child datasets after one dataset fails replication
when called recursively. Eg syncoid -r source/parent target/parent when source/parent/child1 has been
deleted and replaced with an imposter will no longer prevent source/parent/child2 from successfully
replicating to target/parent/child2. This could still use some cleanup TBH; syncoid SHOULD exit 3
if any of these errors happen (to assist detection of errors in scripting) but now would exit 0.

1.4.12 Sanoid now strips trailing whitespace in template definitions in sanoid.conf, per Github #61

1.4.11 enhanced Syncoid to use zfs guid property rather than creation property to ensure snapshots on source and target actually match. This immediately prevents conflicts due to timezone differences on source and target, and also paves the way in the future for Syncoid to find matching snapshots even after zfs rename on source or target. Thank you Github user @mailinglists35 for the idea!

1.4.10 added --compress=pigz-fast and --compress=pigz-slow. On a Xeon E3-1231v3, pigz-fast is equivalent compression to --compress=gzip but with compressed throughput of 75.2 MiB/s instead of 18.1 MiB/s. pigz-slow is around 5% better compression than compress=gzip with roughly equivalent compressed throughput. Note that pigz-fast produces a whopping 20+% better compression on the test data (a linux boot drive) than lzop does, while still being fast enough to saturate or nearly saturate a real-world gigabit LAN link. The down side: pigz chews through 100% util of all available system threads, if not bottlenecked by the network link speed.


04 Jul 21:22
Choose a tag to compare

Add -c option to syncoid, to specify an SSH cipher directly from the command line.

v1.4.8 - syncoid gets --no-stream and --no-sync-snap

14 Mar 00:39
Choose a tag to compare

No changes to sanoid, but syncoid gets new features:

--no-stream : this argument tells syncoid to use -i incrementals, not -I. This updates the target with the newest snapshot from the source, without replicating the intermediate snapshots in between. (If used for an initial synchronization, will do a full replication from newest snapshot and exit immediately, rather than starting with the oldest and then doing an immediate -i to the newest.)

--no-sync-snap : this argument tells syncoid to restrict itself to existing snapshots, instead of creating a semi-ephemeral syncoid snapshot at execution time. Especially useful in multi-target (A->B, A->C) replication schemes, where you might otherwise accumulate a large number of foreign syncoid snapshots!