Jump to content

dm-кэш

dm-кэш
Разработчик(и) Джо Торнбер, Хайнц Мауэльсхаген, Майк Снитцер и другие
Первоначальный выпуск 28 апреля 2013 г .; 11 лет назад ( 28 апреля 2013 ) (Linux 3.9)
Написано в С
Операционная система Линукс
Тип Функция ядра Linux
Лицензия GNU GPL
Веб-сайт ядро .org

dm-cache — это компонент (точнее, цель) Linux ядра устройства отображения устройств , которое представляет собой платформу для сопоставления блочных устройств с виртуальными блочными устройствами более высокого уровня. Он позволяет одному или нескольким быстрым устройствам хранения, таким как твердотельные накопители на базе флэш-памяти (SSD), выступать в качестве кэша для одного или нескольких более медленных устройств хранения, таких как жесткие диски (HDD); это эффективно создает гибридные тома и обеспечивает вторичного хранилища повышение производительности .

Конструкция dm-cache требует трех физических устройств хранения для создания одного гибридного тома; dm-cache использует эти устройства хранения для отдельного хранения фактических данных, данных кэша и необходимых метаданных . Настраиваемые режимы работы и политики кэширования, причем последние в виде отдельных модулей, определяют способ фактического кэширования данных.

dm-cache лицензируется на условиях GNU General Public License (GPL), основными разработчиками которого являются Джо Торнбер, Хайнц Мауэльсхаген и Майк Снитцер.

dm-cache использует твердотельные накопители ( SSD ) в качестве дополнительного уровня косвенности при доступе к жестким дискам ( HDD ), улучшая общую производительность за счет использования быстрых твердотельных накопителей на основе флэш-памяти в качестве кэшей для более медленных механических жестких дисков на основе вращающихся магнитных носителей . В результате дорогая скорость твердотельных накопителей сочетается с емкостью более медленных, но менее дорогих жестких дисков. [1] Более того, в случае сетей хранения данных (SAN), используемых в облачных средах в качестве общих систем хранения для виртуальных машин , dm-cache также может улучшить общую производительность и снизить нагрузку на сети SAN, обеспечивая кэширование данных с использованием локального хранилища на стороне клиента. [2] [3] [4]

dm-cache реализован как компонент устройства сопоставления устройств ядра Linux , который представляет собой структуру управления томами , позволяющую создавать различные сопоставления между физическими и виртуальными блочными устройствами. Способ создания сопоставления между устройствами определяет, как виртуальные блоки преобразуются в базовые физические блоки, при этом определенные типы преобразования называются целями . [5] Выступая в качестве цели сопоставления, dm-cache позволяет кэшированию на основе SSD быть частью созданного виртуального блочного устройства, а настраиваемые режимы работы и политики кэширования определяют, как dm-cache работает внутри. Режим работы выбирает способ синхронизации данных между HDD и SSD, а политика кэширования, выбираемая из отдельных модулей, реализующих каждую из политик, обеспечивает алгоритм определения того, какие блоки продвигаются (перемещаются из HDD на SSD), понижен в должности (перенесен с SSD на HDD), очищен и т.д. [6]

При настройке на использование политики кэширования с несколькими очередями (mq) или стохастической многоочередности (smq), причем последняя используется по умолчанию, dm-cache использует твердотельные накопители для хранения данных, связанных с выполненными случайными операциями чтения и записи , используя почти нулевое время поиска . SSD и избегать таких операций ввода-вывода , которые являются типичными узкими местами производительности жестких дисков. Данные, связанные с последовательным чтением и записью, не кэшируются на твердотельных накопителях, что позволяет избежать нежелательной аннулирования кэша во время таких операций; с точки зрения производительности это выгодно, поскольку последовательные операции ввода-вывода подходят для жестких дисков из-за их механической природы. Отсутствие кэширования последовательного ввода-вывода также помогает продлить срок службы твердотельных накопителей, используемых в качестве кэшей. [7]

Еще один проект dm-cache с аналогичными целями был анонсирован Эриком Ван Хенсбергеном и Мин Чжао в 2006 году в результате стажировки в IBM . [8]

Позже Джо Торнбер, Хайнц Мауэльсхаген и Майк Снитцер представили собственную реализацию концепции, в результате которой dm-cache был включен в ядро ​​Linux. dm-cache был объединен с основной веткой ядра Linux в версии ядра 3.9, выпущенной 28 апреля 2013 года. [6] [9]

