On Thu, Nov 04, 2021 at 09:58:11AM +0100, Markus Armbruster wrote:
From: Vladimir Sementsov-Ogievskiy <vsementsov(a)virtuozzo.com>
Modern way is using blockdev-add + blockdev-backup, which provides a
lot more control on how target is opened.
As example of drive-backup problems consider the following:
User of drive-backup expects that target will be opened in the same
cache and aio mode as source. Corresponding logic is in
drive_backup_prepare(), where we take bs->open_flags of source.
It works rather bad if source was added by blockdev-add. Assume source
is qcow2 image. On blockdev-add we should specify aio and cache options
for file child of qcow2 node. What happens next:
drive_backup_prepare() looks at bs->open_flags of qcow2 source node.
But there no BDRV_O_NOCAHE neither BDRV_O_NATIVE_AIO: BDRV_O_NOCAHE is
places in bs->file->bs->open_flags, and BDRV_O_NATIVE_AIO is nowhere,
as file-posix parse options and simply set s->use_linux_aio.
The documentation is updated in a minimal way, so that drive-backup is
noted only as a deprecated command, and blockdev-backup used in most of
places.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov(a)virtuozzo.com>
Reviewed-by: Kashyap Chamarthy <kchamart(a)redhat.com>
Signed-off-by: Markus Armbruster <armbru(a)redhat.com>
---
Reviewed-by: Eric Blake <eblake(a)redhat.com>
I think this is appropriate for inclusion in 6.2, even if it did not
quite make soft freeze, so that we aren't delaying the deprecation for
an entire cycle.
docs/about/deprecated.rst | 11 ++++++
docs/interop/live-block-operations.rst | 47 +++++++++++++++++---------
qapi/block-core.json | 5 ++-
qapi/transaction.json | 6 +++-
4 files changed, 51 insertions(+), 18 deletions(-)
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization:
qemu.org |
libvirt.org