Назад | Перейти на главную страницу

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

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

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

https://btrfs.wiki.kernel.org/index.php/UseCases#How_can_I_create_a_RAID-1_filesystem_in_.22degraded_mode.22.3F

Выход 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)