[libvirt-users] Locking without virtlockd (nor sanlock)?

Daniel P. Berrangé berrange at redhat.com
Fri Jan 3 14:08:03 UTC 2020


On Fri, Jan 03, 2020 at 02:56:50PM +0100, Gionatan Danti wrote:
> Il 03-01-2020 11:26 Daniel P. Berrangé ha scritto:
> > virtlockd also uses fcntl(), however, it doesn't have to acquire locks
> > on
> > the file/block device directly. It can use a look-aside file for
> > locking.
> > For example a path under /var/lib/libvirt/lock. This means that locks on
> > block devices for /dev/sda1 would be held as
> > /var/lib/libvirt/lock/$HASH(/dev/sda1)
> > 
> > If you mount /var/lib/libvirt/lock on NFS, these locks now apply across
> > all machines which use the same block devices. This is useful when your
> > block device storage is network based (iSCSI, RBD, etc).
> 
> Hi Daniel,
> if I understand the docs correctly, this locking scheme is really useful for
> raw block devices, right?
> 
> Now that Qemu automatically locks file-based vdisks, what is the main
> advantage of virtlockd locking?

QEMU's locking should be good enough for file based images. There isn't
a clear benefit to virtlockd in this case.

> 
> > There are some issues with libvirt's locking though where we haven't
> > always released/re-acquired locks at the correct time when dealing
> > with block jobs. As long as your not using snapshots, block rebase,
> > block mirror APIs, it'll be ok though.
> 
> While I am not an heavy user of external snapshot and other block-related
> operation, I occasionally use them (and, in these cases, I found them very
> useful).
> 
> Does it means that I should avoid relying on virtlockd for locking? Should I
> rely on Qemu locks only?

As above, QEMU's locking is good enough to rely on for file based
images.

The flaws I mention with libvirt might actually finally be something we
have fixed in 5.10.0 with QEMU 4.2.0, since we can finally use "blockdev"
syntax for configuring disks.  Copying Peter to confirm/deny this...

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|




More information about the libvirt-users mailing list