How to create a snapshot of a running KVM machine. One process for VM images that are stored on a Logical Volume in LVM, another for QCOW2 image formats.
Backup KVM Virtual Machines on LVM Images
Simple process really, select location to archive to, mount, snapshot existing Logical Volume, archive, done.
A new Logical Volume could be created to store backups, make file-system and mount. Alternatively /mnt/backup could refer to a mounted USB device or network-file-system.
lvcreate --name backup --size 64G vg0 mke2fs -j -L'backup' /dev/vg0/backup mkdir /mnt/backup mount /dev/vg0/backup /mnt/backup
Create a snapshot of the partition to backup and mount it.
lvcreate --snapshot --name snap --size 8G /dev/vg0/data mkdir /mnt/data.snapshot mount /dev/vg0/snap /mnt/data.snapshot
Now backup the file-system as you normally would, using tar
or rsync
or similar.
tar -pzc -f /mnt/backup/data-snap.20090912.tgz /mnt/data.snapshot # or rsync -a /mnt/data.snapshot/ /mnt/backup/data-snap.20090912/
A bit-wise copy of the logical volume can be created as well, must unmount the file-system before!
umount /mnt/data.snapshot dd if=/dev/vg0/snap of=/mnt/backup/data-snap.20090912.dd
Backup KVM Virtual Machines on QCOW2 Images
When the images are stored as qcow2 format the backup procedure happens as follows.