Linux에서 NFS 공유 디렉토리 구축하기

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 명령어로 공유 상태를 확인하세요

8월 28일 22:14에 게시됨