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 :| _______________________________________________ libvirt-users mailing list libvirt-users@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvirt-users