User Tools

Site Tools


project:rsnapshot-zfs-helper:rsnapshot-backup-example

Example for using rsnapshot-zfs-helper with rsnapshot-backup

CAVEAT : WORK IN PROGRESS

preface

I'm using rsnapshot-backup which is basically a wrapper around rsnapshot.

It uses one setup per system to backup with one config, exclude and script file. There are also individual backup and logging directories. There is a scheduler which parallelizes backup runs and a configuration frontend using template files to create the backup jobs.

There is also an enabling mechnism using symlinks.

A typical backup job configuration (created with rsnapshot-backup-conf) consists of:

/etc/rsnapshot-backup.d/conf.<BACKUP-CLIENT>
/etc/rsnapshot-backup.d/exclude.<BACKUP-CLIENT>
/etc/rsnapshot-backup.d/script.<BACKUP-CLIENT>    # optional
/etc/rsnapshot-backup.d/enabled/conf.<BACKUP-CLIENT> -> ../conf.<BACKUP-CLIENT>

/backup/hosts/<BACKUP-CLIENT>/daily.0/
/backup/hosts/<BACKUP-CLIENT>/zfs-snapshots -> daily.0/.zfs/snapshot

/var/log/rsnapshot-backup/<BACKUP-CLIENT>/

<ZPOOL>/backup/hosts/<BACKUP-CLIENT> # ZFS filesystem mounted on /backup/hosts/<BACKUP-CLIENT>/daily.0/

This example has been created using Debian 9.3 .

Setup

Inside /etc/rsnapshot-backup.d/conf.template:

cmd_cp        /bin/true
cmd_preexec   /usr/sbin/rsnapshot-zfs-helper /etc/rsnapshot-backup.d/enabled/conf.<HOST> preexec
cmd_postexec  /usr/sbin/rsnapshot-zfs-helper /etc/rsnapshot-backup.d/enabled/conf.<HOST> postexec

Do NOT replace '<HOST>' in the section above! (It's a placeholder used by the template engine.)

Inside /etc/rsnapshot-backup.d/conf:

storage_backend=zfs_snapshots
zfs_helper=/usr/sbin/rsnapshot-zfs-helper
zfs_zpool=<ZPOOL>
zfs_dataset_prefix=backup/hosts/

No leading slash - but a trailing one!

To create a backup job run:

rsnapshot-backup-conf <HOSTNAME> <IP>
ssh-copy-id <IP>
rsnasphot-backup-enable <HOSTNAME>

Details

This is what rsnapshot-backup-conf takes care of:

The template mechanism creates:

/etc/rsnapshot-backup.d/conf.<BACKUP-CLIENT>
/etc/rsnapshot-backup.d/exclude.<BACKUP-CLIENT>
/etc/rsnapshot-backup.d/script.<BACKUP-CLIENT>    # optional
/etc/rsnapshot-backup.d/enabled/conf.<BACKUP-CLIENT> -> ../conf.<BACKUP-CLIENT>

/backup/hosts/<BACKUP-CLIENT>/daily.0/
/backup/hosts/<BACKUP-CLIENT>/zfs-snapshots -> daily.0/.zfs/snapshot

/var/log/rsnapshot-backup/<BACKUP-CLIENT>/

<ZPOOL>/backup/hosts/<BACKUP-CLIENT> # ZFS filesystem mounted on /backup/hosts/<BACKUP-CLIENT>/daily.0/

The zfs filesystem dataset is created:

zfs create <ZPOOL>/backup/hosts/<BACKUP-CLIENT> -o compression=lz4 -o snapdir=hidden -o xattr=sa -o acltype=posixacl -o mountpoint=/backup/hosts/<BACKUP-CLIENT>/daily.0

rsnapshot-zfs-helper is to be configured inside rsnapshot's configuration files. i.e. '/etc/rsnapshot-backup.d/conf.<BACKUP-CLIENT>'

Additionally, 'cmd_cp' has to be set to '/bin/true' - so the “cp -al …” is rendered harmless:

cmd_cp        /bin/true
cmd_preexec   /usr/sbin/rsnapshot-zfs-helper /etc/rsnapshot-backup.d/enabled/conf.<BACKUP-CLIENT> preexec
cmd_postexec  /usr/sbin/rsnapshot-zfs-helper /etc/rsnapshot-backup.d/enabled/conf.<BACKUP-CLIENT> postexec

rsnapshot-backup itself handles the promotion of the backup's rotation to the higher levels.

project/rsnapshot-zfs-helper/rsnapshot-backup-example.1519320773.txt.gz · Last modified: 2018/02/22 18:32 by 92.75.65.74