본문 바로가기
IT/Nas

[Nas] TrueNAS SCALE SMB 공유 설정 및 성능 최적화 완벽 가이드

by 수누다 2026. 4. 10.

홈랩 NAS 쓰다가 SMB 때문에 삽질한 이야기

TrueNAS SCALE SMB 설정, 처음엔 진짜 쉬울 줄 알았거든요. 그냥 공유 폴더 만들고 Windows에서 접속하면 끝 아닌가? 했는데... 현실은 달랐습니다 ㅎㅎ. 속도가 이상하게 느리질 않나, Windows에서 접속이 아예 안 되질 않나, 권한 문제로 파일이 안 열리질 않나. 13년 동안 인프라 엔지니어 하면서 기업 환경 NAS는 숱하게 만져봤는데, 막상 홈랩에서 TrueNAS SCALE 올리고 SMB 설정하려니 삽질을 꽤 했더라고요.

이 글은 그 삽질의 결과물입니다. TrueNAS SCALE에서 SMB 공유를 처음부터 설정하고, 실제 성능 최적화까지 해본 과정을 단계별로 정리했어요. 홈랩 쓰시는 분들, 소규모 사무실에서 NAS 파일 공유 구성하시려는 분들께 도움이 됐으면 합니다.

TrueNAS SCALE SMB 전체 아키텍처 개요 다이어그램

TrueNAS SCALE SMB 공유의 전체 구성도 — 클라이언트(Windows/macOS/Linux)에서 SMB 프로토콜을 통해 TrueNAS의 ZFS 스토리지에 접근하는 흐름

SMB가 뭔지 잠깐만 짚고 가겠습니다

혹시 SMB(Server Message Block, 서버 메시지 블록)라는 이름이 낯선 분들도 계실 것 같아서요. 쉽게 말해, Windows 네트워크 드라이브 연결할 때 쓰는 그 프로토콜입니다. Windows 탐색기에서 \\192.168.1.100\share 이런 식으로 접속할 때 바로 SMB를 쓰는 거예요.

TrueNAS SCALE에서는 Samba(삼바)라는 오픈소스 구현체를 통해 SMB 서비스를 제공합니다. Samba는 리눅스/유닉스 계열에서 SMB 프로토콜을 구현한 소프트웨어인데, 안정성이 정말 검증된 베테랑이에요. TrueNAS SCALE의 기반이 Linux(Debian)이다 보니, 내부적으로 Samba가 돌아가는 구조입니다.

SMB 버전도 중요한데요, 현재 주요 버전을 간단히 비교해드릴게요:

SMB 버전 지원 OS 주요 특징 권장 여부
SMB 1.0 Windows XP, 구형 NAS 구형, 보안 취약점 다수 (WannaCry 악용) ❌ 절대 비권장
SMB 2.0/2.1 Windows Vista/7 성능 개선, 대용량 MTU 지원 ⚠️ 레거시 호환용으로만
SMB 3.0 Windows 8/Server 2012+ 암호화, 멀티채널, 투명 페일오버 ✅ 권장
SMB 3.1.1 Windows 10/Server 2016+ 사전 인증 무결성, 암호화 강화 ✅ 최우선 권장

TrueNAS SCALE은 기본적으로 SMB 2/3을 지원하고, SMB 1.0은 보안상 비활성화되어 있습니다. 이건 올바른 기본값이에요. 혹시 구형 장비(구형 복합기, 오래된 NAS 클라이언트 등) 연결 때문에 SMB 1.0을 켜달라는 글들이 있는데, 특별한 이유가 없다면 절대 켜지 마세요.

TrueNAS SCALE SMB 설정: 단계별 가이드

1단계: ZFS 데이터셋(Dataset) 먼저 만들기

SMB 공유를 만들기 전에, 공유할 데이터셋을 먼저 준비해야 합니다. 저도 처음엔 그냥 Pool 루트 디렉토리를 공유하려다가 권한 문제로 한참 헤맸어요. 꼭 별도 데이터셋을 만드세요.

  1. TrueNAS SCALE 웹 UI → Storage 메뉴로 이동
  2. 사용할 Pool 선택 후 우측 상단 Add Dataset 클릭
  3. Dataset 이름 입력 (예: smb_share)
  4. Share Type을 반드시 SMB로 선택 — 이게 핵심입니다!
  5. 나머지 옵션은 기본값으로 두고 저장

💡 Share Type을 SMB로 설정하는 이유: ACL(Access Control List, 접근 제어 목록) 타입이 Windows 스타일의 NFSv4 ACL로 설정됩니다. POSIX ACL과 다르게, Windows 클라이언트와 권한 호환성이 훨씬 좋아요. 이거 놓치면 나중에 권한 문제로 진짜 고생합니다.

