Itamar Heim wrote:
Hi,
I am interested to find out how libvirt envisions image locking.
i.e., how do we make sure multiple nodes are not trying to access the
same storage volume, probably causing image corruption.
I know this can be solved by means of a cluster, but it seems excessive
(and not possible in all scenarios).
Central administration (ovirt-like) is also problematic, since unless
fencing is assumed, it cannot verify the image is no longer being used.
In an oVirt network, this shouldn't be a problem. Storage can only be
assigned to one VM at a time presently. (In the future we may relax this
for clustered filesystems, but shared storage will be marked as such).
Regardless of whether or not a VM is active/inactive, once an iSCSI LUN,
disk image or otherwise is assigned to a VM it can't be used by other VMs.
The storage is not released to the available list until the VM using it
is both destroyed and undefined. We don't allow undefine until the VM has
been destroyed and we won't confirm that a VM has been destroyed if we
can't contact the host that it is running on to confirm.
Now... if you start creating VMs on an oVirt network outside of the oVirt
Server or decide to share your storage pools between an oVirt network and
a non-oVirt network that is problematic. Our solution for that for the
time being is 'just don't do that'. :)
Perry