Як я можу використовувати свій маленький SSD як кеш-пам'ять для більшого жорсткого диска?


58

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

ExpressCache інтелектуально та автоматично поєднує в собі найкращі атрибути SSD та HDD без будь-яких зусиль чи попередніх необхідних знань від користувача, тому користувачі отримують найкращі з обох країн; динамічні показники та масштабована потужність. Оскільки SSD-пам’яті розміром до 4 Гб можуть бути використані, це забезпечує надзвичайно доступне рішення для виробників.

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

Однак цей продукт є лише OEM !

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

Тож я запитую, чи хтось знає якесь програмне забезпечення, яке це робить, або для Windows, або для Linux. Або якщо ви вважаєте, що це погана ідея, я хотів би знати чому.

Примітка: ReadyBoost не дуже підходить для цього. Він побудований з припущенням, що запис на диску є дійсно дорогим, дуже мало впливає на системи з великою кількістю оперативної пам’яті, і не масштабує належним чином, якщо ваш SSD становить 100 ГБ +.


PrimoCache (для Windows) може це зробити; вона спеціалізується на використанні оперативної пам’яті в якості кешу, але може використовувати розділ SSD як кеш-пам'ять L2 - я не вірю, що це обмежений розмір, і він говорить, що це може прискорити навіть час завантаження (якщо ви використовуєте SSD, а не тільки ОЗП).
BrainSlugs83

Відповіді:


52

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

У Windows:

Найкраща реалізація - NVelo: Dataplex - в ньому є кешування читання та кешування додаткового запису. На жаль, як ExpressCache, він доступний лише для оригіналів оригіналу. Найдешевший спосіб отримати це придбати OCZ SSD, який пакує адаптер PCIE з невеликим SSD і використовує програмне забезпечення dataplex для кешування наявного жорсткого диска.

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

Якщо ви просто прагнете досягти максимальної віддачі від IOPS ціною довговічності запису (ідеально чудово у поєднанні з UPS, наприклад), альтернативою може бути щось на зразок: SuperCache - для цього буде використовуватися лише оперативна пам’ять, а не SSD. Але на відміну від інших, щасливо перевищить 100 000 IOPS на товарному обладнання. Наприклад, дуже корисно для кешування блокового пристрою, що містить індекси бази даних. По суті, забезпечує RAM-диск як продуктивність для будь-якого розміру гучності (якщо припустити, що базовий пристрій може бути в курсі гучності запису).

В Linux все трохи приємніше:

Як згадувалося в попередньому плакаті, у вас є Flashcache - він працює досить добре, але його продуктивність сильно залежить від вашої навантаження. У багатьох випадках із слабким місцем доступу це не буде так добре, як ви могли очікувати. Не впевнений, чому це так, але для більшості навантажень це чудовий варіант.

Найкращий варіант (хоча код все ще не зовсім «готовий до виробництва») - це bcache (більше інформації тут , хоча частина з них, якщо застаріла) - має найкращі показники будь-якого кеша SSD, який я ще пробував, і на відміну від усіх інших згадані параметри підтримують кешування декількох блокових пристроїв в одному кеші. Він також підтримує (хоча я особисто цього не пробував, можливо, це ще не працює) кілька кеш-пристроїв, тому ви можете використовувати кілька дешевших SSD для максимізації вашого IOPS. Код знаходиться у сховищі git: git: //evilpiepirate.org/~kent/linux-bcache.git . Говорять про об'єднання його в наступний випуск ядра, хоча це ще не визначено напевно.

