All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v10 00/11] Drop in_use from BlockDriverState and enable point-in-time snapshot exporting over NBD
@ 2014-01-08  3:42 Fam Zheng
  2014-01-08  3:42 ` [Qemu-devel] [PATCH v10 01/11] block: Add BlockOpType enum Fam Zheng
                   ` (11 more replies)
  0 siblings, 12 replies; 13+ messages in thread
From: Fam Zheng @ 2014-01-08  3:42 UTC (permalink / raw)
  To: qemu-devel; +Cc: kwolf, rjones, armbru, imain, stefanha, pbonzini

This series adds for point-in-time snapshot NBD exporting based on
blockdev-backup (variant of drive-backup with existing device as target).

We get a thin point-in-time snapshot by COW mechanism of drive-backup, and
export it through built in NBD server. The steps are as below:

 1. (SHELL) qemu-img create -f qcow2 BACKUP.qcow2 <source size here>

    (Alternatively we can use -o backing_file=RUNNING-VM.img to omit explicitly
    providing the size by ourselves, but it's risky because RUNNING-VM.qcow2 is
    used r/w by guest. Whether or not setting backing file in the image file
    doesn't matter, as we are going to override the backing hd in the next
    step)

 2. (QMP) blockdev-add backing=source-drive file.driver=file file.filename=BACKUP.qcow2 id=target0 if=none driver=qcow2

    (where source-drive is the running BlockDriverState name for
    RUNNING-VM.img. This patch implements "backing=" option to override
    backing_hd for added drive)

 3. (QMP) blockdev-backup device=source-drive sync=none target=target0

    (this is the QMP command introduced by this series, which use a named
    device as target of drive-backup)

 4. (QMP) nbd-server-add device=target0

When image fleecing done:

 1. (QMP) block-job-cancel device=source-drive

 2. (HMP) drive_del target0

 3. (SHELL) rm BACKUP.qcow2

v8 -> v10: Rebased to qemu.git. Address Stefan's comments:

    [01/11] block: Add BlockOpType enum
            Change enum definition as internal.

    [05/11] block: Add bdrv_set_backing_hd()
            Set bs->backing_file and bs->backing_format.

    [06/11] block: Add backing_blocker in BlockDriverState
            Reuse bdrv_set_backing_hd().

    [07/11] block: Parse "backing" option to reference existing BDS
            Fix use-after-free.
            Check for "backing=" and "backing.file=" conflict.
            Remove unintended bdrv_swap hunks.

    [08/11] block: Support dropping active in bdrv_drop_intermediate
            Fix function comment.

    [09/11] stream: Use bdrv_drop_intermediate and drop close_unused_images


Fam Zheng (11):
  block: Add BlockOpType enum
  block: Introduce op_blockers to BlockDriverState
  block: Replace in_use with operation blocker
  block: Move op_blocker check from block_job_create to its caller
  block: Add bdrv_set_backing_hd()
  block: Add backing_blocker in BlockDriverState
  block: Parse "backing" option to reference existing BDS
  block: Support dropping active in bdrv_drop_intermediate
  stream: Use bdrv_drop_intermediate and drop close_unused_images
  qmp: Add command 'blockdev-backup'
  block: Allow backup on referenced named BlockDriverState

 block-migration.c               |   7 +-
 block.c                         | 306 +++++++++++++++++++++++++++-------------
 block/backup.c                  |  21 +++
 block/commit.c                  |   1 +
 block/stream.c                  |  28 +---
 blockdev.c                      |  70 +++++++--
 blockjob.c                      |  14 +-
 hw/block/dataplane/virtio-blk.c |  19 ++-
 include/block/block.h           |  29 +++-
 include/block/block_int.h       |   9 +-
 include/block/blockjob.h        |   3 +
 qapi-schema.json                |  49 +++++++
 qmp-commands.hx                 |  44 ++++++
 13 files changed, 446 insertions(+), 154 deletions(-)

-- 
1.8.5.1

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2014-01-08  6:20 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-08  3:42 [Qemu-devel] [PATCH v10 00/11] Drop in_use from BlockDriverState and enable point-in-time snapshot exporting over NBD Fam Zheng
2014-01-08  3:42 ` [Qemu-devel] [PATCH v10 01/11] block: Add BlockOpType enum Fam Zheng
2014-01-08  3:42 ` [Qemu-devel] [PATCH v10 02/11] block: Introduce op_blockers to BlockDriverState Fam Zheng
2014-01-08  3:42 ` [Qemu-devel] [PATCH v10 03/11] block: Replace in_use with operation blocker Fam Zheng
2014-01-08  3:42 ` [Qemu-devel] [PATCH v10 04/11] block: Move op_blocker check from block_job_create to its caller Fam Zheng
2014-01-08  3:42 ` [Qemu-devel] [PATCH v10 05/11] block: Add bdrv_set_backing_hd() Fam Zheng
2014-01-08  3:42 ` [Qemu-devel] [PATCH v10 06/11] block: Add backing_blocker in BlockDriverState Fam Zheng
2014-01-08  3:42 ` [Qemu-devel] [PATCH v10 07/11] block: Parse "backing" option to reference existing BDS Fam Zheng
2014-01-08  3:42 ` [Qemu-devel] [PATCH v10 08/11] block: Support dropping active in bdrv_drop_intermediate Fam Zheng
2014-01-08  3:42 ` [Qemu-devel] [PATCH v10 09/11] stream: Use bdrv_drop_intermediate and drop close_unused_images Fam Zheng
2014-01-08  3:42 ` [Qemu-devel] [PATCH v10 10/11] qmp: Add command 'blockdev-backup' Fam Zheng
2014-01-08  3:42 ` [Qemu-devel] [PATCH v10 11/11] block: Allow backup on referenced named BlockDriverState Fam Zheng
2014-01-08  6:20 ` [Qemu-devel] [PATCH v10 00/11] Drop in_use from BlockDriverState and enable point-in-time snapshot exporting over NBD Fam Zheng

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.