Как создать файловую систему btrfs RAID-1 (ошибка утверждения в mkfs.btrfs)?

Я попытался перевести файловую систему btrfs RAID-1 в "деградированный режим", следуя инструкциям btrfs UseCases, но столкнулся с фатальной ошибкой утверждения. Почему это терпит неудачу, и есть ли обходной путь?

Инструкции, которым я следовал, находятся по адресу:

https://btrfs.wiki.kernel.org/index.php/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 потерпел неудачу, и есть ли обходной путь?

1 ответ

Чтобы смонтировать деградированный массив, вы должны использовать degraded опция монтирования:

    mount -o degraded /dev/sdd1 /mnt/big2

Я не понимаю, что вы делаете с маленьким разделом loop1. Это не обязательно для монтирования деградированного массива. Вы создаете массив raid1 с одним членом размером 2 ГБ и одним элементом размером 1,36 ТБ. Разница между ними составляет три порядка, и лучшее, на что вы могли бы рассчитывать, это то, что у вас будет массив размером 2 ГБ. Но метаданные не несущественны. Известно, что вы не можете создать файловую систему btrfs размером менее 256 МБ.

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

Поэтому не создавайте такой асимметричный массив и / или не используйте такие небольшие элементы массива. (и больше всего использовать -o degraded)

Другие вопросы по тегам