storage / knowledge

TrueNAS dataset preset 네 종류의 차이

paul 2025.10.09 342words (1m)

dataset을 만들 때 preset을 고르게 되어 있는데, 이게 뒤에서 무엇을 바꾸는지 모르고 고르면 나중에 권한이 꼬인다. preset은 네 가지 값을 한꺼번에 정하는 것이다.

Preset ACL Type ACL Mode Case Sensitivity atime
Generic POSIX n/a Sensitive Inherit
SMB NFSv4 Restricted Insensitive Inherit
Apps NFSv4 Passthrough Sensitive Off
Multiprotocol NFSv4 Passthrough Sensitive Off

무엇을 골라야 하나

  • Generic — SMB가 아닌 공유. iSCSI, NFS 전용 dataset, 그리고 container나 VM을 올릴 dataset.
  • SMB — SMB 공유에 최적화. Windows에서 붙는 것들.
  • Apps — 애플리케이션 저장소용.
  • Multiprotocol — SMB와 NFS를 같이 쓰거나, NFS 공유용.

가장 크게 갈리는 건 Case Sensitivity다. SMB만 Insensitive다. Windows가 대소문자를 구분하지 않기 때문인데, 이 값은 dataset을 만든 뒤에 바꿀 수 없다. 리눅스에서 쓰던 폴더를 SMB preset으로 만들면 Photophoto 가 같은 이름이 되어 버린다.

ACL 상속

Generic은 Unix 권한 755에 해당하는 ACL을 건다. 소유자는 전부, 그룹과 나머지는 읽기와 실행이다.

SMB, Apps, Multiprotocol은 부모 dataset의 ACL을 상속받는다. 상속받을 게 없으면 TrueNAS가 계산해서 넣는데, owner@group@, builtin_administrators 에 full control을, builtin_users 에 modify를 준다.

Apps만 여기에 하나가 더 붙는다. group 568(Apps)에 modify 권한이 추가된다. 컨테이너가 그 GID로 돌기 때문이다.

실제 dataset 구성

dataset preset ACL Type record size 소유
vault POSIX 128K root:root
vault/apps SMB POSIX 128K root:root
vault/home SMB NFSv4 128K root:root
vault/home/<사용자> SMB NFSv4 128K 각 사용자
vault/entertainment SMB NFSv4 1M root:media

압축은 전부 lz4 다.

entertainment 만 record size가 1M이다. 영상 파일은 크고 순차적으로 읽으므로 큰 블록이 유리하다. 나머지는 기본값 128K로 뒀다. record size는 나중에 바꿔도 이미 쓴 데이터에는 적용되지 않으니 만들 때 정해야 한다.

entertainment 의 그룹을 media 로 준 것도 여기서 드러난다. 미디어 서비스들이 이 그룹으로 붙는다.

사용자 홈만 소유자를 각 사용자로 두고 나머지는 root 로 뒀다. 권한은 소유자가 아니라 ACL로 준다.