qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH V9 00/14] qmp/hmp interfaces for internal snapsh


From: Kevin Wolf
Subject: Re: [Qemu-devel] [PATCH V9 00/14] qmp/hmp interfaces for internal snapshot info
Date: Fri, 15 Mar 2013 09:07:58 +0100
User-agent: Mutt/1.5.21 (2010-09-15)

Am 15.03.2013 um 07:07 hat Wenchao Xia geschrieben:
> 于 2013-3-13 20:40, Stefan Hajnoczi 写道:
> >The same applies for VMDK where one .vmdk can reference multiple extent
> >files.
> >
>   I'd like to confirm: This means a block device can have multiple
> images at top level, but one image can still have only one backing
> image at most? If my understanding is correct,following should be the
> case:
> 
> 1 device hda have two active images: a.qcow2 and b.qcow2(maybe vmdk
> format now, just an example)
> 2 a.qcow2 file's backing file will be a_base0.qcow2, never a_base0.qcow2
> and a_base1.qcow2.

I don't think this describes exactly what happens. Each qemu block
device refers to one BlockDriverState, let's say top.vmdk for the top
level image. This may refer to a backing file, backing.vmdk for example.

Now top.vmdk nd back.vmdk could both be split images, and the former
refers to its extents top_0.vmdk and top_1.vmdk, which contain the
actual data of the image, and the latter may refer to backing_0.vmdk,
backing_1.vmdk and backing_2.vmdk.

So this can happen in any position in the BlockDriverState graph.

>   Since ImageInfo already have key 'backing-filename', which stands for
> the information got in this image, not from the backing image,
> add a new key 'bakcing-image' for recursive linking:
> 
> { 'type': 'ImageInfo',
>   'data': {'filename': 'str', 'format': 'str', '*dirty-flag': 'bool',
>            '*actual-size': 'int', 'virtual-size': 'int',
>            '*cluster-size': 'int', '*encrypted': 'bool',
>            '*backing-filename': 'str', '*full-backing-filename': 'str',
>            '*backing-filename-format': 'str',
>            '*backing-image": 'ImageInfo',
>            '*snapshots': ['SnapshotInfo'] } }
> 
>   Then insert ImageInfo into BlockDeviceInfo, with key 'images', since
> 'file' is already used which may break compatibility if we change it.
> 'images' uses an array for the case when multiple images exist in
> top level, not for backing chain.
> 
> { 'type': 'BlockDeviceInfo',
>   'data': { 'file': 'str', 'ro': 'bool', 'drv': 'str',
>             '*backing_file': 'str', 'backing_file_depth': 'int',
>             'encrypted': 'bool', 'encryption_key_missing': 'bool',
>             'bps': 'int', 'bps_rd': 'int', 'bps_wr': 'int',
>             'iops': 'int', 'iops_rd': 'int', 'iops_wr': 'int',
>             'images': ['ImageInfo']} }}

Yes, I think this is what Stefan meant (at least it looks like what I
was thinking of).

Kevin



reply via email to

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