Create oVirt/RHEV’s VM backup

Create backup of oVirt / RHEV’s VMs



I’ve been working with oVirt since version 3.5 as main virtualization platform, from day one i were looking for a tool to create VM backups based on snapshot as many solutions does with VMWARE, after some research i didn’t find a tool that fulfilled my requirements so i decided to create one using oVirt python API.


  • oVirt >= 4.0
  • Virtual machine with CentOS 7 with this tools installed, we’ll call this VM bkpvm
  • bkpvm should be on the same oVirt Datacenter of the VM we need to take backup of
  • bkpvm should have enought space to store backups
  • Storage Domain should have enought space to take snapshots

How does it work?

This script should run on bkpvm and it connect to oVirt API to do:
– Create snapshot
– Attach disk to bkpvm
– Create a qcow2 file of the VM’s disk
– Delete snapshot

After finish it creates a qcow2 file for each VM’s disk



Install required repositories on bkpvm:

yum install -y epel-release
yum install -y 

Install required packages from repositories configured:

yum install -y qemu-img python-ovirt-engine-sdk4 python-requests git ovirt-guest-agent


cd /opt
git clone

We need to get our oVirt’s CA in order to establish secure connections to oVirt API

cd /opt/VirtBKP
curl --insecure "" -o ca.crt



There is a configuration file default.conf inside VirtBKP folder, that file have all the parameters required by the tool. Should modify this file according your environment as follow:

vim /opt/VirtBKP/default.conf
url     =
user        = admin@internal
password    = password
ca_file     = ca.crt
bkpvm       = bkpvm
bckdir      = /mnt/

url     =
user        = admin@internal
password    = password
ca_file     = ca.crt
storage     = gfs_pool0
proxy       =
proxyport   = 54323
  • url: oVirt API URL
  • user: User name
  • password: User password
  • ca_file: Path to ca.crt
  • bkpvm: Name of our bkpvm
  • bckdir: Path to store backups in .qcow2 format
  • storage: Storage domain where we’ll restore our backups
  • proxy: IP or hostname of the ovirt-image-proxy host (Default: ovirt-engine)
  • proxyport: TCP port of the ovirt-image-proxy (Default: 54323)

Create backup

In order to create backups of virtual machines you should use the syntax bellow:

/opt/VirtBKP/ <configuration_file> <vm_name>


/opt/VirtBKP/ /opt/VirtBKP/default.conf webserver

Restore backup

In order to restore an existing backup you should use the syntax bellow:

/opt/VirtBKP/ <configuration_file> <qcow2_file>


/opt/VirtBKP/ /mnt/webserver_2017-04-28-00h.qcow2

Un comentario en “Create oVirt/RHEV’s VM backup

Deja un comentario