보이지 않는 파일(du 및 df)이 차지하는 공간

보이지 않는 파일(du 및 df)이 차지하는 공간

알아요du와 df가 보고한 차이점의 예상 이유, 그러나 이것이 내가 보고 있는 차이를 정당화한다고는 상상할 수 없습니다.

[[email protected] mynfsmount]# df -h /opt/mynfsmount
Filesystem            Size  Used Avail Use% Mounted on
192.168.0.92:/data/export/examplecom
                      3.0T  2.7T  391G  88% /opt/mynfsmount
[[email protected] mynfsmount]# du -sh /opt/mynfsmount
13G     /opt/mynfsmount

즉, df가 보고한 사용량은 du가 보고한 사용량의 약 300배입니다.

NFS 서버는 Synology 시스템이고 호스트는 Centos 5.11(erk!)이며 /opt/mynfsmount에 Lost+Found 디렉터리가 없다는 점은 주목할 가치가 있습니다. 이것은 내가 물려받은 시스템이며 얼마나 많은 데이터를 기대할 수 있는지에 대한 정보가 거의 없습니다.

현재 lsof는 삭제된 단일 파일이 아직 열려 있다고 보고합니다.

다음에 무엇을 시도해야 할지 제안해 주실 수 있나요?

답변1

나는 이것이 예상되는 행동이라고 생각합니다.

파일 시스템이 설치된 서버가 있고 파일 /foo시스템에 두 개의 디렉토리가 있고 bar및 . 그것은 말할 수 있습니다 :baz/foo/bar//foo/baz/

  • /foo100GB 파일 시스템입니다
  • /foo/bar/10GB 파일 포함
  • /foo/baz/20GB 파일 포함
  • 그러면 70GB의 여유 공간이 남습니다.

그런 다음 /foo/barNFS를 통해 내보냅니다. 그런 다음 clint /mnt/bar에서 다음 두 가지 작업을 수행합니다.

df -h /mnt/bar
du -hs /mnt/bar

나는 기대:

  • df30GB 사용, 70GB 사용 가능, 총 100GB가 표시됩니다.
  • du10GB만 사용된 것으로 표시됩니다.

나머지 20GB는 아직 NFS를 통해 공개되지 않았지만 df이는 대부분의 운영 체제에서 원격 파일 시스템 프로토콜의 정상적인 동작입니다.

즉, df원격 서버에 마운트된 전체 파일 시스템에 대한 통계를 표시합니다. du액세스할 수 있는 파일의 전체 크기를 표시합니다.


노트:du파일 시스템에 포함된 특정 파일에 액세스할 수 없는 데에는 다른 많은 이유가 있습니다 . 다른 이유는 다음과 같습니다.

  • 삭제할 수 있습니다(풀리다) 프로그램이 여전히 파일에 쓰는 동안. 이런 일이 발생하면 파일은 모든 참조(열린 파일 핸들 포함)가 제거될 때까지 디스크에 남아 있습니다. du파일 이름이 없기 때문에 찾을 수 없습니다. 그러나 여전히 인덱스 노드가 있으므로 를 사용하여 검사할 때 계속 표시됩니다 df.
  • 마찬가지로 파일 시스템도 때때로 손상됩니다. 손상으로 인해 모든 참조가 닫힌 후에도 파일이 계속 존재할 수 있습니다. 이것이 반정기적으로 훈련하는 좋은 이유이다FSCK디스크를 확인하세요.

귀하의 시나리오에서 가장 가능성이 높은 것은 제가 맨 위에 보여준 내보내기 예제입니다. 하지만 걱정된다면 fsck디스크를 마운트 해제하세요.

관련 정보