问题描述:
飞牛 OS(fnOS)在管理 ZFS 存储池时,存在两项严重影响体验的统计与备份问题。系统似乎将 ZFS 的 Dataset(子卷) 误认为是普通文件夹,导致自动化功能失效。
环境信息:
硬件平台: 极空间 Z423
存储架构: 包含多个手动建立的子卷(如 hdd/Media, pool/appdata 等)
Bug 1:自动快照不支持递归(Recursive)
现象: 对父卷执行自动快照后,快照内原本属于子卷的路径全部显示为空文件夹。
原因分析: 系统执行 zfs snapshot 时缺少 -r 参数。
后果: 用户手动建立的子卷数据实际上处于无备份状态,存在严重数据风险。
Bug 2:容量分析统计不完整
现象: 飞牛 UI 的“空间分析”或“容量统计”仅显示主池(父卷)根目录下的文件大小。
具体表现: * 终端执行 zfs list 显示 hdd 已使用 7.59T,其中 hdd/Media 占用 2.12T。
飞牛 UI 统计中,Media 文件夹显示的占用空间接近 0,导致总容量统计与实际严重不符。
原因分析: UI 统计程序在扫描目录时,未能正确穿透 ZFS 挂载点或未递归查询子卷的 USED 属性。
改进建议:
快照逻辑: 增加“递归快照”开关,默认或允许用户选择调用 zfs snapshot -r。
容量算法: 优化存储统计逻辑,针对 ZFS 文件系统应通过 zfs list -r 或递归求和的方式计算真实占用空间,而非简单的目录扫描。
架构建议: 既然 fnOS 支持 ZFS,建议深度适配其 Dataset 特性,让用户手动建立的子卷也能在 UI 中正常管理。
存储空间截图:


快照截图:(未递归处理zfs dataset,appdata为手动拍的快照,pool为飞牛自动拍的快照)
