btrfs: espaço livre em disco insuficiente, mas dispositivo não totalmente usado

3

Estou usando o btrfs para meu diretório pessoal, que abrange vários dispositivos. No total, eu deveria ter cerca de 7,3 TB de espaço - e é isso que o df mostra, mas fiquei sem espaço depois de usar apenas 5,7 TB de dados:

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdd3       7.3T  5.7T   63G  99% /home

O btrfs tem isto a dizer por si mesmo:

# btrfs fi df /home
Data, RAID0: total=5.59TB, used=5.59TB
System, RAID1: total=8.00MB, used=328.00KB
System: total=4.00MB, used=0.00
Metadata, RAID1: total=11.50GB, used=8.22GB

O que é estranho, porque deveria haver partições suficientes para suportar 7.3 TB (também, a configuração de dados btrfs deveria ter sido "single" e não RAID0).

Aqui está o que btrfs show diz:

# btrfs fi show
Label: none  uuid: 2dd4a2b6-c672-49b1-856b-3abdc12d56a5
    Total devices 9 FS bytes used 5.59TB
    devid    2 size 303.22GB used 303.22GB path /dev/sdb1
    devid    3 size 303.22GB used 303.22GB path /dev/sdb2
    devid    4 size 325.07GB used 324.50GB path /dev/sdb3
    devid    1 size 2.73TB used 1.11TB path /dev/sdc1
    devid    5 size 603.62GB used 589.05GB path /dev/sdd1
    devid    6 size 632.22GB used 617.65GB path /dev/sdd2
    devid    7 size 627.18GB used 612.61GB path /dev/sdd3
    devid    8 size 931.51GB used 931.51GB path /dev/sde1
    devid    9 size 931.51GB used 931.51GB path /dev/sde2

Como você pode ver, o devid 1 (que é o último disco que eu adicionei) tem apenas 1.11TB usado em 2.73TB disponível na partição (é supostamente um drive de 3TB, mas apenas 2.7TB utilizável: - [). / p>

Eu pesquisei muito, mas não consegui descobrir como fazer com que o btrfs usasse mais a partição. O que estou perdendo?

Notas:

  1. Estou usando o Ubuntu 12.04.2 com o kernel atual 3.2.0-23.
  2. Isso foi depois que eu executei btrfs fi resize max /home e btrfs fi balance /home
por Guss 07.04.2013 / 13:12

1 resposta

2

Você está usando dados raid0, o que significa listrado sem paridade. Depois de preencher qualquer disco em uma matriz raid0, a matriz estará cheia porque você não tem mais espaço nesse disco para escrever sua parte de uma faixa.

Esse dispositivo ~ 3TB é muito maior do que os outros dispositivos que você tem para utilizá-lo em uma prática btrfs-raid0. Para tentar forçar o sistema a usar todo o disco, você acabaria precisando particioná-lo e depois adicionar as duas partições como discos separados. NÃO FAÇA ISSO, a propósito, como isso vai fazer coisas estranhas e terríveis para o desempenho, o que eu diria que é bastante crítico para você se você estiver usando raid0 ...?

Outra nota: 3.2 é um kernel muito antigo para rodar o IMO do btrfs. O Btrfs ainda está em desenvolvimento HEAVY, e você deveria estar rastreando kernels muito mais novos se você for executar o btrfs.

Usando o Btrfs com vários dispositivos - Criação de sistema de arquivos: Quando você tem unidades com diferentes tamanhos e quer usar a capacidade total de cada drive, você tem que usar o único perfil para os blocos de dados, ao invés de usar o raid0:

# Use full capacity of multiple drives with different sizes (metadata mirrored, data not mirrored and not striped)  
mkfs.btrfs -d single /dev/sdb /dev/sdc
    
por Jim Salter 12.02.2014 / 20:44