LINUX.ORG.RU

btrfs raid1, как привести в чувство?

 ,


0

2

Пациент такой:

  • два WD10EZEX в зеркале
  • S.M.A.R.T., хм, неплохой, за исключением нюансов, о которых ниже
  • оба диска зарегистрированы как бэк в bcache, лично я не думаю, что это как-то влияет на ситуацию, но пишу как есть

О нюансах, один диск по смарт идеальный, у второго:

196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       5
198 Offline_Uncorrectable   0x0030   200   200   000    Old_age   Offline      -       15
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0008   200   200   000    Old_age   Offline      -       18

btrfs fi show:

Label: 'STORAGE'  uuid: 6f18967c-***
        Total devices 2 FS bytes used 776.09GiB
        devid    1 size 931.51GiB used 851.01GiB path /dev/bcache0
        devid    2 size 931.51GiB used 851.01GiB path /dev/bcache1

Суть проблемы, массив не монтируется, выдаёт стандартную заглушку (опция -o degraded тоже не работает)

mount -t btrfs UUID=6f18967c-*** /mnt/storage/:

mount: /mnt/storage: wrong fs type, bad option, bad superblock on /dev/bcache0, missing codepage or helper program, or other error.
       dmesg(1) may have more information after failed mount system call.

и при этом на btrfs rescue super-recover:

All supers are valid, no need to recover

dmesg:

BTRFS info (device bcache0): bdev /dev/bcache0 errs: wr 1, rd 0, flush 0, corrupt 23286, gen 0
BTRFS info (device bcache0): bdev /dev/bcache1 errs: wr 0, rd 0, flush 0, corrupt 17663, gen 0
BTRFS error (device bcache0): level verify failed on logical 535287234560 mirror 1 wanted 1 found 0
BTRFS error (device bcache0): level verify failed on logical 535287234560 mirror 2 wanted 1 found 0
BTRFS error (device bcache0): failed to read block groups: -5
BTRFS error (device bcache0): open_ctree failed

btrfs check /dev/bcache0:

Opening filesystem to check...
parent transid verify failed on 535287234560 wanted 533002 found 533004
parent transid verify failed on 535287234560 wanted 533002 found 533004
parent transid verify failed on 535287234560 wanted 533002 found 533004
Ignoring transid failure
ERROR: child eb corrupted: parent bytenr=586321772544 item=39 parent level=2 child bytenr=535287234560 child level=0
ERROR: failed to read block groups: Input/output error
ERROR: cannot open file system

Не уверен, но вполне может быть, что запускали check --repair.

Цель, отцепить от рейда проблемный диск, чтобы вдоволь над ним поиздеваться, сохранив данные на втором. Не понимаю, как это сделать, потому что все утилиты работают с точкой монтирования, которой нет, и как её вернуть я не знаю.

Самое простое - всё жёстко разобрать, отформатировать хороший диск, с восстановлением из бэкапа. Но есть желание разобраться в теоретической возможности поправить ситуацию, получить такой вот экспириенс.

Насколько это реально в такой ситуации? Надеюсь на помощь разбирающихся в тонкостях btrfs.

N.B. Просьба, про два типа людей не писать, так как для ценного бэкапы есть, а не ценное и не очень жалко, и через restore копия актуальных данных была снята.

Спасибо.

★★★★★
Ответ на: комментарий от ox55ff

Да, всё работало до момента появления сбойных секторов на одном из дисков, года полтора точно. И я подозреваю, что всё сломал check --force --repair, хоть в этом никто и не сознаётся.

vvn_black ★★★★★
() автор топика
Последнее исправление: vvn_black (всего исправлений: 1)
Ответ на: комментарий от iZEN

Хорошая у вас ФС, я погляжу.

Ну да, данные все вытянул, которые актуализировать надо было. Несмотря на.

vvn_black ★★★★★
() автор топика
Последнее исправление: vvn_black (всего исправлений: 1)
Ответ на: комментарий от vvn_black

Хорошая у вас ФС, я погляжу.

Ну да, данные все вытянул, которые актуализировать надо было. Несмотря на.

Никогда не скрывал своего довольно пренебрежительного отношения к этой, назовём это мягко - пионерской поделке. Рад что удалось вытащить данные.

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

bugfixer ★★★★★
()
Ответ на: комментарий от vvn_black

Какие варианты? Знаю про LVM Cache.

Не обращай внимания, он видимо предлагает напрячься, перестать быть бедным и попросить у Вселенной «большой» SSD «серверного» класса, чтобы все мальчики позавидовали, а девочки протекли.

Bcache намазанный на ssd для кеширования массива из HDD вполне себе рабочее решение. Риски конечно тоже стоит осознавать, они есть, но их можно слегка сгладить сделав кэш на зеркале из двух ssd.

Это конечно не так красиво как полноценный внешний NAS подключенный по iSCSI или аппаратный райд с аналогичным кэшем, своим ОЗУ и батарейкой, но для персональной машинки вполне годится.

Jameson ★★★★★
()
Последнее исправление: Jameson (всего исправлений: 2)