zrepl is a one-stop, integrated solution for ZFS replication.
The 10 minutes tutorial setup <tutorial>
gives you a first impression.
- Filesystem replication
- [x] Pull & Push mode
- [x] Multiple transport
transports <transport>
: TCP, TCP + TLS client auth, SSH - Advanced replication features
- [ ] Resumable send & receive
- [ ] Compressed send & receive
- [ ] Raw encrypted send & receive
- Automatic snapshot management
- [x] Periodic filesystem snapshots
- [x] Flexible
pruning rule system <prune>
- [x] Age-based fading (grandfathering scheme)
- [x] Bookmarks to avoid divergence between sender and receiver
- Sophisticated Monitoring & Logging
- [x] Live progress reporting via zrepl status
subcommand <usage>
- [x] Comprehensive, structured
logging <logging>
human
,logfmt
andjson
formatting- stdout, syslog and TCP (+TLS client auth) outlets
- [x] Prometheus
monitoring <monitoring>
endpoint
- [x] Live progress reporting via zrepl status
- Maintainable implementation in Go
- [x] Cross platform
- [x] Type safe & testable code
Attention
zrepl as well as this documentation is still under active development. There is no stability guarantee on the RPC protocol or configuration format, but we do our best to document breaking changes in the changelog
.
We are happy about any help we can get!
- Explore the codebase
- These docs live in the
docs/
subdirectory
- These docs live in the
- Document any non-obvious / confusing / plain broken behavior you encounter when setting up zrepl for the first time
- Check the Issues and Projects sections for things to do
Development Workflow
The GitHub repository is where all development happens. Make sure to read the Developer Documentation section and open new issues or pull requests there.
tutorial installation configuration usage implementation pr changelog GitHub Repository & Issue Tracker <https://github.com/zrepl/zrepl>