On 04/12/2018 08:26 AM, Vladimir Sementsov-Ogievskiy wrote: > 1. It looks unsafe to use nbd server + backup(sync=none) on same node, > synchronization is needed, like in block/replication, which uses > backup_wait_for_overlapping_requests, backup_cow_request_begin, > backup_cow_request_end. We have a filter driver for this thing, not yet > in upstream.
Is it the case that blockdev-backup sync=none can race with read requests on the NBD server? i.e. we can get temporarily inconsistent data before the COW completes? Can you elaborate? > 2. If we use filter driver anyway, it may be better to not use backup at > all, and do all needed things in a filter driver. if blockdev-backup sync=none isn't sufficient to get the semantics we want, it may indeed be more appropriate to just leave the entire task to a new filter node. > 3. It may be interesting to implement something like READ_ONCE for NBD, > which means, that we will never read these clusters again. And after > such command, we don't need to copy corresponding clusters to temporary > image, if guests decides to write them (as we know, that client already > read them and don't going to read again). That would be a very interesting optimization indeed; but I don't think we have any kind of infrastructure for such things currently. It's almost like a TRIM on which regions need to perform COW for the BlockSnapshot. -- libvir-list mailing list email@example.com https://www.redhat.com/mailman/listinfo/libvir-list