Якщо під час відновлення система RAID5 відчуває URE, чи втрачаються всі дані?


23

Я розумію аргумент щодо збільшення ймовірності більших накопичувачів відчути URE під час відновлення, проте я не впевнений, які фактичні наслідки для цього мають. Ця відповідь говорить про те, що вся перебудова не вдалася, але чи означає це, що всі дані недоступні? Чому це було б? Безумовно, один URE з одного сектора на накопичувачі впливатиме лише на дані, що стосуються кількох файлів. Невже масив все ще не буде відновлений, лише з незначною пошкодженістю декількох файлів?

(Мене спеціально цікавить реалізація RAID5 ZFS тут, але логіка здається однаковою для будь-якої реалізації RAID5.)


1
Загалом, коли "ймовірність виникнення URE під час відновлення " обговорюється в контексті ризиків RAID5, мається на увазі припущення, що раніше сталася корупція, яка спричинила необхідність відновлення. Іншими словами, "URE під час відновлення" є другим URE, і дійсно ВСІ дані будуть втрачені.
Кольт

1
@Colt - Я розумію, що це стосується, але те, що я не розумію, це те, чому один URE (який, в аналізі того, чому RAID5 не рекомендується, здається, відноситься до поганого сектора) означав би, що всі дані бути загубленим. Загалом, якщо я втратив 1 накопичувач масиву RAID5, я все-таки маю всі дані. Якщо я додатково втрачу один сектор з будь-якого з решти приводів, то, можливо , я втратив дані, які зберігалися в цьому секторі, але якщо цей сектор був (наприклад) вільним простором, то мені все одно, і якщо цей сектор У нього були дані, то це може вплинути лише на кілька файлів.
процес91

@Colt - Виходячи з наведених нижче відповідей, схоже, що невдале відновлення масиву в представленні єдиного URE було вибором, зробленим виробниками апаратних RAID. На мою думку, це був неправильний вибір, але, на щастя, ZFS робить це інакше.
процес91

Дивіться відповідь @ shodanshok щодо процесу. Щодо того, чому RAID призначений для забезпечення безперервності доступу до надійних даних для інших процесів, додатків тощо, а не про резервне копіювання. Причиною того, що багато (більшість?) Апаратних контролерів припиняють роботу, коли URE виникає при перебудові, - це те, що RAID більше не може робити те, що належить робити . На цьому етапі потрібно використовувати резервні копії, щоб мати достовірні дані. Інший спосіб використання RAID - це взагалі не робити будь-яку перебудову, а просто використовувати RAID для контролю часу відновлення після резервного копіювання. Крім того, це дає час зробити остаточну резервну копію до відновлення.
Кольт

Зауважте, що "реалізація RAID5" ZFS називається "raidz" або "zraid" і відрізняється від апаратного RAID5. Зазвичай ви отримаєте кращі відповіді про "ZFS RAID5", запитуючи про "raidz"
Josh

Відповіді:


24

Це дійсно залежить від конкретної реалізації RAID:

  • більшість апаратних RAID перерве реконструкцію, а деякі також відзначать масив як невдалий , знижуючи його. Сенс полягає в тому, що якщо URE відбувається під час RAID5 відновити це означає , що деякі дані будуть втрачені, так що краще , щоб повністю зупинити масив , а що ризикує беззвучно спотворення даних. Примітка: деякі апаратні RAID (в основному на основі LSI) замість цього будуть пробивати масив, дозволяючи відновити процес відновлення, маркуючи постраждалий сектор як нечитабельний (подібно до того, як поводиться програмне забезпечення RAID Linux).

  • Програмне забезпечення RAID для Linux може бути доручено: a) зупинити відновлення масиву (єдине поведінка "стародавніх" складання MDRAID / ядер) або b) продовжити процес відновлення, позначаючи деякий LBA як поганий / недоступний. Обґрунтування полягає в тому, що краще дозволити користувачеві зробити свій вибір: адже один URE може знаходитись у вільному просторі, не впливаючи на дані (або впливаючи лише на неважливі файли);

  • ZRAID покаже якийсь файл як пошкоджений, але він продовжить процес відновлення (див. Тут приклад). Знову ж таки, обґрунтування полягає в тому, що краще продовжувати та звітувати перед користувачем, що дозволяє йому робити усвідомлений вибір.


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

@kasperd Звичайно, я думаю, що я вважав, що більшість реалізацій RAID мали можливість попередити користувача про погані сектори. Я розумію, чи є поганий сектор в одному приводі, який призведе до неправильного сектора в новому приводі після відновлення. Це означає, що навіть якщо реалізація RAID зробила не що інше, як попередити користувача "Я відновив накопичувач якнайкраще, як міг, але я пережив 1 URE в процесі", а потім продовжував дозволяти спроби запису в цей сектор, я не подивіться, як інші сектори можуть бути під загрозою. Єдиними можливими неправильними секторами були б початковий, новий та паритет.
процес91

