디스크 공간은 있는데 파일을 생성할 수 없다면? (Linux Inode 고갈)
(dev.to)
리눅스 서버에서 디스크 용량이 충분함에도 'No space left on device' 오류가 발생하는 원인인 'Inode 고갈' 문제를 다룹니다. 수많은 작은 파일(0바이트 포함)이 생성되어 파일 시스템의 인덱스 노드(Inode)를 모두 점유했을 때 발생하는 현상과 그 해결 및 예방책을 설명합니다.
- 1디스크 용량이 남아있어도 Inode가 고갈되면 'No space left on device' 오류 발생
- 20바이트 파일이라도 파일 하나당 1개의 Inode를 점유하여 시스템 자원을 소모함
- 3대량의 파일 삭제 시 `rm` 대신 `find ... -delete`를 사용하여 ARG_MAX 제한 문제를 회피해야 함
- 4모니터링 시스템에 Inode 사용률(df -i)에 대한 알람 설정(예: 85% 이상)이 필수적임
- 5logrotate 설정을 통해 로그 파일의 주기적인 관리와 정리가 필요함
이 사례는 기술적 오류를 넘어 '관측 가능성(Observability)의 사각지대'가 어떻게 비즈니스 리스크로 이어지는지를 극명하게 보여줍니다. 많은 개발자가 `df -h` 결과만 보고 '용량이 남았으니 문제가 없다'고 판단하는 오류를 범하는데, 이는 인프라의 핵심 지표를 편향되게 해석한 결과입니다.
스타트업 창업자와 CTO는 기술 부채(Technical Debt) 관점에서 '디버깅용 스크립트'나 '임시 로그'가 운영 환경에 잔존하는 것을 엄격히 관리해야 합니다. 단순히 문제를 해결하는 것을 넘어, `df -i`와 같은 하위 레벨의 지표를 모니터링 대시보드에 포함하고, 파일 생성 로직에 대한 코드 리뷰를 강화하는 것이 서비스 안정성을 확보하는 실질적인 실행 전략입니다.
댓글
아직 댓글이 없습니다. 첫 댓글을 남겨보세요.