qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-block] Potential uses of 'blockdev-add'


From: Kashyap Chamarthy
Subject: Re: [Qemu-block] Potential uses of 'blockdev-add'
Date: Wed, 10 Aug 2016 10:22:52 +0200
User-agent: Mutt/1.6.0.1 (2016-04-01)

On Wed, Aug 10, 2016 at 12:03:10AM +0200, Max Reitz wrote:
> On 09.08.2016 18:21, Markus Armbruster wrote:
> > Kashyap Chamarthy <address@hidden> writes:
> 
> [...]
> 
> >>      - "But '-drive' makes things a bit more complicated than
> >>        'blockdev-add' because things that are required for
> >>        'blockdev-add' are actually optional in '-drive'; and figuring them
> >>        out, at times, is not quite easy.  For example, not even the
> >>        block driver name is required in '-drive' because we have things
> >>        like probing of the image format." 
> >>
> >>         - So, it seems like the above is still the case.  As a quick
> >>           example, I took the QMP example from point (1) above, and
> >>           tried it on command-line, with '-drive' both the below options
> >>           are valid (QEMU boots just fine with):
> >>
> >>           (a) explicitly specify the format driver ("driver=qcow2"):
> >>
> >>               -drive 
> >> driver=qcow2,id=drive-ide2-0-0,file.driver=file,file.filename=./disk2.qcow2
> >>
> >>           (b) omit the format driver:
> >>
> >>               -drive 
> >> id=drive-ide2-0-0,file.driver=file,file.filename=./disk2.qcow2
> >>
> >>           I assume the above is what Kevin means.
> > 
> > Kevin?
> 
> Yes, it is, and you can omit file.driver, too.
> 
> >>  (4) "If at all possible, we'd like to use 'blockdev-add' for all
> >>      images QEMU opens" [from 'Make everything use blockdev-add'
> >>      section from Kevin / Max's talk[2]]
> >>
> >>       - Can someone elaboarate a bit more on this?
> > 
> > Kevin, Max?
> 
> Well, there are two things this can mean. One is that -drive should
> exercise the same code path at blockdev-add, and actually it pretty much
> does, at least insofar that -drive's functionality is a superset of that
> of blockdev-add, so it can only use blockdev-add's code for that part of
> its functionality. In the future, we might want to go further than this
> and actually translate -drive into a set of QMP commands, but we don't
> have the full -drive functionality in QMP yet (without resorting to
> HMP's drive_add, that is).
> 
> Also, there's the some-parameters-are-optional issue you talked about
> above. How do you translate -drive if=none,file=foo.img to a
> blockdev-add command? It gets tricky because you have to specify some
> format, but you actually cannot because you don't know it. That is one
> reason we may introduce a probing block driver at some point or another
> (i.e. you specify "probe-format" or something as the driver and this
> will then cause qemu to probe the format).
> 
> The other thing I can imagine is the idea that management tools should
> (at least be able to) start a bare-bone qemu which actually doesn't have
> anything on it (no hardware other than a motherboard) and then begin to
> plug stuff into it at runtime instead of on the command line.
> 
> One reason one might want to do this is "because you can". Another is
> that the process of making qemu able to start without anything would
> probably make it possible to reduce start-up times for light-weight VMs
> by a lot.
> 
> Apart from that, one could probably consider -drive legacy and
> blockdev-add not-so-legacy, because the latter is effectively more
> powerful (-drive and blockdev-add pretty much give you the same
> features, but using the command line to construct a large BDS tree is
> pretty icky, so you probably don't want to use -drive for large BDS
> trees) and simpler to use by management tools.
> 
> Finally, if we ever get to the point where we can and do translate
> -drive to a set of QMP commands, there really is no difference between
> whether it's qemu or the management layer which does this translation.

Thanks Max, and Markus for the detailed context & clear explanations.
This clarifies my questions so far.


-- 
/kashyap



reply via email to

[Prev in Thread] Current Thread [Next in Thread]