May. 29th, 2017

yigal_s: (Default)
Допустим, имеется

вариант 1: RAID-1
вариант 2: RAID-5

допустим далее, что на одном из дисков (физических) не читается 1 сектор c записанными данными.

Вопрос 1: Будет ли RAID-система при ошибке чтения считывать информацию с других дисков и возвращать нормальные данные на уровень файловой системы, или же пользователь эту ошибку и получит, а рейд ничего не восстановит?

Вопрос 2: Есть ли возможность запустить какие-то штатные утилиты, чтобы переписать испорченный сектор на основании данных других дисков?

Вопрос 3: Если ничего подобного в RAID-системе нет, и случайно случились две ошибки в данных на разных дисках, означает ли это, что RAID-систему уже невозможно восстановить штатными средствами?

Вопрос 4: Означает ли это, что при обнаружении малейшией ошибки на одном из дисков RAID, нужно его срочно вынимать, заменять на новый, и так поступать каждый раз при каждом битом секторе на каждом диске?

Вопрос 5: Если всё вышеперечисленное правильно, то нет ли смысла послать этот гемор подальше, а вместо RAID-1 или RAID-5 тупо запустить RAID-0? Кстати, а как чинить плохие сектора там? Просто стирать файл и перезаливать его с бекапа? Поможет ли? Ведь один диск из RAID-0 переформатировать полностью тоже нельзя...
yigal_s: (Default)
Итог пока подводить рано, но предварительно, от RAID (RAID-1 и RAID-5) наивный пользователь может ожидать три типа действий:

1. Способность работать после полного выхода из строя одного из дисков и восстанавливаться после его замены на чистый новый.
2. Способность читать сектор данных при его повреждении за счет одного избыточного диска.
3. Способность перезаписывать поврежденный сектор данных правильными данными, получаемыми за счет той же избыточности (при этом контроллер диска заодно может и переаллоцировать этот сектор на резервный, а сбойный исключить из дальнейшего использования - это нормальная функциональность современного ширпотребовского SATA-диска).

Если пункт 1 - это то, о чем говорит любая статья о RAID, то наличие пунктов 2 и 3 на RAID не супер-крутой модели вызывает определенные сомнения.

Впрочем, информация на https://raid.wiki.kernel.org/index.php/Scrubbing_the_drives говорит нам о том, что хотя linux и не способен делать пункты 2 и 3 во время обычной работы, он, тем не менее, способен их делать в рамках специально запускаемой операции "сканирования" (scrubbing).

ПС: всё лажа. Линукс, видимо, всё же умеет себя чинить без всяких утилит.

https://raid.wiki.kernel.org/index.php/Timeout_Mismatch

The proper sequence of events when something goes wrong is that the drive can't read the data, and it returns an error to the OS. The raid code then calculates what the data should be, and writes it back to the disk. Glitches like this are normal and, provided the disk isn't failing, this will correct the problem.