В dm-cache для создания сопоставленного виртуального блочного устройства, действующего как гибридный том, требуется три физических устройства хранения: [6]

  • Исходное устройство – обеспечивает медленное основное хранилище (обычно жесткий диск).
  • Устройство кэширования – обеспечивает быстрый кэш (обычно SSD).
  • Устройство метаданных — записывает размещение блоков и их грязные флаги, а также другие внутренние данные, требуемые политикой кэширования, включая количество попаданий для каждого блока; устройство метаданных не может использоваться несколькими устройствами кэширования, и его рекомендуется зеркалировать .

Внутри dm-cache ссылается на каждое из исходных устройств через ряд блоков фиксированного размера; размер этих блоков, равный размеру экстента кэширования , настраивается только при создании гибридного тома. Размер экстента кэширования должен находиться в диапазоне от 32 КБ до 1 ГБ и быть кратным 32 КБ; обычно размер экстента кэширования составляет от 256 до 1024 КБ. Выбор экстентов кэширования, превышающих размеры секторов диска, представляет собой компромисс между размером метаданных и возможностью бесполезной траты пространства кэша. Слишком маленькие экстенты кэширования увеличивают размер метаданных как на устройстве метаданных, так и в памяти ядра, тогда как слишком большие экстенты кэширования увеличивают объем неиспользуемого кэш-пространства из-за кэширования целых экстентов даже в случае высоких показателей попадания только для некоторых из своих частей. [6] [10]

Режимы работы, поддерживаемые dm-cache, — это обратная запись , которая используется по умолчанию, сквозная запись и сквозная запись . В режиме обратной записи запись в кэшированные блоки осуществляется только на устройство кэширования, тогда как блоки на исходном устройстве помечаются как «грязные» в метаданных. В режиме сквозной записи запросы на запись не возвращаются как выполненные до тех пор, пока данные не достигнут как источника, так и устройства кэша, при этом чистые блоки не помечаются как грязные. В режиме сквозной работы все чтения выполняются непосредственно с исходного устройства, минуя кэш, а все записи идут непосредственно на исходное устройство; любые попадания в кэш также приводят к аннулированию кэшированных блоков. Режим сквозной передачи позволяет активировать гибридный том, когда неизвестно, что состояние кэш-устройства соответствует состоянию исходного устройства. [6] [11]

Скорость миграции данных, которую dm-cache выполняет в обоих направлениях (т. е. повышение и понижение уровня данных), может быть ограничена до настроенной скорости, чтобы можно было сохранить регулярный ввод-вывод на исходные и кэш-устройства. Вывод из эксплуатации гибридного тома или уменьшение размера кэш-устройства требует использования политики очистки , которая эффективно сбрасывает все блоки, помеченные в метаданных как «грязные», с кэш-устройства на исходное устройство. [6] [7]

Политики кэширования

[ редактировать ]

По состоянию на август 2015 г. и версия 4.2 ядра Linux, [12] Следующие три политики кэширования распространяются вместе с основной линией ядра Linux, из которых dm-cache по умолчанию использует политику стохастической многоочередности : [6] [7]

многоочередность (мк)
Политика многоочередности (mq) имеет три набора по 16 очередей , в которых первый набор используется для записей, ожидающих кэша, а остальные два набора для записей, уже находящихся в кэше, причем последние разделены, поэтому чистые и грязные записи принадлежат каждой из два комплекта. Возраст записей кэша в очередях зависит от связанного с ними логического времени. Выбор записей, попадающих в кэш (т. е. продвигающихся по службе), основан на переменных пороговых значениях, а выбор очереди основан на количестве попаданий записи. Целью этой политики является учет различных затрат на промахи в кэше и автоматическая корректировка различных шаблонов нагрузки.
Эта политика внутренне отслеживает последовательные операции ввода-вывода , чтобы их можно было маршрутизировать по кэшу, с различными настраиваемыми пороговыми значениями для различения случайных операций ввода-вывода и последовательных операций ввода-вывода. В результате исходному устройству приходится выполнять большие непрерывные операции ввода-вывода, поскольку такие шаблоны доступа к данным подходят для жестких дисков и позволяют избежать нежелательной аннулирования кэша.
стохастическая множественная очередь (smq)
Политика стохастической многоочередности (smq) работает аналогично политике многоочередности , но для ее работы требуется меньше ресурсов; в частности, он использует существенно меньшие объемы оперативной памяти для отслеживания кэшированных блоков. Он также заменяет подсчет попаданий из политики нескольких очередей очередью «горячей точки» и принимает решения о повышении и понижении уровня данных на основе самого последнего использования (LRU). В результате эта политика обеспечивает более высокую производительность по сравнению с политикой нескольких очередей , лучше автоматически адаптируется к различным шаблонам нагрузки и исключает настройку различных пороговых значений.
чище
Политика очистки записывает обратно на исходное устройство все блоки, помеченные в метаданных как «грязные». После завершения этой операции гибридный том можно вывести из эксплуатации или уменьшить размер кэш-устройства.

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

