파일 시스템에 15GB의 설명되지 않은 공간이 있습니다.

파일 시스템에 15GB의 설명되지 않은 공간이 있습니다.
[nathanb /mnt/work] sudo du -hs .
23G .
[nathanb /mnt/work] df -h .
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1        40G   38G  6.4M 100% /mnt/work

나머지 15GB는 어디에 있나요?

/dev/sdb1 on /mnt/work type ext4 (rw,nosuid,nodev,relatime,data=ordered)

댓글에 응답하도록 업데이트되었습니다.

[nathanb /mnt/work] sudo tune2fs -l /dev/sdb1
tune2fs 1.42.5 (29-Jul-2012)
Last mounted on:          /mnt/work
Inode count:              2621440
Block count:              10485752
Reserved block count:     524287
Free blocks:              3955615
Free inodes:              2522921
First block:              0
Block size:               4096
Fragment size:            4096

그리고

[nathanb /mnt/work] df -i .
Filesystem      Inodes IUsed   IFree IUse% Mounted on
/dev/sdb1      2621440 29764 2591676    2% /mnt/work

그리고

[nathanb /mnt/work] sudo fsck -n /dev/sdb1
fsck from util-linux 2.20.1
e2fsck 1.42.5 (29-Jul-2012)
Warning!  /dev/sdb1 is mounted.
Warning: skipping journal recovery because doing a read-only filesystem check.
/dev/sdb1: clean, 98519/2621440 files, 6530137/10485752 blocks

그리고

[nathanb /mnt/work] sudo lsof | grep deleted
[nathanb /mnt/work]

/mnt/work 아래에 마운트 지점이 없습니다.

[nathanb /mnt/work] grep /mnt/work /proc/self/mountinfo
22 19 8:17 / /mnt/work rw,nosuid,nodev,relatime - ext4 /dev/sdb1 rw,data=ordered

음, 모든 것이...다시 작동하는 것 같습니다. 문제의 원인이 무엇인지 모르는 것처럼, 무엇이 문제를 해결했는지도 모릅니다.

[nathanb /mnt/work] df -h .
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1        40G   22G   16G  59% /mnt/work

여러 NFS 클라이언트를 마운트 해제하고 볼륨 마운트 해제 및 fscking을 준비했지만 모두 마운트 해제하지는 않았습니다...그리고 마운트 해제 직후 확인해보니 공간이 줄어들지 않았습니다. 그런데 다른 일을 하고 돌아와 보니 그것이 끼어 있지 않다는 것을 깨달았습니다.

짜증나고 실망스럽습니다...문제가 무엇인지 알았으면 몇몇 사람들에게 점수를 줄 수 있었으면 좋겠습니다...하지만 모든 도움에 감사드립니다. 이런 일이 다시 발생하면 더 많은 법의학을 시도하겠습니다.

답변1

파일 시스템을 NFS를 통해 내보냈다는 점을 고려하면 삭제된 파일 때문일 가능성이 높습니다... 파일이 NFS 클라이언트에 열려 있는 동안 삭제된 경우 해당 항목이 lsof없기 때문에 서버에 표시되지 않습니다. /proc/.../fd; 그러나 표시된 것처럼 여전히 디스크 공간을 차지합니다 df.

이 문제를 진단하려면 각 클라이언트에서 lsof이 옵션을 실행 해야 합니다.-N

(클라이언트에서 볼륨을 마운트 해제한 후 공간을 복구할 때 나타나는 지연을 설명하지는 않지만 나머지 증상에 대해 제가 생각할 수 있는 가장 좋은 설명입니다.)

답변2

fuser -k -M -m /mnt/work따라야합니다. 경고하다! 문자 그대로 /mnt/work에 액세스하는 프로세스를 종료합니다. -TERM해고 요청도 포함됩니다 .

범인은 열려 있는 파일을 삭제하고 있었는데, du는 볼 수 없었지만 df는 볼 수 있었습니다.

예를 들어

$ df -h .
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda6       209M   66M  128M  35% /boot
$ sudo du -sh .
64M     .
$  sudo fallocate -l 100M tmp_file
$ ls -lh tmp_file
-rw-r--r-- 1 root root 100M Feb  3 02:24 tmp_file
$ df -h .
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda6       209M  166M   28M  86% /boot
$ sudo du -sh .
164M    .
$ exec 20<tmp_file
$ sudo rm tmp_file
$ df -h .
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda6       209M  166M   28M  86% /boot
$ sudo du -sh .
64M     .

tmp_file이 아직 열려 있습니다. 닫혀 있으면 'df'는 유휴 상태를 볼 수 있습니다.

$ exec 20<&-
$ df -h .
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda6       209M   66M  128M  35% /boot

관련 정보