Oracle Solaris ZFS 管理指南

创建、销毁和重命名 ZFS 文件系统

可以使用 zfs createzfs destroy 命令来创建和销毁 ZFS 文件系统。使用 zfs rename 命令可重命名 ZFS 文件系统。

创建 ZFS 文件系统

使用 zfs create 命令可以创建 ZFS 文件系统。create 子命令仅使用一个参数:要创建的文件系统的名称。将文件系统名称指定为从池名称开始的路径名,如下所示:

pool-name/[filesystem-name/]filesystem-name

路径中的池名称和初始文件系统名称标识分层结构中要创建新文件系统的位置。路径中的最后一个名称标识要创建的文件系统的名称。文件系统名称必须满足ZFS 组件命名要求中所述的命名要求。

在以下示例中,在 tank/home 文件系统中创建了一个名为 bonwick 的文件系统。


# zfs create tank/home/bonwick

如果新文件系统创建成功,则 ZFS 会自动挂载该文件系统。缺省情况下,文件系统将使用 create 子命令中为文件系统名称提供的路径挂载为 /dataset。在本示例中,新创建的 bonwick 文件系统挂载于 /tank/home/bonwick。有关自动管理的挂载点的更多信息,请参见管理 ZFS 挂载点

有关 zfs create 命令的更多信息,请参见 zfs(1M)

可在创建文件系统时设置文件系统属性。

在以下示例中,为 tank/home 文件系统创建了挂载点 /export/zfs


# zfs create -o mountpoint=/export/zfs tank/home

有关文件系统属性的更多信息,请参见ZFS 属性介绍

销毁 ZFS 文件系统

要销毁 ZFS 文件系统,请使用 zfs destroy 命令。销毁的文件系统将自动取消挂载,并取消共享。有关自动管理的挂载或自动管理的共享的更多信息,请参见自动挂载点

在以下示例中,销毁了 tabriz 文件系统:


# zfs destroy tank/home/tabriz

注意 – 注意 –

使用 destroy 子命令时不会出现确认提示。请务必谨慎使用该子命令。


如果要销毁的文件系统处于繁忙状态而无法取消挂载,则 zfs destroy 命令将失败。要销毁活动文件系统,请使用 -f 选项。由于此选项可取消挂载、取消共享和销毁活动文件系统,从而导致意外的应用程序行为,因此请谨慎使用此选项。


# zfs destroy tank/home/ahrens
cannot unmount 'tank/home/ahrens': Device busy

# zfs destroy -f tank/home/ahrens

如果文件系统具有后代,则 zfs destroy 命令也会失败。要以递归方式销毁文件系统及其所有后代,请使用 -r 选项。请注意,递归销毁同时会销毁快照,因此请谨慎使用此选项。


# zfs destroy tank/ws
cannot destroy 'tank/ws': filesystem has children
use '-r' to destroy the following datasets:
tank/ws/billm
tank/ws/bonwick
tank/ws/maybee

# zfs destroy -r tank/ws

如果要销毁的文件系统具有间接依赖项,那么即使是递归销毁命令也会失败。要强制销毁所有依赖项(包括目标分层结构外的克隆文件系统),必须使用 -R 选项。请务必谨慎使用此选项。


# zfs destroy -r tank/home/schrock
cannot destroy 'tank/home/schrock': filesystem has dependent clones
use '-R' to destroy the following datasets:
tank/clones/schrock-clone

# zfs destroy -R tank/home/schrock

注意 – 注意 –

使用 zfs destroy 命令的 -f-r-R 选项时不会出现确认提示,因此请谨慎使用这些选项。


有关快照和克隆的更多信息,请参见第 7 章

重命名 ZFS 文件系统

使用 zfs rename 命令可重命名文件系统。使用 rename 子命令可以执行以下操作:

以下示例使用 rename 子命令将一个文件系统从 kustarz 重命名为 kustarz_old


# zfs rename tank/home/kustarz tank/home/kustarz_old

以下示例说明如何使用 zfs rename 重定位文件系统:


# zfs rename tank/home/maybee tank/ws/maybee

在本示例中,maybee 文件系统从 tank/home 重定位到 tank/ws。通过重命名来重定位文件系统时,新位置必须位于同一池中,并且必须具有足够的磁盘空间来存放这一新文件系统。如果新位置没有足够的磁盘空间(可能是因为已达到配额),则 rename 操作将失败。

有关配额的更多信息,请参见设置 ZFS 配额和预留空间

rename 操作会尝试对文件系统以及任何后代文件系统按顺序执行取消挂载/重新挂载操作。如果该操作无法取消挂载活动文件系统,则 rename 命令将失败。发生这种问题时,必须强行取消挂载该文件系统。

有关重命名快照的信息,请参见重命名 ZFS 快照