Expected:
- running VM to be hibernated upon restart using GUI. the hibernation state should be preserved after restart
- already hibernated VM to preserve hibernation state upon restart using GUI
- possibly the same upon start and stop array using GUI
What happens:
- When hitting restart using GUI, unknown whether VM hibernates. Either way, hibernation state is not preserved after restart
- When stopping and starting array using GUI, either 1) qemu-system-x86_64 prevents stop or 2) stop is ok but libvirt.img is locked by qemu-system-x86_64 upon restart preventing libvirt from starting (VM tab won't load)
Here's the error message when libvirt.img fails to start:
Tower root: /mnt/disks/ssd/system/libvirt/libvirt.img is in-use, cannot mount
When I use fuser and ps to find out which processes are locking it, I see the hibernated VM:
/usr/bin/qemu-system-x86_64 -name guest=win10,debug-threads=on -S -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-1-win10/master-key.aes -machine pc-i440fx-3.1,accel=kvm,usb=off,dump-guest-core=off,mem-merge=off -cpu host,hv_time,hv_relaxed,hv_vapic,hv_spinlocks=0x1fff,hv_vendor_id=none -drive file=/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd,if=pflash,format=raw,unit=0,readonly=on -drive file=/etc/libvirt/qemu/nvram/2f4360e3-a8a0-ca29-a732-4f1191b06173_VARS-pure-efi.fd,if=pflash,format=raw,unit=1 -m 4096 -realtime mlock=off -smp 2,sockets=1,cores=1,threads=2 -uuid 2f4360e3-a8a0-ca29-a732-4f1191b06173 -no-user-config -nodefaults -chardev socket,id=charmonitor,fd=26,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime -no-hpet -no-shutdown -boot strict=on -device nec-usb-xhci,p2=15,p3=15,id=usb,bus=pci.0,addr=0x7 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x4 -drive file=/mnt/disks/ssd/domains/win10/vdisk1.img,format=raw,if=none,id=drive-virtio-disk2,cache=writeback -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk2,id=virtio-disk2,bootindex=1,write-cache=on -netdev tap,fd=29,id=hostnet0,vhost=on,vhostfd=30 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:1a:cb:11,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev socket,id=charchannel0,fd=31,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 -device usb-tablet,id=input0,bus=usb.0,port=1 -vnc 0.0.0.0:0,websocket=5700 -k en-us -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vram64_size_mb=0,vgamem_mb=16,max_outputs=1,bus=pci.0,addr=0x2 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny -msg timestamp=on
(Also, my docker containers were listed as locking it as well for some reason which I wasn't sure was normal, but I turned off autostart on all dockers to remove that as a source of noise)
Tried:
- multiple Win10 (Pro) VMs including completely clean configs
- storing libvirt.img and VM domains on /mnt/cache as well as unassigned device
- hibernate using 1) host "virsh dompmsuspend <domain> disk", 2) guest start menu, 3) guest PassMark PC Sleep test tool (which confirmed S4 sleep worked)
Notes:
- when hibernated by any method, the VM shows up as "paused" in GUI, not "stopped" - not sure if this is the norm
- when hibernated by any method, virsh shows the domain as "pmsuspended" as expected
- I can resume from hibernate fine
- qemu-agent is installed and I confirmed the service is running using PowerShell
This is a real pain point as I have multiple VMs running at any given time relied on by multiple users, and it's a real pain to make sure everything is shut off whenever I troubleshoot the array or add/change a disk
Recommended Comments
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.