From: Eric Blake <eblake@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 2/2 v2] Add the blockdev-reopen and blockdev-migrate commands
Date: Fri, 24 Feb 2012 12:37:24 -0700 [thread overview]
Message-ID: <4F47E6F4.6040501@redhat.com> (raw)
In-Reply-To: <ji8mjg$otv$1@dough.gmane.org>
[-- Attachment #1: Type: text/plain, Size: 2855 bytes --]
On 02/24/2012 11:57 AM, Paolo Bonzini wrote:
> On 02/24/2012 06:46 PM, Eric Blake wrote:
>> I think you need to be more explicit that @new-image-file MUST have
>> identical contents as the current image file, for this to be useful, and
>> that qemu does not validate whether the new image met those conditions.
>> Possible ways to achieve this:
>
> Not necessarily, you could always do this on a paused machine.
You lost me; I think you snipped too much. Was it about this statement
in my original?
>> 1. Freeze all guest I/O, so that you know the current image file is
>> stable,
To which I have a counter-question: Is pausing a machine guaranteed to
flush all I/O out to the image prior to returning control to the
controlling app, or do we have to rely on the qemu-ga agent command to
actually freeze I/O within the guest?
Overall, I was arguing that from a usability perspective, if
new-image-file does not have the same contents (from the guest's
perspective) as the current image, then when you resume the machine, you
will be injecting arbitrary disk changes into the guest's disk, probably
with disastrous results. I'm not arguing that new-image-file has to be
identical to the current image (in fact, converting between raw or qcow2
via drive-reopen seems like great use cases for this new command). So
documenting this distinction (guest data must be consistent across the
reopen), as part of the contract of the monitor command, would be useful.
>
>>>> +# @destination: the destination of the block migration.
>> Where do you list what format the destination is? Shouldn't this have
>> an optional format, defaulting to qcow2? Does qemu create the
>> destination file, or must it already be existing?
>
> I think no default, raw makes as much or more sense in the
> non-incremental case. Anyway either autodetect, or no default.
So if there is no default, then how do I specify the format? Libvirt
_cannot_ rely on autodetect, ever since we had to solve a CVE where
relying on autodetect would allow the guest to cause libvirt to mislabel
files on the host.
>> I know that this patch is only implementing the case where incremental
>> is true and new-image-file is provided; but I'm not quite sure what
>> semantics are intended if incremental is false. Is that still a case
>> where this sets up mirroring (writes go to two images) but additionally
>> the contents from the current image are (asynchronously) streamed into
>> the destination?
>
> Yes. The image should already be there also in this case, and
> new-image-file will usually be omitted.
If the image to be opened must already exist, then explicitly state that
in the command documentation.
--
Eric Blake eblake@redhat.com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 620 bytes --]
next prev parent reply other threads:[~2012-02-24 19:37 UTC|newest]
Thread overview: 95+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-22 17:13 [Qemu-devel] Live Block Migration using Mirroring Federico Simoncelli
2012-02-22 17:13 ` [Qemu-devel] [PATCH 1/3] Add blkmirror block driver Federico Simoncelli
2012-02-23 16:14 ` Stefan Hajnoczi
2012-02-23 16:18 ` Stefan Hajnoczi
2012-02-23 16:20 ` Federico Simoncelli
2012-02-23 16:28 ` Stefan Hajnoczi
2012-02-23 16:51 ` Federico Simoncelli
2012-02-23 16:18 ` Federico Simoncelli
2012-02-27 9:23 ` Stefan Hajnoczi
2012-02-27 11:37 ` Paolo Bonzini
2012-02-27 11:42 ` Stefan Hajnoczi
2012-02-27 11:48 ` Paolo Bonzini
2012-02-27 13:09 ` Stefan Hajnoczi
2012-02-27 13:47 ` Paolo Bonzini
2012-02-27 14:49 ` Stefan Hajnoczi
2012-02-27 14:59 ` Stefan Hajnoczi
2012-02-27 15:08 ` Paolo Bonzini
2012-02-22 17:13 ` [Qemu-devel] [PATCH 2/3] Update the " Federico Simoncelli
2012-02-23 7:18 ` Paolo Bonzini
2012-02-23 9:44 ` Federico Simoncelli
2012-02-23 9:45 ` Paolo Bonzini
2012-02-22 17:13 ` [Qemu-devel] [PATCH 3/3] Add nocreate option to snapshot_blkdev Federico Simoncelli
2012-02-23 7:19 ` Paolo Bonzini
2012-02-23 7:38 ` Paolo Bonzini
2012-02-23 9:39 ` Federico Simoncelli
2012-02-23 9:48 ` Paolo Bonzini
2012-02-23 10:19 ` Federico Simoncelli
2012-02-23 11:30 ` Paolo Bonzini
2012-02-23 15:47 ` [Qemu-devel] Live Block Migration using Mirroring Stefan Hajnoczi
2012-02-23 16:10 ` Federico Simoncelli
2012-02-23 16:35 ` Stefan Hajnoczi
2012-02-23 17:06 ` Federico Simoncelli
2012-02-24 11:37 ` [Qemu-devel] [PATCH 1/2] Add blkmirror block driver Federico Simoncelli
2012-02-24 11:37 ` [Qemu-devel] [PATCH 2/2] Add the blockdev-reopen and blockdev-migrate commands Federico Simoncelli
2012-02-24 12:03 ` Kevin Wolf
2012-02-24 12:12 ` Federico Simoncelli
2012-02-24 13:11 ` Paolo Bonzini
2012-02-24 17:04 ` Luiz Capitulino
2012-02-27 14:57 ` Markus Armbruster
2012-02-24 16:49 ` [Qemu-devel] [PATCH 1/2 v2] Add blkmirror block driver Federico Simoncelli
2012-02-24 17:02 ` Eric Blake
2012-02-24 17:15 ` Federico Simoncelli
2012-02-24 18:49 ` Paolo Bonzini
2012-02-24 18:17 ` Luiz Capitulino
2012-02-27 9:17 ` Federico Simoncelli
2012-02-24 16:49 ` [Qemu-devel] [PATCH 2/2 v2] Add the blockdev-reopen and blockdev-migrate commands Federico Simoncelli
2012-02-24 17:46 ` Eric Blake
2012-02-24 18:57 ` Paolo Bonzini
2012-02-24 19:37 ` Eric Blake [this message]
2012-02-24 19:01 ` Luiz Capitulino
2012-02-24 19:40 ` Eric Blake
2012-02-24 20:26 ` Luiz Capitulino
2012-02-24 22:46 ` Eric Blake
2012-02-24 20:32 ` Paolo Bonzini
2012-02-24 20:36 ` Luiz Capitulino
2012-02-24 21:05 ` Paolo Bonzini
2012-02-24 22:30 ` Eric Blake
2012-02-25 6:47 ` Paolo Bonzini
2012-02-27 11:29 ` Federico Simoncelli
2012-02-27 12:12 ` Luiz Capitulino
2012-02-27 12:49 ` Paolo Bonzini
2012-02-27 13:06 ` Luiz Capitulino
2012-02-27 14:39 ` [Qemu-devel] drive transactions (was Re: [PATCH 2/2 v2] Add the blockdev-reopen and blockdev-migrate commands) Paolo Bonzini
2012-02-27 14:46 ` Anthony Liguori
2012-02-27 14:54 ` Paolo Bonzini
2012-02-27 14:59 ` Anthony Liguori
2012-02-27 15:03 ` Paolo Bonzini
2012-02-27 15:06 ` Anthony Liguori
2012-02-27 15:17 ` Kevin Wolf
2012-02-27 15:24 ` Anthony Liguori
2012-02-27 16:51 ` Paolo Bonzini
2012-02-27 16:58 ` Anthony Liguori
2012-02-27 17:06 ` Paolo Bonzini
2012-02-27 16:33 ` Federico Simoncelli
2012-02-27 16:41 ` Paolo Bonzini
2012-02-27 16:42 ` Anthony Liguori
2012-02-27 16:50 ` Federico Simoncelli
2012-02-27 16:53 ` Anthony Liguori
2012-02-27 16:54 ` Paolo Bonzini
2012-02-27 16:59 ` Anthony Liguori
2012-02-27 17:37 ` Luiz Capitulino
2012-02-28 15:47 ` [Qemu-devel] Live Block Migration using Mirroring Stefan Hajnoczi
2012-02-28 17:15 ` Federico Simoncelli
2012-02-28 17:36 ` Paolo Bonzini
2012-02-28 17:46 ` Federico Simoncelli
2012-02-28 18:02 ` Paolo Bonzini
2012-02-28 18:21 ` Federico Simoncelli
2012-02-28 17:26 ` Paolo Bonzini
2012-02-29 12:28 ` [Qemu-devel] [PATCHv3] Add blkmirror block driver Federico Simoncelli
2012-02-29 13:02 ` Federico Simoncelli
2012-02-29 17:01 ` [Qemu-devel] [PATCHv4] " Federico Simoncelli
2012-03-05 16:59 ` [Qemu-devel] Live Block Migration using Mirroring Marcelo Tosatti
2012-03-05 17:20 ` Eric Blake
2012-03-05 17:44 ` Marcelo Tosatti
2012-03-05 18:05 ` Paolo Bonzini
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=4F47E6F4.6040501@redhat.com \
--to=eblake@redhat.com \
--cc=pbonzini@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).