TrueNAS 25.10 存储池与共享服务配置详解
TrueNAS 25.10 存储池与共享服务配置详解:官方文档溯源的建池向导(RAIDZ/dRAID 分界与命名规则)、数据集四预设 ACL 对照、Sync/压缩/配额/去重官方建议、SMB 共享 Purpose 类型与用户前置、NFS 授权与协议边界、两条官方红线(禁共享池根、zvol 命名)与关键配置速查表;全部标注官方来源(查询日期 2026-10-25),未做本机配置实测。
TrueNAS 25.10 存储池与共享服务配置详解
目标:基于官方文档溯源(25.10 分册 Storage/Shares/Datasets 教程:Create Pool、Adding and Managing Datasets、Windows Shares (SMB)、Adding NFS Shares、Shares 总览)系统讲解 TrueNAS 25.10 的 ZFS 存储池创建、数据集规划、SMB/NFS 共享配置与权限模型;本篇为纯官方文档溯源篇,未做本机实测,所有界面字段与默认值均摘自官方文档并标注来源,查询日期 2026-10-25。
一、环境信息(信息基准)
1.1 查询说明
- 查询日期:2026-10-25。
- 信息获取方式:纯官方资料溯源(truenas.com 官方文档中心 25.10 分册),不做本机配置实测;文内全部界面路径、字段名、默认值与官方警告均逐处标注官方文档来源。
- 适用版本:TrueNAS 25.10 线(推荐 25.10.7,2026-09-02 发行);个别特性标注了引入版本(如 Final Cut Pro Storage Share 需 25.10.1+)。
1.2 官方来源清单
| 来源 | 地址 |
|---|---|
| Create Pool(建池向导,2026-02-12 修订) | https://www.truenas.com/docs/scale/25.10/scaletutorials/storage/createpoolwizard/ |
| Adding and Managing Datasets(数据集) | https://www.truenas.com/docs/scale/25.10/scaletutorials/datasets/datasetsscale/ |
| Windows Shares (SMB)(2026-05-26 修订) | https://www.truenas.com/docs/scale/25.10/scaletutorials/shares/smb/ |
| Adding NFS Shares(2025-10-27 修订) | https://www.truenas.com/docs/scale/25.10/scaletutorials/shares/addingnfsshares/ |
| Shares 总览(协议体系与官方警告) | https://www.truenas.com/docs/scale/25.10/scaletutorials/shares/ |
| ZFS Primer(官方 ZFS 参考) | https://www.truenas.com/docs/references/zfsprimer/ |
| dRAID Primer(官方 dRAID 参考) | https://www.truenas.com/docs/references/draidprimer/ |
二、前置条件与配置总览
2.1 前置条件
- 已按本专栏《TrueNAS 25.10 安装规划与硬件选型指南》(https://www.quzuo.net/document/Vvlw5Fcqp5SF )完成系统安装、网络初始化,可登录 Web 管理界面。
- 已备好作为数据池的磁盘(官方最低要求:两块同容量盘),且引导盘与数据盘物理分离。
- 管理员账号可用(安装时创建的 truenas_admin,或具备 Full Admin 角色);TrueNAS 管理角色分 Sharing Admin(可建共享/数据集、改 ACL、重启共享服务)与 Full Admin(全量权限),Sharing Admin 不能管理用户或授予他人角色(官方 SMB 文档「Sharing Administrator Access」节)。
2.2 配置动线总览
官方推荐的配置顺序(官方 Datasets 文档原文:「建议先组织好池内数据集再配置共享」):
Storage(建池 Create Pool)
└─ Datasets(数据集规划:预设类型/压缩/配额/权限)
├─ Shares:Windows SMB / Unix NFS / Block iSCSI
├─ Apps(应用数据集)
└─ Data Protection(快照/复制,见本专栏运维篇)
2.3 两条官方红线(建共享前必读)
- 禁止把池根数据集(pool-level dataset)直接建成共享:必须先在池下新建子数据集再用它建共享,否则「导致存储配置问题」(官方 Shares 总览/SMB/NFS 三篇文档的置顶警告原文)。
- zvol 命名禁止大写字母与空格:官方 Shares 总览明确——给 iSCSI、NFS 共享用的 zvol 若含大写或空格会引发问题与故障。
三、创建存储池(Pool Creation Wizard)
3.1 布局选型(官方口径)
官方 Create Pool 文档对两种「分布式校验」布局给出明确分界:
| 布局 | 适用场景(官方原文口径) |
|---|---|
| RAIDZ1/2/3 | 通用场景首选,尤其数据 vdev 数量 <10、以及以小数据块为主的存储;官方建议「一般默认选 RAIDz,凡 dRAID 数据设备不足 10 块时强烈建议改用 RAIDZ」 |
| dRAID1/2/3 | 特定场景:大盘数(>100 块)阵列、因故障率上升需要更短 resilver(重建)时间、且以大数据块为主 |
| Stripe | 每盘顺序独立使用,零冗余;单盘故障即不可逆丢失该 vdev 全部数据,官方「不推荐用于存关键数据」 |
| Mirror | 每盘互为完整副本,至少 2 盘,容量=单盘容量;随机读性能与重建速度最优 |
数字后缀 1/2/3 表示校验盘数与可容忍故障盘数(如 RAIDZ2 预留 2 块校验、可坏 2 块盘)。
- dRAID 细节:默认每个 dRAID vdev 最少分配 10 盘(Children);分布式热备(Distributed Hot Spares)官方建议至少设 1,且建池后不可修改;数据设备(Data Devices)数建议取 2 的倍数。
- 决策辅助:官方提供 ZFS Primer、dRAID Primer、ZFS Capacity Calculator(https://www.truenas.com/docs/references/zfscapacitycalculator/ )与 ZFS Capacity Graph 帮助比较方案。
💡 技术拓展:RAIDZ 与 dRAID 的本质差异——RAIDZ 沿用传统 RAID5/6 思路把校验分散在 vdev 内,重建时必须读全 vdev 所有盘,盘多则重建窗口长;dRAID 把数据与校验预组织成固定宽度的冗余组,重建时全池所有盘并行参与,专治百盘级阵列的重建耗时。代价是 dRAID 配置约束多(数据设备宽度、热备不可改)且小阵列容量/性能利用率低于 RAIDZ——这就是官方把 10 块数据设备设为分界线的原因。
3.2 向导步骤(官方流程转述)
- Storage 页点击 Create Pool 打开 Pool Creation Wizard。
- 命名:最多 50 个小写字母数字字符,仅限 ZFS 命名约定允许的特殊字符(官方引用 Oracle ZFS 命名规范);池名创建后不可改,且池名长度会占用数据集名的最大字符额度。
- 数据 VDEV:
- 自动选盘(Automated Disk Selection):按 Disk Size(GiB+SSD/HDD 类型)、Treat Disk Size as Minimum(是否允许更大盘)、Width(每组盘数)、Number of VDEVs 生成;dRAID 额外有 Data Devices / Distributed Hot Spares / Children 字段,且取消手动选盘按钮。
- 手动选盘(Manual Disk Selection):普通布局可在 Advanced Options 里逐盘指定。
- 可 Next 继续加日志/缓存/热备等可选 VDEV,或直接 Save And Go To Review。
- Review → Create Pool 落地。
- Enterprise 多扩展柜系统可选 Enclosure 离散策略(不过 / 最大离散 / 限定单柜),社区版无此环节。
3.3 加密的最佳实践(官方原文)
官方 Create Pool 文档明确建议:
- 不要在池级启用加密:对根数据集加密等于单点故障——丢一把密钥整池不可访问。
- 推荐做法:建不加密池 + 对单个数据集/zvol 分别加密,换取独立密钥管理、选择性解锁、故障隔离与更简单的恢复。
- 加密细节见官方 Encryption 教程(https://www.truenas.com/docs/scale/25.10/scaletutorials/datasets/encryptionscale/ )。
四、数据集配置详解
4.1 四种数据集预设(Dataset Preset)
Datasets 页选中池/父数据集后点 Add Dataset,官方文档给出的预设对照表(原文表格,逐项照录):
| 预设 | ACL Type | ACL Mode | Case Sensitivity | Enable atime | 用途 |
|---|---|---|---|---|---|
| Generic | POSIX | n/a | Sensitive | Inherit | 非 SMB 数据集:iSCSI、NFS、虚拟机及与应用无关的数据集 |
| SMB | NFSv4 | Restricted | Insensitive | Inherit | SMB 共享优化 |
| Apps | NFSv4 | Passthrough | Sensitive | Off | 应用数据存储优化(额外授予 568 组 Apps 修改权) |
| Multiprotocol | NFSv4 | Passthrough | Sensitive | Off | SMB+NFS 双协议共享或纯 NFS 共享 |
- 默认 ACL 计算:SMB/Apps/Multiprotocol 无可继承 ACL 时,系统自动生成——owner@、group@、builtin_administrators 组及域管理员获完全控制,builtin_users 其余成员与域用户获修改权(官方原文)。
- 访问式枚举:NFSv4 ACL 类型数据集在 SMB 客户端上自动启用 access-based enumeration——目录列表只显示客户端有读权限的条目(默认行为,官方注明与 FreeBSD 行为一致)。
- 不可回改项:Name、Dataset Preset、Case Sensitivity 三项保存后不可修改(官方 Dataset 文档两次强调,务必保存前核对)。
- 建池部署应用时系统自动创建 ix-apps 数据集承载应用存储,官方建议应用数据另建数据集(选 Apps 预设),先建数据集再部署应用。
4.2 同步策略(Sync)
官方 Dataset 文档对 Advanced Options 的 Sync 给出生产建议原文:关键数据的生产系统用默认 Standard 或提高到 Always;只有能接受断电/崩溃丢数据的场景才允许 Disabled。
4.3 压缩算法选型
官方列出的 Compression Level 选项与官方评价:
| 算法 | 官方口径 |
|---|---|
| LZ4 | 性能最大化、动态识别可压缩文件,企业客户首选档 |
| ZSTD | 压缩率高度可配、解码极快 |
| Gzip | 压缩率最高但 CPU 影响最大,高级别慎用 |
| ZLE | 只压缩连续零段,普通数据原样保留 |
| LZJB | ZFS 初代算法,已弃用(LZ4 压缩快约 50%、不可压数据快三倍以上) |
4.4 配额与预留
- Quota for this dataset / for this dataset and all children:设定数据集最大可用空间,填 0 为不限。
- 配额告警:按百分比设置 Quota warning alert at, % 与 Quota critical alert at, %(可清除 Inherit 单独覆写父级)。
- 预留空间(Reserved space):为日志类数据集预留额度防止吃满,0 为不限。
4.5 去重(Deduplication)注意
官方在 UI 弹窗即警告「去重是实验性且非完全支持的功能」,且最佳实践是建数据集时就开启——对既有数据集后补开启只对之后写入的数据生效。无专用 dedup/special VDEV 的池会把去重表(DDT)落在普通 VDEV 上。
💡 技术拓展:ZFS 的权限模型有两套——POSIX ACL(传统 Unix 位/ACL,Generic 预设所用)与 NFSv4 ACL(细粒度 allow/deny 条目 + 继承标志,SMB/Apps/Multiprotocol 所用)。选型口诀:纯 Linux/NFS 消费选 POSIX;要跟 Windows 权限语义、SMB 精细授权打交道选 NFSv4;SMB 数据集配 Case Insensitive 大小写不敏感正是为了对齐 Windows 文件名语义,这也是它保存后不可改的原因——改大小写敏感度等于换文件系统语义。
五、SMB 共享配置
5.1 用户与认证前置
- TrueNAS 必须已加入 Active Directory 或至少有一个本地 SMB 用户才能建 SMB 共享;建用户时勾选 SMB Access(Samba Authentication)。
- root 与内置账号不能访问 SMB 共享,未启用 Samba Authentication 的账号同样不行(官方原文)。
- 新用户默认加入内置组 builtin_users,可按组授权;大型环境官方建议 AD 或至少做账号同步。
- 匿名/guest 访问:技术上可行,官方不推荐——guest 会话无法做签名与加密,主流客户端厂商正在弃用 guest。
- LDAP Samba Schema 自 22.02 弃用、24.10 起移除;legacy Samba 域需先迁 AD(官方口径)。
- SMB1(NT1)行业性弃用;自 22.12 起,厂商标记 EOL/EOS 的 SMB 客户端操作系统不再支持连接(官方 SMB 文档原文)。
5.2 创建基本 SMB 共享(官方流程转述)
- Credentials > Users 建好 SMB 用户(勾 SMB Access)。
- Shares 页 Windows Shares (SMB) 卡片点 Add 打开 Add Share 屏。
- Path:浏览选择父数据集(再次强调:不能选池根);可在此屏直接 Create Dataset 建共享专用数据集——数据集名即共享名。
- 路径与命名约束:共享路径在 SMB tree connect 时构成路径名,必须 ≤80 字符,禁用 Microsoft MS-FSCC 2.1.6 非法字符。
- Purpose(用途预设,锁定对应 Advanced Options):Default Share(基础共享,默认勾选 Browsable to Network Clients)/ Private Datasets Share(替代传统 home share)/ Multi-protocol Share(NFSv4+SMB 双协议;官方注明会关闭部分 SMB 特性换互操作安全,可能降低 SMB 性能)/ Time Machine Share(macOS 备份目标)/ Final Cut Pro Storage Share(25.10.1+,Apple 字符编码 + SMB2/3 Apple 扩展)。
- 保存后调数据集 ACL 权限(官方流程第 3 步),再启动 SMB 服务(首个共享保存时系统弹启用服务对话框),最后从客户端挂载验证。
- 服务发现:macOS 走 mDNS(TrueNAS 默认启用 avahi),Windows 走 WS-Discovery——广播发现只是便利特性,直连 IP 不依赖它(官方说明)。
5.3 进阶形态索引(官方专文)
| 形态 | 官方文档 |
|---|---|
| 管理既有共享与 ACL | /shares/smb/managesmbshares/ |
| Time Machine 基础共享 | /shares/smb/setupbasictimemachinesmbshare/ |
| Final Cut Pro 优化共享 | /shares/smb/fcpshare/ |
| SMB 影子副本(Windows 前一版本) | /shares/smb/addsmbshadowcopies/ |
| Private Datasets Share(替代 home shares) | /shares/smb/smbprivatedatasetshare/ |
| SMB Multichannel | /shares/smb/smbmultichannel/ |
| macOS 分解 Unicode 字符限制 | /shares/smb/smbusingdecomposedunicode/ |
六、NFS 共享配置
6.1 协议行为要点(官方口径)
- 一个数据集=一个文件系统:NFS 共享指向的数据集即客户端访问的根;若共享父数据集,客户端无法访问其下嵌套的子数据集——需要包含子数据集的共享请改用 SMB(Windows NFS 客户端目前仅支持 NFSv2/v3)。
- UDP 已弃用且不支持:Linux 内核默认禁用;现代千兆以上网络高负载时 UDP 分片可致数据损坏(官方原文警告)。
6.2 创建 NFS 共享(官方流程转述)
- Shares 页 Unix (NFS) Shares 卡片点 Add。
- Path 浏览定位数据集(或直接 Create Dataset,数据集名即共享名);填 Description。
- Networks/Hosts 授权:Add Networks 按 CIDR 加授权网段、Add Hosts 按主机名/IP 加授权主机——一旦定义即「白名单制」,未列出的网段/主机全部拒绝;留空则全网放行(官方原文逻辑)。
- Advanced Options 细化访问:Read-Only(只读);Maproot User/Group(把客户端 root 映射为指定用户/组)、Mapall User/Group(把所有客户端映射为指定身份);Security 选型(KRB5 等 Kerberos 体系或按 ID 认证)。
- Save 后系统弹 Enable Service 对话框启用 NFS 服务(可 Cancel 稍后启用),工具栏状态变为 Running。
七、块共享与应用数据集规划
7.1 iSCSI(块共享)要点
- 官方 Shares 总览与 iSCSI 专章(/shares/iscsi/)覆盖手动建 Target 或走向导、Linux/Windows 客户端接入、zvol/文件 LUN 扩容、Fibre Channel 等场景。
- 给 iSCSI/NFS 用的 zvol 命名禁止大写与空格(官方红线,见 2.3 节)。
- iSCSI 共享数据集建议用 Generic 预设(POSIX ACL,见 4.1 表)。
7.2 应用数据集规划
- 系统为应用自动建 ix-apps 数据集(承载应用存储),官方建议应用数据按应用另建数据集、先建后部署。
- Apps 预设细节:NFSv4 ACL + Passthrough + 大小写敏感 + atime 关闭 + 568(Apps)组修改权——这一组参数组合是官方为应用负载调好的形态,无特殊理由不要改动。
八、关键配置速查表
| 配置项 | 官方默认/建议 | 出处 |
|---|---|---|
| 池名 | ≤50 小写字母数字,ZFS 命名约定,建后不可改 | Create Pool |
| 建池加密 | 池不加密 + 数据集级加密(官方最佳实践) | Create Pool |
| dRAID 适用 | >100 盘 + 大数据块;数据设备 <10 用 RAIDZ | Create Pool |
| 共享数据集 | 禁止用池根数据集建共享 | Shares/SMB/NFS 置顶警告 |
| Dataset 预设 | Generic/SMB/Apps/Multiprotocol(ACL 表见 4.1) | Datasets |
| 保存后不可改 | Name、Dataset Preset、Case Sensitivity | Datasets |
| Sync | 生产关键数据 Standard 或 Always;Disabled 仅限可丢数据场景 | Datasets |
| 压缩 | LZ4 性能首选;ZSTD 高配比;Gzip 慎用;LZJB 已弃用 | Datasets |
| 去重 | 实验性功能;建集即开最佳;DDT 落普通 VDEV 需专用 vdev 兜底 | Datasets |
| SMB 用户 | 需勾 SMB Access;root/内置账号不可用;guest 不推荐 | SMB |
| SMB 共享路径 | ≤80 字符,MS-FSCC 2.1.6 合法字符 | SMB |
| NFS 授权 | Networks(CIDR)/Hosts 白名单,定义即排他 | NFS |
| NFS 协议 | UDP 弃用禁用;父数据集共享不暴露子数据集 | NFS |
| zvol 命名 | 禁大写字母与空格 | Shares 总览 |
九、常见问题(FAQ)
Q1:为什么不能直接共享整个池? 官方两段口径:一是用根数据集建共享会「导致存储配置问题」(置顶警告);二是共享整池会让后续收权变难(SMB 文档 best practice 原文:用数据集而非整池做共享)。正确姿势:池 → 子数据集 → 共享。
Q2:SMB 建好了但服务起不来? 官方排查口径:SMB 共享配置未生效或处于错误状态、AD 无法绑定都会导致 SMB 服务无法启动——先确认 AD 连接正常无错(SMB 文档 How do I add an SMB Share 前置提示)。
Q3:数据集预设选错了能改吗? 不能。Name、Dataset Preset、Case Sensitivity 保存后均不可修改,只能删掉重建(数据先迁出)。
Q4:NFS 客户端看不到子数据集? 这是协议行为不是故障:NFS 数据集=独立文件系统,父数据集共享不暴露嵌套子数据集;需要子目录形态的共享改用 SMB 或按子数据集逐个建 NFS 共享。
Q5:SMB 匿名访问为什么被劝退? 官方理由:guest 会话无法签名与加密、客户端厂商正在弃用、多管理员系统风险放大。家庭内网确需免密访问时,也应了解这是官方明确不推荐项。
Q6:要不要开去重? 官方在 UI 直接弹警告:实验性、非完全支持。通用文件服务不建议;确有高冗余度数据集需求时按官方路径在专用 vdev 上承载 DDT,并接受其内存与复杂度成本。
Q7:加密应该在池级还是数据集级? 官方最佳实践明确:池级加密是单点故障(丢一把密钥全池不可访问),应在建池时不加密、之后按数据集/zvol 逐个加密。
十、参考链接
- Create Pool(官方):https://www.truenas.com/docs/scale/25.10/scaletutorials/storage/createpoolwizard/
- Adding and Managing Datasets(官方):https://www.truenas.com/docs/scale/25.10/scaletutorials/datasets/datasetsscale/
- Windows Shares (SMB)(官方):https://www.truenas.com/docs/scale/25.10/scaletutorials/shares/smb/
- Adding NFS Shares(官方):https://www.truenas.com/docs/scale/25.10/scaletutorials/shares/addingnfsshares/
- Shares 总览(官方):https://www.truenas.com/docs/scale/25.10/scaletutorials/shares/
- ZFS Primer(官方):https://www.truenas.com/docs/references/zfsprimer/
- dRAID Primer(官方):https://www.truenas.com/docs/references/draidprimer/
- Dataset Encryption(官方):https://www.truenas.com/docs/scale/25.10/scaletutorials/datasets/encryptionscale/
- 本站《TrueNAS 25.10 安装规划与硬件选型指南》(https://www.quzuo.net/document/Vvlw5Fcqp5SF )
- 本站《TrueNAS 25.10 介绍与选型指南》(https://www.quzuo.net/document/uvhvwvJjWAdN )