Рейтинг:0

Synology - Том BTRFS аварийно завершил работу и был восстановлен. Почему он разбился?

флаг gb

Это вскрытие, я размещаю информацию для людей, у которых может возникнуть эта проблема в будущем.

Это произошло на Synology RS2818RP+ с Synology DSM 6.2-25556. Система содержит процессор Xeon и память ECC. Он имеет 8 x HUH721010ALE604 (HGST WD Ultrastar DC HC510 10 ТБ, 7200 об/мин, SATA), содержащих RAID6. Мэриленд множество. Файловая система — BTRFS.

(ПРИМЕЧАНИЕ, это НЕ BTRFS RAID, а скорее «обычный» RAID с BTRFS поверх для таких преимуществ, как контрольное суммирование/моментальные снимки и т. д.)

Прошлой ночью, когда я получил электронное письмо от NAS, в котором говорилось

произошел сбой тома 1, возможно, в этом случае могут быть повреждены другие файлы. Перейдите в Диспетчер хранения > Том для получения дополнительной информации.

Рейтинг:1
флаг gb

Я посетил WebGUI. В системе вообще не было никаких ошибок, кроме отключения тома.

  • Статус SMART каждого диска был проверен и казался ОК
  • «Диспетчер хранилища» показал «Здоровый»
  • «Пул хранения» показал «Здоровый»

Только "громкость" показала крах.

Я подключился по SSH и проверил. mdadm --D /dev/md2 где был мой массив. Это показывало Состояние: чистый, деградированный

Я проверил dmesg и нашел это:

[5638907.327288] ------------[ вырезать здесь ]------------
[5638907.332247] ВНИМАНИЕ: ЦП: 3 PID: 10234 в fs/btrfs/extent-tree.c:4207 btrfs_write_dirty_block_groups+0x365/0x390 [btrfs]()
[5638907.343601] BTRFS: транзакция прервана (ошибка -2)
[5638907.343603] Модули связаны в: nfsd exportfs rpcsec_gss_krb5 cifs udf isofs loop tcm_loop(O) iscsi_target_mod(O) target_core_ep(O) target_core_multi_file(O) target_core_file(O) target_core_iblock(O) target_core_mod(O) syno_extent_ep(O) rodsp hid_generic usbhid hid usblp usb_storage denverton_synobios(PO) overlay exfat(O) btrfs synoacl_vfs(PO) hfsplus md4 hmac bnx2x(O) mdio mlx5_core(O) mlx4_en(O) mlx4_core(O) mlx_compat(O) qede(O) qed(O) ) atlantic(O) tn40xx(O) i40e(O) ixgbe(O) be2net(O) igb(O) i2c_algo_bit e1000e(O) vxlan ip6_udp_tunnel udp_tunnel fuse vfat fat crc32c_intel aesni_intel glue_helper lrw gf128mul ablk_helper arc4 cryptd ecryptfs sha256_generic ecb aes_x86_64 authenc des_generic ansi_cprng cts md5 cbc cpufreq_powersave cpufreq_performance процессор acpi_cpufreq cpufreq_stats
[5638907.425092]  dm_snapshot dm_bufio crc_itu_t crc_ccitt quota_v2 quota_tree psnap p8022 llc sit tunnel4 ip_tunnel ipv6 zram sg etxhci_hcd xhci_pci xhci_hcd uhci_hcd ehci_pci ehci_hcd usbcore usb_common [last unloaded: denverton_synobios]
[5638907.448308] CPU: 3 PID: 10234 Comm: btrfs-transacti Tainted: P O 4.4.59+ #25556
[5638907.457047] Название оборудования: Synology Inc. RS2818RP+/Type2 — Board Product Name1, BIOS M.212 01.11.2019
[5638907.466571] 0000000000000000 ffff880068a0fc50 ffffffff812bf70d ffff880068a0fc98
[5638907.474851] fffffffa0939b8d ffff880068a0fc88 ffffffff8104b7cd ffff8801704f9e00
[5638907.483132] ffff88003b616338 00000000000000001 00000000fffffffe ffff8801704f9f50
[5638907.491422] Отслеживание вызовов:
[5638907.494179] [<ffffffff812bf70d>] dump_stack+0x4d/0x70
[5638907.499623] [<ffffffff8104b7cd>] warn_slowpath_common+0x7d/0xc0
[5638907.505932] [<ffffffff8104b859>] warn_slowpath_fmt+0x49/0x50
[5638907.511996] [<ffffffffa0892d45>] btrfs_write_dirty_block_groups+0x365/0x390 [btrfs]
[5638907.520056] [<ffffffffa0932df8>] commit_cowonly_roots+0x230/0x2d1 [btrfs]
[5638907.527250] [<ffffffffa08a90e8>] btrfs_commit_transaction+0x528/0xcb0 [btrfs]
[5638907.534793] [<ffffffffa08a9905>] ? start_transaction+0x95/0x3d0 [btrfs]
[5638907.541810] [<ffffffffa08a387c>] transaction_kthread+0x1ec/0x220 [btrfs]
[5638907.548915] [<ffffffffa08a3690>] ? btrfs_cleanup_transaction+0x510/0x510 [btrfs]
[5638907.556701] [<ffffffff810672a6>] нить+0xc6/0xe0
[5638907.561883] [<ffffffff810671e0>] ? kthread_create_on_node+0x180/0x180
[5638907.568717] [<ffffffff81567abf>] ret_from_fork+0x3f/0x80
[5638907.574423] [<ffffffff810671e0>] ? kthread_create_on_node+0x180/0x180
[5638907.581346] --- [ конец трассировки 27185b26c2db1370 ] ---
[5638907.586280] BTRFS: ошибка (устройство md2) в btrfs_write_dirty_block_groups:4207: errno=-2 Нет такой записи
[5638907.595721] Информация BTRFS (устройство md2): принудительно только чтение
[5638907.600997] Предупреждение BTRFS (устройство md2): пропуск фиксации прерванной транзакции.
[5638907.608618] BTRFS: ошибка (устройство md2) в cleanup_transaction:2019: errno=-2 Нет такой записи
[5638907.617108] Информация BTRFS (устройство md2): в delayed_refs НЕТ записи

