Linux NFS 서버 구축 관련 가이드이다. NFSv4 서버와 클라이언트를 구성하고 export 범위, root_squash, UID/GID, 방화벽, 영구 마운트와 장애 복구를 검증한다. 명령을 복사하기 전에 대상과 권한, 변경 범위, 복구 경로를 먼저 확인해야 한다. 이 글은 개념, 적용 순서, 실제 코드 블록, 검증과 문제 해결을 하나의 운영 절차로 정리한다.
예시는 이해를 돕기 위한 값이다. 호스트명, 사용자, 장치, 경로와 네트워크 대역을 실제 환경에 맞게 바꾼다. 운영 변경은 현재 상태와 설정을 백업하고 콘솔 또는 별도 관리 세션을 확보한 뒤 진행한다.

Linux NFS 서버 구축: 핵심 개념과 범위
Linux NFS 서버 구축 관련 설정을 정확히 적용하려면 명령 이름보다 구성 요소 사이의 관계를 이해해야 한다. 조회 결과와 설정 파일, 실행 프로세스, 로그와 실제 서비스 응답을 서로 대조한다.
| 구분 | 운영 기준 |
|---|---|
| 데이터 경로 | 디스크·파일시스템·공유 프로토콜·클라이언트 마운트의 연결 |
| 접근 제어 | UID/GID, POSIX 권한, ACL, NFS 내보내기와 Kerberos 옵션 |
| 복구성 | 용량·inode 감시, 스냅샷, 별도 백업과 실제 복원 시험 |
이 글에서 바로잡는 핵심 사항
- 가능하면 NFSv4와 중앙 UID/GID 관리를 사용한다.
- no_root_squash를 일반 공유에 사용하지 않는다.
- 클라이언트 부팅 의존성과 네트워크 장애 시 동작을 시험한다.
Linux NFS 서버 구축: 적용 전 안전 점검
- 데이터 중요도, 성능, 용량, 장애 허용과 복구 목표를 먼저 정의한다.
- 디스크와 파일시스템, 네트워크, UID/GID와 이름 해석을 확인한다.
- 공유 범위와 쓰기 권한을 최소화하고 root 권한 매핑을 안전하게 유지한다.
- 클라이언트 마운트와 서비스 의존성, 시간 초과와 재시도 정책을 시험한다.
- 스냅샷과 별도 백업을 구분하고 정기적으로 격리된 복원 시험을 수행한다.
Linux NFS 서버 구축: 명령어와 설정 예시
아래 명령은 단계별로 실행한다. 각 코드 블록이 성공했다고 다음 단계까지 자동으로 안전한 것은 아니다. 출력, 종료 코드와 로그를 확인한 뒤 진행한다.
1단계: 현재 상태 확인
sudo dnf install nfs-utils
sudo install -d -o nfsowner -g nfsusers -m 2770 /srv/nfs/project
sudo systemctl enable --now nfs-server
2단계: 설정 또는 안전한 작업
/srv/nfs/project 192.0.2.0/24(rw,sync,root_squash,sec=sys)
3단계: 결과 검증
sudo exportfs -rav
sudo exportfs -v
showmount -e server.example.com
sudo mount -t nfs4 server.example.com:/srv/nfs/project /mnt/project
findmnt /mnt/project
운영 검증과 문제 해결
검증은 명령의 성공 메시지에서 끝나지 않는다. 실행 주체, 실제 파일·프로세스·소켓 상태, 서비스 로그와 사용자 관점의 기능 시험을 함께 확인한다. 실패했다면 같은 명령을 반복하기보다 마지막 변경과 정상 기준선의 차이를 좁혀야 한다.
- 마운트 오류는 서버 export, 방화벽, 이름 해석, 버전과 클라이언트 로그를 대조한다.
- Permission denied는 파일 모드만 바꾸지 말고 UID/GID, ACL과 NFS 매핑을 확인한다.
- 용량이 남아도 inode 또는 열린 삭제 파일 때문에 쓰기가 실패할 수 있다.
운영 체크리스트
- 대상 호스트·사용자·장치·파일·서비스를 명확히 식별했다.
- 현재 설정과 중요 데이터를 별도 위치에 백업했다.
- 최소 권한 계정과 필요한 네트워크 범위를 사용했다.
- 명령어와 설정 예시는 실제 환경 값으로 교체했다.
- 새 세션 또는 독립된 클라이언트에서 기능을 검증했다.
- 로그·모니터링·백업·복구 절차와 담당자를 확인했다.
공식 문서와 관련 가이드
Linux NFS 서버 구축 관련 작업의 완료 기준은 명령이 한 번 실행되는 상태가 아니다. 재부팅이나 새 세션에서도 설정이 유지되고, 권한과 노출 범위가 의도와 맞으며, 오류를 탐지하고 안전하게 되돌릴 수 있어야 한다.