개요
마이다스아이티의 특정 서비스 서버의 용량이 10%미만이 남았다.
하지만 사용하는 용량의 내역을 아무리 뒤져보아도 14GB(of 30GB)만 사용 중이였다.
디렉토리 상세 데이터를 조회하여도($df -hT, du -sh 등), 14GB 뿐이었다.
그렇다면 나머지 13GB는 어디있는걸까?
Phantom Storage를 찾아 떠나보자!
Phantom Storage
lsof란? → list open files 명령어로 현재 열려 있는 파일에 대한 정보를 자세히 알려준다. 그렇다면 왜 'deleted'를 조회하는걸까?
우선, 그 결과를 먼저 보자
맨 하단에 log 파일이 14G정도를 잡고 있다.
바로 이 녀석이** Phantom Storage**이다.
다시 질문으로 돌아와서,
저 영역이 사용자가 df나 du와 같은 명령어로 확인할 수 없는 구간이기 때문에, deleted 영역을 조회해야 한다.
마치 윈도우 UI에서 쓰레기통과 같은 역할인데(저기서 복구도 가능하다), 사용중인 데이터로 잡히지 않는다.
저 데이터를 없애는 방법은 간단하다.
잘못된 것이라면 복원하고 아니라면 kill 명령어로 PID를 제거해 주면 된다.
그럼 왜 저 구간에 머물게 되는 것일까?
파일이 사용자나 시스템에 의해서 열리게 되면, 두 곳의 출처를 갖는다.
한 곳은 Reference(해당 디렉토리에 대한 링크, 껍데기)와 Applications(파일의 실행을 담당하는 영역)이다.
이렇게 파일이 열려 있을 때, 해당 파일을 지우면 어떻게 될까?
그럼 시스템은 reference에 대한 정보만 디스크에서 지우게 된다.
Reference는 제거되지만, 열려 있는 파일 정보는 Application에서 계속 남아 있게 된다.
**그렇기 때문에 저 log의 모든 행을 truncate(행을 전부 지우던지) 하던지, PID를 kill 해서 Phantom Storage를 잡아주면 된다.
'June > 리눅스' 카테고리의 다른 글
CentOS 커널 업데이트, GPU 서버 Nvidia update 하기 (0) | 2020.11.14 |
---|---|
iptables와 포트 포워딩 (2) | 2020.10.31 |
yum update로 리눅스 커널 업데이트하기 (2) | 2020.08.24 |
리눅스 계정 패스워드 관리(passwd/ shado) (0) | 2020.08.20 |
리눅스 서버 cache memory 정리 (0) | 2019.08.09 |