Overview
NFS(Network File System)는 네트워크를 통해 원격 시스템의 디렉터리를 로컬 디렉터리에 마운트하여 공유할 수 있도록 해주는 파일 시스템이다.
이는 리눅스 및 유닉스 시스템에서 널리 사용되며, 다른 OS에서도 활용 가능하다.
또한, AutoFS(Auto File System)를 사용하면 NFS 마운트를 자동화할 수 있어 시스템 부팅 시 마운트 문제를 해결하고, 필요한 경우에만 파일 시스템을 마운트할 수 있다.
이 글에서는 NFS 개념 및 설정, AutoFS 활용 방법에 대해 정리한다.
NFS(Network File System)란?
NFS는 클라이언트-서버 모델을 기반으로 네트워크를 통해 원격 파일 시스템을 마운트하여 로컬 디렉터리처럼 사용할 수 있도록 해주는 프로토콜이다.
NFS의 특징
- 리모트 파일 시스템을 로컬처럼 사용 가능
- 파일 및 디렉터리 공유 가능
- 읽기/쓰기(rw), 읽기 전용(ro) 등 권한 설정 가능
- 서버는 여러 클라이언트에 디렉터리를 공유 가능
- 클라이언트는 여러 개의 NFS 서버에 연결 가능
NFS 작동 방식
- NFS 서버(NFS Server)는 특정 디렉터리를 클라이언트에 공유
- NFS 클라이언트(NFS Client)는 서버의 공유 디렉터리를 로컬 디렉터리에 마운트
- 사용자는 네트워크를 통해 원격 파일 시스템을 로컬처럼 접근
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
- man exports, man nfs, man autofs
- NFS 공식 문서
'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 |