Flashcache - Flashcache

Flashcache это дисковый кеш компонент для Ядро Linux, первоначально разработанная Facebook с апреля 2010 года и выпущен как Открытый исходный код в 2011 году. С января 2013 года существует форк Flashcache под названием EnhanceIO и разработан sTec, Inc.[1]

Flashcache работает с использованием флэш-память, а флешка, SD Card, CompactFlash или любой другой переносной флеш-накопитель в качестве постоянного кэша с обратной записью. Внутренний SSD также может использоваться для повышения производительности.

Обзор

Использование флэш-памяти (Память NAND devices) для кэширования позволяет ядру Linux обслуживать произвольный ввод-вывод диска с лучшей производительностью, чем без кеша. Это кеширование применяется ко всему содержимому диска, а не только к файлу подкачки или системным двоичным файлам. Устройства на основе флэш-памяти обычно намного быстрее вращающихся жестких дисков для произвольного ввода-вывода, но с меньшим преимуществом или даже медленнее при последовательном чтении / записи. По умолчанию flashcache кэширует все операции ввода-вывода с полным размером блока, но ее можно настроить для кэширования только случайных операций ввода-вывода при игнорировании последовательного ввода-вывода.[2]

Подобная технология существует в Майкрософт Виндоус в качестве ReadyBoost поскольку Виндоус виста.

Выполнение

Flashcache построен на основе ядра Linux. сопоставитель устройств. Структура данных кеша - это набор-ассоциативный хеш-таблица, в котором кеш разделен на несколько наборов фиксированного размера (сегментов), используя линейное зондирование в наборе, чтобы найти блоки. Уровень сопоставления устройств разбивает все запросы ввода / вывода на блоки размером до передачи запросов на уровень кеширования.[нужна цитата ]

Когда происходит запрос на запись, соответствующий блок кэша помечается как грязный; грязные блоки кэша лениво записываются на диск в фоновом режиме. Есть несколько параметров для управления обратная запись policy: dirty-threshold, idleness и смежность с другими грязными блоками, которые будут записаны обратно.[нужна цитата ]

Ограничения

Есть несколько ограничений, накладываемых реализацией flashcache:[нужна цитата ]

Атомарность
Запись блоков кэша в настоящее время не является атомарной.
Поддержка TRIM
ATA ПОДРЕЗАТЬ команды для оптимизации флеш-памяти пока не поддерживаются.
Защита от загрязнения кеша
Процесс можно пометить как не кэшируемый, чтобы его запросы не кэшировались flashcache; однако, если процесс, который пометил себя как некэшируемый, умирает, flashcache не имеет возможности его очистить.
Выравнивание
Использование устройства сопоставления приводило к проблемам с производительностью кэширования и отсутствию кеширования записей, размер которых не кратен 4 КиБ. В первую очередь это касается гипервизора Xen. Таким образом, EnhanceIO отошла от интеграции устройства сопоставления устройств, что привело к повышению производительности в неоптимальных случаях использования.[нужна цитата ]
Влияние задержки чтения при чтении
в режиме обратной записи все операции записи обходят кеш для обеспечения высокой согласованности. Текущая реализация будет получать чтения через устройство SSD, а затем доставлять их фактическому считывателю. Это означает, что ранее некэшированные блоки всегда должны сначала переходить на устройство SSD, что вызывает постоянный ввод-вывод записи. Это не проблема для корпоративных SSD или устройств PCIe высокого уровня, которые использует facebook, но снижает производительность на SSD более низкого уровня.
Фаза разогрева кэша чтения с обратной записью
в режиме обратной записи FlashCache не имеет информации для сравнения возраста кешированных страниц с данными на диске. (1) Поскольку устройство могло быть смонтировано вне FlashCache (2) Поскольку в этом режиме записи не отслеживаются. Это приводит к пустому кешу после каждой активации тома (т. Е. Перезагрузки). Производительность будет снижаться до тех пор, пока все горячие области не будут кэшированы.

Смотрите также

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

  1. ^ EnhanceIO: новое кэширование твердотельных накопителей для Linux
  2. ^ Мохан Сринивасан. «Flashcache: кэш блока с обратной записью для Linux».

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