A common need for deployments in production, is to have the possibility of taking backups of your working virtual machines, and export them to some external storage.

Although libvirt offers the possibility of taking snapshots and restore them, those snapshots are intended to be managed locally, and are lost when you destroy your virtual machines.

There may be the need to just trash all your environment, and re-create the virtual machines from an external backup, so this article offers a procedure to achieve it.

First step, create an external snapshot So the first step will be taking an snapshot from your running vm. The best way to take an isolated backup is using blockcopy virsh command. So, how to proceed?



1. First you need to extract all the disks that your vm has. This can be achieved with domblklist command:

DISK_NAME=$(virsh domblklist {{domain}} --details | grep 'disk' | awk '{print $3}')



This will extract the name of the device that the vm is using (vda, hda, et…