On 03/13/2012 10:42 PM, Frido Roose wrote:
Hello,

I configured libvirtd with the sanlock lock manager plugin:

# rpm -qa | egrep "libvirt-0|sanlock-[01]"
libvirt-lock-sanlock-0.9.4-23.el6_2.4.x86_64
sanlock-1.8-2.el6.x86_64
libvirt-0.9.4-23.el6_2.4.x86_64

# egrep -v "^#|^$" /etc/libvirt/qemu-sanlock.conf 
auto_disk_leases = 1
disk_lease_dir = "/var/lib/libvirt/sanlock"
host_id = 4

# mount | grep sanlock
/dev/mapper/kvm--shared-sanlock on /var/lib/libvirt/sanlock type gfs2 (rw,noatime,hostdata=jid=0)

# cat /etc/sysconfig/sanlock 
SANLOCKOPTS="-R 1 -o 30"

I increased the sanlock io_timeout to 30 seconds (default = 10), because the sanlock dir is on a GFS2 volume and can be blocked for some time while fencing and journal recovery takes place.
With the default sanlock io timeout, I get lease timeouts because IO is blocked:
   Mar  5 15:37:14 raiti sanlock[5858]: 3318 s1 check_our_lease warning 79 last_success 3239
   Mar  5 15:37:15 raiti sanlock[5858]: 3319 s1 check_our_lease failed 80

So far, all fine, but when I restart sanlock and libvirtd, it takes about 2 * 30 seconds = 1 minute before libvirtd is usable.  "virsh list" hangs during this time.  I can still live with that...
But it gets worse after a reboot, when running a "virsh list" even takes a couple of minutes (like about 5 minutes) before it responds.  After this initial time, virsh is responding normally, so it looks like an initialization issue to me.

Is this a configuration issue, a bug, or expected behavior?
Hi Frido,
I'm not sure whether you met a sanlock AVC error in your /var/log/audit/audit.log, could you check it and provide your selinux-policy version? in addition, you should turn on selinux bool value for sanlock, for example,

# getsebool -a|grep sanlock
virt_use_sanlock --> off
# setsebool -P virt_use_sanlock on
# getsebool -a|grep sanlock
virt_use_sanlock --> on

In addition, could you provide libvirt log as a attachment? please refer the following configuration:

1. /etc/libvirt/libvirtd.conf

log_filters="1:libvirt 1:conf 1:locking"
log_outputs="1:file:/var/log/libvirt/libvirtd.log"

2. service libvirtd restart

3. repeat your test steps

Good Luck!
Alex





Thanks for any advice...
Frido
_______________________________________________ libvirt-users mailing list libvirt-users@redhat.com https://www.redhat.com/mailman/listinfo/libvirt-users