Восстановить btrfs RAID? Ошибка: неподходящий ioctl для устройства

1

У меня RAID5 btrfs с 8 дисками и жесткий диск умер и просто исчез из списка.

Теперь я попытался удалить его, но получил ошибку:

ERROR: error removing the device '/dev/sdb' - Inappropriate ioctl for device

После отключения автоматического монтирования /etc/fstab, я выключил систему, заменил неисправный диск и перезагрузил систему для сброса контроллера на тот случай, если он отключился из-за какой-то другой ошибки, а утерянный диск теперь отсутствовал, в результате чего все остальные диски были перезагружены. перечислите, поэтому замена диска стала, /dev/sddа не sdb.

Бег btrfs fi show -dдал это:

Label: 'store'  uuid: ...
        Total devices 8 FS bytes used 5.27TiB
        devid    2 size 1.36TiB used 784.63GiB path /dev/sdb
        devid    3 size 1.36TiB used 784.63GiB path /dev/sdc
        devid    4 size 1.36TiB used 784.63GiB path /dev/sde
        devid    5 size 1.36TiB used 784.63GiB path /dev/sdf
        devid    6 size 1.36TiB used 784.63GiB path /dev/sdg
        devid    7 size 1.36TiB used 784.63GiB path /dev/sdh
        devid    8 size 1.36TiB used 784.63GiB path /dev/sdi
        *** Some devices missing

Btrfs v3.12

Сейчас попробовал btrfs device add /dev/sdd /mnt/x, но получил

ERROR: error adding the device '/dev/sdd' - Inappropriate ioctl for device

Что теперь? Как я могу восстановить или смонтировать RAID?

Я даже не могу его смонтировать. Пробовал mount [-t btrfs] -o degraded /dev/sdb /mnt/xи mount [-t btrfs] -o degraded,device=/dev/sdb,[...] /dev/sdb /mnt/x( [...]это спецификации устройства, конечно):

mount: wrong fs type, bad option, bad superblock on /dev/sdb,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

Это Ubuntu 14.04 с ядром версии 3.13.0-36 x64.

Archimedix
источник

Ответы:

0

Это не «полный» ответ, но у меня была та же проблема с BTRFS RAID 10. Вы должны подключить массив к сети в ухудшенном режиме, прежде чем вы сможете удалить полностью неисправное устройство .

Удаление устройства btrfs используется для удаления устройств в сети. Он перераспределяет любые используемые экстенты на удаляемом устройстве на другие устройства в файловой системе.

В противном случае вы продолжите получать сообщение:

ОШИБКА: ошибка при добавлении устройства '/ dev / sdd' - неподходящий ioctl для устройства

Все, на что я могу надеяться, это то, что ваша команда монтирования неверна. Вам просто нужно указать одно из устройств в вашем массиве и путь, по которому вы хотите его смонтировать. Например:

sudo mount -o degraded /dev/sda /raid10

... где /dev/sdaдля меня было одно из работающих устройств в массиве. Когда я попытался перечислить все устройства примерно так:

sudo mount -o degraded -t btrfs\
/dev/sda \
/dev/sdb \
/dev/sdc1 \
/dev/sdd \
/dev/sde \
/dev/sdf \
/raid10

... команда потерпит неудачу.

После того, как вы смонтировали массив, просто выполните sudo btrfs device delete missing /raid10и ждите в течение длительного периода времени, пока массив не уладится. Если вы не можете смонтировать массив, я не уверен, что вы можете что-то сделать. Возможно, два диска на самом деле вышли из строя вместо одного, или (что более вероятно) возникает больше проблем с BTRFS RAID 5, поскольку он существовал не так давно, как BTRFS RAID 1/10?

Programster
источник
Я думаю, что более новые ядра и новые инструменты btrfs устранили эту проблему типа «курица или яйцо» с монтированием и удалением устройств в ухудшенных конфигурациях, но я не проверял это. Я просто помню, что читал что-то, что очень много говорило в том же духе. В любом случае. Я потерял доверие к btrfs как к жизнеспособной альтернативе ZFS. Это просто YAFS XP: еще одна файловая система, экспериментальная на протяжении десятилетий.
Archimedix,
@Archimedix смешно, ты должен это сказать. Во время написания своего ответа я собирался поговорить о стабильности BTRFS и о своем искушении переключиться на ZFS после этого с плюсами / минусами каждого, но решил оставить это, поскольку это, вероятно, не будет сочтено конструктивным. Я согласен с вами, хотя; Если вы можете использовать ZFS, тогда делайте.
Programster