2단계: SMB 서비스 활성화

  1. System SettingsServices 메뉴로 이동
  2. SMB 항목 찾아서 토글 활성화
  3. Start Automatically 체크 — 재부팅 후에도 자동 시작되게
  4. 연필 아이콘(Edit) 클릭해서 전역 설정 진입

전역 SMB 설정에서 중요한 옵션들:

  • NetBIOS Name: 네트워크에서 보이는 서버 이름 (기본값은 호스트명)
  • Workgroup: Windows 워크그룹 이름, 대부분 WORKGROUP으로 두면 됨
  • Enable SMB1 support: 절대 체크하지 마세요 ⚠️
  • NTLMv1 Auth: 이것도 비활성화 상태 유지 (보안상)

3단계: SMB 공유(Share) 생성

  1. SharesWindows Shares (SMB)Add 클릭
  2. Path: 1단계에서 만든 데이터셋 경로 선택 (예: /mnt/tank/smb_share)
  3. Name: 공유 이름 입력 (Windows에서 보이는 이름)
  4. Purpose 옵션 선택 — 여기가 중요한 포인트!

Purpose(목적) 옵션별 차이를 정리해드릴게요:

Purpose 옵션 용도 특징
Default share parameters 일반적인 파일 공유 기본값, 범용적으로 사용
Multi-user time machine macOS Time Machine 백업 macOS 전용, 자동 쿼터 설정
Multi-protocol (NFSv3/SMB) shares NFS와 SMB 동시 공유 POSIX ACL 사용, 혼합 환경
Private SMB Datasets and Shares 사용자별 개인 공유 각 사용자만 접근 가능

홈랩이나 소규모 사무실이라면 Default share parameters로 충분합니다. macOS Time Machine 용도라면 Multi-user time machine 선택하세요.

TrueNAS SCALE SMB 공유 설정 화면 구성 다이어그램

TrueNAS SCALE 웹 UI의 SMB 공유 설정 화면 — Path 선택, Purpose 옵션, 고급 설정 항목들의 구성

4단계: 로컬 사용자 및 권한 설정

TrueNAS SCALE에서 SMB는 로컬 사용자 계정 기반으로 인증합니다. Active Directory(액티브 디렉터리) 연동도 가능하지만, 일단 로컬 사용자로 설명할게요.

  1. CredentialsLocal UsersAdd로 사용자 생성
  2. Samba Authentication 옵션 반드시 체크!
  3. 비밀번호 설정
  4. 생성 후 데이터셋 권한 설정으로 이동

데이터셋 권한 설정:

  1. Storage에서 해당 데이터셋 우측 옵션 → Edit Permissions
  2. Owner(소유자)를 생성한 사용자로 설정
  3. ACL 편집에서 필요한 권한 추가
  4. Apply permissions recursively 체크 후 저장

⚠️ 주의: 권한 설정을 재귀적으로 적용할 때 기존 파일들의 권한이 변경됩니다. 이미 데이터가 있는 경우 신중하게 진행하세요.

성능 최적화: 이게 진짜 핵심이에요

기본 설정만 하면 동작은 하는데, 성능이 생각보다 안 나올 수 있어요. 제가 직접 튜닝해보면서 효과 있었던 것들만 추려봤습니다.

Samba 전역 설정 최적화 (smb.conf)

TrueNAS SCALE에서 Samba 전역 설정의 Auxiliary Parameters(보조 파라미터) 필드에 아래 옵션들을 추가할 수 있습니다. System Settings → Services → SMB 편집에서 찾을 수 있어요.

# 읽기/쓰기 버퍼 크기 최적화 (대용량 파일 전송 속도 향상)
read raw = yes
write raw = yes
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072

# 대용량 파일 전송 최적화
max xmit = 65535
large readwrite = yes

# 로그 레벨 낮추기 (운영 환경에서 성능 향상)
log level = 1

💡 : SO_RCVBUF와 SO_SNDBUF 값은 네트워크 환경에 따라 다를 수 있어요. 기가비트 이더넷 환경이라면 131072(128KB)가 적당하고, 10GbE라면 더 높여볼 수 있습니다.

ZFS 레코드 크기(Record Size) 최적화

이건 데이터셋 생성 시 설정하는 게 제일 좋은데, 나중에 변경도 가능합니다. 용도에 따라 다르게 설정하세요:

# 일반 파일 공유 (기본값 128K, 대부분 적합)
zfs set recordsize=128K tank/smb_share

# 대용량 미디어 파일 위주 (영상, ISO 등)
zfs set recordsize=1M tank/media_share

