qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Stefan Hajnoczi <stefanha@gmail.com>
To: Jamie Lokier <jamie@shareable.org>
Cc: qemu-devel@nongnu.org, Tyler C Hicks <tchicks@us.ibm.com>,
	Markus Armbruster <armbru@redhat.com>,
	Corey Bryant <bryntcor@us.ibm.com>
Subject: Re: [Qemu-devel] [PATCH] Add support for fd: protocol
Date: Tue, 24 May 2011 09:39:31 +0100	[thread overview]
Message-ID: <BANLkTinGHks8SEtOEVhFTmgXdtoPpCUjjg@mail.gmail.com> (raw)
In-Reply-To: <20110523224925.GK969@shareable.org>

On Mon, May 23, 2011 at 11:49 PM, Jamie Lokier <jamie@shareable.org> wrote:
> Markus Armbruster wrote:
>> Anthony Liguori <anthony@codemonkey.ws> writes:
>>
>> > On 05/23/2011 05:30 AM, Daniel P. Berrange wrote:
>> >> It feels to me that turning the current block driver code which just does
>> >> open(2) on files, into something which issues events&  asynchronously
>> >> waits for a file would potentially be quite complex.
>> >>
>> >> You also need to be much more careful from a security POV if the mgmt
>> >> app is accepting requests to open arbitrary files from QEMU, to ensure
>> >> the filenames are correctly/strictly validated before opening them and
>> >> giving them back to QEMU. An architecture where the mgmt app decides
>> >> what FDs to supply upfront, has less potential for security errors.
>> >>
>> >> To me the ideal would thus be that we can supply FDs for the backing
>> >> store with -blockdev syntax, and that places where QEMU re-opens files
>> >> would be enhanced to avoid that need. If there are things we can't do
>> >> without closing&  re-opening the same file, then perhaps we need some
>> >> new ioctl()/fcntl() calls to change those file attributes on the fly.
>> >
>> > I agree.  But my view of blockdev is that you wouldn't set an fd
>> > attribute but rather the backing file name and use the fd protocol.
>> > For instance:
>> >
>> > -blockdev id=foo-base,path=fd:4,format=raw
>> > -blockdev id=foo,path=fd:3,format=qcow2,backing_file=foo
>>
>> I guess you mean backing_file=foo-base.
>>
>> If none is specified, use the backing file specification stored in the
>> image.
>>
>> Matches my current thinking.
>
> Being able to override the backing file path would be useful anyway.
>
> I've already had problems when moving established qcow2 files between
> systems, that for historical reasons contain either an absolute path
> inside for the backing file, or some messy "../../whatever", or
> "foo/bar/whatever", or "backing.img" (lots of different ones with the
> same name), all of which are a pain to work around.
>
> (Imho, it would also make sense if qcow2 files contained a UUID for
> their backing file to verify you've given the correct backing file,
> and maybe help find it (much like Linux finds real disk devices and
> filesystems when mounting these days).)

Try the qemu-img rebase -f command:

    qemu-img uses the unsafe mode if "-u" is specified. In this mode, only the
    backing file name and format of filename is changed without any
checks on the
    file contents. The user must take care of specifying the correct new backing
    file, or the guest-visible content of the image will be corrupted.

    This mode is useful for renaming or moving the backing file to somewhere
    else.  It can be used without an accessible old backing file, i.e. you can
    use it to fix an image whose backing file has already been moved/renamed.

Stefan

  reply	other threads:[~2011-05-24  8:39 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-20 18:48 [Qemu-devel] [PATCH] Add support for fd: protocol Corey Bryant
2011-05-20 19:05 ` Anthony Liguori
2011-05-20 19:25 ` Blue Swirl
2011-05-20 19:42   ` Anthony Liguori
2011-05-20 19:53     ` Blue Swirl
2011-05-23 14:28       ` Kevin Wolf
2011-05-23 15:24         ` Markus Armbruster
2011-05-23 15:56           ` Kevin Wolf
2011-05-23 19:50             ` Blue Swirl
2011-05-23 21:55             ` Anthony Liguori
2011-05-23 18:20           ` Corey Bryant
2011-05-23  9:45 ` Daniel P. Berrange
2011-05-23 10:19   ` Stefan Hajnoczi
2011-05-23 10:30     ` Daniel P. Berrange
2011-05-23 12:59       ` Anthony Liguori
2011-05-23 14:35         ` Markus Armbruster
2011-05-23 22:49           ` Jamie Lokier
2011-05-24  8:39             ` Stefan Hajnoczi [this message]
2011-05-24 15:31               ` Jamie Lokier
2011-05-23 12:50   ` Anthony Liguori
2011-05-23 13:06     ` Daniel P. Berrange
2011-05-23 13:09     ` Stefan Hajnoczi
2011-05-23 13:21       ` Anthony Liguori
2011-05-23 13:26         ` Stefan Hajnoczi
2011-05-23 13:42           ` Daniel P. Berrange
2011-05-23  9:48 ` Daniel P. Berrange

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=BANLkTinGHks8SEtOEVhFTmgXdtoPpCUjjg@mail.gmail.com \
    --to=stefanha@gmail.com \
    --cc=armbru@redhat.com \
    --cc=bryntcor@us.ibm.com \
    --cc=jamie@shareable.org \
    --cc=qemu-devel@nongnu.org \
    --cc=tchicks@us.ibm.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).