On 09/28/2015 03:32 PM, Jeff Cody wrote: > I guess that makes sense. What about the case when the target is a raw > device without zero init? There is no backing file... Of course, perhaps > in the raw case the user should be using sync==full anyways. > >> >> 2) even with mode == "existing" you expect the data to be consistent at >> the end of the mirroring >> > > The reason I added the "existing" exception was so the user could avoid the > time penalty of zeroing out the data if they knew the target had already > explicitly been zeroed. Do you think it is fair to assume that if the user > specified existing, that they take responsibility for setting up the target > image how they like (including data initialization)? Or should we add > another option for mirror, to allow the user to bypass the zero fill?
mode == 'existing' puts the burden on the caller to ensure that the file they are passing in starts with known contents (either contents don't matter because we are doing sync == 'full' to write every sector, or contents MUST initially match what the guest would see looking at the backing image when doing a shallow clone). But if there is a way for a user to pass in an existing file which they have pre-zeroed, even though the file would normally be treated as though it did not have zero fill, then the option to bypass a redundant zero fill might be useful. I'm not sure it's worth implementing without a known user, though, and I don't know that libvirt would use it. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature