选择布局
订购服务器时选择“无 RAID——支持 ZFS”,硬盘将保持原样、不做任何配置。使用大容量机械硬盘时,请选用 RAID-Z2(两块盘冗余):一块写满数据的 16–22 TB 硬盘重建需要一天甚至更长时间,这期间若再有一块盘故障,也绝不能因此丢掉整个存储池。
| 服务器 | 布局 | 可用容量 |
|---|---|---|
| 8 × 16 TB | 单组 8 盘 RAID-Z2 | ≈ 96 TB |
| 14 × 22 TB | 单组 14 盘 RAID-Z2(空间最大) | ≈ 264 TB |
| 14 × 22 TB | 两组 7 盘 RAID-Z2(重建更快,IOPS 更高) | ≈ 220 TB |
创建存储池
务必使用稳定的 /dev/disk/by-id/ 设备名,切勿使用 sdX:
$ apt install zfsutils-linux
$ ls -l /dev/disk/by-id/ | grep -v part
$ zpool create -o ashift=12 -O compression=zstd -O atime=off \
tank raidz2 /dev/disk/by-id/ata-DISK1 /dev/disk/by-id/ata-DISK2 … /dev/disk/by-id/ata-DISK8将元数据放在 NVMe 上
在 NVMe 硬盘上创建一个镜像的 special vdev 来存放元数据(也可选择存放小文件),可大幅加快目录列举和备份速度:
$ zpool add tank special mirror /dev/disk/by-id/nvme-A-part4 /dev/disk/by-id/nvme-B-part4
$ zfs set special_small_blocks=64K tankspecial vdev 是存储池的一部分:它一旦丢失,整个存储池也随之丢失。务必为它配置镜像。
保持存储池健康
- 每月执行 scrub:Debian 和 Ubuntu 会自动为您安排;可用
zpool status查看。 - 使用率保持在 80% 以下:超出后性能会急剧下降。
- 使用较大的 recordsize 存放备份和媒体文件:
zfs set recordsize=1M tank/backups。 - 加密敏感数据集:使用
-o encryption=aes-256-gcm -o keyformat=passphrase参数。




