Неисправимая ошибка btrfs в неизмененном файле после прохождения очистки

У меня есть два относительно новых жестких диска 4T (WD Data Center Re WD4000FYYZ), отформатированных как btrfs с данными raid1 и метаданными raid1.

Я скопировал на том большой бинарный файл (~76 ГБ). Вскоре после копирования файла я запустил очистку btrfs. Ошибок не было.

Несколько месяцев спустя чистка вернула неисправимую ошибку в этом файле. Он не был изменен с момента первоначального копирования. Я мог бы добавить, что атрибуты SMART для обоих дисков не указывают на какие-либо ошибки (Current_Pending_Sector или что-то еще).

В системе с дисками нет памяти ECC.

Единственное, что я могу придумать, что могло бы вызвать такую ​​​​ошибку, это то, что при записи в другой файл, контрольные суммы данных которого содержались в том же блоке, что и некоторые контрольные суммы для большого файла, в памяти произошло некоторое повреждение, которое допустило неверные данные. загрязнить одну или несколько контрольных сумм для большого файла.

К сожалению, при переходе на btrfs я надеялся, что после того, как данные будут успешно загружены и очищены, вы можете быть уверены, что они останутся такими, если они не будут записаны (конечно, в конфигурации raid1/5/6). Очевидно, это не так.

Кто-нибудь может объяснить, как это могло произойти? Кроме того, если бы я сделал снимок тома, содержащего большой файл, был бы у меня по-прежнему доступ к исходным, неповрежденным данным из моментального снимка?


person R. Lochner    schedule 29.04.2016    source источник
comment
Вы запускали мемтест? Может бэдблоки? Имя файла упоминалось в dmesg? Это случайно не в ВМ? Другие файлы/иноды также повреждены? Произошло ли что-то особенное непосредственно перед тем, как он был поврежден, была ли система под большой нагрузкой или что-то в этом роде?   -  person basic6    schedule 08.08.2016
comment
У меня были обширные обсуждения в списке рассылки btrfs после того, как я опубликовал это. У меня действительно была плохая микросхема памяти. Иногда бит или биты переворачивались, повреждая блок контрольной суммы. Сами данные были хорошими, но зеркальные контрольные суммы были плохими из-за молчаливой ошибки памяти. Я заменил оперативную память, и проблема больше не появлялась.   -  person R. Lochner    schedule 09.08.2016
comment
Что ж, это объясняет. Плохая память может причинить все виды ущерба. Этого не произойдет из-за btrfs. Фактически, btrfs помог вам найти проблему с памятью, а также сообщил, какие файлы были повреждены. Я предлагаю вам опубликовать это как ответ на ваш вопрос.   -  person basic6    schedule 10.08.2016


Ответы (1)


Это скрытое повреждение данных было вызвано плохой картой памяти. Память заменили, проблема больше не появлялась.

person R. Lochner    schedule 11.08.2016