du / df e ls relatando uso de disco diferente

2

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

Temos um diretório que ls -l mostra como contendo um arquivo de tamanho 132G.

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

Inicialmente, imaginei se esse problema poderia ser resultado de identificadores de arquivos abertos ou semelhantes, fazendo com que esses binários reportassem informações diferentes. No entanto, cansei de desmontar e remontar o disco e todos os binários relatam os mesmos resultados de antes.

Estou um pouco em uma perda para explicar esse comportamento, então algumas ajudas ou sugestões seriam muito apreciadas.

Para fornecer mais informações sobre a configuração da unidade:

  • O volume é formatado usando o EXT4 sobre a 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 de disco, executando fsck -f no 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 o SO.
por PicoutputCls 23.11.2017 / 11:29

1 resposta

2

O seu host de virtualização de servidores?

Diferentes arquivos reais e o tamanho do espaço em disco são comportamentos normais para expandir dinamicamente os discos virtuais. Esses discos têm 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 outros) que você pode encontrar com:

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

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

Permite verificar o vm-105-disk-1.qcow2 size com stat :

stat vm-105-disk-1.qcow2

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

79728541696 - é de aproximadamente 64 GB

Verifique 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-img util:

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 nessas duas linhas e tudo deve estar 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:

por 23.11.2017 / 12:11