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/
'Study > Network' 카테고리의 다른 글
[Network]Zeek 구축 및 파일 추출(File extraction) (1) | 2024.09.19 |
---|---|
[Network]Suricata 구축 및 파일 추출(File extraction) (1) | 2024.09.03 |
[Network]Proxy(Forward, Reverse, Transparent) (0) | 2024.08.25 |
[Network] Sendmail 메일 서버 구축 + DNS 서버 연결 (0) | 2024.08.09 |
[Network]FTP 서버 구축 (0) | 2024.08.03 |