Особисто я вважаю, що найкращим варіантом є bcache (моє навантаження в основному пов'язане з базою даних, хоча я також кешую свій основний ноутбук у повному обсязі). На мій досвід, послідовна пропускна здатність жорсткого диска часто є вузьким місцем, оскільки кеш швидко заповнюється, а жорсткий диск повинен записувати кешовані сектори, тому чим швидше, тим краще. Це, звичайно, для великого навантаження для запису, при більш збалансованому навантаженні читання-запис речі, ймовірно, будуть іншими.

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


2
Дякую за чудову відповідь! Що стосується швидкості «вигорання», я вважаю, що це головна причина, що більшість цих продуктів є лише оригінальними виробниками, наприклад, OCZ Synapse (кеш-накопичувач SSD у комплекті з Dataplex) на 50% перевищений ...
haimg

2
@Supercilious Чому б не просто використовувати SLC або eMLC SSD? Це повинно бути більш ефективним (і, безумовно, більш надійним), ніж часта заміна ненадійного спалаху MLC.
Майлз Еріксон,

6
@Supercilious Тут ви мене втрачаєте. Трохи більша довговічність? Довговічність спалаху SLC та eMLC на порядок більше, а не трохи більше.
Майлз Еріксон,

1
@Firebug Я деякий час був неактивним у стеці, але відповідь, яку я опублікував, стоїть. Незважаючи на те, що нові SSD-диски пропонують набагато більшу витривалість при записі, вони все ще виходять з ладу досить швидко. У своїх машинах (в основному HP DL360 G9 + деякий Lenovo) я прогаряю десятки SSD-дисків для кожного механічного приводу SAS або SATA. У 2017 році я в середньому склав 8 місяців життя від своїх жорстких дисків Samsung SM863a, які є найкращими, які я знайшов. Це абсолютно добре і цілком коштує витрат на мою завантаженість, але його варто мати на увазі та постійну активність запису, що знищить будь-який SSD протягом року.
Чудовий

1
@Firebug Так, все важке підняття виконується на моїх серверах (в основному HP DL360 Gen9), а завантаженість - 30% / 70% читання / запису, а жорсткі диски в основному забиваються 24/7 зі швидкістю 300-350MB / s з рідкісними піки понад 500 Мб / с. Усі введення-виведення є випадковим розміром блоку 64 КБ та випадковими об’ємними TRIM-кодами всього SSD. Під час використання настільних комп’ютерів знадобиться роки, щоб знищити ці центри даних, але споживчі SSD мають 180-300 ТБ ТБВ, що все ще досить низький ІМО.
Чудовий

10

Існує дуже цікава програма для Linux, яку використовують дуже зайняті сервери:

https://github.com/facebook/flashcache

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


5

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

Мабуть, найкращого ефекту ви досягнете, встановивши всю ОС та програмне забезпечення на SSD, зберігаючи масу даних на вашому жорсткому диску.

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


1
Мій SSD - 120 Гб. Хоча цього достатньо для робочого набору або кешу , його точно не вистачає для розміщення всіх моїх системних файлів + додатків. По-друге, я не хочу зберігати, скажімо, зразок коду MSSDK (читати рідко) на SSD та власний код, до якого отримують доступ 100 разів на день, на диску. Крім того, мені знадобляться два SSD для RAID - я ніколи не довіряю свої дані лише одному диску, будь то магнітний або твердий стан ...
haimg

2
Ви можете використовувати символьні посилання та перемістити кеш MSSDK / Windows Windows / тощо на свій жорсткий диск (маючи символічні посилання, що вказують на нові місця з необхідних шляхів на вашому системному диску); і покладіть власний код на SSD (його частина, яка потребує швидкого випадкового доступу). І використання резервного копіювання, ймовірно, буде кращим рішенням, ніж покладатися на RAID.
пенарт

3
+1 для цього рішення. Насправді використання SSD дасть набагато кращі показники. Навряд чи буде значна користь від ще одного рівня кешу, тоді як використання SSD для вашого системного розділу буде.
Джессі

1
Я використовую ssd для системних файлів і hdd для домашньої папки. Я помітив, що hdd - це шийка пляшки, тоді потрібно прочитати з нього багато файлів, fe 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, щоб він працював кешем для вбудованого диска 1tb (де мій VHD). Тада! Багато працює і прискорює мої віртуальні машини! :)

Я сподіваюся, що остаточний реліз буде доступним $$$ ...


