NFS 설치 – 성능 튜닝

Ubuntu에서 NFS(Network File System) 서버를 최적으로 설치하고 성능을 튜닝하는 방법을 단계별로 깔끔하게 정리해 보겠습니다.

전체 내용:

  1. NFS 설버 설치 :
    • 서버 설치 및 공유 디렉토리 설정.
  2. NFS 클라이언트 설치 :
    • 클라이언트 설치 및 공유 디렉토리 마운트.

* NFS 서버 설치

1. 서버로 사용할 호스트에서 서버 패키지 설치를 설치 합니다.
				
					# System upgrade (optional)
user:~$ sudo apt update
user:~$ sudo apt upgrade -y

# Install nfs server
user:~$ sudo apt install -y nfs-kernel-server
				
			
2. NFS 서비스를 시작하고, 부팅 시 자동으로 시작되도록 설정합니다.
				
					user:~$ sudo systemctl start nfs-server
user:~$ sudo systemctl enable nfs-server
				
			
3. 공유할 디렉토리 생성. 예시로 /data/nfs 디렉토리를 생성하고 권한을 설정 합니다.
				
					user:~$ sudo mkdir -p /data/nfs
user:~$ sudo chown nobody:nogroup /data/nfs
user:~$ sudo chmod 755 /data/nfs
				
			
4. 공유 설정을 위해 /etc/exports 파일을 편집합니다. 그리고 설정을 적용하기  위해 exportfs 명령을 실행 합니다.
				
					# Edit exports
user:~$ sudo vi /etc/exports
/data/nfs 192.168.1.0/24(rw,sync,no_subtree_check,no_root_squash)

# Apply exports
user:~$ sudo exportfs -a
				
			
  • 192.168.1.0/24 : 접근을 허용할 네트워크 대역 (ip로 특정 호스트만 지정해도 됨)
  • rw : 읽기/쓰기 권한.
  • sync : 동기화 모드 (데이터 무결성 보장)
  • async : 비동기 모드 (성능 향상, 데이터 무결성 위험)
  • no_subtree_check : 하위 디렉토리 검사 비활성화
  • no_root_squash : 클라이언트의 root 사용자가 서버에서도 root 권한 유지.
5. NFS 서버에 대한 접근을 허용하기 위해 방화멱을 설정합니다. 예제로 UFW(Ubuntu Firewall) 설정을 합니다. 다른 방화벽을 쓴다면 해당 방화멱에 맞게 설정을 해야 합니다.
				
					# UFW Setting
user:~$ sudo ufw allow from 192.168.1.0/24 to any port nfs
user:~$ sudo ufw reload

# Check status
user:~$ sudo ufw status
				
			

* NFS 클라이언트 설치

1. 모든 클라이언트 호스트에서 NFS 공유를 마운트합니다. 먼저 클라이언트 패키지를 설치 합니다.
				
					# System upgrade (optional)
user:~$ sudo apt update
user:~$ sudo apt upgrade -y

# Install nfs server
user:~$ sudo apt install nfs-common -y
				
			
2. 마운트할 디렉토리 생성. 예시로 /data/nfs 디렉토리를 생성 합니다. (경로가 반드시 서버와 동일할 필요는 없습니다)
				
					user:~$ sudo mkdir -p /data/nfs
				
			
3. NFS 서버의 공유 디렉토리를 클라이언트에 마운트합니다. 이것은 테스트로 마운트 해 보는 것으로 리부팅시 마운트는 해제됩니다.
				
					# Mount test: mount options server_path local_path
user:~$ sudo mount -t nfs -o vers=4,rsize=32768,wsize=32768,hard,intr {server_IP}:/data/nfs /data/nfs
				
			
  • vers=4 : NFS 버전 4 사용
  • rsize=32768, wsize=32768 : 읽기/쓰기 버퍼 크기 설정 (최대 32768 바이트). 버커 크기에 의해 성능 차기가 날 수 있음.
  • hard : 네트워크 장애 시 재시도
  • intr : 마운트된 파일 시스템에 대한 인터럽트 가능
4. 부팅 시 자동으로 마운트되도록 “/etc/fstab”파일을 설정합니다.
				
					# Edit fstab
user:~$ sudo vi /etc/fstab
{server_IP}:/data/nfs /data/nfs nfs defaults,rsize=32768,wsize=32768,hard,intr,vers=4 0 0
				
			

* MAC에서 Ubuntu NFS Server에 공유폴터 연결

1. 마운트할 때 ubuntu에서 설정했던 내용에 추가하여 resvport, rw, noowners를 추가해 줍니다.
				
					# Mount to ubuntu nfs server : mount options server_path local_path
user:~$ sudo mount -t nfs -o vers=4,rsize=32768,wsize=32768,hard,intr,resvport,rw,noowners xx.xx.xx.xx:/data/nfs ~/nfs
				
			
  • resvport : NFS통신에 예약된 포트를 사용하도록 설정. 보안이나 방화벽 설정이 있는 환경에 유용.
  • rw : 읽기 및 쓰기 권한으로 마운트. NFS서버에서 이 클라이언트에 대해 쓰기 권한이 허용 된 경우.
  • noowners : 마운트된 파일 시스템에서 소유권 정보를 무시. 이 옵션은 macOS에서 파일 권한과 소유권 문제를 방지하는데 사용.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다