У меня печальный RAID-массив на карте 3ware 9650SE-16ML. Я не могу сказать, то ли у меня только что произошел двойной сбой диска (облом!), то ли я неправильно понял. Соответствующий вывод /c0 show all
:
Port Status Unit Size Blocks Serial
---------------------------------------------------------------
p0 DEGRADED u0 931.51 GB 1953525168 5QJ07MAH
p1 ECC-ERROR u0 931.51 GB 1953525168 5QJ0DCW9
p2 OK u0 931.51 GB 1953525168 5QJ0DW9C
p3 OK u0 931.51 GB 1953525168 5QJ0CKXJ
И неудача заключается в следующем (из show alarms
):
Ctl Date Severity Alarm Message
------------------------------------------------------------------------------
c0 [Sun Nov 20 07:47:23 2011] INFO Rebuild started: unit=0
c0 [Sun Nov 20 08:20:12 2011] ERROR Drive ECC error reported: port=1, unit=0
c0 [Sun Nov 20 08:20:12 2011] ERROR Source drive error occurred: port=1, unit=0
c0 [Sun Nov 20 08:20:12 2011] ERROR Rebuild failed: unit=0
c0 [Sun Nov 20 08:20:12 2011] INFO Rebuild paused: unit=0
ядуматьчто произошло то, что p0 вышел из строя, а затем p1 имел ошибку ECC (т.е. мои данные пропали). Но... может быть и нет? Он остается на 97% перестроенным, но не может преодолеть эту ошибку.
Насколько я могу судить, предыдущий администратор отключил периодическую проверку, что и привело нас к такому состоянию. Это не то, о чем стоит беспокоиться большинству людей с их RAID-массивами 3Ware!
Обновлять
Повозившись с ним пару дней, я применил IgnoreECC и он восстановился, но мои данные испорчены. Обидно.
решение1
Ошибка ECC означает, что на диске есть по крайней мере один нечитаемый сектор. Однако, если вам повезет, этот сектор может фактически не использоваться файловой системой, расположенной на этом томе, поэтому вы все равно сможете скопировать данные из массива в этом состоянии.
Также есть несколько вариантов игнорирования ошибок ECC во время перестройки:
/cx/ux start rebuild disk=p [ignoreECC]
/cx/ux set ignoreECC=on|off
Однако использование этих опций означает, что полоса RAID, затронутая плохим сектором, будет повреждена (не уверен, что именно сделает карта в этом случае — она может заменить всю полосу нулями или даже случайными данными), поэтому «восстановленный» массив может фактически иметь необнаруживаемые повреждения (если затронутая полоса находилась в середине какого-то файла данных). Копирование данных из массива в какое-то другое место перед попыткой перестроения может быть безопаснее (по крайней мере, вы должны получить ошибки при попытке чтения плохой области).
Вам следует настроить запланированную проверку массива, чтобы выявлять нечитаемые сектора раньше и иметь возможность заменить диск, который только начал выходить из строя.
решение2
Я никогда не сталкивался с тем, чтобы физический диск (p0) переходил в состояние DEGRADED, однако вы можете вернуть диск ECC-ERROR или даже диск DEGRADED, удалив их с помощью
/c0 p1 remove
и затем выдать повторное сканирование
/c0 rescan
поместите их обратно в рейдовый отряд через
maint rebuild c0 u0 p1
SATA-диски, которые выходили из строя из-за ошибки ECC-ERROR, мне удавалось восстановить хотя бы на несколько часов, прежде чем они снова выходили из строя.
решение3
Очень вероятно, что ваши данные пропали. Ошибка ECC означает неустранимую ошибку при чтении с этого диска.
Если у вас нет резервной копии, вы можете попробовать сделать дамп текущего состояния массива. Это может быть возможно, поскольку контроллер не знает, были ли потеряны данные или просто пустая область (у него нет никакой информации о файловой системе).