3
Чи є у вас посилання на це програмне забезпечення?
haimg

Цікаво, чи мав він на увазі "FancyCache" (тепер відомий як PrimoCache)? - Це було в бета-версії (а кінцева ціна невідома) приблизно про час публікації цієї відповіді (IIRC). Але минуло два роки, і він має 21 бал, тому я сумніваюся, що він коли-небудь знову ввійде та скаже нам. : - /
BrainSlugs83

2

eBoostr - це програма, яка кешує велику частину регулярно використовуваних програм, щоб пришвидшити вашу систему. Зазвичай він призначений для використання USB-накопичувачів або невикористаної оперативної пам’яті, але немає жодної реальної причини замість цього не використовувати SSD.

Він доступний для всіх основних версій Windows і дуже схоже на те, що ви хочете.

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

Детальніше: http://www.eboostr.com/feature


2

Хоча, безумовно, можна завантажити цілу операційну систему та програми на один SSD, ви, мабуть, не повинні. З часом 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

Можна використовувати Windows I / O технології ReadyDrive та ReadyBoost . Оскільки ці технології датуються ще до введення SSD, мало інформації про те, чи працюють вони з SSD або наскільки добре.

Для ReadyBoost див. Підказку щодо того, як я можу використовувати свій SSD як кеш-диск ReadyBoost? , хоча ця інша нитка стверджує протилежне.

ReadyDrive - це функція Windows Vista, яка дозволяє комп'ютерам Windows Vista або новішим комп'ютерам, оснащеним гібридним накопичувачем або іншими кешами флеш-пам’яті (наприклад, Intel Turbo Memory), швидше завантажуватися та відновлюватися зі сну за менший час.

Можна також розмістити файл сторінки на SSD, хоча з обмеженим очікуваним покращенням, якщо системної пам’яті достатньо.

Найкраще покращення буде, як зауважив penartur, від встановлення Windows на SSD.


1
Частота відмов SSD значно нижча, ніж у традиційних жорстких дисків - можливо, колись це було навпаки, але не під час цього питання та відповіді. Кілька років тому виникала купа занепокоєння циклами стирання SSD, і всі, здавалося, тимчасово забули, що жорсткі диски надзвичайно крихкі і виходять з ладу регулярно, часто без попередження. Побоювання щодо циклів запису майже ніколи не викликає проблем із сучасним рівнем зносу, якщо ви не пишете терабайт даних щотижня протягом декількох років.
thomasrutter

1

Завантажте ExpressCache

Ви шукали в Google ExpresCache? Я бачу, що хтось може його завантажити

  • SanDisk - посилання праворуч; працює тільки з SSD-дисками SanDisk
  • Lenovo - посилання нижче в путівнику; може також мати апаратну залежність

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


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

0

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

Здається, що зараз FancyCache є єдиним життєздатним інструментом для загального користування / не-oems. Я можу неправильно зрозуміти речі, але я думаю, що щось на кшталт Readyboost на SSD прогорить його цикли запису досить швидко. Для мене ідея полягає у тому, щоб мати лише один лист диска для покриття основного жорсткого диска та SSD, розміщуючи на SSD найчастіше доступні та загалом статичні файли та зберігаючи на жорсткому диску менш часто використовувані та часто модифіковані файли. Це дало б перевагу продуктивності SSD та довгостроковій життєздатності жорсткого диска, а не вимагатиме від користувача спроби врівноважити простір на SSD та жорсткому диску. Потреба в цьому настільки очевидна, як мінімум, для мене, що я приголомшена відсутністю рішень для цієї потреби.


-2

Не названий тут VeloSSD. Я не можу надати репутації agood цьому програмному забезпеченню, оскільки він часто руйнував мої дані, але інший користувач повідомив, що це працює нормально


2
Просто додавання назви продукту до списку продуктів не вважається відповіддю, і ця "світиться рекомендація" не дуже корисна. З трохи більше представників, ви можете опублікувати це як коментар.
fixer1234
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.