Live backup of your VM running in KVM under Ubuntu using qcow2 disk images
# First of all disable apparmor to allow access
aa-status
aa-complain /usr/sbin/libvirtd
aa-complain /etc/apparmor.d/libvirt/libvirt-xxxxxxxxxxxxxxxxxx
# View disks
virsh domblklist test-backup
# Suspend the domain (This is optional. I do this so that the condition of virtual machines remains unchanged during the backup.)
virsh suspend test-backup
# Create snapshot
virsh snapshot-create-as --domain test-backup test-snap1 \
--diskspec vda,file=/home/virtual/test_backup/test-c.img \
--diskspec vdb,file=/home/virtual/test_backup/test-d.img \
--disk-only --atomic
# or
virsh snapshot-create-as --domain test-backup test-backup-snap1 --disk-only --atomic
# View snapshots
virsh snapshot-list test-backup
# View disks (it must be running on snapshots)
virsh domblklist test-backup
# Copy drives to backup dir
rsync -avh --progress drive-c.qcow2 export/drive-c.qcow2-copy
rsync -avh --progress drive-d.qcow2 export/drive-d.qcow2-copy
# Perform active blockcommit by live merging contents
virsh blockcommit test-backup vda --active --verbose --pivot
virsh blockcommit test-backup vdb --active --verbose --pivot
# View disks (it must be running on normal drives)
virsh domblklist test-backup
# Unsuspend the domain
virsh resume test-backup
# View snapshots again
virsh snapshot-list test-backup
# Delete snapshots
virsh snapshot-delete test-backup test-backup-snap1 --metadata
# View snapshots to check
virsh snapshot-list test-backup
# Delete snapshot files
rm -f /home/virtual/test_backup/drive-c.test-backup-snap1
rm -f /home/virtual/test_backup/drive-d.test-backup-snap1