virsh

Life backup vm #

start the vm #

$ virsh start vm1
Domain 'vm1' started

Enumerate the disks in use #

$ virsh domblklist vm1
 Target   Source
--------------------------------------
 vda      /var/lib/libvirt/images/vm1.qcow2

Begin backup #

$ virsh backup-begin vm1
Backup started

Check job status #

$ virsh domjobinfo vm1
Job type:         None

Check completion #

$ virsh domjobinfo vm1 --completed
Job type:         Completed
Operation:        Backup
Time elapsed:     183          ms
File processed:   39.250 MiB
File remaining:   0.000 B
File total:       39.250 MiB

Check backup #

$ ls -lash /var/lib/libvirt/images/vm1.qcow2*
15M -rw-r--r--. 1 qemu qemu 15M May 10 12:22 vm1.qcow2
21M -rw-------. 1 root root 21M May 10 12:23 vm1.qcow2.1620642185

Snapshots #

List snapshots

  • virsh snapshot-list runner.qrom.nl
  • sudo qemu-img snapshot -l runner.qrom.nl.qcow2

Create snapshot

  • virsh snapshot-create-as –domain runner.qrom.nl –name “dosnappie” –description “the best snap” –atomic

Info snapshot

  • virsh snapshot-info –domain runner.qrom.nl –snapshotname dosnappie

Revert snapshot - virsh snapshot-revert –domain runner.qrom.nl –snapshotname dosnappie

Delete snapshot

  • virsh snapshot-delete runner.qrom.nl –snapshotname dosnappie

External snapshots #

external snapshots

snapshots

  • virsh snapshot-create-as runner.qrom.nl –name snappieh ( gives runner.qrom.nl.snappieh )
  • virsh snapshot-create-as runner.qrom.nl –name snappiehz ( gives runner.qrom.nl.snappiehz )
  • sudo qemu-img info /var/lib/libvirt/images/runner.qrom.nl.snappiehz -U –backing-chain

If you want to remove a part of the chain you can do this with blockcommit. Its not possible to delete the past part. That you should do to delete the vm and recreate it with the base image.

  • virsh blockcommit runner.qrom.nl vda –base /var/lib/libvirt/images/runner.qrom.nl.qcow2 –top /var/lib/libvirt/images/runner.qrom.nl.qcow2/snappieh –wait –verbose ( now sn1 is gone from the chain )

External snapshot with own choose of diskname #

Create snapshot external

  • virsh snapshot-create-as –domain runner.qrom.nl snap1 snap1-descrip –disk-only –diskspec vda,snapshot=external,file=/tmp/sn1.qcow –atomic

  • virsh snapshot-create-as –domain runner.qrom.nl snap2 snap2-descrip –disk-only –diskspec vda,snapshot=external,file=/tmp/sn2.qcow –atomic

  • virsh domblklist runner.qrom.nl ( /tmp/sn2.qcow )

  • virsh snapshot-list runner.qrom.nl

  • virsh blockcommit runner.qrom.nl vda –base /var/lib/libvirt/images/runner.qrom.nl.qcow2 –top /tmp/sn1.qcow –wait –verbose ( now sn1 is gone from the chain )

now list the chain of /tmp/sn2.qcow and we see sn1 is removed/committed.

  • sudo qemu-img info /var/lib/libvirt/images/runner.qrom.nl.pipo -U –backing-chain

Create fast VM with backing file #

You need a base VM ( called golden-image )

Then create “new VM disk” based on this golden-image:

  • sudo qemu-img create -f qcow2 -b rhel9-golden.qcow2 -F qcow2 apollo.vda.x86_64.qcow2
  • sudo qemu-img create -f qcow2 -b rhel9-golden.qcow2 -F qcow2 saturn.vda.x86_64.qcow2

Example install virt with backing file #

 virt-install \
--name apollo \
--ram 4096 \
--os-variant generic \
--disk=apollo.qcow2,bus=virtio,format=qcow2 \
--import
Go Home