xekanet
Цитата:
При записи/чтении - ни на каком. Уже очень давно вместо CRC используется ECC. Это позволяет не только определить наличие ошибки, но и, очень часто, скорректировать ее (есть определенные ошибки, на которые действует ECC).
ECC считается перед записью инфы в сектор, насколько знаю, электроникой винта. Т.е. это хардверная реализация. Она работает в реальном времени. Также в реальном времени определяется/корректируется ошибка при чтении. На самом деле этих ошибок возникает много, просто они корректируются (как с повторным перечитыванием на следующем обороте, так и без него).
Данные, передаваемые по интерфейсу, защищаются CRC. Да, на этапе передачи используется CRC, но она далеко не всегда отлавливает ошибку. Эта CRC не идет в сектор, она только для интерфейса. Ошибок интерфейса зачастую происходит очень много (глючный шлейф и т.д.), и в некоторых случаях не удается зафиксировать их. Тогда и происходит искажение данных: повторная передача по интерфейсу не выполняется, и глючная инфа записывается винтом. Разумеется, ECC рассчитывается уже в винте для искаженной инфы...
Этим объясняется идентичность глюка в структурах ФС при повторных чтениях: большинство интерфейсных ошибок устраняется повторной передачей при "срабатывании" интерфейсной CRC, и при чтении не так уж этои глюки заметны, но вот когда при записи, хотя бы один раз структура испортилась, это уже видно, т.к. зафиксировано на винте.
Нужно отметить, что, в отличие от ошибок чтения, которых происходит много при нормальной работе винта (они убираются ECC, см. что-то типа Hardware ECC recovered RAW на Сигейте), ошибок интерфейса при исправном железе нет вообще.
Цитата:
на каком этапе считается CRC (которая отвечает за данные) которая идёт в сектор?
При записи/чтении - ни на каком. Уже очень давно вместо CRC используется ECC. Это позволяет не только определить наличие ошибки, но и, очень часто, скорректировать ее (есть определенные ошибки, на которые действует ECC).
ECC считается перед записью инфы в сектор, насколько знаю, электроникой винта. Т.е. это хардверная реализация. Она работает в реальном времени. Также в реальном времени определяется/корректируется ошибка при чтении. На самом деле этих ошибок возникает много, просто они корректируются (как с повторным перечитыванием на следующем обороте, так и без него).
Данные, передаваемые по интерфейсу, защищаются CRC. Да, на этапе передачи используется CRC, но она далеко не всегда отлавливает ошибку. Эта CRC не идет в сектор, она только для интерфейса. Ошибок интерфейса зачастую происходит очень много (глючный шлейф и т.д.), и в некоторых случаях не удается зафиксировать их. Тогда и происходит искажение данных: повторная передача по интерфейсу не выполняется, и глючная инфа записывается винтом. Разумеется, ECC рассчитывается уже в винте для искаженной инфы...
Этим объясняется идентичность глюка в структурах ФС при повторных чтениях: большинство интерфейсных ошибок устраняется повторной передачей при "срабатывании" интерфейсной CRC, и при чтении не так уж этои глюки заметны, но вот когда при записи, хотя бы один раз структура испортилась, это уже видно, т.к. зафиксировано на винте.
Нужно отметить, что, в отличие от ошибок чтения, которых происходит много при нормальной работе винта (они убираются ECC, см. что-то типа Hardware ECC recovered RAW на Сигейте), ошибок интерфейса при исправном железе нет вообще.