Como criar o sistema de arquivos btrfs RAID-1 (erro de asserção em mkfs.btrfs)?

4

Eu tentei criar um sistema de arquivos RAID-1 do btrfs em "modo degradado" seguindo as instruções do btrfs UseCases, mas acertando um erro fatal de asserção. Por que isso está falhando e existe alguma solução?

As instruções que eu segui estão em:

link

A saída dos comandos mkfs.btrfs e 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
#

EDITAR:

Acontece que o sistema de arquivos não é montável:

# 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
#

Então, por que o mkfs falhou e existe alguma solução alternativa?

    
por amcnabb 24.03.2012 / 22:44

1 resposta

3

Para montar um array degradado, você deve usar a opção degraded mount:

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

Eu não entendo o que você está fazendo com a pequena partição loop1. Isso não é necessário para montar um array degradado. Você está criando um array raid1 com um membro sendo 2GB e um membro sendo 1.36TB. A diferença entre estas é de três ordens de magnitude, e o melhor que você poderia esperar é que você teria uma matriz de 2GB. Mas os metadados não são inconsequentes. Sabe-se que você não pode criar um sistema de arquivos btrfs menor que 256MB.

Em geral, ao criar arrays raid1, os dois membros da matriz devem ter o mesmo tamanho. A recente documentação do btrfs foi atualizada para ler que matrizes não homogêneas podem ser criadas e terão o tamanho do menor membro da matriz. Mas no passado, essas matrizes preenchiam o menor membro muito mais rápido do que o esperado ingenuamente.

Portanto, não crie uma matriz assimétrica e / ou não use esses membros de matriz pequena. (e, acima de tudo, use -o degraded )

    
por 06.10.2012 / 09:11