qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Eduardo Habkost <ehabkost@redhat.com>
To: Max Reitz <mreitz@redhat.com>
Cc: "Michal Suchánek" <msuchanek@suse.de>,
	"Kevin Wolf" <kwolf@redhat.com>,
	qemu-block@nongnu.org, "Michael S. Tsirkin" <mst@redhat.com>,
	"Richard W.M. Jones" <rjones@redhat.com>,
	qemu-devel@nongnu.org, stefanha@redhat.com
Subject: Re: [Qemu-devel] storing machine data in qcow images?
Date: Wed, 6 Jun 2018 13:10:31 -0300	[thread overview]
Message-ID: <20180606161031.GT7451@localhost.localdomain> (raw)
In-Reply-To: <d2b5d074-4052-a5fb-4048-cc30ad092f0f@redhat.com>

On Wed, Jun 06, 2018 at 04:17:14PM +0200, Max Reitz wrote:
> On 2018-06-06 15:45, Michal Suchánek wrote:
> > On Wed, 6 Jun 2018 15:14:03 +0200
> > Max Reitz <mreitz@redhat.com> wrote:
> > 
> >> On 2018-06-06 14:13, Michal Suchánek wrote:
> >>> On Wed, 6 Jun 2018 13:52:35 +0200
> >>> Max Reitz <mreitz@redhat.com> wrote:
> >>>   
> >>>> On 2018-06-06 13:43, Michal Suchánek wrote:  
> >>>>> On Wed, 6 Jun 2018 13:32:47 +0200
> >>>>> Max Reitz <mreitz@redhat.com> wrote:
> >>>>>     
> >>>>>> On 2018-06-06 13:19, Michal Suchánek wrote:    
> >>>>>>> On Wed, 6 Jun 2018 13:02:53 +0200
> >>>>>>> Max Reitz <mreitz@redhat.com> wrote:  
> >>
> >> [...]
> >>
> >>>>>>>> What I'm trying to get at is that qcow2 was not designed to be
> >>>>>>>> a container format for arbitrary files.  If you want to make it
> >>>>>>>> such, I'm sure there are existing formats that work
> >>>>>>>> better.      
> >>>>>>>
> >>>>>>> Such as?      
> >>>>>>
> >>>>>> ext2?    
> >>>>>
> >>>>> So you want an ext2 driver in qemu instead of expanding qcow2 to
> >>>>> work not only for a single disk but also for an appliance?    
> >>>>
> >>>> Yes, because ext2 was designed to be a proper filesystem.  I'm not
> >>>> an FS designer.  Well, not a good one anyway.  So I don't trust
> >>>> myself on extending qcow2 to be a good FS -- and why would I, when
> >>>> there are already numerous FS around.  
> >>>
> >>> Do you expect that performance of qemu using qcow2 driver over ext2
> >>> driver will be better than using qcow driver directly with some part
> >>> semi-permanently occupied by a configuration blob? My bet is not.  
> >>
> >> If you want to store multiple disk images in a single file?  I would
> >> think so, yes.  With qcow2, I would assume it leads to
> >> fragmentation.  
> > 
> > How is that different from single disk divided into two partitions
> > internally (without any knowledge on the qcow2 level)?
> 
> From how it's going to be fragmented, there is no difference.  If you
> have multiple partitions and write to them concurrently, thus allocating
> new areas, you get bad fragmentation.
> 
> >> I would hope that proper filesystems can mitigate this.
> > 
> > Not really. Not without much complexity and repeated maintenance.
> 
> Yes, a proper filesystem.  Which we'd get for free with multiple files.
> 
> >>> The ext* drivers are designed to work with kernel VM infrastructure
> >>> which must be tuned for different usage scenarios and you would
> >>> have to duplicate that tuning in qemu to get competitive
> >>> performance. Also you get qcow2 and ext2 metadata which must be
> >>> allocated, managed, etc. You get more storage and performance
> >>> overhead for no good reason.  
> >>
> >> Yes, there is a good reason.  You can add arbitrary configuration
> >> options without having to worry about me.
> > 
> > But I will not be able to use the images in qemu so it will be useless.
> 
> Neither can you with the current proposal because that is about adding
> management layer configuration options which are opaque to qemu.
> 
> > Well, there is FUSE and that is certainly blazing fast and ubiquitous,
> > I am sure.
> 
> If you want to use pre-existing drivers, you'd probably use a loop device.
> 
> Otherwise, you'd use the block layer for accessing the disk.
> 
> If you want blazingly fast, you probably won't use qcow2 anyway.  Or,
> funnily enough, you'd want to probably split the qcow2 file into a
> metadata and a data file, so you get even more files.  (But that is a
> proposal for the future.)
> 
> >> Seriously, though, a real FS would allow you to be more expressive and
> >> really do what you want without having to work around the quirks that
> >> adding a not-real-FS in the most simple way possible to qcow2 would
> >> bring with it.
> >>
> >> Because this is part of my fear, that we now add a very simple blob
> >> for just a sprinkle of data.  But over time it gets more and more
> >> complex because we want to store more and more data to make things
> >> ever more convenient[1], we notice that we need more features, the
> >> format gets more complex, and in the end we have an FS that is just
> >> worse than a real FS.
> >>
> >> [1] And note that if I'm convinced to store VM configuration data in
> >> qemu, I will agree that we can store any data in there and it would be
> >> nice if any VM could be provisioned and used that way.
> >>
> >>> On the other hand, qcow is designed for storing VM disk data and
> >>> hopefully was tuned to do that decently over the years. The primary
> >>> use case remains storing VM disk data. Adding a configuration blob
> >>> does not change that.  
> >>
> >> True.  So the argument is that qcow2 may be worse for storing
> >> arbitrary data, but we don't have performance requirements for that;
> >> but we do have performance requirements for disk data and adding
> >> another format below qcow2 will not make it better.
> >>
> >> I do think it is possible to not make things worse with a format under
> >> qcow2, but that may require additional complexity, that you think is
> >> pointless.
> >>
> >> I understand that you think that, but I still believe that putting the
> >> configuration into qcow2 is just the wrong way around and will fall on
> >> our feet in the long run.
> > 
> > I think that *if* we want an 'appliance' format that stores a whole VM
> > in a single file to ease VM distribution then the logical place to look
> > in qemu is qcow. The reason have been explained at length.
> 
> The reason being that it's the easiest place, yes.  That doesn't make it
> the best place.
> 
> > I understand that for some use cases simplifying the distribution of
> > VMs as much as possible is quite important.
> 
> I don't because still nobody has explained it to me.
> 
> The only explanation I got so far was "People are lazy and we have
> defaults for everything, so we don't throw an error if people forget to
> pass a configuration file."

