OpenCloudOS-Kernel/Documentation/device-mapper
Damien Le Moal 3b1a94c88b dm zoned: drive-managed zoned block device target
The dm-zoned device mapper target provides transparent write access
to zoned block devices (ZBC and ZAC compliant block devices).
dm-zoned hides to the device user (a file system or an application
doing raw block device accesses) any constraint imposed on write
requests by the device, equivalent to a drive-managed zoned block
device model.

Write requests are processed using a combination of on-disk buffering
using the device conventional zones and direct in-place processing for
requests aligned to a zone sequential write pointer position.
A background reclaim process implemented using dm_kcopyd_copy ensures
that conventional zones are always available for executing unaligned
write requests. The reclaim process overhead is minimized by managing
buffer zones in a least-recently-written order and first targeting the
oldest buffer zones. Doing so, blocks under regular write access (such
as metadata blocks of a file system) remain stored in conventional
zones, resulting in no apparent overhead.

dm-zoned implementation focus on simplicity and on minimizing overhead
(CPU, memory and storage overhead). For a 14TB host-managed disk with
256 MB zones, dm-zoned memory usage per disk instance is at most about
3 MB and as little as 5 zones will be used internally for storing metadata
and performing buffer zone reclaim operations. This is achieved using
zone level indirection rather than a full block indirection system for
managing block movement between zones.

dm-zoned primary target is host-managed zoned block devices but it can
also be used with host-aware device models to mitigate potential
device-side performance degradation due to excessive random writing.

Zoned block devices can be formatted and checked for use with the dm-zoned
target using the dmzadm utility available at:

https://github.com/hgst/dm-zoned-tools

Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Reviewed-by: Bart Van Assche <bart.vanassche@sandisk.com>
[Mike Snitzer partly refactored Damien's original work to cleanup the code]
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
2017-06-19 11:05:20 -04:00
..
cache-policies.txt dm cache: update cache-policies.txt now that mq is an alias for smq 2016-05-05 15:25:53 -04:00
cache.txt Documentation: device-mapper: cache.txt: Fix typos 2017-03-19 09:16:07 -06:00
delay.txt Documentation/device-mapper: s/getsize/getsz/ 2016-12-14 10:54:27 +01:00
dm-crypt.txt dm crypt: optionally support larger encryption sector size 2017-03-24 15:54:21 -04:00
dm-flakey.txt block: rename bio bi_rw to bi_opf 2016-08-07 14:41:02 -06:00
dm-integrity.txt dm integrity: support larger block sizes 2017-04-24 12:04:33 -04:00
dm-io.txt
dm-log.txt dm log userspace: fix comment hyphens 2011-10-31 20:21:22 +00:00
dm-queue-length.txt dm mpath: add queue length load balancer 2009-06-22 10:12:27 +01:00
dm-raid.txt dm raid: add raid4/5/6 journal write-back support via journal_mode option 2017-03-27 12:08:07 -04:00
dm-service-time.txt Fix common misspellings 2011-03-31 11:26:23 -03:00
dm-uevent.txt dm: uevent generate events 2007-10-20 02:01:26 +01:00
dm-zoned.txt dm zoned: drive-managed zoned block device target 2017-06-19 11:05:20 -04:00
era.txt dm: add era target 2014-03-27 16:56:23 -04:00
kcopyd.txt
linear.txt Documentation/device-mapper: s/getsize/getsz/ 2016-12-14 10:54:27 +01:00
log-writes.txt block, drivers, fs: rename REQ_FLUSH to REQ_PREFLUSH 2016-06-07 13:41:38 -06:00
persistent-data.txt Documentation: Fix multiple typo in Documentation 2012-03-07 16:08:24 +01:00
snapshot.txt dm snapshot: add new persistent store option to support overflow 2015-10-09 16:57:03 -04:00
statistics.txt dm stats: fix spelling mistake in Documentation 2016-05-05 15:25:54 -04:00
striped.txt Documentation/device-mapper: s/getsize/getsz/ 2016-12-14 10:54:27 +01:00
switch.txt Documentation/device-mapper: s/getsize/getsz/ 2016-12-14 10:54:27 +01:00
thin-provisioning.txt dm thin: display 'needs_check' in status if it is set 2015-07-16 10:23:50 -04:00
verity.txt dm verity: add ignore_zero_blocks feature 2015-12-10 10:39:03 -05:00
zero.txt