I'm in the process of configuring what I hope will be a sensible, redundant backup solution for my home. I have a dual boot laptop (Ubuntu and Windows) and a home NAS. The idea is to set up backup software in each OS to backup to the NAS, and then backup the NAS to cloud storage.
The data involved is documents and photos mainly, I think the total is between 50 and 100 GB. There will probably be other devices added later, along the same lines of however I do this. Apart from hosting these backups, the NAS will also host a larger repository of digital photographs, which should also be included in the cloud backup.
To start from the back, I'm pretty comfortable with the idea of running a backup script from a local Raspberry Pi (I have a few in place already), using duplicity to backup relevant NAS directories to a Backblaze B2 storage, with GPG encryption done client-side - much along the same principle as this blog post details:
This would give me client-side encrypted data, bandwidth-efficient transfers and I hope a reliable cloud service at a good cost. I'd probably want regular full backups to avoid excessively long backup chains, not sure if duplicity handles this by itself or if I need to allow for it in my script, but I guess I can manage that.
Where I'm more unsure how to process, is the PC-to-NAS stage. I started out with Ubuntu's built in Deja Dup, but realizing that uses duplicity as a backend too, I wonder:
Does it make sense to use something like duplicity in both steps of a two-tier backup solution? My concern is that in the event that I need to recover from cloud backups, I would need to restore twice, which might be inefficient, or worse less robust in case a single corrupted file in either backup chain would mess things up. Is this a reasonable concern?
If it is, what's a better way of doing it? I had the idea of simply doing a weekly (or whatever) rsync from Ubuntu to the NAS, so the NAS simply has a 1:1 copy, and the NAS-to-cloud step could handle all the cleverness of restorability from different dates, encryption and whatever else.
The downside to this would seem to be efficiency in the first step, where I'd have to copy a lot of data every time I backup. Perhaps using rsync's --link-dest option would work, hard-linking to any existing files rather than copying them again, but I'm not sure if this would be robust or even work with a second stage backup via duplicity.
I realize this question is far too long and messy, but I've spent some time thinking about the ins and outs of how to do this in a good way, and felt I had to ask in the end. If you read this far, thank you. If you have any wisdom at all to offer, thanks even more.