ext4 espaço usado (não opção -m, não arquivos excluídos)

4

Estou um pouco confuso sobre a forma como o ext4 reporta o espaço usado. Em uma nova instalação do Debian wheezy (testing), eu obtive consistentemente cerca de 1GB de espaço extra usado com um SSD de 60GB, quando comparado a du . Eu então iniciei a rede naquele computador e montei o SSD. O sistema operacional de inicialização da rede (Debian squeeze) mostra apenas 180MB de espaço extra usado no SSD. A revista tem 128MB, então não há muito mais além disso.

Qual é o espaço extra usado relatado por df , quando não é espaço reservado para arquivos raiz ou excluídos? Usar o Google resulta principalmente nessas causas comuns, que descartei. E por que essa quantidade difere no mesmo sistema de arquivos quando montado em sistemas operacionais diferentes? Eu testei isso re-instalando, e o uso extra foi novamente ~ 1GB na instalação wheezy, e 180MB quando eu iniciei a rede e montei esse SSD.

No XFS e no btrfs, o uso extra relatado parece insignificante. Eu percebo que o sistema de arquivos precisa de alguma sobrecarga, mas é inconveniente quando essa sobrecarga é misturada com o uso real.

Aqui estão alguns resultados detalhados.

df

$ df -m on wheezy
Filesystem              1M-blocks  Used Available Use% Mounted on
rootfs                      57132  1567     52703   3% /
udev                         7899     0      7899   0% /dev
tmpfs                        1581     1      1581   1% /run
/dev/mapper/ssd-kvmhost     57132  1567     52703   3% /
tmpfs                           5     0         5   0% /run/lock
tmpfs                        3162     0      3162   0% /tmp
tmpfs                        3162     0      3162   0% /run/shm

du

$ du -sm /
592     /

tune2fs mostra a contagem de Inodes para 3670016 e tamanho 256, o que explica, na verdade, quase todo o espaço usado. Eu simplesmente não entendo porque isso não é subtraído do tamanho, já que os inodes são estaticamente reservados. Contá-lo como espaço e, em seguida, sempre contá-lo como usado não faz muito sentido.

Aqui está a saída para o mesmo sistema de arquivos, a partir da rede Debian booted squeeze:

aufs                      7905        46      7859   1% /
tmpfs                     7905         0      7905   0% /lib/init/rw
udev                      7900         1      7900   1% /dev
tmpfs                     7905         1      7905   1% /dev/shm
172.17.172.127:/storage/private/tftp/debian-live-6.0.3-amd64-lxde-desktop
                         24737     17448      7289  71% /live/image
tmpfs                     7905        46      7859   1% /live/cow
tmpfs                     7905         0      7905   0% /live
tmpfs                     7905         1      7905   1% /tmp
/dev/mapper/ssd-kvmhost
                         56337       772     52703   2% /mnt

E apenas para confirmação, du -sm / no sistema operacional de inicialização da rede:

592     /

Talvez o kernel antigo com sabedoria não conte o espaço de inode reservado estaticamente como utilizável e, portanto, não precise mostrá-lo como usado? A diferença é de 795MB em Tamanho e Usado, quase todo o espaço necessário para os inodes. Qual é o 180MB então? Se isso também é estático, não seria ótimo também subtrair isso do tamanho? Então df poderia realmente mostrar o uso real, como outros sistemas de arquivos parecem fazer.

Do jeito que eu vejo, se meu sistema de arquivos precisa de uma quantidade estática de sobrecarga, ele apenas fornece menos espaço utilizável do que alguns outros sistemas de arquivos para a mesma quantidade de espaço absoluto. Não deveria refletir isso, e também mostrar quanto do espaço utilizável eu usei?

    
por Jayssoneer 01.04.2012 / 22:44

2 respostas

2

ext [234] por padrão reserva 8192 inodes por grupo de blocos de 128 mb, o que leva 2mb, por grupo, o que funciona próximo a 1gb para um sistema de arquivos de 60 gb. Não deve haver diferença quando você montar a unidade em outro sistema. Parece que eles podem ter mudado a maneira como o kernel relata o espaço usado entre o wheezy e o squeeze, embora eu ainda não tenha encontrado um commit indicando que isso foi feito de propósito.

    
por 01.04.2012 / 23:48
1

Sua pergunta seria mais fácil de responder se você fornecesse a saída de df e du.

Mas parece muito df diz que eu tenho 20G mais espaço em disco usado do que du. Por quê?

Basicamente, seu sistema de arquivos usa parte do disco para seus próprios metadados, ou seja, não os arquivos em si, mas para acompanhar os arquivos, seus nomes, suas permissões, sua localização no disco, etc.

Como a resposta que eu disse acima, a execução de tune2fs -l <device name> mostrará mais informações. Em particular, inode count x inode size deve estar próximo da diferença entre df e du .

Novamente, com base na resposta anterior, a partição raiz do meu sistema está usando cerca de 1,77% do disco para inodes. 60 GB * 0,0177 ~ = 1 GB.

Suspeito que o valor de 180 MB está incorreto, mas não posso ter certeza sem mais detalhes, por exemplo a saída de mount no sistema inicializado da sua rede. Por exemplo, talvez seja devido à opção de montagem minixdf / bsddf .

    
por 01.04.2012 / 23:52