[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 0/6] external backup api
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH v2 0/6] external backup api |
Date: |
Fri, 26 Feb 2016 21:03:30 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 |
On 26/02/2016 20:55, Paolo Bonzini wrote:
>
>
> On 19/02/2016 09:51, Markus Armbruster wrote:
>>> Is it an abuse to "Get LBA Status" to return dirty information? Because in
>>> SCSI
>>> the command reports "mapped", "allocated" and "anchored" statuses. Does that
>>> mean NBD will use a different status set?
>>
>> Perhaps some conceptual gymnastics can get us to standard semantics.
>>
>> Incremental backup wants to copy out an image's "dirty" blocks.
>>
>> We can view this as a bitmap telling us which of the image's blocks are
>> dirty.
>>
>> An alternative view would be base image + dirty delta image. In the the
>> dirty delta, exactly the dirty blocks are allocated. The delta image
>> may be conceptual.
>
> I see a problem here. On one hand I agree that the "GET LBA STATUS" is
> a natural extension to the NBD protocol.
>
> On the other hand, the Get LBA Status command in SCSI reflects the
> state over the whole chain, not only the top element. It is the
> equivalent of bdrv_get_block_status_above(bs, NULL, ...), rather than
> bdrv_get_block_status(bs, ...). My understanding is that the dirty
> block information would require the latter, especially in the
> "conceptual delta image" model that Markus describes above.
>
> Having NBD implement subtly different semantics compared to SCSI is a
> bad idea in my opinion.
>
> Of course if we call it "READ DIRTY BLOCKS" that would work, but I
> don't think such a command would be something that it makes sense to
> have in the general purpose NBD spec, so you would need a mechanism
> for vendor-specific extensions.
Trying to be constructive: shall we instead have a simple mini-protocol
with commands like "read bitmap slice", "clear bitmap slice", "query
next 0 bit", "query next 1 bit"?
Not necessarily QMP, just a little socket thing. It could be JSON or
ASCII or binary. It sucks to implement a new protocol, but perhaps it
could be something compatible with VMware or Parallels.
Sorry if this has already been proposed, I'm late to the game and I only
read this subthread.
Paolo
- Re: [Qemu-devel] [PATCH v2 0/6] external backup api, (continued)
- Re: [Qemu-devel] [PATCH v2 0/6] external backup api, Vladimir Sementsov-Ogievskiy, 2016/02/17
- Re: [Qemu-devel] [PATCH v2 0/6] external backup api, Fam Zheng, 2016/02/17
- Re: [Qemu-devel] [PATCH v2 0/6] external backup api, Daniel P. Berrange, 2016/02/18
- Re: [Qemu-devel] [PATCH v2 0/6] external backup api, Stefan Hajnoczi, 2016/02/18
- Re: [Qemu-devel] [PATCH v2 0/6] external backup api, Fam Zheng, 2016/02/18
- Re: [Qemu-devel] [PATCH v2 0/6] external backup api, Markus Armbruster, 2016/02/19
- Re: [Qemu-devel] [PATCH v2 0/6] external backup api, John Snow, 2016/02/24
- Re: [Qemu-devel] [PATCH v2 0/6] external backup api, Paolo Bonzini, 2016/02/26
- Re: [Qemu-devel] [PATCH v2 0/6] external backup api,
Paolo Bonzini <=
- Re: [Qemu-devel] [PATCH v2 0/6] external backup api, Denis V. Lunev, 2016/02/26
- Re: [Qemu-devel] [PATCH v2 0/6] external backup api, John Snow, 2016/02/26
- Re: [Qemu-devel] [PATCH v2 0/6] external backup api, Denis V. Lunev, 2016/02/26
- Re: [Qemu-devel] [PATCH v2 0/6] external backup api, Fam Zheng, 2016/02/26
- Re: [Qemu-devel] [PATCH v2 0/6] external backup api, Markus Armbruster, 2016/02/29
- Re: [Qemu-devel] [PATCH v2 0/6] external backup api, Paolo Bonzini, 2016/02/29
- Re: [Qemu-devel] [PATCH v2 0/6] external backup api, Paolo Bonzini, 2016/02/29
- Re: [Qemu-devel] [PATCH v2 0/6] external backup api, Fam Zheng, 2016/02/29
- Re: [Qemu-devel] [PATCH v2 0/6] external backup api, Markus Armbruster, 2016/02/29