On Thu, Jun 16, 2011 at 11:52:43AM -0300, Marcelo Tosatti wrote: This approach does not use the backing file feature?
> blkstream block driver: > > - Maintain in memory whether given block is allocated in local image, > if not, read from remote, write to local. Set block as local. > Local and remote simply two block drivers from image streaming driver > POV. > - Once all blocks are local, notify mgmt so it can switch to local > copy. > - Writes are mirrored to source and destination, minding guest writes > over copy writes. We open the remote file read-only for image streaming and do not want to mirror writes. If QEMU crashes or there is a power failure we need to restart the streaming process carefully - local blocks must not be overwritten. Perhaps this is the tricky part. > Over this scheme, you'd have: > > 1) Block copy. > Reopen image to be copied with > blkstream:/path/to/current-image:/path/to/destination-image, > background read sectors 0...N. > > 2) Image stream: > blkstream:remote-image:/path/to/local-image, > background read sectors 0...N. Stefan