Flashcache

Flashcache

flashcache — модуль для ядра Linux, работающий в стеке Device Mapper, и позволяющий использовать одни блочные устройства для кеширования доступа к другим блочным устройствам. Разработан Facebook и опубликован на условиях лицензии GPL. Изначально предназначался для использования быстрых SSD дисков для кеширования обращения к медленным (но значительно более ёмким и дешёвым) жёстким дискам.

Эффективность применения flashcache зависит от многих факторов, однако в целом можно сказать, что технология помогает в задачах, скорость выполнения которых ограничена вводом-выводом (англ. I/O-bound), с преобладанием операций чтения, а объём рабочего набора данных слишком велик для кеширования в оперативной памяти[1].

Содержание

Принцип работы

Flashcache использует Device Mapper (англ.)русск. (модуль отображения устройств) для создания блочного устройства. При его создании ему передаются два других устройства (как использующих Device Mapper, так и нет). Одно из них является «медленным и большим», второе «маленьким и быстрым» (обычно SSD или блочным RAM-диском). При включённом режиме кеширования каждое обращение к устройству flashcache проверяется на наличие в кеше, и при его наличии в кеше отдаётся оттуда, а не читается с медленного диска. Если же в кеше данные не найдены, то они читаются с медленного диска и записываются в кеш.

Для записи существуют различные политики — в writeback режиме (режим отложенной записи) данные сначала пишутся в кеширующее устройство, а потом уже переносятся оттуда на медленное устройство (переносятся они обычно значительно большими блоками и последовательно, что на порядки поднимает производительность жёстких дисков с медленными операциями произвольного доступа, но относительно высокими скоростями последовательного доступа). Помимо этого, «горячие данные» (часто использующиеся данные) часто перезаписываются, что приводит к ситуации, когда данные несколько раз перезаписываются в кеше, а в реальности, на диск, сохраняются только один раз.

В writethrough режиме (режим сквозной записи) данные сначала записываются на медленный диск, а потом в кеш (в надежде, что их в ближайшее время прочтут).

Кеш поддерживает FILO и FIFO алгоритмы вытеснения данных, кроме того, существует возможность ручного сброса кеша. Кеш в writeback-режиме является персистентным (сохраняется между перезагрузками) и может быть загружен. writethrough и writearound режимы являются неперсистентными, то есть при каждой загрузке кеш нужно создавать заново.

Причины возникновения

Особенностью SSD-дисков является крайне высокая скорость произвольного доступа на чтение. Если собрать все «горячие» данные из большого массива в маленький массив SSD, то общая производительность массива вырастет очень значительно (оценочная производительность SATA диска — 150 IOPS (количество операций ввода-вывода в секунду), SSD накопителя — 10000 IOPS).

По мере распространения SSD, данную идею реализовывали в проприетарных решениях NetApp (FlashCache, ранее PAM II) LSI (Cachecade), Adaptec (MaxIQ). Ключевым недостатком этих решений являлась из завязанность на производителя оборудования. flashcache не накладывает ограничений на используемое оборудование и позволяет создавать конфигурации произвольной сложности (например, использовать стекирование flashcache-устройств).

Аналогичный функционал реализован в ZFS (l2arc), но не для блочных устройств, а на уровне файловой системы.

Недостатки

  • Flashcache не включен в ядро Linux и требует сборки как отдельный модуль,
  • Как у любой технологии кеширования при большом количестве «холодного» (некешированного) чтения производительность может быть ниже, чем у кешируемого устройства. Для «разогрева» кеша может требоваться значительное время[1].

Примечания

Ссылки

Литература

  • Baron Schwartz, Peter Zaitsev, Vadim Tkachenko High Performance MySQL. — O'Reilly Media, 2012. — 826 с. — ISBN 978-1-4493-1428-6, раздел Solid-State Storage — Using Flashcache



Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Полезное


Смотреть что такое "Flashcache" в других словарях:

  • Facebook — Содержание 1 Функции 2 Критика 2.1 Непредотвращение суицида …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»