Які переваги / недоліки різних варіантів кешування керування від SSD до HDD (dm-кеш, flashcashe…)?


23

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

  • dm-кеш (від Redhat - в ядрі 3,9, тому він повинен бути в ubuntu 13.10)
  • Flashcache (розроблений та використаний у Facebook)
  • Bcache (розроблений та використаний Google)
  • EnhanceIO (від STEC; на основі Flashcache)

Чи є помітні відмінності в різних реалізаціях? Який з них найкращий для регулярного використання настільних ПК - для підвищення продуктивності звичайних програм, таких як веб-браузери чи ігри?


Для підвищення продуктивності я виявив, що установка 64-бітного ubuntu працювала чудово, моя машина вийшла навіть швидше, ніж раніше! Також щодо кешу вам слід використовувати кешований компресований кеш із цим пакетом, zram-configякий матиме пріоритет при використанні свопів. І збережіть гру на SDD і протестуйте її. Деякі ігри не будуть працювати набагато швидше, інші працюватимуть чудово! Я вважаю за краще використовувати SDD не кеш-пам'ять через обмеження для запису, але SDD дешевшають, так що вже не так сильно хвилюються :)
Power Aquarius Power

Відповіді:


14

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

Переваги / недоліки

  • Ціна: SSD-диски - це якось дорого
  • Максимальна і загальна ємність: SSD з високою ємністю дуже рідкісні і дорогі
  • Швидкість: тут отримують перевагу SSD-диски
  • Міцність: SSD не має рухомих частин

Найкраще мати гібридну систему, щоб мати найкращі з обох світів (потужність, надійність, швидкість тощо)

Ядро Linux 3.9 (доступне 28 квітня 2013 року) вводить кешування SSD. У картографічному пристрої ядра тепер входить кеш-пам'ять під назвою dm-кеш, яка дозволяє SSD або інший запам'ятовуючий пристрій використовувати як кеш на жорсткому диску. По суті, це прискорює запис даних і зчитування, оскільки дозволяє більш швидкому SSD спочатку кешувати дані, а потім переносити їх на повільніший жорсткий диск.

Джерело: Iwn

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

Джерело: ArchLinux

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

Жорсткі диски - дешеві і великі, SSD - це швидко, але мало і дорого. Не було б непогано, якби ви могли прозоро отримати переваги обох? З Bcache ви можете випити свій торт і з'їсти його теж.

Патчі Bcache для ядра Linux дозволяють використовувати SSD для кешування інших блокових пристроїв. Це аналогічно L2Arc для ZFS, але Bcache також робить кешування зворотного зв'язку (крім того, просто записувати через кешування), і це файнова система agnostic. Він розроблений для того, щоб увімкнути його з мінімальними зусиллями та добре працювати без конфігурації на будь-якій установці. За замовчуванням він не кешуватиме послідовний введення-виведення, лише випадковий зчитування та запис, що SSD-файли мають кращий результат. Це повинно бути придатним для настільних комп'ютерів, серверів, масивів для зберігання високого класу і, можливо, навіть вбудованих.

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

Джерело: Bcache

Bcache має великий недолік і те, що він забирає пам'ять у системи для реалізації кешу.

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

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

Кешування також дозволяє швидше отримати доступ до даних без додаткового накладного адміністрування для придбання та встановлення нових полиць дисків, налаштування нових LUN та переміщення даних до нових LUN. Кешування майже прозоре і вимагає невеликого простою. EnhanceIO заснований на Flashcache.

Джерело: Stec-Inc

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

Блиск EnhanceIO полягає в тому, що він взагалі не потребує проміжного пристрою і може бути приєднаний до будь-якого блокового пристрою під час руху навіть тоді, коли пристрій вже встановлено. Інша надзвичайно класна річ полягає в тому, що ви можете приєднати кеш EnhanceIO не лише до розділу, але до пристрою розділеного блоку, щоб кешувати всі його розділи відразу. Так само, як модулі flashchache enchanceio побудовані за допомогою DKMS і їх можна використовувати зі старими ядрами.

Джерело: Debian

Переваги DM кеша

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

Переваги DM-кешу

Одним недоліком використання кешу DM є те, що операційна система Linux має обмежений простір для зберігання метаданих. Якщо кеш-пам'ять велика і містить безліч маленьких блоків, це додає багато метаданих для збереженої інформації. Щоб вирішити цю проблему, користувач повинен збільшити розмір блоку. Інша можлива проблема полягає в тому, що після збою сервера метадані кеша можуть більше не відповідати вмісту кешу, хоча можна відновити правильну конфігурацію з часом.

Джерело: Доповнення Фрейзера Шермана

Тож із наведеної інформації зрозуміло, що EnhanceIO - це шлях, але, на мою думку, оскільки він заснований на Flashcache, я б пішов із флеш-кешем. Але я обов'язково спробую обох, перш ніж приймати остаточне рішення.


EnhanceIO: драйвер на основі програмного забезпечення кешування EhanceIO SSD, отриманого від проекту Flashcache з відкритим кодом з відкритим кодом, який корисний для використання SSD як кеш-пристроїв для традиційних жорстких дисків. webupd8.org/2013/05/get-better-linux-desktop-performance.html
Касім

Дякую за відповідь! Сподіваємось, EnhanceIO приземлиться в ядро ​​3.10 і буде доступний у наступному випуску Ubuntu.
Улі

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

3
Коментар щодо використання пам'яті bcache є невірним, так само (цитується) щодо конверсії.
Габріель

@Gabriel сміливо змінюйте, але додайте джерело. :)
Мітч

1

Зворотній зв'язок: я встановив стандартні пакети деб-флеш-кеш-пам'яті на Ubuntu близько року тому в режимі зворотного запису для кешування / дому (2 ТБ) на 50 ГБ на SSD. Це вийшло чудово, без проблем. У мене було декілька пов'язаних з X "зависань" (тобто не можна віднести до flashcache) і я кілька разів використовував "Ctrl-Alt-PrtScr REISUB", щоб відновитись без проблем і без корупційних проблем. Я використовував флеш-кеш, тому що: а) були доступні деби;

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