From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46399) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1avDDR-0001ta-3n for qemu-devel@nongnu.org; Tue, 26 Apr 2016 20:20:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1avDDQ-0003Wl-7r for qemu-devel@nongnu.org; Tue, 26 Apr 2016 20:20:29 -0400 Date: Wed, 27 Apr 2016 08:20:25 +0800 From: Fam Zheng Message-ID: <20160427002025.GD834@ad.usersys.redhat.com> References: <1460690887-32751-1-git-send-email-famz@redhat.com> <1460690887-32751-8-git-send-email-famz@redhat.com> <20160425004250.GA18010@ad.usersys.redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Subject: Re: [Qemu-devel] [PATCH for-2.7 v2 07/17] rbd: Implement image locking List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: dillaman@redhat.com Cc: qemu-devel@nongnu.org, Kevin Wolf , qemu-block@nongnu.org, Jeff Cody , Markus Armbruster , Max Reitz , den@openvz.org, Paolo Bonzini , John Snow On Tue, 04/26 10:42, Jason Dillaman wrote: > On Sun, Apr 24, 2016 at 7:42 PM, Fam Zheng 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