Одне уточнення, засноване на коментарях @Colt, наведених вище - у випадку апаратного RAID, коли він визначає масив як невдалий , він все ще допускає доступ до даних взагалі? Навіть, скажімо, доступ лише для читання для спроб відновлення?
процес91

@ process91 Допуск до пошкодження сектору не вважається гарною ідеєю, навіть якщо цей факт був записаний у файл журналу. Ви б не мали уявлення, який файл може бути пошкоджений. RAID повинен був забезпечити, прочитавши цей файл, ви отримаєте помилку. Очевидно також, що ви не хочете просто перезаписати поганий сектор, оскільки це означає, що ви просто втратили останній шанс відновити дані. Таким чином, у вас є нечитабельний сектор на одному диску і сектор на новому диску, де ви не знаєте, що написати. Це можуть бути пошкоджені два різних файли.
kasperd

1
@ process91 Я додав примітку про масиви на основі LSI. Подивіться.
shodanshok

8

Якщо URE трапиться, ви отримаєте певну пошкодження даних щодо блоку, який зазвичай має розмір 256 КБ-1МБ, але це не означає, що ВСІ дані на вашому обсязі будуть втрачені. Що не так здорово в RAID5 - це зовсім інша річ: сама перебудова - це напруження, і є велика ймовірність, що ви отримаєте другий збій диска поспіль. У такому випадку всі дані будуть втрачені.


2
Чим відновлення RAID5 є більш напруженим на одному приводі, ніж відновлення RAID1? Я бачу, що це більш напружено для процесора, але для будь-якого конкретного накопичувача ми просто читаємо всі дані з нього. Зазвичай небезпека, з якою люди стикаються з більшими накопичувачами, полягає в тому, що вони, швидше за все, зіткнуться з URE під час відновлення, але це добре зі мною, якщо це просто означає, що один сектор буде зіпсований.
процес91

3
Це теорія ймовірностей. З N (де це # дисків) ваші шанси відмовити в N разів вище.
BaronSamedi1958

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

2

Я б пояснив це навпаки;

Якщо контролер RAID не зупиниться на URE, що може статися?

Я жив ним на сервері, RAID ніколи не помічав URE, і після відновлення корупція почала наростати на всьому обсязі RAID.

Після відновлення диск почав отримувати більше поганого сектору, і дані почали пошкоджуватися.

Диск ніколи не знімався з обсягу RAID, невдача контролера - це робота щодо захисту цілісності даних.

Цей приклад написаний, щоб змусити вас думати, що контролер взагалі не може висунути томи з URE, це для цілісності даних, оскільки об'єм не має бути резервною копією, а стійкістю до відмови диска


1
Я бачу, що нові модератори постійно перевіряють сайт, шукають, що робити ...
Уорд - Відновити Моніку

1
Чому один URE створив корупцію у всьому обсязі RAID?
процес91

2
Вибачте, я перечитав вашу відповідь. Здається, у вас був один поганий URE під час перебудови, але це не проблема. Проблема полягала в тому, що сектори продовжували працювати погано після відновлення, і привід ніколи не повідомляв про це. Однак це здається окремим питанням від того, помічає чи не RAID-контролер URE під час відновлення. Контролер RAID міг помітити URE під час відновлення та попередити вас про це, але все-таки приступити до завершення відновлення. Деякі дані завжди будуть кращими, ніж відсутні.
процес91

2
Мені цікаво лише проаналізувати, чому в 2009 році RAID5 вважали "мертвим", що базується на ймовірності створення єдиного URE. На сьогодні я розумію, що цей аналіз був і математично неправильним, і насправді не застосовується так само, наприклад, як ZFS.
процес91

1
@RobMoir Я думаю, що ваше останнє твердження - це те, де я не згоден. Виведення майже всіх моїх даних із масиву може бути корисним, навіть якщо б у мене було ще резервне копіювання. Можливо, цей файл не був важливим, або (у випадку апаратного RAID) помилка сталася в області вільного простору. Я думаю, що правильним рішенням для апаратного RAID (де він точно не знає, на які файли було постраждало) було б попередити користувача, завершити відновлення та перевести масив у режим лише для читання. Я не бачу жодних недоліків у цьому. (Очевидно, файлові системи, такі як ZFS, можуть навіть краще, оскільки вони можуть повідомляти про файли, про які впливає.)
Process91

1

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

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

Ви не втратили всі дані, але найпоширенішим способом відновлення з одного мертвого диска плюс (деякі) URE на (деяких) решті дисках буде повне відновлення масиву з нуля, що означатиме відновлення всіх даних з резервного копіювання.


1
Як правило, ви використовуєте RAID, коли вашою метою є мінімізація простоїв. Наявність масиву продовжувати йти з невідомою та непоправленою корупцією зазвичай суперечить цій меті.
Девід Шварц

1
Дякую, що перше питання, з яким ви зв'язалися, було дуже інформативним. Чому я втратив безперервний доступ до даних? Масив все ще буде під час відновлення, і якщо він буде зустрічатися з URE під час відновлення, я б очікував, що він просто продовжує працювати, хоча з цим сектором даних зараз пошкоджено. Це не так?
процес91
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.