From: Sergei Shtepa <sergei.shtepa@veeam.com>
To: <Damien.LeMoal@wdc.com>, <snitzer@redhat.com>, <hare@suse.de>,
<ming.lei@redhat.com>, <agk@redhat.com>, <corbet@lwn.net>,
<axboe@kernel.dk>, <jack@suse.cz>, <johannes.thumshirn@wdc.com>,
<gregkh@linuxfoundation.org>, <koct9i@gmail.com>, <steve@sk2.org>,
<dm-devel@redhat.com>, <linux-block@vger.kernel.org>,
<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>
Cc: pavel.tide@veeam.com, sergei.shtepa@veeam.com
Subject: [dm-devel] [PATCH v5 1/6] docs: device-mapper: add remap_and_filter
Date: Tue, 9 Feb 2021 17:30:23 +0300 [thread overview]
Message-ID: <1612881028-7878-2-git-send-email-sergei.shtepa@veeam.com> (raw)
In-Reply-To: <1612881028-7878-1-git-send-email-sergei.shtepa@veeam.com>
remap_and_filter - describes the new features that
blk_interposer provides for device mapper.
Signed-off-by: Sergei Shtepa <sergei.shtepa@veeam.com>
---
.../admin-guide/device-mapper/index.rst | 1 +
.../device-mapper/remap_and_filter.rst | 132 ++++++++++++++++++
2 files changed, 133 insertions(+)
create mode 100644 Documentation/admin-guide/device-mapper/remap_and_filter.rst
diff --git a/Documentation/admin-guide/device-mapper/index.rst b/Documentation/admin-guide/device-mapper/index.rst
index 6cf8adc86fa8..e868d5bbec7e 100644
--- a/Documentation/admin-guide/device-mapper/index.rst
+++ b/Documentation/admin-guide/device-mapper/index.rst
@@ -27,6 +27,7 @@ Device Mapper
linear
log-writes
persistent-data
+ remap_and_filter
snapshot
statistics
striped
diff --git a/Documentation/admin-guide/device-mapper/remap_and_filter.rst b/Documentation/admin-guide/device-mapper/remap_and_filter.rst
new file mode 100644
index 000000000000..b896a7de2c97
--- /dev/null
+++ b/Documentation/admin-guide/device-mapper/remap_and_filter.rst
@@ -0,0 +1,132 @@
+=================
+DM remap & filter
+=================
+
+Introduction
+============
+
+Usually LVM should be used for new devices.
+The administrator has to create logical volumes for the system partition
+when installing the operating system. For a running system with
+partitioned disk space and mounted file systems, it is quite difficult to
+reconfigure to logical volumes. As a result, all the features that Device
+Mapper provides are not available for non-LVM systems.
+This problem is partially solved by the DM remap functionality, which
+uses the kernel's blk_interposer.
+
+Blk_interposer
+==============
+
+Blk_interposer extends the capabilities of the DM, as it allows to
+intercept and redirect bio requests for block devices that are not
+DM devices. At the same time, blk_interposer allows to attach and detach
+from devices "on the fly", without stopping the execution of user
+programs.
+
+Blk_interposer allows to do two tasks: remap and filter.
+Remap allows to redirect all requests from one block device to another.
+Filter allows to do additional processing of the request, but without
+redirection. An intercepted request can get to the block device to which
+it was addressed, without changes.
+
+Remap
+=====
+
+Consider the functionality of the remap. This will allow to connect
+any block device with a DM device "on the fly".
+Suppose we have a file system mounted on the block device /dev/sda1::
+
+ +-------------+
+ | file system |
+ +-------------+
+ ||
+ \/
+ +-------------+
+ | /dev/sda1 |
+ +-------------+
+
+Creating a new DM device that will be mapped on the same /dev/sda1::
+
+ +-------------+ +-----------+
+ | file system | | dm-linear |
+ +-------------+ +-----------+
+ || ||
+ \/ \/
+ +---------------+
+ | /dev/sda1 |
+ +---------------+
+
+Redirecting all bio requests for the /dev/sda1 device to the new DM
+device::
+
+ +-------------+
+ | file system |
+ +-------------+
+ ||
+ \/
+ +----------+ +-----------+
+ | remap | => | dm-linear |
+ +----------+ +-----------+
+ ||
+ \/
+ +-----------+
+ | /dev/sda1 |
+ +-----------+
+
+To achieve this, you need to:
+
+Create new DM device with option 'noexcl'. It's allowed to open the
+underlying block-device without the FMODE_EXCL flag::
+
+ echo "0 `blockdev --getsz $1` linear $DEV 0 noexcl" | dmsetup create dm-noexcl
+
+Call remap command::
+
+ dmsetup remap start dm-noexcl $1
+
+Remap can be used to extend the functionality of dm-snap. This will allow
+to take snapshots from any block devices, not just logical volumes.
+
+Filter
+======
+
+Filter does not redirect the bio to another device. It does not create
+a clone of the bio request. After receiving the request, the filter can
+only add some processing, complete the bio request, or return the bio
+for further processing.
+
+Suppose we have a file system mounted on the block device /dev/sda1::
+
+ +-------------+
+ | file system |
+ +-------------+
+ ||
+ \/
+ +-------------+
+ | /dev/sda1 |
+ +-------------+
+
+Creating a new DM device that will implement filter::
+
+ +-------------+
+ | file system |
+ +-------------+
+ ||
+ \/
+ +--------+ +----------+
+ | filter | => | dm-delay |
+ +--------+ +----------+
+ ||
+ \/
+ +-------------+
+ | /dev/sda1 |
+ +-------------+
+
+Using filter we can change the behavior of debugging tools:
+ * dm-dust,
+ * dm-delay,
+ * dm-flakey,
+ * dm-verity.
+
+In the new version, they will be able to change the behavior of any
+existing block device, without creating a new one.
--
2.20.1
--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
next prev parent reply other threads:[~2021-02-09 14:31 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-09 14:30 [dm-devel] [PATCH v5 0/6] block-layer interposer Sergei Shtepa
2021-02-09 14:30 ` Sergei Shtepa [this message]
2021-02-09 14:30 ` [dm-devel] [PATCH v5 2/6] block: add blk_mq_is_queue_frozen() Sergei Shtepa
2021-02-09 14:30 ` [dm-devel] [PATCH v5 3/6] block: add blk_interposer Sergei Shtepa
2021-02-09 14:30 ` [dm-devel] [PATCH v5 4/6] dm: new ioctl DM_DEV_REMAP_CMD Sergei Shtepa
2021-02-12 16:13 ` Mike Snitzer
2021-02-09 14:30 ` [dm-devel] [PATCH v5 5/6] dm: add 'noexcl' option for dm-linear Sergei Shtepa
2021-02-11 17:51 ` Mike Snitzer
2021-02-12 11:34 ` Sergei Shtepa
2021-02-12 16:06 ` Mike Snitzer
2021-02-15 10:34 ` Sergei Shtepa
2021-02-15 16:08 ` Mike Snitzer
2021-02-24 10:46 ` Sergei Shtepa
2021-02-09 14:30 ` [dm-devel] [PATCH v5 6/6] docs: device-mapper: " Sergei Shtepa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1612881028-7878-2-git-send-email-sergei.shtepa@veeam.com \
--to=sergei.shtepa@veeam.com \
--cc=Damien.LeMoal@wdc.com \
--cc=agk@redhat.com \
--cc=axboe@kernel.dk \
--cc=corbet@lwn.net \
--cc=dm-devel@redhat.com \
--cc=gregkh@linuxfoundation.org \
--cc=hare@suse.de \
--cc=jack@suse.cz \
--cc=johannes.thumshirn@wdc.com \
--cc=koct9i@gmail.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=ming.lei@redhat.com \
--cc=pavel.tide@veeam.com \
--cc=snitzer@redhat.com \
--cc=steve@sk2.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).