qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: Chunqiang Tang <ctang@us.ibm.com>,
	qemu-devel@nongnu.org,
	Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Subject: Re: [Qemu-devel] Re: Strategic decision: COW format
Date: Tue, 22 Feb 2011 09:56:00 +0100	[thread overview]
Message-ID: <4D637A20.9020307@redhat.com> (raw)
In-Reply-To: <m3fwrgpis0.fsf@blackfin.pond.sub.org>

Am 22.02.2011 09:37, schrieb Markus Armbruster:
> Anthony Liguori <anthony@codemonkey.ws> writes:
> 
>> On 02/18/2011 03:57 AM, Kevin Wolf wrote:
>>> Am 18.02.2011 10:12, schrieb Markus Armbruster:
>>>    
>>>> Kevin Wolf<kwolf@redhat.com>  writes:
>>>>
>>>>      
>>>>> Am 15.02.2011 20:45, schrieb Chunqiang Tang:
>>>>>        
>>>>>>> Chunqiang Tang/Watson/IBM wrote on 01/28/2011 05:13:27 PM:
>>>>>>> As you requested, I set up a wiki page for FVD at
>>>>>>>            
>>>>>> http://wiki.qemu.org/Features/FVD
>>>>>>          
>>>>>>> . It includes a summary of FVD, a detailed specification of FVD, and a
>>>>>>> comparison of the design and performance of FVD and QED.
>>>>>>>            
>>>>>>          
>>>>>>> See the figure at http://wiki.qemu.org/Features/FVD/Compare . This
>>>>>>>            
>>>>>> figure
>>>>>>          
>>>>>>> shows that the file creation throughput of NetApp's PostMark benchmark
>>>>>>>            
>>>>>> under
>>>>>>          
>>>>>>> FVD is 74.9% to 215% higher than that under QED.
>>>>>>>            
>>>>>> Hi Anthony,
>>>>>>
>>>>>> Please let me know if more information is needed. I would appreciate your
>>>>>> feedback and advice on the best way to proceed with FVD.
>>>>>>          
>>>>> Yet another file format with yet another implementation is definitely
>>>>> not what we need. We should probably take some of the ideas in FVD and
>>>>> consider them for qcow3.
>>>>>        
>>>> Got an assumption there: that the one COW format we need must be qcow3,
>>>> i.e. an evolution of qcow2.  Needs to be justified.  If that discussion
>>>> has happened on the list already, I missed it.  If not, it's overdue,
>>>> and then we better start it right away.
>>>>      
>>> Right. I probably wasn't very clear about what I mean with qcow3 either,
>>> so let me try to summarize my reasoning.
>>>
>>>
>>> The first point is an assumption that you made, too: That we want to
>>> have only one format. I hope it's easy to agree on this, duplication is
>>> bad and every additional format creates new maintenance burden,
>>> especially if we're taking it serious. Until now, there were exactly two
>>> formats for which we managed to do this, raw and qcow2. raw is more or
>>> less for free, so with the introduction of another format, we basically
>>> double the supported block driver code overnight (while not doubling the
>>> number of developers).
>>>    
>>
>> Not sure what project you're following, but we've had an awful lot of
>> formats before qcow2 :-)
>>
>> And qcow2 was never all that special, it just was dropped in the code
>> base one day.  You've put a lot of work into qcow2, but there are
>> other folks that are contributing additional formats and that means
>> more developers.
>>
>>> The consequence of having only one file format is that it must be able
>>> to obsolete the existing ones, most notably qcow2. We can only neglect
>>> qcow1 today because we can tell users to use qcow2. It supports
>>> everything that qcow1 supports and more. We couldn't have done this if
>>> qcow2 lacked features compared to qcow1.
>>>
>>> So the one really essential requirement that I see is that we provide a
>>> way forward for _all_ users by maintaining all of qcow2's features. This
>>> is the only way of getting people to not stay with qcow2.
>>>
>>>
>>> Of course, you could invent another format that implements the same
>>> features, but I think just carefully extending qcow2 has some real
>>> advantages.
>>>
>>> The first is that conversion of existing images would be really easy.
>>> Basically increment the version number in the header file and you're
>>> done. Structures would be compatible.
>>
>> qemu-img convert is a reasonable path for conversion.
>>
>>>   If you compare it to file systems,
>>> I rarely ever change the file system on a non-empty partition. Even if I
>>> wanted, it's usually just too painful. Except when I was able to use
>>> "tune2fs -j" to make ext3 out of ext2, that was really easy. We can
>>> provide the same for qcow2 to qcow3 conversion, but not with a
>>> completely new format.
>>>
>>> Also, while obsoleting a file format means that we need not put much
>>> effort in its maintenance, we still need to keep the code around for
>>> reading old images. With an extension of qcow2, it would be the same
>>> code that is used for both versions.
>>>
>>> Third, qcow2 already exists, is used in practice and we have put quite
>>> some effort into QA. At least initially confidence would be higher than
>>> in a completely new, yet untested format. Remember that with qcow3 I'm
>>> not talking about rewriting everything, it's a careful evolution, mostly
>>> with optional additions here and there.
>>>    
>>
>> My requirements for a new format are as followed:
>>
>> 1) documented, thought-out specification that is covered under and
>> open license with a clear process for extension.
>>
>> 2) ability to add both compatible and incompatible features in a
>> graceful way
>>
>> 3) ability to achieve performance that's close to raw.  I want our new
>> format to be able to be used universally both for servers and
>> desktops.
> 
> I'd like to add
> 
> 4) minimize complexity and maximize maintainability of the code.  I'd
> gladly sacrifice nice-to-have features for that.

