Идея зеркального отражения заключается в том, что если одна сторона зеркала выходит из строя, другая должна взять верх. В идеальном мире стороны также должны работать в тандеме, чтобы повысить производительность чтения, когда доступны обе стороны зеркала.
Тем не менее, если одна сторона зеркала выйдет из строя, то все операции чтения в полете на неисправное устройство не будут выполнены, возможно, после задержки.Это нормально и ожидаемо: команда была отправлена на устройство, которое внезапно перестало существовать и способно ответить на команду, что приведет к возникновению некоторой ошибки. Ядро, скорее всего, будет регистрировать эти сбои, чтобы предупредить администратора о том, что «что-то плохое только что произошло». Система может быть настроена на вывод этих важных событий ядра на консоль.
Лакмусовый тест для любого решения по зеркалированию заключается в том, действительно ли эти ошибки распространяются на уровень пользовательского пространства, что приводит к тому, что пользовательские приложения получают ошибки ввода-вывода (или, что еще хуже, неверные данные). Если настройка зеркала работает должным образом, пока другая сторона зеркала работает должным образом, приложения пользовательского пространства должны быть незатронуты, за исключением того факта, что считывание заняло немного больше времени, чем обычно, и система выполнила некоторую диагностику ошибок ввода / вывода происходит на недоступном сейчас устройстве. Ни один из них не должен заметно влиять на хорошо управляемое пользовательское программное обеспечение.
Если процессы пользовательского пространства (а не просто код Btrfs в ядре) увидели ошибки ввода-вывода в результате вашего эксперимента, и вы можете, по крайней мере, достаточно последовательно воспроизвести поведение, вы, возможно, столкнулись с ошибкой в коде Btrfs. , В этом случае вы можете подать отчет об ошибке. Особенно учитывая, что это Debian, я бы посоветовал сначала подать отчет об ошибке в системе отслеживания ошибок Debian и позволить им передать его разработчикам ядра, если они сочтут это оправданным. Убедитесь, что вы включили как можно больше подробностей, включая точные команды, которые вы выполняете, точные версии всего, что есть, точный текст сообщений об ошибках, точное описание настроек вашего хранилища и все, что вы можете об этом подумать. помощь в поиске проблемы.