NFS概述
NFS(Network File System)는 네트워크를 통해 파일 시스템을 공유하는 프로토콜입니다. 주로局域网(локальная сеть)에서 서로 다른 호스트 간에 파일이나 디렉토리 데이터를 공유할 때 사용됩니다. 리눅스 환경에서 파일 공유를 구현하는 표준 프로토콜로, 클라이언트 mainly 리눅스 시스템을 지원합니다.
서버 설정
1. 패키지 설치
yum install -y nfs-utils rpcbind
2. 공유 디렉토리 생성
mkdir /data/shared
chown -R nfsnobody.nfsnobody /data/shared
3. 설정 파일 수정
/etc/exports 파일을 편집하여 공유 설정을 추가합니다.
주요 설정 옵션
| 옵션 | 설명 |
|---|---|
| ro | 읽기 전용 |
| rw | 읽기/쓰기 가능 |
| root_squash | 클라이언트의 root 사용자를 서버의 익명 사용자(nfsnobody)로 매핑 |
| no_root_squash | 클라이언트의 root를 서버의 root로 유지(보안 위험) |
| all_squash | 모든 클라이언트 사용자를 익명 사용자로 매핑(보안 강화) |
| sync | 데이터를 메모리와 디스크에 동기写入(안전하지만 성능 저하) |
| async | 데이터를 먼저 메모리에写入 후 디스크로 처리(높은 성능) |
| anonuid | 익명 사용자의 UID 지정 |
| anongid | 익명 사용자의 GID 지정 |
설정 예시
/data/shared 192.168.10.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
위의 설정은 192.168.10.0/24 网段의 클라이언트에게 읽기/쓰기 권한을 부여하고, 모든 사용자를 UID 1000, GID 1000의 익명 사용자로 매핑합니다.
4. 서비스 시작
systemctl start rpcbind.service
systemctl start rpcbind.socket
systemctl start nfs
5. 공유 상태 확인
showmount -e 服务器IP
출력 결과에 공유 디렉토리가 표시되면 설정이 성공적으로 완료된 것입니다.
클라이언트 설정
1. 마운트 포인트 생성
mkdir -p /mnt/nfs-client
2. NFS 마운트
mount -t nfs 服务器IP:/data/shared /mnt/nfs-client
3. 마운트 해제 (강제)
NFS 서버가 응답하지 않을 경우 강제 마운트 해제:
umount -fl /mnt/nfs-client
자동 마운트 설정 (선택)
/etc/fstab 파일에 다음 줄을 추가하여 부팅 시 자동 마운트:
服务器IP:/data/shared /mnt/nfs-client nfs defaults 0 0
참고사항
- rpcbind 서비스는 NFS보다 먼저 시작해야 합니다
- 방화벽이 활성화되어 있는 경우 해당 포트를 허용해야 합니다
- 프로덕션 환경에서는
all_squash옵션 사용을 권장합니다 - 정기적으로
showmount -e명령어로 공유 상태를 확인하세요