# Send temporary snapshots to backup pool and archive them



## hyperbart (Mar 21, 2013)

Ok, a little bit of explanation on the title...

At home I have pool named "hulk" and a pool called "backuppool". The hulk-pool contains one RAIDZ-array consisting of 5 x Hitachi 3TB. The backuppool-pool consists of 2 x 2TB in a mirror. Those 2 x 2TB are placed in a Sharkoon QuickPort 3 bay. Easy for hot plugging/unplugging to take the disk to a remote location.

I would like to accomplish the following, by using zfs send and receive:

Every predefined point in time, take a snapshot of a set of filesystems on hulk and send these snapshots to backuppool. On backuppool I would to keep all the snapshots (unless I delete them manually of course ), doing so I would have a bunch of low-footprint backups for a long period of time.

I tried to do this ad-hoc, not yet automated:



```
[root@zfsguru ~]# zfs list
NAME                                USED  AVAIL  REFER  MOUNTPOINT
backuppool                           94K   472M    31K  /backuppool
hulk                                186K   472M    32K  /hulk
hulk/Bart                            31K   472M    31K  /hulk/Bart
```

zfs list after creating source snapshot

```
[root@zfsguru ~]# zfs send hulk/Bart@1 | zfs recv backuppool/Bart@1
[root@zfsguru ~]# zfs list
NAME                                USED  AVAIL  REFER  MOUNTPOINT
backuppool                          135K   472M    32K  /backuppool
backuppool/Bart                      31K   472M    31K  /backuppool/Bart
hulk                                189K   472M    32K  /hulk
hulk/Bart                            31K   472M    31K  /hulk/Bart
hulk/Bart@1                            0      -    31K  -
```

Apparently it creates a filesystem then, called Bart, no problem because I didn't add the parameter to create a FS with the same name as the source. But subsequent sends are failing:

sending snapshot fails

```
[root@zfsguru ~]# zfs snapshot hulk/Bart@2
[root@zfsguru ~]# zfs send hulk/Bart@2 | zfs recv backuppool/Bart@2
cannot receive new filesystem stream: destination 'backuppool/Bart' exists
must specify -F to overwrite it
```

What am I doing wrong? Which parameters should I add to "add" the new snapshot to the destination?


----------



## Savagedlight (Mar 21, 2013)

You might want to look at the flags for incremental sends. It'd transfer the difference between two snapshots.
For manageability, you might want to look at sysutils/zfSnap.


----------



## phoenix (Mar 22, 2013)

When in doubt, read the man page:  zfs(8)

Especially the parts for "send", and pay attention to the *-i* and *-I* options.


----------

