功能描述
创建存储空间时,可以自行选择路径,由用户负责挂载文件系统到此路径,系统仅负责使用此存储空间。
理由
文件系统种类繁多,每个人对存储布局的需求各不相同,系统不可能满足所有用户的要求。
例如希望使用 XFS、ZFS 的用户、从其他系统带着奇怪存储布局迁移过来的用户、不喜欢 mdadm + LVM + btrfs 嵌套的用户、希望使用 btrfs 其他特性的用户等,小众用户也想被看见。
开放自定义存储空间,给用户折腾的权力,也让用户自行承担折腾的后果。
设想
简陋的:创建存储空间时,可以自行选择路径,由用户提前在 fstab 中挂载好硬盘,在系统运行期间保持挂载。
进一步:提供命令行接口(或其他形式),用于通知飞牛各组件,路径已挂载、即将卸载等,方便用户集成进自己的存储管理脚本中。
再进一步:飞牛设计规范,用户按规范自行维护“存储插件”,以将自定义存储完全集成进飞牛系统中,甚至可以定义特性集,例如支持快照的存储后端可以暴露快照接口由飞牛使用。
个人认为第二种是最适合各种独特需求的用户的。
其他
需要按一定规则阻止自动挂载,用户自行管理的存储不希望被直接挂载成外接存储(不自动挂载是一些用户的需求,在论坛中看到过)。
需要用户存储空间内的文件夹不和飞牛冲突(例如用户 UID 文件夹、APP 文件夹、docker 文件夹等)。现在的飞牛已经会阻止用户创建 1000/1001 等命名的文件夹,但可以轻松绕过(让用户自行管理,事情也不会变得更坏)。