Как я могу использовать свой маленький SSD в качестве кеша для жесткого диска большего размера?

58

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

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

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

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

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

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

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

haimg
источник
PrimoCache (для Windows) может сделать это; он специализируется на использовании ОЗУ в качестве кеша, но может использовать раздел SSD в качестве кеша L2 - я не верю, что он ограничен в размерах, и говорит, что он может ускорить время загрузки даже (при условии, что вы используете SSD, а не только БАРАН).
BrainSlugs83

Ответы:

52

Есть несколько способов использовать 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. SSD, хотя и очень очень быстрые, просто не очень долговечные, поэтому ожидайте заменять их каждые несколько месяцев.

высокомерный
источник
2
Спасибо за отличный ответ! Что касается скорости «выгорания», я думаю, что теперь это основная причина того, что большинство этих продуктов предназначены только для OEM-производителей, например, OCZ Synapse (SSD-кэш в комплекте с Dataplex) переоценен на 50% ...
haimg
2
@Supercilious Почему бы просто не использовать SSD SLC или eMLC? Это должно быть более эффективным (и, конечно, более надежным), чем частая замена ненадежной флэш-памяти MLC.
Майлз Эриксон
6
@Supercilious Вот где ты меня теряешь. Чуть больше долголетия? Срок службы вспышки SLC и eMLC на несколько порядков больше, а не чуть больше.
Майлз Эриксон
1
@ Firebug Я был неактивен в стеке в течение некоторого времени, но ответ, который я отправил, стоит. В то время как новые твердотельные накопители предлагают гораздо более высокую стойкость при записи, они все равно довольно быстро выходят из строя. На моих машинах (в основном HP DL360 G9 + некоторые Lenovo) я записываю десятки SSD для каждого механического диска SAS или SATA. В 2017 году средняя продолжительность жизни моих твердотельных накопителей Samsung SM863a составляла 8 месяцев, которые являются лучшими из всех найденных мной. Это вполне нормально и полностью оправдывает мою рабочую нагрузку, но стоит помнить, что постоянная запись будет убивать любой SSD в течение года.
Превосходно
1
@Firebug Да, все тяжелые работы выполняются на моих серверах (в основном HP DL360 Gen9), и рабочая нагрузка составляет 30% / 70% для чтения / записи, а SSD в основном работают 24/7 со скоростью 300-350 МБ / с, с редкими пики более 500 МБ / с. Все операции ввода / вывода являются случайными с размером блока 64 КБ и временными объемными TRIM для всего SSD. При использовании настольных ПК потребуются годы, чтобы уничтожить эти твердотельные накопители в центре обработки данных, но потребительские твердотельные накопители имеют 180-300 ТБ ТБТ, что все еще довольно низкое значение IMO.
Превосходно
10

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

https://github.com/facebook/flashcache

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

Матей Ковач
источник
5

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

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

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

penartur
источник
1
Мой SSD - 120 ГБ. Хотя этого достаточно для рабочего набора или кэша , этого явно недостаточно для размещения всех моих системных файлов + приложений. Во-вторых, я не хочу хранить, скажем, пример кода MSSDK (читайте редко) на SSD и мой собственный код, доступ к которому осуществляется 100 раз в день, на диске. Более того, мне понадобятся два SSD для RAID - я никогда не доверяю своим данным только одному диску, будь то магнитный или твердотельный ...
haimg
2
Вы можете использовать символические ссылки и перемещать кэш установщика MSSDK / Windows / etc на свой жесткий диск (имея символические ссылки, указывающие на новые местоположения из необходимых путей на системном диске); и поместите свой собственный код на SSD (ту часть, которая требует быстрого произвольного доступа). И использование резервных копий, вероятно, было бы лучшим решением, чем полагаться на RAID.
penartur
3
+1 за это решение. На самом деле использование SSD даст гораздо лучшую производительность. Маловероятно, что будет существенный выигрыш от еще одного уровня кэширования, тогда как использование SSD для системного раздела принесет пользу.
Джесси
1
Я использую ssd для системных файлов и hdd для домашней папки. Я заметил, что hdd - это горлышко бутылки, тогда вам нужно прочитать много файлов с него, например, fire fox сначала запускается после загрузки.
Aisbaa
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! Работает и ускоряет мои виртуальные машины много! :)

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

Spider_s
источник
3
У вас есть ссылка на это программное обеспечение?
Haimg
Интересно, имел ли он в виду «FancyCache» (теперь известный как PrimoCache)? - Это было в бета-версии (и окончательная цена неизвестна) во время публикации этого ответа (IIRC). Но прошло два года, и у него 21 очко, поэтому я сомневаюсь, что он когда-нибудь снова войдет в систему и расскажет нам. : - /
BrainSlugs83
2

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

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

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

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

Мокубай
источник
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.

JDinFL
источник
2

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

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

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

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

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

harrymc
источник
1
Частота отказов SSD значительно ниже, чем у традиционных жестких дисков - возможно, когда-то это было наоборот, но не во время этого вопроса и ответа. Несколько лет назад было много проблем с циклами записи-стирания SSD, и все, казалось, временно забыли, что жесткие диски чрезвычайно хрупкие и регулярно выходят из строя, часто без предупреждения. Забота о циклах записи почти никогда не является проблемой современного выравнивания износа, если вы не пишете терабайты данных каждую неделю в течение нескольких лет.
Томасруттер
1

Скачать ExpressCache

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

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

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

Роберт Коритник
источник
Оба требуют оборудования от соответствующих поставщиков. Программное обеспечение не будет установлено правильно, если оно не пройдет проверку оборудования.
вс
0

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

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

Tumbleweed_Biff
источник
-2

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

Вандер
источник
2
Просто добавление названия продукта в список продуктов не считается ответом, и эта «яркая рекомендация» не очень полезна. С немного большим количеством представителей, вы можете опубликовать это как комментарий.
fixer1234