qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: Kevin Wolf <kwolf@redhat.com>,
	Christoph Hellwig <chellwig@redhat.com>,
	qemu-devel@nongnu.org, Markus Armbruster <armbru@redhat.com>,
	Luiz Capitulino <lcapitulino@redhat.com>,
	Gerd Hoffmann <kraxel@redhat.com>, Avi Kivity <avi@redhat.com>
Subject: Re: [Qemu-devel] Re: block: format vs. protocol, and how they stack
Date: Mon, 21 Jun 2010 17:00:58 +0200	[thread overview]
Message-ID: <20100621150058.GA14072@lst.de> (raw)
In-Reply-To: <4C1F7C6B.3040602@codemonkey.ws>

On Mon, Jun 21, 2010 at 09:51:23AM -0500, Anthony Liguori wrote:
> I can appreciate the desire to keep protocols and formats as an internal 
> distinction but as a user visible concept, I think your two examples 
> highlight why exposing protocols as formats make sense.  A user doesn't 
> necessarily care what's happening under the cover.  I think:
> 
> -blockdev format=qcow2,file=image.qcow2,id=blk1
> 
> and:
> 
> -blockdev protocol=vvfat,file=/tmp/dir,id=blk1
> 
> Would cause a bit of confusion.  It's not immediately clear why vvfat is 
> a protocol and qcow2 isn't.  It's really an implementation detail that 
> we implement qcow2 on top of a "protocol" called file.

Everything involving vvfat will end up in sheer confusion, and that's
because vvfat is such a beast.  But it's a rather traditional example
of a "protocol".  Unlike qcow2 / vmdk / vpc it can not be stacked on
an arbitrary protocol (file/nbd/http), but rather accessed a directory
tree.  vvfat then makes up something that looks like a file so upper
levels can use it like that.  As far as qemu is concerned you can then
use any format on top of it, but given that it fakes up a fat filesystem
that format better be raw to make sense.

What about renaming the protocol a transport?  It seems like a lot
of issues here seem to resolve around naming.

The user basically can specify two things:

 - a transport protocol.  Normally this is just the filesystem
   interface, but it can also be nbd, http or for really sick people
   vvfat.  This is a setting which can't be guessed, btw - it needs
   to be explicitly set in some way, with file used as a reasonable
   fallback.

 - an image format.  This one interprets the content the transport
   protocol delivers to us.  This can either be raw for not interpreting
   it all, or things like qcow2 / vmdk to add more functionality to it.

Keeping these separate makes a lot of sense to me, even with my user
hat on.  And as lon as we don't require the transport protocol but fall
back to file it's even more understandable for the users, as he simply
doesn't have to care about it for the 99% case.  Now for the image
format specifying it usually is a good thing as the autodetecting could
easily get into trouble when the guest creates say a full-device qcow2
image in a device that's an image file on the host.

  parent reply	other threads:[~2010-06-21 15:01 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-18 12:59 [Qemu-devel] block: format vs. protocol, and how they stack Markus Armbruster
2010-06-20 10:51 ` [Qemu-devel] " Avi Kivity
2010-06-21  7:00   ` Markus Armbruster
2010-06-22 16:46     ` Jamie Lokier
2010-06-21  8:19   ` Kevin Wolf
2010-06-21 13:09     ` Anthony Liguori
2010-06-21 13:30       ` Kevin Wolf
2010-06-21 13:37         ` Anthony Liguori
2010-06-21 14:01           ` Kevin Wolf
2010-06-21 14:51             ` Anthony Liguori
2010-06-21 14:52               ` Anthony Liguori
2010-06-21 15:00               ` Christoph Hellwig [this message]
2010-06-21 15:22                 ` Paul Brook
2010-06-21 15:37                 ` Anthony Liguori
2010-06-21 16:01                   ` Christoph Hellwig
2010-06-21 16:09                     ` Anthony Liguori
2010-06-21 16:36                     ` Markus Armbruster
2010-06-21 16:21                 ` Markus Armbruster
2010-06-22  8:32                   ` Kevin Wolf
2010-06-22 14:24                     ` Markus Armbruster
2010-06-28 10:28                   ` Christoph Hellwig
2010-06-22 16:30                 ` Jamie Lokier
2010-06-21 15:34             ` Anthony Liguori
2010-06-22  8:10               ` Kevin Wolf
2010-06-22 12:39                 ` Anthony Liguori
2010-06-22 12:57                   ` Kevin Wolf
2010-06-22 13:07                     ` Anthony Liguori
2010-06-21 15:56             ` Markus Armbruster
2010-06-22  8:22               ` Kevin Wolf
2010-06-22 16:40                 ` Jamie Lokier
2010-06-22 16:56                   ` 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=20100621150058.GA14072@lst.de \
    --to=hch@lst.de \
    --cc=anthony@codemonkey.ws \
    --cc=armbru@redhat.com \
    --cc=avi@redhat.com \
    --cc=chellwig@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=lcapitulino@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).