Я только что установил сервер FreeNAS с терабайтным диском. Я хочу, чтобы на каждой машине был только один жесткий диск, поэтому я собирал как можно больше данных и отправлял их по локальной сети в FreeNAS. Я заметил, что по крайней мере один файл не копируется должным образом и теперь поврежден. (Я также замечаю некоторые странные проблемы с разрешениями, но это уже другой вопрос.) Теперь, когда большая часть данных находится на сервере FreeNAS, есть ли автоматический способ проверки, что все остальное не повреждено?
Я не совсем уверен, как описать, как файл был поврежден. По сути, это был видеофайл размером 178 мегабайт, но при доступе к нему для воспроизведения или даже перемещения машина Windows, обращающаяся к нему, выдавала общее сообщение об ошибке не удалось получить доступ. Я использовал интерфейс веб-копирования FreeNAS, чтобы переместить файл, когда он был перемещен, файл был 76 мегабайт, и его нельзя было воспроизвести.
Всегда бегать:
cd /filesystem; \
find . -type f -exec md5sum {} \; >& /filesystem-md5.log
а потом
cd /filesystem-new; \
md5sum -c /filesystem-md5.log
до и после копирования большого количества данных.
Вы будете удивлены, сколько случайных искажений данных вы испытываете в реальном мире.
Когда вы найдете поврежденный файл, cmp -l badfile goodfile
попытаться понять природу коррупции.
Вот почему я прошу сквозную проверку целостности во всех случаях. К сожалению, производители файловой системы и ОС не относятся к этому серьезно.
Вы можете проверить Помощник. Думаю, есть и другие инструменты целостности.
Он создает базу данных из правил регулярных выражений, найденных в файле конфигурации. После инициализации этой базы данных ее можно использовать для проверки целостности файлов. Он имеет несколько алгоритмов дайджеста сообщений (md5, sha1, rmd160, tiger, haval и т. Д.), Которые используются для проверки целостности файла. Относительно легко можно добавить больше алгоритмов. Все обычные атрибуты файлов также могут быть проверены на несоответствие. Он может читать базы данных из более старых или новых версий. Дополнительную информацию смотрите на страницах руководства в дистрибутиве. Также есть начало мануала.