Am 16.06.2011 14:49, schrieb Avi Kivity: > On 06/16/2011 03:35 PM, Kevin Wolf wrote: >> * Image streaming is a normal image file plus copy-on-read plus a >> background task that copies data from the source image > > Or a block-mirror started in degraded mode.
At least not in the same configuration as with live block copy: You don't want to write to the source, you only want to read from it when the destination doesn't have the data yet. >> * Live block copy is a block-mirror of two normal image files plus a >> background task that copies data from the source image > > = block-mirror started in degraded mode >> The right solution is probably to implement COR and the background task >> in generic block layer code (no reason to restrict it to QED) and use it >> for both image streaming and live block copy. (This is a bit more >> complicated than it may sound here because guest writes must always take >> precedence over a copy - but doing complicated things is an even better >> reason to do it in a common place instead of duplicating) > > Or in a block-mirror block format driver - generic code need not be > involved. Might be an option. In this case generic code is only involved with the stacking of BlockDriverStates, which is already implemented (but requires -blockdev for a sane way to configure things). Kevin