VLAN + NFS로 “Plex·Docker 전용 전용선” 깔아야 할 때입니다
기가비트 인터넷에 시놀로지 NAS까지 갖췄는데, 막상 Plex나 Docker 컨테이너에서 NAS 볼륨을 물리면 이런 일이 자주 벌어집니다.
- 4K 영상이 중간중간 버퍼링된다
- 컨테이너가 NAS 공유 폴더를 읽을 때마다 딜레이가 생긴다
- 대용량 파일 복사만 시작하면 집 전체 네트워크가 버벅인다
이 문제의 핵심은 단순합니다.
“모든 트래픽이 한 길로 몰리기 때문”입니다.
(LAN·WAN·NAS I/O가 전부 한 대역에서 뒤엉킴)
이 글에서는 시놀로지 NAS + 미니PC(Ubuntu Server 24.x) 환경에서
- NAS와 미니PC 사이에 VLAN 전용선을 만들고,
- 그 위에 NFS v4.1 + fstab 자동 마운트를 얹어서,
- Plex / Docker / 미디어 서버가 NAS를 로컬 SSD처럼 쓰게 만드는 방법을 단계별로 정리합니다.
타깃 독자:
“Plex 4K만 틀면 버퍼링 걸리는 게 너무 싫다”는 홈서버 운영자
1. 왜 기가비트인데도 버퍼링이 걸릴까? (트래픽 혼잡 구조)
일반적인 홈 네트워크 구조를 생각해 보겠습니다.
- PC, NAS, TV, 스마트폰, 태블릿… 전부 같은 LAN 대역(예: 192.168.x.x)
- 인터넷 트래픽, NAS I/O, IPTV, 스트리밍 트래픽이 전부 같은 스위치/공유기를 타고 다님
이 상태에서:
- Plex 서버(미니PC)가
- NAS 공유 폴더에서 4K 파일을 읽으면서
- 동시에 집에서 넷플릭스, 유튜브, 게임까지 돌아가면
모든 트래픽이 같은 길 위에서 서로 비집고 지나가야 합니다. 그 결과:
- NAS ↔ 미니PC 사이의 순수 I/O 속도가 떨어지고
- 완충(buffer)이 부족한 4K 영상부터 먼저 버퍼링이 발생합니다.
결론:
NAS–미니PC 사이에는 “전용 대역”을 뽑아줘야 합니다.
그게 바로 VLAN + NFS 조합입니다.
2. VLAN이란? – “NAS 전용 고속도로”를 하나 더 까는 것
VLAN을 어렵게 생각할 필요는 없습니다.
- 같은 물리 스위치/케이블을 쓰지만,
- 논리적으로는 “서로 다른 네트워크”로 나누는 기술입니다.
비유하자면:
기존 LAN = 일반 도로
VLAN 11 = “NAS 전용 화물 전용차선”
이렇게 설계하면 장점이 분명해집니다.
- 트래픽 분리
- 홈 네트워크(예: 10.x.x.x)와 NAS 데이터망(예: 11.x.x.x)을 분리
- 지연 최소화
- NAS 데이터는 공유기를 왔다 갔다 하지 않고,
스위치 내부에서만 빠르게 교환
- NAS 데이터는 공유기를 왔다 갔다 하지 않고,
- 보안성
- NAS를 VLAN 전용망으로 묶으면,
일반 클라이언트에서 NAS 접근을 쉽게 제한할 수 있음
- NAS를 VLAN 전용망으로 묶으면,
목표 한 줄 정리:
“NAS ↔ 미니PC 구간을 전용선처럼 만든다.”
3. 환경 요약
| 항목 | 내용 |
|---|---|
| 미니PC | GMKtec M6 (Ubuntu Server 24.x) |
| NAS | Synology DS923+ |
| VLAN ID | 11 |
| 연결 방식 | NFS v4.1 + /etc/fstab 자동 마운트 |
| NIC 구성 | eno1(메인망), enp3s0(VLAN 전용망) |
4. 네트워크 구성도

