From: Kevin Wolf <kwolf@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: Federico Simoncelli <fsimonce@redhat.com>,
Eric Blake <eblake@redhat.com>,
qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] add reopen to blockdev-transaction
Date: Fri, 02 Mar 2012 14:38:37 +0100 [thread overview]
Message-ID: <4F50CD5D.8030507@redhat.com> (raw)
In-Reply-To: <4F50CA60.4080500@redhat.com>
Am 02.03.2012 14:25, schrieb Paolo Bonzini:
> Il 02/03/2012 14:00, Kevin Wolf ha scritto:
>> Am 01.03.2012 17:52, schrieb Paolo Bonzini:
>>>>> But you can even keep from your first patch the drive-reopen command and
>>>>> not make it atomic, that shouldn't be a problem.
>>>>
>>>> I'm not sure whether it makes sense for a separate drive-reopen or
>>>> whether to just add this to blockdev-transaction (or even both); I can
>>>> make libvirt use whichever color bikeshed we pick. There's definitely a
>>>> transaction aspect here
>>>
>>> It's not so much atomicity, it's just safety. The drive-reopen command
>>> must be implemented in a similar way to bdrv_append; it must not do a
>>> close+reopen in the same way as the existing blockdev-snapshot-sync
>>> command, but that's just that blockdev-snapshot-sync was implemented
>>> poorly.
>>
>> For reopen this is a bit harder because you deal with already opened
>> images and you must never have the same image opened twice at the same time.
>
> This is only for read-write images, and the backing files are read-only,
> so this shouldn't be a problem, no?
Opening an image read-write that is still open read-only may break the
read-only instance.
You can argue that opening an image read-only while a read-write
instance is open can be tolerated if you flushed the image and made sure
no new requests are coming in. This is what happens with live migration.
It's a case that has given us enough headaches that I would not want to
introduce similar behaviour in more cases.
So in short: Regardless of ro/rw, opening images twice is bad. Just
don't do it.
If anything, a possible solution could look like the bdrv_reopen
proposal which already includes prepare/commit/abort functions in the
block driver.
Kevin
next prev parent reply other threads:[~2012-03-02 13:35 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-01 15:13 [Qemu-devel] [PATCH] add reopen to blockdev-transaction Federico Simoncelli
2012-03-01 15:36 ` Paolo Bonzini
2012-03-01 16:23 ` Eric Blake
2012-03-01 16:52 ` Paolo Bonzini
2012-03-02 13:00 ` Kevin Wolf
2012-03-02 13:25 ` Paolo Bonzini
2012-03-02 13:38 ` Kevin Wolf [this message]
2012-03-02 13:08 ` Anthony Liguori
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=4F50CD5D.8030507@redhat.com \
--to=kwolf@redhat.com \
--cc=eblake@redhat.com \
--cc=fsimonce@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 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.