Рейтинг:0

Начинающий пользователь btrfs: множество ошибок контрольной суммы и ошибок ввода/вывода

флаг nl

Сосед по дому предложил мне использовать btrfs вместо того, что я делал до сих пор, то есть использовать mdadm с клонированными дисками и добавлять в массив дополнительный диск для «клонирования» резервной копии. В системе три диска, все физически разные модели:

  • /dev/sda: TOSHIBA HDWQ140
  • /dev/sdb: HGST HUS724040AL
  • /dev/sdc: WDC WDS250G2B0B

Что ж, я установил btrfs, но теперь он работает уже почти год, и я обнаружил, что мне нужно было запускать еженедельное задание cron, чтобы «очистить» его.Я начал пытаться настроить скрипт для этого, хотя это кажется глупой системой DIY, которая требует, чтобы вы погуглили скрипт (лучший хит, который я нашел, был где-то вроде 2014) и установил его, чтобы ваша файловая система работала.

Пока я занимался всеми этими административными делами, я обнаружил некоторые файлы, которые нужно было переместить... Я пропущу кровавые подробности, но перемещение файлов из одной файловой системы btrfs в другую и обратно приводило к всевозможным "вводу/выводу". ошибки" (никогда не видел такого с ext4), и даже этот драгоценный камень:

4 января 21:19:19 ядро ​​хоста: [9771285.171522] попытка доступа за пределы устройства
4 января 21:19:19 ядро ​​хоста: [9771285.171522] sda1: rw=1, хочу=70370535518208, лимит=7814035087
4 января 21:19:19 ядро ​​хоста: [9771285.171529] Ошибка BTRFS (устройство sda1): bdev /dev/sda1 ошибки: wr 1, rd 0, сброс 0, повреждение 5, gen 0

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

Так что да, я мог наблюдать одновременный сбой тройного диска, или btrfs просто повреждает мои файлы для меня?

Кроме того, каждый пост от знающих людей btrfs включает в себя милое маленькое «ну, вы должны восстановить это из резервных копий… вы делать у вас есть резервные копии, не так ли». Так скажите мне, ребята, что именно вы используете для резервного копирования жесткого диска емкостью 4 ТБ? тогда какая польза от резервных копий на жесткие диски?

Итак, серьезные вопросы:

  1. Являются ли эти ошибки контрольной суммы действительно нормальными и ожидаемыми?
  2. Почему я вижу их в файлах, которые были скопированы только сегодня?
  3. Достаточно ли обычных скрабов для защиты от этого?
  4. Должен ли я покупать новые жесткие диски и выбрасывать все те, которые в настоящее время находятся в машине, потому что они действительно выходят из строя?
  5. Как делать Вы рекомендуете создавать резервные копии дисков объемом несколько терабайт?

Обновление 07.01.2022: я побежал смартктл на всех дисках, и они не сообщают о каких-либо проблемах. Необработанный UDMA_CRC_Error_Count равен 0 для всех дисков. Попытка восстановить поврежденные файлы... tar-файл, скопированный на машину, не удалось выполнить после нескольких файлов с ошибкой ввода-вывода. На самом деле понятия не имею, что здесь происходит:

  • Если бы диски или кабели были неисправны, это бы отразилось в SMART, верно?
  • Если бы процессор или память были плохими, система не работала бы безупречно? (В настоящее время до 115 дней без явных проблем)?
  • Если бы это была повсеместная ошибка с btrfs, разве она не распространилась бы по всему Интернету?

Так где же на самом деле может быть проблема?

флаг in
Что ж, есть причина, по которой все серьезные дистрибутивы, испробовавшие btrfs, отвернулись от него. Он просто недостаточно стабилен, чтобы использовать его в продакшене.
djdomi avatar
флаг za
а кто-то предпочел ZFS, а кто-то опять нет ;)
флаг in
Относительно: «Как сделать резервную копию 4 ТБ»: 4 ТБ — это ничто. В настоящее время вы получаете это в обычном потребительском ПК. Вы создаете резервную копию на другом диске емкостью 4 ТБ (или больше в избыточном RAID) или, что предпочтительнее, на большем дисковом массиве, который позволяет выполнять добавочные резервные копии. То, как вы выполняете резервное копирование, действительно зависит от вашей модели угроз, если вы хотите защитить только от сбоя оборудования (достаточно одного второго диска) или от другой потери данных (криптотрояны, случайные удаления и т. д.)
Рейтинг:0
флаг nl

Я отвечаю на свой собственный вопрос, потому что я думаю, что это интересно и может быть кому-то полезно.

TL;DR Основной причиной сообщаемых проблем, по-видимому, был сбой DRAM, а не сбой жестких дисков.

  1. Нет, эти контрольные суммы не являются нормальными и ожидаемыми. Другая система с той же версией btrfs работала отлично. Они указывают на что-то неладное, но не обязательно с дисками. См. следующий пункт.
  2. Они появляются во вновь скопированных данных, потому что в системе произошел серьезный сбой DRAM, подтвержденный X86MemTest. Только одна из двух флешек была неисправна, и случалось так, что это была флешка, сопоставленная с более высокой памятью, поэтому только тогда, когда вся младшая память использовалась (редко, но чаще для больших файлов), происходили сбои. Вот почему они не повлияли на ядро.
  3. Обычные скрабы могли обнаружить проблему раньше. Обычные очистки не помогают, когда у вас есть диск (например, /dev/sdc), который не является частью зеркала, потому что, хотя он и видит ошибку контрольной суммы, у него нет никакой надежды ее исправить - это по сути является ограничением btrfs, где они могли бы выбрать функцию контрольной суммы с большим расстоянием Хэмминга, но вместо этого выбрали ту, которая быстрее вычислялась (я полагаю).
  4. Я купил новые жесткие диски, которые могут служить резервными копиями, но различные тесты SMART и другие усилия показывают, что текущие диски, вероятно, в порядке. «Все диски выходят из строя одновременно», вероятно, является хорошим признаком того, что проблема не жесткие диски.
  5. Как уже отмечалось, большие диски стали дешевыми... и, учитывая, что диски сами по себе не являются точкой отказа, идея использования жестких дисков для резервного копирования, похоже, по-прежнему актуальна.
Spooler avatar
флаг us
Это одна из причин, по которой память ECC *настоятельно* рекомендуется в системе BTRFS (и системах ZFS). Эти системы управления данными отлично справляются с проблемами во вторичном/третичном хранилище, но ошибки первичного хранилища могут вывести из строя самые большие массивы.
Spooler avatar
флаг us
Вы также можете рассмотреть возможность кластеризации, чтобы решить эту проблему, выполняя контрольные суммы в трех независимых системах, чтобы установить консенсус о целостности данных и предотвратить любой сбой системы для уничтожения данных. Это не дешевле, чем ECC RAM, но в некоторых случаях может иметь смысл сформировать кластер, а не вкладывать больше средств в отдельные узлы (например, если необходимое потребительское оборудование уже есть). Ни одна из этих файловых систем не может кластеризоваться между узлами сама по себе, поэтому то, что я предлагаю, должно быть сделано с использованием чего-то вроде GlusterFS или DRBD (то, что я предлагаю, также не просто).
Greg Nelson avatar
флаг nl
Спасибо @Spooler. Я *думал*, что моя материнская плата (Gigabyte Aorus B450) поддерживает ECC RAM, но мелким шрифтом написано «в режиме без ECC». Просто для ясности: это домашний сервер, поэтому у меня не так много места для настройки кластера машин.

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

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