Есть у нас сторадж сервера в которых установлены 1TB диски Seagate Barracuda ES.2 ST31000340NS. Эти диски вставлены в RAID контроллеры 3Ware. Средний возраст дисков 3,7 лет. Около 40% дисков вышли из строя в течение гарантийного срока и были заменены продавцом на Certified repaired HDD. Все эти заменённые диски тоже вышли из сроя после окончания гарантийного срока и с ними умерло ещё 10% дисков. В сумме на сегодняшний день умерло около 50% дисков от общего количества установленного в стораджах. Расстроившись от качества дисков Seagate и исчерпав ремкомплект из таких же дисков мы решили попробовать другие диски. Взяли не Enterprise диски Western Digital WD10EZEX-00RKKA0. Дней через 10 диски начали непонятным образом «вываливаться» из массива перевода его в деградированное состояние. В логах серверов где стояли эти диски была примерно сходная ситуация.
На одном сервере была такая:
Jan 8 15:09:19 s01-0 kernel: 3w-9xxx: scsi2: AEN: ERROR (0x04:0x0009): Drive timeout detected:port=9. Jan 8 22:37:23 s01-0 kernel: 3w-9xxx: scsi2: AEN: WARNING (0x04:0x0023): Sector repair completed:port=9, LBA=0x44549100. Jan 8 22:37:26 s01-0 kernel: 3w-9xxx: scsi2: AEN: ERROR (0x04:0x0002): Degraded unit:unit=0, port=9.
на другом такая:
Jan 20 11:12:36 s01-1 kernel: 3w-9xxx: scsi2: AEN: WARNING (0x04:0x0023): Sector repair completed:port=15, LBA=0x44548778. Jan 20 11:12:44 s01-1 kernel: 3w-9xxx: scsi2: AEN: ERROR (0x04:0x0002): Degraded unit:unit=0, port=15.
После выброса винта контроллером он детектится вот так:
/c2/p9 Status = DEVICE-ERROR
После анализа логов закралось у меня смутное подозрение что здесь что-то не чисто. После «передёргивания» винта он выглядит живым и рабочим, в некоторых увеличиваются счётчики релокаций но в некоторых нет. И даже Pending не меняется. После недолгих поисков выяснилось следующее:
Компания Western Digital производит жесткие диски как для настольного использования (Desktop Edition), так и для RAID-систем (RAID Edition). Эти два типа дисков предназначены либо специально для работы в качестве одиночного накопителя, либо в составе RAID-массива в специализированном аппаратном RAID контроллере.
Применение жестких дисков для настольного использования в аппаратных RAID-системах возможна нестабильная работа что связано с характерной для таких дисков процедурой восстановления после ошибок.
Если на диске для настольного использования будет обнаружена ошибка он войдет в «глубокий цикл восстановления», при котором будет произведена попытка перераспределения данных из проблемной области. На этот процесс для дисков WD отводится до 2 минут в зависимости от серьезности проблемы. В тоже самое время большинство аппаратных RAID контроллеров ожидают ответа от диска в течении 7-15 секунд после чего выбрасывают диск из RAID массива как неисправный.
Компания Western Digital не рекомендует применять диски для настольного использования в RAID-системах. Однако в некоторых из них имеется функция отключения режима «глубокого цикла восстановления» TLER (Time Limited Error Recovery). После её активации на восстановление ошибки отводится не более 7-ми секунд (время можно изменить), что соответствует требованиям аппаратных RAID контроллеров. А это предотвращает автоматический «выброс» диска из RAID массива и его деградацию, тоесть возникновение серьёзной предаварийной ситуации, когда требуется быстрое вмешательство техника и замена диска.
Функция возможности управления поведением диска во время обнаружения ошибки называется «SCT Error Recovery Control» или сокращённо SCT ERC. Сокращение SCT образовано от первых букв другого термина: SMART Command Transport. А SMART в свою очередь «разворачивается» в «Self-Monitoring Analysis and Reporting Technology».
А теперь перейдём к практике.
Выяснить поддерживает ли диск SCT ERC можно при помощи запроса SMART информации.
В Linux это делается при помощи утилиты smartctl.
Например для диска /dev/sda который не поддерживает SCT
# smartctl -l scterc /dev/sda smartctl 5.43 2012-06-30 r3573 [x86_64-linux-2.6.32-431.5.1.el6.x86_64] (local build) Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net Warning: device does not support SCT Commands
Или для первого (port=1) диска в raid контроллере 3ware который поддерживает SCT
# smartctl -l scterc /dev/twa0 -d 3ware,1 SCT Error Recovery Control: Read: 70 (7.0 seconds) Write: 70 (7.0 seconds)
Или таким способом
(вывод будет пустым если в нём нет строк про SCT)
# smartctl -a /dev/sda | grep SCT
И таким когда строки есть
# smartctl -a /dev/twa0 -d 3ware,1 | grep SCT SCT capabilities: (0x30bd) SCT Status supported. SCT Error Recovery Control supported. SCT Feature Control supported. SCT Data Table supported.