How to Backup a Hypervisor

From DISI
Revision as of 21:37, 8 October 2014 by Therese (talk | contribs) (Created page with "There are essentially three steps to fully backing up a hypervisor: 1) Create snapshots of all images 2) Create a tarball of the /var/lib/libvirt directory 3) Create a tarbal...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

There are essentially three steps to fully backing up a hypervisor:

1) Create snapshots of all images 2) Create a tarball of the /var/lib/libvirt directory 3) Create a tarball of the /etc/libvirt directory

The second and third steps are self explainatory, so I am only going over step 1. :)

In order to create a snapshot of an image it needs to have a qcow2 image format.

To determine the volume format type, go into the directory where the images are: cd /var/lib/libvirt/images/ Then type "qemu-img info image_name" qemu-img info my_image image: my_image file format: qcow2 <==== This is the disk/image format virtual size: 10G (10737418240 bytes) disk size: 8.9G cluster_size: 65536

You take a snapshot like this:

virsh snapshot-create-as my_image my_image_snapshot1

Where "my_image" is the domain name and "my_image_snapshot1" is the name that I am giving the snapshot.

All the snapshots are stored as an xml file here:

/var/lib/libvirt/qemu/snapshot/

You can also see a list of snapshots for a particular domain by typing:

virsh snapshot-list my_image

Name                 Creation Time             State

my_image_snapshot1    2014-09-30 16:36:51 -0700 running


To convert the image from another format type to qcow2 (using my_image as an example):

qemu-img info my_image image: my_image file format: raw virtual size: 10G (10737418240 bytes) disk size: 8.9G cluster_size: 65536

You have to power off the domain first:

virsh shutdown my_image

Next, convert my_image from raw to qcow2:

cd /var/lib/libvirt/images/

qemu-img convert -f raw my_image -O qcow2 my_image.qcow2

virsh edit my_image

Change this:

<driver name='qemu' type='raw'/>

To this:

<driver name='qemu' type='qcow2'/>


virsh start my_image

That's it!


Have this script run monthly:

#!/bin/bash

IMAGEDIR=/var/lib/libvirt/images/bulk BACKUPDIR=/var/backup/home/data/

# Cleanup of backup directory

   	X=`ls -l $BACKUPDIR | wc -l`
   	if (($X > 1)); then
         rm -rf $BACKUPDIR/*
   	fi

# Check to see if image format is qcow2 and if so create a snapshot:

for HOST in `ls -l $IMAGEDIR`;do FORMAT=`qemu-img info $HOST | grep format | cut -d' ' -f3` if ["$FORMAT" == "qcow2"];then virsh snapshot-create-as $HOST $HOST_1 fi done

tar -czvf $BACKUPDIR/var_libvirt.tar.gz /var/lib/libvirt

 	tar -czvf $BACKUPDIR/etc_libvirt.tar.gz /etc/libvirt


References: http://fedoraproject.org/wiki/Features/Virt_Live_Snapshots http://kashyapc.com/2012/09/14/externaland-live-snapshots-with-libvirt/ http://serverfault.com/questions/567234/how-to-replace-qemu-binary-with-newer-version-for-libvirt-live-snapshots http://linux.die.net/man/1/virsh http://www.bashrc.in/2014/01/snapshot-of-kvm-vm-rhel-6.html