ZnapZend uses the built-in snapshot functionality of ZFS for fully consistent backups. For each fileset, a pre- and post-snapshot command can be configured to quiet down any software writing to the fileset prior to snapshotting.
ZnapZend stores all its configuration in custom ZFS properties. So all configuration is hooked right into the ZFS fileset structure. When you modify the fileset, rename it, remove it, ZnapZend will happily chug along. ZnapZend comes with a special tool for setting and checking the backup configuration.
ZnapZend uses the ZFS send/receive functionality to transfer backups to remote locations. It employs ssh and (optionally) mbuffer for the transfer to achieve optimal transfer rates for the data. You can configure any number of remote destinations for a fileset. Even no destinations at all if all you need are well managed local snapshots.
ZnapZend can be configured to remove snapshots as they get older. The configuration allows to easily setup schemes where the backup density is progressively reduced as the backups get older. This technique can be individually applied both to the local snapshots as well as to any remote locations.
ZnapZend runs as a service and uses the Mojo::IOLoop for scheduling all snapshotting and data transfer activities. Even when a snapshot takes a long time to transfer, snapshots on the source fileset will continue to be created according to schedule. Multiple snapshots will be transferred as a group to catch up slow destinations.
ZnapZend is fully configurable in how it names its snapshots. Switching from your current ZFS snapshotting tool to ZnapZend is pretty simple. ZnapZend is highly portable and is known to work on all OSes that support ZFS: Linux, FreeBSD, Solaris, OmniOS, SmartOS, MacOS.
ZnapZend is free software. Just download it and get started. Follow the instructions in the README.
ZnapZend is written in modern object oriented Perl. Development happens out in the open on GitHub.
If you find have a question, head over to the ZnapZend section on serverfault.com and tag your question with 'znapzend'.
If you find a problem with ZnapZend, please open an Issue on GitHub.
If you like to get in touch and ask questions, you should find some people in our Gitter Chat.
And if you have a contribution, please fork us on GitHub, create a branch and send a pull request.
If you need extra help or customization, please feel free to get in touch directly with use here at OETIKER+PARTNER.