ncdu에서 반환된 볼륨 디스크 공간과 디스크 사용량의 차이점

ncdu에서 반환된 볼륨 디스크 공간과 디스크 사용량의 차이점

내 서버에는 130GB 볼륨이 연결되어 있습니다.

여유 디스크 psace를 확인하기 위해 실행하면 df -h -x tmpfs -x squashfs | grep -v /run/shared다음을 얻습니다.

Filesystem      Size  Used Avail Use% Mounted on
udev            965M     0  965M   0% /dev
/dev/xvda1      128G  111G   13G  90% /

ncdu그러나 루트 디렉터리에서 실행하여 디스크 사용량에 대한 세부 정보를 원하면 다음을 얻습니다.

.  55,7 GiB [######### ] /home                                                                                                                           
.  24,0 GiB [####      ] /var
.   2,4 GiB [          ] /usr
    1,0 GiB [          ]  swapfile
  598,6 MiB [          ] /lib
   63,0 MiB [          ] /boot
    9,4 MiB [          ] /sbin
    9,1 MiB [          ] /bin
.   8,1 MiB [          ] /etc
.   4,3 MiB [          ] /tmp
.   2,7 MiB [          ] /run
!  24,0 KiB [          ] /root
!  16,0 KiB [          ] /lost+found
    4,0 KiB [          ] /lib64
e   4,0 KiB [          ] /opt
e   4,0 KiB [          ] /mnt
e   4,0 KiB [          ] /media
!   4,0 KiB [          ] /gandi
.   0,0   B [          ] /proc
.   0,0   B [          ] /sys
    0,0   B [          ] /dev
@   0,0   B [          ]  initrd.img.old
@   0,0   B [          ]  initrd.img
@   0,0   B [          ]  vmlinuz.old
@   0,0   B [          ]  vmlinuz
e   0,0   B [          ] /srv

이전 명령에서 반환된 여유 디스크 공간(111GB)과 약 27GB의 차이가 있습니다.

이 차이는 어디에서 오는가?

감사해요.

답변1

이 질문은 꽤 자주 나오네요. 짧은 대답은 다양한 방법을 사용 du하여 df데이터를 얻는 것입니다.

파일 시스템은 데이터를 기록하기 위해 파일 시스템에 디스크 블록을 할당합니다. 이 데이터는 대부분의 사용자 수준 프로그램(예: du)에 표시되지 않는 메타데이터라고 합니다. 메타데이터의 예로는 inode, 디스크 맵, 간접 블록 및 슈퍼블록이 있습니다.

그만큼명령은 파일 시스템 메타데이터를 인식하지 못하는 사용자 수준 프로그램인 반면, df는 파일 시스템 디스크 할당 맵을 보고 파일 시스템 메타데이터를 인식합니다. dfdu는 실제 파일 시스템 통계를 얻는 반면 du는 부분적인 그림만 볼 수 있습니다.

관련 정보