User Tools

Site Tools


project:rsnapshot-zfs-helper:rsnapshot-backup-example
no way to compare when less than two revisions


Previous revision
Last revision
project:rsnapshot-zfs-helper:rsnapshot-backup-example [2018/02/22 18:32] – [Details] 92.75.65.74
Line 1: Line 1:
 +====== 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:
 +
 +<code>
 +/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/
 +</code>
 +
 +This example has been created using Debian 9.3 .
 +
 +==== Setup ====
 +
 +Inside ''/etc/rsnapshot-backup.d/conf.template'':
 +
 +<code>
 +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
 +</code>
 +**Do NOT replace '''<HOST>''' in the section above!** (It's a placeholder used by the template engine.)
 +
 +Inside ''/etc/rsnapshot-backup.d/conf'':
 +
 +<code>
 +storage_backend=zfs_snapshots
 +zfs_helper=/usr/sbin/rsnapshot-zfs-helper
 +zfs_zpool=<ZPOOL>
 +zfs_dataset_prefix=backup/hosts/
 +</code>
 +** No leading slash - but a trailing one! **
 +
 +To create a backup job run:
 +<code>
 +rsnapshot-backup-conf <HOSTNAME> <IP>
 +ssh-copy-id <IP>
 +rsnasphot-backup-enable <HOSTNAME>
 +</code>
 +==== Details ====
 +
 +This is what ''rsnapshot-backup-conf'' takes care of:
 +
 +The template mechanism creates:
 +<code>
 +/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/
 +</code>
 +
 +The zfs filesystem dataset is created:
 +<code>
 +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
 +</code>
 +
 +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:
 +
 +<code>
 +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
 +</code>
 +
 +''rsnapshot-backup'' itself handles the promotion of the backup's rotation to the higher
 +levels.
 +
 +
  
project/rsnapshot-zfs-helper/rsnapshot-backup-example.txt · Last modified: 2018/05/15 14:20 by 94.217.236.160