All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 0/1] dm: add clone target
@ 2019-07-09 14:15 Nikos Tsironis
  2019-07-09 14:15 ` [RFC PATCH 1/1] " Nikos Tsironis
  0 siblings, 1 reply; 14+ messages in thread
From: Nikos Tsironis @ 2019-07-09 14:15 UTC (permalink / raw)
  To: snitzer, agk, dm-devel; +Cc: vkoukis, ntsironis, iliastsi

This patch adds the dm-clone target, which allows cloning of arbitrary
block devices.

dm-clone produces a one-to-one copy of an existing, read-only device
(origin) into a writable device (clone): It presents a virtual block
device which makes all data appear immediately, and redirects reads and
writes accordingly.

The main use case of dm-clone is to clone a potentially remote,
high-latency, read-only, archival-type block device into a writable,
fast, primary-type device for fast, low-latency I/O. The cloned device
is visible/mountable immediately and the copy of the origin device to
the clone device happens in the background, in parallel with user I/O.

For example, one could restore an application backup from a read-only
copy, accessible through a network storage protocol (NBD, Fibre Channel,
iSCSI, AoE, etc.), into a local SSD or NVMe device, and start using the
device immediately, without waiting for the restore to complete.

When the cloning completes, the dm-clone table can be removed altogether
and be replaced, e.g., by a linear table, mapping directly to the clone
device.

dm-clone is optimized for small, random writes, with size equal to
dm-clone's block/region size, e.g., 4K.

For more information regarding dm-clone's operation, please read the
attached documentation.

A preliminary test suite for dm-clone can be found at
https://github.com/arrikto/device-mapper-test-suite/tree/feature-dm-clone

Nikos Tsironis (1):
  dm: add clone target

 Documentation/device-mapper/dm-clone.rst |  334 +++++
 drivers/md/Kconfig                       |   13 +
 drivers/md/Makefile                      |    2 +
 drivers/md/dm-clone-metadata.c           |  991 +++++++++++++
 drivers/md/dm-clone-metadata.h           |  158 +++
 drivers/md/dm-clone-target.c             | 2244 ++++++++++++++++++++++++++++++
 6 files changed, 3742 insertions(+)
 create mode 100644 Documentation/device-mapper/dm-clone.rst
 create mode 100644 drivers/md/dm-clone-metadata.c
 create mode 100644 drivers/md/dm-clone-metadata.h
 create mode 100644 drivers/md/dm-clone-target.c

-- 
2.11.0

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2019-09-04 15:01 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-07-09 14:15 [RFC PATCH 0/1] dm: add clone target Nikos Tsironis
2019-07-09 14:15 ` [RFC PATCH 1/1] " Nikos Tsironis
2019-07-09 21:28   ` Heinz Mauelshagen
2019-07-10 18:45     ` Nikos Tsironis
2019-07-17 14:41       ` Heinz Mauelshagen
2019-07-22 20:16         ` Nikos Tsironis
2019-07-29 21:20           ` Heinz Mauelshagen
2019-07-30 10:13             ` Nikos Tsironis
2019-08-27 14:09               ` Nikos Tsironis
2019-08-27 15:34                 ` Mike Snitzer
2019-08-28 14:23                   ` Nikos Tsironis
2019-08-29 16:19   ` Mike Snitzer
2019-08-31  9:55     ` Nikos Tsironis
2019-09-04 15:01       ` Mike Snitzer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.