I am going to set up a new zpool. I plan to use nested datasets to store individual files. For example I could have the following datasets:
tank
tank/homes/user1
tank/homes/user2
...
tank/shares/pub
tank/shares/misc
...
tank
is the zpool itself, it contains no files, instead, all files are stored in the datasets like tank/homes/user
and so on.
Now I want to set up a proper backup for this. The problem is that the zpool will be large (100T) and therefore, the incremental backup will take a long time, therefore the files can change during the backup and the backup agent will then retry the backup, which slows it further down etc.
So I planned to make a snapshot, like zfs snap tank@backup
, then use the snapshot to perform the backup, and then destroy the snapshot afterwards.
However, this does not work, as the snapshot tank@backup
will not contain the sub-datasets like tank/shares
or tank/shares/pub
. However, with zfs snap -r tank@backup
I get recursive snapshots, but I cannot use these, as it will be messy for the restore of the backup.
Unfortunately, I cannot use zfs send
and zfs receive
for the backup, as I use IBM Tivoli / Spectrum Protect for the backup, i.e. dsmc
, which, to my knowledge, needs files to backup, and I believe it won't work with zfs send
.
So I believe, I will probably end up with just backing up /tank/*
, e.g. something like dsmc incremental /tank/* -subdir=yes
, which ignores all ZFS features and will backup datasets like ordinary folders and so on.
Is there probably a better method?