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

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

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

ls -l크기가 132G인 파일이 포함된 것으로 보이는 디렉토리가 있습니다 .

그러나 실행하면 df -h사용된 총 디스크 공간이 128G임을 알 수 있습니다. 또한 du -h --max-depth=1드라이브 루트에서 실행하면 128G가 보고됩니다..

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

드라이브 구성에 대한 추가 정보를 제공합니다.

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

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

관련 정보