LVM2와 함께 RHEL4를 사용하고 있습니다. GB를 초과하는 대용량 파일을 삭제하더라도 df
이 명령을 사용하면 파티션 크기가 업데이트되지 않는 경우가 있습니다.
-bash-3.00$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/sys-root 3.9G 1.4G 2.3G 39% /
/dev/cciss/c0d0p1 251M 19M 219M 8% /boot
/dev/mapper/sys-home 250G 125G 113G 53% /home
/dev/mapper/sys-tmp 3.9G 41M 3.7G 2% /tmp
/dev/mapper/sys-var 3.9G 3.6G 98M 98% /var
하지만 du를 사용하여 확인하면 올바른 크기가 표시됩니다.
-bash-3.00$ sudo du -sh /var/
179M /var/
df 출력에서는 /var 파티션이 3.6Gb를 사용한 것으로 표시되지만 du에서는 179Mb에 불과한 것으로 표시됩니다.
이제 문제는 sync나 partprobe 모두 정보를 업데이트하지 않았다는 것입니다. 그러나 호스트를 다시 시작하면 문제가 확실히 해결됩니다. 하지만 프로덕션 서버이므로 다시 시작할 수 없습니다. 호스트를 재부팅하지 않고 디스크 정보를 수동으로 업데이트할 수 있는 방법이 있습니까?
답변1
파일이 삭제/삭제/링크 해제될 때 프로세스가 계속 열려 있으면 파일의 데이터가 아닌 파일의 디렉터리 항목만 삭제됩니다. 모든 프로세스에서 파일이 완전히 닫히면 데이터는 여유 공간 풀로 반환됩니다. 이런 방식으로 익명 파일을 가질 수 있기 때문에 이것이 특징입니다.
파일 시스템에 열려 있고 삭제된 파일이 있는지 확인하려면 /mount/point
마운트 지점이 어디에 있든( /var
귀하의 경우) 다음 명령 중 하나를 실행하십시오.
lsof +L1 /mount/point
이것링크되지 않은 파일 열기에 관한 기사이에 대해 더 자세히 설명하는 데 도움이 되어야 합니다.