Re: opening files in exclusive mode?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This has been discussed thoroughly on this list at least once in the past. It was decided against changing the default for various reasons. See the original thread for all the reasons, but the ones I remember are: it would kill backward compatibility for people that start multiple guests from the same source with -snapshot and for people who use qcow images with base images. It was also suggested that this might be a feature better suited for a mgmt application since it likely has a better idea of who/how it will be used. It could also disrupt live migration.

--Iggy

Sent from my iPhone

On Jan 24, 2009, at 9:03 AM, Michael Tokarev <mjt@xxxxxxxxxx> wrote:

KVM (or qemu for that matter) does not care about
concurrent access to disk images it opens.  So it's
possible to mount the same guest block device on
more than one guest, resulting in a badly broken
filesystem.

I wonder if the  right way is to open all the
devices in exclusive mode (O_EXCL).  At least
for real block devices.  On linux this ensures
there's no other holders of that device, open()
errors out with -EBUSY if it's not the case.

With an option to stop adding such a flag, in
order to be able to use some cluster-aware
filesystem or read-only device.

Dunno how it applies to files (qcow etc), but
it *seems* here the situation is even worse,
because not only the filesystem (meta)data
might be damaged, but qcow structure too,
and there's no fsck.qcow program available
to repair it.

So I think kvm should ensure exclusive access
to the files it opens (except of cd-rom images
and the like), using either O_EXCL for block
devices or locking for qcow/raw files, and
have an option to stop that (e.g. exclusive=0).

Comments?

Thanks!

/mjt
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux