From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=54464 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OvUyd-0004XU-L6 for qemu-devel@nongnu.org; Tue, 14 Sep 2010 08:51:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OvUyZ-0005Xn-8l for qemu-devel@nongnu.org; Tue, 14 Sep 2010 08:51:11 -0400 Received: from mail-yx0-f173.google.com ([209.85.213.173]:50072) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OvUyZ-0005Xf-5A for qemu-devel@nongnu.org; Tue, 14 Sep 2010 08:51:07 -0400 Received: by yxs7 with SMTP id 7so2769472yxs.4 for ; Tue, 14 Sep 2010 05:51:06 -0700 (PDT) Message-ID: <4C8F6FB6.1000503@codemonkey.ws> Date: Tue, 14 Sep 2010 07:51:02 -0500 From: Anthony Liguori MIME-Version: 1.0 Subject: Re: [Qemu-devel] Re: [PATCH 3/3] disk: don't read from disk until the guest starts References: <1284213896-12705-1-git-send-email-aliguori@us.ibm.com> <1284213896-12705-4-git-send-email-aliguori@us.ibm.com> <4C8DE19B.9090309@redhat.com> <4C8E2747.9090806@linux.vnet.ibm.com> <4C8E2981.7000304@redhat.com> <4C8E2A52.1000708@linux.vnet.ibm.com> <4C8E319A.4090103@redhat.com> <4C8E367B.8070609@codemonkey.ws> <4C8F44C5.6090908@redhat.com> In-Reply-To: <4C8F44C5.6090908@redhat.com> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Avi Kivity Cc: Kevin Wolf , Juan Quintela , qemu-devel@nongnu.org, Stefan Hajnoczi On 09/14/2010 04:47 AM, Avi Kivity wrote: > On 09/13/2010 04:34 PM, Anthony Liguori wrote: >> On 09/13/2010 09:13 AM, Kevin Wolf wrote: >>>> I think the only real advantage is that we fix NFS migration, right? >>> That's the one that we know about, yes. >>> >>> The rest is not a specific scenario, but a strong feeling that >>> having an >>> image opened twice at the same time feels dangerous. >> >> We've never really had clear semantics about live migration and block >> driver's life cycles. At a high level, for live migration to work, >> we need the following sequence: >> >> 1) src> flush all pending writes to disk >> 2) >> 3) dst> invalidate any cached data >> 4) dst> start guest > > That's pretty complicated, compared to > > 1) src> close 1.5) > 2) dst> open > 3) dst> start guest You need to make sure the open happens *after* the close. You're just using close to flush all pending writes or open to invalidate any cached data. Regards, Anthony Liguori > There are two failure scenarios with this model: > > 1. dst cannot open the image > > We fix that by killing dst and continuing src (which has to re-open > its images). > > 2. dst cannot open the image, and src cannot as well > > In this case, what would be gained by having an image handle open in > one of the hosts, but no way to open it again? As soon as the > surviving qemu exited (or crashed), the image would be lost for ever. > > To get (1) working correctly we need an event that tells management > that all initialization has completed and the guest is ready to run > (so management can terminate the source). >