Каковы преимущества / недостатки различных вариантов кэширования SSD на HDD (dm-cache, flashcashe…)?

23

Существуют различные технологии, доступные для использования SSD в качестве кеша для HHD. Те, о которых я знаю:

  • dm-cache (от Redhat - в ядре 3.9, так должно быть в ubuntu 13.10)
  • Flashcache (разработан и используется Facebook)
  • Bcache (разработан и используется Google)
  • EnhanceIO (от STEC; на основе Flashcache)

Есть ли заметные различия в различных реализациях? Какой из них лучше всего подходит для обычного настольного ПК - для повышения производительности обычных программ, таких как веб-браузеры или игры?

Uli
источник
Для увеличения производительности я обнаружил, что установка 64-битной Ubuntu работала великолепно, моя машина работала даже быстрее, чем раньше! Также, что касается кеша, вы должны использовать ram сжатый кеш с этим пакетом zram-config, который получит приоритет при использовании подкачки. И сохраните игру на SDD и протестируйте ее. Некоторые игры не будут работать намного быстрее, другие будут работать отлично! Я предпочитаю не использовать SDD в качестве кеша из-за ограничения записи, но SDD становятся дешевле, так что это больше не беспокоит :)
Aquarius Power

Ответы:

14

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

Преимущества недостатки

  • Цена: твердотельные накопители стоят дорого
  • Максимальная и общая емкость: SSD-накопители большой емкости очень редки и дороги
  • Скорость: это где SSD получает преимущество
  • Долговечность: SSD не имеет движущихся частей

Лучше всего иметь гибридную систему, чтобы иметь лучшее из обоих миров (емкость, надежность, скорость и т. Д.)

В ядре Linux 3.9 (выпущенном 28 апреля 2013 г.) введено SSD-кэширование. Устройство отображения ядра в ядре теперь включает цель кэширования, называемую dm-cache, которая позволяет использовать SSD или другое устройство хранения в качестве кэша для жесткого диска. Это существенно ускоряет запись и чтение данных, поскольку позволяет более быстрому SSD сначала кэшировать данные, а затем передавать их на более медленный жесткий диск.

Источник: Iwn

Flashcache - это модуль, изначально написанный и выпущенный компанией Facebook (Мохан Сринивасан, Пол Сааб и Вадим Ткаченко) в апреле 2010 года. Это модуль ядра, который позволяет выполнять кеширование записи на диск на другом диске. Это чаще всего используется для кэширования вращательного диска на меньшем твердотельном диске из соображений производительности. Это дает вам скорость SSD и размер стандартного ротационного диска для недавно кэшированных файлов. FlashCache - это блочный кэш обратной записи общего назначения для Linux.

Источник: ArchLinux

Bcache - это кеш блочного уровня ядра Linux. Это позволяет одному или нескольким быстрым дискам, таким как твердотельные накопители на флэш-памяти (SSD), выступать в качестве кэша для одного или нескольких медленных жестких дисков.

Жесткие диски дешевые и большие, твердотельные накопители быстрые, но маленькие и дорогие. Разве не было бы хорошо, если бы вы могли прозрачно получить преимущества обоих? С Bcache вы можете получить свой торт и съесть его тоже.

Патчи Bcache для ядра Linux позволяют использовать SSD для кэширования других блочных устройств. Он аналогичен L2Arc для ZFS, но Bcache также выполняет кэширование с обратной записью (помимо простой записи через кэширование) и не зависит от файловой системы. Он спроектирован так, чтобы его можно было включить с минимальными усилиями и хорошо работать без каких-либо настроек при любой настройке. По умолчанию он не будет кэшировать последовательный ввод-вывод, а только случайное чтение и запись, в которых превосходят твердотельные накопители. Он предназначен для настольных ПК, серверов, высокопроизводительных массивов хранения и, возможно, даже для встраиваемых систем.

Целью проекта является достижение такой же скорости, как SSD и кэшированного устройства (в зависимости от попадания в кэш по сравнению с пропуском и записью по записи и обратной записи) с допустимой погрешностью. Это еще не совсем там, в основном для последовательного чтения. Но тестирование показало, что это решительно возможно, и даже в некоторых случаях сделать лучше - в основном случайные записи.

Источник: Bcache

