Raspberry Pi OMV(OpenMediaVault) NFS 공유 설정 – 서비스 활성화부터 클라이언트 마운트까지






1. 개요

  • 앞서 만든 공유 폴더를 NFS로 내보내 다른 리눅스 장비에서 마운트해 쓰는 과정입니다.
  • 서비스를 켜고 공유를 만든 뒤, 클라이언트에서 실제로 파일을 만들어 권한까지 확인합니다.
[공유 폴더 (12T)]
     │ ① NFS 서비스 활성화 + 변경사항 적용
     ▼
[NFS 서비스 동작]
     │ ② 공유 만들기 + 변경사항 적용
     ▼
[/export/12T 내보내기]
     │ ③ 클라이언트에서 마운트 및 쓰기 확인
     ▼
[클라이언트 /mnt]
     │ ④ 필요한 경우 root 쓰기 허용 (no_root_squash)
     ▼
[root 계정도 쓰기 가능]
  • 범위: ① ~ ④
  • 범위 밖: SMB/CIFS 설정, 사용자 계정 관리, 방화벽 설정, 클라이언트 부팅 시 자동 마운트(/etc/fstab)



2. 환경

항목
하드웨어Raspberry Pi 5
스토리지 확장Radxa Penta SATA HAT (JMB585 PCIe→SATA)
OSRaspberry Pi OS Lite (64-bit)
서버 주소192.168.204.251
내보낼 공유 폴더12T (/dev/md0, RAID 5)
허용할 클라이언트192.168.204.0/24



3. 사전 조건

항목내용
공유 폴더저장소 > 공유 폴더에 내보낼 폴더가 미리 만들어져 있어야 합니다.
클라이언트 종류NFS는 리눅스·macOS용입니다. 윈도우에서 쓰실 경우 SMB/CIFS를 사용하시기 바랍니다.
클라이언트 패키지데비안 계열은 nfs-common, 레드햇 계열은 nfs-utils 가 설치되어 있어야 마운트할 수 있습니다.
서버 주소 고정서버 IP가 바뀌면 클라이언트에서 마운트가 끊깁니다. 공유기에서 IP를 고정해 두시기 바랍니다.



4. 용어




4.1 기본 개념

용어설명
NFS리눅스·유닉스 계열에서 쓰는 네트워크 파일 공유 방식입니다. 원격 폴더를 내 폴더처럼 붙여 씁니다.
내보내기(Export)서버가 특정 폴더를 네트워크에 열어 주는 것입니다.
클라이언트(Client)내보낸 폴더를 가져다 쓰는 장비입니다. NFS에서는 IP나 대역으로 지정합니다.
/exportOMV가 NFS용으로 쓰는 경로입니다. 공유 폴더의 실제 위치를 이 아래로 연결해 내보냅니다.
마운트(Mount)클라이언트에서 원격 폴더를 자기 폴더 경로에 붙이는 작업입니다.



4.2 NFS 버전

버전설명
NFSv3오래된 방식입니다. rpcbind 등 포트를 여러 개 씁니다. 구형 장비 호환이 필요할 때 켭니다.
NFSv42049 포트 하나만 씁니다. 방화벽 설정이 간단합니다.
NFSv4.1 / NFSv4.2NFSv4를 개선한 버전입니다. 서버 쪽 복사 등이 추가되었습니다.
  • 기본값은 네 가지가 모두 켜져 있습니다. 클라이언트가 접속할 때 서로 지원하는 가장 높은 버전으로 자동으로 맞춰집니다.



4.3 공유 옵션

옵션설명
rw / ro읽기·쓰기를 모두 허용하거나 읽기만 허용합니다. Permission에서 고른 값이 들어갑니다.
root_squash기본 동작입니다. 클라이언트의 root를 서버에서는 익명 사용자로 낮춰서 처리합니다.
no_root_squash클라이언트의 root를 서버의 root로 그대로 인정합니다.
subtree_check요청한 파일이 정말 내보낸 폴더 안에 있는지 서버가 확인합니다. 안전하지만 조금 느립니다.
insecure클라이언트가 1024번보다 큰 포트에서 접속하는 것을 허용합니다. macOS 등 일부 클라이언트에 필요합니다.
sync / async디스크에 실제로 기록한 뒤 응답할지, 먼저 응답하고 나중에 기록할지 정합니다.



5. 절차




5.1 NFS 서비스 활성화

  • 경로 : 서비스 → NFS → 설정


  1. 서비스 메뉴에서 NFS를 선택합니다.


  1. 설정을 선택합니다.


  1. 활성화됨을 체크합니다.
  2. Versions에서 사용할 버전을 선택합니다.
  3. 저장을 클릭합니다.
필드입력값설명
활성화됨체크NFS 서비스를 켭니다.
VersionsNFSv3, NFSv4, NFSv4.1, NFSv4.2기본값을 그대로 두면 클라이언트가 알아서 맞춥니다. 구형 장비가 없다면 NFSv3를 빼도 됩니다.


  1. Pending configuration changes 배너 우측의 체크 아이콘을 클릭합니다.


  1. 적용 후 상태입니다. 배너가 사라지고 저장 버튼이 흐리게 바뀝니다.



