什么是 ZFS 旧挂载点?

Sou*_*tor 8 linux zfs solaris

当我做快照时,我试图理解 ZFS 的工作方式。当我在机器上使用 zfs list 时,我得到一些安装点和一些路径。例如我得到类似的东西:

rpool/ROOT/s10x_u10_wos_17b      5.3gb   58.2gb    5.3gb     /
Run Code Online (Sandbox Code Playgroud)

我将 root 作为安装点/

我的第一个想法是存在实际的文件,当我导航到该/rpool目录时,没有 ROOT 目录。经过一番思考,我发现它/rpool/ROOT实际上是安装在遗产上的,所以它一定在其他地方。

有人可以解释一下当它安装在旧版上时文件在哪里,也许为什么使用这种旧版模式?

Att*_*tie 9

我不明白遗留安装点的目的。

ZFS 在池内提供数据集的分层结构。在您的情况下,您有一个名为 的池rpool,并且至少有以下数据集:

  • rpool
  • rpool/ROOT
  • rpool/ROOT/s10x_u10_wos_17b

这些数据集通常是一个文件系统(尽管它可以是卷/块设备)。

正如每个数据集都可能是一个完整/独立的文件系统一样,每个数据集也可以独立安装或不安装。

默认情况下,ZFS 会将子数据集安装在父数据集内的逻辑位置...如果rpool数据集安装在/rpool(即:默认),那么您会发现数据rpool/ROOT集安装在/rpool/ROOT,等等...

这是由属性控制的mountpoint- 运行zfs get -rt filesystem mountpoint以查看每个数据集的当前值。

  • 如果该值是路径,则导入池时 ZFS 将自动将数据集挂载到该路径。默认情况(如上所述)是将文件系统挂载在父级下。
  • 如果值为none,则 ZFS 将不会挂载文件系统,并且无法使用mount任一方式挂载文件系统。
  • 如果值为legacy,则 ZFS 将不会挂载文件系统,但您可以使用mountumount手动管理文件系统的挂载点。您还可以使用它/etc/fstab来指导自动安装。

在您的情况下,rpool/ROOT/s10x_u10_wos_17b数据集安装在/(即:它是您的根文件系统)。为了实现这一点,您可以设置mountpoint=/并让 ZFS 处理事务,或者mountpoint=legacy显式设置并挂载它。

由于这是您的根文件系统,因此让 ZFS 为您管理它并不是真正的选择,您需要显式指定挂载点。

因此,rpool/ROOT/s10x_u10_wos_17bmountpoint=legacy.


Mar*_*rný 2

当使用 挂载文件系统时,通常会使用旧挂载点fstab

来自 FreeBSD 手册页:

如果需要,还可以使用传统工具(mount(8)、umount(8)、fstab(5))管理 ZFS 文件系统。如果文件系统的挂载点设置为legacy,ZFS 不会尝试管理文件系统,并且管理员负责挂载和卸载文件系统。