Сопоставитель устройств
Устройство сопоставления устройств — это платформа , предоставляемая ядром Linux для сопоставления физических блочных устройств более высокого уровня с виртуальными блочными устройствами . Он составляет основу диспетчера логических томов (LVM), программных RAID и шифрования дисков dm-crypt , а также предлагает дополнительные функции, такие как снимки файловой системы . [1]
Сопоставитель устройств работает путем передачи данных из виртуального блочного устройства, которое предоставляется самим сопоставителем устройств, в другое блочное устройство. Данные также могут быть изменены при переходе, что выполняется, например, в случае сопоставителя устройств, обеспечивающего шифрование диска или моделирование ненадежного поведения оборудования.
В этой статье основное внимание уделяется реализации устройства сопоставления устройств в ядре Linux, но функциональность устройства сопоставления также доступна как в NetBSD , так и в DragonFly BSD . [2] [3]
Использование
[ редактировать ]Приложения (такие как LVM2 и Enterprise Volume Management System (EVMS)), которым необходимо создавать новые подключенные устройства, взаимодействуют с устройством сопоставления устройств через libdevmapper.so
разделяемая библиотека , которая, в свою очередь, выдает ioctls в /dev/mapper/control
узел устройства . [4] Конфигурацию устройства сопоставления устройств также можно просмотреть и настроить в интерактивном режиме —или из сценариев оболочки —с помощью полезность. [5] [6]
Исходный код обоих этих двух компонентов пользовательского пространства поддерживается вместе с исходным кодом LVM2. [7]
Функции
[ редактировать ]Функции, предоставляемые сопоставителем устройств, включают линейные, чередующиеся и ошибочные сопоставления, а также цели шифрования и многопутевого шифрования. Например, два диска можно объединить в один логический том с помощью пары линейных сопоставлений, по одному для каждого диска. Другой пример: crypt ядра Linux target шифрует данные, проходящие через указанное устройство, с помощью Crypto API . [1]
По состоянию на 2014 год [update]доступны следующие цели сопоставления: [1] [5]
- кэш – позволяет создавать гибридные тома , используя твердотельные накопители (SSD) в качестве кэшей для жестких дисков (HDD).
- клон – разрешит использование до завершения передачи.
- crypt ядра Linux . – обеспечивает шифрование данных с помощью Crypto API
- задержка — задерживает чтение и/или запись на разные устройства (используется для тестирования)
- эпоха – ведет себя аналогично линейной цели, при этом отслеживает блоки, которые были записаны в течение заданного пользователем периода времени. [9]
- ошибка – имитирует ошибки ввода-вывода для всех сопоставленных блоков (используется для тестирования)
- flakey – имитирует периодическое ненадежное поведение (используется для тестирования)
- линейный — отображает непрерывный диапазон блоков на другое блочное устройство.
- зеркало – отображает зеркальное логическое устройство, обеспечивая при этом избыточность данных.
- multipath – поддерживает сопоставление устройств с несколькими путями посредством использования их групп путей.
- рейд ядра Linux — предлагает интерфейс к программному драйверу RAID ( md ).
- snapshot и snapshot-origin – используются для создания снимков LVM как часть базовой схемы копирования при записи.
- полосатый — распределяет данные по физическим устройствам, используя количество полос и размер фрагмента чередования в качестве параметров.
- тонкий — позволяет создавать устройства большего размера, чем базовое физическое устройство, физическое пространство выделяется только при записи на него.
- ноль – эквивалент
/dev/zero
, все операции чтения возвращают блоки нулей, а записи отбрасываются.
Приложения
[ редактировать ]Функции ядра Linux и проекты, построенные на основе устройства сопоставления устройств, включают следующее:
- cryptsetup — утилита для удобной настройки шифрования диска на основе dm-crypt.
- dm-crypt / LUKS — цель сопоставления, обеспечивающая шифрование тома.
- dm-cache — цель сопоставления, позволяющая создавать гибридные тома.
- dm-integrity — цель сопоставления, обеспечивающая целостность данных либо с использованием контрольной суммы, либо с помощью криптографической проверки, [10] [11] также используется с LUKS [12]
- dm-log-writes — цель сопоставления, которая использует два устройства, проходит через первое устройство и регистрирует операции записи, выполненные для нее на втором устройстве. [13]
- dm-verity — проверяет блоки данных, содержащиеся в файловой системе, на соответствие списку криптографических хэш-значений, разработанному в рамках ChromiumOS. проекта [14]
- «поддельным» конфигурациям RAID через устройство сопоставления устройств. – обеспечивает доступ к
- DM Multipath – обеспечивает аварийное переключение ввода-вывода и балансировку нагрузки блочных устройств в ядре Linux.
- Docker — использует устройство сопоставления устройств для создания хранилища копирования при записи для программных контейнеров.
- DRBD (распределенное реплицируемое блочное устройство)
- EVMS (устарело)
- — утилита вызывается из горячего подключения при создании и удалении карт устройств
- LVM2 – менеджер логических томов для ядра Linux
- VeraCrypt — версия TrueCrypt для Linux.
- VDO — оптимизатор виртуальных данных
Ссылки
[ редактировать ]- ^ Перейти обратно: а б с «Администрирование диспетчера логических томов, Приложение A. Устройство сопоставления устройств» . Красная шляпа . Проверено 29 сентября 2013 г.
- ^ «Руководство по интерфейсам ядра NetBSD: dm(4)» . netbsd.gw.com . 30 августа 2008 г. Архивировано из оригинала 19 июля 2014 г. Проверено 25 января 2015 г.
- ^ «Страницы электронного руководства DragonFly: dm(4)» . www.dragonflybsd.org . 28 июля 2010 г. Проверено 6 июня 2014 г.
- ^ "libdevmapper.h" . исходное программное обеспечение.org . Проверено 29 сентября 2013 г. [ постоянная мертвая ссылка ]
- ^ Перейти обратно: а б «dmsetup(8) — справочная страница Linux» . man.cx. Проверено 22 октября 2013 г.
- ^ «Администрирование диспетчера логических томов» . Приложение А.2. Команда dmsetup . Красная шляпа . Проверено 29 сентября 2013 г.
- ^ «Страница ресурсов устройства сопоставления» . исходное программное обеспечение.org . Проверено 29 сентября 2013 г.
- ^ Вернер Фишер; Георг Шенбергер (01.06.2015). «Диаграмма стека хранилища Linux» . Томас-Кренн.АГ . Проверено 8 июня 2015 г.
- ^ «6. Слой блоков» . Ядро Linux 3.15 . kernelnewbies.org. 08.06.2014 . Проверено 15 июня 2014 г.
- ^ "дм-целостность" . проект криптоустановки. 30 апреля 2018 г. Проверено 8 мая 2018 г.
- ^ «Цель дм-целостности» . ядро.орг . 13 мая 2017 г. Проверено 8 мая 2018 г.
- ^ «cryptsetup — управление обычными томами, зашифрованными dm-crypt и LUKS» . 01.01.2018 . Проверено 8 мая 2018 г.
- ^ «Документация ядра Linux: Documentation/device-mapper/log-writes.txt» . ядро.орг . 29 мая 2015 г. Проверено 13 октября 2015 г.
- ^ Джонатан Корбет (19 сентября 2011 г.). "дм-правда" . LWN.net . Проверено 13 октября 2015 г.
Внешние ссылки
[ редактировать ]- Домашняя страница устройства сопоставления устройств в Red Hat. Архивировано 15 марта 2006 г. в Wayback Machine.
- «Право на ваши собственные устройства» . Linux-вестник . Май 2005 г. - статья, иллюстрирующая использование различных целей устройства сопоставления устройств.
- инструмент пользовательского пространства для настройки программного RAID с использованием различных форматов метаданных RAID
- Поддержка многопутевого распространения в сопоставителе устройств , LWN.net , 23 февраля 2005 г., Джонатан Корбет