리눅스 inodes full 이슈 해결 방법
소스 형상관리(SVN)로 사용하는 서버(xxx.xxx.xxx.xxx)에서, svn 사용 시(소스 check out등)
“svn: E204900: Can't find a temporary directory: Internal error”
와 같은 에러가 발생하는 경우 원인을 찾아본 결과, 서버 디스크 용량 full 문제였는데, 하드디스크 용량 부족의 문제가 아니라,
서버에서 설정되어 있는 inodes 개수가 100% 사용되는 것이 문제였습니다.
Inodes는 서버에서 파일의 정보를 담고 있는 구조체 데이터이며, 이는 서버에서 열 수 있는 파일의 개수와 연관이 있습니다.
따라서, inodes 사용률이 100%라는 것은, 서버에서 생성할 수 있는 파일의 개수를 모두 사용하고 있다는 것이며,
이는 하드 디스크의 데이터 용량과는 무관하게, 더 이상 새로운 파일을 생성할 수 없음을 뜻합니다.
SVN에서 소스를 체크아웃 할 경우에도, 내부적으로 임시파일을 생성하는 절차가 있으며, 위와 같은 사유로, 파일을 생성할 수 없으므로,
상기 이슈가 발생하였습니다.
Inodes의 사용률을 확인하는 방법 및 사용률 해소 방법은 다음과 같습니다.
1. Inodes 사용률 확인 : df –i
2. 1. 번 결과에서 사용률이 가장 높은 디렉토리로 이동하여 for i in *; do echo -e "$(find $i | wc -l)\t$i"; done | sort –n 명령 실행
3. 2. 번 결과에서 사용률이 가장 높은 디렉토리로 이동하여 2. 번 명령 반복
4. 3. 번을 반복 실행하여 최종 dept의 디렉토리까지 이동하여 파일 내용을 확인한 후, 불필요한 파일일 경우 삭제
5. 1. 번 명령을 통해 inodes 사용률 감소 확인
댓글