From: Paolo Bonzini <pbonzini@redhat.com>
To: Kevin Wolf <kwolf@redhat.com>
Cc: Dietmar Maurer <dietmar@proxmox.com>,
"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH 1/5] RFC: Efficient VM backup for qemu (v1)
Date: Wed, 21 Nov 2012 14:23:08 +0100 [thread overview]
Message-ID: <50ACD5BC.2080006@redhat.com> (raw)
In-Reply-To: <50ACCAEC.2030001@redhat.com>
Il 21/11/2012 13:37, Kevin Wolf ha scritto:
>>> >> The active part is a bit more tricky. You're putting some code into block.c to
>>> >> achieve it, which is kind of ugly.
>> >
>> > yes. but I tried to keep that small ;-)
> Yup, it's already not too bad. I haven't looked into it in much detail,
> but I'd like to reduce it even a bit more. In particular, the
> backup_info field in the BlockDriverState feels wrong to me. In the long
> term the generic block layer shouldn't know at all what a backup is, and
> baking it into BDS couples it very tightly.
My plan was to have something like bs->job->job_type->{before,after}_write.
int coroutine_fn (*before_write)(BlockDriverState *bs,
int64_t sector_num, int nb_sectors, QEMUIOVector *qiov,
void **cookie);
int coroutine_fn (*after_write)(BlockDriverState *bs,
int64_t sector_num, int nb_sectors, QEMUIOVector *qiov,
void *cookie);
The before_write could optionally return a "cookie" that is passed back
to the after_write callback.
Actually this was plan B, as a poor-man implementation of the filter
infrastructure. Plan A was that the block filters would materialize
suddenly in someone's git tree.
Anyway, it should be very easy to convert Dietmar's code to something
like that, and the active mirror could use it as well.
>> > AFAIK qcow2 file cannot store data out of order. In general, an backup fd is not seekable,
>> > and we only want to do sequential writes. Image format always requires seekable fds?
> Ah, this is what you mean by "out of order". Just out of curiosity, what
> are these non-seekable backup fds usually?
Perhaps I've been reading the SCSI standards too much lately, but tapes
come to mind. :)
Paolo
next prev parent reply other threads:[~2012-11-21 13:23 UTC|newest]
Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-21 9:01 [Qemu-devel] [PATCH 1/5] RFC: Efficient VM backup for qemu (v1) Dietmar Maurer
2012-11-21 9:01 ` [Qemu-devel] [PATCH 2/5] add basic backup support to block driver Dietmar Maurer
2012-11-22 11:25 ` Stefan Hajnoczi
2012-11-22 11:29 ` Dietmar Maurer
2012-11-23 8:56 ` Dietmar Maurer
2012-11-21 9:01 ` [Qemu-devel] [PATCH 3/5] introduce new vma archive format Dietmar Maurer
2012-11-21 16:06 ` Eric Blake
2012-11-21 17:56 ` Dietmar Maurer
2012-11-21 9:01 ` [Qemu-devel] [PATCH 4/5] add backup related monitor commands Dietmar Maurer
2012-11-21 16:16 ` Eric Blake
2012-11-21 17:59 ` Dietmar Maurer
2012-11-21 18:49 ` Dietmar Maurer
2012-11-21 9:01 ` [Qemu-devel] [PATCH 5/5] add regression tests for backup Dietmar Maurer
2012-11-21 10:48 ` [Qemu-devel] [PATCH 1/5] RFC: Efficient VM backup for qemu (v1) Kevin Wolf
2012-11-21 11:10 ` Dietmar Maurer
2012-11-21 12:37 ` Kevin Wolf
2012-11-21 13:23 ` Paolo Bonzini [this message]
2012-11-23 7:42 ` Dietmar Maurer
2012-11-23 9:18 ` Paolo Bonzini
2012-11-23 9:28 ` Dietmar Maurer
2012-11-23 8:12 ` Dietmar Maurer
2012-11-23 9:01 ` Dietmar Maurer
2012-11-23 9:05 ` Dietmar Maurer
2012-11-23 9:15 ` Paolo Bonzini
2012-11-23 9:17 ` Dietmar Maurer
2012-11-23 9:55 ` Kevin Wolf
2012-11-23 10:55 ` Markus Armbruster
2012-11-21 13:25 ` Dietmar Maurer
2012-11-21 13:58 ` Kevin Wolf
2012-11-21 15:47 ` Dietmar Maurer
2012-11-23 7:38 ` Dietmar Maurer
2012-11-23 9:08 ` Kevin Wolf
2012-11-23 9:21 ` Dietmar Maurer
2012-11-23 9:31 ` Dietmar Maurer
2012-11-23 10:29 ` Kevin Wolf
2012-11-26 5:51 ` Dietmar Maurer
2012-11-26 12:07 ` Paolo Bonzini
2012-11-27 6:20 ` Dietmar Maurer
2012-11-27 7:15 ` Dietmar Maurer
2012-11-27 8:48 ` Kevin Wolf
2012-11-27 10:24 ` Dietmar Maurer
2012-11-21 11:23 ` Dietmar Maurer
2012-11-22 11:12 ` Stefan Hajnoczi
2012-11-22 11:26 ` Dietmar Maurer
2012-11-22 12:44 ` Stefan Hajnoczi
2012-11-22 12:55 ` Dietmar Maurer
2012-11-22 15:30 ` Stefan Hajnoczi
2012-11-22 15:58 ` Dietmar Maurer
2012-11-22 17:02 ` Stefan Hajnoczi
2012-11-22 17:34 ` Dietmar Maurer
2012-11-22 11:40 ` Dietmar Maurer
2012-11-22 15:42 ` Stefan Hajnoczi
2012-11-22 12:00 ` Dietmar Maurer
2012-11-22 15:45 ` Stefan Hajnoczi
2012-11-22 15:56 ` Dietmar Maurer
2012-11-22 16:37 ` Stefan Hajnoczi
2012-11-22 12:03 ` Dietmar Maurer
2012-11-22 17:16 ` Stefan Hajnoczi
2012-11-22 17:46 ` Dietmar Maurer
2012-11-23 5:23 ` Stefan Hajnoczi
2012-11-23 5:25 ` Stefan Hajnoczi
2012-11-23 6:18 ` Dietmar Maurer
2012-11-23 6:13 ` Dietmar Maurer
2012-11-22 17:50 ` Dietmar Maurer
2012-11-23 5:21 ` Stefan Hajnoczi
2012-11-22 18:05 ` Dietmar Maurer
2012-11-23 5:19 ` Stefan Hajnoczi
2012-11-23 6:05 ` Dietmar Maurer
2012-11-22 18:15 ` Dietmar Maurer
2012-11-27 10:09 ` Wenchao Xia
2012-11-27 10:37 ` Dietmar Maurer
2012-11-28 9:39 ` Wenchao Xia
2012-11-28 11:08 ` Dietmar Maurer
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=50ACD5BC.2080006@redhat.com \
--to=pbonzini@redhat.com \
--cc=dietmar@proxmox.com \
--cc=kwolf@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 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).