ZFS 看似装好就能用,但许多家用场景的默认参数组合并不理想。以下是一些非共识建议。

1. ashift 不要默认 9

创建池时显式指定 ashift=12(对齐 4K 扇区)。现代 HDD/SSD 全部 4Kn 或 512e,不显式指定会在部分老盘上掉速 30% 以上。

2. compression 选 zstd 而非 lz4

lz4 速度快但压缩率比 zstd 低 30%。家用几乎不需要极致吞吐,zstd-3 是 sweet spot;可在 dataset 上按需开关。

3. atime 永远关

zfs set atime=off tank/home 是家庭 NAS 上的标准动作,避免每次 read 触发一个写操作。

4. 留足内存作为 ARC

经验公式:给 ZFS 留 1GB/TB 存储。家里 16GB 内存的 PVE,建议 arc_max=8GB,并配 256MB L2ARC 用 NVMe 加速热数据。

echo 8589934592 > /sys/module/zfs/parameters/zfs_arc_max

5. 每月 scrub 一次

scrub 是 ZFS 自愈机制的核心。建议每月第一个周日执行 zpool scrub tank,让后台自检坏块。