我们计划使用 ZFS 的一些功能,例如:
- 快照。
- 文件系统的层次结构(每个用户都有自己的)。
- 自定义用户属性。
- 克隆。
是否可以通过 NFS 将所有此功能共享给 Linux 客户端机器?
UPD:那么如果无法通过 NFS 实现,我们应该使用什么类似 NFS 的协议?
答案1
您可以通过 NFS 创建快照,方法是在每个数据集的 .zfs 目录中创建目录。该特殊目录可以隐藏或不隐藏(但仍可访问)。
ZFS 是一个分层文件系统,只需在其他数据集内为每个用户创建单独的数据集(例如部门/用户 1 部门/用户 2 等)。它们将继承属性,或者您也可以覆盖这些属性。
使用克隆可以节省一些磁盘空间。如果所有用户都需要目录中的一组初始文件,请将它们放在一个数据集中,对其进行快照并为每个用户克隆。当有克隆依赖于快照时,您将无法删除快照。
自定义数据集属性和克隆必须从服务器端进行管理。据我所知,有专有插件可以将 ZFS 细节导出到 VMware 等。但是没有分布式 FS 协议可以允许这样做。您可以创建一个 Web 前端并让用户操作它们。
答案2
我读过 Gnu/Linux NFS 实现,特别是版本 4,并不是那么可靠,但无论如何:
快照:可通过.nfs 目录访问。
克隆:只要继承了 sharenfs 属性,它们就会自动对客户端可见。
文件系统层次结构(每个用户都有自己的层次结构):是的,尽管这并不是 ZFS 所特有的。
自定义用户属性:与其他 zfs 属性一样,它们不能通过 NFS 访问。
请注意,大多数管理任务(文件系统/克隆创建/删除/配置)必须在服务器端完成,但如果使用“zfs allow”命令授予远程用户所需的权限,则快照管理(创建/重命名/删除)可能会通过 .zfs 目录委托给远程用户。