It’s possible to repack too small pack files using restic prune --repack-small --pack-size size
. Using copy
to move all data to a new repository is also possible, as copy
transfers the data blobs contained in pack files, but not the pack files themselves. This leads to the construction of new packs, with the specified pack size.
See Feature: min packsize flag by metalsp0rk · Pull Request #3731 · restic/restic · GitHub . It’s somewhat randomly chosen, increasing the maximum further should be possible, but will require some testing to spot unexpected increases in memory usage. (I’ve opened Increase maximum allowed pack size · Issue #4371 · restic/restic · GitHub )
The next restic version will make it easier to repair certain types of repository damages: Troubleshooting — restic 0.16.3 documentation . If you still have a copy of the missing data, then you can replace these blobs by backing up the files again. For a more manual approach see Recover from broken pack file · Issue #828 · restic/restic · GitHub .
See Feature: Add redundancy for data stored in the repository · Issue #256 · restic/restic · GitHub . Erasure coding not implemented so far as it’s a lot of work to do so, and it is only useful for some backends. For example, for the cloud storage backends it would be a waste of space, as these already use redundancy to prevent data corruption.
Restic uses HTTP2 to speak with rclone which natively implements multiplexing. I’d expect that it should be possible for restic to send at least 1GB/s to rclone (I have no numbers to back that up). Can you describe you setup a bit further?