5.2 NFS 공유 만들기

  • 경로 : 서비스 → NFS → 공유


  1. 툴바의 + 아이콘을 클릭합니다.


  1. 각 필드를 입력합니다.
  2. 저장을 클릭합니다.
필드입력값비고
공유 폴더12T [on /dev/md0, 12T/]저장소에서 만든 공유 폴더입니다. 우측 + 아이콘으로 새로 만들 수도 있습니다.
클라이언트192.168.204.0/24접근을 허용할 대상입니다. 공유 하나에 하나만 지정할 수 있습니다.
Permission읽기/쓰기읽기만 허용하려면 읽기 전용을 선택합니다.
추가 옵션subtree_check,insecure기본값입니다. 그대로 두면 됩니다.
Tags(비움)선택 항목입니다.

클라이언트를 지정하는 방법은 다음과 같습니다.
화면 안내에 나오듯 이 공유는 /export/ 아래에서 접근하게 됩니다. 공유 폴더의 실제 경로가 아니라 /export/12T로 마운트합니다.

형태의미
대역192.168.204.0/24192.168.204.1 부터 192.168.204.254 까지 전부
단일 주소192.168.204.100해당 장비 하나만
전체 허용*모든 장비. 권장하지 않습니다.


  1. Pending configuration changes 배너의 체크 아이콘을 클릭합니다.
  2. 만들어진 공유 정보를 확인합니다.
항목
공유 폴더12T
클라이언트192.168.204.0/24
옵션insecure, rw, subtree_check


  1. 적용 후 상태입니다. 배너가 사라지고 공유가 목록에 남습니다.



5.3 서버에서 내보내기 확인

  • 아래 명령은 OMV가 설치된 서버에서 실행합니다. SSH로 접속하거나 본체 콘솔에서 실행합니다.


서버가 무엇을 내보내고 있는지 확인합니다.

$ sudo exportfs


출력 예시:

/export/12T   	192.168.204.0/24
/export       	192.168.204.0/24


출력의미
/export/12T방금 만든 공유입니다. 클라이언트는 이 경로로 마운트합니다.
/exportNFSv4가 쓰는 최상위 지점입니다. OMV가 자동으로 만듭니다.



5.4 클라이언트에서 마운트

  • 아래 명령은 모두 클라이언트 장비에서 실행합니다.


마운트하고 용량을 확인합니다.

$ sudo mount.nfs 192.168.204.251:/export/12T /mnt
$ df -Th | grep nfs


출력 예시:

192.168.204.251:/export/12T nfs        11T  215G   11T   2% /mnt

종류가 nfs 로 표시되고 용량이 서버의 볼륨과 같으면 정상입니다.
일반 사용자로 파일을 만들어 봅니다.

$ touch /mnt/TEST

오류 없이 넘어가면 쓰기가 되는 상태입니다.
root로 바꿔서 다시 만들어 봅니다.

$ sudo su -
# touch /mnt/TEST-ROOT


출력 예시:

touch: cannot touch '/mnt/TEST-ROOT': 허가 거부

일반 사용자는 되는데 root만 막히는 것이 정상 동작입니다.
NFS는 기본값인 root_squash 때문에 클라이언트의 root를 서버에서 익명 사용자로 낮춰서 처리합니다.
공유 폴더 권한을 만들 때 기타를 권한 없음으로 두었으므로, 익명 사용자로 낮아진 root는 쓰기가 막힙니다.



5.5 root 쓰기 허용

  • 경로 : 서비스 → NFS → 공유
  • 도커 볼륨이나 백업 도구처럼 root 권한이 꼭 필요한 경우에만 진행합니다. 필요 없다면 5.4에서 마칩니다.


  1. 목록에서 공유 폴더를 선택하고 툴바의 수정 아이콘을 클릭합니다.


  1. 추가 옵션에 no_root_squash 를 덧붙이고 저장을 클릭합니다.
항목
변경 전subtree_check,insecure
변경 후subtree_check,insecure,no_root_squash


  1. Pending configuration changes 배너의 체크 아이콘을 클릭합니다.


  1. 옵션 열에 no_root_squash 가 추가되었는지 확인합니다.


클라이언트에서 마운트를 풀었다가 다시 겁니다. 옵션 변경은 다시 마운트해야 반영됩니다.

$ sudo umount /mnt
$ sudo mount.nfs 192.168.204.251:/export/12T /mnt
$ df -Th | grep nfs


출력 예시:

192.168.204.251:/export/12T nfs        11T  215G   11T   2% /mnt

일반 사용자와 root로 각각 파일을 만들어 봅니다.

$ touch /mnt/TEST-1
$ sudo su -
# touch /mnt/TEST-ROOT-1
# ls /mnt

출력예시:


TEST  TEST-1  TEST-ROOT-1



댓글 남기기