Hi restic fans! I love restic, but I have a problem that I don’t know if there’s a better solution than what I’m doing.
I make a backup over an asymmetric link, which has such a small upload bandwidth that the initial backup takes two weeks according to ETA. And unfortunately it is not possible to run this continuously, because the backup cannot run at night.
Plus the hard disks from which the backup is made are not very fast either.
It’s clear that restic handles interrupted backups well, but after a day of backup of course a complete snapshot is not taken and therefore if I start it again the next day, it spends many hours with re-reading and checksumming the data it has already uploaded the day before, and only then starts uploading the new data. This is a very inefficient solution, because moving forward in time, more and more time is spent exclusively with rechecking the previous data, leaving only a small amount of time for uploading new data.
Therefore, what I currently do is try to break the material to be backed up into smaller pieces, as large as can be uploaded in a day, to make a complete snapshot of them, and then refer to it as -parent shapshot, so that it just runs a stat() over it on the next day without rereading the content.
For example, let the tree to be saved be
/tobackup/a01/…
/tobackup/a02/…
…
/tobackup/z99/…
Unfortunately, it’s not a good solution if I just save the a01, a02 directories one by one each to a snapshot, because when everything is uploaded and I do the complete
restic backup /tobackup
then I can’t specify all the previous snapshots as the parent snapshot. And because of that it wants to check everything again, which doesn’t fit in a day (only the reading is longer than a day).
So what I do now is to incrementally save them:
restic backup /tobackup/a01
restic backup /tobackup/a0[12] --parent prev_id
restic backup /tobackup/a0[123] --parent prev_id
…
restic backup /tobackup/a0[1-9] --parent prev_id
restic backup /tobackup/a0[1-9] /tobackup/a11–parent prev_id
restic backup /tobackup/a0[1-9] /tobackup/a1[12] --parent prev_id
…
restic backup /tobackup --parent prev_id
This way no checksumming of earlier files occurs, but it’s a pain in the ass carry out the whole procedure, especially because I have to check the size of the next backup each time and the directory structure is not so nice as in the example.
Features that could help:
- merging already existing snapshots. With that I could simply merge all previous snapshot instead of doing a full backup. But I found the thread, the idea was rejected.
- smart recognition of many parent snapshots. AFAIK it is not yet implemented.
Is there any easier way to perform a long backup with many interruption than what I’m doing now?