Несколько из них permanent errors
были опубликованы на моем Zpool сегодня.
pool: seagate3tb
state: ONLINE
status: One or more devices has experienced an error resulting in data
corruption. Applications may be affected.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
see: http://zfsonlinux.org/msg/ZFS-8000-8A
scan: none requested
config:
NAME STATE READ WRITE CKSUM
seagate3tb ONLINE 0 0 28
sda ONLINE 0 0 56
errors: Permanent errors have been detected in the following files:
/mnt/seagate3tb/Install.iso
/mnt/seagate3tb/some-other-file1.txt
/mnt/seagate3tb/some-other-file2.txt
Изменить: я уверен, что эти CKSUM
значения точны. Я редактировал данные и, возможно, исказил их по ошибке. Возможно, их было 0. К сожалению, я не могу найти окончательный ответ в своих заметках, и теперь ошибки устранены, поэтому я не уверен, но все остальное точно / отражает то, что сообщал zpool.
/mnt/seagate3tb/Install.iso
один пример файла, о котором сообщают, что он имеет постоянную ошибку
Вот где я запутался. Если я сравниваю мои «постоянные ошибки» Install.iso
с резервной копией того же файла в другой файловой системе, они выглядят одинаково.
shasum "/mnt/seagate3tb/Install.iso"
1ade72fe65902b2a978e5504aaebf9a3a08bc328 /mnt/seagate3tb/Install.iso
shasum "/mnt/backup/Install.iso"
1ade72fe65902b2a978e5504aaebf9a3a08bc328 /mnt/backup/Install.iso
cmp /mnt/seagate3tb/Install.iso /mnt/backup/Install.iso
diff /mnt/seagate3tb/Install.iso /mnt/backup/Install.iso
Файлы кажутся идентичными. Более того, файл работает отлично. Если я использую его в приложении, он ведет себя так, как я ожидал.
Как утверждают документы :
Ошибки повреждения данных всегда фатальны.
Но, основываясь на моих элементарных проверках файлов, я не уверен, что понимаю определение fatal
.
статус: на одном или нескольких устройствах произошла ошибка, приводящая к повреждению данных. Приложения могут быть затронуты.
Действие: Восстановите файл, если это возможно. В противном случае восстановите весь пул из резервной копии.
Может быть, я что-то упустил, но, насколько я могу судить, файл выглядит совершенно нормально, и не нуждается в восстановлении, и при этом он не показывает каких-либо повреждений, несмотря на рекомендацию от ZFS.
Я видел другие статьи с такой же ошибкой , но мне еще предстоит найти ответ на мой вопрос.
Что такое постоянная ошибка с файлом? Есть ли какая-то проблема более низкого уровня с файлом, которая просто не очевидна для меня? Если так, то почему бы не обнаружить это shasum
как разницу в файле?
С точки зрения непрофессионала, я не вижу ничего, что указывало бы на какую-либо ошибку с этим файлом.
Ответы:
Формулировка
zpool status
немного вводит в заблуждение. Постоянная ошибка (в этом контексте) указывает на то, что произошла ошибка ввода-вывода и была зарегистрирована в журнале ошибок SPA (распределитель пула хранения) для этого пула. Это не обязательно означает, что существует необратимое повреждение данных.Что вы должны сделать, это запустить
zpool scrub
в пуле. Когда очистка завершится, журнал ошибок SPA будет повернут и больше не будет отображать ошибки до очистки. Если очистка не обнаруживает ошибок, тоzpool status
больше не будут отображаться «постоянные» ошибки.Что касается документации, то здесь говорится, что таким образом регистрируются только «фатальные ошибки». Неустранимая ошибка - это ошибка ввода-вывода, которая не может быть автоматически исправлена ZFS и поэтому была представлена приложению как неудачный ввод-вывод. Напротив, если ввод-вывод был немедленно повторен успешно или логический ввод-вывод был выполнен с избыточного устройства, это не будет считаться фатальной ошибкой и, следовательно, не будет регистрироваться как ошибка повреждения данных.
Неустранимая ошибка не обязательно означает постоянную потерю данных, это просто означает, что в то время она не могла быть исправлена до того, как распространялась до приложения. Например, свободный кабель или неисправный контроллер могут вызвать временные фатальные ошибки, которые ZFS назвал бы «постоянными». Действительно ли это проблема, зависит от характера ввода-вывода и от того, способно ли приложение восстанавливаться после ошибок ввода-вывода.
РЕДАКТИРОВАТЬ: Полностью согласен с @bahamat, что вы должны инвестировать в избыточность как можно скорее.
источник
zpool scrub
сделал именно то, что вы предложили @ Том-Шоу, и ваше объяснение имеет смысл. Я больше не вижу никаких «постоянных ошибок» в этом массиве после очистки. Я не думал о фатальных ошибках в контексте неудачного чтения. Я думаю, что это просто временная ошибка ввода-вывода при чтении, как вы предлагаете. Я также полностью согласен с необходимостью резервирования.Постоянная ошибка означает, что в файле произошла ошибка контрольной суммы, и не было достаточно реплик для восстановления. Это означает, что хотя бы одно чтение вернуло поврежденные данные из-за ошибки ввода-вывода. Если что-либо получило чтение, то записало это обратно в тот же файл на диске, и теперь у вас будет невосстановимое повреждение данных.
Глядя на конфигурацию вашего пула, похоже, что у вас нет избыточности. Это очень опасно. Вы не получите любой из самовосстанавливающихся преимущества ZFS, но он будет иметь возможность сказать вам , когда было повреждение данных. Обычно ZFS автоматически и бесшумно исправляет испорченное чтение, но в вашем случае это невозможно. Выглядит так, как будто вы уже запустили,
zpool clear
потому чтоCKSUM
счетчик0
для обоих дисков.К сожалению, без реплик на самом деле нет способа узнать.
источник
zpool clear
очистит ли само сообщение об ошибке, а не только количество ошибок? Странно, что сообщение сохраняется, но ошибки не отображаются.CKSUM counts
это может быть контроллер, кабель или любое совместное оборудование между двумя дисками. Также возможно, что оба диска выходят из строя. В любом случае это подчеркивает необходимость добавления избыточности как можно скорее и проверки указанных файлов на наличие повреждений.