Skip to content

Repository files navigation

zfs-replicate

https://github.com/alunduil/zfs-replicate

By Alex Brandt alunduil@gmail.com

Description

zfs-replicate sends all Zettabyte File System (ZFS) snapshots to a remote host by SSH. zfs-replicate does not create ZFS snapshots.

zfs-replicate forks autorepl.py used by FreeNAS.

zfs-replicate relates to several other projects, which fit other niches:

  1. sanoid: A full snapshot management system. Its companion, syncoid, handles replication with copious options.
  2. zfs-replicate (BASH): A similar project. The major differences include configuration style and system expectations (for example, logging controls). zfs-replicate uses parameters whereas zfs-replicate (BASH) uses a BASH script.
  3. znapzend: Another scheduling and replicating system.
  4. zrep: A SH script with several control commands for snapshot replication.

Terms of use

You are free to copy, change, and distribute zfs-replicate with attribution under the terms of the BSD-2-Clause licence. See the LICENSE for details.

Prerequisites

  1. A remote system with a ZFS filesystem and the zfs command-line tools
  2. If using lz4 compression, local and remote systems must have lz4 in their environments
  3. SSH access to that remote system
  4. If you're not using the root user remotely:
    1. Ensure the user can mount filesystems
      1. FreeBSD: sysctl -w vfs.usermount=1
    2. Add ZFS permissions
      1. Command: zfs allow ${USER} ${PERMISSIONS} ${BACKUP_DATASET}
      2. Permissions
        1. clone
        2. create
        3. destroy
        4. hold
        5. mount
        6. promote
        7. quota
        8. readonly
        9. receive
        10. rename
        11. reservation
        12. rollback
        13. send
        14. snapshot
  5. A local ZFS filesystem and zfs command-line tools

N.B., don't use the root user to access your remote system.

How to use zfs-replicate

  1. poetry install
  2. poetry run -- zfs-replicate --help

To tune the send stream or set properties on the replica, see How to tune the send and receive streams.

Nix and NixOS users install the zfs-replicate package from nixpkgs rather than building from this repository. NixOS also provides a services.zfs.autoReplication module that runs replication as a system service.

Documentation

Getting support

  • GitHub issues: Report any problems or features requests to GitHub issues.

About

Replicate ZFS snapshots to a remote host over SSH (Python CLI; replication only — it doesn't create snapshots).

Topics

Resources

Code of conduct

Contributing

Stars

24 stars

Watchers

5 watching

Forks

Releases

Used by

Contributors

Languages