On 01/22/2016 02:35 PM, Kashyap Chamarthy wrote:
On Fri, Jan 22, 2016 at 03:56:08PM +0000, Daniel P. Berrange wrote:
> We have had virtlockd available for a long time now but
> have always defaulted to the 'nop' lock driver which does
> no locking. This gives users an unsafe deployment by
> default unless they know to turn on lockd. virtlockd will
> auto-activate via systemd when guests launch, so setting
> it on by default will only cause upgrade pain for people
> on non-systemd distros.
I tried to test this patch in the below way after applying to my local
Git master, and my test seems to fail.
Compile and `virtlockd` setup
-----------------------------
After applying the patch, I'm here:
$ git describe
v1.3.1-34-gd3a39cd
Compile:
$ cd ~/build/libvirt
$ ~/src/libvirt/./autgen.sh --system && make -j8
Stop the system libvirtd and virtlockd:
$ systemctl stop libvirtd
$ systemctl stop virtlockd
Enable `virtlockd` for the QEMU driver:
$ augtool -s set /files/etc/libvirt/qemu.conf/lock_manager lockd
Invoke just compiled virtlockd and libvirtd (in that order):
$ sudo ./run src/virtlockd &
$ sudo ./run daemon/libvirtd &
Test
----
Purposefully make two libvirt VMs point to the same disk image:
$ sudo ./run tools/virsh dumpxml cvm1 | grep 'source file'
<source
file='/var/lib/libvirt/images/cirros-0.3.3-x86_64-disk.img'/>
$ sudo ./run tools/virsh dumpxml cvm2 | grep 'source file'
<source
file='/var/lib/libvirt/images/cirros-0.3.3-x86_64-disk.img'/>
Start the first VM (with `virsh` from the build dir), it fails:
$ sudo ./run tools/virsh start cvm1
error: Failed to start domain cvm1
error: Failed to connect socket to '/var/run/libvirt/virtlogd-sock': No such
file or directory
However, the virtlogd-sock file exists in the said path:
$ ls -lsrt /var/run/libvirt/virtlockd-sock
0 srwx------. 1 root root 0 Jan 22 19:49 /var/run/libvirt/virtlockd-sock
You're mixing up virtlogd and virtlockd :) virtlogd was added recently and
should be started. But maybe there's another issue if it wasn't started
automatically.
- Cole