Especially if they are features that only other users use, right?

What's the "Sankt-Florians-Prinzip" called in English?

>> I think qcow2 has some misfeatures like compression and internal
>> snapshots.  I think preserving those misfeatures is a mistake because
>> I don't think we can satisfy the above while trying to preserve those
>> features.  If the image format degrades when those features are
>> enabled, then it decreases confidence in the format.
> 
> I'm inclined to agree.  There's one way to prove us wrong: implement the
> misfeatures without compromising the requirements.

*sigh*

It starts to get annoying, but if you really insist, I can repeat it
once more: These features that you don't need (this is the correct
description for what you call "misfeatures") _are_ implemented in a way
that they don't impact the "normal" case. And they are it today.

Kevin

  reply	other threads:[~2011-02-22  8:54 UTC|newest]

Thread overview: 87+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <OF3C9DAE9F.EC6B5878-ON85257826.00715C10-85257826.007A14FB@LocalDomain>
2011-02-15 19:45 ` [Qemu-devel] Re: Comparing New Image Formats: FVD vs. QED Chunqiang Tang
2011-02-16 12:34   ` Kevin Wolf
2011-02-17 16:04     ` Chunqiang Tang
2011-02-18  9:12     ` Strategic decision: COW format (was: [Qemu-devel] Re: Comparing New Image Formats: FVD vs. QED) Markus Armbruster
2011-02-18  9:57       ` [Qemu-devel] Re: Strategic decision: COW format Kevin Wolf
2011-02-18 14:20         ` Anthony Liguori
2011-02-22  8:37           ` Markus Armbruster
2011-02-22  8:56             ` Kevin Wolf [this message]
2011-02-22 10:21               ` Markus Armbruster
2011-02-22 15:57               ` Anthony Liguori
2011-02-22 16:15                 ` Kevin Wolf
2011-02-22 18:18                   ` Anthony Liguori
2011-02-23  9:13                     ` Kevin Wolf
2011-02-23 14:21                       ` Anthony Liguori
2011-02-23 14:55                         ` Kevin Wolf
2011-02-23 13:43               ` Avi Kivity
2011-02-23 14:23                 ` Anthony Liguori
2011-02-23 14:38                   ` Kevin Wolf
2011-02-23 15:29                     ` Anthony Liguori
2011-02-23 15:36                       ` Avi Kivity
2011-02-23 15:47                         ` Anthony Liguori
2011-02-23 15:59                           ` Avi Kivity
2011-02-23 15:54                       ` Kevin Wolf
2011-02-23 15:23                   ` Avi Kivity
2011-02-23 15:31                     ` Anthony Liguori
2011-02-23 15:37                       ` Avi Kivity
2011-02-23 15:50                         ` Anthony Liguori
2011-02-23 16:03                           ` Avi Kivity
2011-02-23 16:04                             ` Anthony Liguori
2011-02-23 16:15                               ` Kevin Wolf
2011-02-25 11:20                             ` Pavel Dovgaluk
     [not found]                             ` <-1737654525499315352@unknownmsgid>