# 데이터베이스나 VM 디스크 이미지
zfs set recordsize=16K tank/db_share

저는 미디어 파일 공유 폴더는 1M으로 설정했더니 대용량 파일 전송 속도가 눈에 띄게 좋아졌더라고요. 근데 작은 파일이 많은 폴더에 1M 주면 오히려 비효율적이니 용도에 맞게 설정하세요.

SMB 멀티채널(Multichannel) 설정

SMB 3.0의 핵심 기능 중 하나가 멀티채널(Multichannel, 다중 네트워크 경로 동시 활용)입니다. 서버와 클라이언트 모두 네트워크 인터페이스가 여러 개 있다면 대역폭을 합산해서 쓸 수 있어요.

# Auxiliary Parameters에 추가
server multi channel support = yes

Windows 10/11 클라이언트에서는 기본으로 멀티채널을 지원합니다. 서버에 2개 이상의 네트워크 카드가 있고, 스위치도 LACP(링크 집합 제어 프로토콜) 또는 별도 포트로 연결되어 있다면 효과를 볼 수 있어요.

Windows 클라이언트 측 최적화

서버만 최적화하면 반쪽짜리예요. Windows 클라이언트에서도 확인할 것들이 있습니다.

# PowerShell (관리자 권한)으로 실행

# SMB 클라이언트 설정 확인
Get-SmbClientConfiguration

# 대용량 MTU 활성화 확인 (기본 활성화되어 있어야 함)
Set-SmbClientConfiguration -EnableLargeMtu $true -Confirm:$false

# 멀티채널 활성화 확인
Set-SmbClientConfiguration -EnableMultiChannel $true -Confirm:$false

# 현재 SMB 연결 및 세션 확인
Get-SmbConnection
Get-SmbSession

⚠️ SMB 서명(Signing) 관련 주의사항: SMB 서명은 데이터 무결성을 보장하지만 CPU 오버헤드가 있습니다. 신뢰할 수 있는 내부 네트워크라면 Required 대신 Enabled(선택적) 수준으로 설정해도 됩니다. 다만 보안이 중요한 환경이라면 그냥 두세요.

⚠️ 자주 겪는 문제와 해결법

제가 실제로 겪었거나, 커뮤니티에서 자주 보이는 문제들을 정리했습니다.

문제 1: Windows에서 자격 증명 오류가 계속 뜨는 경우

TrueNAS 로컬 사용자를 만들었는데 로그인이 안 된다면, Samba Authentication 옵션이 체크됐는지 먼저 확인하세요. 이게 체크 안 되어 있으면 SMB 인증에 사용이 안 됩니다. 또 Windows 자격 증명 관리자에 캐시된 이전 자격 증명이 충돌할 수 있어요.

# Windows CMD에서 캐시된 자격 증명 삭제
net use * /delete

# 또는 제어판 → 자격 증명 관리자 → Windows 자격 증명에서 해당 항목 삭제

문제 2: macOS에서 연결 속도가 느린 경우

macOS가 SMB 연결할 때 특이하게 느린 경우가 있는데, 이건 macOS의 기본 SMB 설정 때문인 경우가 많습니다. macOS에서 nsmb.conf 파일을 수정해보세요:

# /etc/nsmb.conf 파일 생성 또는 편집 (macOS)
[default]
minvers=3
maxvers=3
notify_off=yes
mc_on=yes
mc_prefer_wired=yes
signing_required=no

문제 3: 파일 복사 중 권한 오류

파일은 보이는데 열거나 쓸 수가 없다면 ACL 문제일 가능성이 높습니다. TrueNAS UI에서 해당 데이터셋 → Edit Permissions → Strip ACLs를 한 번 해보고, 다시 권한을 설정해보세요. 혹은 아래처럼 직접 ACL을 확인해볼 수 있어요:

# TrueNAS Shell에서 ACL 확인
getfacl /mnt/tank/smb_share

# 소유자 변경 (필요시)
chown -R username:groupname /mnt/tank/smb_share

문제 4: 연결은 되는데 속도가 100MB/s를 못 넘는 경우

이건 네트워크 설정 문제일 수 있어요. 점검 리스트입니다:

  • 스위치/공유기가 기가비트(1GbE) 이상 지원하는지 확인
  • 케이블이 Cat5e 이상인지 확인 (Cat5는 최대 100Mbps)
  • TrueNAS 네트워크 인터페이스 설정에서 MTU를 9000(점보 프레임)으로 설정 시도 — 단, 스위치도 점보 프레임 지원해야 함
  • TrueNAS Shell에서 iperf3로 순수 네트워크 속도 먼저 측정
TrueNAS SCALE SMB 성능 최적화 결과 대시보드

