bcache на md або md на bcache


11

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

Якщо я правильно розумію,

  • SSD * може бути призначений для кешування декількох резервних жорстких дисків, і тоді кешовані пристрої можуть бути RAIDed з mdadm
    або
  • декілька жорстких дисків можуть бути RAIDed в один резервний md-пристрій і SSD, призначений для кешування цього

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

Чи є вагомі причини (наприклад, збільшення резервного сховища чи що-небудь інше) для вибору одного підходу над іншим (для великої некореневої файлової системи, що містить резервні файли VM)?


* під "SSD" я маю на увазі якийсь надмірний пристрій SSD, наприклад RAID1 з двох фізичних SSD


У будь-якому випадку всі диски, на яких bcacheрезервні копії, повинні бути відформатовані bcache- значить, вам доведеться створити mdмасив, відформатувати єдиний отриманий диск повністю як bcacheрезервний розділ, прив'язати його до кеш-пам'яті та перейти звідти, або відформатувати багато з дисками bcache, зв’яжіть їх з їх кеш-накопичувачем, а потім відформатуйте безліч дисків як один масив. В будь-якому випадку є декілька точок можливого відмови, всі вони залежать від сумісності між двома файловими системами - не кажучи вже про кінцеві fs. дивіться тут : прокрутіть вниз .
mikeserv

Завдяки github.com/g2p/blocks ви можете перетворити його на місці, хоча для цього є деякі обмеження.
Адам Річковський

@mikeserv Я все розумію, це сервер, створений для цілей, тому все добре. Що ви маєте на увазі "дві файлові системи"? bcache не є файловою системою - єдиною файловою системою у мене буде XFS на кінцевому пристрої bcache або mdadm (залежно від того, який варіант я виберу).

Дякую @Adam, перетворення на місці - це не проблема для мене.

@mikeserv ні, це не так. Файлові системи (наприклад, btrfs, xfs, extN тощо) живуть поверх блокових пристроїв. mdadm і bcache працюють на рівні блочного пристрою, а не на рівні файлової системи (btrfs плутає проблему з порушенням її шару, але це абсолютно окрема розмова).

Відповіді:


4

Я думаю, кешування всього пристрою md має найбільше сенсу.

Введення bcache для кешування всього пристрою md приносить у жертву всю ідею провести рейд, оскільки це вводить ще одну єдину точку відмови.

  • OTH збої SSD-дисків відносно рідкісні, і bcache можна перевести в режим writethrough/ writearoundна відміну від writebackрежиму, де немає даних, що зберігаються тільки в кеш-пристрої, і вихід з ладу кешу не вбиває інформацію в рейд робить його відносно безпечним варіантом.

  • Інший факт полягає в тому, що існує значна обчислювальна накладні витрати м'якого RAID-5; під час кешування кожного спінінг-рейдового елемента окремо комп'ютер все одно повинен перерахувати всі паритети, навіть на сходах кешу

  • Очевидно, ви б пожертвували дорогим простором ssd, якщо кешуєте кожен спінінг диск окремо. - Якщо ви не плануєте використовувати керований кеш ssd.

  • Обидва варіанти відносно не впливають на час зростаючого процесу - хоча опція із спінізованими накопичувачами, кешованими окремо, може бути повільнішою через збільшення трафіку в автобусі.

Це швидкий і відносно простий процес налаштування bcache для видалення ssd-диска, коли вам потрібно його замінити. Завдяки блокам має бути можливість міграції налаштування рейду обома способами на місці.

Ви також повинні пам'ятати, що на даний момент більшість (все?) Розподілу живих-CD не підтримуютьbcache , тому ви не можете просто отримати доступ до даних з такими інструментами , незалежно від bcache- mdraidваріанти компонування ви вибрали.


1
Я оновив питання, щоб зрозуміти, що я не планую мати кеш-пам'ять SSD. Ваша друга куля - це відмінний момент, дякую за це. Ви третя куля про космос: ви маєте на увазі, що ви зберігали паритет на SSD? у вашому останньому параграфі я використовую F20, але згодом буде використовувати RHEL / CentOS7 або Debian Jessie (якщо bcache-tools зробить скорочення).

@JackDouglas Третя куля: Так, саме так. Але оскільки ви плануєте використовувати рейдовані SSD-накопичувачі, це не стосується вас.
Адам Річковський

1
Це все ще відбувається, тому що вони будуть не тільки дзеркальними, але і їм потрібно буде зберігати паритет RAID для резервних дисків. Це не той випадок, якщо RAID робиться під bcache, що я вважав, що це ваш пункт

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

1
так, саме це я маю на увазі!

1

Я думаю, що розумним підходом є кешування отриманого пристрою MD.

bcache призначений для проходження послідовного читання і запису.

Якщо ви перевантажуєте кожен пристрій окремо, логічно, декілька пристроїв, що врізаються в набій або позбавлений МД, з точки зору bcache постійно записуватимуть випадкові блоки.

У той час як об'ємний об'єм MD буде виглядати як звичайний, записуйте файли в об'єм, а не випадкові блоки на декілька пристроїв.

Вся суть жорсткого та програмного нальоту полягає у відведенні даних у бекенде, щоб отримана файлова система виглядала як нормальний об'єм.

Це може бути не правильно (оскільки bcache devs може бути розумним і враховувати таку ситуацію), але логічно оптимальною справою є кешування томів, а не блокування пристроїв.


також дуже хороший момент

Велике послідовне записування в RAID5 / 6 створює послідовне записування для всіх компонентних пристроїв. Кожен компонентний пристрій отримує кожен блок даних N-1 (або паритет), але дані, які він отримує, є послідовними. Але ти маєш рацію, що це спотворить речі. Якщо є деякі фрагменти, які бачать часті записи з частковою смугою, в результаті чого читається-змінюється-записується (частина) смуги паритету, яку можна кешувати bcache. Підібравши його вище, перш ніж запис часткової смуги потрапить на пристрій MD, було б ще краще.
Пітер Кордес
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.