… или что такое на самом деле 'raid edition' для жёстких дисков
Немного теории
Существуют две стратегии поведения НЖМД при обнаружении ошибки:
- 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
. Вывод выглядит так:# smartctl -l scterc /dev/sda
SCT Error Recovery Control:
Read: 70 (7.0 seconds)
Write: 70 (7.0 seconds)
# smartctl -l scterc /dev/sde
SCT Error Recovery Control:
Read: Disabled
Write: Disabled
# smartctl -l scterc /dev/sdd
Warning: device does not support SCT Error Recovery Control command
Для установки, соответственно, указываем значения через запятую после 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 в рейде быть не должен ни при каких условиях, так как в случае сбоя вреда он принесёт больше, чем пользы.
PPS Как выполнить операции со SMART'ом в Microsoft Windows — не имею ни малейшего представления. Звоните в службу поддержки производителя и спрашивайте. Телефон 8 (800) 200-8001.
Для Mac OS X, насколько я знаю, есть порт smartmontools, так что указанные команды (от рута) там вполне выполнимы.
PPPS (из комментариев) Для WD есть утилита WDTLER (Time-Limited Error Recovery) на некоторых hdd green-серии можно все-таки включить ERC/TLER: blog.agdunn.net/?p=208