Рейтинг:0

btrfs - сбойный диск генерирует ошибки контрольной суммы, диск заменен, ошибки остаются

флаг ng

У меня была пара дисков по 3 ТБ в массиве btrfs raid1.

Один из этих дисков начал глючить (smartd показывает плохие сектора), поэтому я купил пару новых дисков на 8 ТБ, чтобы заменить оба диска в массиве.

Я заменил оба на btrfs заменить, и побежал баланс btrfs впоследствии - что не удается в следующем сообщении:

[5063.136378] Ошибка BTRFS (устройство sdc): сбой проверки родительского перехода на 5153170751488 разыскивается 1433374 найдено 1417912
[5063.140428] Ошибка BTRFS (устройство sdc): проверка родительского транзита не удалась на 5153170751488 разыскивается 1433374 найдено 1417912

Теперь я видел эти сообщения точно перед замена дисков, но теперь, когда оба диска были заменены, я полагаю, что это как-то связано с бтрфс.

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

Мне было интересно, как я мог, возможно:

  1. Узнайте, какие файлы повреждены, и восстановите их из резервной копии
  2. Сбросьте транзакцию в файловой системе, чтобы удалить ошибки
  3. Игнорировать ошибки при балансировке

... или любое другое разумное решение.

Спасибо!

paladin avatar
флаг id
Это может быть немного поздно, но я хочу немного объяснить о btrfs, о которых вы, кажется, не знаете. В отличие от многих других файловых систем, btrfs умеет вычислять контрольную сумму не только для метаданных, но и для самих данных. Обычно, когда btrfs обнаруживает какие-либо ошибки файловой системы, она автоматически пытается их исправить. Исправление ошибки означает использование резервной копии с DUP или RAID1. Если такая копия недоступна, btrfs просто заметит систему, что файл поврежден. Обычно системный администратор теперь должен использовать настоящую резервную копию для восстановления потерянных данных. Что вы сделали, так это игнорирование потери данных.
paladin avatar
флаг id
В следующий раз, когда вы увидите такую ​​ошибку, это не ошибка btrfs, а ваши данные повреждены, и вам следует восстановиться из резервной копии, если это возможно. Напротив, ext4 и другие файловые системы пытаются быть довольными состоянием метаданных. Вполне возможно потерять данные при использовании ext4 и не знать об этом. btrfs, с другой стороны, знает, когда данные потеряны, и это ключевое преимущество перед ext4.
dkd6 avatar
флаг ng
Привет, спасибо за разъяснения. В итоге я восстановил данные из резервной копии в только что отформатированную файловую систему. Глядя на похожие сообщения в Интернете, я мог видеть, что в большинстве случаев `dmesg` показывает путь к обнаруженным поврежденным файлам, но в моем случае я мог видеть только ошибки `parent transid verify failed`, которые я нахожу сбивающими с толку...
Рейтинг:0
флаг ng

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

После того, как я перенес данные с дисков, я попробовал две опасные команды: проверка btrfs --init-csum-tree и проверка btrfs --repair - ни то, ни другое не навредило, но и не решило проблему.

После переформатирования я снова перенес данные обратно в файловую систему, запустил баланс файловой системы btrfs и очистка файловой системы btrfs, и теперь все снова работает.

Ваше здоровье!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.