I'm still trying to improve my snapshot behavior.  I was reading through the 
RedHat documentation and found this, "Important Red Hat recommends the use of 
external snapshots”  Actually external snapshots sound great.  Then on a later 
page I found this: “However, external snapshots are currently not fully 
implemented on Red Hat Enterprise Linux 7, and are not available when using 
virt-manager.”  Hrm.  Well, that’s for RHEL 7 and I’m using RHEL 8.  Maybe it 
has been fixed?  Apparently no.  When I tried to take the external snapshot it 
crashed with “libvirt.libvirtError: internal error: unable to execute QEMU 
command 'cont': Failed to get shared "write" lock.”  It created a new 
disk.qcow2, but the memory was not saved.  Worse, when I tried to reboot my VM 
it was locked to the new disk.  I changed it back to my original disk, but it 
says it can’t get the lock.  Even if it doesn’t work, I didn’t expect taking a 
snapshot to be destructive!  So, a couple of questions:


  1.  Is there any way to get external snapshots to work?
  2.  How do I clear the lock on my disk?  There aren’t any VMs alive to be 
using it, so I just need to clear the lock.


Below is what I was trying to do:

$ virsh snapshot-create-as centos8_1 externsnap --atomic --diskspec 
vda,file=$PWD/disk.qcow2,snapshot=external --memspec 
file=$PWD/mem.qcow2,snapshot=external
error: internal error: unable to execute QEMU command 'cont': Failed to get 
shared "write" lock

$ ls *.qcow2
disk.qcow2
$  #Noite there is no mem.qcow2

Then when trying to restart I first had to point virt-manager back to my 
original VM disk, I got this error about the disk lock:

 Error starting domain: internal error: qemu unexpectedly closed the monitor: 
2021-09-13T14:12:42.409301Z qemu-kvm: -blockdev 
{"node-name":"libvirt-2-format","read-only":false,"driver":"qcow2","file":"libvirt-2-storage","backing":"libvirt-3-format"}:
 Failed to get "write" lock
Is another process using the image [/home/leek2/qemu/rhel8_1.qcow2]?

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 75, in cb_wrapper
    callback(asyncjob, *args, **kwargs)
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 111, in tmpcb
    callback(*args, **kwargs)
  File "/usr/share/virt-manager/virtManager/object/libvirtobject.py", line 66, 
in newfn
    ret = fn(self, *args, **kwargs)
  File "/usr/share/virt-manager/virtManager/object/domain.py", line 1280, in 
startup
    self._backend.create()
  File "/usr/lib64/python3.6/site-packages/libvirt.py", line 1234, in create
    if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
libvirt.libvirtError: internal error: qemu unexpectedly closed the monitor: 
2021-09-13T14:12:42.409301Z qemu-kvm: -blockdev 
{"node-name":"libvirt-2-format","read-only":false,"driver":"qcow2","file":"libvirt-2-storage","backing":"libvirt-3-format"}:
 Failed to get "write" lock
Is another process using the image [/home/leek2/qemu/rhel8_1.qcow2]?

Thanks,
Jim

Reply via email to