Одним из прочих отличий (единственным?) жестких дисков "desktop" класса от тех же дисков "raid/enterprise" класса является поддержка ERC (Error Recovery Correction, Seagate), TLER(Time-Limited Error Recovery,Western Digital), CCTL (Command Completion Time Limit, Samsung/Hitachi). Эти технологии позволяют регулировать максимальное время
отведенное диску для самовосстановления данных.
В чем вообще говоря суть проблемы и для чего эти ERC нужны? Суть как говорится в песок, а точнее в том что, в случае возникновения ошибки диск может поступить двумя путями:
1) Пытаться исправить ошибку, например, то перечитать/переписать сектор N раз и сдаться через неопределённое (от нескольких секунд до нескольких минут) время.
2) Попытаться сделать это за строго ограниченное время и если не получилось, вернуть ошибку для операции
Рассмотрим ошибку чтения. В данном случае в варианте:
1) RAID контроллер/софтовый рейд видя*, что диск не отвечает просто выкинет** его из массива/пометит как сбойный. Результатом может стать пересинхронизация массива.
2) RAID, конкретно linux soft raid, получив от диска ошибку чтения, имея данные на других дисках попытается восстановить сбойный перезаписав сектор и вуаля - диск продолжает работать, массив жив, админ спит дальше.
Для записи почти то же самое:
1) Диск уходит "в себя", выкинут из рейда
2) Диск пытается совершить запись, но если приближается конец заданного периода, должен отремапить сектор. Что делать в случае если у него сие не получилось в спецификации написанно как-то смутно - "If the device is unable to complete data reallocation before the timer expires then the devices fails the command when the timer expires". Учитывая что к тому времени она [команда] скорее всего провалится в кэш диска и система будет думать что все хорошо, не очень понятно что случится, возможно от массива отвалится девайс :)
Не стоит выставлять write timeout слишком низким - возможен усиленный ремап вполне здоровых секторов, обращение к которым замедленно в связи, например, вибрацией диска.
Так же не стоит выставлять низкие значения если диск не работает в рейде - пускай диск пытается восстановить данные сам, ибо взять кусок тех же данных с другого диска возможности нет.
А как же собственно различие между "enterprise" & "desktop" дисками? Различие сводится к тому что первые поддерживают технологию и по умолчанию она включена. Вторые же могут поддерживать ( вообще говоря ATA8 спецификация все таки :), но по умолчанию выключена, хотя может быть включена в любое время. Данная настройка должна переживать hardware reset & soft reset, но выставляться в значение по умолчанию при включении питания. Таким образом на "десктопных" дисках нужно не забывать принудильно выставлять таймауты при загрузке системы.
Установка параметров поддерживается smartmontools начиная с 5.40
* На самом деле linux software raid не делает таймаутов, таймаут случается на уровне ATA/SCSI и пробрасывается на уровень md.
** На самом деле выкинет то он его после попытки восстановления данных при помощи записи в данный сектор, если таковая возможна. А вот если запись обломается, потому что диск ушел в себя при при попытке самовосстановления, то да, будет выкинут.
Ссылки:
спецификация, страница 299 TLER в Википедии
Обсуждение в linux-raid maillist
Подробнее про таймауты операций на диске.
Влияние вибрации на работу дисков UPDATE: Добавил немного про таймауты.