[ редактировать ]

Менеджер логических томов включает в себя lvmcache, который предоставляет оболочку для dm-cache интегрирован с LVM. [13]

См. также

[ редактировать ]
  • bcache - кеш блочного уровня ядра Linux, разработанный Кентом Оверстритом.
  • Flashcache — компонент дискового кэша для ядра Linux, первоначально разработанный Facebook.
  • Гибридный накопитель - устройство хранения данных, сочетающее в себе технологии хранения данных на основе флэш-памяти и вращающихся магнитных носителей.
  • ReadyBoost - программный компонент кэширования диска в Windows Vista и более поздних операционных системах Microsoft.
  • Технология Smart Response (SRT) — запатентованный механизм кэширования дискового хранилища, разработанный Intel для своих чипсетов.
  • ZFS – межоперационная система управления хранилищем с аналогичной встроенной поддержкой устройств кэширования (L2ARC).
  1. ^ Петрос Кутупис (25 ноября 2013 г.). «Продвинутые методы кэширования жесткого диска» . Linux-журнал . Проверено 2 декабря 2013 г.
  2. ^ «dm-cache: динамическое кэширование хранилища на уровне блоков» . Visa.cs.fiu.edu . Архивировано из оригинала 18 июля 2014 года . Проверено 24 июля 2014 г.
  3. ^ Дулькардо Артеага; Дуглас Отстотт; Мин Чжао (16 мая 2012 г.). «Динамическое управление кэшем на уровне блоков для систем облачных вычислений» . Visa.cs.fiu.edu . Архивировано из оригинала (PDF) 3 декабря 2013 года . Проверено 2 декабря 2013 г.
  4. ^ Дулькардо Артеага; Мин Чжао (21 июня 2014 г.). «Клиентское флэш-кэширование для облачных систем» . Visa.cs.fiu.edu . АКМ . Архивировано из оригинала (PDF) 6 сентября 2015 года . Проверено 31 августа 2015 г.
  5. ^ «Документация Red Hat Enterprise Linux 6, Приложение A. Устройство сопоставления устройств» . Красная шляпа . 8 октября 2014 года . Проверено 23 декабря 2014 г.
  6. ^ Jump up to: а б с д и ж г Джо Торнбер; Хайнц Мауэльсхаген; Майк Снитцер (20 июля 2015 г.). «Документация по ядру Linux: Documentation/device-mapper/cache.txt» . ядро.орг . Проверено 31 августа 2015 г.
  7. ^ Jump up to: а б с Джо Торнбер; Хайнц Мауэльсхаген; Майк Снитцер (29 июня 2015 г.). «Документация по ядру Linux: Documentation/device-mapper/cache-policies.txt» . ядро.орг . Проверено 31 августа 2015 г.
  8. ^ Эрик Ван Хенсберген; Мин Чжао (28 ноября 2006 г.). «Динамическая политика кэширования диска для сетей хранения данных» (PDF) . Отчет об исследовании IBM. ИБМ . Проверено 2 декабря 2013 г.
  9. ^ «Ядро Linux 3.9, раздел 1.3. Устройства SSD-кэша» . kernelnewbies.org . 28 апреля 2013 года . Проверено 7 октября 2013 г.
  10. ^ Джейк Эдж (1 мая 2013 г.). «LSFMM: Кэширование – dm-cache и bcache» . LWN.net . Проверено 7 октября 2013 г.
  11. ^ Джо Торнбер (11 ноября 2013 г.). «Дерево исходного кода ядра Linux: kernel/git/torvalds/linux.git: кэш dm: добавить сквозной режим» . ядро.орг . Проверено 6 февраля 2014 г.
  12. ^ Джонатан Корбет (1 июля 2015 г.). «4.2 Объединение окна, часть 2» . LWN.net . Проверено 31 августа 2015 г.
  13. ^ Red Hat, Inc. «lvmcache — кэширование LVM» . Страницы руководства Debian. Кэш горячей точки для чтения и записи с использованием модуля ядра dm-cache.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 631fecf22fc78638ed1fe0709bf903fd__1710618240
URL1:https://arc.ask3.ru/arc/aa/63/fd/631fecf22fc78638ed1fe0709bf903fd.html
Заголовок, (Title) документа по адресу, URL1:
dm-cache - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)