致飞牛私有云(fnOS)开发团队的产品建议书
建议人: fnOS 资深用户
主题: 关于完善文件系统支持、虚拟磁盘管理及存储服务功能的建议
一、建议背景
作为fnOS的长期用户,我们欣喜地看到v0.9.32版本已正式支持ZFS文件系统,这标志着fnOS在存储可靠性方面迈出了重要一步。然而,在实际使用过程中,我们发现当前版本在文件系统多样性、虚拟磁盘管理、块级存储服务等方面仍有较大的提升空间。以下是我们基于真实使用场景提出的五项具体建议。
二、具体建议内容
建议一:扩展文件系统支持范围
当前状况: fnOS目前支持Btrfs、ZFS、ext4三种文件系统,对于企业级和高级用户场景,部分现代文件系统尚未纳入支持。
建议内容: 希望官方能逐步支持以下文件系统:
文件系统 核心优势 适用场景
Stratis 红帽官方推出的下一代存储管理方案,基于LVM+XFS+池化理念,支持快照、精简配置 企业级Linux环境,与RHEL/CentOS生态兼容
VDO(Virtual Data Optimizer) 提供重复数据删除、压缩、精简配置三重功能,显著节省存储空间 虚拟化环境、备份存储、大量重复数据场景
Btrfs 已支持,但希望进一步完善RAID5/6稳定性及动态转换功能 轻量级NAS、需要灵活卷管理的场景
ZFS 已支持,但高级功能尚不完善(详见建议五) 数据完整性要求高的关键业务存储
实施建议:
- 优先集成 Stratis 和 VDO,两者均为红帽系主流技术栈,与fnOS基于Debian的底层架构兼容性良好
- 提供文件系统选择向导,根据用户硬件配置(内存大小、CPU性能)智能推荐最优文件系统
建议二:支持镜像文件创建与自动挂载(虚拟磁盘功能)
当前状况: 目前fnOS不支持通过Web UI创建虚拟磁盘镜像文件,用户需通过SSH手动使用 fallocate和 losetup命令操作,且无法被系统识别为正式磁盘设备。
建议内容: 希望增加完整的虚拟磁盘管理功能:
-
镜像文件创建
- Web UI中提供"创建虚拟磁盘"功能
- 支持设置镜像大小、格式(raw/qcow2/vmdk)
- 底层调用
fallocate -l 或 dd 快速创建稀疏文件
-
自动挂载机制
- 创建后自动通过
losetup -f 关联loop设备
- 生成
/dev/loopX 设备节点,使系统可识别为真实磁盘
- 支持开机自动挂载(写入
/etc/fstab 或通过systemd服务管理)
-
磁盘识别集成
- 虚拟磁盘在"存储管理"界面中显示为可用磁盘
- 支持将其加入存储池、创建RAID、或作为独立卷使用
- 在虚拟机、Docker卷、iSCSI LUN等场景中可直接选用
典型应用场景:
- 测试环境快速创建虚拟磁盘进行RAID配置演练
- 将大容量镜像文件存储在ZFS/Btrfs池中,再loop挂载作为独立磁盘使用
- 为虚拟机提供基于文件的虚拟硬盘,实现存储灵活分配
建议三:内置 fallocate 与 losetup 系统支持
当前状况: 虽然fnOS底层基于Debian,fallocate和 losetup工具已预装,但缺乏Web UI层面的集成,普通用户难以使用。
建议内容: 将这两个核心工具深度集成到系统管理中:
工具 当前状态 建议集成方式
fallocate 命令行可用,无UI 在"虚拟磁盘创建"、"存储池扩容"等场景中提供快速预分配选项
losetup 命令行可用,无UI 增加"Loop设备管理"页面,显示所有loop挂载状态,支持挂载/卸载/持久化
具体功能需求:
- fallocate集成: 创建大文件时自动使用
fallocate 而非 dd,速度提升百倍
- losetup集成:
- 显示当前所有loop设备列表(
losetup -a)
- 支持将镜像文件挂载为loop设备,并设置
--partscan自动识别分区
- 支持持久化配置(通过
/etc/systemd/system/ 服务或 /etc/rc.local)
- 支持设置只读模式(
losetup -r)用于安全挂载
建议四:内置 targetcli 并提供完整的iSCSI/块存储服务
当前状况: 目前fnOS的iSCSI功能存在明显限制——ZFS存储空间中无法创建iSCSI LUN,这严重制约了ZFS场景下的块级存储应用。
建议内容: 希望官方内置 targetcli(Linux-IO Target配置工具)并提供Web UI封装:
-
targetcli 内置集成
- 预装
targetcli-fb 及其依赖(python3-rtslib、python3-urwid)
- 提供Web UI替代命令行配置,降低使用门槛
-
后端存储支持
- 支持将 ZFS ZVOL 作为iSCSI后端(解决当前ZFS无法创建LUN的问题)
- 支持将 Btrfs卷、Stratis池、普通磁盘/分区 作为后端
- 支持将 虚拟磁盘镜像文件(loop设备) 作为后端(与建议二联动)
-
完整的iSCSI管理功能
- Target管理: 创建/删除/修改iSCSI Target(IQN命名)
- LUN管理: 创建/删除/映射LUN,支持读写权限控制
- ACL管理: 基于Initiator IP或IQN的访问控制
- CHAP认证: 单向或双向CHAP认证配置
- 多路径支持: 为关键业务提供冗余链路
-
其他块协议支持
- FC(光纤通道):如有硬件支持,可通过targetcli配置
- NVMe-oF:未来可扩展支持NVMe over Fabrics
建议五:完善ZFS文件系统的高级管理功能
当前状况: v0.9.32版本已支持ZFS基础功能,包括存储空间创建、L2ARC只读缓存、SLOG写入缓存等,但数据集(Dataset)级别的精细管理尚未在Web UI中提供。
建议内容: 希望建立完整的ZFS管理模块,提供以下功能:
5.1 存储池(Pool)管理
功能 当前状态 建议完善
池状态监控 基础支持 增加 scrub 状态、错误统计、性能图表
池扩容 支持添加vdev 支持在线替换硬盘、vdev移除(需冗余)
缓存管理 支持L2ARC/SLOG 增加缓存命中率监控、缓存设备健康状态
池属性 命令行可调 Web UI支持调整 autoexpand、ashift 等
5.2 数据集(Dataset)管理 ⭐核心需求
- 创建/删除数据集: 支持在存储池下创建嵌套数据集(
zfs create tank/data)
- 配额管理: 为每个数据集设置
quota(硬限制)和 refquota(引用限制)
- 预留空间: 设置
reservation 保证关键数据集可用空间
- 压缩设置: 支持
lz4、gzip、zstd 等算法切换及压缩比统计
- 去重(Deduplication): 提供去重状态监控和内存使用提示(因去重对内存要求高)
- 快照管理:
- 手动创建/删除快照
- 自动快照策略(类似TrueNAS的周期性快照任务)
- 快照浏览与恢复(从快照克隆数据集或回滚)
- 克隆与提升: 支持从快照创建克隆数据集,以及将克隆提升为独立数据集
5.3 ZVOL(块设备卷)管理
- 创建/删除ZVOL(
zfs create -V)
- 设置ZVOL大小、稀疏模式(
sparse)、块大小(volblocksize)
- 关键应用: ZVOL可直接用于:
- iSCSI LUN后端(解决建议四中的ZFS+iSCSI问题)
- 虚拟机磁盘(相比文件存储,ZVOL提供更好的性能和快照一致性)
5.4 权限与共享
- 数据集级别的ACL(NFSv4 ACL或POSIX ACL)
- 与fnOS现有用户体系集成,实现数据集级权限控制
- 支持将数据集通过SMB/NFS共享时的ZFS原生快照集成
5.5 性能监控
- ARC缓存命中率、大小、效率图表
- 实时I/O统计(IOPS、带宽、延迟)
- ZFS事件日志(scrub结果、数据修复记录)
四、结语
飞牛OS作为国产NAS系统的后起之秀,在用户体验和功能丰富度上已经展现出强劲的竞争力。我们相信,通过在文件系统支持、虚拟磁盘管理、块存储服务等方面的持续完善,fnOS将能够更好地满足从家庭用户到企业级用户的全方位需求,真正成为国产NAS领域的标杆产品。
期待开发团队的评估与反馈,也愿意作为测试用户参与新功能的早期验证。
此致
敬礼!
一位关注fnOS发展的忠实用户