Releases: jimsalterjrs/sanoid
v2.2.0 documentation updates, syncoid direct connection support, small fixes
2.2.0 [overall] documentation updates, small fixes (@azmodude, @deviantintegral, @jimsalterjrs, @alexhaydock, @cbreak-black, @kd8bny, @JavaScriptDude, @veeableful, @rsheasby, @Topslakr, @mavhc, @adam-stamand, @joelishness, @jsoref, @dodexahedron, @phreaker0)
[syncoid] implemented flag for preserving properties without the zfs -p flag (@phreaker0)
[syncoid] implemented target snapshot deletion (@mat813)
[syncoid] support bookmarks which are taken in the same second (@delxg, @phreaker0)
[syncoid] exit with an error if the specified src dataset doesn't exist (@phreaker0)
[syncoid] rollback is now done implicitly instead of explicit (@jimsalterjrs, @phreaker0)
[syncoid] append a rand int to the socket name to prevent collisions with parallel invocations (@Gryd3)
[syncoid] implemented support for ssh_config(5) files (@endreszabo)
[syncoid] snapshot hold/unhold support (@rbike)
[sanoid] handle duplicate key definitions gracefully (@phreaker0)
[syncoid] implemented removal of conflicting snapshots with force-delete option (@phreaker0)
[sanoid] implemented pre pruning script hook (@phreaker0)
[syncoid] implemented direct connection support (bypass ssh) for the actual data transfer (@phreaker0)
v2.1.0 — bugfixes, doc improvements, portability
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
- fix DST bug preventing systemd service from starting
- fix gentoo packaging bug
v2.0.2 - bugfixes galore
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
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!
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
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
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
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.
v1.4.9
Add -c option to syncoid, to specify an SSH cipher directly from the command line.