Please check https://zrepl.github.io/v0.3.0-rc2/changelog.html for a full list of changes.
Highlights
- Resumable Send & Recv Support No knobs required, automatically used where supported.
- Encrypted Send & Recv Support for OpenZFS native encryption, configurable at the job level, i.e., for all filesystems a job is responsible for.
- Replication Guarantees Automatic use of ZFS holds and bookmarks to protect a replicated filesystem from losing synchronization between sender and receiver. By default, zrepl guarantees that incremental replication will always be possible and interrupted steps will always be resumable.
We highly recommend studying the overview section of the configuration chapter to understand how zrepl replication works.
Changes since -rc1
0ee7a49
[#289] zfs: workaround for OpenZFS 0.7 dry send info with zero estimated size02db599
[#345] fix broken identification of parent-fs for initial replication ordering1d7a84e
build: extract debian binary packaging workflow trigger into a reusable scripta0e3dc7
[#348] replication: add platformtest to check behavior on recv fail while still sending43495d7
[#348] replication: return errors if .Send rpc returns a nil SendResfa586b4
[#348] fix crash on early-recv error30cdc14
replication + endpoint: replication guarantees: guarantee_{resumability,incremental,nothing}- This is perhaps the most significant change, but as long as you didn't set the
send.step_holds.disable_incremental
option (which only existed in -rc1), this doesn't affect you at all.
- This is perhaps the most significant change, but as long as you didn't set the
27673a2
config: add test for fromdefaults behavior95fc299
daemon/job: test that sample configs are buildable4e702ee
cmd: zfs-abstraction list --json: fix panic8ff83f2
[#342] endpoint: always create unencrypted placeholder filesystems4b8f0ad
docs: supporters: updatedbc8bbe
docs: config: prune: example: keep manual snapshots on receiverb3e856f
docs: changelog: 0.3: fix broken issue link
Testing This Release-Candidate
We believe that this release-candidate is already pretty solid as it has been deployed to our developers' private test (and some production) systems for several weeks now.
However, a fresh eye (or system) might help catch some issues that were overlooked.
If you want to help test this release-candidate, please read the 0.3 changelog and attempt the update.
- Try the replication cursor migration mentioned in the update.
- Config syntax should be comptabile except for some job names.
- Play through the two quick-start guides.
- Play with encrypted replication, in particular initial replication with many datasets.
- After initial replication of all filesystems succeeded, extend the
filesystems
filter to include another filesystem that is a child dataset of an alread-replicated filesystem. Kick-off replication again and see what happens and whether it meets your expected behavior.
- After initial replication of all filesystems succeeded, extend the
- Try to induce errors during replication. zrepl guarantees that sender and receiver never get out-of-sync by network disruption, unplugging of the remote pool, etc. Out-of-sync means that incremental replication is no longer possible.
- Run the platformtests on your platform. Read the Makefile to learn how to do that.
Please report any unexpected behavior as an issue, and do not forget to mention that you are running the release-candidate.
Donations
zrepl is a spare-time project but nonetheless requires significant development and maintenance effort.
Please consider donating to support future development. Thank you!
Binary Releases
Binaries were produced with the following docker container:
sudo docker push problame/zrepl_build:v0.3.0-rc2
v0.3.0-rc2: digest: sha256:db9daf176828d3e63ef88d47e93f08705ac5975a42811e7abf7a877f6f519902 size: 4099
Debian packages built by CI from CI binaries (no signatures): https://github.com/zrepl/debian-binary-packaging/runs/912209864?check_suite_focus=true