Картограф устройства - Device mapper

В сопоставитель устройств это рамки предоставленный Ядро Linux для отображения физических блочные устройства на более высокий уровень виртуальные блочные устройства. Он составляет основу диспетчер логических томов (LVM), программное обеспечение RAID-массивы и dm-crypt шифрование диска и предлагает дополнительные функции, такие как файловая система снимки.[1]

Устройство сопоставления устройств работает путем передачи данных от виртуального блочного устройства, которое предоставляется самим устройством сопоставления устройств, другому блочному устройству. Данные также могут быть изменены при переходе, который выполняется, например, в случае, если устройство сопоставления предоставляет шифрование диска или имитация ненадежного поведения оборудования.

В этой статье основное внимание уделяется реализации устройства сопоставления в ядре Linux, но функциональность сопоставления устройств также доступна в обоих NetBSD и DragonFly BSD.[2][3]

использование

Приложения (например, LVM2 и Система управления корпоративным объемом (EVMS)), которым необходимо создать новые сопоставленные устройства, взаимодействовать с сопоставителем устройств через libdevmapper.so общая библиотека, что, в свою очередь, вызывает ioctls к / dev / mapper / контроль узел устройства.[4] Конфигурацию устройства отображения можно также проверить и настроить в интерактивном режиме — или из сценарии оболочки ‍ — ‌ с помощью dmsetup (8) полезность.[5][6]

Исходный код обоих этих двух компонентов пользовательского пространства поддерживается вместе с исходным кодом LVM2.[7]

особенности

Положение целей устройства сопоставления на различных уровнях Ядро Linux стек хранилища.[8]

Функции, предоставляемые картографом устройства, включают линейную, полосатую и ошибку. сопоставления, а также крипта и многопутевость цели. Например, два диска могут быть объединены в один логический том с парой линейный сопоставления, по одному на каждый диск. Другой пример: склеп target шифрует данные, проходящие через указанное устройство, с помощью ядра Linux Крипто API.[1]

Доступны следующие цели сопоставления:[1][5]

  • тайник - позволяет создавать гибридные тома, используя твердотельные накопители (SSD) в качестве кешей для жесткие диски (HDD)
  • клон - разрешит использование до завершения передачи.
  • склеп - обеспечивает шифрование данных с помощью ядра Linux Крипто API
  • задерживать - задерживает чтение и / или запись на разные устройства (используется для тестирования)
  • эра - ведет себя аналогично линейной цели, при этом отслеживая блоки, которые были записаны в течение определенного пользователем периода времени[9]
  • ошибка - моделирует ошибки ввода-вывода для всех отображаемых блоков (используется для тестирования)
  • рассыпчатый - имитирует периодическое ненадежное поведение (используется для тестирования)
  • линейный - отображает непрерывный диапазон блоков на другое блочное устройство
  • зеркало - отображает зеркальный логическое устройство, обеспечивая при этом избыточность данных
  • многолучевость - поддерживает отображение многоточечный устройства, используя их группы путей
  • рейд - предлагает интерфейс к ядру Linux программный RAID Водитель (мкр )
  • снимок и моментальный снимок - используется для создания моментальных снимков LVM, как часть базовой схемы копирования при записи
  • в полоску - распределяет данные по физическим устройствам с количеством полос и размером чанка в качестве параметров
  • тонкий - позволяет создавать устройства большего размера, чем базовое физическое устройство, физическое пространство выделяется только при записи на
  • нуль - эквивалент / dev / ноль, все чтения возвращают блоки нулей, а записи отбрасываются

Приложения

Следующие функции и проекты ядра Linux построены на основе устройства сопоставления устройств:

  • cryptsetup - утилита для удобной настройки шифрования диска на основе dm-crypt
  • dm-crypt /LUKS - цель сопоставления, обеспечивающая шифрование тома
  • dm-cache - цель отображения, которая позволяет создавать гибридные тома
  • dm-целостность - цель сопоставления, которая обеспечивает целостность данных с использованием контрольной суммы или криптографической проверки,[10][11] также используется с LUKS[12]
  • dm-log-write - цель сопоставления, которая использует два устройства, проходит через первое устройство и регистрирует операции записи, выполненные на нем на втором устройстве[13]
  • dm-verity - проверяет блоки данных, содержащиеся в файловой системе, по списку криптографических хеш-значений, разработанных как часть Chromium OS проект[14]
  • dmraid (8) - обеспечивает доступ к «фальшивый» RAID конфигурации через устройство отображения
  • DM Multipath - обеспечивает переключение ввода-вывода и балансировку нагрузки блочных устройств в ядре Linux
  • Докер - использует устройство сопоставления для создания хранилища копирования при записи для программных контейнеров
  • DRBD (Распределенное реплицированное блочное устройство)
  • EVMS (не рекомендуется)
  • kpartx (8) - утилита, вызываемая из hotplug при создании и удалении карт устройств
  • LVM2  – диспетчер логических томов для ядра Linux
  • Версия для Linux TrueCrypt
  • VDO - виртуальный оптимизатор данных

Рекомендации

  1. ^ а б c «Администрирование диспетчера логических томов, приложение A. Устройство сопоставления». Красная шляпа. Получено 2013-09-29.
  2. ^ "Руководство по интерфейсам ядра NetBSD: dm (4)". netbsd.gw.com. 2008-08-30. Получено 2015-01-25.
  3. ^ "Страницы онлайн-руководства DragonFly: dm (4)". dragonflybsd.org. 2010-07-28. Получено 2014-06-06.
  4. ^ "libdevmapper.h". sourceware.org. Получено 2013-09-29.
  5. ^ а б "dmsetup (8) - страница руководства Linux". man.cx. Получено 2013-10-22.
  6. ^ «Администрирование диспетчера логических томов». Приложение А.2. Команда dmsetup. Красная шляпа. Получено 2013-09-29.
  7. ^ "Страница ресурсов устройства-сопоставителя". sourceware.org. Получено 2013-09-29.
  8. ^ Вернер Фишер; Георг Шёнбергер (01.06.2015). «Схема стека хранилища Linux». Thomas-Krenn.AG. Получено 2015-06-08.
  9. ^ «6. Блочный слой». Ядро Linux 3.15. kernelnewbies.org. 2014-06-08. Получено 2014-06-15.
  10. ^ "дм-целостность". Cryptosetup проект. 2018-04-30. Получено 2018-05-08.
  11. ^ "цель целостности DM". kernel.org. 2017-05-13. Получено 2018-05-08.
  12. ^ "cryptsetup - управление простыми томами, зашифрованными dm-crypt и LUKS". 2018-01-01. Получено 2018-05-08.
  13. ^ «Документация по ядру Linux: Documentation / device-mapper / log-write.txt». kernel.org. 2015-05-29. Получено 2015-10-13.
  14. ^ Джонатан Корбет (19 сентября 2011 г.). "dm-verity". LWN.net. Получено 2015-10-13.

внешняя ссылка