56

Я хотел бы использовать (маленький) SSD-диск в качестве кеша для большого жесткого диска. Я понимаю, что есть аппаратные продукты, которые делают это: HighPoint RocketHybrid HBA, Intel SmartResponse и другие. Я нашел только один программный продукт: ExpressCache от Diskeeper:

ExpressCache разумно и автоматически объединяет лучшие атрибуты твердотельных накопителей и жестких дисков без каких-либо усилий или предварительных знаний пользователя, поэтому пользователи получают лучшее из обоих миров; динамическая производительность и масштабируемая емкость. Поскольку могут использоваться твердотельные накопители размером до 4 ГБ, это обеспечивает невероятно доступное решение для производителей.

Состоящий из компонентов пользовательского режима и режима ядра, ExpressCache использует твердотельный накопитель в качестве интеллектуального кэша в сочетании с жестким диском для повышения общей производительности системы и значительного ускорения запуска ПК с Windows, запуска приложений и скорости доступа к данным.

Тем не менее, этот продукт только OEM !

Я искал альтернативы, но безуспешно ... Я не могу понять это: звучит как отличная идея, никакого дополнительного оборудования не требуется, и это может реально повысить производительность диска, не тратя целое состояние.

Итак, я спрашиваю, знает ли кто-нибудь программное обеспечение, которое делает это, для Windows или Linux. Или, если вы думаете, что это плохая идея, я хотел бы знать, почему.

Примечание: ReadyBoost не очень подходит для этого. Он построен на предположении, что запись на диск действительно дорогая, мало влияет на системы с большим количеством оперативной памяти и не масштабируется должным образом, если ваш SSD имеет объем более 100 ГБ.

10 ответов10

51

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

В Windows:

Лучшая реализация от NVelo: Dataplex - имеет кэширование чтения и опциональное кэширование записи. К сожалению, как и ExpressCache, он доступен только OEM-производителям. Самый дешевый способ получить его - купить OCZ SSD, который упаковывает адаптер PCIE с небольшим SSD и использует программное обеспечение dataplex для кэширования вашего существующего жесткого диска.

Однако существуют и чистые программные реализации: FancyCache - работает так, как если бы вы ожидали выполнения кэширования чтения и записи на уровне блоков. Он в основном существует как кэш-память, но недавно получил поддержку SSD-кэша второго уровня (немного похожего на ZFS L2ARC), который может быть произвольно большим.

Если вы просто хотите максимально использовать IOPS за счет долговечности записи (например, идеально подходит для ИБП), альтернативой может быть что-то вроде: SuperCache - при этом будет использоваться только ОЗУ, но не SSD. Но, в отличие от других, к счастью превысит 100 000 операций ввода-вывода в секунду на обычном оборудовании. Очень полезно, например, для кэширования блочного устройства, содержащего индексы базы данных. По сути, обеспечивает производительность, подобную RAM-диску, для тома любого размера (при условии, что базовое устройство может идти в ногу с объемом записи).

В Linux все немного лучше:

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

Наилучший вариант (хотя код все еще не совсем "готов к работе") - это bcache (более подробная информация здесь, хотя некоторые из них устарели) - он имеет лучшую производительность среди всех SSD-кешей, которые я когда-либо пробовал, и в отличие от всех остальных упомянутые опции поддерживают кеширование нескольких блочных устройств в одном кеше. Он также поддерживает (хотя я лично не пробовал это, возможно, он еще не работает) несколько кеш-устройств, поэтому вы можете использовать несколько более дешевых SSD для максимизации IOPS. Код находится в репозитории git: git://evilpiepirate.org/~kent/linux-bcache.git. Ходят разговоры о том, чтобы объединить его с следующим выпуском ядра, хотя это еще точно не решено.

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

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

10

Существует очень интересное программное обеспечение для Linux, которое используется очень загруженными серверами:

https://github.com/facebook/flashcache

На SATAII, 8 магнитных ротационных дисков в конфигурации RAID6 я получаю серьезное повышение производительности. Произвольное чтение с SSD-устройства SATAIII flashcache (чтение 540, запись 420) насыщает мою шину SATAII почти до 90-95% - у меня 280 МБ чтения (в пиковое время), 270 МБ записи (только при моделируемой нагрузке ... никогда не достигалось в производстве) , Это длится около полугода. Дисковод пишет ... 20-30MB/s - использовать свободное время ввода / вывода ...

5

Насколько велик ваш SSD?

Вероятно, наилучшего эффекта вы достигнете, установив всю ОС и программное обеспечение на SSD, сохраняя при этом большое количество данных на жестком диске.