People don't pass a configuration file today because there's no
standard for such a configuration file.  qcow2 is already used
today as an appliance file format because there's no better
option.  People download disk images from appliance and OS
providers, import them into a cloud system, and it works out of
the box because (luckily) "pc" is enough for most of them.

We can specify a true appliance file format, and ask people to
use it.  But then providers of single-disk appliances and OSes
will need to publish two appliance images: qcow2 disk image for
old systems that don't support the new format, and one in the new
appliance format, for systems that support it.


> 
> Which to me still just makes it an inconvenience.

Well, there are small inconveniences and there are big
inconveniences that together make a system unnecessarily hard to
use.  I'd say this one falls somewhere in the middle.


[...]
> I'm noticing a pattern here, and that is that everybody has a different
> opinion on what we actually want in the end, and it's just by chance
> that we find ourselves in two camps ("put it in qcow2" vs. "put it
> somewhere else").
> 
> Maybe we should first discuss what we actually want before we can
> discuss where to put it.

I'm inclined to agree.  Once we figure out a good VM description
format, we can justify a proposal to allow embedding the VM
description in qcow2 for convenience.

-- 
Eduardo

  reply	other threads:[~2018-06-06 16:10 UTC|newest]

Thread overview: 157+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-18 15:30 [Qemu-devel] storing machine data in qcow images? Michael S. Tsirkin
2018-05-18 16:49 ` Eduardo Habkost
2018-05-18 17:09 ` Daniel P. Berrangé
2018-05-18 17:41   ` Eduardo Habkost
2018-05-19  6:05     ` Markus Armbruster
2018-05-21 18:29       ` Eduardo Habkost
2018-05-21 18:44         ` Daniel P. Berrangé
2018-05-21 19:01           ` Eduardo Habkost
2018-05-23 11:19             ` Markus Armbruster
2018-05-23 12:13               ` Eduardo Habkost
2018-05-23 16:35                 ` Markus Armbruster
2018-05-29 14:06                   ` Dr. David Alan Gilbert
2018-06-05 21:58                   ` Michal Suchánek
2018-05-21 20:18     ` Daniel P. Berrangé
2018-05-21 20:33       ` Eduardo Habkost
2018-05-24  9:58         ` Kashyap Chamarthy
2018-05-22  7:35   ` Gerd Hoffmann
2018-05-22 10:53     ` Eduardo Habkost
2018-05-22 14:19     ` Michael S. Tsirkin
2018-05-22 15:02       ` Kevin Wolf
2018-05-22 15:14         ` Eduardo Habkost
2018-05-23  2:12         ` Fam Zheng
2018-05-23  9:16           ` Kevin Wolf
2018-05-23 14:46             ` Michael S. Tsirkin
2018-05-24 11:17   ` Richard W.M. Jones
2018-05-29 14:03     ` Dr. David Alan Gilbert
2018-05-29 14:14       ` Eduardo Habkost
2018-05-29 14:51         ` Richard W.M. Jones
2018-05-29 15:31         ` Dr. David Alan Gilbert
2018-05-22  8:50 ` Philipp Hahn
2018-05-24 11:32 ` Richard W.M. Jones
2018-05-24 14:56   ` Michael S. Tsirkin
2018-05-24 15:08     ` Kevin Wolf
2018-05-24 15:19       ` Michael S. Tsirkin
2018-05-24 15:20       ` Richard W.M. Jones
2018-05-24 16:25         ` Markus Armbruster
2018-05-28 18:10   ` Max Reitz
2018-05-28 18:30     ` Richard W.M. Jones
2018-05-28 18:38       ` Kevin Wolf
2018-05-28 18:44         ` Max Reitz
2018-05-28 19:09           ` Kevin Wolf
2018-05-29  9:23             ` Max Reitz
2018-05-29 10:14               ` Kevin Wolf
2018-05-29 13:16                 ` Eduardo Habkost
2018-05-28 21:20         ` Richard W.M. Jones
2018-05-28 21:25           ` Richard W.M. Jones
2018-05-29  6:44             ` Kevin Wolf
2018-05-29 10:14               ` Max Reitz
2018-06-05  9:21                 ` Dr. David Alan Gilbert
2018-06-05 19:03                   ` Eduardo Habkost
2018-06-05 19:47                     ` Michael S. Tsirkin
2018-06-05 19:54                       ` [Qemu-devel] [Qemu-block] " Eric Blake
2018-06-05 19:58                         ` Richard W.M. Jones
2018-06-05 20:09                           ` Eric Blake
2018-06-05 20:28                             ` Michael S. Tsirkin
2018-06-05 20:46                               ` Eric Blake
2018-06-05 21:26                                 ` Michael S. Tsirkin
2018-06-06  8:07                               ` Dr. David Alan Gilbert
2018-06-06  6:23                           ` Gerd Hoffmann
2018-06-05 20:06                         ` Michael S. Tsirkin
2018-06-06  6:26                     ` [Qemu-devel] " Gerd Hoffmann
2018-06-06  9:44                     ` Dr. David Alan Gilbert
2018-06-06 13:35                       ` Eduardo Habkost
2018-06-06 11:02                   ` Max Reitz
2018-06-06 11:14                     ` Dr. David Alan Gilbert
2018-06-06 11:26                       ` Max Reitz
2018-06-06 12:00                         ` Dr. David Alan Gilbert
2018-06-06 12:59                           ` Max Reitz
2018-06-06 14:31                             ` Dr. David Alan Gilbert
2018-06-06 14:37                               ` Daniel P. Berrangé
2018-06-06 14:42                                 ` Dr. David Alan Gilbert
2018-06-06 14:51                               ` Max Reitz
2018-06-06 15:05                                 ` Dr. David Alan Gilbert
2018-06-06 15:36                                   ` Eric Blake
2018-06-06 16:11                                     ` Michal Suchánek
2018-06-06 16:37                                       ` Eric Blake
2018-06-06 16:32                                     ` Daniel P. Berrangé
2018-06-06 16:36                                       ` Dr. David Alan Gilbert
2018-06-07 10:02                                       ` Andrea Bolognani
2018-06-07 10:22                                         ` Daniel P. Berrangé
2018-06-07 11:17                                           ` Andrea Bolognani
2018-06-07 12:38                                             ` Daniel P. Berrangé
2018-06-07 13:49                                               ` Dr. David Alan Gilbert
2018-06-07 14:06                                                 ` Andrea Bolognani
2018-06-07 14:45                                                   ` Dr. David Alan Gilbert
2018-06-07 14:56                                                     ` Andrea Bolognani
2018-06-07 15:25                                                       ` Dr. David Alan Gilbert
2018-06-07 20:38                                                         ` Gerd Hoffmann
2018-06-07 10:32                                         ` Richard W.M. Jones
2018-06-07 10:35                                           ` Dr. David Alan Gilbert
2018-06-07 10:36                                           ` Daniel P. Berrangé
2018-06-07 10:54                                             ` Andrea Bolognani
2018-06-07 19:24                                               ` Laszlo Ersek
2018-06-08  8:21                                                 ` Dr. David Alan Gilbert
2018-06-08  8:41                                                   ` Daniel P. Berrangé
2018-06-08  8:53                                                     ` Dr. David Alan Gilbert
2018-06-07 21:19                                               ` Michael S. Tsirkin
2018-06-07 21:18                                             ` Michael S. Tsirkin
2018-06-07 10:51                                           ` Andrea Bolognani
2018-06-07 19:38                                             ` Laszlo Ersek
2018-06-06 17:49                                   ` Max Reitz
2018-06-06 15:09                                 ` Michael S. Tsirkin
2018-06-06 17:06                                   ` Max Reitz
2018-06-07 21:43                                     ` Michael S. Tsirkin
2018-06-09 21:34                                       ` Max Reitz
2018-06-11  2:06                                         ` Michael S. Tsirkin
2018-06-11  8:16                                           ` Michal Suchánek
2018-06-06 11:42                       ` Richard W.M. Jones
2018-06-06 11:48                         ` Daniel P. Berrangé
2018-06-06 11:53                           ` Max Reitz
2018-06-06 12:03                           ` Dr. David Alan Gilbert
2018-06-06 13:15                             ` Max Reitz
2018-06-06 12:29                           ` Richard W.M. Jones
2018-06-06 11:22                     ` [Qemu-devel] [Qemu-block] " Peter Krempa
2018-06-06 10:32                 ` [Qemu-devel] " Michal Suchánek
2018-06-06 11:02                   ` Max Reitz
2018-06-06 11:19                     ` Michal Suchánek
2018-06-06 11:32                       ` Max Reitz
2018-06-06 11:37                         ` Dr. David Alan Gilbert
2018-06-06 11:44                           ` Max Reitz
2018-06-06 12:16                             ` Dr. David Alan Gilbert
2018-06-06 13:22                               ` Max Reitz
2018-06-06 14:02                                 ` Dr. David Alan Gilbert
2018-06-06 14:33                                   ` Max Reitz
2018-06-06 14:41                                     ` Dr. David Alan Gilbert
2018-06-06 14:55                                       ` Max Reitz
2018-06-06 15:25                                         ` Michal Suchánek
2018-06-06 18:02                                           ` Max Reitz
2018-06-06 18:33                                             ` Michal Suchánek
2018-06-06 18:36                                               ` Eduardo Habkost
2018-06-07 18:27                                                 ` [Qemu-devel] [Qemu-block] " Kashyap Chamarthy
2018-06-06 13:42                             ` [Qemu-devel] " Eduardo Habkost
2018-06-06 14:55                               ` Michael S. Tsirkin
2018-06-06 14:57                                 ` Max Reitz
2018-06-11 14:10                                 ` Kevin Wolf
2018-06-06 14:46                             ` Michael S. Tsirkin
2018-06-06 15:04                               ` Max Reitz
2018-06-06 11:43                         ` Michal Suchánek
2018-06-06 11:52                           ` Max Reitz
2018-06-06 12:13                             ` Michal Suchánek
2018-06-06 13:14                               ` Max Reitz
2018-06-06 13:45                                 ` Michal Suchánek
2018-06-06 13:50                                   ` Daniel P. Berrangé
2018-06-06 14:14                                     ` Eduardo Habkost
2018-06-06 14:21                                       ` Max Reitz
2018-06-06 14:24                                       ` Daniel P. Berrangé
2018-06-06 14:17                                   ` Max Reitz
2018-06-06 16:10                                     ` Eduardo Habkost [this message]
2018-06-06 18:09                                       ` Max Reitz
2018-06-11  8:44                         ` Richard W.M. Jones
2018-06-06 11:40                     ` Richard W.M. Jones
2018-06-06 14:31                       ` Michael S. Tsirkin
2018-06-06 14:43                     ` Michael S. Tsirkin
2018-06-06 14:57                       ` Eric Blake
2018-06-06 20:39                         ` Eric Blake
2018-06-06 21:01                           ` Gerd Hoffmann
2018-06-06 15:02                       ` Max Reitz

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=20180606161031.GT7451@localhost.localdomain \
    --to=ehabkost@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=mst@redhat.com \
    --cc=msuchanek@suse.de \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=rjones@redhat.com \
    --cc=stefanha@redhat.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).