No final da semana passada, um de meus colegas notou algo estranho em um de nossos servidores de computação compartilhados.
Temos um diretório que ls -l
mostra como contendo um arquivo com tamanho de 132G.
No entanto, a execução df -h
mostra que a quantidade total de espaço usado no disco é de 128G. Além disso, a execução du -h --max-depth=1
na raiz da unidade também relata 128G para.
Inicialmente, eu me perguntei se esse problema poderia ser resultado de manipulações de arquivos abertos ou algo semelhante, fazendo com que esses binários relatassem informações diferentes. No entanto, cansei de desmontar e remontar o disco e todos os binários relatam os mesmos resultados de antes.
Para dar um pouco mais de informação sobre a configuração do drive:
- O volume é formatado usando EXT4 em cima da criptografia LUKS.
- O disco não é compartilhado via NFS ou similar.
- Eu verifiquei o arquivo em questão e ele não parece estar vinculado.
- Ao desmontar e remontar o volume, forcei uma verificação de disco, executando
fsck -f
no volume, e nenhum problema foi retornado. - O servidor no qual o disco está localizado não é um host de virtualização e está executando o Ubuntu 14.04 como sistema operacional.
O seu servidor de virtualização é host?
O tamanho real diferente do arquivo e do espaço em disco é um comportamento normal para discos virtuais de expansão dinâmica. Este disco tem tamanho de arquivo real diferente e dados de tamanho de arquivo de cabeçalho
Exemplo :
possivelmente você usa discos virtuais qemu (extensão qcow2 ou outro) que você pode encontrar com:
Vamos verificar o
vm-105-disk-1.qcow2
tamanho comstat
:79728541696 - tem aproximadamente 64 GB
Verifique com
wc
:O mesmo resultado... Verifique com
du
:Apenas 15GB! Vamos verificar com
qemu-img
o util:Preste atenção nestas duas linhas e tudo deve ficar claro:
Se o seu servidor não for um host de virtualização, consulte estes tópicos:
Qual é a diferença entre du -h e ls -lh?
du -b
mostra tamanho diferente do quels
E o último Por que ls e du mostram tamanhos diferentes?