[dm-devel] [PATCHv3 00/11] dm-zoned: metadata version 2
Bob Liu
bob.liu at oracle.com
Sat Apr 11 12:30:02 UTC 2020
On 4/9/20 2:45 PM, Hannes Reinecke wrote:
> Hi all,
>
> this patchset adds a new metadata version 2, which brings the following
> improvements:
> - UUIDs and labels: Adding three more fields to the metadata containing
> the dm-zoned device UUID and label, and the device UUID. This allows
> for an unique identification of the devices, so that several dm-zoned
> sets can coexist and have a persistent identification.
> - Extend random zones by an additional regular disk device: A regular
> block device can be added together with the zoned block device, providing
> additional (emulated) random write zones. With this it's possible to
> handle sequential zones only devices; also there will be a speed-up if
> the regular block device resides on a fast medium. The regular block device
> is placed logically in front of the zoned block device, so that metadata
> and mapping tables reside on the regular block device, not the zoned device.
> - Tertiary superblock support: In addition to the two existing sets of metadata
> another, tertiary, superblock is written to the first block of the zoned
> block device. This superblock is for identification only; the generation
> number is set to '0' and the block itself it never updated. The additional
> metadate like bitmap tables etc are not copied.
>
> To handle this, some changes to the original handling are introduced:
> - Zones are now equidistant. Originally, runt zones were ignored, and
> not counted when sizing the mapping tables. With the dual device setup
> runt zones might occur at the end of the regular block device, making
> direct translation between zone number and sector/block number complex.
> For metadata version 2 all zones are considered to be of the same size,
> and runt zones are simply marked as 'offline' to have them ignored when
> allocating a new zone.
> - The block number in the superblock is now the global number, and refers to
> the location of the superblock relative to the resulting device-mapper
> device. Which means that the tertiary superblock contains absolute block
> addresses, which needs to be translated to the relative device addresses
> to find the referenced block.
>
> There is an accompanying patchset for dm-zoned-tools for writing and checking
> this new metadata.
>
> As usual, comments and reviews are welcome.
>
> Changes to v2:
> - Kill dmz_id()
> - Include reviews from Damien
> - Sanitize uuid handling as suggested by John Dorminy
>
This series looks good to me, feel free to add my
Reviewed-by: Bob Liu <bob.liu at oracle.com>
By the way, have you completed the patches for regular device support?
I was considering rebase my previous patches to this series but not sure is it still necessary.
Regards,
Bob
> Hannes Reinecke (11):
> dm-zoned: store zone id within the zone structure and kill dmz_id()
> dm-zoned: use array for superblock zones
> dm-zoned: store device in struct dmz_sb
> dm-zoned: move fields from struct dmz_dev to dmz_metadata
> dm-zoned: introduce dmz_metadata_label() to format device name
> dm-zoned: remove 'dev' argument from reclaim
> dm-zoned: replace 'target' pointer in the bio context
> dm-zoned: use dmz_zone_to_dev() when handling metadata I/O
> dm-zoned: add metadata logging functions
> dm-zoned: ignore metadata zone in dmz_alloc_zone()
> dm-zoned: metadata version 2
>
> drivers/md/dm-zoned-metadata.c | 601 ++++++++++++++++++++++++---------
> drivers/md/dm-zoned-reclaim.c | 89 ++---
> drivers/md/dm-zoned-target.c | 273 ++++++++-------
> drivers/md/dm-zoned.h | 29 +-
> 4 files changed, 659 insertions(+), 333 deletions(-)
>
More information about the dm-devel
mailing list