Are there any resources that discuss the different performance levels of the dump, mount and restore options?
We’re backing up different projects/servers in separate repositories and the backup and restore process works fine however occasionally we want to generate a downloadable tar from a snapshot.
Currently we mount the repository and then tar all files and pipe it directly into minio, through which we then generate a download link. Which most often is rather slow.
In this case the project server, the restic repository and the download server have to be separate and we do not have enough space on the project server to first create a local tar which we can then upload to the download server.
If we restore a backup to the local server it’s pretty fast, however if we use mount or dump to copy the same files it’s an order of magnitude slower.
I just ran a test with a rather small testproject, the restore finished in ~17 seconds and the mount and dump options both took roughly 3,5-4 Minutes. All of them restored/copied to the local filesystem to take the additional upload out of the equation.
The commands for this test were rather simple:
restic restore --target=restictmp_restore [snapshot id] restic dump [snapshot id] / > restictmp_dump.tar restic mount /tmp/restic & rsync -avhP /tmp/restic/ids/[snapshot id]/ restictmp_mount/
Is this to be expected? And if so is there any way to use the restore command to directly pipe all files into a tar file?