Так как raid5 вычисляет четность, он должен уметь распознавать повреждение данных без вывода сообщений на одном диске.
Нету. Можно было полностью стереть сектор со случайными данными, а RAID5 не сломал бы ресницу. У RAID1 такая же проблема.
В целом, RAID не обеспечивает проверку целостности данных в режиме реального времени. Он обеспечивает отказоустойчивость в случае отказа одного (или нескольких, с некоторыми уровнями RAID) диска. Это две совершенно разные вещи.
Если вы ищете что-то, чтобы поймать повреждение файла, вам нужна поддержка файловой системы. RAID не делает этого. По крайней мере, не по себе.
Чтобы ответить на ваши конкретные вопросы:
RAID1 реализован просто как два (или более) одинаковых зеркала. Когда зеркала не согласуются с содержимым сектора, происходит коррупция. Дело в том, что система RAID не всегда может знать об этом, поскольку она обычно не считывает все зеркала, когда ее просят получить данный сектор. Для эффективности он, скорее всего, просто назначит один диск для его чтения (надеюсь, тот, чьи головки в данный момент находятся ближе всего к нему).
Предположим, что во время операции "очистки", когда системе RAID явно предлагается проверить согласованность всех ее данных, обнаруживается несогласованность. Вопрос о том, как устранить это несоответствие, не имеет простого ответа. Обратите внимание, что эта проблема в равной степени влияет на RAID5, как и на RAID1, а также на другие уровни RAID.
В RAID1 несоответствие появляется в виде двух зеркальных секторов, содержащих разные данные. Как система RAID решает, какой сектор представляет правильные данные? Ну, это детали реализации, и я, честно говоря, не знаю, как именно реализована система Linux. Но проблема фундаментальна: зеркальные секторы разные, и, возможно, нет никаких указаний на то, почему они стали такими. Таким образом, лучшее, что может сделать система RAID, - это подбросить монету: выбрать случайную, чтобы получить "правильные" данные.
В RAID-массиве с 3 дисками несоответствие появляется в виде тройки секторов, чей сектор четности неверен. Вопрос в том, какой из 3 секторов не так? Опять же, нет очевидного ответа. Любой из трех может быть испорчен, и, вероятно, нет никакого способа узнать. Если вы должны выбрать один сектор для пересчета из двух других, у вас есть шанс 1 в 3 выбрать тот, который был действительно поврежден. Это показывает, что RAID1 на самом деле "безопаснее", чем RAID5, в этом смысле. RAID1 имеет 50% выбора неправильного сектора, в то время как RAID5 имеет 67% выбора неправильно.
Подводя итог: RAID не предназначен для обнаружения ошибок диска по мере их возникновения. RAID обеспечивает отказоустойчивость при сбоях всего диска. Ничего более.