On Tue, 04/26 10:42, Jason Dillaman wrote: > On Sun, Apr 24, 2016 at 7:42 PM, Fam Zheng <f...@redhat.com> wrote: > > On Fri, 04/22 21:57, Jason Dillaman wrote: > >> Since this cannot automatically recover from a crashed QEMU client with an > >> RBD image, perhaps this RBD locking should not default to enabled. > >> Additionally, this will conflict with the "exclusive-lock" feature > >> available since the Ceph Hammer-release since both utilize the same locking > >> construct. > >> > >> As a quick background, the optional exclusive-lock feature can be > >> enabled/disabled on image and safely/automatically handles the case of > >> recovery from a crashed client. Under normal conditions, the RBD > >> exclusive-lock feature automatically acquires the lock upon the first > >> attempt to write to the image and transparently transitions ownership of > >> the lock between two or more clients -- used for QEMU live-migration. > > > > Is it enabled by default? > > > > Starting with the Jewel release of Ceph it is enabled by default.
OK, then I'll leave rbd in this QEMU series for now. > > >> > >> I'd be happy to add a new librbd API method to explicitly expose acquiring > >> and releasing the RBD exclusive lock since it certainly solves a couple > >> compromises in our current QEMU integration. > > > > Does the API do enable/disable or acquire/relase? Could you explain the > > differences between it and rbd_lock_exclusive? > > There is already an API for enabling/disabling the exclusive-lock > feature (and associated CLI tooling). This would be a new API method > to explicitly acquire / release the exclusive-lock (instead of > implicitly acquiring the lock upon first write request as it currently > does in order to support QEMU live-migration). > > The rbd_lock_exclusive/rbd_lock_shared are essentially advisory locks. > Nothing stops a client from accessing the image if it doesn't attempt > to acquire the lock (even if another client already has the image > locked exclusively). It also doesn't support automatic recovery from > failed clients. I see, thanks for the explanation! Fam