一、需求背景
-
市场趋势
- 本地构建 HomeLab(K8s、ESXi、Proxmox 等),需频繁挂载 OS/软件 ISO;
- 开发机容器镜像本地缓存,需把 ISO 当作只读卷供 CI/CD 调用;
- 批量刷机、车载娱乐系统升级,要求 NAS 7×24 提供只读挂载点。
-
竞品对标
- QNAP:Virtualization Station 已支持 ISO 挂载,但仅能在自家虚拟机内使用,无法通过 SMB/NFS/iSCSI 共享给第三方。
- Synology:ISO 挂载需购买“高级文件服务”授权,且 CLI 封闭,无法自动化。
- TrueNAS:开源,支持挂载但缺少一键 API 与图形化批量管理;且原生 Shell 需 Jail/Plugin,学习曲线陡峭。
-
用户痛点
- 痛点 A:下载完 ISO 后,需先解包或拷贝到 SSD 才能被虚拟机/PC 使用,浪费 2× 空间与时间。
- 痛点 B:缺少 Shell 环境,无法脚本化;极客用户被迫 ssh 后自行安装 deb/rpm,破坏系统一致性,升级时易丢失。
- 痛点 C:企业 IT 需审计“谁在什么时间挂载了哪个 ISO”,当前无日志。
二、目标与范围
产品目标
- 为 fnOS 新增两大模块:
- ① ISO Mount Service(IMS)——内核级只读虚拟光驱,支持 SMB/NFS/iSCSI/FC 四种协议共享;
- ② Shell Application(SHAPP)——沙盒化、应用商店化的终端环境,支持 zsh/bash,权限可细粒度到共享文件夹。
三、用户画像与场景
- 极客开发者 – 阿辉“我把 NAS 当 HomeLab 存储中枢,ESXi 装系统要 ISO,TrueNAS 还要再开一台虚拟机,太麻烦。希望 NAS 本机就能挂载并直接通过 iSCSI 给 ESXi。”
- 小型工作室 – 后期剪辑组“客户送来 50G 的蓝光 ISO 素材,我们要同时在 3 台 Mac 上读,不想拷来拷去。如果能通过 SMB 只读挂载,节省一半时间。”
- 企业 IT – 王经理“财务科经常要查 5 年前的审计光盘,原来要翻物理光盘库。现在希望 NAS 上能秒级挂载,并且能审计到‘谁下载了哪张盘’。”
- 嵌入式工程师 – Lily
“我需要 ssh 到 NAS 里,用 python 脚本批量对比固件 MD5,目前系统没有 python,装完重启就丢环境。需要官方持久化 Shell。”
四、功能需求
4.1 ISO Mount Service
| 编号 |
描述 |
标准 |
| IMS-1 |
上传/扫描 ISO |
Web&APP 支持拖拽上传;支持定时扫描指定文件夹自动入库;入库后生成 SHA-256 并去重。 |
| IMS-2 |
一键挂载 |
点击“挂载”后 3 秒内返回挂载路径;支持批量勾选 20 个 ISO 同时挂载,成功率 100%。 |
| IMS-3 |
多协议共享 |
同一 ISO 可同时通过 SMB/NFS/iSCSI/FC 共享;NFS 支持版本 3/4;iSCSI 支持 CHAP 认证。 |
| IMS-4 |
并发只读 |
256 路随机 4K 读 IOPS 下降 <5%(测试工具 fio);客户端看到的文件列表完全一致。 |
| IMS-5 |
快照与克隆 |
对挂载点可生成只读快照;快照可转换为新 ISO 导出,耗时 <1min/10G。 |
| IMS-6 |
审计日志 |
任何挂载/卸载事件写入/var/log/ims.log,同时同步到系统 Syslog,支持外发 SIEM。 |
| IMS-7 |
CLI & API |
提供xxnas-iso mount/unmount/list 命令;REST API 格式 /api/v2/iso/{id}/mount。 |
4.2 Shell Application
| 编号 |
描述 |
标准 |
| SHAPP-1 |
应用商店安装 |
在“应用中心”新增 Shell 图标,一键安装 <30 秒;卸载后无残留。 |
| SHAPP-2 |
用户/权限 |
支持“仅管理员”、“指定用户组”、“与共享文件夹权限联动”三种模式;可禁止 sudo。 |
| SHAPP-3 |
环境持久化 |
用户家目录放在 /mnt/HD/.shellapp/{user},系统升级后保留;内置 python/node 版本可 OTA 升级。 |
| SHAPP-4 |
资源限制 |
默认 CPU 20%/内存 1GB 上限;可在 Web 修改;超限自动 kill 并通知。 |
| SHAPP-5 |
文件系统访问 |
默认仅允许访问该用户有权限的共享文件夹;通过绑定挂载实现,禁止逃逸到系统盘。 |
| SHAPP-6 |
外部仓库 |
内置 apt/apk 双包管理,默认镜像源走国内 CDN;支持用户自定义源。 |
| SHAPP-7 |
审计 |
记录所有 ssh 登录、命令执行(可选开启全文 / 仅记录元数据),加密保存 90 天。 |
五、非功能需求
• 可维护:模块独立打包,支持热更新回滚。
六、实际意义与商业价值
- 用户侧
- 节省 30-50% 存储空间:无需解压/复制 ISO;
- 提升效率:HomeLab 创建虚拟机由 15 分钟缩短至 1 分钟;
- 降低门槛:内置 Shell 让“小白”也能一键跑 python 脚本,无需 Docker 知识。
- 品牌侧
• 打造“最友好开发者 NAS”差异化定位,提升极客社区口碑;
• 为后续“计算型 NAS”(CPU/GPU 融合)铺路,形成技术闭环。