Is it possible to use restic with Backblaze personal? I am planning on using restic to backup my linux server to repos stored on Windows server. Will there be any issues having the restic repos backed up to a Backblaze personal account?
I read in another post that restic sets filenames to be the sha256 for the file so any changes involve creating a new file. Does that mean that if Backblaze personal hasn’t completely uploaded the latest snapshots that there is no chance that any previous snapshot would be corrupted if I had to restore the repo from Backblaze?
Understood that restic can’t directly push data to the Backblaze backup service and can push directly to B2. However B2 is cost prohibitive for the amount of data I am looking to store (~7TB+ without any versioning).
I am not looking for restic to push data directly to Backblaze backup service though. this is my planned configuration:
Linux Server <---- restic via SSH -----> Windows Server <---- Backblaze client -----> Backblaze backup service
Restic will be used on the Linux server to send backups, manage snapshots etc to the restic repo on my Windows server. From there the Backblaze client can backup all of the restic raw repo files (config/data/index/keys/snapshot folders).
If my Linux server ever needs to be restored, then I can use restic to restore from the repository on the Windows server. If the Windows server dies, I can use restic to redo the backup.
Backblaze will only be used for disaster recovery in the case that both servers are lost at the same time. I know i won’t be able to directly restore the data using restic. I will have to use Backblaze to restore all of the
restic repo files to the Windows server first, and then I will be able to use restic to restore the actual files to the Linux server.
My only concern is how restic stores snapshot information. If a new snapshot has been created on the Windows server, but Backblaze hasn’t finished uploading all of the new repo files I want to make sure that the repo files stored in Backblaze are valid (in particular i’m worried about files in the index folder).
This will probably work since a restic repository is just a collection of files. Note that there are some caveats to this approach, in particular (from what I hear) you can’t just restore everything at once from a Backblaze Backup vault. I would definitely test the restore procedure before you commit to this path.
The only thing that can realistically go wrong is that the snapshot file is uploaded before the required data files, and then the connection fails for some reason. In that case you just have an unusable snapshot. Deleting the snapshot would “fix” the repository, and you could restore from any other snapshot without issue, even without deleting the bad one.
The index files are redundant and are only used to look things up quickly. They can be recreated with restic rebuild-index which does not depend on the presence of valid indexes.
Thanks for the input! Definitely some testing planned before turning off my current cloud backup service (Crashplan). I did have Backblaze for quite a while a few years ago and never had any issues with the couple of restores that I had to do (although none were terribly large).
Right. I’m seeing some information that you can only restore 500MB at a time as a generated zip file. I don’t know how accurate this is (it’s several years old, and may have changed). If it is accurate, recovery from a disaster might take some time.
Well it took me longer than it should have, but I finally got around to actually testing out a restore and boy am I glad I did!
My initial restore failed with the error “Fatal: Fatal: config cannot be loaded: ciphertext verification failed”.
I did an md5sum on the restored config file and the real config file and found they are different. Backblaze must be modifying the config file in some manner that corrupts it and makes it impossible to restore!
To work around this for all of my repositories I created a base64 encoded version of the config file that sits alongside the actual config file. When doing a restore, I decode the base64 file and overwrite the restored config file and everything works as expected. I did a test restore of a smaller repository with 141k files and every md5sum matched up exactly.
Moral of the story: If you backup your restic repository with Backblaze Personal be sure to have a base64 encoded version of your config file backed up as well. And as always, test your restore process before you actually need it!