2011-02-25 13:22                               ` Stefan Hajnoczi
2011-02-23 15:52                         ` Anthony Liguori
2011-02-23 15:59                           ` Gleb Natapov
2011-02-23 16:00                           ` Avi Kivity
2011-02-23 15:33                     ` Daniel P. Berrange
2011-02-23 15:38                       ` Avi Kivity
2011-02-18 17:43         ` Stefan Weil
2011-02-18 19:11           ` Kevin Wolf
2011-02-18 19:47             ` Anthony Liguori
2011-02-18 20:49               ` Kevin Wolf
2011-02-18 20:50                 ` Anthony Liguori
2011-02-18 21:27                   ` Kevin Wolf
2011-02-19 17:19             ` Stefan Hajnoczi
2011-02-18 20:31           ` Anthony Liguori
2011-02-19 12:27           ` [Qemu-devel] Bugs in the VDI Block Device Driver Chunqiang Tang
2011-02-19 16:21             ` Stefan Hajnoczi
2011-02-19 18:49               ` Stefan Weil
2011-02-20 22:13         ` [Qemu-devel] Re: Strategic decision: COW format Aurelien Jarno
2011-02-21  8:59           ` Kevin Wolf
2011-02-21 13:44             ` Stefan Hajnoczi
2011-02-21 14:10               ` Kevin Wolf
2011-02-21 15:16                 ` Anthony Liguori
2011-02-21 15:26                   ` Kevin Wolf
2011-02-23  3:32               ` Chunqiang Tang
2011-02-23 13:20                 ` Markus Armbruster
     [not found]               ` <OFAEB4CD91.BE989F29-ON8525783F.007366B8-85257840.00130B47@LocalDomain>
2011-03-13  5:51                 ` Chunqiang Tang
2011-03-13 17:48                   ` Anthony Liguori
2011-03-14  2:28                     ` Chunqiang Tang
2011-03-14 13:22                       ` Anthony Liguori
2011-03-14 13:53                         ` Chunqiang Tang
2011-03-14 14:02                           ` Anthony Liguori
2011-03-14 14:21                             ` Kevin Wolf
2011-03-14 14:35                               ` Chunqiang Tang
2011-03-14 14:49                               ` Anthony Liguori
2011-03-14 15:05                                 ` Stefan Hajnoczi
2011-03-14 15:08                                 ` Kevin Wolf
2011-03-14 14:26                           ` Stefan Hajnoczi
2011-03-14 14:30                             ` Chunqiang Tang
2011-03-14 14:15                         ` Kevin Wolf
2011-03-14 14:25                           ` Chunqiang Tang
2011-03-14 14:31                             ` Stefan Hajnoczi
2011-03-14 16:32                               ` Chunqiang Tang
2011-03-14 17:57                                 ` Kevin Wolf
2011-03-14 19:23                                   ` Chunqiang Tang
2011-03-14 20:16                                     ` Kevin Wolf
     [not found]                               ` <OF7C2FDD40.E76A4E14-ON85257853.005ADD68-85257853.005AF16E@LocalDomain>
2011-03-14 21:32                                 ` Chunqiang Tang
2011-03-14 14:34                             ` Kevin Wolf
2011-03-14 14:47                           ` Anthony Liguori
2011-03-14 15:03                             ` Kevin Wolf
2011-03-14 15:13                               ` Anthony Liguori
2011-03-14 15:04                             ` Chunqiang Tang
2011-03-14 15:07                               ` Stefan Hajnoczi
2011-03-14 10:12                   ` Kevin Wolf
2011-02-22  8:40           ` Markus Armbruster
2011-02-16 13:21   ` [Qemu-devel] Re: Comparing New Image Formats: FVD vs. QED Stefan Hajnoczi
2011-02-17 16:04     ` Chunqiang Tang

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=4D637A20.9020307@redhat.com \
    --to=kwolf@redhat.com \
    --cc=armbru@redhat.com \
    --cc=ctang@us.ibm.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@linux.vnet.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).