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 /
tune2fs
mostra 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 df
poderia 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 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 esteja incorreto, mas não posso ter certeza sem mais detalhes, por exemplo, a saída do mount
seu sistema inicializado pela rede. Por exemplo, talvez seja devido aominixdf
/bsddf
opção de montagem.