I was wondering if there was any way to set automatic tiered storage, like in the scenario below. I could probably build/script something to handle it, but wanted to make sure I’m not missing something. Appreciate any insight! Scenario:
local1 - Local SMB or NFS Share for 7 days of backups
remote1 - Remote SMB share for weekly/monthly full image archive, 13 weekly and 9 individual months for a total of 1 year of history
remote2 - 2nd Remote site (likely just rsync from remote1)
No built-in mechanism for this, but it’s a great reason to use ZFS as your underlying backup storage. You can snapshot and zfs send your data offsite very easily in a cron job.
This is exactly what I do. I’m using TrueNAS to hold my backup data, mounted in my UrBackup server as an NFS share. TN has a daily snapshot and replicate job and automatically purges old snapshots at the same time.
How you connect your sites is up to you. I would recommend against exposing SSH to the internet, even on a non-standard port. I’m using the built-in OpenVPN server in TrueNAS.
Rsync isn’t a good option because of the way files are chunked. With even a moderate amount of backup data, you’ll end up replicating millions of file chunks that will take forever. ZFS replicates at the block level so there’s no file overhead.
You should be able to do the exact same thing with BTRFS-backed storage as well.