Ao usar btrfs, por que os valores "Size", "Used" e "Avail" do df não correspondem?

9

Eu tenho uma partição btrfs. Quando corro df -h, mostra:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       113G  101G  8.3G  93% /home

De Por que isso? É porque o espaço reservado para raiz como w2 ext2 / 3/4? Ou é outra coisa? Se for o primeiro, como posso alterá-lo e recuperar esses 4 GB?

Conforme o wiki do btrfs , eu sei que os metadados são armazenados duas vezes, o que aumenta o tamanho dos dados "Utilizados":

user@machine:~$ df -h /
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             894G  311G  583G  35% /
                            ^^^^
user@machine:~$ btrfs fi df /
Metadata: total=18.00GB, >>used=6.10GB<<  *2=  12.20GB
Data: total=358.00GB, >>used=298.37GB<<   *1= 298.37GB
System: total=12.00MB, >>used=40.00KB<<   *1=   0.00GB
                                           == 310.57GB 
                                           ~~ 311   GB

Mas isso ainda não explica por que Usado + Disponível <Tamanho.

sup
fonte
btrfs.wiki.kernel.org/articles/f/a/q/FAQ_1fe9.html - leia "Por que existem tantas maneiras de verificar a quantidade de espaço livre?" seção, tem muita informação.
28512 Mat
Sim, possui muitas informações, mas em todos os seus exemplos Used + Avail = Size na dfsaída. Eu atualizei a pergunta com isso.
sup
Será que lsofmostram os arquivos apagados? (A saída btrfs do seu sistema teria sido um pouco mais apropriada do que a partir do wiki.)
Mat
Eu sei, mas eu estava com preguiça de reformatá-lo e é analógico. Se lsof |grep 'DEL'|wc -ldá o número de arquivos apagados, é 338. Eles não parecem grande embora (I podem obter seu tamanho global de alguma forma?)
sup
11
@ Mat Aqui está um link de trabalho para as Perguntas frequentes sobre o BTRFS: Por que existem tantas maneiras de verificar a quantidade de espaço livre?
ali_m

Respostas:

10

A menos que você especifique o contrário ao formatar, o padrão é armazenar cópias duplicadas dos blocos de metadados para aumentar a confiabilidade. Você provavelmente tem 2 GB de metadados armazenados duas vezes, usando 4 GB. Você pode ver mais detalhes com btrfs filesystem df.

Em particular, 1,75 GB é alocado para metadados, portanto, consome o dobro ou 3,5 GB de espaço. Atualmente, apenas 385mb desses 1,75 GB são usados ​​para metadados, mas os 1,75 GB completos são reservados para esse uso e, portanto, não são contabilizados no espaço disponível para dados do arquivo

psusi
fonte
btrfs filesystem df /homedá, Metadata, DUP: total=1.75GB, used=385.70MBentão eu tenho cerca de 771MB de metadados armazenados, juntamente com dados, chega a 101G, mas não explica por que usado + Avail <tamanho - expandi a questão para refletir isso.
sup
4
@sup, 1,75 GB é alocado para metadados, portanto, consome o dobro ou 3,5 GB de espaço. Atualmente, apenas 385mb desses 1,75 GB são usados ​​para metadados, mas os 1,75 GB completos são reservados para esse uso e, portanto, não são contabilizados no espaço disponível para os dados do arquivo.
psusi
Ah, agora eu entendo. Eu acho que os exemplos do wiki btrfs usam apenas um df antigo que não sabia disso. Obrigado pela resposta!
sup