zfs – 两个嵌套的挂载点和冲突的挂载顺序池

我有一个自动挂载单独的池,有嵌套的挂载点的问题。 我正在使用ZfsOnLinux 0.6.2。

目前的情况如下:

zpool1 ---> /var zpool1/log ---> /var/log zpool1/mail ---> /var/mail 

现在我需要为数据库添加一个单独的zpool。 为了保持目录层次的一致性,我想到了这一点:

 zpool2 ---> /var/db 

现在,问题是,当zpool2首先挂载,zpool1无法挂载(这是逻辑)。

有没有一种方法可以强制使用池安装顺序来允许在zpool1中安装zpool2,除了使用传统的安装选项? 像zpools依赖? 或者我应该不惜一切代价避免这种嵌套坐骑?

    不要将zpool2/var/db ,而zpool2其挂载为/zpool2/db或者任何对您有意义的东西。

    然后将/var/db作为/var/db的符号链接。

    您可以将文件系统挂载点属性设置为legacy并使用/etc/fstab来定义它们。

    这样,你就可以定义它们将被安装的顺序。

    编辑:我只是注意到你已经考虑了传统的方法。 这可能是唯一的一个。

    也许在ZFS上使用Root可能会有所帮助。

    我在FreeBSD上使用两个池和嵌套挂载点的ZFS。 第一个池(ssd)是其中大部分其他文件系统所在的根文件系统所在的池。 第二个池(hdd)用于将大量数据安装到特定位置的文件系统。

    我相信因为根文件系统,所有来自ssd池的文件系统首先被挂载,而hdd池中的文件系统被挂载在第二个。

    我从来没有这个设置的问题。 但是,这是一个生产服务器,我不经常重新启动它。

    在同一池中,安装path的组成决定了安装顺序。 在一个池中,Zfs按照各自的安装点path对文件系统进行sorting,从而保证正确的安装顺序。

    当涉及2个或更多个池时,没有类似的设施来自动在池之间施加挂载次序。

    换句话说,Zfs有一个内置的机制,可以确保任何挂载点组合都能使fs-s以正确的顺序挂载,但是当涉及多个池时,它没有类似的function来保证这一点。

    如果pool2的文件系统设置为通过首先在pool1中挂载一个fs使其可用的挂载点挂载,则pipe理员将确保pool1确实首先安装。 例如:它必须是脚本。 所以答案是“不要期望这个自行清理”。