Study/Network

[Network]NFS 서버 및 클라이언트 구성

seomj 2024. 12. 4. 23:00

NFS를 이전에 배웠고 구성하고 사용한 적이 있으나 다시 구성해야 할 일이 생겼고 복습을 하는 겸 블로그에도 정리해두고자 한다.


NFS

Network File System

네트워크에 파일을 저장하는 메커니즘

사용자가 원격 컴퓨터에 있는 파일 및 디렉토리에 액세스할 수 있고 해당 파일 및 디렉토리가 로컬에 있는 것처럼 처리하도록 허용하는 분산 파일 시스템

클라이언트-서버 관계를 통해 해당 서비스를 제공

  • 서버: 파일 시스템 또는 디렉토리 및 기타 자원의 원격 액세스를 가능하게 만드는 컴퓨터
  • 반출: 파일 시스템을 가능하게 만드는 조치
  • 클라이언트: 서버 자원을 사용하는 컴퓨터와 해당 프로세스

→ 클라이언트가 서버가 반출한 파일 시스템을 마운트한 후에 클라이언트는 개별 서버 파일에 액세스할 수 있다.

 

 

설치

환경

Server: CentOS 7.9 / 10.0.0.2

Client: CentOS 7.9 / 10.0.0.3

 

NFS 서버

NFS 서버를 설치하기 위해 install을 진행한다. 

yum install nfs-utils

 

ubuntu 및 Debian 계열의 경우 아래의 명령어를 사용한다. 

apt install nfs-kernel-server

 

설치가 되었다면 실행은 아래와 같이 할 수 있다.

systemctl enable nfs
systemctl start nfs

 

공유할 디렉토리를 생성하고 공유할 대상을 설정해보도록 하자.

# 공유 대상 디렉토리 생성
mkdir nft_server
# 공유 대상 설정
vi /etc/exports

#<대상경로>    <IP>(<권한>) 
/home/nfs_server       10.0.0.3(rw,sync)

IP 대신 *를 사용해 모든 IP를 대상으로 설정도 가능하다.

 

권한

  • rw, ro: 읽기/쓰기, 읽기 전용
  • sync/async: 변경 사항이 요청에 응답하기 전에 커밋될지 여부를 제어
  • subtree_check/no_subtree_check: 클라이언트가 내보낸 파일 시스템에 마운트하려는 하위 디렉토리가 허용된 디렉토리인지 확인하는 보안 검증을 활성화하거나 비활성화
  • no_root_squash: 클라이언트의 root 계정이 서버에서도 root 권한을 갖도록 허용, 루트 소유 파일을 모든 클라이언트 시스템의 루트 사용자가 수정할 수 있도록 편의성을 추가
  • root_squash: 클라이언트의 root를 서버의 nobody 또는 nogroup으로 매핑
  • all_squash: 모든 클라이언트 사용자를 서버의 nobody 또는 nogroup으로 매핑

 

설정한 내용을 적용하기 위해 nfs를 재시작하자.

systemctl restart nfs

 

NFS 클라이언트

NFS 클라이언트를 설치하기 위해 install을 진행한다. 

yum install nfs-utils

 

ubuntu 및 Debian 계열의 경우 아래의 명령어를 사용한다. 

apt install nfs-common

 

 

서버에서 제대로 공유가 되었는지 확인해보자.

showmount -e 10.0.0.2

 

마운트 할 디렉토리가 없다면 새로 만들도록 하자.

mkdir /home/nfs_client

 

마운트

# mount <대상서버IP>:<대상경로> <마운트경로>
mount 10.0.0.2:/home/nfs_server /home/nfs_client

 

영구 마운트

vi /etc/fstab
# <대상경로> <마운트경로> <마운트유형> <마운트옵션1>,<마운트옵션2>... <dump> <fsck>
/home/nfs_server /home/nfs_client nfs defaults,nofail 0 0

 

확인

서버에서 임의의 파일(test1)을 생성한 후 클라이언트에서 확인해보자.

 

 

 

참고

https://www.ibm.com/docs/ko/aix/7.2?topic=management-network-file-system

https://documentation.ubuntu.com/server/how-to/networking/install-nfs/