From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=54251 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Ovuhh-0005cF-Tq for qemu-devel@nongnu.org; Wed, 15 Sep 2010 12:19:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1Ovuhg-00079H-Rd for qemu-devel@nongnu.org; Wed, 15 Sep 2010 12:19:25 -0400 Received: from mx1.redhat.com ([209.132.183.28]:18186) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Ovuhg-00079D-K4 for qemu-devel@nongnu.org; Wed, 15 Sep 2010 12:19:24 -0400 From: Juan Quintela In-Reply-To: <4C8DE19B.9090309@redhat.com> (Kevin Wolf's message of "Mon, 13 Sep 2010 10:32:27 +0200") 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> Date: Wed, 15 Sep 2010 18:16:44 +0200 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: [Qemu-devel] Re: [PATCH 3/3] disk: don't read from disk until the guest starts List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kevin Wolf Cc: Anthony Liguori , qemu-devel@nongnu.org, Stefan Hajnoczi Kevin Wolf wrote: > Am 11.09.2010 16:04, schrieb Anthony Liguori: >> This fixes a couple nasty problems relating to live migration. >> >> 1) When dealing with shared storage with weak coherence (i.e. NFS), even if >> we re-read, we may end up with undesired caching. By delaying any reads >> until we absolutely have to, we decrease the likelihood of any undesirable >> caching. >> >> 2) When dealing with copy-on-read, the local storage acts as a cache. We need >> to make sure to avoid any reads to avoid polluting the local cache. >> >> Signed-off-by: Anthony Liguori > > I think we should also delay even opening the image file at all to the > latest possible point to avoid that new problems of this kind are > introduced. Ideally, opening the image would be the very last thing we > do before telling the migration source that we're set and it should > close the images. > > Even better would be to only open the image when the source has already > closed it (we could completely avoid the invalidation/reopen then), but > I think you were afraid that we might lose the image on both ends. But then we have formats like qcow2 that store the "number_of_sectors" inside the file. And we need the size of the disk to initialize some structures :( About having the image opened in two different machines ..... - Having it opened in two places: makes it "interesting" for cocherence reasons. - Not having it, makes the failure case of anything failing during migration ... interesting. Real solution for "this" problem is to just send in the migration stream the size/head/cylinder/sector ... values and not having to open the image. Problem here is that for qemu architecture, we have to know this values before we call migration functions. As far as I can see, until we are not able to create a machine from inside the monitor (i.e. qemu initialization & machine creation are decoupled), we are not going to be able to fix migration properly (using that very same mechanism to create the machine during migration). Later, Juan.