Btrfs: RAID 1 на 3-х пристроях


10

На даний момент у мене є розділ Btrfs з чотирма пристроями: три накопичувачі 3 ТБ та привід 4 ТБ. Дані та метадані - це RAID 10, тому у мене є 6 ТБ корисного простору, який майже заповнений. Я очікував, що підтримка RAID 5 у Btrfs буде зрілою до моменту заповнення мого сховища, але, мабуть, це не є пріоритетом.

Моє запитання: чи є причина віддати перевагу RAID 10 перед RAID 1 ? Я знаю, що справжній RAID 1 на моєму теперішньому апаратному забезпеченні повинен дати мені 3 ТБ корисного простору з 4 копіями кожного блоку, але Btrfs, мабуть, не так поводиться. З FAQ про Btrfs :

btrfs спочатку об'єднує всі пристрої в пул пам’яті, а потім дублює фрагменти під час створення файлових даних. RAID-1 визначається в даний час як "2 копії всіх даних на різних пристроях". Це відрізняється від MD-RAID та dmraid тим, що вони роблять рівно n копій для n пристроїв. У btrfs RAID-1 на трьох пристроях 1 ТБ ми отримуємо 1,5 ТБ корисних даних. Оскільки кожен блок копіюється лише на 2 пристрої, для запису даного блоку потрібно записати лише два пристрої; читання можна зробити лише з одного.

І від Єнса Ерата на переповнення стека :

Btrfs розподіляє дані (і його копії RAID 1) блокчейн, таким чином, дуже добре справляється з жорсткими дисками різного розміру. Ви отримаєте суму всіх жорстких дисків, розділених на два - і не потрібно думати, як з’єднати їх у подібні за розміром пари.

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

Чи означає це, що перебалансування з RAID 10 на RAID 1 дасть мені додаткові 500 ГБ даних (6,5 ТБ, а не 6 ТБ) за рахунок 4 ТБ накопичувача? І чи є якась причина, щоб я дотримувався RAID 10?


1
BTRFS RAID-5 насправді є досить стабільним і навіть багато типових сценаріїв відновлення даних працюють у поточній версії (без збоїв). Вам, мабуть, слід час від часу прочищати, щоб переконатися, що ваші дані все-таки є правильними, але, можливо, варто це зробити. Можна перетворити з RAID-1 (0) в RAID-5.
основні6

@ basic6 Добре знати, дякую. Я досліджував це не так давно і бачив, що scrubі replaceпідтримка була додана станом на 3,19, але люди все ще скаржилися на відсутність сповіщень про несправність пристроїв. У мене є крони, створені для щотижневих скрабів і щотижневих / щомісячних самотестових тестів SMART, тому я повинен мати можливість вирішити ці проблеми. Я спробую.
Міккель

Періодичні (щотижневі або щомісячні) скраби є важливими, якщо скраб знайде та помилка, оскільки не може прочитати з диска, це збільшить кількість помилок. Перевірте кількість помилок, використовуючи dev stats, що може бути черговим завданням .
основні6

Відповіді:


5

Так, ви отримуєте додаткові 500 ГБ. Зауважте, що визначення доступного простору в btrfs залишається невловимим. Також: подивіться на калькулятор використання диска btrfs .

Що стосується вашого другого питання: ви можете втратити деяку ефективність у своєму масиві. Звичайно, ваші дані однаково безпечні для обох конфігурацій RAID. Розглядаючи продуктивність, можливо, ви можете ознайомитися з цими орієнтирами: kernel.org , phoronix.com .

Можливо, ви вже намагалися перейти на RAID 1? Якщо так: які ваші висновки?


1
Це не дає відповіді на запитання. Щоб критикувати або вимагати роз'яснення у автора, залиште коментар під їх публікацією - ви завжди можете коментувати свої власні публікації, і як тільки у вас буде достатня репутація, ви зможете коментувати будь-яку публікацію .
DavidPostill

Однак, щоб відповісти на ваше запитання, я перетворив, і результат, здається, відповідає моїм очікуванням. Btrfs виконує погану роботу щодо вказівки фактичного наявного дискового простору, але ви можете побачити, що на виході використовується btrfs fi shдодатковий простір на 4 ТБ диску, і (2.83 + 1.93 + 1.93 + 1.95) /2~=4.30 як і очікувалося. Нещодавно у мене виникла помилка накопичувача та успішно відбудувалася без втрати даних, тому я можу з перших вуст підтвердити, що надмірність є недоторканою.
Міккель

Вибачте, моя відповідь була незрозумілою @david. Я намагався відповісти на два запитання в останніх двох рядках оригінальної публікації. Крім того, я вказав діапазон невизначеності (який здається властивим btrfs) і надав свої джерела для довідки. Дійсно, я також задавав питання авторові, щоб інші могли дізнатися його висновки. Я зробив це у відповіді з причин, які ви вже пояснили. Я буду розглядати ваші коментарі наступного разу, коли я відповім на запитання щодо обміну стеками.
Лаура

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

Ну, є ця сторінка , яка показує незначні переваги для RAID 10 над RAID 1, що містить застереження у верхній частині, що орієнтирам 7 років.
Міккель

0

Не використовуйте btrfs raid 5 або 6, реалізація повна помилок, запустіть zfs, якщо цього хочете.

З рейдом10 ви наберете швидкість.

Оптимальне, що потрібно зробити, це зробити розділ на 3 ТБ на диску 4 ТБ (переконайтесь, що всі 3 мають однаковий розмір), об'єднайте їх у RAID10, у якому буде 6 ТБ вільного місця. Використовуйте додатковий 1 ТБ на 4-ти TB-накопичувачі для / завантаження (це все одно має бути vfat, якщо ви хочете використовувати efistub і уникати grub або будь-якого іншого завантажувача, який зробить завантаження трохи швидшим), поміняйте місцями (ви можете використовувати досить великий, оптимальним було б невеликий замін zram (4 Гб працює чудово з 32 ГБ оперативної пам'яті, 2 ГБ має бути чудово з 16 ГБ, якщо у вас менше 16 ідків, якщо воно того варте, і ви, ймовірно, в будь-якому випадку повинні оновити) це спочатку використовується (встановіть пріоритет найвищим), використовуючи zstd і стільки потоків стиснення, скільки у вас є ядер / потоків ...

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