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

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

Estou um pouco confuso sobre a maneira como os relatórios ext4 usam espaço. Em uma nova instalação wheezy (teste) do Debian, obtive consistentemente cerca de 1 GB de espaço extra usado com um SSD de 60 GB, quando comparado com o du. Em seguida, inicializei o computador em rede e montei o SSD. O sistema operacional inicializado pela rede (Debian squeeze) mostra apenas 180 MB de espaço extra usado no SSD. O diário tem 128 MB, então não há mais muito 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 nas causas usuais, que descartei. E por que essa quantidade difere no mesmo sistema de arquivos quando montado em sistemas operacionais diferentes? Eu testei isso reinstalando, e o uso extra foi novamente de aproximadamente 1 GB na instalação wheezy e 180 MB quando inicializei pela rede e montei aquele SSD.

No XFS e no btrfs, o uso extra relatado parece insignificante. Sei 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

você

$ du -sm /
592     /

tune2fsmostra a contagem de Inodes como 3670016 e tamanho 256, o que de fato explica quase todo o espaço usado. Só não entendo por que isso não é subtraído do Tamanho, já que os inodes são reservados estaticamente. Contá-lo como espaço e sempre contá-lo como usado não faz muito sentido.

Aqui está a saída para o mesmo sistema de arquivos, do Debian squeeze inicializado em rede:

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 inicializado pela rede:

592     /

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

A meu ver, se meu sistema de arquivos precisar de uma quantidade estática de sobrecarga, ele apenas fornecerá menos espaço utilizável do que alguns outros sistemas de arquivos para a mesma quantidade de espaço absoluto. O df não deveria refletir isso e também mostrar quanto doespaço utilizávelEu tenho usado?

Responder1

ext[234] por padrão reserva 8.192 inodes por grupo de blocos de 128 MB, o que leva 2 MB, por grupo, o que equivale a cerca de 1 GB para um sistema de arquivos de 60 GB. Não deve haver diferença quando você monta a unidade em outro sistema. Parece que eles mudaram a maneira como os relatórios do kernel usavam o espaço entre wheezy e squeeze, embora eu ainda não tenha encontrado um commit indicando que isso foi feito de propósito.

Responder2

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

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

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

Como diz a resposta que linkei acima, correr tune2fs -l <device name>mostrará mais informações. Em particular, inode countx inode sizedeve estar próximo da diferença entre dfe 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 esteja incorreto, mas não posso ter certeza sem mais detalhes, por exemplo, a saída do mountseu sistema inicializado pela rede. Por exemplo, talvez seja devido aominixdf/bsddfopção de montagem.

informação relacionada