On Wed, Aug 14, 2013 at 05:32:16PM +0200, Kevin Wolf wrote:
> Am 14.08.2013 um 16:26 hat Kaveh Razavi geschrieben:
> > On 08/14/2013 03:50 PM, Alex Bligh wrote:
> > > Assuming the cache quota is not exhausted, how do you know how that
> > > a VM has finished 'creating' the cache? At any point it might
> > > read a bit more from the backing image.
> > 
> > I was assuming on shutdown.
> 
> Wait, so you're not really changing the cache while it's used, but you
> only create it once and then use it like a regular backing file?  If so,
> the only thing we need to talk about is the creation, because there's no
> difference for using it.
> 
> Creation can use the existing copy-on-read functionality, and the only
> thing you need additionally is a way to turn copy-on-read off at the
> right point.
> 
> Or do I misunderstand what you're doing?

Yes, it seems we're talking about placing an intermediate backing file
on the host:

 /nfs/template.qcow2 <- /local/cache.qcow2 <- /local/vm001.qcow2

On first boot the image runs in "record" mode which populates the cache
via copy-on-read.

Once "record" mode is disabled the cache image can be shared with other
VMs on the host.  They all open it read-only and no longer modify the
cache.

At that point you have a normal qcow2 backing file chain:

 /nfs/template.qcow2 <- /local/cache.qcow2 <- /local/vm001.qcow2
                                           <- /local/vm002.qcow2

With this approach you don't need a qemu-nbd process that arbitrates
writes to the cache.qcow2 image file.  The disadvantage is that it only
caches the "record" mode read requests and does not adapt to changes if
the workload begins reading other data.  Also, it requires more
complicated management tools to handle the "record"/"playback" states of
the cache:

1. Launching vm002 while vm001 is still recording the cache.  (Bypass
   the cache temporarily for vm002.)
2. Switching the cache from "record" to "playback" after vm001 has
   finished its first run.
3. Switching vm002 to use the cache once it transitions to "playback"
   mode.

Stefan

Reply via email to