Итак, данные были там, а массив был доступен только для чтения. Мои исследования привели меня к этому SuSe KB: https://www.suse.com/support/kb/doc/?id=000018769

Я ссылаюсь на ту же ошибку, что и получил BTRFS: транзакция прервана (ошибка -2).

В статье говорится

Хорошо, что это ПРЕДУПРЕЖДЕНИЕ, а не фатальная ошибка. ПРЕДУПРЕЖДЕНИЯ, подобные этому, например. Что касается квоты, обычно это вещи только во время выполнения, которые исправляются BTRFS после выдачи ПРЕДУПРЕЖДЕНИЯ. Неплохая проблема.

Что несколько успокоило.

я побежал

syno_poweroff_task -d

Чтобы отключить все службы Synology, которые могут обращаться к тому. Это останавливает WebUI и т. д., но оставляет включенным SSH.

Затем я сделал

Размонтировать/объем1 

Чтобы остановить ввод-вывод на том (хотя он уже был в режиме RO на выходе dmesg выше. Затем я сделал бтрфск на мд2 устройство. Вывод ниже

# btrfsck /dev/md2
Безгильзовая функция Syno включена.
Проверка файловой системы на /dev/md2
UUID: 7a29febb-e9b5-4f77-afd7-4e1e10971340
проверка экстентов
проверка дерева свободного пространства
проверка корней фс
проверка csums
проверка корневых ссылок
найдено 30769182859264 байта используется ошибка 0
всего csum байт: 44052
всего байт дерева: 50331648
Всего байт дерева fs: 24477696
общее количество байтов дерева экстента: 23691264
btree пустых байтов пространства: 1190925
выделено блоков данных файла: 30769149861888
ссылка 30769131089920

И в dmesg:

[5644451.646580] Информация BTRFS (устройство md127): использование дерева свободного пространства
[5644451.652561] Информация BTRFS (устройство md127): имеет тонкие экстенты
[5644459.827213] Информация BTRFS (устройство md127): проверка дерева UUID

После этого я просто перезагрузил систему, и все встало как обычно.

В настоящее время я выполняю проверку согласованности томов», которая, как я полагаю, является «повторной синхронизацией» mdadm, которая работает уже почти 24 часа без проблем.

Я предполагаю, что цель создания этого поста состоит в том, чтобы выяснить, сталкивался ли с этим кто-нибудь, у кого есть немного больше знаний о btrfs, и есть ли у них какие-либо идеи, что вызвало это?

spaceman-spiff avatar
флаг ie
Кажется, это было сделано в DSM6, поскольку в DSM7 удалена команда syno_poweroff_task. Любая идея, как выполнить это на DSM 7?
rgb255_255_255 avatar
флаг gb
@spaceman-spiff - взгляните на это https://community.synology.com/enu/forum/1/post/146217

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

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