Это одна из тех областей, где SATA неоптимален. Проблема заключается в уровне протокола межсоединений устройств хранения данных, и, следовательно, не связана с тем, какое программное обеспечение вы используете. Использование другого копировщика файлов или другой операционной системы не может волшебным образом улучшить ситуацию, за исключением того, что он может попытаться установить разные значения времени ожидания, чтобы уменьшить влияние проблемы (что может или не может быть возможным в зависимости от аппаратного и микропрограммного обеспечения; см. Ниже). ).
Здесь есть несколько важных моментов:
- С SATA, если диск перестает отвечать на запросы, это может связать всю систему хранения, а не только один диск, который имеет проблемы. Он, безусловно, может связать весь контроллер, и, поскольку большинство потребительских систем имеют только один контроллер диска (тот, который встроен в материнскую плату), это означает, что все хранилища. Еще хуже, если диск выйдет из строя нестандартным и / или непредвиденным образом, что, безусловно, может произойти, если диск будет маргинальным. Вы можете быть заинтересованы в том, как один диск в аппаратном массиве SATA RAID-10 может привести к полной остановке всего массива? Ошибка сервера.
- Большинство потребительских дисков SATA имеют длительные периоды времени ожидания по умолчанию (порядка минут), и многие потребительские диски SATA не имеют настраиваемого контроля исправления ошибок . Так называемые накопители NAS часто имеют настраиваемую ERC, а высокопроизводительные накопители практически всегда имеют; такие накопители также могут иметь более короткие тайм-ауты по умолчанию (7 секунд является общим значением). Длительные периоды ожидания выгодны, если на диске хранится единственная копия данных, что, к сожалению, является обычным явлением в потребительских системах; они являются недостатком в конфигурации с резервированием или в тех случаях, когда вы просто хотите извлечь как можно больше из накопителя, прежде чем он еще больше испортится.
- Диск будет пытаться прочитать поврежденный сектор, пока не достигнет порогового значения тайм-аута или пока хост не сообщит об отмене. Так как шина SATA может быть связана ожиданием окончания чтения, ОС может не дать сигнал об отмене команды уровня хранилища, а в крайних случаях диски могут даже не очень хорошо реагировать на сброс шины SATA в такой ситуации.
Пункт № 1 является одним из основных пунктов продажи SAS на серверах; SAS имеет значительно лучшую обработку ошибок, чем SATA. Пункт № 2 является ограничением встроенного программного обеспечения накопителя, а № 3 действительно становится проблемой только из-за № 2.
Так что получается, что ОС выдает команду «чтение секторов» на диск, и отдельные сектора каким-то образом повреждены. Таким образом, диск переходит в режим повторных попыток, чтобы попытаться извлечь данные с пластин, снова и снова пытаясь считывать данные, пока не получит достаточно хороших данных, чтобы собственная коррекция ошибок диска ( FEC ) могла исправить оставшиеся ошибки. Если вам не повезло, этого может никогда не быть, но накопитель будет пытаться работать довольно долго, прежде чем решит, что это чтение не будет успешным.
Поскольку операционная система ожидает чтения, это как минимум замедлит процесс копирования до обхода, и в зависимости от конкретной архитектуры ОС может вызвать прерывистость ОС или даже зависание на время. Диск на данный момент занят исходным чтением и не будет отвечать на дальнейшие команды чтения, пока не завершится та, которая выполняется в данный момент (успешно или неудачно), и другое программное обеспечение, как правило, не будет работать лучше, чем его операционная система. работает на.
Следовательно, все, что вызывает чтение в другом месте (в идеале , только на поврежденном диске), будет вынуждено ждать в очереди, пока поврежденный диск либо не успешно прочитает рассматриваемый сектор, либо решит, что его нельзя прочитать. Из-за неоптимальной обработки SATA дисками, не отвечающими на запросы, это может означать, что не только диск, с которого вы копируете, будет задерживать ввод / вывод. Это может очень легко заставить другое программное обеспечение работать медленно или не отвечать, так как это программное обеспечение ожидает завершения другого запроса ввода-вывода, даже если операционная система способна справиться.
Также важно отметить, что дисковый ввод-вывод может происходить, даже если вы явно не обращаетесь к каким-либо файлам на диске. Двумя основными причинами этого могут быть исполняемый код загрузки по требованию и своп. Поскольку подкачка иногда используется, даже когда система не находится под давлением памяти, а исполняемый код загрузки по требованию распространен в современных системах и в современных форматах исполняемых файлов, непреднамеренная активность чтения с диска во время обычного использования является вполне реальной возможностью.
Как указано в комментарии к вопросу Matteo Italia , одной из смягчающих стратегий является использование другого межсоединения хранилища, что является сложным способом сказать «поместите диск в USB-корпус». Абстрагируясь от протокола USB запоминающего устройства , это изолирует проблемную часть SATA от остальной части вашей системы, что означает, что теоретически только проблемы ввода-вывода на этом диске должны затрагивать только операции ввода-вывода на этом конкретном диске.
В некотором смысле, именно поэтому SATA (в частности, SATA без ERC на уровне диска) часто не рекомендуется использовать для RAID (особенно для уровней RAID с избыточностью, которые среди стандартных - все, кроме RAID 0 ); длительные периоды ожидания и плохая обработка ошибок могут легко привести к выбрасыванию целого устройства из массива для одного поврежденного сектора, который RAID-контроллер мог бы обработать очень хорошо, если существует избыточность, и контроллер хранилища просто знает, что это проблема. SAS был разработан для больших массивов хранения, и, таким образом, ожидалось, что время от времени будут возникать проблемы на различных дисках, что привело к тому, что он был спроектирован так, чтобы изящно обрабатывать случай одного проблемного диска или запроса ввода-вывода.даже если диск не Проблемные диски не очень распространены в потребительских системах просто потому, что на них, как правило, установлено не так много дисков, а на тех, которые установлены практически, никогда нет избыточности; Поскольку SATA нацелена на замену PATA / IDE, а не SCSI (последняя является нишей, на которую ориентирована SAS), вполне вероятно, что ее функции и требования по обработке ошибок (или гарантии) были сочтены адекватными для предполагаемого варианта использования.