TrueNAS SCALE SMB 최적화 전후 성능 비교 — 읽기/쓰기 속도 및 CPU 사용률 변화

설정 검증: 제대로 됐는지 확인하기

설정 다 했으면 실제로 잘 되는지 확인해봐야죠!

Windows에서 연결 및 속도 테스트

# Windows 탐색기 주소창에 입력
\\TrueNAS-IP주소\공유이름
# 또는 NetBIOS 이름으로
\\서버이름\공유이름

# PowerShell로 SMB 연결 상태 및 버전 확인
Get-SmbConnection | Select-Object ServerName, ShareName, Dialect, NumOpens

# Dialect(다이얼렉트) 값이 3.1.1 또는 3.0이면 정상

Dialect 값이 2.0 이하로 나온다면 클라이언트 또는 서버 설정을 점검해보세요.

TrueNAS Shell에서 Samba 상태 확인

# SMB 서비스 상태 확인
systemctl status smbd

# 현재 연결된 SMB 세션 확인
smbstatus

# 공유 목록 확인
net share

# Samba 설정 문법 검사
testparm -s

testparm -s 명령어 진짜 유용합니다. Auxiliary Parameters에 잘못된 설정을 넣었을 때 오류를 잡아줘요. 설정 변경 후 꼭 한 번씩 돌려보세요.

실제 전송 속도 측정

저는 CrystalDiskMark(크리스탈디스크마크)로 측정했는데, 기가비트 환경에서 ZFS RAIDZ2(4+2 구성) 기준으로 최적화 전 약 85MB/s에서 최적화 후 약 112MB/s로 향상됐습니다. 이론상 최대가 약 125MB/s(1Gbps)이니까 꽤 근접한 거죠. 🎉

자주 묻는 질문 (FAQ)

Q. TrueNAS SCALE에서 SMB와 NFS를 동시에 써도 되나요?

기술적으로는 가능하지만 권장하지 않습니다. SMB는 NFSv4 ACL을, NFS는 POSIX ACL을 사용하는데 두 ACL 방식이 충돌할 수 있어요. 만약 꼭 해야 한다면 Purpose를 "Multi-protocol (NFSv3/SMB) shares"로 설정하고 POSIX ACL로 통일하세요. 이전 글에서 NFS 설정도 다뤘으니 참고해보세요.

Q. Active Directory(AD) 연동은 어떻게 하나요?

TrueNAS SCALE에서 Credentials → Directory Services → Active Directory에서 설정할 수 있습니다. AD 연동 방법은 내용이 꽤 길어서 다음 글에서 별도로 다룰 예정이에요.

Q. 공유 폴더를 인터넷에서도 접근하고 싶어요.

SMB를 직접 인터넷에 노출하는 건 절대 비권장입니다. VPN(WireGuard 또는 OpenVPN)을 통해 내부 네트워크에 접속한 후 SMB를 사용하는 방식을 강력히 권장합니다. TrueNAS SCALE에서 WireGuard VPN 설정하는 방법도 나중에 다뤄볼게요.

TrueNAS SCALE SMB 설정 요약 인포그래픽

TrueNAS SCALE SMB 설정 핵심 체크리스트 요약 — 데이터셋 생성부터 성능 최적화까지 단계별 핵심 포인트

마무리: 정리하면서 느낀 점

TrueNAS SCALE SMB 설정, 알고 보면 그렇게 어렵지 않아요. 근데 처음 접하면 옵션이 많아서 뭘 건드려야 할지 막막한 게 사실이거든요. 핵심은 세 가지입니다.

  • 데이터셋 Share Type을 SMB로 설정하는 것 (권한 문제의 90%가 여기서 발생)
  • SMB 1.0은 절대 활성화하지 않는 것 (보안)
  • ZFS 레코드 크기를 용도에 맞게 설정하는 것 (성능)

홈랩에서 NAS 파일 공유 최적화를 직접 해보면서 느낀 건, 결국 네트워크 인프라 전체가 잘 맞아야 한다는 거예요. TrueNAS 서버 설정이 완벽해도 케이블이 Cat5이거나 스위치가 100Mbps면 소용없거든요. 스토리지 - 네트워크 - 클라이언트 세 단계를 모두 점검하는 습관이 중요합니다.

혹시 설정하다가 막히는 부분이 있으면 댓글로 남겨주세요. 제가 경험한 범위 내에서 같이 고민해드릴게요. 다음 글에서는 TrueNAS SCALE에서 Active Directory 연동하는 방법을 다뤄볼 예정입니다. 기업 환경이나 도메인 환경에서 TrueNAS 쓰시는 분들 기대해주세요! 😄