В вычислительной технике управление восстановлением после ошибок ( 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 (7 секунд) и включенной TLER Write (7 секунд), в то время как настольные диски, такие как Caviar SE, SE16 и GP, поставляются с отключенными TLER Read и Write (настроенными на 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 Logic, используемого в IBM x-series, он составляет 10 секунд. [2]
Широко распространенная технология Intel Matrix RAID/Intel Rapid Storage , встроенная в серверные материнские платы Intel и современные материнские платы для настольных ПК, представляет собой псевдоаппаратный контроллер, а не настоящий аппаратный RAID-контроллер.
Linux mdadm просто удерживает и позволяет диску завершить восстановление, однако тайм-аут команды по умолчанию для уровня SCSI Disk (/sys/block/sd?/device/timeout) составляет 30 секунд, [3] после чего он попытается сбросить настройки диска, а если это не удастся, переведет диск в автономный режим. [4]
Стандарт ATA-8 2006 года определяет команду SCT Error Recovery Control . [5] Для жестких дисков, реализующих этот интерфейс, можно использовать утилиту smartctl (часть пакета smartmontools ) для изменения тайм-аута восстановления после ошибки с помощью . [6] В 2018 году в ACS-4 была добавлена функциональность для сохранения настройки после перезагрузки; теперь она поддерживается smartctl. [7]-l scterc
Управление поведением тайм-аута с помощью утилиты smartctl может работать не на всех жестких дисках, поскольку некоторые производители изменили свои настольные диски, чтобы не включать поддержку параметра ERC, [8] [9] предположительно для того, чтобы заставить продавать свои более дорогие модели RAID/enterprise. [ необходима цитата ] Ричард Грегори, который написал оригинальный патч ERC для smartctl, сообщает, что Western Digital отказалась от поддержки ERC, выпустив новую модель без уведомления. [6]
В Windows программа HDAT2 доступна в дополнение к smartctl (которая является кроссплатформенной). [6]
SBC-4 описывает поле RECOVERY TIME LIMIT на странице режима восстановления ошибок чтения-записи, используемое для определения того, как диск выполняет восстановление после ошибок. [10] Программа sdparm может изменить эту настройку с помощью --set=RTL
. [11]
Утилита WDTLER.EXE позволяет включать или отключать параметр TLER на жестких дисках Western Digital. Эта утилита написана для DOS . Утилита работает и вносит изменения во все совместимые жесткие диски Western Digital, подключенные к компьютеру. Изменения сохраняются после выключения и повторного включения питания. 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. Утилита по-прежнему работает для старых дисков [ which? ] .
В 2009 году служба поддержки клиентов Hitachi заявила, что существует Feature Tool для изменения ERC (называемый CCTL). [12]
Seagate предоставляет утилиту openSeaChest , позволяющую вам опрашивать и изменять множество настроек прошивки, включая TLER. Если вы не можете использовать для установки TLER, соответствующие команды командной строки — и .smartctl -l scterr,x,y
openSeaChest_Configure -d /dev/sg0 --sctReadTimer
openSeaChest_Configure -d /dev/sg0 --sctWriteTimer