목차

1. NFS란?

동작 구조

2. NFS의 장단점

3. 구축 방법

NFS Server

1️⃣ NFS 서버 패키지 설치

2️⃣ NFS 설정 및 실행

NFS Client

1️⃣ 패키지 설치

2️⃣ 마운트 설정

태그

#NETWORK

#NFS

NFS에 대하여

2024년 1월 18일 14:46

56-thumbnail-image

1. NFS란?

NFS(Network File System)는 네트워크에 파일을 저장하는 메커니즘입니다. 이 시스템은 사용자가 원격 컴퓨터에 있는 파일 및 디렉토리에 액세스할 수 있고 해당 파일 및 디렉토리가 로컬에 있는 것처럼 처리하도록 허용하는 분산 파일 시스템입니다.

예를 들어, 사용자는 운영 체제 명령을 사용하여 원격 파일 및 디렉토리에 대한 파일 속성을 작성, 제거, 읽기, 쓰기, 설정할 수 있습니다.

동작 구조

  • 클라이언트-서버 구조를 이용해서 서비스를 제공합니다.
  • NFS 클라이언트는 RPC(Remote Procedure Call)를 통해 접속하여 NFS 서버에 접근합니다.

2. NFS의 장단점

장점

  • NFS는 파일 액세스에 필요한 네트워크 요청 수를 줄이는 캐싱 메커니즘 사용으로 파일 접근이 빠릅니다.
  • 파일 잠금 지원함으로 다중 유저가 동시 수정 불가능하며 공유 및 공동작업 수행시 이점이 있습니다.
  • 공통으로 사용되는 파일이 있으면 각 컴퓨터에 파일을 저장하지 않고 서버 1개에 저장하여 효율적으로 사용합니다.

단점

  • 기본적으로 암호화 및 인증 미제공하기 때문에 다른 공유 프로토콜보다 보안수준 낮습니다.
  • NFS는 서버와 클라이언트가 여러개인 대규모에서 구성 및 설정 어렵습니다.
  • 네트워크를 이용하는 것이기 때문에 내장 하드, 혹은 DAS보다 속도가 느립니다.

3. 구축 방법

NFS Server

1️⃣ NFS 서버 패키지 설치

다운로드

apt update
apt install nfs-kernel-server

버전 확인

cat /proc/fs/nfsd/versions

서버 구성 디렉토리

# 1
/etc/default/nfs-kernel-server
# 2
/etc/default/nfs-common

2️⃣ NFS 설정 및 실행

디렉토리 설정

mkdir -p /home/nfs
chown -R nobody:nogroup /home/nfs

환경 설정

서버가 클라이언트에 노출하는 모든 디렉토리에 대한 정보를 담습니다.

vim /etc/exports
/home/nfs          xxx.xxx.xxx.xxx (rw, sync, no_subtree_check)

아래는 아이피 뒤에 있는 () 옵션으로 들어갈 수 있는 것들입니다.

  • rw, ro: 읽기/쓰기, 읽기 전용
  • sync: 변경사항 발생 시 동기적 저장 및 처리
  • async: 데이터의 변경에 대해 비동기적 처리
  • root_squatsh: 클라이언트의 root 사용자를 root가 아닌 서버의 nobody 유저의 권한으로 처리. 쓰기작업 시 클라이언트 root로 작업해도 nobody로 작업된다. 기본값.
  • no_root_squatsh: 클라이언트의 root 사용자를 root 그대로의 권한을 인정해줌. 클라이언트가 생성한 파일의 소유자가 root로 작성된다.(root 권한으로 작성된 파일은 보안에 민감할 수 있다.)
  • all_squash: 모든 클라이언트 사용자를 nobody 유저로 매핑시킨다. 클라이언트는 root 권한이 없이 작업하고 이는 nobody 유저의 작업으로 된다.
  • no_all_squash: 공유된 디렉토리의 사용자(서버)와 클라이언트의 사용자가 일치해야한다. uidgid가 일치하면 쓰기작업을 할 수 있다.
  • no_subtree_check: 클라이언트가 작업한 내용에 대해 무결성 검사를 하는 하위 트리 검사를 수행하지 않는다.

설정 적용

exportfs -a
systemctl restart nfs-kernel-server.service

실행 설치가 완료되면 NFS 서비스가 자동으로 시작됩니다.

NFS Client

1️⃣ 패키지 설치

apt update
apt install nfs-common

2️⃣ 마운트 설정

파일 생성

mkdir -p /home/nfs

마운트

mount -t xxx.xxx.xxx.xxx:/home/nfs /home/nfs
mount -t <NFS server IP>:/<server directory> <clinet directory>

언마운트

umount /home/nfs
umount <client direcotry>

!! 추가

df - 파일 디렉토리 구조를 볼 수 있는 명령어 입니다.