如何从 zfs-auto-snapshot 中排除 zpool

str*_*vox 6 backup zfs

我的办公室里有一台具有双重角色的机器,并且有两个 zfs 池来执行此操作。第一个池用于为本地运行网络服务(dhcp、dns、yadda)的本地容器。我们称其为“容器”。另一个池用于保存从位于数据中心的生产系统接收到的快照。我们称其为“备份”。

我想在此主机上运行 zfs-auto-snapshot,但只在包含容器的 zpool 上保存快照数据集。备份池每天已经有一个数据集快照,并且由于与这些数据集没有实际交互,因此不需要更多快照,而且我不能百分百确定这些快照不会产生空间问题或从生产中收到的增量快照问题。

现在我知道“//”指的是zfs-auto-snapshot命令行中的所有数据集。我想知道是否可以将池(容器)的名称交换为“//”,以及它是否会自动获取该池及其所有数据集。该文档并不完全清楚您是否可以将池的名称作为快照目标并对其下的所有数据集进行快照。

我还注意到至少有一篇文章表明,当我在 ubuntu 服务器 18.04 上时,zfs-auto-snapshot 包可能已被另一种自动创建快照的机制取代......所以如果有人知道任何关于这一点的信息,我我很想听听。

谢谢!

Dan*_*Dan 7

您应该能够使用命令行执行此操作:

zfs-auto-snapshot --recursive containers
Run Code Online (Sandbox Code Playgroud)

这将拍摄池中顶级池数据集下的所有子数据集的快照containers

或者,查看--default-exclude说明:

默认情况下,zfs-auto-snapshot将对所有数据集进行快照,但用户属性com.sun:auto-snapshot设置为 的数据集除外false。此选项会反转行为并需要com.sun:auto-snapshot设置为true

因此,您还可以将该com.sun:auto-snapshot属性设置false为顶级backup文件系统,然后继续使用//(可能还需要--recursive,我不确定)。