Если у вас маленький SSD, то было бы полезно поместить на него файл подкачки. Я сомневаюсь, что Windows поместит большую часть ваших файлов в кэш-память, но, по крайней мере, она позволит вам использовать память недавно использованных приложений и кэш-память файлов в ОЗУ, одновременно обеспечивая быстрое переключение на не совсем новые используемые приложения (которые будут находиться в файле подкачки, который, в свою очередь, на SSD).

2

Хотя, безусловно, можно загрузить всю операционную систему и приложения на одном SSD, вы, вероятно, не должны этого делать. Со временем твердотельные накопители замедляются непрерывной перезаписью и должны быть обновлены, чтобы ускорить их резервное копирование. Вам лучше использовать самый быстрый жесткий диск, который вы можете найти, например, диск SATA 600 Гбит / с, и получить материнскую плату или другой контроллер, который поддерживает кэширование SSD на аппаратном уровне. Все материнские платы Asus ROG Maximus поддерживают эту функцию встроенной.

Однако, пока я не собрал эту новую систему, я нашел способ получить некоторую выгоду от SSD. Я построил кэш-память на SSD, и, хотя на моем основном жестком диске она есть, Windows, похоже, автоматически использует более быстрый SSD. Я также переместил весь свой кэш Internet Explorer на SSD, что ускорило серфинг и интернет-видео как минимум 2 или 3 раза.

Я буду строить свою новую систему на материнской плате Asus Maximus VI Hero с процессором Intel i7 4-го поколения в формате сокета 1150. Кажется, это хороший уровень производительности, не тратя тысячи, чтобы добраться туда. Предполагается, что общая стоимость составит от 800 до 900 долл. США, включая новую версию Windows.

2

FancyFlash сделал свою работу. У меня есть собственный сервер Hyper-V R2 @home для моих лабораторий, и я получил OCZ Revo Hybrid PCIe. К сожалению, драйвер встроенного кэша работает только с Windows 7. Нет плана для Windows Server 2008 R2. Поэтому я установил драйвер FancyFlash на свой хост Hyper-V и сконфигурировал мой SSD на Revo Hybrid, чтобы он действовал как кэш для встроенного диска емкостью 1 ТБ (где находится мой VHD). TaDa! Работает и много разгоняет мои виртуальные машины! :)

Я надеюсь, что финальный релиз будет доступным $$$ ...

2

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

Он доступен для всех основных версий Windows и очень похож на то, что вам нужно.

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

Узнайте больше: http://www.eboostr.com/feature

2

Можно использовать технологии ввода-вывода Windows ReadyDrive и ReadyBoost. Поскольку эти технологии появились еще до появления SSD, мало информации о том, работают ли они с SSD или насколько хорошо.

Для ReadyBoost см. Некоторые советы о том, как я могу использовать мой SSD в качестве кеш-диска ReadyBoost?, хотя этот другой поток утверждает обратное.

ReadyDrive - это функция Windows Vista, которая позволяет компьютерам с ОС Windows Vista или более поздней версии, оснащенным гибридным диском или другими кэшами флэш-памяти (например, Intel Turbo Memory), загружаться быстрее и выходить из спящего режима за меньшее время.

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

Как отмечают в Penartur, наилучшим улучшением станет установка Windows на SSD.

1

Скачать ExpressCache

Вы искали в Google ExpresCache? Я вижу, можно скачать его с

  • SanDisk - ссылка справа; работает только с твердотельными накопителями SanDisk
  • Lenovo - ссылка ниже в руководстве; может иметь аппаратную зависимость, а также

Особенно в Lenovo, вы можете скачать версию для x86 или x64. Sandisk, кажется, просто предлагает ExpressCacheSetup.exe, и я не знаю, какую архитектуру он поддерживает. Может быть один, может оба ...

0

ExpressCache является только OEM-продуктом. Я достаточно уверен, что он имеет внутренний контроль, который не позволяет использовать его на оборудовании, отличном от лицензированных производителей.

Похоже, что в данный момент FancyCache является единственным жизнеспособным инструментом для общего использования / не-oems. Я могу неправильно понять вещи, но я думаю, что что-то вроде readyboost на SSD довольно быстро прожигает циклы записи. Для меня идея состоит в том, чтобы иметь только одну букву диска, которая бы покрывала основной жесткий диск и твердотельный накопитель, помещая наиболее часто используемые и обычно статические файлы на твердотельный накопитель и сохраняя менее часто используемые и часто изменяемые файлы на жестком диске. Это дало бы выигрыш в производительности SSD и долгосрочную жизнеспособность жесткого диска и не требовало бы от пользователя попытки балансировать пространство на SSD с объемом жесткого диска. Необходимость в этом настолько очевидна, по крайней мере, для меня, что я ошеломлен отсутствием решений этой потребности.

-2

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .