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?
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?
Thanks.
--
Danti Gionatan
Supporto Tecnico
Assyoma S.r.l. -
www.assyoma.it
email: g.danti(a)assyoma.it - info(a)assyoma.it
GPG public key ID: FF5F32A8