[TOC]
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.
bkpvm
bkpvm
should be on the same oVirt Datacenter
of the VM we need to take backup ofbkpvm
should have enought space to store backupsStorage Domain
should have enought space to take snapshotsThis script should run on bkpvm
and it connect to oVirt API
to do:
bkpvm
qcow2
file of the VM's diskAfter finish it creates a qcow2
file for each VM's disk
Install required repositories on bkpvm
:
yum install -y epel-release
yum install -y http://resources.ovirt.org/pub/yum-repo/ovirt-release43.rpm
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 https://github.com/vacosta94/VirtBKP.git
We need to get our oVirt's CA in order to establish secure connections to oVirt API
cd /opt/VirtBKP
curl --insecure "https://ovirt.infratic.com/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA" -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
[bkp]
url = https://ovirt.example.com/ovirt-engine/api
user = admin@internal
password = password
ca_file = ca.crt
bkpvm = bkpvm
bckdir = /mnt/
[restore]
url = https://ovirt.example.com/ovirt-engine/api
user = admin@internal
password = password
ca_file = ca.crt
storage = gfs_pool0
proxy = ovirt.example.com
proxyport = 54323
url
: oVirt API
URLuser
: User name
password
: User password
ca_file
: Path to ca.crt
bkpvm
: Name of our bkpvm
bckdir
: Path to store backups in .qcow2
formatstorage
: Storage domain where we'll restore our backupsproxy
: IP
or hostname
of the ovirt-image-proxy
host (Default: ovirt-engine)proxyport
: TCP port of the ovirt-image-proxy
(Default: 54323) In order to create backups of virtual machines you should use the syntax bellow:
/opt/VirtBKP/backup_vm.py <configuration_file> <vm_name>
Example:
/opt/VirtBKP/backup_vm.py /opt/VirtBKP/default.conf webserver
In order to restore an existing backup you should use the syntax bellow:
/opt/VirtBKP/upload_disk.py <configuration_file> <qcow2_file>
Example
/opt/VirtBKP/upload_disk.py /mnt/webserver_2017-04-28-00h.qcow2