Назад | Перейти на главную страницу

Повреждение файла при копировании другого файла на рейде 1

У меня есть конфигурация RAID 1 из 2 дисков по 1 ТБ на коробке Fedora 12. Большая часть того, что хранится, - это видеофайлы с цифровыми метками. Проблема в том, что у меня был поврежден один из видеофайлов. Я скопировал замену из резервной копии и заменил плохой файл, и теперь он работает нормально. Однако после этого размер следующего пронумерованного файла изменится с 350 МБ до 200 КБ, и все, кроме примерно 0,5 секунды видео, исчезнет. Если я затем заменю этот файл, это произойдет со следующим по строке.

Пример:

Replace corrupt file 1.avi and file 2.avi shrinks to 200KB.
Replace now corrupted 2.avi and it works but 3.avi gets screwed up.

Я провел тесты SMART на дисках, и они сообщили, что все в порядке. Есть ли у кого-нибудь тесты, которые я могу провести, чтобы понять, что происходит?

EDIT: это двухдисковый программный RAID 1 с файловой системой ext4

Похоже, у вас проблемы с файловой системой. Размонтируйте файловую систему и запустите fsck -f на нем посмотреть. В -f flag указывает fsck запускаться, даже если файловая система кажется чистой.

Я не знаю, какие тесты вы ищете, которые скажут вам то, чего вы еще не знаете.

Файловая система повреждена.

Самым простым решением будет скопировать данные в другую систему (с работающей файловой системой), проверить их, а затем удалить RAID в существующей системе. После переформатирования дисков по отдельности и восстановления RAID вы можете снова перейти на существующую систему.

То же самое случилось со мной в системе Server 2003, которая использовала программный RAID Server 2003. Во время записи в массив произошел сбой питания или системный сбой, и диски вышли из синхронизации, поэтому файловая система показала те же симптомы, которые вы описываете. (Точно так же все тесты, которые я проводил, солгали мне и сказали, что диски и массив в полном порядке, хотя, очевидно, это не так.) Все, что копируется после определенной точки в массиве, будет повреждено. Данные будут действительны для первых ~ 500 КБ файла и после этого будут нежелательными. Изображения будут отображать верхние x% в порядке, а затем быть белыми внизу, документы будут содержать несколько страниц или строк с действительными данными, а затем будут тарабарщиной и т. Д. И если я добавлю файлы «до» точки повреждения, повреждение будет похоже, переход к следующему файлу, как если бы повреждение было смещено на ~ 500 КБ от определенной точки в массиве.

Если вы можете определить, какой диск в массиве содержит повреждение файловой системы, вы можете исправить проблему, вытащив диск с поврежденными данными и заставив массив перестроиться с исправного диска. (Предполагая, что повреждение присутствует только на одном диске, как это было для меня.) Это сработало для меня, и именно так я восстановил данные на моем поврежденном массиве. Имея всего лишь 2-х дисковый зеркальный RAID-массив, вы даже можете принудительно выполнить перестройку на основе каждого диска и посмотреть, какой массив работает, а какой в ​​итоге поврежден.

Я все еще не доверял ему после этого, поэтому я скопировал данные, ядерным оружием массив, переформатировал диски, переустановил ОС и предупредил всех, что я пнул бы их в их забавных битах, если бы я обнаружил, что они используют программный RAID в моей сети очередной раз. Я рекомендую вам сделать то же самое. Ну, по крайней мере, относительно данных. Хотите ли вы отказаться от программного RAID Linux и угрожать своим пользователям - это в большей степени личное предпочтение.

Вы можете попробовать Theodore Ts'o's debugfs.

http://linux.die.net/man/8/debugfs

Вы можете использовать его для интерактивной отладки файловой системы. Чтобы увидеть, какие inodes каким файлам соответствуют и так далее.