У Bcache есть большой недостаток - он отнимает память у системы для реализации кеша.

EnhanceIO - это решение, которое работает на уровне приложений, позволяя приложениям использовать преимущества производительности SSD без существенных изменений в ИТ-инфраструктуре. Кэш-память SSD может принести большую часть преимуществ от перехода с жестких дисков на твердотельные накопители за меньшую цену, чем система с полностью твердотельными накопителями. Кэшируемая система, как правило, работает на меньшем энергопотреблении, чем системы на жестких дисках с аналогичной производительностью, что создает дополнительное преимущество за счет снижения требований к охлаждению.

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

Кэширование также обеспечивает более быстрый доступ к данным без дополнительных затрат на администрирование хранилища для приобретения и установки новых дисковых полок, настройки новых LUN и переноса данных в новые LUN. Кэширование практически прозрачно и практически не требует простоев. EnhanceIO основан на Flashcache.

Источник: Stec-Inc

bcache - самый бесполезный из всех, потому что он требует специально подготовленного (отформатированного) раздела данных. Это затрудняет (если возможно) присоединение кеша к существующему разделу с данными, так как потребуется 200% емкости и выполнение длительного перемещения данных, чтобы активировать / деактивировать кеширование.

Блеск EnhanceIO заключается в том, что ему вообще не требуется промежуточное устройство, и его можно подключать к любому блочному устройству на лету, даже если оно уже установлено. Еще одна крутая вещь - вы можете подключить кэш EnhanceIO не только к разделу, но и к многораздельному блочному устройству, чтобы кэшировать все его разделы одновременно. Так же, как модули flashcache enchanceio построены с использованием DKMS и могут использоваться со старыми ядрами.

Источник: Debian

DM Cache Преимущества

Кеши DM используют упрощенную архитектуру, что делает их адаптируемыми и простыми в настройке. Пользователи могут регулировать размер блока и емкость кэша в зависимости от объема данных, которые он должен обрабатывать, или от значения данных. Если конкретное приложение должно хранить большое количество данных в последовательности, пользователи могут настроить кэш для этой цели. Если пользователь хочет записать информацию в базу данных одновременно с кешем, это не помешает работе кеша.

DM Cache Недостатки

Одним из недостатков использования кеша DM является то, что операционная система Linux имеет ограниченное пространство для хранения метаданных. Если кэш большой и включает много маленьких блоков, это добавляет много метаданных для хранимой информации. Чтобы решить эту проблему, пользователь должен увеличить размер блока. Другая возможная проблема заключается в том, что после сбоя сервера метаданные кеша могут больше не соответствовать содержимому кеша, хотя в конечном итоге можно восстановить правильную конфигурацию.

Источник: Дополнения Фрейзера Шермана

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

Митч
источник
EnhanceIO: драйвер, основанный на программном обеспечении EhanceIO SSD для кэширования, созданный на основе проекта Facebook Flashcache с открытым исходным кодом, который полезен для использования твердотельных накопителей в качестве устройств кеширования для традиционных жестких дисков. webupd8.org/2013/05/get-better-linux-desktop-performance.html
Касим
Спасибо за ответ! Надеемся, что EnhanceIO появится в ядре 3.10 и будет доступен в следующем выпуске Ubuntu.
Uli
1
Хорошая запись, но я должен подчеркнуть, что кэш DM полностью безопасен, если вы столкнулись с крахом, вы, конечно, не теряете никаких данных. На практике кэш может быть менее эффективным в течение некоторого времени, пока метаданные не будут восстановлены.
lzap
3
Комментарий об использовании памяти bcache неверен, как и (процитированный) комментарий о преобразовании.
Габриэль
@Gabriel не стесняйтесь изменять, но включайте источник. :)
Митч
1

Обратная связь: я установил стандартные deb-пакеты flashcache на Ubuntu около года назад в режиме обратной записи в кэш / home (2 ТБ) для 50-ГБ среза на SSD. Он прекрасно работал без проблем. У меня было несколько «зависаний», связанных с X (то есть, не относящихся к flashcache), и я несколько раз использовал «Ctrl-Alt-PrtScr REISUB» для восстановления без проблем и проблем с повреждением. Я использовал flashcache, потому что: а) были доступны дабы, и б) он не требовал резервного копирования и восстановления / home.

Kairuri
источник