[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [v3 03/12] block: Add overlay BDS pointer into the Bloc
From: |
Eric Blake |
Subject: |
Re: [Qemu-devel] [v3 03/12] block: Add overlay BDS pointer into the BlockDriverState struct |
Date: |
Fri, 30 May 2014 13:12:01 -0600 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 |
On 05/30/2014 10:36 AM, Jeff Cody wrote:
>> Question - can one bds ever belong to more than one chain? That is,
>> could I create a guest that uses:
>> / disk1
>> base <
>> \ disk2
>>
> While an image itself may be a backing file to more than one overlay
> image, QEMU would open that as 2 separate chains, as we open the drive
> from the active layer downwards, following the backing_file. So in
> the QEMU implementation of your above structure, a BDS will be in at
> most one chain at a time:
>
> [0 base] <-- [1 disk1]
>
> [2 base] <-- [3 disk2]
That's if I only specify disk1 and disk2 as the files to open (and let
qemu follow its own backing chain to create BDS for [0 base] and [2
base]). But I was thinking more about blockdev-add, which has
provisions in the QMP for creating a block device chain via reference to
an existing bds node-name rather than inline (although I know that qemu
1.7 didn't support that, I still haven't figured out if it can be done
in qemu 2.0 with the addition of node-names).
I've added you in cc to a thread from January on that topic.
>
> In the above case, each '[]' is a unique BDS structure.
>
> (and of course, if you perform a block-commit to an image that is a
> base to multiple other images, then expect Bad Things).
On the other hand, doing block-stream to break a shared base into
multiple independent images actually makes sense. And since this series
changes block-stream to work on just a node name, there is the question
of which of the two devices actually get the streaming action.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
- [Qemu-devel] [v3 00/12] Modify block jobs to use node-names, Jeff Cody, 2014/05/30
- [Qemu-devel] [v3 04/12] block: add helper function to find the active layer of any BDS, Jeff Cody, 2014/05/30
- [Qemu-devel] [v3 05/12] block: simplify bdrv_find_base(), Jeff Cody, 2014/05/30
- [Qemu-devel] [v3 06/12] block: make 'top' argument to block-commit optional, Jeff Cody, 2014/05/30
- [Qemu-devel] [v3 07/12] block: Accept node-name arguments for block-commit, Jeff Cody, 2014/05/30
- [Qemu-devel] [v3 08/12] block: extend block-commit to accept a string for the backing file, Jeff Cody, 2014/05/30
- [Qemu-devel] [v3 10/12] block: add backing-file option to block-stream, Jeff Cody, 2014/05/30
- [Qemu-devel] [v3 09/12] block: add ability for block-stream to use node-name, Jeff Cody, 2014/05/30
- [Qemu-devel] [v3 11/12] block: Add QMP documentation for block-stream, Jeff Cody, 2014/05/30
- [Qemu-devel] [v3 12/12] block: add QAPI command to allow live backing file change, Jeff Cody, 2014/05/30
- Re: [Qemu-devel] [v3 00/12] Modify block jobs to use node-names, Jeff Cody, 2014/05/30