du/df 및 ls가 서로 다른 디스크 사용량을 보고함

du/df 및 ls가 서로 다른 디스크 사용량을 보고함

지난주 말에 동료 중 한 명이 공유 컴퓨팅 서버 중 하나에서 이상한 점을 발견했습니다.

ls -l크기가 132G인 파일을 포함하는 것으로 표시되는 디렉토리가 있습니다 .

그러나 실행해보면 df -h디스크에서 사용된 전체 공간이 128G로 표시됩니다. 또한 du -h --max-depth=1드라이브 루트에서 실행하면 128G가 보고됩니다..

처음에는 이 문제가 열린 파일 핸들 또는 이와 유사한 결과로 인해 이러한 바이너리가 다른 정보를 보고하는 것인지 궁금했습니다. 그러나 디스크를 마운트 해제하고 다시 마운트하는 데 지쳤으며 모든 바이너리는 이전과 동일한 결과를 보고합니다.

드라이브 구성에 대한 추가 정보를 제공하려면 다음을 수행하십시오.

  • 볼륨은 LUKS 암호화 외에 EXT4를 사용하여 포맷됩니다.
  • 디스크는 NFS 등을 통해 공유되지 않습니다.
  • 문제의 파일을 확인했는데 링크가 없는 것 같습니다.
  • 볼륨을 마운트 해제했다가 다시 마운트할 때 fsck -f볼륨에서 실행하여 디스크 검사를 강제했는데 문제가 반환되지 않았습니다.
  • 디스크가 있는 서버는 가상화 호스트가 아니며 OS로 Ubuntu 14.04를 실행하고 있습니다.

답변1

귀하의 서버 가상화 호스트입니까?

실제 파일과 디스크 공간 크기가 다른 것은 가상 디스크를 동적으로 확장하는 경우 일반적인 현상입니다. 이 디스크에는 실제 파일 크기와 헤더 파일 크기 데이터가 다릅니다.

:

아마도 다음을 통해 찾을 수 있는 qemu 가상 디스크(qcow2 확장자 또는 기타)를 사용할 수 있습니다.

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

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

vm-105-disk-1.qcow2다음을 사용하여 크기를 확인할 수 있습니다 stat.

stat vm-105-disk-1.qcow2

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

79728541696 - 약 64GB

다음으로 확인하세요 wc:

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

68745560064

동일한 결과가 나타납니다. 다음을 확인하세요 du.

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

15G        vm-105-disk-1.qcow2

단 15GB! util 로 확인해 봅시다 qemu-img:

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

이 두 줄에 주의를 기울이면 모든 것이 명확해집니다.

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

서버가 가상화 호스트가 아닌 경우 다음 항목을 참조하십시오.

관련 정보