Существуют две стратегии поведения НГЖД при обнаружении ошибки:
standalone/desktop — пытаться прочитать до последнего. Это ощущается
как «тормозящий винт», который всё-таки работает, если это единичный
сбой, то «затупило, но прошло», плюс характерный перестук
перекалибрующихся головок.
raid — отваливаться тут же. Это ощущается как «внезапно была ошибка диска но потом mhdd и т.д. НИЧЕГО НЕ НАШЁЛ ЧТО МНЕ ДЕЛАТЬ».
Статегии очевидным образом различаются по предназначению — десктоп
лучше протупит, но ошибку не выдаст, в рейде есть запасной винт, и
терпеть минутные тормоза на чтении никто не имеет никакой возможности.
Не получилось прочитать? Читаем с запасных винтов, помечаем весь винт
как сбойный, начинаем ресинк, а диск потом отправят в утилизатор.
Возможно, незаслуженно, но нечего икать на ответственной должности.
Управление стратегиями поведения при ошибках — это фича дорогих
винчестеров. В десктопных сериях её часто просто нет, или она есть, но
без права включения — винчестер тупит над ошибкой столько, сколько
сочтёт нужным. Второй важный момент — на рейдовых жёстких дисках эта
опция включена по-умолчанию. Что может приводить к проблемам.
Расшифровка названия
Возможность управления поведением диска при ошибках называется очень и
очень путанно: SCT ERC. Это расшифровывается как SCT Error Recovery
Control. SCT в свою очередь название общего протокола SMART Command
Transport. SMART в свою очередь расшифровывается как Self-Monitoring,
Analysis and Reporting Technology, таким образом, полная расшифровка SCT
ERC звучит так: Self-Monitoring, Analysis and Reporting Technology Command Transport Error Recovery Control (выдохнули).
Краткая справка
Посмотреть, поддерживает ли жёсткий диск управление ошибками можно с помощью команды smartctl -a /dev/sdxx строчка SCT capabilities:
SCT capabilities: (0x303f) SCT Status supported.
SCT Error Recovery Control supported. *****
SCT Feature Control supported.
Если строчки нет — диск их (команды) не поддерживает.
Далее — собственно, процесс управления. В тех дисках, которые я видел,
есть два параметра — таймаут операции чтения и таймаут операции записи.
Ниже я приведу значения для всех дисков, до которых у меня дотянулись
руки.
Чтобы посмотреть таймауты используем команду smartctl -l scterc /dev/sda. Вывод выглядит так:
Для установки, соответственно, указываем значения через запятую после scterc: smartctl -l scterc,120,60 /dev/sde
(величина указывается в десятых долях секунды, то есть 120 соотвествует
12 секундам, первое число — чтение, второе — запись). 0 означает «до
победного конца», то есть неограниченно долго.
Значения по-умолчанию
Вот данные с разных дисков, которые у меня есть в хозяйстве:
Название
Модель
ERC (есть или нет, если есть, значения по-умолчанию)
Western Digital VelociRaptor
WDC WD1500HLFS-01G6U1
Есть, 7/7
Western Digital RE4 Serial ATA
WDC WD1500HLFS-01G6U1
Есть, 7/7
Western Digital RE3 Serial ATA family
WD1002FBYS-02A6B0
Есть, 7/7
Western Digital Caviar Green (Adv. Format)
WDC WD20EARS-00MVWB0
не поддерживается
Western Digital Caviar Green
WD7500AACS-00D6B0
Есть, 0/0, включить нельзя
Seagate Maxtor DiamondMax 22
STM3500320AS
Есть, 0/0, можно включить
Seagate Barracuda 7200.9
ST3400633AS
Нет (у максторов/сигейтов тех же лет есть, а у сигейтов нет — wow)
Seagate Barracuda 7200.10
ST3500630AS
нет
Seagate Barracuda 7200.11
ST31500341AS
(внезапно!) Есть, 0/0, можно включить
Seagate Barracuda LP
ST31500541AS
Есть, 0/0 (то есть выключен), можно включить
SAMSUNG SpinPoint F4 EG (AFT)
SAMSUNG HD204UI
Есть, 0/0 (выключен), можно включить
Hitachi Deskstar 7K3000
HDS723030ALA640
Есть, 0/0, включить нельзя (scsi error aborted command)
Hitachi Deskstar T7K500
HDT725032VLA360
Есть, 0/0, включить нельзя
(только не спрашивайте меня, откуда у меня столько дисков дома).
Мораль
Люди, которые берут себе RE4 диски (и прочие raid edition от других
оставшегося производителя), а так же velocity raptor'ы для использования
в качестве единственного жёсткого диска и при этом не выставляют ERC в
ноль, делают гигантскую глупость, сравнимую лишь с глупостью людей,
которые десктопные винты вгоняют в рейд без настройки ERC и надеются,
что в случае сбоя их рейд спасёт.
По сути: купили крутой винт домой в количестве одна штука: выключите ERC
(0,0). Купили винт в рейд — проверьте, что у него ERC отлично от нуля, а
лучше ближе к разумному значению в районе 3-10с. (300-1000).
Модели, применение которых на десктопе требует внимания: WD RE3, RE4, Raptor, Seagate NS.
PS Помимо ERC, производители обещают повышенное качество и надёжность
работы RE/NS серий, но этого мы проверить не можем, а вот
наличие/отсутствие ERC — это объективный легко проверяемый признак. Диск
без ERC в рейде быть не должен ни при каких условиях, так как в случае
сбоя вреда он принесёт больше, чем пользы.