[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [Nbd] [PATCH v3] doc: Add NBD_CMD_BLOCK_STATUS extensio
From: |
Alex Bligh |
Subject: |
Re: [Qemu-devel] [Nbd] [PATCH v3] doc: Add NBD_CMD_BLOCK_STATUS extension |
Date: |
Tue, 29 Nov 2016 13:07:49 +0000 |
> On 29 Nov 2016, at 10:50, Wouter Verhelst <address@hidden> wrote:
>
> +- `NBD_OPT_ALLOC_CONTEXT` (10)
> +
> + Return a list of `NBD_REP_ALLOC_CONTEXT` replies, one per context,
> + followed by an `NBD_REP_ACK`. If a server replies to such a request
> + with no error message, clients MAY send NBD_CMD_BLOCK_STATUS
> + commands during the transmission phase.
I haven't read this in detail but this seems to me to be similar to
the idea I just posted (sorry - kept getting interrupted whilst writing
the email) re multiple bitmaps?
But the name 'ALLOC_CONTEXT' is a bit weird. Why not call 'metadata
bitmaps' or 'metadata extents' or something. Metadata seems right as
it's data about data.
> +##### Allocation contexts
> +
> +Allocation context 0 is the basic "exists at all" allocation context. If
> +an extent is not allocated at allocation context 0, it MUST NOT be
> +listed as allocated at another allocation context. This supports sparse
> +file semantics on the server side. If a server has only one allocation
> +context (the default), then writing to an extent which is allocated in
> +that allocation context 0 MUST NOT fail with ENOSPC.
> +
> +For all other cases, this specification requires no specific semantics
> +of allocation contexts. Implementations could support allocation
> +contexts with semantics like the following:
> +
> +- Incremental snapshots; if a block is allocated in one allocation
> + context, that implies that it is also allocated in the next level up.
> +- Various bits of data about the backend of the storage; e.g., if the
> + storage is written on a RAID array, an allocation context could
> + return information about the redundancy level of a given extent
> +- If the backend implements a write-through cache of some sort, or
> + synchronises with other servers, an allocation context could state
> + that an extent is "allocated" once it has reached permanent storage
> + and/or is synchronized with other servers.
> +
> +The only requirement of an allocation context is that it MUST be
> +representable with the flags as defined for `NBD_CMD_BLOCK_STATUS`.
> +
> +Likewise, the syntax of query strings is not specified by this document.
> +
> +Server implementations SHOULD document their syntax for query strings
> +and semantics for resulting allocation contexts in a document like this
> +one.
> +
But this seems strange. Whether something is 'allocated' seems orthogonal
to me to whether it needs backing up. Even the fact it's been zeroed
(now a hole) might need backing up).
So don't we need multiple independent lists of extents? Of course a server
might *implement* them under the hood with separate bitmaps or one big
bitmap, or no bitmap at all (for instance using file extents on POSIX).
--
Alex Bligh
- [Qemu-devel] [PATCH v3] doc: Add NBD_CMD_BLOCK_STATUS extension, Vladimir Sementsov-Ogievskiy, 2016/11/25
- Re: [Qemu-devel] [PATCH v3] doc: Add NBD_CMD_BLOCK_STATUS extension, Stefan Hajnoczi, 2016/11/25
- Re: [Qemu-devel] [Nbd] [PATCH v3] doc: Add NBD_CMD_BLOCK_STATUS extension, Wouter Verhelst, 2016/11/27
- Re: [Qemu-devel] [Nbd] [PATCH v3] doc: Add NBD_CMD_BLOCK_STATUS extension, Stefan Hajnoczi, 2016/11/28
- Re: [Qemu-devel] [Nbd] [PATCH v3] doc: Add NBD_CMD_BLOCK_STATUS extension, Wouter Verhelst, 2016/11/28
- Re: [Qemu-devel] [Nbd] [PATCH v3] doc: Add NBD_CMD_BLOCK_STATUS extension, Stefan Hajnoczi, 2016/11/29
- Re: [Qemu-devel] [Nbd] [PATCH v3] doc: Add NBD_CMD_BLOCK_STATUS extension, Wouter Verhelst, 2016/11/29
- Re: [Qemu-devel] [Nbd] [PATCH v3] doc: Add NBD_CMD_BLOCK_STATUS extension, Vladimir Sementsov-Ogievskiy, 2016/11/29
- Re: [Qemu-devel] [Nbd] [PATCH v3] doc: Add NBD_CMD_BLOCK_STATUS extension, Wouter Verhelst, 2016/11/29
- Re: [Qemu-devel] [Nbd] [PATCH v3] doc: Add NBD_CMD_BLOCK_STATUS extension,
Alex Bligh <=
Re: [Qemu-devel] [Nbd] [PATCH v3] doc: Add NBD_CMD_BLOCK_STATUS extension, John Snow, 2016/11/28
Re: [Qemu-devel] [Nbd] [PATCH v3] doc: Add NBD_CMD_BLOCK_STATUS extension, Kevin Wolf, 2016/11/29
Re: [Qemu-devel] [Nbd] [PATCH v3] doc: Add NBD_CMD_BLOCK_STATUS extension, Sergey Talantov, 2016/11/30
Re: [Qemu-devel] [PATCH v3] doc: Add NBD_CMD_BLOCK_STATUS extension, Alex Bligh, 2016/11/29