From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:42678) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ROa2Q-0005w2-Cf for qemu-devel@nongnu.org; Thu, 10 Nov 2011 14:11:51 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ROa2O-0005Wp-HY for qemu-devel@nongnu.org; Thu, 10 Nov 2011 14:11:50 -0500 Received: from mail-qw0-f45.google.com ([209.85.216.45]:46440) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ROa2O-0005WS-FP for qemu-devel@nongnu.org; Thu, 10 Nov 2011 14:11:48 -0500 Received: by qadz3 with SMTP id z3so3873225qad.4 for ; Thu, 10 Nov 2011 11:11:47 -0800 (PST) Message-ID: <4EBC21EE.2010102@codemonkey.ws> Date: Thu, 10 Nov 2011 13:11:42 -0600 From: Anthony Liguori MIME-Version: 1.0 References: <4EBAAA68.10801@redhat.com> <4EBAACAF.4080407@codemonkey.ws> <4EBAB236.2060409@redhat.com> <4EBAB9FA.3070601@codemonkey.ws> <4EBB919B.7040605@redhat.com> <4EBC1792.3030004@codemonkey.ws> <20111110184200.GC17987@redhat.com> In-Reply-To: <20111110184200.GC17987@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] qemu and qemu.git -> Migration + disk stress introduces qcow2 corruptions List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Daniel P. Berrange" Cc: Lucas Meneghel Rodrigues , Kevin Wolf , KVM mailing list , "Michael S. Tsirkin" , "libvir-list@redhat.com" , Marcelo Tosatti , QEMU devel , Juan Jose Quintela Carreira , Avi Kivity On 11/10/2011 12:42 PM, Daniel P. Berrange wrote: > On Thu, Nov 10, 2011 at 12:27:30PM -0600, Anthony Liguori wrote: >> What does libvirt actually do in the monitor prior to migration >> completing on the destination? The least invasive way of doing >> delayed open of block devices is probably to make -incoming create a >> monitor and run a main loop before the block devices (and full >> device model) is initialized. Since this isolates the changes >> strictly to migration, I'd feel okay doing this for 1.0 (although it >> might need to be in the stable branch). > > The way migration works with libvirt wrt QEMU interactions is now > as follows > > 1. Destination. > Run qemu -incoming ...args... > Query chardevs via monitor > Query vCPU threads via monitor > Set disk / vnc passwords Since RHEL carries Juan's patch, and Juan's patch doesn't handle disk passwords gracefully, how does libvirt cope with that? Regards, Anthony Liguori > Set netdev link states > Set balloon target > > 2. Source > Set migration speed > Set migration max downtime > Run migrate command (detached) > while 1 > Query migration status > if status is failed or success > break; > > 3. Destination > If final status was success > Run 'cont' in monitor > else > kill QEMU process > > 4. Source > If final status was success and 'cont' on dest succeeded > kill QEMU process > else > Run 'cont' in monitor > > > In older libvirt, the bits from step 4, would actually take place > at the end of step 2. This meant we could end up with no QEMU > on either the source or dest, if starting CPUs on the dest QEMU > failed for some reason. > > > We would still really like to have a 'query-migrate' command for > the destination, so that we can confirm that the destination has > consumed all incoming migrate data successfully, rather than just > blindly starting CPUs and hoping for the best. > > Regards, > Daniel