Програмне забезпечення Linux mdadm RAID 6 - чи підтримує біт відновлення корупції?


15

У Вікіпедії йдеться про те, що "RAID 2 - єдиний стандартний рівень RAID, окрім деяких реалізацій RAID 6, який може автоматично відновлювати точні дані після однобітної пошкодження даних".

Хтось знає, чи реалізація mdadm RAID 6 в Linux є однією з таких реалізацій, яка може автоматично виявляти та відновлюватись від однобітної пошкодження даних. Це стосується CentOS / Red Hat 6, якщо вони відрізняються від інших версій. Я спробував шукати в Інтернеті, але не пощастило.

Оскільки частота помилок SATA становить 1 на 1 біт 1E14 і диск SATA 2 ТБ, що містить 1,6 біт 13, це особливо актуально для запобігання пошкодження даних.

РЕДАКЦІЯ 17-червня-2015

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

Відповіді:


15

Програмне забезпечення Linux RAID не захистить вас від корупції бітів, а мовчазна корупція - це добре відома проблема. Насправді, якщо ядро ​​вміє читати дані з одного диска, воно ніколи не дізнається, що це погано. RAID стартує лише у випадку помилки вводу / виводу при зчитуванні даних.

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


Спасибі. Якщо це комусь корисно, я отримав ще кілька ідей пошуку з відповіді chutz і побачив, що керівник mdadm (я вважаю) сказав 17 лютого 2011 року, що він не планує додавати можливість примусово перевіряти паритет при кожному прочитаному. Дивіться spinics.net/lists/raid/msg32816.html
sa289

3

RAID5 та RAID6 можуть виявляти та, як правило, виправляти пошкодження бітів, якщо ви перевіряєте паритетність всього диска. Це називається "вишкрібання" або "перевірка паритету" і зазвичай займає 24-48 годин у більшості виробничих RAID-систем. За цей час продуктивність може значно погіршитися. (Деякі системи дозволяють оператору визначити пріоритет скрабування над доступом для читання / запису або нижче нього.) RAID6 має більший шанс виправити його, оскільки він може виправити його, якщо у вас дві помилки накопичувача, тоді як RAID5 може впоратися лише з 1 відмовою диска, і збої в роботі приводу швидше за все, якщо ви вичісуєте через підвищену активність.


1
Не вірно, що продуктивність буде помітно погіршена під час скрабу RAID. Якщо скраб використовує всі доступні системні ресурси та "тупий", тоді це буде. Але всі SAN, і я думаю, більшість контролерів RAID запускають скраб з нижчим або «приємним» пріоритетом, динамічно регулюючи використання ресурсів, щоб він не витрачав ресурси, необхідні для підтримки продуктивності.
Джеремі

Ви праві. Я відредагував відповідь, щоб додати нюанс.
vy32

якщо ваш масив mdadm raid 6 є / dev / md1, то це команда, щоб змусити його перевірити паритет та спробувати відновити пошкодження одного біта "echo check> / sys / block / md1 / md / syncgery"
BeowulfNode42

2
Вони не "захищають від корупції бітів", вони виявляють біт корупції, якщо ви очищаєте їх. Дивіться моє запитання тут для деталей.

Я пропоную змінити відповідь на "RAID5 і RAID6 здатний виправити біт корупції"
Waxhead

2

Я б додав це як коментар, але не маю достатньої репутації; Я хотів уточнити: RAID5 може ВИЗНАЧИТИ біт корупції, але він не знає, який диск має корупцію без помилки читання. В результаті скраб не зміг виправити це без помилки читання - він, швидше за все, просто ввійде його в систему та оновить біт парності на відповідність. Алгоритм RAID6 залежить від позиції, тому він може виявити, який диск містив помилку, і виправити пошкодження бітів.


Це було б чудово, якби це правда! Чи можете ви надати будь-які посилання про те, де це задокументовано ??
Alek_A

2

Усі відповіді, наведені вище, є невірними щодо можливостей RAID 6. Алгоритми RAID 6 працюють байт-байтом так само, як RAID 5, і якщо один байт на будь-якому одному накопичувачі пошкоджений, навіть без помилки, вказаної на диску, він може бути виявленим та ВИКОРИСТАНО. Алгоритм для цього повністю пояснено в

https://mirrors.edge.kernel.org/pub/linux/kernel/people/hpa/raid6.pdf

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

Крім того, якщо ідентифікація накопичувача приводу відсутня (наприклад, накопичувач 137, якщо є лише 15 дисків), більш ніж один накопичувач надає пошкоджені дані ДЛЯ БАЙТЕ, сигналізуючи про непоправлену помилку помилки. Коли в наборі набагато менше 256 накопичувачів, це виявляється з високою ймовірністю на один байт, і оскільки в блоці є багато байтів, з надзвичайно високою ймовірністю на блок. Якщо ідентифікація накопичувача не відповідає всім байтам у блоці RAID, знову ж таки, більше одного диска надає пошкоджені дані, і, як правило, можна відхилити умову, але поки всі ідентифікатори накопичувача дійсні, блок не обов'язково бути відхиленим.

Для проведення цієї корекції потрібно більше часу, ніж звичайний час перевірки, але його потрібно проводити лише з розрахунку синдрому (P і Q), що показує помилку.

Все це, однак, я не вивчав код mdadm, щоб визначити, чи обробляється однобайтова корупція. Мені відомо, що mdadm повідомляє про помилки синдрому RAID6 щомісяця, але з повідомлення про помилку не зрозуміло, чи вони виправляються - це не зупиняє масив накопичувачів і не визначає якогось конкретного приводу в повідомленні.

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