User Tools

Site Tools


project:rsnapshot-zfs-helper:rsnapshot-example

This is an old revision of the document!


Example for using rsnapshot-zfs-helper with rsnapshot

This example has been created using Debian 9.3 .

##
## setup zfs (optional)
##
# 'bpo' kernel won't do the trick
apt-get install linux-image-amd64
apt-get clean
reboot

- add "contrib" to the apt-sources
apt-get update
apt-get install zfs-dkms zfsutils-linux rsnapshot
apt-get clean

/sbin/modprobe zfs

## create partition for zfs:
Device     Boot   Start       End   Sectors  Size Id Type
...
/dev/sda3       4194304 209715199 205520896   98G bf Solaris

## create zpool without mount point
zpool create zp-bak /dev/sda3 -m none

# create prereq. data sets
zfs create zp-bak/backup                        -o compression=lz4 -o snapdir=hidden -o xattr=sa -o acltype=posixacl -o mountpoint=/backup
zfs create zp-bak/backup/hosts                  -o compression=lz4 -o snapdir=hidden -o xattr=sa -o acltype=posixacl -o mountpoint=/backup/hosts
df
->
   Filesystem     1K-blocks    Used Available Use% Mounted on
   ...
   zp-bak/backup        99041152     128  99041024   1% /backup
   zp-bak/backup/hosts  99041152     128  99041024   1% /backup/hosts

##
## create ssh keypair
##
ssh-keygen -N '' -C "backup@$(hostname)-$(date -Is)" -f /root/.ssh/id_rsa

##
## install & prepare rsnapshot
##
apt-get install rsnapshot
apt-get clean
cp -ax /etc/rsnapshot.conf /etc/rsnapshot.conf.$( date -Is )
vi /etc/rsnapshot.conf
    [...]
    snapshot_root   /backup/hosts/vstest01
    cmd_ssh         /usr/bin/ssh
    #interval   hourly  6
    interval    daily   7
    interval    weekly  4
    interval    monthly 3
    cmd_cp          /bin/true
    cmd_preexec     /usr/sbin/rsnapshot-zfs-helper /etc/rsnapshot.conf preexec
    cmd_postexec    /usr/sbin/rsnapshot-zfs-helper /etc/rsnapshot.conf postexec

vi /etc/rsnapshot-zfs-helper.conf
    snapshots_config_dir=/etc

##
## create a backup job
##
# create zfs dataset
zfs create zp-bak/backup/hosts/vstest01 -o compression=lz4 -o snapdir=visible -o xattr=sa -o acltype=posixacl -o mountpoint=/backup/hosts/vstest01/daily.0
df
->
   Filesystem     1K-blocks    Used Available Use% Mounted on
   ...
   zp-bak/backup/hosts/vstest01  99041024       0  99041024   0% /backup/hosts/vstest01/daily.0

# create backup config
/etc/rsnapshot.conf
    backup  root@vstest01:/ ./

# distribute ssh key to backup client
ssh-copy-id root@vstest01

# test ssh login
ssh root@vstest01 hostname

# run first backup
rsnapshot daily

# check
zfs list -t all
->
    NAME                                                      USED  AVAIL  REFER  MOUNTPOINT
    zp-bak                                                    592M  93.9G    19K  none
    zp-bak/backup                                             592M  93.9G    19K  /backup
    zp-bak/backup/hosts                                       592M  93.9G    40K  /backup/hosts
    zp-bak/backup/hosts/vstest01                              592M  93.9G   592M  /backup/hosts/vstest01/daily.0
    zp-bak/backup/hosts/vstest01@daily.2018-01-30T14:53:29Z      0      -   592M  -

# run second backup
rsnapshot daily
# check
zfs list -t all
->
    NAME                                                      USED  AVAIL  REFER  MOUNTPOINT
    zp-bak                                                    597M  93.9G    19K  none
    zp-bak/backup                                             596M  93.9G    19K  /backup
    zp-bak/backup/hosts                                       596M  93.9G    40K  /backup/hosts
    zp-bak/backup/hosts/vstest01                              596M  93.9G   592M  /backup/hosts/vstest01/daily.0
    zp-bak/backup/hosts/vstest01@daily.2018-01-30T14:53:29Z  4.32M      -   592M  -
    zp-bak/backup/hosts/vstest01@daily.2018-01-30T14:57:49Z      0      -   592M  -

##
## enable rotation of higher rotation levels
##
/etc/cron.d/rsnapshot-zfs-helper
    35 23  * * *  root /usr/sbin/rsnapshot-zfs-helper /etc/rsnapshot.conf rotate daily
    45 23  * * 5  root /usr/sbin/rsnapshot-zfs-helper /etc/rsnapshot.conf rotate weekly
    55 23  1 * *  root /usr/sbin/rsnapshot-zfs-helper /etc/rsnapshot.conf rotate monthly
project/rsnapshot-zfs-helper/rsnapshot-example.1519310326.txt.gz · Last modified: 2018/02/22 15:38 by 92.75.65.74