- 메인 LAN (예: 10.10.252.0/25) : 일반 PC·스마트 기기용
- VLAN 11 (11.11.11.0/25) : 미니PC ↔ NAS 전용 데이터망
5. STEP 1 – Ubuntu 미니PC VLAN 설정 (Netplan)
먼저 미니PC의 VLAN 인터페이스를 만들겠습니다.
예시는 /etc/netplan/50-cloud-init.yaml입니다.
network:
version: 2
renderer: networkd
ethernets:
eno1:
dhcp4: no
addresses:
- 10.10.252.251/25
routes:
- to: default
via: 10.10.252.254
nameservers:
addresses: [8.8.8.8, 1.1.1.1]
enp3s0:
dhcp4: no
vlans:
enp3s0.11:
id: 11
link: enp3s0
addresses:
- 11.11.11.2/25
포인트 정리
enp3s0: NAS와 연결된 물리 NICenp3s0.11: VLAN ID 11이 태깅된 가상 NIC- NAS VLAN 인터페이스의 IP (
11.11.11.1/25)와 같은 대역이여야 합니다.
적용 명령어:
sudo netplan apply
ip addr show enp3s0.11

6. STEP 2 – 시놀로지 NAS VLAN 인터페이스 생성
DSM 경로
제어판 → 네트워크 → 네트워크 인터페이스 → “생성” → “VLAN”
예시 설정값:
- VLAN ID :
11 - IP 주소 :
11.11.11.1/25 - 게이트웨이 : (비워둠)
- 연결 포트 :
LAN2(미니PC와 연결된 포트)
여기서 중요한 부분이 두 가지입니다.
- 게이트웨이를 비워두는 이유
- 이 VLAN 인터페이스는 인터넷을 나가기 위한 용도가 아닙니다.
- 오직 “미니PC와의 내부 통신 전용”이기 때문에
게이트웨이를 비워야 NAS가 이 인터페이스로 외부를 찾으러 가지 않습니다.
- 물리 연결
- NAS의 VLAN 인터페이스가 붙어 있는 포트(LAN2)와
미니PC의 VLAN용 NIC(enp3s0)는- 같은 스위치의 VLAN 11 포트이거나
- 직접 케이블로 이어져 있어야 합니다.
- NAS의 VLAN 인터페이스가 붙어 있는 포트(LAN2)와

7. STEP 3 – 시놀로지 NFS 설정 & 권한
이제 NAS에서 NFS를 열어 줍니다.
7-1. NFS 서비스 활성화
제어판 → 파일 서비스 → NFS 탭
- ✅
NFS 서비스 활성화체크 - ✅
NFS 버전 4.1선택
7-2. 공유 폴더별 NFS 권한 설정
예시 공유 폴더:
/volume1/docker/volume1/music/volume1/photo/volume1/nextcloud
각 공유 폴더에서:
공유 폴더 선택 → “편집” → NFS 권한 탭
설정 예시:
- 허용 호스트 :
11.11.11.0/25 - 권한 : 읽기/쓰기
- Squash 옵션 : “admin에 모든사용자 매핑” (Map all users to admin) ✅
- Secure 옵션 : 필요시 해제 (포트 제한이 목적이므로 환경에 맞게)
여기서 가장 중요한 포인트가 바로 Squash 설정입니다.
- 예전 초안처럼
no mapping을 사용하면,- 미니PC의 UID/GID(보통 1000)와
시놀로지 내부의 UID/GID가 정확히 일치해야 합니다. - 그렇지 않으면 NFS 마운트는 되는데 쓰기 작업마다 “Permission denied” 지옥이 시작됩니다.
- 미니PC의 UID/GID(보통 1000)와
- 홈서버 환경에서 권한으로 스트레스 받지 않으려면,
- “모든 사용자를 admin으로 매핑”으로 두고,
- 대신 VLAN+방화벽 레벨에서 접근을 제한하는 쪽이 훨씬 현실적입니다.
요약:
초보자/개인 홈서버라면
보안보다 일단 “잘 돌아가는 것”이 우선입니다.
→ NFS Squash는 “모든 사용자를 admin으로 매핑”을 강력 추천합니다.

