在 Oracle® Solaris 11.2 中管理 ZFS 文件系统

退出打印视图

更新时间: 2014 年 12 月
 
 

管理 ZFS 挂载点

缺省情况下,ZFS 文件系统在创建时自动挂载。可以确定文件系统的特定挂载点行为,如本节所述。

另外,也可以在创建时使用 zpool create–m 选项为池文件系统设置缺省挂载点。有关创建池的更多信息,请参见创建 ZFS 存储池

所有 ZFS 文件系统都由 ZFS 通过使用服务管理工具 (Service Management Facility, SMF) 的 svc://system/filesystem/local 服务在引导时挂载。文件系统挂载在 /path 下,其中 path 是文件系统的名称。

可以使用 zfs set 命令将 mountpoint 属性设置为特定路径,以覆盖缺省挂载点。ZFS 自动创建指定的挂载点(如果需要),并自动挂载关联的文件系统。

ZFS 文件系统无需您编辑 /etc/vfstab 文件即可在引导时自动挂载。

mountpoint 属性是继承的。例如,如果 pool/home 的 mountpoint 属性设置为 /export/stuff,则 pool/home/user 将继承 /export/stuff/user 的 mountpoint 属性值。

要防止挂载文件系统,请将 mountpoint 属性设置为 none。此外,canmount 属性可以用来控制是否能挂载文件系统。有关 canmount 属性的更多信息,请参见canmount 属性

也可以使用 zfs set 将 mountpoint 属性设置为 legacy,从而通过传统挂载接口显式管理文件系统。这样做可以防止 ZFS 自动挂载和管理文件系统。不过必须改用包括 mountumount 命令在内的传统工具以及 /etc/vfstab 文件。有关传统挂载的更多信息,请参见传统挂载点

自动挂载点

  • 将 mountpoint 属性从 legacynone 更改为特定路径时,ZFS 会自动挂载文件系统。

  • 如果 ZFS 正在管理文件系统,但该文件系统当前已取消挂载,并且 mountpoint 属性已更改,则文件系统将保持取消挂载状态。

mountpoint 属性不是 legacy 的所有文件系统都由 ZFS 来管理。在以下示例中,创建了一个挂载点由 ZFS 自动管理的文件系统:

# zfs create pool/filesystem
# zfs get mountpoint pool/filesystem
NAME             PROPERTY      VALUE                      SOURCE
pool/filesystem  mountpoint    /pool/filesystem           default
# zfs get mounted pool/filesystem
NAME             PROPERTY      VALUE                      SOURCE
pool/filesystem  mounted       yes                        -

另外,也可按以下示例所示,显式设置 mountpoint 属性:

# zfs set mountpoint=/mnt pool/filesystem
# zfs get mountpoint pool/filesystem
NAME             PROPERTY      VALUE                      SOURCE
pool/filesystem  mountpoint    /mnt                       local
# zfs get mounted pool/filesystem
NAME             PROPERTY      VALUE                      SOURCE
pool/filesystem  mounted       yes                        -

如果更改了 mountpoint 属性,文件系统将自动从旧挂载点取消挂载,并重新挂载到新挂载点。挂载点目录根据需要进行创建。如果 ZFS 由于文件系统正处于活动状态而无法将其取消挂载,则会报告错误,并需要强制进行手动取消挂载。

传统挂载点

通过将 mountpoint 属性设置为 legacy,可以使用传统工具来管理 ZFS 文件系统。传统文件系统必须通过 mountumount 命令以及 /etc/vfstab 文件来管理。ZFS 在引导时不会自动挂载传统文件系统,并且 ZFS mountumount 命令不会对此类型的文件系统执行操作。以下示例展示了如何在传统模式下设置和管理 ZFS 文件系统:

# zfs set mountpoint=legacy tank/home/eric
# mount -F zfs tank/home/eschrock /mnt

要在引导时自动挂载传统文件系统,必须向 /etc/vfstab 文件中添加一项。/etc/vfstab 文件中的项类似于下例:

#device         device        mount           FS      fsck    mount   mount
#to mount       to fsck       point           type    pass    at boot options
#

tank/home/eric  -		/mnt		   zfs		-		yes		-	

device to fsckfsck pass 项设置为 -,因为 fsck 命令不适用于 ZFS 文件系统。有关 ZFS 数据完整性的更多信息,请参见 事务性语义