BTRFS: “nenhum espaço deixado no dispositivo”, mas o comando btrfs diz o contrário

2

Estou usando o BTRFS para criar um volume RAID0 a partir de dois discos. Ambos estão em uma instância do AWS EC2 com 30 GB de espaço disponível em cada. O comando que usei para criar o sistema de arquivos é: btrfs -d raid0 -L MYLABEL /dev/xvdf /dev/xvdg .

Agora o Ubuntu me diz que o espaço em disco está cheio, assim como o BTRFS:

root@host:/var/docker-apps/prometheus# btrfs balance start -dconvert=raid0 .
ERROR: error during balancing '.': No space left on device
There may be more info in syslog - try dmesg | tail
root@host:/var/docker-apps/prometheus#

O mais divertido é que, quando olho para btrfs filesystem usage , obtenho isto:

root@host:/var/docker-apps/prometheus# btrfs filesystem usage .
Overall:
    Device size:          60.00GiB
    Device allocated:     60.00GiB
    Device unallocated:   2.00MiB
    Device missing:       0.00B
    Used:                 25.26GiB
    Free (estimated):     34.22GiB    (min: 34.22GiB)
    Data ratio:           1.00
    Metadata ratio:       2.00
    Global reserve:       256.00MiB    (used: 0.00B)

Data,RAID0: Size:57.98GiB, Used:23.76GiB
   /dev/xvdf      28.99GiB
   /dev/xvdg      28.99GiB

Metadata,RAID1: Size:1.00GiB, Used:766.11MiB
   /dev/xvdf       1.00GiB
   /dev/xvdg       1.00GiB

System,RAID1: Size:8.00MiB, Used:16.00KiB
   /dev/xvdf       8.00MiB
   /dev/xvdg       8.00MiB

Unallocated:
   /dev/xvdf       1.00MiB
   /dev/xvdg       1.00MiB
root@host:/var/docker-apps/prometheus# 

Agora, para mim, é como "Eu tenho 60 GB de espaço RAID0 disponível e atualmente uso cerca de 25 deles (Usado: entrada no bloco superior, junto com Free: entrada no mesmo bloco)". Eu acho que isso é bem claro.

Mas ainda assim: No space left on device .

Então - eu estou errado? Como eu tenho que ler isso? Por que não posso mais criar arquivos na partição BTRFS? Como tenho que ler esta saída? O que está acontecendo aqui?

    
por flypenguin 18.07.2016 / 15:47

1 resposta

3

Leia isto: link

Parece que você está sofrendo com o "metadado is full case" do artigo, porque o Btrfs reservou 0,5 GB para si mesmo, o que significa que ele está cheio e, portanto, evita novas gravações. O artigo sugere que você deve fazer um reequilíbrio total sobre isso.

Tenha em mente que o df normal é que ele nunca vai lhe dizer as estatísticas reais de uso do btrfs.

    
por 24.07.2016 / 11:47