Linux Stale file handle 오류가 발생하는 원인과 해결 방법

Linux 서버에서 NFS(Network File System)를 사용하는 환경에서는 간혹 Stale file handle 오류를 만나게 됩니다. 평소에는 정상적으로 접근되던 파일이나 디렉터리가 갑자기 열리지 않거나 삭제되지 않고, 명령어 실행 시 Stale file handle이라는 메시지가 출력됩니다.

이 오류는 로컬 디스크에서는 거의 발생하지 않으며, NFS 서버와 클라이언트 간의 파일 정보(File Handle)가 일치하지 않을 때 발생하는 대표적인 네트워크 파일 시스템 오류입니다. 운영 중인 서버에서 NFS를 사용한다면 반드시 원인과 해결 방법을 알아두는 것이 좋습니다.

이번 글에서는 Stale file handle 오류가 발생하는 원인과 해결 방법을 자세히 알아보겠습니다.

Stale file handle이란 무엇인가?

Stale file handle은 NFS 클라이언트가 가지고 있는 파일 정보와 NFS 서버의 실제 파일 정보가 서로 달라졌을 때 발생하는 오류입니다.

대표적인 오류 예시는 다음과 같습니다.

ls: cannot access '/mnt/nfs/data': Stale file handle

또는

rm: cannot remove 'file.txt': Stale file handle

또는

Stale NFS file handle

일반적으로 NFS 서버에서 파일이 삭제되거나 Export 설정이 변경되었을 때 자주 발생합니다.

Stale file handle 오류가 발생하는 대표적인 원인

다음과 같은 경우에 자주 발생합니다.

  • NFS 서버에서 파일 삭제
  • NFS 서버 재부팅
  • Export 설정 변경
  • 파일 시스템 재마운트
  • 디렉터리 이동
  • NFS 서버 장애
  • 네트워크 장애
  • NAS 재시작
  • 잘못된 마운트 설정
  • 오래된 NFS 캐시

실무에서는 NFS 서버 상태를 먼저 확인하는 것이 가장 중요합니다.

1. 현재 마운트 상태 확인하기

먼저 NFS가 정상적으로 마운트되어 있는지 확인합니다.

mount | grep nfs

또는

df -h

NFS 마운트가 정상인지 확인합니다.

2. NFS 서버 연결 확인하기

NFS 서버와 통신이 가능한지 확인합니다.

ping NFS_SERVER

또는

showmount -e NFS_SERVER

Export 목록이 정상적으로 조회되는지 확인합니다.

3. Export 설정 확인하기

NFS 서버에서 Export 정보를 확인합니다.

exportfs -v

설정이 변경되었거나 공유 디렉터리가 삭제되지 않았는지 확인합니다.

4. 파일 시스템 재마운트하기

클라이언트에서 마운트를 해제한 후 다시 연결합니다.

umount /mnt/nfs

다시 마운트합니다.

mount /mnt/nfs

또는

mount -a

재마운트만으로 해결되는 경우가 많습니다.

5. 현재 사용 중인 프로세스 확인하기

마운트 해제가 되지 않는다면 해당 디렉터리를 사용하는 프로세스를 확인합니다.

lsof +D /mnt/nfs

또는

fuser -vm /mnt/nfs

프로세스를 종료한 후 다시 마운트를 시도합니다.

6. NFS 서비스 상태 확인하기

NFS 서버에서 서비스가 정상 동작하는지 확인합니다.

systemctl status nfs-server

또는

systemctl status nfs

서비스가 중지되어 있다면 다시 시작합니다.

systemctl restart nfs-server

7. 시스템 로그 확인하기

관련 로그를 확인합니다.

journalctl -xe

또는

dmesg

NFS 관련 오류가 기록되어 있는지 확인합니다.

8. 강제 언마운트하기

일반적인 언마운트가 되지 않는 경우에는 강제 언마운트를 사용할 수 있습니다.

umount -f /mnt/nfs

또는 Lazy Unmount를 사용할 수도 있습니다.

umount -l /mnt/nfs

운영 환경에서는 사용 중인 서비스에 영향을 줄 수 있으므로 주의해야 합니다.

9. 네트워크 상태 확인하기

NFS는 네트워크를 통해 동작하므로 연결 상태도 함께 확인해야 합니다.

ip addr

또는

ip route

라우팅이나 네트워크 장애가 없는지 확인합니다.

10. 서버 재부팅 여부 확인하기

NFS 서버가 최근 재부팅되었거나 NAS가 재시작된 경우 클라이언트에서 다시 마운트해야 할 수도 있습니다.

운영 환경에서는 재부팅 이후 NFS 마운트 자동 연결 여부도 함께 확인하는 것이 좋습니다.

Stale file handle 문제를 확인하는 순서

실무에서는 다음 순서대로 점검하는 것이 가장 효율적입니다.

  1. mount 확인
  2. df -h 확인
  3. showmount -e 확인
  4. exportfs -v 확인
  5. 재마운트 수행
  6. lsof 확인
  7. NFS 서비스 확인
  8. 시스템 로그 확인
  9. 강제 언마운트 검토
  10. 네트워크 상태 확인

이 순서대로 점검하면 대부분의 원인을 빠르게 파악할 수 있습니다.

오류를 예방하는 방법

Stale file handle 오류를 예방하려면 운영 중인 NFS 공유 디렉터리를 임의로 삭제하거나 이동하지 않는 것이 중요합니다.

또한 다음 사항을 권장합니다.

  • NFS 서버 재시작 전 사용자 공지
  • Export 설정 변경 후 클라이언트 재마운트
  • 안정적인 네트워크 구성
  • 자동 마운트 설정 점검
  • 정기적인 NFS 로그 모니터링

자주 묻는 질문

재마운트하면 대부분 해결되나요?

네. NFS 서버와 클라이언트의 파일 핸들 정보가 다시 동기화되면서 해결되는 경우가 많습니다.

로컬 디스크에서도 발생하나요?

거의 발생하지 않습니다. 대부분 NFS 또는 NAS와 같은 네트워크 파일 시스템 환경에서 발생합니다.

umount가 되지 않습니다.

lsoffuser로 해당 디렉터리를 사용 중인 프로세스를 확인한 후 종료하고 다시 시도해 보세요.

마무리

Stale file handle 오류는 NFS 서버와 클라이언트 간 파일 핸들 정보가 일치하지 않을 때 발생하는 대표적인 파일 시스템 오류입니다. mount, showmount, exportfs, lsof, journalctl 등을 활용하면 대부분의 원인을 빠르게 파악할 수 있으며, 재마운트만으로도 해결되는 경우가 많습니다.

댓글 남기기