Я попытался сделать файловую систему btrfs RAID-1 в «деградированном режиме», следуя инструкциям btrfs UseCases, но получил фатальную ошибку утверждения. Почему это не удается и есть ли обходное решение?
Инструкции, которым я следовал, находятся по адресу:
Выход mkfs.btrfs
и btrfs filesystem show
команды:
# mkfs.btrfs -m raid1 -d raid1 /dev/sdd1 /dev/loop1
WARNING! - Btrfs Btrfs v0.19 IS EXPERIMENTAL
WARNING! - see http://btrfs.wiki.kernel.org before using
failed to read /dev/sr0
adding device /dev/loop1 id 2
mkfs.btrfs: volumes.c:802: btrfs_alloc_chunk: Assertion `!(ret)' failed.
zsh: abort (core dumped) mkfs.btrfs -m raid1 -d raid1 /dev/sdd1 /dev/loop1
# btrfs filesystem show
failed to read /dev/sr0
Label: none uuid: 773908b8-acca-4c30-85c5-6642b06de22b
Total devices 1 FS bytes used 28.00KB
devid 1 size 223.13GB used 2.04GB path /dev/sda5
Label: none uuid: 0f06f1a8-5f5f-4b92-a55c-b827bcbcc840
Total devices 2 FS bytes used 24.00KB
devid 2 size 2.00GB used 0.00 path /dev/loop1
devid 1 size 1.36TB used 20.00MB path /dev/sdd1
Btrfs Btrfs v0.19
#
РЕДАКТИРОВАТЬ:
Оказывается, файловая система не монтируется:
# mount /dev/sdd1 /mnt/big2
mount: wrong fs type, bad option, bad superblock on /dev/sdd1,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
#
Итак, почему сбой mkfs и есть ли обходной путь?
Чтобы смонтировать деградированный массив, вы должны использовать degraded
вариант крепления:
mount -o degraded /dev/sdd1 /mnt/big2
Я не понимаю, что вы делаете с небольшим разделом loop1. Это не обязательно для монтирования поврежденного массива. Вы создаете массив raid1 с одним элементом размером 2 ГБ и одним членом размером 1,36 ТБ. Разница между ними составляет три порядка, и лучшее, что вы могли ожидать, - это то, что у вас будет массив 2 ГБ. Но метаданные не несущественны. Известно, что вы не можете создать файловую систему btrfs меньше 256 МБ.
Обычно при создании массивов raid1 оба члена массива должны быть одинакового размера. Недавние документация btrfs обновлено, чтобы прочитать, что могут быть созданы неоднородные массивы, которые будут иметь размер наименьшего члена массива. Но в прошлом такие массивы заполняли самый маленький член намного быстрее, чем наивно предполагалось.
Поэтому не создавайте такой асимметричный массив и / или не используйте такие маленькие элементы массива. (и больше всего используйте -o degraded
)