Pull to refresh

SCT Error Recovery Control

Reading time4 min
Views107K
… или что такое на самом деле '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
Tags:
Hubs:
Total votes 117: ↑113 and ↓4+109
Comments99

Articles