Device mapper работает, передавая данные из виртуального блочного устройства, которое предоставляется самим device mapper, в другое блочное устройство. Данные также могут быть изменены при переходе, что выполняется, например, в случае device mapper, обеспечивающего шифрование диска или имитацию ненадежного поведения оборудования.
В этой статье основное внимание уделяется реализации картографа устройств в ядре Linux, но функциональность картографа устройств также доступна в NetBSD и DragonFly BSD . [2] [3]
Использование
Приложения (такие как LVM2 и Enterprise Volume Management System (EVMS)), которым необходимо создавать новые сопоставленные устройства, взаимодействуют с картографом устройств через libdevmapper.soобщую библиотеку , которая, в свою очередь, выдает ioctl- запросы узлу /dev/mapper/controlустройства . [4] Конфигурацию картографа устройств можно также проверить и настроить интерактивно — или из сценариев оболочки — с помощью dmsetup(8)утилиты. [5] [6]
Оба этих компонента пользовательского пространства имеют свой исходный код, поддерживаемый вместе с исходным кодом LVM2. [7]
Функции
Функции, предоставляемые устройством сопоставления, включают линейные, полосатые и ошибочные сопоставления, а также криптографические и многопутевые цели. Например, два диска могут быть объединены в один логический том с парой линейных сопоставлений, по одному для каждого диска. В качестве другого примера, криптографическая цель шифрует данные, проходящие через указанное устройство, используя Crypto API ядра Linux . [1]
По состоянию на 2014 год [обновлять]доступны следующие цели картирования: [1] [5]
dm-integrity – цель отображения, которая обеспечивает целостность данных , используя либо контрольную сумму, либо криптографическую проверку, [10] [11] также используется с LUKS [12]
dm-log-writes – цель сопоставления, которая использует два устройства, проходя через первое устройство и регистрируя операции записи, выполненные для него на втором устройстве [13]
dm-verity – проверяет блоки данных, содержащиеся в файловой системе, на соответствие списку криптографических хеш-значений, разработанному в рамках проекта ChromiumOS [14]
dmraid(8) – обеспечивает доступ к «поддельным» конфигурациям RAID через средство сопоставления устройств
DM Multipath — обеспечивает отказоустойчивость ввода-вывода и балансировку нагрузки блочных устройств в ядре Linux.
Docker — использует Device Mapper для создания хранилища копирования при записи для программных контейнеров.