qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Wenchao Xia <xiawenc@linux.vnet.ibm.com>
To: qemu-devel@nongnu.org
Cc: kwolf@redhat.com, phrdina@redhat.com, famz@redhat.com,
	Wenchao Xia <xiawenc@linux.vnet.ibm.com>,
	armbru@redhat.com, lcapitulino@redhat.com, stefanha@redhat.com,
	pbonzini@redhat.com, dietmar@proxmox.com
Subject: [Qemu-devel] [PATCH V3 0/9] add internal snapshot support at block device level
Date: Thu, 27 Jun 2013 10:41:39 +0800	[thread overview]
Message-ID: <1372300908-7546-1-git-send-email-xiawenc@linux.vnet.ibm.com> (raw)

  This series brings internal snapshot support at block devices level, now we
have two three methods to do block snapshot lively: 1) backing chain,
2) internal one and 3) drive-back up approach.

Comparation:
             Advantages:                            Disadvantages:
1)    delta data, taken fast, export, size        performance, delete slow.
2)  taken fast, delete fast, performance, size       delta data, format
3)      performance, export, format               taken slow, delta data, size

  I think in most case, saving vmstate in an standalone file is better than
saving it inside qcow2, So suggest treat internal snapshot as block level
methods and not encourage user to savevm in qcow2 any more.

Implemention details:
  To avoid trouble, this serial have hide ID in create interfaces, this make
sure no chaos of ID and name will be introduced by these interfaces.
  There is one patch may be common to Pavel's savvm transaction, patch 1/11,
others are not quite related. Patch 1/11 will not set errp when no snapshot
find, since patch 3/11 need to distinguish real error case.

Next steps to better full VM snapshot:
  Improve internal snapshot's export capability.
  Better vmstate saving.

  Thanks Kevin to give advisement about how add it in qmp_transaction, oldest
version comes drom Dietmar Maurer.

v3:
  General:
  Rebased after Stenfan's driver-backup patch V6.

  Address Eric's comments:
  4/9: grammar fix and better doc.
  5/9: parameter name is mandatory now. grammar fix.
  6/9: redesiged interface: take both id and name as optional parameter, return
the deleted snapshot's info.

  Address Stefan's comments:
  4/9: add '' around %s in message. drop code comments about vm_clock.
  9/9: better doc, refined the code and add more test case.


Wenchao Xia (9):
  1 snapshot: new function bdrv_snapshot_find_by_id_and_name()
  2 snapshot: add paired functions for internal snapshot id and name
  3 snapshot: distinguish id and name in snapshot delete
  4 qmp: add internal snapshot support in qmp_transaction
  5 qmp: add interface blockdev-snapshot-internal-sync
  6 qmp: add interface blockdev-snapshot-delete-internal-sync
  7 hmp: add interface hmp_snapshot_blkdev_internal
  8 hmp: add interface hmp_snapshot_delete_blkdev_internal
  9 qemu-iotests: add 056 internal snapshot for block device test case

 block/qcow2-snapshot.c     |   68 +++++++++---
 block/qcow2.h              |    5 +-
 block/rbd.c                |   23 ++++-
 block/sheepdog.c           |    5 +-
 block/snapshot.c           |  130 +++++++++++++++++++++-
 blockdev.c                 |  191 +++++++++++++++++++++++++++++++
 hmp-commands.hx            |   37 ++++++-
 hmp.c                      |   22 ++++
 hmp.h                      |    2 +
 include/block/block_int.h  |    5 +-
 include/block/snapshot.h   |   14 ++-
 include/qemu-common.h      |    3 +
 qapi-schema.json           |   67 +++++++++++-
 qemu-img.c                 |    5 +-
 qmp-commands.hx            |  104 ++++++++++++++++-
 savevm.c                   |   10 ++-
 tests/qemu-iotests/056     |  267 ++++++++++++++++++++++++++++++++++++++++++++
 tests/qemu-iotests/056.out |    5 +
 tests/qemu-iotests/group   |    1 +
 19 files changed, 926 insertions(+), 38 deletions(-)
 create mode 100755 tests/qemu-iotests/056
 create mode 100644 tests/qemu-iotests/056.out

             reply	other threads:[~2013-06-26  3:45 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-27  2:41 Wenchao Xia [this message]
2013-06-27  2:41 ` [Qemu-devel] [PATCH V3 1/9] snapshot: new function bdrv_snapshot_find_by_id_and_name() Wenchao Xia
2013-06-27  2:41 ` [Qemu-devel] [PATCH V3 2/9] snapshot: add paired functions for internal snapshot id and name Wenchao Xia
2013-06-27  2:41 ` [Qemu-devel] [PATCH V3 3/9] snapshot: distinguish id and name in snapshot delete Wenchao Xia
2013-06-27  2:41 ` [Qemu-devel] [PATCH V3 4/9] qmp: add internal snapshot support in qmp_transaction Wenchao Xia
2013-07-04 12:35   ` Stefan Hajnoczi
2013-06-27  2:41 ` [Qemu-devel] [PATCH V3 5/9] qmp: add interface blockdev-snapshot-internal-sync Wenchao Xia
2013-07-04 12:37   ` Stefan Hajnoczi
2013-06-27  2:41 ` [Qemu-devel] [PATCH V3 6/9] qmp: add interface blockdev-snapshot-delete-internal-sync Wenchao Xia
2013-07-04 12:42   ` Stefan Hajnoczi
2013-06-27  2:41 ` [Qemu-devel] [PATCH V3 7/9] hmp: add interface hmp_snapshot_blkdev_internal Wenchao Xia
2013-06-27  2:41 ` [Qemu-devel] [PATCH V3 8/9] hmp: add interface hmp_snapshot_delete_blkdev_internal Wenchao Xia
2013-06-27  2:41 ` [Qemu-devel] [PATCH V3 9/9] qemu-iotests: add 056 internal snapshot for block device test case Wenchao Xia
2013-07-03  1:52 ` [Qemu-devel] [PATCH V3 0/9] add internal snapshot support at block device level Wenchao Xia
2013-07-04 12:44   ` Stefan Hajnoczi
2013-07-07 22:38     ` Wenchao Xia

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=1372300908-7546-1-git-send-email-xiawenc@linux.vnet.ibm.com \
    --to=xiawenc@linux.vnet.ibm.com \
    --cc=armbru@redhat.com \
    --cc=dietmar@proxmox.com \
    --cc=famz@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=lcapitulino@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=phrdina@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).