Авг 2

SCT Error Recovery Control

Опубликовано в Винчестеры

В статье описывается возможность контроля и анализа данныхоб ошибках на дисках в раид контроллерах до выхода их из строя. Фактически как получить smart информацию из raid контроллера.

Немного теории

Существуют две стратегии поведения НЖМД при обнаружении ошибки:

  • 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 в рейде быть не должен ни при каких условиях, так как в случае сбоя вреда он принесёт больше, чем пользы.

Для Mac OS X, насколько я знаю, есть порт smartmontools, так что указанные команды (от рута) там вполне выполнимы.

PPPS: Для WD есть утилита WDTLER (Time-Limited Error Recovery) на некоторых hdd green-серии можно все-таки включить ERC/TLER: blog.agdunn.net/?p=208

Источник: http://habrahabr.ru/blogs/hardware/92701/

Комментарии: 0 » Метки:

You must be logged in to post a comment.