NFS(Network File System)을 사용하면 네트워크를 통해 다른 사용자와 디렉토리 및 파일을 공유할 수 있다. 이러한 공유 디렉토리를 제공하는 컴퓨터를 서버라 하고, 해당 서버에 연결된 컴퓨터나 장치를 클라이언트라 한다. 클라이언트는 서버의 디렉토리를 로컬 디렉토리인 것 처럼 사용할 수 있다. 이 글에서는 Ubuntu 환경에서 NFS 서버를 설치하고 설정하는 방법에 대해 다룬다.
Ubuntu NFS 서버 설치
NFS 서버가 설치되어 있지 않다면, 아래와 같이 nfs-kernel-server
패키지를 설치한다.
$ sudo apt install nfs-kernel-server -y
NFS 서버 설치가 완료되면 다음 명령으로 nfs-server(NFS 서버 서비스) 상태를 확인한다.
$ sudo systemctl is-enabled nfs-server
enabled
$ sudo systemctl status nfs-server
● nfs-server.service - NFS server and services
Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; vendor preset: enabled)
Active: active (exited) since Fri 2023-09-08 15:30:22 UTC; 46s ago
Main PID: 2654 (code=exited, status=0/SUCCESS)
CPU: 1ms
Sep 08 15:30:22 ubuntu systemd[1]: Starting NFS server and services...
Sep 08 15:30:22 ubuntu exportfs[2653]: exportfs: can't open /etc/exports for reading
Sep 08 15:30:22 ubuntu systemd[1]: Finished NFS server and services.
nfs-server enable 여부와 activate 되어 있는 것을 확다.
Ubuntu NFS 서버 설정
Ubuntu 22.04 서버에서 NFS 구성이 변경되었다.
공유 디렉토리 설정
공유할 디렉토리를 /etc/exports
에 추가하여 구성할 수 있다. 아래는 /nfsroot
디렉토리를 공유 하도록 아래와 같이 /etc/exports 파일에 추가한다.
/nfsroot *(rw,sync,no_subtree_check,no_root_squash)
추가한 마운트 포인트인 /nfsroot 를 생성되어 있는지 확인하고, 생성되어 있지 않으면 생성한다.
$ sudo mkdir /nfsroot
그런 다음 exportfs
명령어로 추가한 디렉토리를 내보낸다.
$ sudo exportfs -a
제대로 됐는지 아래와 같이 확인한다.
$ sudo exportfs -v
/nfsroot <world>(async,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)
Ubuntu NFS 클라이언트 설치 및 구성
클라이언트에서 NFS 을 사용하려면 nfs-common
패키지를 설치해야 한다.
$ sudo apt install nfs-common
마운트 디렉토리 설정
클라이언트에서 서버의 디렉토리를 마운트한 마운트 디렉토리(마운트 포인트)를 생성하고, 서버 디렉토리에 마운트 한다.
$ sudo mkdir -p /opt/nfsmnt
$ sudo mount 10.0.2.15:/nfsroot /opt/nfsmnt
NFS 서버 자동 마운트
클라이언트에서 시스템 부팅중에 자동으로 마운트 되도록 NFS 공유 디렉토리를 설정할 수 있는데, 이 작업은 /etc/fstab 파일을 통해 수행할 수 있다.
10.0.2.15:/nfsroot /opt/nfsmnt nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
작성을 완료했으면, 재부팅 하고 df -h 명령어로 마운트 여부를 확인한다.
$ sudo df -h
$ df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 392M 1.4M 391M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 48G 40G 6.2G 87% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
/dev/sda2 2.0G 895M 933M 49% /boot
tmpfs 392M 88K 392M 1% /run/user/116
tmpfs 392M 88K 392M 1% /run/user/1000
10.0.2.15:/nfsroot 62G 4.8G 54G 9% /opt/nfsmnt