du/df e ls relatando diferentes usos de disco

du/df e ls relatando diferentes usos de disco

No final da semana passada, um dos meus colegas notou algo estranho em um dos nossos servidores de computação compartilhados.

Temos um diretório que ls -lmostra conter um arquivo com tamanho de 132G.

No entanto, a execução df -hmostra que a quantidade total de espaço usado no disco é de 128G. Além disso, a execução du -h --max-depth=1na raiz da unidade também relata 128G para.

Inicialmente, me perguntei se esse problema poderia ser resultado de identificadores 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ções sobre a configuração do drive:

  • O volume é formatado usando EXT4 além da criptografia LUKS.
  • O disco não é compartilhado via NFS ou similar.
  • Verifiquei o arquivo em questão e ele não parece estar vinculado.
  • Ao desmontar e remontar o volume, forcei uma verificação do disco, executando fsck -fno volume, e nenhum problema foi retornado.
  • O servidor em que o disco está localizado não é um host de virtualização e está executando o Ubuntu 14.04 como sistema operacional.

Responder1

O seu host de virtualização de servidor?

Diferentes tamanhos reais de arquivo e espaço em disco são um comportamento normal para discos virtuais de expansão dinâmica. Esses discos têm diferentes tamanhos de arquivo reais 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:

find / -regex '.*\.qcow.*$'

/var/lib/vz/images/105/vm-105-disk-1.qcow2
...

Vamos verificar vm-105-disk-1.qcow2o tamanho com stat:

stat vm-105-disk-1.qcow2

  File: vm-100-disk-1.qcow2
  Size: 68745560064

79728541696 - tem aproximadamente 64 GB

Verificar com wc:

wc -c <vm-105-disk-1.qcow2

68745560064

O mesmo resultado... Verifique com du:

du -sh vm-105-disk-1.qcow2

15G        vm-105-disk-1.qcow2

Apenas 15 GB! Vamos verificar com qemu-imgo utilitário:

qemu-img info vm-105-disk-1.qcow2

image: vm-105-disk-1.qcow2
file format: qcow2
virtual size: 64G (68719476736 bytes)
disk size: 14G
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false
    refcount bits: 16
    corrupt: false

Preste atenção nestas duas linhas e tudo ficará claro:

virtual size: 64G (68719476736 bytes)
disk size: 14G

Se o seu servidor não for um host de virtualização, consulte estes tópicos:

informação relacionada