From: John Snow <jsnow@redhat.com>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v12 00/17] block: incremental backup series
Date: Tue, 10 Feb 2015 11:32:32 -0500 [thread overview]
Message-ID: <54DA32A0.6050006@redhat.com> (raw)
In-Reply-To: <1423532117-14490-1-git-send-email-jsnow@redhat.com>
On 02/09/2015 08:35 PM, John Snow wrote:
> Welcome to the "incremental backup" newsletter, where we discuss
> exciting developments in non-redundant backup technology.
>
> This patchset enables the in-memory part of the incremental backup
> feature. There are two series on the mailing list now by Vladimir
> Sementsov-Ogievskiy that enable the migration and persistence of
> dirty bitmaps.
>
> V12 has a lot of tiny changes from V11, so I've lost a lot of R-B
> fields again. Sorry! For a fuller changelog, see the V11 cover letter
> in the qemu-devel archives.
>
> This series and most patches were originally by Fam Zheng.
>
> Highlights:
> - Renamed "node-ref" parameter to "node" in all QMP patches.
> (A rose by any other name? ...)
> - Fuller, more robust iotests.
> - Fixed progress percentages for incremental backup jobs.
> - This patch relies upon a blkdebug fix, included as patch #16,
> but also posted separately on-list.
>
> V12:
> - Changed authorship from Fam Zheng to John Snow on most patches
> - 02: Fix the error_setg leak in bdrv_dirty_bitmap_lookup
> - Fix error phrasing in bdrv_dirty_bitmap_lookup
> - Renamed "node-ref" to "node" for QMP commands.
> - 03: Granularity helper no longer requires a BDS argument.
> - 04: Return early if the second bitmap is empty.
> - 05: Renamed the 'enabled' field to 'disabled to emphasize what the
> default operating state is.
> - We now guard against bit sets or resets with the bitmap is
> disabled, making it a more pure "read only" mode.
> - Some documentation phrasing changes.
> - 06: Removed explicit "frozen" state in favor of an implicit one.
> A successor present implies a frozen state.
> - Updated all functions that target a single bitmap to use
> assertions that the bitmap they are trying to modify is not
> frozen/disabled.
> - Functions that target multiple bitmaps use only a conditional,
> and will silently skip disabled bitmaps.
> - thaw() function removed. It is implicitly handled in reclaim
> and abdicate.
> - Added check for return code of hbitmap_merge.
> - Functions now check against enable OR disable when in frozen
> state, for consistency and simplicity.
> - Add "frozen" state documentation to remove/enable/disable
> QMP commands.
> - 07: Some documentation for bdrv_set_dirty_iter.
> - Move function calls outside of assert()
> - Cleanup the unused successor if we do not start the backup
> - Version documentation added for dirty-bitmap to block-core.json
> - Job progress is now reported for incremental backup jobs.
> - 08: bdrv_dirty_bitmap_clear is now in its own patch, here.
> - bdrv_dirty_bitmap_clear no longer takes a BDS argument.
> - 09: Added a transaction for bdrv_dirty_bitmap_clear.
> - 10: Change 'enabled' field to 'disabled' field, to match
> above decision in patch 05.
> - 12: Removed extraneous BDS arguments from most bitmap functions.
> - 13-15: New set of iotests.
> - 16: blkdebug fix, already posted upstream.
> - 17: Final iotest, testing failure case.
>
> Fam Zheng (1):
> qapi: Add optional field "name" to block dirty bitmap
>
> John Snow (16):
> qmp: Add block-dirty-bitmap-add and block-dirty-bitmap-remove
> block: Introduce bdrv_dirty_bitmap_granularity()
> hbitmap: add hbitmap_merge
> qmp: Add block-dirty-bitmap-enable and block-dirty-bitmap-disable
> block: Add bitmap successors
> qmp: Add support of "dirty-bitmap" sync mode for drive-backup
> qmp: add block-dirty-bitmap-clear
> qapi: Add transaction support to block-dirty-bitmap operations
> qmp: Add dirty bitmap status fields in query-block
> block: add BdrvDirtyBitmap documentation
> block: Ensure consistent bitmap function prototypes
> iotests: add invalid input incremental backup tests
> iotests: add simple incremental backup case
> iotests: add transactional incremental backup test
> blkdebug: fix "once" rule
> iotests: add incremental backup failure recovery test
>
> block.c | 225 ++++++++++++++++++++++++--
> block/backup.c | 149 ++++++++++++++---
> block/blkdebug.c | 6 +-
> block/mirror.c | 39 ++---
> blockdev.c | 366 +++++++++++++++++++++++++++++++++++++++++-
> hmp.c | 3 +-
> include/block/block.h | 33 +++-
> include/block/block_int.h | 2 +
> include/qemu/hbitmap.h | 11 ++
> migration/block.c | 9 +-
> qapi-schema.json | 6 +-
> qapi/block-core.json | 122 +++++++++++++-
> qmp-commands.hx | 92 ++++++++++-
> tests/qemu-iotests/026.out | 24 +--
> tests/qemu-iotests/112 | 305 +++++++++++++++++++++++++++++++++++
> tests/qemu-iotests/112.out | 5 +
> tests/qemu-iotests/group | 1 +
> tests/qemu-iotests/iotests.py | 24 ++-
> util/hbitmap.c | 32 ++++
> 19 files changed, 1341 insertions(+), 113 deletions(-)
> create mode 100644 tests/qemu-iotests/112
> create mode 100644 tests/qemu-iotests/112.out
>
For convenience:
https://github.com/jnsnow/qemu/commits/incremental-backup
prev parent reply other threads:[~2015-02-10 16:32 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-10 1:35 [Qemu-devel] [PATCH v12 00/17] block: incremental backup series John Snow
2015-02-10 1:35 ` [Qemu-devel] [PATCH v12 01/17] qapi: Add optional field "name" to block dirty bitmap John Snow
2015-02-10 1:35 ` [Qemu-devel] [PATCH v12 02/17] qmp: Add block-dirty-bitmap-add and block-dirty-bitmap-remove John Snow
2015-02-10 21:56 ` Max Reitz
2015-02-13 22:24 ` Eric Blake
2015-02-13 22:39 ` John Snow
2015-02-10 1:35 ` [Qemu-devel] [PATCH v12 03/17] block: Introduce bdrv_dirty_bitmap_granularity() John Snow
2015-02-10 22:03 ` Max Reitz
2015-02-11 18:57 ` John Snow
2015-02-11 18:58 ` Max Reitz
2015-02-10 22:13 ` Max Reitz
2015-02-10 22:15 ` John Snow
2015-02-10 1:35 ` [Qemu-devel] [PATCH v12 04/17] hbitmap: add hbitmap_merge John Snow
2015-02-10 22:16 ` Max Reitz
2015-02-10 1:35 ` [Qemu-devel] [PATCH v12 05/17] qmp: Add block-dirty-bitmap-enable and block-dirty-bitmap-disable John Snow
2015-02-11 16:26 ` Max Reitz
2015-02-10 1:35 ` [Qemu-devel] [PATCH v12 06/17] block: Add bitmap successors John Snow
2015-02-11 16:50 ` Max Reitz
2015-02-11 16:51 ` John Snow
2015-02-10 1:35 ` [Qemu-devel] [PATCH v12 07/17] qmp: Add support of "dirty-bitmap" sync mode for drive-backup John Snow
2015-02-11 17:47 ` Max Reitz
2015-02-11 17:54 ` John Snow
2015-02-11 18:18 ` Max Reitz
2015-02-11 18:31 ` John Snow
2015-02-11 18:33 ` Max Reitz
2015-02-11 21:13 ` John Snow
2015-02-13 17:33 ` Vladimir Sementsov-Ogievskiy
2015-02-13 18:35 ` John Snow
2015-02-10 1:35 ` [Qemu-devel] [PATCH v12 08/17] qmp: add block-dirty-bitmap-clear John Snow
2015-02-11 18:28 ` Max Reitz
2015-02-11 18:36 ` John Snow
2015-02-10 1:35 ` [Qemu-devel] [PATCH v12 09/17] qapi: Add transaction support to block-dirty-bitmap operations John Snow
2015-02-11 19:07 ` Max Reitz
2015-02-10 1:35 ` [Qemu-devel] [PATCH v12 10/17] qmp: Add dirty bitmap status fields in query-block John Snow
2015-02-11 19:10 ` Max Reitz
2015-02-11 19:19 ` John Snow
2015-02-10 1:35 ` [Qemu-devel] [PATCH v12 11/17] block: add BdrvDirtyBitmap documentation John Snow
2015-02-11 19:14 ` Max Reitz
2015-02-10 1:35 ` [Qemu-devel] [PATCH v12 12/17] block: Ensure consistent bitmap function prototypes John Snow
2015-02-11 19:20 ` Max Reitz
2015-02-10 1:35 ` [Qemu-devel] [PATCH v12 13/17] iotests: add invalid input incremental backup tests John Snow
2015-02-11 20:45 ` Max Reitz
2015-02-10 1:35 ` [Qemu-devel] [PATCH v12 14/17] iotests: add simple incremental backup case John Snow
2015-02-11 21:40 ` Max Reitz
2015-02-11 22:02 ` John Snow
2015-02-10 1:35 ` [Qemu-devel] [PATCH v12 15/17] iotests: add transactional incremental backup test John Snow
2015-02-11 21:49 ` Max Reitz
2015-02-10 1:35 ` [Qemu-devel] [PATCH v12 16/17] blkdebug: fix "once" rule John Snow
2015-02-11 21:50 ` Max Reitz
2015-02-11 22:04 ` John Snow
2015-02-10 1:35 ` [Qemu-devel] [PATCH v12 17/17] iotests: add incremental backup failure recovery test John Snow
2015-02-11 22:01 ` Max Reitz
2015-02-11 22:08 ` John Snow
2015-02-11 22:11 ` Max Reitz
2015-02-10 16:32 ` John Snow [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=54DA32A0.6050006@redhat.com \
--to=jsnow@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.