用途:面向家庭实验室多设备环境的 ZFS 综合管理,涵盖存储池健康监控、快照自动化、跨设备数据集复制、性能属性优化与 scrub 调度。
主要能力:检查存储池状态、容量与 scrub 情况,容量阈值建议 70% 警告、80% 严重;用 Sanoid 创建与按保留策略修剪快照;用 Syncoid 做拉取式复制(备份服务器从各源设备拉取),支持 --recursive、--identifier、--compress=zstd-fast 等参数;调整 compression、atime、recordsize 等属性;安排定期 scrub。推荐架构为集中备份服务器到 5 台源设备的拉取式复制,并错开调度。
使用方式:远程复制需备份服务器与源设备之间配置免密 SSH,可用 ssh-keygen 与 ssh-copy-id 建立;非 root 复制可用 zfs allow 委派权限;Sanoid 安装如 sudo apt install sanoid 或 sudo pkg install sanoid。安全命令示例:./scripts/pool-health.sh、zpool status、zfs list、zpool list、zfs get all、sanoid --verbose --dry-run、syncoid --dry-run。快照修剪示例 sudo sanoid --prune-snapshots --verbose,复制示例 syncoid --recursive user@device1:tank backup/device1,属性示例 zfs set compression=lz4 pool/dataset、zfs set atime=off pool/dataset。
限制与安全:所有破坏性命令(zfs destroy、zpool destroy、zfs rollback、sanoid --prune-snapshots 等)必须由用户明确要求,展示完整命令、说明影响、确认备份,并双重确认后由用户手动运行,不自动执行;尽可能先加 --dry-run。RAIDZ1 仅容忍单盘故障,需积极监控 SMART 并每月 scrub。家庭实验室不建议启用 dedup,recordsize 应在写入数据前设定。调用技能脚本时需使用 pty: true,否则输出不可见。其他细节暂未提供。