The device mapper is a framework provided by the Linux kernel for mapping physical block devices onto higher-level virtual block devices. It forms the foundation of the logical volume manager (LVM), software RAIDs and dm-crypt disk encryption, and offers additional features such as file system snapshots.
Device mapper works by passing data from a virtual block device, which is provided by the device mapper itself, to another block device. Data can be also modified in transition, which is performed, for example, in the case of device mapper providing disk encryption or simulation of unreliable hardware behavior.
Applications (like LVM2 and Enterprise Volume Management System (EVMS) that need to create new mapped devices talk to the device mapper via the
libdevmapper.so shared library, which in turn issues ioctls to the
/dev/mapper/control device node. Configuration of the device mapper can be also examined and configured interactively—or from shell scripts—by using the utility.
Both of these two userspace components have their source code maintained alongside the LVM2 source.
Functions provided by the device mapper include linear, striped and error mappings, as well as crypt and multipath targets. For example, two disks may be concatenated into one logical volume with a pair of linear mappings, one for each disk. As another example, crypt target encrypts the data passing through the specified device, by using the Linux kernel's Crypto API.
/dev/zero, all reads return blocks of zeros, and writes are discarded
The following Linux kernel features and projects are built on top of the device mapper:
Manage research, learning and skills at NCR Works. Create an account using LinkedIn to manage and organize your omni-channel knowledge. NCR Works is like a shopping cart for information -- helping you to save, discuss and share.