创建用于存储数据的存储池之后,即可创建文件系统分层结构。分层结构是用于组织信息的简单但功能强大的机制。使用过文件系统的任何用户对分层结构也都很熟悉。
使用 ZFS 可将文件系统组织为分层结构,其中每个文件系统仅有一个父级。分层结构的根始终是池名称。ZFS 通过支持属性继承来利用此分层结构,以便可在整个文件系统树中快速轻松地设置公用属性。
选择文件系统粒度。
ZFS 文件系统是管理的中心点。它们是轻量型的,很容易创建。适用的模型是为每个用户或项目建立一个文件系统,因为此模型允许按用户或按项目控制属性、快照和备份。
如何创建 ZFS 文件系统中创建了两个 ZFS 文件系统 bonwick 和 billm。
有关管理文件系统的更多信息,请参见第 6 章。
对相似的文件系统进行分组。
使用 ZFS 可将文件系统组织为分层结构,以便可对相似的文件系统进行分组。此模型提供了一个用于控制属性和管理文件系统的管理中心点。应使用一个公用名称来创建相似的文件系统。
在如何创建 ZFS 文件系统的示例中,两个文件系统都放置在名为 home 的文件系统下。
选择文件系统属性。
大多数文件系统特征都是通过属性进行控制。这些属性可以控制多种行为,包括文件系统的挂载位置、共享方式、是否使用压缩以及是否有任何生效的配额。
在如何创建 ZFS 文件系统的示例中,所有起始目录都挂载在 /export/zfs/user 中,都通过使用 NFS 来共享并且都已启用压缩。此外,还对用户 bonwick 强制实施了 10 GB 的配额。
有关属性的更多信息,请参见ZFS 属性介绍。
成为超级用户或承担具有适当 ZFS 权限配置文件的等效角色。
有关 ZFS 权限配置文件的更多信息,请参见ZFS 权限配置文件。
创建所需的分层结构。
# zfs create tank/home |
设置继承的属性。
建立文件系统分层结构之后,设置需在所有用户之间共享的任何属性:
# zfs set mountpoint=/export/zfs tank/home # zfs set sharenfs=on tank/home # zfs set compression=on tank/home # zfs get compression tank/home NAME PROPERTY VALUE SOURCE tank/home compression on local |
可在创建文件系统时设置文件系统属性。例如:
# zfs create -o mountpoint=/export/zfs -o sharenfs=on -o compression=on tank/home |
有关属性和属性继承的更多信息,请参见ZFS 属性介绍。
然后,在池 tank 中的 home 文件系统下对各文件系统进行分组。
创建各文件系统。
文件系统可能已创建,并可能已在 home 级别更改了属性。所有属性均可在使用文件系统的过程中动态进行更改。
# zfs create tank/home/bonwick # zfs create tank/home/billm |
这些文件系统从其父级继承属性值,因此会自动挂载在 /export/zfs/user 中并且通过 NFS 共享。您无需编辑 /etc/vfstab 或 /etc/dfs/dfstab 文件。
有关创建文件系统的更多信息,请参见创建 ZFS 文件系统。
有关挂载和共享文件系统的更多信息,请参见挂载和共享 ZFS 文件系统。
设置文件系统特定的属性。
在本示例中,为用户 bonwick 指定了 10 GB 的配额。此属性可对该用户可以使用的空间量施加限制,而无需考虑池中的可用空间大小。
# zfs set quota=10G tank/home/bonwick |
查看结果。
使用 zfs list 命令查看可用的文件系统信息:
# zfs list NAME USED AVAIL REFER MOUNTPOINT tank 92.0K 67.0G 9.5K /tank tank/home 24.0K 67.0G 8K /export/zfs tank/home/billm 8K 67.0G 8K /export/zfs/billm tank/home/bonwick 8K 10.0G 8K /export/zfs/bonwick |
请注意,用户 bonwick 仅有 10 GB 的可用空间,而用户 billm 则可使用整个池 (67 GB)。
有关查看文件系统状态的更多信息,请参见查询 ZFS 文件系统信息。
有关磁盘空间的使用和计算方法的更多信息,请参见ZFS 磁盘空间记帐。