Networking, Security, Protocols

NFS(Network File System) / auto fs(auto file system)

Somaz 2022. 1. 18. 16:28
728x90
반응형

 

Overview

NFS(Network File System)는 네트워크를 통해 원격 시스템의 디렉터리를 로컬 디렉터리에 마운트하여 공유할 수 있도록 해주는 파일 시스템이다.


이는 리눅스 및 유닉스 시스템에서 널리 사용되며, 다른 OS에서도 활용 가능하다.

 

또한, AutoFS(Auto File System)를 사용하면 NFS 마운트를 자동화할 수 있어 시스템 부팅 시 마운트 문제를 해결하고, 필요한 경우에만 파일 시스템을 마운트할 수 있다.

 

이 글에서는 NFS 개념 및 설정, AutoFS 활용 방법에 대해 정리한다.

 

 

 

 

 


 

 

NFS(Network File System)란?

NFS는 클라이언트-서버 모델을 기반으로 네트워크를 통해 원격 파일 시스템을 마운트하여 로컬 디렉터리처럼 사용할 수 있도록 해주는 프로토콜이다.

 

 

 

NFS의 특징

  • 리모트 파일 시스템을 로컬처럼 사용 가능
  • 파일 및 디렉터리 공유 가능
  • 읽기/쓰기(rw), 읽기 전용(ro) 등 권한 설정 가능
  • 서버는 여러 클라이언트에 디렉터리를 공유 가능
  • 클라이언트는 여러 개의 NFS 서버에 연결 가능

 

 

NFS 작동 방식

  1. NFS 서버(NFS Server)는 특정 디렉터리를 클라이언트에 공유
  2. NFS 클라이언트(NFS Client)는 서버의 공유 디렉터리를 로컬 디렉터리에 마운트
  3. 사용자는 네트워크를 통해 원격 파일 시스템을 로컬처럼 접근

 

 

 

 


 

 

 

 

NFS Server 설정 (서버 IP: 172.17.5.10)

 

1️⃣ 패키지 설치

yum -y install nfs-utils  # CentOS/RHEL
apt install nfs-kernel-server -y  # Ubuntu/Debian

 

 

 

2️⃣ NFS 서비스 활성화

systemctl enable nfs-server
systemctl start nfs-server
 
 
 

NFS 서비스 상태 확인

systemctl status nfs-server

 

 

 

3️⃣ NFS 공유 디렉터리 생성 및 마운트 설정

 

새로운 디스크를 추가하고 파티션 및 포맷 진행

fdisk /dev/sdb  # 파티션 생성
mkfs.ext4 /dev/sdb1  # ext4 파일 시스템 생성
mkdir -p /nfs_server  # 공유 디렉터리 생성
mount /dev/sdb1 /nfs_server  # 마운트

 

 
 

자동 마운트 설정 (Auto Mount)

echo "/dev/sdb1 /nfs_server ext4 defaults 0 2" >> /etc/fstab
mount -a  # 설정 적용

 

 

 

4️⃣ NFS 공유 설정 (exports 파일 수정)

 

공유 설정 파일 편집

vi /etc/exports
 
 
 

공유 디렉터리 설정 예시

/nfs_server 172.17.5.30(rw,no_root_squash,sync)
 
 
 

설정 설명

  • `/nfs_server` → 공유할 디렉터리
  • `172.17.5.30` → 특정 클라이언트 IP (네트워크 범위도 가능)
  • `rw` → 읽기/쓰기 허용
  • `no_root_squash` → 루트 계정으로 접근 허용
  • `sync` → 데이터 동기화 보장

 

📌 설정 적용

 
exportfs -r  # 변경사항 적용
exportfs -v  # 현재 공유 상태 확인

 

 

 

 

5️⃣ 방화벽 설정

firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-port=2049/tcp  # NFS 기본 포트
firewall-cmd --reload
 
 

방화벽 상태 확인

firewall-cmd --list-all

 

 

 

 

 


 

 

 

 

 

 

NFS Client 설정 (클라이언트 IP: 172.17.5.30)

 

1️⃣ 패키지 설치

yum -y install nfs-utils # CentOS/RHEL 
apt install nfs-common -y # Ubuntu/Debian
 

 

2️⃣ 마운트할 디렉터리 생성

mkdir -p /nfs_client

 

 

 

3️⃣ NFS 서버 마운트

mount -t nfs 172.17.5.10:/nfs_server /nfs_client
 
 

마운트 확인

df -h | grep nfs
 
 
 

자동 마운트 설정 (Auto Mount)

echo "172.17.5.10:/nfs_server /nfs_client nfs defaults 0 0" >> /etc/fstab mount -a
 
 
 

파일 전송 확인

echo "NFS TEST" > /nfs_client/test.txt
cat /nfs_server/test.txt  # 서버에서 파일 확인 가능

 

 

 

 

 


 

 

 

 

 

AutoFS (자동 마운트) 설정

AutoFS(Auto File System)는 필요할 때만 NFS 마운트를 자동으로 수행하는 기능을 제공한다.

 

 

1️⃣ 패키지 설치

yum -y install autofs # CentOS/RHEL 
apt install autofs -y # Ubuntu/Debian
 
 

2️⃣ AutoFS 설정 파일 수정

 

 

`/etc/auto.master` 파일 편집

vi /etc/auto.master

/misc /etc/auto.misc

 

 

`/etc/auto.misc` 파일 편집

vi /etc/auto.misc

nfs_auto -rw,hard,intr 172.17.5.10:/nfs_server
 
 
 

설정 설명

  • `-rw` → 읽기/쓰기 허용
  • `hard` → 연결이 끊어지면 다시 시도
  • `intr` → 인터럽트 가능

 

 

 

 

3️⃣ AutoFS 서비스 재시작

systemctl restart autofs
systemctl enable autofs
 
 
 

AutoFS 마운트 확인

ls /misc/nfs_auto
 

 

 

 

 

 

 


 

 

 

 

 

 

마무리

NFS를 사용하면 네트워크를 통해 파일 시스템을 공유할 수 있으며,
AutoFS를 활용하면 자동으로 필요한 경우에만 마운트하여 불필요한 네트워크 사용을 줄일 수 있다.

 

 

정리

  • NFS는 서버에서 공유 디렉터리를 클라이언트에서 마운트하여 사용
  • /etc/exports 파일에서 NFS 공유 설정을 구성
  • AutoFS를 사용하면 필요할 때만 마운트하여 리소스 절약 가능
  • 보안 강화를 위해 root_squash, sync 옵션을 적절히 설정할 것

 

 

이제 NFS와 AutoFS를 활용하여 효율적인 파일 공유 시스템을 구축해보자!

 

 

 

 

 


 

 

 

Reference

 

 

 

728x90
반응형

'Networking, Security, Protocols' 카테고리의 다른 글

RSA 공개키를 이용한 SSH 접속  (0) 2022.01.20
DNS(Domain Name System)  (0) 2022.01.19
FTP란? FTP Server란?  (0) 2022.01.18
SCP(Secure Copy)  (0) 2022.01.17
SSH(Secure Shell)  (0) 2022.01.17