Несколько 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
.
status: на одном или нескольких устройствах произошла ошибка, приведшая к повреждению данных. Это может повлиять на приложения.
Действие: Восстановите соответствующий файл, если это возможно. В противном случае восстановите весь пул из резервной копии.
Возможно, мне что-то не хватает, но файл кажется совершенно нормальным, насколько я могу судить, и не требует восстановления, и при этом он не показывает никаких повреждений, несмотря на рекомендации ZFS.
я видел другие статьи с участием та же ошибка, но мне еще предстоит найти ответ на свой вопрос.
какой это постоянная ошибка с файлом? Есть ли проблема более низкого уровня с файлом, которая мне не очевидна? Если да, то почему бы это не было обнаружено shasum
как разница в файле?
С точки зрения непрофессионала, я не вижу ничего, что указывало бы на ошибку в этом файле.
Формулировка zpool status
немного вводит в заблуждение. Постоянная ошибка (в этом контексте) означает, что произошла ошибка ввода-вывода, которая была занесена в журнал ошибок SPA (Storage Pool Allocator) для этого пула. Это делает не обязательно означает безвозвратное повреждение данных.
Что вам следует сделать, это запустить zpool scrub
в бассейне. Когда очистка завершится, журнал ошибок SPA будет повернут и больше не будет отображать ошибки до очистки. Если очистка не обнаруживает ошибок, тогда zpool status
больше не будет показывать "постоянные" ошибки.
Что касается документации, там говорится, что таким образом регистрируются только «фатальные ошибки». Неустранимая ошибка - это ошибка ввода-вывода, которая не может быть автоматически исправлена ZFS, и поэтому была представлена приложению как сбой ввода-вывода. Напротив, если ввод-вывод был немедленно успешно повторен или если логический ввод-вывод был удовлетворен с избыточного устройства, это не будет считаться фатальной ошибкой и, следовательно, не будет регистрироваться как ошибка повреждения данных.
Фатальная ошибка не обязательно означает безвозвратную потерю данных, это просто означает, что в то время она не могла быть исправлена до того, как она распространится на приложение. Например, неплотный кабель или неисправный контроллер могут вызвать временные фатальные ошибки, которые ZFS описывает как «постоянные». Действительно ли это проблема, зависит от характера ввода-вывода и от того, способно ли приложение восстанавливаться после ошибок ввода-вывода.
РЕДАКТИРОВАТЬ: полностью согласен с @bahamat, что вам следует как можно скорее инвестировать в избыточность.
Постоянная ошибка означает, что в файле была ошибка контрольной суммы и не было достаточного количества реплик для восстановления. Это означает, что по крайней мере одно чтение вернуло поврежденные данные из-за ошибки ввода-вывода. Если бы все, что получило чтение, записало это обратно в тот же файл на диске, теперь у вас будет безвозвратное повреждение данных.
Глядя на конфигурацию вашего пула, похоже, что у вас нет избыточности. Это очень опасно. ZFS не дает вам возможности самовосстановления, но воля быть в состоянии сообщить вам, когда произошло повреждение данных. Обычно ZFS автоматически и незаметно исправляет поврежденные чтения, но в вашем случае это невозможно. Также похоже, что вы уже запустили zpool clear
поскольку CKSUM
счет 0
для обоих дисков.
К сожалению, без реплик узнать это невозможно.