В вычислительной технике контроль восстановления после ошибок ( ERC ) ( Western Digital : восстановление после ошибок с ограничением по времени ( TLER ), Samsung / Hitachi : ограничение времени завершения команды ( CCTL )) — это функция жестких дисков , которая позволяет системному администратору настраивать объем время, которое микропрограмма накопителя может потратить на восстановление после ошибки чтения или записи. Ограничение времени восстановления позволяет улучшить обработку ошибок в аппаратных или программных средах RAID . В некоторых случаях возникает конфликт относительно того, должна ли обработка ошибок выполняться жестким диском или реализацией RAID, что приводит к тому, что диски помечаются как непригодные для использования, и к значительному снижению производительности, хотя в противном случае этого можно было бы избежать.
Современные жесткие диски имеют возможность восстанавливаться после некоторых ошибок чтения/записи путем внутреннего перераспределения секторов и выполнения других форм самотестирования и восстановления. Иногда этот процесс может занять несколько секунд или (при интенсивном использовании) минут, в течение которых диск не отвечает. Аппаратные RAID-контроллеры и программные реализации RAID предназначены для распознавания диска, который не отвечает в течение нескольких секунд, и помечают его как ненадежный, указывая на то, что его следует вывести из использования и восстановить массив на основе данных четности . Это длительный процесс, который снижает производительность, и если из-за дополнительной рабочей нагрузки выйдет из строя больше дисков, это может иметь катастрофические последствия.
Если сам диск по своей сути надежен, но имеет несколько поврежденных секторов, то TLER и подобные функции предотвращают ненужную пометку диска как «неисправного», ограничивая время, затрачиваемое на исправление обнаруженных ошибок, прежде чем сообщать контроллеру массива о неудачной операции. Затем контроллер массива может выполнить восстановление данных ограниченного объема, а не помечать весь диск как неисправный.
По сути, TLER и подобные функции ограничивают производительность обработки ошибок на диске, позволяя аппаратным RAID-контроллерам и программным реализациям RAID обрабатывать ошибки в случае возникновения проблем.
Как правило, корпоративные диски Western Digital, такие как Raptor , Caviar RE2 и RE2-GP (RAID Edition), поставляются с параметрами TLER Read «Enabled» (7 секунд) и TLER Write «Enabled» (7 секунд), тогда как настольные диски, такие как Caviar SE, SE16 и GP поставляются с отключенными чтением и записью TLER (для отключения установлено значение 0 секунд).
Лучше всего, чтобы TLER был «включен» в RAID-массиве, чтобы предотвратить превышение времени восстановления после ошибки чтения или записи диска порогового значения тайм-аута реализации RAID. Если время ожидания диска истекло, жесткий диск необходимо будет повторно добавить в массив вручную, что потребует повторной сборки и повторной синхронизации жесткого диска. Включение TLER позволяет предотвратить это, прерывая исправление ошибок до истечения времени ожидания, чтобы сообщать об ошибках только для сегментов данных. Результатом является повышение надежности RAID-массива.
В автономной конфигурации TLER должен быть отключен. Поскольку диск не является резервным, сообщение о том, что сегменты вышли из строя, только увеличит необходимость ручного вмешательства. Без аппаратного RAID-контроллера или программной реализации RAID для удаления диска нормальная возможность восстановления (без TLER) наиболее стабильна.
В конфигурации программного RAID полезность TLER зависит от операционной системы. Например, во FreeBSD стек ATA/CAM управляет таймаутами и настроен на постепенное увеличение таймаутов по мере их возникновения. Таким образом, если настольный диск без TLER начинает задерживать ответ на чтение сектора, FreeBSD будет повторять чтение с последовательно увеличивающимися таймаутами, чтобы предотвратить преждевременное удаление диска из массива.
Файловая система ZFS была написана для немедленной записи данных в сектор, который сообщается как плохой или чтение которого занимает слишком много времени (например, диски без TLER); обычно это приводит к немедленному переназначению слабого сектора на большинстве дисков. [ нужна цитата ]
Значения времени ожидания отключения для разных аппаратных RAID-контроллеров могут различаться у разных поставщиков; таким образом, TLER должен сработать до того, как контроллер отключит привод. Например, 3ware 9650SE использует в качестве тайм-аута 20 секунд, [1] тогда как для логики LSI, используемой в IBM x-серии, он составляет 10 секунд. [2]
Широко доступная технология Intel Matrix RAID/Intel Rapid Storage , встроенная в серверные материнские платы Intel и современные материнские платы для настольных ПК, представляет собой псевдоаппаратный контроллер, а не настоящий аппаратный RAID-контроллер.
Linux mdadm просто удерживает диск и позволяет диску завершить восстановление, однако время ожидания команды по умолчанию для уровня диска SCSI (/sys/block/sd?/device/timeout) составляет 30 секунд, [3] после чего он попытается выполнить сброс. диск, а если это не поможет, отключите диск. [4]
Стандарт ATA-8 2006 года определяет команду управления восстановлением ошибок SCT . [5] Для жестких дисков, реализующих этот интерфейс, можно использовать утилиту smartctl (часть пакета smartmontools ) для изменения времени ожидания восстановления после ошибок с помощью . [6] В 2018 году в ACS-4 добавлена функция сохранения этого параметра после перезагрузки; теперь он поддерживается smartctl. [7]-l scterc
Управление тайм-аутом с помощью утилиты smartctl может работать не на всех жестких дисках, поскольку некоторые производители изменили свои настольные накопители, чтобы не включать поддержку параметра ERC, [8] [9] якобы для того, чтобы заставить продавать свои более дорогие RAID/ модели предприятия. [ нужна цитация ] Ричард Грегори, написавший оригинальный патч ERC для smartctl, сообщает, что Western Digital отказалась от поддержки ERC, выпустив новую модель без предварительного уведомления. [6]
В Windows помимо smartctl (которая является кроссплатформенной) доступна программа HDAT2. [6]
SBC-4 описывает поле RECOVERY TIME LIMIT на странице режима восстановления ошибок чтения-записи, используемое для определения того, как диск выполняет восстановление после ошибок. [10] Программа sdparm может изменить этот параметр с помощью --set=RTL
. [11]
Утилита WDTLER.EXE позволяет включать или отключать параметр TLER на жестких дисках Western Digital. Эта утилита написана для DOS . Утилита работает и вносит изменения на все совместимые жесткие диски Western Digital, подключенные к компьютеру. Изменение сохраняется при циклическом включении питания. [6] Western Digital упоминала этот инструмент в FAQ. [12]
Утилита поставляется с тремя пакетными файлами: TLERSCAN.BAT для получения текущего состояния настройки TLER на всех жестких дисках, TLER-ON.BAT для включения TLER и TLER-OFF.BAT для отключения TLER. Входящий в комплект TLER-ON.BAT установит время чтения и записи TLER на семь секунд. Утилиту WDTLER.EXE можно использовать напрямую с параметрами пользовательского тайм-аута.-r# -w#
Western Digital утверждает, что использование утилиты WDTLER.EXE на новых накопителях может повредить прошивку и сделать диск непригодным для использования. Утилита больше не доступна в Western Digital, и на новых накопителях невозможно изменить настройку TLER. Диски RE подходят только для RAID-массивов, а Caviar подходят только для использования без RAID. Утилита по-прежнему работает для старых дисков [ каких? ] .
В 2009 году служба поддержки клиентов Hitachi заявила, что существует инструмент для изменения ERC (называемый CCTL). [12]