Unable to restore a VM using restic method

Hello,

I am currently facing an issue with restoring a virtual machine (VM) using OpenNebula.

Here is my setup:

  • 4 host servers running Ubuntu 24
  • A front-end also running Ubuntu 24
  • OpenNebula version 6.10

I have implemented a backup solution with restic. The backup completed successfully, but when I try to restore the VM, I encounter the following error:

 Message received: TRANSFER FAILURE 54 ERROR: datastore_action: Command failed: export LANG=C export LC_ALL=C echo '<DS_DRIVER_ACTION_DATA> <DATASTORE>   <ID>103</ID>   <UID>0</UID>   <GID>0</GID>   <UNAME>oneadmin</UNAME>   <GNAME>oneadmin</GNAME> ```

and

ERROR: datastore_action: [STDOUT] ERROR: datastore_action: [STDERR] /var/lib/one/remotes/datastore/restic/restic.rb:369:in parse_paths': Fatal: unable to open config file: stat /var/lib/one/datastores/103/54/config: no such file or directory (StandardError)\nIs there a repository at the following location?\n/var/lib/one/datastores/103/54\n\n from /var/lib/one/remotes/datastore/restic/restic.rb:239:in read_document’\n from /var/lib/one/remotes/tm/lib/../../datastore/restic/ls:111:in `'\n Error restoring VM disks: cannot list backup contents


Has anyone experienced this issue before or could point me to the key areas to check to resolve it?

Thank you in advance for your help,
Pape

Hello @Pape

Have you checked our documentation?:
Backup Datastore: Restic
And
Virtual Machine Backup Operations

In any case, please:

  • Check if the repository from Restic is locked (if the backup was interrupted)
  • Check if you are using the correct Restore command
  • Check the VM state (needs to be powered-off for a correct restore).

Cheers,

Hello @FrancJP

Thanks for your reply.
Yes, I have followed all the steps described in the documentation.

I saw in this discussion (GitHub OpenNebula Issue #6739) that there is a bug, and that you need to go through storage → backup and restore.

The issue is that when I do this, the backup completes without any errors, but there is no visible change to the VM after restoring.

For example:

  • I create a file called toto in the VM.
  • I run the backup.
  • Once the backup is finished, I delete the file from the VM.
  • Then, I launch the VM restore, but the file does not reappear.

I notice that a Template is created after the restoration, but I’m not sure what I’m supposed to do with it or how to use it.

Maybe I’m missing a step or not using the restore procedure correctly.

If anyone has encountered this issue before or knows the correct process to restore a VM, I would really appreciate your advice.

Thanks in advance for your help!

Hello.

The error you are having should be solved by changing the repo_type variable to sftp here. You should find the file under /var/lib/one/remotes/datastore/restic/ls and change the specified line to :repo_type => :sftp,. After this, execute onehost sync -f and you should be able to restore backups from restic.

There was a bug with the ls command of the Restic driver, which has been addressed in this GitHub issue.

If you face additional issues when restoring, check that you have the restic binary in your restic server under /var/tmp/one/datastore/restic/restic. If it is missing, you should copy it from the Frontend and try again the operation.

Hello,

Thank you @amosteiro, @FrancJP for your help, it works now.

Regards !

1 Like