收起左侧

致飞牛私有云(fnOS)开发团队的产品建议书

1
回复
48
查看
[ 复制链接 ]

3

主题

6

回帖

0

牛值

江湖小虾

致飞牛私有云(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手动使用 fallocatelosetup命令操作,且无法被系统识别为正式磁盘设备。

建议内容: 希望增加完整的虚拟磁盘管理功能:

  1. 镜像文件创建

    • Web UI中提供"创建虚拟磁盘"功能
    • 支持设置镜像大小、格式(raw/qcow2/vmdk)
    • 底层调用 fallocate -ldd 快速创建稀疏文件
  2. 自动挂载机制

    • 创建后自动通过 losetup -f 关联loop设备
    • 生成 /dev/loopX 设备节点,使系统可识别为真实磁盘
    • 支持开机自动挂载(写入 /etc/fstab 或通过systemd服务管理)
  3. 磁盘识别集成

    • 虚拟磁盘在"存储管理"界面中显示为可用磁盘
    • 支持将其加入存储池、创建RAID、或作为独立卷使用
    • 在虚拟机、Docker卷、iSCSI LUN等场景中可直接选用

典型应用场景:

  • 测试环境快速创建虚拟磁盘进行RAID配置演练
  • 将大容量镜像文件存储在ZFS/Btrfs池中,再loop挂载作为独立磁盘使用
  • 为虚拟机提供基于文件的虚拟硬盘,实现存储灵活分配

建议三:内置 fallocatelosetup 系统支持

当前状况: 虽然fnOS底层基于Debian,fallocatelosetup工具已预装,但缺乏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封装:

  1. targetcli 内置集成

    • 预装 targetcli-fb 及其依赖(python3-rtslibpython3-urwid
    • 提供Web UI替代命令行配置,降低使用门槛
  2. 后端存储支持

    • 支持将 ZFS ZVOL 作为iSCSI后端(解决当前ZFS无法创建LUN的问题)
    • 支持将 Btrfs卷、Stratis池、普通磁盘/分区 作为后端
    • 支持将 虚拟磁盘镜像文件(loop设备) 作为后端(与建议二联动)
  3. 完整的iSCSI管理功能

    • Target管理: 创建/删除/修改iSCSI Target(IQN命名)
    • LUN管理: 创建/删除/映射LUN,支持读写权限控制
    • ACL管理: 基于Initiator IP或IQN的访问控制
    • CHAP认证: 单向或双向CHAP认证配置
    • 多路径支持: 为关键业务提供冗余链路
  4. 其他块协议支持

    • 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支持调整 autoexpandashift

5.2 数据集(Dataset)管理 ⭐核心需求

  • 创建/删除数据集: 支持在存储池下创建嵌套数据集(zfs create tank/data
  • 配额管理: 为每个数据集设置 quota(硬限制)和 refquota(引用限制)
  • 预留空间: 设置 reservation 保证关键数据集可用空间
  • 压缩设置: 支持 lz4gzipzstd 等算法切换及压缩比统计
  • 去重(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发展的忠实用户

收藏
送赞
分享

6

主题

1万

回帖

0

牛值

管理员

社区上线纪念勋章社区共建团荣誉勋章飞牛百度网盘玩家fnOS1.0上线纪念勋章

感谢认真整理这么详细的建议和使用反馈 🙏
我们都已记录下来,后续会根据评估结果推进。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则