zfs 文件服务器,ZFS 文件系统

本文详细介绍了ZFS文件系统的挂载管理,包括自动挂载、设置挂载点、继承属性以及如何使用传统挂载接口。ZFS在创建时默认挂载,可通过zfs set命令改变挂载点,同时文件系统挂载不受/etc/vfstab文件影响。通过设置mountpoint属性为legacy,可以使用传统工具如mount和umount进行管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

挂载 ZFS 文件系统

本节介绍了 ZFS 如何挂载文件系统。

管理 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 自动挂载和管理文件系统。不过必须改用包括 mount 和 umount 命令在内的传统工具以及 /etc/vfstab 文件。有关传统挂载的更多信息,请参见传统挂载点。

自动挂载点

将 mountpoint 属性从 legacy 或 none 更改为特定路径时,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 文件系统。传统文件系统必须通过 mount 和 umount 命令以及 /etc/vfstab 文件来管理。ZFS 在引导时不会自动挂载传统文件系统,并且 ZFS mount 和 umount 命令不会对此类型的文件系统执行操作。以下示例展示了如何在传统模式下设置和管理 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 fsck 和 fsck pass 项设置为 -,因为 fsck 命令不适用于 ZFS 文件系统。有关 ZFS 数据完整性的更多信息,请参见 事务性语义。

挂载 ZFS 文件系统

创建文件系统或系统引导时,ZFS 会自动挂载文件系统。仅当需要更改挂载选项,或者显式挂载或取消挂载文件系统时,才有必要使用 zfs mount 命令。

不带任何参数的 zfs mount 命令可以显示 ZFS 管理的当前已挂载的所有文件系统。传统管理的挂载点不会显示。例如:

# zfs mount | grep tank/home

zfs mount | grep tank/home

tank/home /tank/home

tank/home/jeff /tank/home/jeff

可以使用 -a 选项挂载 ZFS 管理的所有文件系统。传统管理的文件系统不会挂载。例如:

# zfs mount -a

缺省情况下,ZFS 不允许在非空目录的顶层进行挂载。例如:

# zfs mount tank/home/lori

cannot mount 'tank/home/lori': filesystem already mounted

传统挂载点必须通过传统工具进行管理。尝试使用 ZFS 工具将产生错误。例如:

# zfs mount tank/home/bill

cannot mount 'tank/home/bill': legacy mountpoint

use mount(1M) to mount this filesystem

# mount -F zfs tank/home/billm

当挂载文件系统时,它根据与文件系统关联的属性值使用一组挂载选项。属性与挂载选项之间的相互关系如下:

表 6-4 ZFS 挂载相关的属性和挂载选项

属性

挂载选项

atime

atime/noatime

devices

devices/nodevices

exec

exec/noexec

nbmand

nbmand/nonbmand

readonly

ro/rw

setuid

setuid/nosetuid

xattr

xattr/noaxttr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值