btrfs balance falha devido a erro enospc

4

[assumido do stackoverflow desde que percebi que provavelmente era o lugar errado]

No momento, estou testando o btrfs como possível substituto para o meu NAS executando o ZFS. Eu criei 4 dispositivos, 20GB cada, e criei um sistema de arquivos btrfs usando a opção balance -dconvert=raid5 . Então eu comecei a preencher o FS usando arquivos de 5GB (agora eu tenho 9 deles). Depois de criar esses arquivos (usando dd de dev/zero ), iniciei balance btrfs balance start . Depois de algum tempo, ele lança o erro error during balancing '.' - No space left on device . O syslog traz este erro: btrfs: 4 enospc errors during balance .

A execução do saldo novamente com -dusage=0 é concluída com êxito (como esperado), mas balance -dusage=90 ou simplesmente balance sem filtros não funciona. Por que eu estou me importando tanto com isso? Eu testei o que acontece quando você remove um disco rígido de um volume btrfs raid5 para ver se não há corrupção de dados. Depois de remover o disco rígido eu queria adicionar outro e remover o disco com falha. Esse processo falhou devido a erros enospc também.

Informações adicionais abaixo:

(o ponto de montagem para o FS é /mnt/raid/ )

linux:/mnt/raid # btrfs filesystem show
Label: 'test_raid5'  uuid: 8b137115-974e-4f91-a243-ec6239c34761
    Total devices 4 FS bytes used 45.06GiB
    devid    4 size 20.00GiB used 16.03GiB path /dev/sde
    devid    3 size 20.00GiB used 17.00GiB path /dev/sdd
    devid    2 size 20.00GiB used 17.00GiB path /dev/sdc
    devid    1 size 20.00GiB used 16.04GiB path /dev/sdb

Label: none  uuid: 69c33622-1c80-4dc3-9c01-24c27def730c
    Total devices 1 FS bytes used 1.04GiB
    devid    1 size 18.92GiB used 3.04GiB path /dev/sda2

linux:/mnt/raid # btrfs filesystem df /mnt/raid/
Data, RAID5: total=48.00GiB, used=45.01GiB
System, RAID1: total=32.00MiB, used=12.00KiB
System: total=4.00MiB, used=0.00
Metadata, RAID1: total=1.00GiB, used=53.69MiB


linux:/mnt/raid # btrfs version
Btrfs v0.20-rc1+20130701


linux:/mnt/raid # uname -a
Linux linux 3.11.6-4-default #1 SMP Wed Oct 30 18:04:56 UTC 2013 (e6d4a27) x86_64 x86_64 x86_64 GNU/Linux


linux:/mnt/raid # cat /etc/os-release
NAME=openSUSE
VERSION="13.1 (Bottle)"
VERSION_ID="13.1"
PRETTY_NAME="openSUSE 13.1 (Bottle) (x86_64)"
ID=opensuse
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:opensuse:13.1"
BUG_REPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://opensuse.org/"
ID_LIKE="suse"

Eu não posso acreditar que tenho que adicionar ainda mais espaço para isso apenas para poder reequilibrar o volume do meu btrfs. Alguma idéia sobre isso?

    
por Darkrain93 16.10.2014 / 18:38

1 resposta

0

Eu decidi pegar o caminho do btrfs ao invés do zfs para o meu "NAS". Eu testei ambos antes, e tenho que admitir que achei o ZFS muito melhor documentado, eu realmente fui seduzido pela sua interface de linha de comando, então para mim o ZFS foi a escolha "melhor".

Mas havia um show-stopper: se você tem 3x 2TB HDD para ZFS em RAID-5 e quer aumentá-los para 4x TB HDD, isso não é fácil. Se você tem um pool ZFS como 3HDD e deseja adicionar um novo HDD, então você precisa adicionar mais 3: para um total de 6x 2TB. E se você tem 6HDD e quer aumentar seu FS, você precisa adicionar mais 6, etc. Eu tive o problema que meu gabinete NAS não pode conter mais de 4 discos e que eu não posso comprar ainda os 4 HDDs. A este respeito, o Btrfs é muito mais flexível.

No entanto, o RAID-5/6 foi muito mal suportado quando comecei. Fiz alguns testes como você e acabei corrompendo o sistema de arquivos. Eu fiz os mesmos testes no RAID-1 e sem problemas! Então, decidi usar o Btrfs no RAID-1 e, em vez de usar o Ubuntu LTS, estou sempre usando o último lançamento do Ubuntu para obter o pacote Kernel e btrfs-tools mais recente (estou usando o Ubuntu 15.04 e me preparando para alternar a 15.10). Provavelmente irei (depois de testar) finalmente mudar para o RAID-5 assim que o Ubuntu 16.04 for lançado e provavelmente ficar com ele. Eu vi nos logs recentes do kernel que a base de código para o RAID-5/6 é muito mais madura.

Então, para o seu problema. Se você quiser experimentar o Btrfs especialmente em RAID-5 ou 6, mantenha as distribuições Linux mais atualizadas (por exemplo, Arch Linux, Ubuntu, Fedora, etc.). Eles podem não ter a estabilidade de outras distribuições, mas para os Btrfs eles são provavelmente muito mais estáveis.

Uma nota sobre o seu "caso de uso": seu sistema de arquivos Btrfs é bem pequeno se comparado ao tamanho dos arquivos que você coloca. Provavelmente não reflete muito bem um cenário do mundo real. Você deve criar grandes (vídeos) e pequenos arquivos (fotos, documentos) e tentar preencher o seu sistema de arquivos em até 80%. Uma boa maneira de testá-lo é colocar muitos arquivos em seu sistema de arquivos e, em seguida, executar benchmarks de sistema de arquivos, não para o benchmarking em si, mas para o estresse que eles trazem. Você pode usar o phoronix-test-suite para isso (por exemplo, phoronix-test-suite benchmark pts/disk ).

    
por 18.09.2015 / 14:15