Linux 서버에서 “No space left on device” 오류가 발생했다고 해서 항상 디스크 용량이 부족한 것은 아닙니다. 디스크에 충분한 여유 공간이 있는데도 파일을 저장할 수 없다면 inode가 모두 사용되었을 가능성이 있습니다.
inode는 모든 파일과 디렉터리에 하나씩 할당됩니다. 작은 파일이 수백만 개 이상 생성되면 디스크 용량보다 inode가 먼저 부족해질 수 있습니다. 이 문제는 웹 서버, 로그 서버, 메일 서버, 캐시 서버에서 자주 발생합니다.
inode 부족은 파일을 삭제하거나 정리하면 해결할 수 있습니다. 먼저 현재 inode 사용량을 확인한 후 원인이 되는 디렉터리를 찾는 것이 중요합니다.
현재 inode 사용량 확인하기
먼저 inode 사용률을 확인합니다.
df -i
IUse% 값이 100%에 가깝다면 inode 부족이 발생한 상태입니다.
디스크 용량도 함께 확인하는 것이 좋습니다.
df -h
디스크 공간은 충분하지만 inode 사용률만 높다면 inode 부족이 원인입니다.
파일이 가장 많은 디렉터리 찾기
inode는 파일 개수와 직접 연결됩니다.
파일이 많은 디렉터리를 찾으려면 다음 명령어를 실행합니다.
find / -xdev -type f | cut -d "/" -f2 | sort | uniq -c | sort -nr
파일 개수가 많은 디렉터리를 우선적으로 확인합니다.
특정 디렉터리의 파일 개수 확인하기
특정 디렉터리의 파일 수를 확인하려면 다음 명령어를 사용합니다.
find /var/log -type f | wc -l
파일 개수가 비정상적으로 많다면 inode 부족의 원인일 가능성이 높습니다.
필요한 경우 다른 디렉터리도 같은 방법으로 확인할 수 있습니다.
오래된 로그 파일 삭제하기
로그 파일은 inode를 많이 사용하는 대표적인 원인입니다.
오래된 로그를 삭제하려면 먼저 내용을 확인합니다.
ls -lh /var/log
불필요한 로그 파일은 삭제하거나 보관 위치를 변경할 수 있습니다.
로그를 삭제하기 전에 현재 사용 중인 파일인지 확인하는 것이 중요합니다.
임시 파일 정리하기
임시 디렉터리에는 사용하지 않는 파일이 계속 남아 있을 수 있습니다.
대표적으로 다음 위치를 확인합니다.
- /tmp
- /var/tmp
파일 개수를 확인합니다.
find /tmp -type f | wc -l
사용하지 않는 임시 파일은 정기적으로 정리하는 것이 좋습니다.
캐시 파일 정리하기
애플리케이션이나 패키지 관리자는 캐시 파일을 생성합니다.
캐시 파일이 과도하게 많아지면 inode도 함께 증가합니다.
필요하지 않은 캐시 파일은 삭제하여 inode를 확보할 수 있습니다.
작은 파일을 하나의 압축 파일로 저장하기
작은 파일이 매우 많다면 하나의 압축 파일로 묶는 것도 좋은 방법입니다.
예를 들어 다음 명령어를 사용할 수 있습니다.
tar -czf backup.tar.gz logs/
수천 개의 파일을 하나의 파일로 만들면 inode 사용량을 크게 줄일 수 있습니다.
로그 자동 관리 설정하기
로그 파일이 계속 증가하는 서버에서는 자동 관리 기능을 사용하는 것이 좋습니다.
대표적으로 logrotate를 사용하면 오래된 로그를 자동으로 압축하거나 삭제할 수 있습니다.
정기적인 로그 관리는 inode 부족을 예방하는 가장 효과적인 방법 중 하나입니다.
inode 부족을 예방하는 방법
다음과 같은 관리 방법을 적용하면 inode 부족을 예방할 수 있습니다.
- 오래된 로그 파일 정리
- 임시 파일 삭제
- 캐시 파일 관리
- 사용하지 않는 파일 제거
- 로그 자동 회전 설정
- inode 사용률 정기 확인
서버를 장기간 운영할수록 이러한 관리 작업이 더욱 중요합니다.
inode 부족 해결 시 주의할 점
파일을 삭제하기 전에 현재 서비스에서 사용 중인 파일인지 반드시 확인해야 합니다.
로그 파일이나 데이터 파일을 무조건 삭제하면 서비스 오류가 발생할 수 있습니다.
운영 서버에서는 백업 후 작업하는 것이 안전합니다.
또한 inode 사용률이 높아지는 원인을 함께 분석하여 같은 문제가 반복되지 않도록 관리하는 것이 중요합니다.
자주 묻는 질문
inode 부족은 어떻게 확인하나요?
다음 명령어를 사용합니다.
df -i
inode 부족은 어떻게 해결하나요?
파일 개수가 많은 디렉터리를 확인한 후 불필요한 파일을 삭제하거나 정리하면 됩니다.
작은 파일이 많은 것이 문제가 될 수 있나요?
그렇습니다.
파일 크기와 관계없이 파일 하나마다 inode 하나가 사용됩니다.
작은 파일이 매우 많으면 inode가 먼저 부족해질 수 있습니다.
마무리
inode 부족은 Linux 서버에서 자주 발생하는 저장 문제 중 하나입니다. 디스크 용량이 충분해도 inode가 모두 사용되면 새로운 파일을 생성할 수 없습니다. df -i 명령어로 inode 사용률을 확인하고, 파일이 많은 디렉터리를 정리하면 대부분의 문제를 해결할 수 있습니다. 로그와 임시 파일을 정기적으로 관리하면 inode 부족으로 인한 서버 장애를 예방할 수 있습니다.