8. STEP 4 – Ubuntu /etc/fstab 자동 마운트 + 성능 옵션
이제 미니PC에서 NFS를 자동 마운트하도록 설정하겠습니다.
/etc/fstab 예시:
11.11.11.1:/volume1/docker /mnt/docker nfs vers=4.1,rw,noatime,_netdev,x-systemd.automount,timeo=600,retrans=2 0 0
11.11.11.1:/volume1/music /mnt/music nfs vers=4.1,rw,noatime,_netdev,x-systemd.automount,timeo=600,retrans=2 0 0
11.11.11.1:/volume1/photo /mnt/photo nfs vers=4.1,rw,noatime,_netdev,x-systemd.automount,timeo=600,retrans=2 0 0
11.11.11.1:/volume1/nextcloud /mnt/nextcloud nfs vers=4.1,rw,noatime,_netdev,x-systemd.automount,timeo=600,retrans=2,hard 0 0
옵션 해설
vers=4.1: NFS v4.1 사용 (락·성능 측면에서 유리)rw: 읽기/쓰기noatime: 파일 접근 시간 업데이트를 끄고 디스크 I/O 감소_netdev:- “이 파일 시스템은 네트워크가 올라온 뒤에 마운트하라”는 의미
- 부팅 시 네트워크가 준비되기 전에 마운트 시도하는 걸 막아줌
x-systemd.automount:- 매우 중요한 옵션입니다.
- 부팅 시 바로 마운트하지 않고,
해당 경로에 처음 접근할 때 자동으로 마운트를 시도합니다. - 덕분에 NAS가 꺼져 있거나 재부팅 중이어도
미니PC 부팅이 멈추지 않고 정상 완료됩니다.
timeo=600: 타임아웃 60초 (단위: deci-second)retrans=2: 실패 시 재시도 횟수hard: (권장) 연결이 끊기면 재시도하며 버티는 방식- 데이터 일관성을 중시할 때 사용
적용:
sudo mount -a
df -hT | grep nfs

9. 성능 튜닝 – MTU 9000은 “지원되는 환경에서만”
많은 분들이 Jumbo Frame(MTU 9000)을 성능 튜닝의 필수 요소처럼 이야기하지만,
여기에는 치명적인 함정이 하나 있습니다.
⚠️ 경고 – MTU 9000은 “전 구간이 다 9000일 때만” 의미가 있습니다.
즉:
- 미니PC NIC
- 미니PC ↔ 스위치 구간
- 스위치 포트 (VLAN 11)
- 스위치 ↔ NAS 구간
- NAS NIC
이 모든 구간이 MTU 9000을 지원하고 설정되어 있어야 합니다.
중간에 하나라도:
- MTU 1500으로 고정되어 있거나
- 점보 프레임을 지원하지 않는 스위치/장비가 끼어 있으면
→ 패킷 단편화 / 재전송이 반복되면서
실제 체감 속도가 1/10로 떨어지는 최악의 상황이 나올 수 있습니다.
따라서:
- MTU를 9000으로 올릴 계획이라면,
- 관리 스위치 설정, NIC 드라이버, NAS 네트워크 고급 설정까지
전부 확인 후 일괄 적용하세요.
- 관리 스위치 설정, NIC 드라이버, NAS 네트워크 고급 설정까지
- 애매하다면 기본값(1500) 그대로 두고 VLAN+NFS만으로도 충분한 효과를 볼 수 있습니다.
10. 마무리 – 이제 Plex 4K도 “로컬 SSD”처럼 재생됩니다
여기까지 구성을 마치면, 구조는 이렇게 바뀝니다.
- 기존
- 홈 LAN 하나에 모든 장비가 얹힘
- NAS–미니PC 트래픽이 일반 인터넷·스트리밍과 섞여 병목 발생
- 구성 후
- VLAN 11 = NAS–미니PC 전용 데이터망
- NFS v4.1 + 최적화된
fstab옵션으로 마운트 - Plex / Docker는
/mnt/...경로를 로컬 디스크처럼 사용
결과적으로:
- Plex·Emby·Jellyfin의 라이브러리 스캔 속도가 눈에 띄게 빨라지고,
- 트랜스코딩 중 버퍼링이 크게 줄어들며,
- Docker 컨테이너에서 NAS 볼륨을 마운트했을 때도
로컬 SSD에 가까운 체감 속도를 기대할 수 있습니다.
✅ 핵심 포인트 한 번 더 요약
- VLAN으로 NAS–미니PC 전용 전용선을 만든다.
- 시놀로지 NFS 권한에서 “모든 사용자를 admin으로 매핑”으로 권한 지옥을 미리 차단한다.
/etc/fstab에는 반드시_netdev+x-systemd.automount를 사용해서
NAS가 꺼져 있어도 미니PC 부팅이 멈추지 않도록 설정한다.- MTU 9000은 “전 구간이 Jumbo Frame 구성일 때만” 적용한다.
혼합 환경이라면 차라리 1500이 더 안전하다.
이 구성만 제대로 잡아두면,
이후 Nextcloud, Immich, Docker 스택, Plex, Jellyfin 등을 얹어도
“NAS 때문에 느려진다”는 말은 거의 안 나오게 됩니다.
이제 남은 건,
각 서비스에 어떤 스택을 얹을지, 그리고 그걸 어떻게 자동화할지 고민하는 일뿐입니다.


답글 남기기