On Fri, 08/18 18:06, Xie Changlong wrote: > The root casue is when we run replication in secondary, vmstate changes to > RUN_STATE_INMIGRATE, then blockdev_init() sets bdrv_flags |= > BDRV_O_INACTIVE. So the whole chain become readonly. I've tried on my side, > but it seems not easy to fix it. I wonder if there is any way to bypass > this? Any suggestion would be appreciated.
The non-shared storage migration uses "nbd_server_add -w" at destinition side where BDRV_O_INACTIVE is set for images like your case, the way it handles it is by calling bdrv_invalidate_cache(). See nbd_export_new(). See also commit 3dff24f2dffc5f3aa46dc014122012848bd7959d. I'm not sure if this is enough for block replication? Fam