카테고리 없음

큐넵 나스(파일서버) NFS 설정으로 디스크로 매핑 ---- 미니pc NUC7JY (우분투/도커 서버)

나도초딩 2025. 4. 14.

NAS와 리눅스 서버 간에 공유 디스크를 구성할 때는, NFS와 SMB 중 어떤 걸 쓸지 결정하는 게 중요합니다.


✅ NFS vs SMB: 핵심 차이점

항목NFSSMB
개발사/기반 UNIX/Linux 기반 Windows 기반
성능 더 빠름 (리눅스에서) 상대적으로 느림
호환성 리눅스에 최적화 윈도우에 최적화
접근 방식 UID/GID 기반 접근 사용자 인증 기반
파일 권한 유지 O (리눅스 퍼미션 그대로) 제한적 (매핑 필요)
속도 (일반 파일 공유) 빠름 느릴 수 있음
복잡도 단순 (서버와 클라이언트 설정만) 조금 복잡 (권한 매핑 등)

🔧 NFS의 주요 장점

1️⃣ 리눅스 환경에 최적화

  • Ubuntu, Debian, CentOS 등 리눅스 기반 시스템은 NFS를 기본 지원
  • 파일 권한, 소유권 유지가 SMB보다 훨씬 잘 됨

2️⃣ 속도와 효율성

  • 불필요한 인증/암호화 절차 없이 빠르게 파일 전송
  • 특히 내부망에서의 파일 공유에 매우 효율적
  • TCP 대신 UDP 사용도 가능 (저지연)

3️⃣ 자동 마운트 / 영구 연결 쉬움

  • /etc/fstab 설정으로 부팅 시 자동 마운트 간편
  • autofs로도 유연하게 관리 가능

4️⃣ 도커 컨테이너 공유 볼륨으로 이상적

  • Docker나 Kubernetes 환경에서 컨테이너 간 공유 스토리지로 자주 사용
  • 파일 퍼미션이나 UID 충돌이 적음

🚫 SMB가 불리한 이유 (Linux 기준)

  • 파일 소유권 문제
    리눅스에서 SMB는 UID/GID를 매핑해야 하므로 복잡하고 문제 생기기 쉬움
  • 퍼포먼스 손해
    암호화, 인증 과정이 항상 들어가므로 내부망 성능이 떨어짐
  • 권한 매핑 문제
    Docker 컨테이너에서 SMB 공유를 쓸 경우, 권한 충돌이 자주 발생

🔧 결론: 서버 ↔ NAS 연결엔 NFS가 정석

  • Ubuntu 서버에서 NAS(QNAP 등) 스토리지를 연결할 때는 무조건 NFS 우선
  • 단, 윈도우 PC에서 파일 공유용이라면 SMB도 함께 사용 가능

필요하시면 QNAP에서 NFS 설정 + Ubuntu에서 마운트 설정까지 단계별로 도와드릴게요. 바로 진행할까요?

4o

You said:

네. 큐넵 nfs 버전 설정부터
 

ChatGPT said:

좋습니다. 그럼 QNAP NAS에서 NFS 설정부터 차근차근 시작하겠습니다.


✅ 1단계: QNAP에서 NFS 설정

🔧 NFS 서비스 활성화

  1. QNAP 관리자 페이지 접속
    → http://<QNAP-IP>:8080
    예: http://192.168.0.100:8080
  2. [제어판] → [네트워크 및 파일 서비스] → [Win/Mac/NFS]
  3. [NFS 서비스] 탭 클릭
  4. "NFS 서비스 사용" 체크박스 활성화
    → 적용

✅ 2단계: 공유 폴더에 NFS 권한 설정

  1. [제어판] → [공유 폴더]
  2. 원하는 공유 폴더(예: docker-shared) 선택 → [편집]
  3. 상단 탭에서 [권한] → [NFS 권한] 선택
  4. [생성] 또는 [편집] 클릭 → 아래 설정 적용

🧩 NFS 권한 설정 예시

항목값
호스트/IP 주소 192.168.0.0/24 (또는 Ubuntu VM의 IP)
접근 권한 읽기/쓰기
권한 제한 루트 사용자에 대한 액세스 허용 체크
비동기화 모드 허용 ✅ 체크 (속도 향상)
사용자 매핑 루트 → admin 또는 그대로 사용

→ 설정 후 저장 & 적용


✅ 3단계: QNAP NFS 버전 확인/강제

QNAP은 기본적으로 NFS v3를 사용하지만, 일부 버전에서는 v4도 지원합니다.

강제로 v4만 사용하려면:

  • SSH로 QNAP 접속 필요 (admin 계정 사용)
  • /etc/nfs.conf 또는 관련 설정을 수동으로 수정해야 함 (일반 사용자에겐 권장 안 됨)

💡 일반적으로는 v3로 충분하며, Ubuntu에서 마운트 시 vers=3 또는 vers=4를 명시하여 선택 가능합니다.

✅ 4단계: Ubuntu에서 NFS 마운트 준비

1️⃣ NFS 클라이언트 패키지 설치

bash
CopyEdit
sudo apt update sudo apt install nfs-common -y

✅ 5단계: NFS 폴더 수동 마운트 (테스트용)

예시 환경:

  • QNAP IP: 192.168.0.100
  • 공유 폴더 이름: docker-shared
  • 마운트 위치: /mnt/qnap

1️⃣ 마운트 디렉터리 생성

bash
CopyEdit
sudo mkdir -p /mnt/qnap

2️⃣ 수동 마운트 명령어 (v3 또는 v4 중 선택)

NFS v3:

bash
CopyEdit
sudo mount -t nfs -o vers=3 192.168.0.100:/docker-shared /mnt/qnap

NFS v4:

bash
CopyEdit
sudo mount -t nfs -o vers=4 192.168.0.100:/docker-shared /mnt/qnap

3️⃣ 마운트 확인

bash
CopyEdit
df -h

또는

bash
CopyEdit
mount | grep qnap

✅ 6단계: 부팅 시 자동 마운트 설정 (/etc/fstab)

bash
CopyEdit
sudo nano /etc/fstab

맨 아래에 아래 한 줄 추가:

ruby
CopyEdit
192.168.0.100:/docker-shared /mnt/qnap nfs defaults,_netdev,vers=3 0 0

_netdev 옵션은 네트워크가 활성화된 후 마운트하도록 보장합니다.

저장: Ctrl + O, 종료: Ctrl + X

테스트 마운트:

bash
CopyEdit
sudo mount -a

✅ 권한 문제 발생 시?

NFS는 리눅스의 UID/GID를 기반으로 권한을 처리합니다.
파일 소유자/그룹이 일치하지 않으면 권한 오류가 날 수 있습니다.

해결 팁:

  • QNAP에서 "루트 사용자 액세스 허용"을 켜는 것 중요
  • 또는 Ubuntu에서 컨테이너 UID를 QNAP의 UID와 맞추는 방식도 있음

✅ 마무리

이제 NFS로 QNAP 공유 폴더를 마운트한 상태입니다.
도커에서 /mnt/qnap을 볼륨으로 사용하거나, 웹서버 루트로 지정하면 됩니다.

댓글